RFR (XS) : 8133489: Better messaging for PKIX path validation matching

Seán Coffey sean.coffey at oracle.com
Thu Jun 20 15:45:15 UTC 2019


Thanks for the review Xuelei,

edits made:

--- a/src/java.base/share/classes/java/security/cert/X509CertSelector.java
+++ b/src/java.base/share/classes/java/security/cert/X509CertSelector.java
@@ -2115,8 +2115,11 @@
              if (certSubjectKeyID == null ||
                      !Arrays.equals(subjectKeyID, certSubjectKeyID)) {
                  if (debug != null) {
-                    debug.println("X509CertSelector.match: "
-                        + "subject key IDs don't match");
+                    debug.println("X509CertSelector.match: subject key 
IDs " +
+                        "don't match\nX509CertSelector.match: 
subjectKeyID: " +
+                        Arrays.toString(subjectKeyID) +
+                        "\nX509CertSelector.match: certSubjectKeyID: " +
+                        Arrays.toString(certSubjectKeyID));
                  }
                  return false;

regards,
Sean.

On 20/06/2019 15:14, Xuelei Fan wrote:
> On 6/20/2019 5:56 AM, Seán Coffey wrote:
>> A simple debugging enhancement to print out subjectkey ID details 
>> when mismatch is encountered. I encountered a DER encoding issue with 
>> an application server team a good while back and needed such a patch 
>> to debug the issue correctly. I added -Djava.security.debug=certpath 
>> to a testcase which tests this functionality. Sample output :
>>
>> certpath: X509CertSelector.match: subject key IDs don't match
>> certpath: 509CertSelector.match: subjectKeyID: [4, 20, -12, -2, 115, 
>> 79, -15, 106, 114, -58, 102, 43, 32, 26, 120, -76, -33, 50, -45, -56, 
>> -16, -38]
>> certpath: 509CertSelector.match: certSubjectKeyID: [4, 20, -111, 93, 
>> -48, -86, -39, 59, -128, -118, 45, -10, 126, -76, -115, 126, -99, 
>> -106, -116, 107, 124, -63]
>>
>> regards,
>> Sean.
>>
>> diff --git 
>> a/src/java.base/share/classes/java/security/cert/X509CertSelector.java 
>> b/src/java.base/share/classes/java/security/cert/X509CertSelector.java
>> --- 
>> a/src/java.base/share/classes/java/security/cert/X509CertSelector.java
>> +++ 
>> b/src/java.base/share/classes/java/security/cert/X509CertSelector.java
>> @@ -2117,6 +2117,10 @@
>>                   if (debug != null) {
>>                       debug.println("X509CertSelector.match: "
>>                           + "subject key IDs don't match");
>> +                    debug.println("509CertSelector.match:" +
>> +                        " subjectKeyID: " + 
>> Arrays.toString(subjectKeyID));
>> +                    debug.println("509CertSelector.match:" +
>> +                        " certSubjectKeyID: " + 
>> Arrays.toString(certSubjectKeyID));
>>                   }
>>                   return false;
>>               }
> Is it a typo "509CertSelector" -> "X509CertSelector"?
>
> I may use one call to debug.println() in case the information are 
> separated in multi-thread environment.
>
> Otherwise, looks good to me.
>
> Thanks,
> Xuelei
>
>> diff --git 
>> a/test/jdk/java/security/cert/CertPathBuilder/selfIssued/KeyUsageMatters.java 
>> b/test/jdk/java/security/cert/CertPathBuilder/selfIssued/KeyUsageMatters.java 
>>
>> --- 
>> a/test/jdk/java/security/cert/CertPathBuilder/selfIssued/KeyUsageMatters.java 
>>
>> +++ 
>> b/test/jdk/java/security/cert/CertPathBuilder/selfIssued/KeyUsageMatters.java 
>>
>> @@ -29,13 +29,13 @@
>>
>>   /**
>>    * @test
>> - * @bug 6852744
>> + * @bug 6852744 8133489
>>    * @summary PIT b61: PKI test suite fails because self signed 
>> certificates
>>    *          are being rejected
>>    * @modules java.base/sun.security.util
>> - * @run main/othervm KeyUsageMatters subca
>> - * @run main/othervm KeyUsageMatters subci
>> - * @run main/othervm KeyUsageMatters alice
>> + * @run main/othervm -Djava.security.debug=certpath KeyUsageMatters 
>> subca
>> + * @run main/othervm -Djava.security.debug=certpath KeyUsageMatters 
>> subci
>> + * @run main/othervm -Djava.security.debug=certpath KeyUsageMatters 
>> alice
>>    * @author Xuelei Fan
>>    */
>>


More information about the security-dev mailing list