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) |
