summaryrefslogtreecommitdiff
path: root/src/lib/libcrypto/x509/x509_cmp.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/libcrypto/x509/x509_cmp.c')
-rw-r--r--src/lib/libcrypto/x509/x509_cmp.c27
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
242unsigned long X509_NAME_hash_old(X509_NAME *x) 235unsigned 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)