RFR: 8208583: Better management of internal KeyStore buffers
Weijun Wang
weijun.wang at oracle.com
Fri Aug 3 09:05:23 UTC 2018
com/sun/crypto/provider/KeyProtector.java:
187 Key k = kFac.generatePrivate(new PKCS8EncodedKeySpec(plain));
188 return k;
No need to create a local variable "k" anymore.
JavaKeyStore.java:
128 byte[] passwordBytes = null;
No need to define so early and assigned null.
No other comments.
> On Aug 3, 2018, at 12:37 AM, Seán Coffey <sean.coffey at oracle.com> wrote:
>
> All valid comments Max. Changes made. Webrev at
>
> http://cr.openjdk.java.net/~coffeys/webrev.8208583.v4/webrev/index.html
>
>> I wonder why DestroyedFailedException was a checked exception, what can we do if it's thrown?
> I guess we could log a message, but given the limited usage case here, I don't see a need.
I was not clear, I meant I cannot find a proper action to do in this case, thus it might be better to defined as an unchecked exception.
Thanks
Max
>
> regards,
> Sean.
>
>
> On 02/08/2018 17:05, Weijun Wang wrote:
>> KeyProtector.java:
>>
>> 113 pbeKeySpec.clearPassword();
>>
>> You can also put this into the finally block.
>>
>> 189 Arrays.fill(plain, (byte) 0x00);
>>
>> Can this be in finally?
>>
>> JavaKeyStore.java:
>>
>> 149 Arrays.fill(passwordBytes, (byte) 0x00);
>>
>> In other cases, you call it in a finally block. Unnecessary here?
>>
>> (Oops, every comment is about finally.)
>>
>> KeyProtector.java:
>>
>> 123 public KeyProtector(byte[] password)
>>
>> How about just "public KeyProtector(byte[] passwordBytes)"?
>>
>>> On Aug 2, 2018, at 7:38 PM, Seán Coffey <sean.coffey at oracle.com> wrote:
>>>
>>> No - no problem at all. Some extra exception handling but probably best for the long run.
>> I wonder why DestroyedFailedException was a checked exception, what can we do if it's thrown?
>>
>> Thanks
>> Max
>>
>>> http://cr.openjdk.java.net/~coffeys/webrev.8208583.v3/webrev/index.html
>>>
>>> regards,
>>> Sean.
>>>
>>> On 02/08/2018 02:13, Weijun Wang wrote:
>>>>> 1.
>>>>>
>>>>> I wasn't able to rename to destroy since that method is reserved for the Destroyable interface. I've gone with destroyKey.
>>>>>
>>>> Sorry I wasn't clear but this is exactly what I meant. SecretKey implements Destroyable so you don't need to define sKey as PBEKey. Does it make any problem?
>>>>
>>>>
>
More information about the security-dev
mailing list