summaryrefslogtreecommitdiff
path: root/src/lib/libcrypto/x509/x509_cmp.c
diff options
context:
space:
mode:
authorbeck <>2001-06-22 00:03:44 +0000
committerbeck <>2001-06-22 00:03:44 +0000
commit38b6ff9e5294811c57541ad47940f8f8f41dc114 (patch)
tree402699541cee3cf3f2943b0384dbda7de534de70 /src/lib/libcrypto/x509/x509_cmp.c
parentafae624d63e4e717c5bae8c7842a4712309f728f (diff)
downloadopenbsd-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.c18
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)