RFR: ChaCha20 and ChaCha20/Poly1305 Cipher implementations

Sean Mullan sean.mullan at oracle.com
Wed May 2 14:22:03 UTC 2018

On 5/1/18 5:45 PM, Jamil Nimeh wrote:
>> 134             throw new IllegalArgumentException(
>>  135                     "Unsupported parameter format: " + 
>> decodingMethod);
>> Although this seems like a reasonable exception to throw, 
>> AlgorithmParametersSpi.engineInit is not spec'ed to throw this, so I 
>> think you should throw an IOE instead.
>>  202             throw new IllegalArgumentException(
>>  203                     "Unsupported encoding format: " + 
>> encodingMethod);
>> Similar comment, AlgorithmParametersSpi.engineGetEncoded is not 
>> spec'ed to throw this, so I think you should throw an IOE instead.
> JN: Fair enough.  I had figured IAE would be OK since it's an unchecked 
> exception and seemed more appropriate to the situation. But IOE is fine 
> too.  Will fix.

I checked all of the other JDK AlgorithmParametersSpi implementations, 
and they actually ignore the format parameter completely and always 
encode using ASN.1. But I don't think that is right. So, I think we 
should throw an Exception and maybe file a bug to add a clarification to 
the spec for engineGetEncoded.

One other issue. The spec for engineGetEncoded says that if the format 
is null, the primary encoding format for parameters is used, so the code 
for 199-200 should be:

199         if (encodingMethod == null || 
encodingMethod.equalsIgnoreCase(DEFAULT_FMT)) {
200             return engineGetEncoded();


More information about the security-dev mailing list