> On Jul 20, 2022, at 7:00 AM, Michael StJohns <mstjo...@comcast.net> wrote: > > Hi Ravi - > > Not speaking for the openjdk folk, I would expect you would be better off > implementing this as an external KeyStore provider yourself as I would guess > there isn't a broad demand for something that meets your requirements at this > point. > +1.
Xuelei > Later, Mike > > > On 7/20/2022 6:39 AM, Ravi Patel8 wrote: >> Hi Mike and Xuelei, >> >> Thank you for the suggested solutions with an added attribute and a new >> provider. Do you think it is something that could be contributed to the JDK, >> or do you suggest this should be taken up as an external provider? >> From: Ravi Patel8 <ravi.pat...@ibm.com> <mailto:ravi.pat...@ibm.com> >> Sent: Thursday, July 14, 2022 6:26 PM >> To: Xuelei Fan <xuele...@gmail.com> <mailto:xuele...@gmail.com>; Michael >> StJohns <mstjo...@comcast.net> <mailto:mstjo...@comcast.net> >> Cc: security-dev@openjdk.org <mailto:security-dev@openjdk.org> >> <security-dev@openjdk.org> <mailto:security-dev@openjdk.org> >> Subject: Re: [EXTERNAL] Re: Case-sensitive Keystore for PKCS#12 >> >> Thank you for the suggested solutions with an added attribute and a new >> provider. Do you think it is something that could be contributed to the JDK, >> or do you suggest this should be taken up as an external provider? >> From: security-dev <security-dev-r...@openjdk.org> >> <mailto:security-dev-r...@openjdk.org> on behalf of Xuelei Fan >> <xuele...@gmail.com> <mailto:xuele...@gmail.com> >> Sent: Thursday, July 14, 2022 3:10 AM >> To: Michael StJohns <mstjo...@comcast.net> <mailto:mstjo...@comcast.net> >> Cc: security-dev@openjdk.org <mailto:security-dev@openjdk.org> >> <security-dev@openjdk.org> <mailto:security-dev@openjdk.org> >> Subject: [EXTERNAL] Re: Case-sensitive Keystore for PKCS#12 >> >> >> >> > On Jul 13, 2022, at 2:20 PM, Michael StJohns <mstjo...@comcast.net> >> > <mailto:mstjo...@comcast.net> wrote: >> > >> > On 7/13/2022 3:26 PM, Xuelei Fan wrote: >> >> Is it possible make it in the application layer? For example, mapping >> >> case-sensitive name to case-in-sensitive name before calling into the >> >> standard KeyStore APIs. It may be not good to break the standards for >> >> corner cases? >> >> >> >> Xuelei >> > >> > Hi Xuelei - >> > >> > It wouldn't actually be breaking the PKCS12 spec - the addition of more >> > attributes is part of the standard. >> I agreed it could not break PKCS12 spec. I referred to the friendlyName >> spec in PKCS12. An additional attribute could be used for the >> case-in-sensitive name support. But there is a need to define and support >> the attribute in the KeyStore implementation, just as you described in your >> previous reply. >> >> >> > Nor, given the CaseExactJKS implementation, would it be breaking the JDK >> > spec AFAICT. There is this in the KeyStore javadoc: >> > >> >> Whether aliases are case sensitive is implementation dependent. In order >> >> to avoid problems, it is recommended not to use aliases in a KeyStore >> >> that only differ in case. >> > The approach you suggest wouldn't work, because you couldn't store one key >> > with "MikesKey" and another with "MIKESKEY" in the Keystore. >> > >> >> I did not meant to cover the case. It may be fine to use a map, in which >> “MikesKey” may be mapped to “mikeskkey-1000100”, and MIKESKEY to >> “mikeskkey-0000000”, or something else like you described below ("Mike" -> >> "04mike8”). >> >> Xuelei >> >> >> > Hmm - let me rephrase that slightly. You could use this approach, but not >> > in the way you suggested. Instead, you'd need a transform from a String >> > to a unique string that you could use inside the key store. The actual >> > alias within the keystore would be the unique string. >> > >> > One way of doing that: Lowercase the string. Prepend the string with a 2 >> > character length field. Post pend the string with a hex field of >> > CEIL(length/16) characters, each hex character representing 16 bits that >> > indicate the case of the string. >> > >> > e.g. "Mike" -> "04mike8" >> > >> > Just a thought - Mike >> > >> >> >> >>> On Jul 13, 2022, at 4:38 AM, Ravi Patel8 <ravi.pat...@ibm.com> >> >>> <mailto:ravi.pat...@ibm.com> wrote: >> >>> >> >>> We have a customer who is having a security requirement. He wants to >> >>> know, Is it possible to have case-sensitive support for PKCS#12? We >> >>> referred the RFCs for PKCS#12. We found that PKCS#12 uses a case >> >>> in-sensitive alias and the alias Name is mapped with friendlyName >> >>> attribute, which is specified as "caseIgnoreMatch" as below. >> >>> >> >>> friendlyName ATTRIBUTE ::= { >> >>> WITH SYNTAX BMPString (SIZE(1..pkcs-9-ub-friendlyName)) >> >>> EQUALITY MATCHING RULE caseIgnoreMatch >> >>> SINGLE VALUE TRUE >> >>> ID pkcs-9-at-friendlyName >> >>> } >> >>> >> >>> The RFCs can be found here: >> >>> https://datatracker.ietf.org/doc/html/rfc7292 >> >>> <https://datatracker.ietf.org/doc/html/rfc7292> >> >>> https://datatracker.ietf.org/doc/html/rfc2985#page-19 >> >>> <https://datatracker.ietf.org/doc/html/rfc2985#page-19> >> >>> >> >>> The JKS key store(case in-sensitive alias) has a special version >> >>> (CaseExactJKS) that uses case sensitive aliases. >> >>> So similarly, Will it be acceptable to have a case sensitive version of >> >>> PKCS#12 as CaseExactPKCS12 which will use case sensitive aliases? >> > >> >