New function X509_ALGOR_set_md() to set X509_ALGOR (DigestAlgorithmIdentifier)
authorDr. Stephen Henson <steve@openssl.org>
Thu, 11 Mar 2010 13:27:05 +0000 (13:27 +0000)
committerDr. Stephen Henson <steve@openssl.org>
Thu, 11 Mar 2010 13:27:05 +0000 (13:27 +0000)
from a digest algorithm.

crypto/asn1/x_algor.c
crypto/x509/x509.h

index 99e53429b797960f635363ded6ce1d24e7189204..274e456c738296480a58b4f46288001add228234 100644 (file)
@@ -128,3 +128,17 @@ void X509_ALGOR_get0(ASN1_OBJECT **paobj, int *pptype, void **ppval,
                }
        }
 
+/* Set up an X509_ALGOR DigestAlgorithmIdentifier from an EVP_MD */
+
+void X509_ALGOR_set_md(X509_ALGOR *alg, const EVP_MD *md)
+       {
+       int param_type;
+
+       if (md->flags & EVP_MD_FLAG_DIGALGID_ABSENT)
+               param_type = V_ASN1_UNDEF;
+       else
+               param_type = V_ASN1_NULL;
+
+       X509_ALGOR_set0(alg, OBJ_nid2obj(EVP_MD_type(md)), param_type, NULL);
+
+       }
index 9fbb0c809d2463384ae7ffc95429c28ba6fbc980..9090f2ee4b7b0586bca6ebf5b1d6181fba81be24 100644 (file)
@@ -763,6 +763,7 @@ X509_ALGOR *X509_ALGOR_dup(X509_ALGOR *xn);
 int X509_ALGOR_set0(X509_ALGOR *alg, ASN1_OBJECT *aobj, int ptype, void *pval);
 void X509_ALGOR_get0(ASN1_OBJECT **paobj, int *pptype, void **ppval,
                                                X509_ALGOR *algor);
+void X509_ALGOR_set_md(X509_ALGOR *alg, const EVP_MD *md);
 
 X509_NAME *X509_NAME_dup(X509_NAME *xn);
 X509_NAME_ENTRY *X509_NAME_ENTRY_dup(X509_NAME_ENTRY *ne);