On 15-09-15 23:49, Steffan Karger wrote:
I agree that the functionality makes, but need to look at the code.  I'm
currently on a long holiday and haven't had enough spare cycles to spend
on openvpn. After I get back (next week), this will be part of my backlog :)

I looked at the code this morning, and tested with both OpenSSL and PolarSSL. The functionality makes sense. The serial formatting is a bit confusing ("serial 12" is actually serial 0x12, or 18 in dec), but this matches 'openssl crl -text' output, and putting 0x in front will make the longer AA:BB:CC formatting look weird... So I guess I'm fine with this.

Regarding

@@ -609,7 +610,7 @@ x509_verify_crl(const char *crl_file, X509 *peer_cert, const char *subject)
   for (i = 0; i < n; i++) {
revoked = (X509_REVOKED *)sk_X509_REVOKED_value(X509_CRL_get_REVOKED(crl), i); if (ASN1_INTEGER_cmp(revoked->serialNumber, X509_get_serialNumber(peer_cert)) == 0) {
-      msg (D_HANDSHAKE, "CRL CHECK FAILED: %s is REVOKED",subject);
+ msg (D_HANDSHAKE, "CRL CHECK FAILED: %s (serial %s) is REVOKED", subject, backend_x509_get_serial_hex(peer_cert, &gc));
       goto end;
     }
   }

and

@@ -394,7 +395,7 @@ x509_verify_crl(const char *crl_file, x509_crt *cert, const char *subject)

   if (0 != x509_crt_revoked(cert, &crl))
     {
-      msg (D_HANDSHAKE, "CRL CHECK FAILED: %s is REVOKED", subject);
+ msg (D_HANDSHAKE, "CRL CHECK FAILED: %s (serial %s) is REVOKED", subject, backend_x509_get_serial_hex(cert, &gc));
       goto end;
     }

backend_x509_get_serial_hex() may return NULL, and passing NULL as a string format specifier to printf() results in undefined behaviour. So please add a NULL check before passing the string to msg().

Finally, when you send a v2 of this patch, could you use 'git format-patch' to create a patch file with a clear commit message explaining why this change is useful? (Your original email probably suffices).

-Steffan

Reply via email to