diff options
Diffstat (limited to 'src/lib/libcrypto/x509/x509_cmp.c')
-rw-r--r-- | src/lib/libcrypto/x509/x509_cmp.c | 27 |
1 files changed, 7 insertions, 20 deletions
diff --git a/src/lib/libcrypto/x509/x509_cmp.c b/src/lib/libcrypto/x509/x509_cmp.c index 7c2aaee2e9..4bc9da07e0 100644 --- a/src/lib/libcrypto/x509/x509_cmp.c +++ b/src/lib/libcrypto/x509/x509_cmp.c | |||
@@ -87,20 +87,15 @@ unsigned long X509_issuer_and_serial_hash(X509 *a) | |||
87 | EVP_MD_CTX_init(&ctx); | 87 | EVP_MD_CTX_init(&ctx); |
88 | f=X509_NAME_oneline(a->cert_info->issuer,NULL,0); | 88 | f=X509_NAME_oneline(a->cert_info->issuer,NULL,0); |
89 | ret=strlen(f); | 89 | ret=strlen(f); |
90 | if (!EVP_DigestInit_ex(&ctx, EVP_md5(), NULL)) | 90 | EVP_DigestInit_ex(&ctx, EVP_md5(), NULL); |
91 | goto err; | 91 | EVP_DigestUpdate(&ctx,(unsigned char *)f,ret); |
92 | if (!EVP_DigestUpdate(&ctx,(unsigned char *)f,ret)) | ||
93 | goto err; | ||
94 | OPENSSL_free(f); | 92 | OPENSSL_free(f); |
95 | if(!EVP_DigestUpdate(&ctx,(unsigned char *)a->cert_info->serialNumber->data, | 93 | EVP_DigestUpdate(&ctx,(unsigned char *)a->cert_info->serialNumber->data, |
96 | (unsigned long)a->cert_info->serialNumber->length)) | 94 | (unsigned long)a->cert_info->serialNumber->length); |
97 | goto err; | 95 | EVP_DigestFinal_ex(&ctx,&(md[0]),NULL); |
98 | if (!EVP_DigestFinal_ex(&ctx,&(md[0]),NULL)) | ||
99 | goto err; | ||
100 | ret=( ((unsigned long)md[0] )|((unsigned long)md[1]<<8L)| | 96 | ret=( ((unsigned long)md[0] )|((unsigned long)md[1]<<8L)| |
101 | ((unsigned long)md[2]<<16L)|((unsigned long)md[3]<<24L) | 97 | ((unsigned long)md[2]<<16L)|((unsigned long)md[3]<<24L) |
102 | )&0xffffffffL; | 98 | )&0xffffffffL; |
103 | err: | ||
104 | EVP_MD_CTX_cleanup(&ctx); | 99 | EVP_MD_CTX_cleanup(&ctx); |
105 | return(ret); | 100 | return(ret); |
106 | } | 101 | } |
@@ -224,9 +219,7 @@ unsigned long X509_NAME_hash(X509_NAME *x) | |||
224 | 219 | ||
225 | /* Make sure X509_NAME structure contains valid cached encoding */ | 220 | /* Make sure X509_NAME structure contains valid cached encoding */ |
226 | i2d_X509_NAME(x,NULL); | 221 | i2d_X509_NAME(x,NULL); |
227 | if (!EVP_Digest(x->canon_enc, x->canon_enclen, md, NULL, EVP_sha1(), | 222 | EVP_Digest(x->canon_enc, x->canon_enclen, md, NULL, EVP_sha1(), NULL); |
228 | NULL)) | ||
229 | return 0; | ||
230 | 223 | ||
231 | ret=( ((unsigned long)md[0] )|((unsigned long)md[1]<<8L)| | 224 | ret=( ((unsigned long)md[0] )|((unsigned long)md[1]<<8L)| |
232 | ((unsigned long)md[2]<<16L)|((unsigned long)md[3]<<24L) | 225 | ((unsigned long)md[2]<<16L)|((unsigned long)md[3]<<24L) |
@@ -241,18 +234,12 @@ unsigned long X509_NAME_hash(X509_NAME *x) | |||
241 | 234 | ||
242 | unsigned long X509_NAME_hash_old(X509_NAME *x) | 235 | unsigned long X509_NAME_hash_old(X509_NAME *x) |
243 | { | 236 | { |
244 | EVP_MD_CTX md_ctx; | ||
245 | unsigned long ret=0; | 237 | unsigned long ret=0; |
246 | unsigned char md[16]; | 238 | unsigned char md[16]; |
247 | 239 | ||
248 | /* Make sure X509_NAME structure contains valid cached encoding */ | 240 | /* Make sure X509_NAME structure contains valid cached encoding */ |
249 | i2d_X509_NAME(x,NULL); | 241 | i2d_X509_NAME(x,NULL); |
250 | EVP_MD_CTX_init(&md_ctx); | 242 | EVP_Digest(x->bytes->data, x->bytes->length, md, NULL, EVP_md5(), NULL); |
251 | EVP_MD_CTX_set_flags(&md_ctx, EVP_MD_CTX_FLAG_NON_FIPS_ALLOW); | ||
252 | EVP_DigestInit_ex(&md_ctx, EVP_md5(), NULL); | ||
253 | EVP_DigestUpdate(&md_ctx, x->bytes->data, x->bytes->length); | ||
254 | EVP_DigestFinal_ex(&md_ctx,md,NULL); | ||
255 | EVP_MD_CTX_cleanup(&md_ctx); | ||
256 | 243 | ||
257 | ret=( ((unsigned long)md[0] )|((unsigned long)md[1]<<8L)| | 244 | ret=( ((unsigned long)md[0] )|((unsigned long)md[1]<<8L)| |
258 | ((unsigned long)md[2]<<16L)|((unsigned long)md[3]<<24L) | 245 | ((unsigned long)md[2]<<16L)|((unsigned long)md[3]<<24L) |