diff options
author | beck <> | 2001-06-22 00:03:44 +0000 |
---|---|---|
committer | beck <> | 2001-06-22 00:03:44 +0000 |
commit | 38b6ff9e5294811c57541ad47940f8f8f41dc114 (patch) | |
tree | 402699541cee3cf3f2943b0384dbda7de534de70 /src/lib/libcrypto/x509/x509_cmp.c | |
parent | afae624d63e4e717c5bae8c7842a4712309f728f (diff) | |
download | openbsd-38b6ff9e5294811c57541ad47940f8f8f41dc114.tar.gz openbsd-38b6ff9e5294811c57541ad47940f8f8f41dc114.tar.bz2 openbsd-38b6ff9e5294811c57541ad47940f8f8f41dc114.zip |
openssl-engine-0.9.6a merge
Diffstat (limited to 'src/lib/libcrypto/x509/x509_cmp.c')
-rw-r--r-- | src/lib/libcrypto/x509/x509_cmp.c | 18 |
1 files changed, 6 insertions, 12 deletions
diff --git a/src/lib/libcrypto/x509/x509_cmp.c b/src/lib/libcrypto/x509/x509_cmp.c index b147d573d2..3f9f9b3d47 100644 --- a/src/lib/libcrypto/x509/x509_cmp.c +++ b/src/lib/libcrypto/x509/x509_cmp.c | |||
@@ -199,19 +199,13 @@ unsigned long X509_NAME_hash(X509_NAME *x) | |||
199 | { | 199 | { |
200 | unsigned long ret=0; | 200 | unsigned long ret=0; |
201 | unsigned char md[16]; | 201 | unsigned char md[16]; |
202 | unsigned char str[256],*p,*pp; | ||
203 | int i; | ||
204 | |||
205 | i=i2d_X509_NAME(x,NULL); | ||
206 | if (i > sizeof(str)) | ||
207 | p=OPENSSL_malloc(i); | ||
208 | else | ||
209 | p=str; | ||
210 | 202 | ||
211 | pp=p; | 203 | /* Ensure cached version is up to date */ |
212 | i2d_X509_NAME(x,&pp); | 204 | i2d_X509_NAME(x,NULL); |
213 | MD5((unsigned char *)p,i,&(md[0])); | 205 | /* Use cached encoding directly rather than copying: this should |
214 | if (p != str) OPENSSL_free(p); | 206 | * keep libsafe happy. |
207 | */ | ||
208 | MD5((unsigned char *)x->bytes->data,x->bytes->length,&(md[0])); | ||
215 | 209 | ||
216 | ret=( ((unsigned long)md[0] )|((unsigned long)md[1]<<8L)| | 210 | ret=( ((unsigned long)md[0] )|((unsigned long)md[1]<<8L)| |
217 | ((unsigned long)md[2]<<16L)|((unsigned long)md[3]<<24L) | 211 | ((unsigned long)md[2]<<16L)|((unsigned long)md[3]<<24L) |