]> git.ipfire.org Git - thirdparty/gnutls.git/commitdiff
Placed back _gnutls_x509_compare_raw_dn().
authorNikos Mavrogiannopoulos <nmav@gnutls.org>
Wed, 6 Mar 2013 10:00:32 +0000 (11:00 +0100)
committerNikos Mavrogiannopoulos <nmav@gnutls.org>
Wed, 6 Mar 2013 10:04:02 +0000 (11:04 +0100)
lib/x509/dn.c
lib/x509/verify.c
lib/x509/x509.c
lib/x509/x509_int.h

index 817f7b967886ba962975f01eec3d64bf2f4cb892..640751c70a455db5afdab88dd1cf5e8a50cd0c6b 100644 (file)
@@ -1066,7 +1066,30 @@ gnutls_x509_rdn_get_oid (const gnutls_datum_t * idn,
 
   asn1_delete_structure (&dn);
   return result;
+}
+
+/*
+ * Compares the DER encoded part of a DN.
+ *
+ * Returns 1 if the DN's match and (0) if they don't match. Otherwise
+ * a negative error code is returned to indicate error.
+ */
+int
+_gnutls_x509_compare_raw_dn (const gnutls_datum_t * dn1,
+                             const gnutls_datum_t * dn2)
+{
 
+  if (dn1->size != dn2->size)
+    {
+      gnutls_assert ();
+      return 0;
+    }
+  if (memcmp (dn1->data, dn2->data, dn2->size) != 0)
+    {
+      gnutls_assert ();
+      return 0;
+    }
+  return 1;                     /* they match */
 }
 
 /**
index 6e25b079988199f2562d7c032cd0d2949400115e..e146878abfda337d2ae7bf4108430adf9e23f013 100644 (file)
@@ -209,8 +209,7 @@ is_issuer (gnutls_x509_crt_t cert, gnutls_x509_crt_t issuer)
   size_t id2_size;
   int ret;
 
-  if (cert->raw_issuer_dn.size == issuer->raw_dn.size &&
-    memcmp(cert->raw_issuer_dn.data, issuer->raw_dn.data, issuer->raw_dn.size) == 0)
+  if (_gnutls_x509_compare_raw_dn(&cert->raw_issuer_dn, &issuer->raw_dn) != 0)
     ret = 1;
   else
     ret = 0;
@@ -253,8 +252,7 @@ cleanup:
 static int
 is_crl_issuer (gnutls_x509_crl_t crl, gnutls_x509_crt_t issuer)
 {
-  if (crl->raw_issuer_dn.size == issuer->raw_dn.size &&
-    memcmp(crl->raw_issuer_dn.data, issuer->raw_dn.data, issuer->raw_dn.size) == 0)
+  if (_gnutls_x509_compare_raw_dn(&crl->raw_issuer_dn, &issuer->raw_dn) != 0)
     return 1;
   else
     return 0;
@@ -267,8 +265,7 @@ is_crl_issuer (gnutls_x509_crl_t crl, gnutls_x509_crt_t issuer)
 int
 _gnutls_is_same_dn (gnutls_x509_crt_t cert1, gnutls_x509_crt_t cert2)
 {
-  if (cert1->raw_dn.size == cert2->raw_dn.size &&
-    memcmp(cert1->raw_dn.data, cert2->raw_dn.data, cert2->raw_dn.size) == 0)
+  if (_gnutls_x509_compare_raw_dn(&cert1->raw_dn, &cert2->raw_dn) != 0)
     return 1;
   else
     return 0;
index 01455f924c65fb6fa5d00a7fdf410d37695874b1..75806e7a794421fa11959fd8b2a3e3a6c239b3ae 100644 (file)
@@ -2765,8 +2765,7 @@ gnutls_x509_crt_get_key_id (gnutls_x509_crt_t crt, unsigned int flags,
 static int
 crl_issuer_matches (gnutls_x509_crl_t crl, gnutls_x509_crt_t cert)
 {
-  if (crl->raw_issuer_dn.size == cert->raw_issuer_dn.size &&
-    memcmp(crl->raw_issuer_dn.data, cert->raw_issuer_dn.data, cert->raw_issuer_dn.size) == 0)
+  if (_gnutls_x509_compare_raw_dn(&crl->raw_issuer_dn, &cert->raw_issuer_dn) != 0)
     return 1;
   else
     return 0;
index 053f00c1ea0eb5fb8aa16504e8f6a138c9f28656..8d6f766067e26b5cce993b706eb5d7049a1b28c6 100644 (file)
@@ -85,7 +85,8 @@ typedef struct gnutls_x509_privkey_int
 
 int _gnutls_x509_crt_cpy (gnutls_x509_crt_t dest, gnutls_x509_crt_t src);
 
-
+int _gnutls_x509_compare_raw_dn (const gnutls_datum_t * dn1,
+                                 const gnutls_datum_t * dn2);
 
 int _gnutls_x509_crl_cpy (gnutls_x509_crl_t dest, gnutls_x509_crl_t src);
 int _gnutls_x509_crl_get_raw_issuer_dn (gnutls_x509_crl_t crl,