Rename functions for new convention.
[openssl.git] / crypto / x509 / x509_cmp.c
index 0b0f1605da0d3abf54670c7bb1d930904ab815ab..a8a5ca8b03e61bf4defff035117b96d6e67f06b8 100644 (file)
@@ -61,6 +61,7 @@
 #include <openssl/asn1.h>
 #include <openssl/objects.h>
 #include <openssl/x509.h>
 #include <openssl/asn1.h>
 #include <openssl/objects.h>
 #include <openssl/x509.h>
+#include <openssl/x509v3.h>
 
 int X509_issuer_and_serial_cmp(X509 *a, X509 *b)
        {
 
 int X509_issuer_and_serial_cmp(X509 *a, X509 *b)
        {
@@ -136,6 +137,20 @@ unsigned long X509_subject_name_hash(X509 *x)
        return(X509_NAME_hash(x->cert_info->subject));
        }
 
        return(X509_NAME_hash(x->cert_info->subject));
        }
 
+#ifndef NO_SHA
+/* Compare two certificates: they must be identical for
+ * this to work.
+ */
+int X509_cmp(X509 *a, X509 *b)
+{
+       /* ensure hash is valid */
+       X509_check_purpose(a, -1, 0);
+       X509_check_purpose(b, -1, 0);
+
+       return memcmp(a->sha1_hash, b->sha1_hash, SHA_DIGEST_LENGTH);
+}
+#endif
+
 int X509_NAME_cmp(X509_NAME *a, X509_NAME *b)
        {
        int i,j;
 int X509_NAME_cmp(X509_NAME *a, X509_NAME *b)
        {
        int i,j;
@@ -173,7 +188,7 @@ int X509_NAME_cmp(X509_NAME *a, X509_NAME *b)
 
 #ifndef NO_MD5
 /* I now DER encode the name and hash it.  Since I cache the DER encoding,
 
 #ifndef NO_MD5
 /* I now DER encode the name and hash it.  Since I cache the DER encoding,
- * this is reasonably effiecent. */
+ * this is reasonably efficient. */
 unsigned long X509_NAME_hash(X509_NAME *x)
        {
        unsigned long ret=0;
 unsigned long X509_NAME_hash(X509_NAME *x)
        {
        unsigned long ret=0;