Review Request for JDK-8025708 : Certificate Path Building problem with AKI serial number

Sean Mullan sean.mullan at oracle.com
Mon Feb 17 13:57:20 UTC 2014


On 02/14/2014 08:52 PM, Xuelei Fan wrote:
> AdaptableX509CertSelector.java
> ==============================
> 1. for boolean value checking, I normally use
>     if (boolean-value) or if (!boolean-value)

I usually do too, but "== false" seemed more readable to me in this 
code, perhaps because it is immediately returning false afterwards. 
Anyway, it's not a big deal either way to me, so I'll change it to "!".

> 2. AdaptableX509CertSelector.match(Certificate)
>     KID can be used to facilitate the path building.  I would suggest
> check the SKID and SN at first, and then call super.match().

Good point, this will filter out non-matching certs faster. Changed.

> 3. AdaptableX509CertSelector.clone()
>     Also want to clone "serial" variabl?

Not necessary, it's immutable.

> 4. absence of SKID
>     Per section 4.2.1.2, RFC 5280:
>
>     To facilitate certification path construction, this extension MUST
>     appear in all conforming CA certificates, that is, all certificates
>     including the basic constraints extension (Section 4.2.1.9) where the
>     value of cA is TRUE.  In conforming CA certificates, the value of the
>     subject key identifier MUST be the value placed in the key identifier
>     field of the authority key identifier extension (Section 4.2.1.1) of
>     certificates issued by the subject of this certificate.
>
>     Not a big concerns, I was just wondering we may still want to check
> KID although the serial number checking may be optional.  This update
> allow the absence of subject key ID extension.

Yes I was wondering about that, but I am just preserving the previous 
behavior: see lines 167-170 -- which I assume was done for a good reason.

--Sean

>
> Otherwise, looks fine to me.
>
> Xuelei
>
>
> On 2/13/2014 9:04 PM, Sean Mullan wrote:
>> See: http://cr.openjdk.java.net/~mullan/webrevs/8025708/webrev/
>>
>> This fixes a problem with the PKIX CertPathBuilder where it wasn't able
>> to build a path when the Authority Key Identifier extension of an
>> intermediate CA cert did not contain a serial number field, and the end
>> entity cert did.
>>
>> The problem was in the AdaptableX509CertSelector class. It was reusing
>> this selector without re-initializing certain fields. I changed the
>> implementation of this class so that it doesn't have this issue anymore.
>>
>> Thanks,
>> Sean
>




More information about the security-dev mailing list