RFR 8076190: Customizing the generation of a PKCS12 keystore
Sean Mullan
sean.mullan at oracle.com
Thu Sep 27 13:43:40 UTC 2018
On 9/27/18 1:58 AM, Weijun Wang wrote:
> All others accepted.
>
>> 1122 keystore.pkcs12.certProtectionAlgorithm = PBEWithSHA1AndRC2_40
>>
>> Shouldn't this be named certPbeAlgorithm so that it matches certPbeIterationCount? Same comment about keyProtectionAlgorithm.
>
> Unfortunately we already had "keystore.pkcs12.keyProtectionAlgorithm" and it also accepts "PKCS12".
Ah, I see - I forgot about that property.
See
http://cr.openjdk.java.net/~weijun/8076190/webrev.03/src/java.base/share/classes/sun/security/pkcs12/PKCS12KeyStore.java-.html:
>
> 147 private static final String[] KEY_PROTECTION_ALGORITHM = {
> 148 "keystore.pkcs12.keyProtectionAlgorithm",
> 149 "keystore.PKCS12.keyProtectionAlgorithm"
> 150 };
>
> But you are right the names are not consistent and supporting both "pkcs12" and "PKCS12" is awkward (and cannot make use of the new SecurityProperties::privilegedGetOverridable method). Now I decide to name the new properties as (key|cert)PbeAlgorithm names with only "pkcs12", and only support the old names as a fallback.
Hmm, but this means we have to support 2 properties meaning the same
thing, and the KeyStore.PasswordProtection.getProtectionAlgorithm() is
already specified to use the keystore.<type>.keyProtectionAlgorithm
property. Based on that, I take back my comment, and I think it would be
better to retain the existing property instead of defining another one
with the same meaning. I don't like having to try to get the properties
with "pkcs12" and "PKCS12", but it seems we could live with that since
we have been doing it and we only need to do this for the existing
properties - we could assume "pkcs12" for all of the new ones.
--Sean
More information about the security-dev
mailing list