From: Dr. Stephen Henson Date: Fri, 3 Jun 2011 18:35:49 +0000 (+0000) Subject: New function X509_ALGOR_set_md() to set X509_ALGOR (DigestAlgorithmIdentifier) from... X-Git-Tag: OpenSSL_1_0_1-beta1~273 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=d99e6b5014c49e864103b401e284671911b32553;p=openssl New function X509_ALGOR_set_md() to set X509_ALGOR (DigestAlgorithmIdentifier) from a digest algorithm (backport from HEAD). --- diff --git a/crypto/asn1/x_algor.c b/crypto/asn1/x_algor.c index 99e53429b7..274e456c73 100644 --- a/crypto/asn1/x_algor.c +++ b/crypto/asn1/x_algor.c @@ -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); + + } diff --git a/crypto/x509/x509.h b/crypto/x509/x509.h index e6f8a40395..62740ebc57 100644 --- a/crypto/x509/x509.h +++ b/crypto/x509/x509.h @@ -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);