Sean Mullan wrote:
Some additional comments in the new tests describing what path building scenarios are being tested would be very useful.

OK, I will add some comments on the certification path structure.
A few comments below. Everything else looks good.

Xuelei Fan wrote:
new webrev: http://cr.openjdk.java.net/~xuelei/6852744/webrev.01/

Sean Mullan wrote:
Hi Andrew,

Here are some comments -

ForwardBuilder:

line 864:

typo: s/abchor/anchor

yes, a typo.
In this block of code:

 858                 if (principal != null && publicKey != null &&
859 principal.equals(cert.getSubjectX500Principal())) {
 860                     if (publicKey.equals(cert.getPublicKey())) {
 861                         this.trustAnchor = anchor;
 862                         return true;
 863                     }
864 // else, it is a self-issued certificate of the abchor
 865                 }

you never check if the trust anchor name is equal to the issuer of the cert before returning true. That seems to violate RFC 5280.

At line 859, when the cert's "subject" equals to the trust anchor

Why not match it with the cert's issuer? That would then be compliant with 5280.

Above codes are used to check whether the target cert is a trust anchor, so we need to compare the "subject" of both. If the cert is not a trust anchor, we need to check its issuer.

The follows codes are used to check whether the target cert is issued by the trust anchor:
-------------
868                 // Check subject/issuer name chaining
869                 if (principal == null ||
870 !principal.equals(cert.getIssuerX500Principal())) {

871                     continue;
872                 }

------------

If it is a cert issued by a trust anchor, the method will then check the revocation and signature. I think that is your expected behaviors, right?

Thanks,
Andrew

Reply via email to