SignatureUtil::getParamSpec(String,byte[]):

 126                     paramSpec = ECUtil.getECParameterSpec(p, paramBytes);

ECUtil.getECParameterSpec() could return null when 
"parameters.getParameterSpec(ECParameterSpec.class)" throws an 
InvalidParameterSpecException. So the behavior is now different from the other 
getParamSpec(String,AlgorithmParameters) method where the exception is wrapped 
into a ProviderException. Does this matter?

Thanks,
Max


> On Jul 9, 2019, at 8:09 AM, Valerie Peng <valerie.p...@oracle.com> wrote:
> 
> 
> Here is the updated webrev w/ ECUtil.equals() utility method:
> 
> http://cr.openjdk.java.net/~valeriep/8225745/webrev.01/
> 
> Regards,
> Valerie
> On 7/8/2019 12:12 PM, Valerie Peng wrote:
>> Right, based on the current impl, a simple "==" seems to work as it's the 
>> same NamedCurve instance inside CurveDB. Well, I could also do a bit of code 
>> refactoring and add an equals utility method to ECUtil so this may work 
>> better with 3rd party provider's impl.
>> 
>> Thanks,
>> Valerie
>> On 7/2/2019 8:27 PM, Weijun Wang wrote:
>>>   368     private static boolean isCompatible(ECParameterSpec sigParams,
>>>   369             ECParameterSpec keyParams) {
>>>   370         if (sigParams == null) {
>>>   371             // no restriction on key param
>>>   372             return true;
>>>   373         }
>>>   374         return sigParams.equals(keyParams);
>>>   375     }
>>> 
>>> What does "sigParams.equals(keyParams)" mean here? What is the getClass() 
>>> of those 2 ECParameterSpec objects?
>>> 
>>> Or maybe you mean "==" because it is always a NamedCurve stored in CurveDB?
>>> 
>>> Thanks,
>>> Max
>>> 
>>>> On Jul 3, 2019, at 10:48 AM, Valerie Peng <valerie.p...@oracle.com> wrote:
>>>> 
>>>> Hi
>>>> 
>>>> Any one can help reviewing this fix? Some ECDSA certificates contains 
>>>> signature algorithm identifiers with non-null parameter bytes. Before 
>>>> RSASSA-PSS support, these parameter bytes are ignored, however, after 
>>>> RSASSA-PSS support, the parameter bytes are passed to the underlying 
>>>> signature impl and this breaks the ECDSA certificate verification. In 
>>>> order for the verification to succeeds, the SignatureUtil class needs to 
>>>> be able to parse the parameter bytes for ECDSA certificate and that SunEC 
>>>> provider needs to accept non-null signature parameters.
>>>> 
>>>> Bug: https://bugs.openjdk.java.net/browse/JDK-8225745
>>>> Webrev: http://cr.openjdk.java.net/~valeriep/8225745/webrev.00/
>>>> 
>>>> Mach5 run is clean.
>>>> 
>>>> Thanks,
>>>> Valerie

Reply via email to