From dbad169019598981174ff46c7a9bf58373b0e53a Mon Sep 17 00:00:00 2001 From: Ben Laurie Date: Mon, 30 Jul 2001 23:57:25 +0000 Subject: Really add the EVP and all of the DES changes. --- crypto/pkcs7/Makefile.ssl | 143 +++++++++++++++------------------------------- crypto/pkcs7/pk7_doit.c | 9 ++- 2 files changed, 54 insertions(+), 98 deletions(-) (limited to 'crypto/pkcs7') diff --git a/crypto/pkcs7/Makefile.ssl b/crypto/pkcs7/Makefile.ssl index 26ee99de8e..a6495b02b1 100644 --- a/crypto/pkcs7/Makefile.ssl +++ b/crypto/pkcs7/Makefile.ssl @@ -102,144 +102,95 @@ clean: pk7_asn1.o: ../../e_os.h ../../include/openssl/asn1.h pk7_asn1.o: ../../include/openssl/asn1t.h ../../include/openssl/bio.h -pk7_asn1.o: ../../include/openssl/blowfish.h ../../include/openssl/bn.h -pk7_asn1.o: ../../include/openssl/buffer.h ../../include/openssl/cast.h -pk7_asn1.o: ../../include/openssl/crypto.h ../../include/openssl/des.h -pk7_asn1.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h -pk7_asn1.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h -pk7_asn1.o: ../../include/openssl/evp.h ../../include/openssl/idea.h -pk7_asn1.o: ../../include/openssl/lhash.h ../../include/openssl/md2.h -pk7_asn1.o: ../../include/openssl/md4.h ../../include/openssl/md5.h -pk7_asn1.o: ../../include/openssl/mdc2.h ../../include/openssl/obj_mac.h +pk7_asn1.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h +pk7_asn1.o: ../../include/openssl/crypto.h ../../include/openssl/dh.h +pk7_asn1.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h +pk7_asn1.o: ../../include/openssl/err.h ../../include/openssl/evp.h +pk7_asn1.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h pk7_asn1.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h pk7_asn1.o: ../../include/openssl/opensslv.h ../../include/openssl/pkcs7.h -pk7_asn1.o: ../../include/openssl/rc2.h ../../include/openssl/rc4.h -pk7_asn1.o: ../../include/openssl/rc5.h ../../include/openssl/rd_fst.h -pk7_asn1.o: ../../include/openssl/rijndael.h ../../include/openssl/ripemd.h pk7_asn1.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h pk7_asn1.o: ../../include/openssl/sha.h ../../include/openssl/stack.h pk7_asn1.o: ../../include/openssl/symhacks.h ../../include/openssl/x509.h -pk7_asn1.o: ../../include/openssl/x509_vfy.h ../cryptlib.h pk7_asn1.c +pk7_asn1.o: ../../include/openssl/x509_vfy.h ../cryptlib.h pk7_attr.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h -pk7_attr.o: ../../include/openssl/blowfish.h ../../include/openssl/bn.h -pk7_attr.o: ../../include/openssl/buffer.h ../../include/openssl/cast.h -pk7_attr.o: ../../include/openssl/crypto.h ../../include/openssl/des.h -pk7_attr.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h -pk7_attr.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h -pk7_attr.o: ../../include/openssl/evp.h ../../include/openssl/idea.h -pk7_attr.o: ../../include/openssl/lhash.h ../../include/openssl/md2.h -pk7_attr.o: ../../include/openssl/md4.h ../../include/openssl/md5.h -pk7_attr.o: ../../include/openssl/mdc2.h ../../include/openssl/obj_mac.h +pk7_attr.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h +pk7_attr.o: ../../include/openssl/crypto.h ../../include/openssl/dh.h +pk7_attr.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h +pk7_attr.o: ../../include/openssl/err.h ../../include/openssl/evp.h +pk7_attr.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h pk7_attr.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h pk7_attr.o: ../../include/openssl/opensslv.h ../../include/openssl/pem.h pk7_attr.o: ../../include/openssl/pem2.h ../../include/openssl/pkcs7.h -pk7_attr.o: ../../include/openssl/rc2.h ../../include/openssl/rc4.h -pk7_attr.o: ../../include/openssl/rc5.h ../../include/openssl/rd_fst.h -pk7_attr.o: ../../include/openssl/rijndael.h ../../include/openssl/ripemd.h pk7_attr.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h pk7_attr.o: ../../include/openssl/sha.h ../../include/openssl/stack.h pk7_attr.o: ../../include/openssl/symhacks.h ../../include/openssl/x509.h -pk7_attr.o: ../../include/openssl/x509_vfy.h pk7_attr.c +pk7_attr.o: ../../include/openssl/x509_vfy.h pk7_doit.o: ../../e_os.h ../../include/openssl/asn1.h -pk7_doit.o: ../../include/openssl/bio.h ../../include/openssl/blowfish.h -pk7_doit.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h -pk7_doit.o: ../../include/openssl/cast.h ../../include/openssl/conf.h -pk7_doit.o: ../../include/openssl/crypto.h ../../include/openssl/des.h -pk7_doit.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h -pk7_doit.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h -pk7_doit.o: ../../include/openssl/evp.h ../../include/openssl/idea.h -pk7_doit.o: ../../include/openssl/lhash.h ../../include/openssl/md2.h -pk7_doit.o: ../../include/openssl/md4.h ../../include/openssl/md5.h -pk7_doit.o: ../../include/openssl/mdc2.h ../../include/openssl/obj_mac.h +pk7_doit.o: ../../include/openssl/bio.h ../../include/openssl/bn.h +pk7_doit.o: ../../include/openssl/buffer.h ../../include/openssl/conf.h +pk7_doit.o: ../../include/openssl/crypto.h ../../include/openssl/dh.h +pk7_doit.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h +pk7_doit.o: ../../include/openssl/err.h ../../include/openssl/evp.h +pk7_doit.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h pk7_doit.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h pk7_doit.o: ../../include/openssl/opensslv.h ../../include/openssl/pkcs7.h -pk7_doit.o: ../../include/openssl/rand.h ../../include/openssl/rc2.h -pk7_doit.o: ../../include/openssl/rc4.h ../../include/openssl/rc5.h -pk7_doit.o: ../../include/openssl/rd_fst.h ../../include/openssl/rijndael.h -pk7_doit.o: ../../include/openssl/ripemd.h ../../include/openssl/rsa.h +pk7_doit.o: ../../include/openssl/rand.h ../../include/openssl/rsa.h pk7_doit.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h pk7_doit.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h pk7_doit.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h -pk7_doit.o: ../../include/openssl/x509v3.h ../cryptlib.h pk7_doit.c +pk7_doit.o: ../../include/openssl/x509v3.h ../cryptlib.h pk7_lib.o: ../../e_os.h ../../include/openssl/asn1.h -pk7_lib.o: ../../include/openssl/bio.h ../../include/openssl/blowfish.h -pk7_lib.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h -pk7_lib.o: ../../include/openssl/cast.h ../../include/openssl/crypto.h -pk7_lib.o: ../../include/openssl/des.h ../../include/openssl/dh.h -pk7_lib.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h -pk7_lib.o: ../../include/openssl/err.h ../../include/openssl/evp.h -pk7_lib.o: ../../include/openssl/idea.h ../../include/openssl/lhash.h -pk7_lib.o: ../../include/openssl/md2.h ../../include/openssl/md4.h -pk7_lib.o: ../../include/openssl/md5.h ../../include/openssl/mdc2.h +pk7_lib.o: ../../include/openssl/bio.h ../../include/openssl/bn.h +pk7_lib.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h +pk7_lib.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h +pk7_lib.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h +pk7_lib.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h pk7_lib.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h pk7_lib.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h -pk7_lib.o: ../../include/openssl/pkcs7.h ../../include/openssl/rc2.h -pk7_lib.o: ../../include/openssl/rc4.h ../../include/openssl/rc5.h -pk7_lib.o: ../../include/openssl/rd_fst.h ../../include/openssl/rijndael.h -pk7_lib.o: ../../include/openssl/ripemd.h ../../include/openssl/rsa.h +pk7_lib.o: ../../include/openssl/pkcs7.h ../../include/openssl/rsa.h pk7_lib.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h pk7_lib.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h pk7_lib.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h -pk7_lib.o: ../cryptlib.h pk7_lib.c +pk7_lib.o: ../cryptlib.h pk7_mime.o: ../../e_os.h ../../include/openssl/asn1.h -pk7_mime.o: ../../include/openssl/bio.h ../../include/openssl/blowfish.h -pk7_mime.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h -pk7_mime.o: ../../include/openssl/cast.h ../../include/openssl/crypto.h -pk7_mime.o: ../../include/openssl/des.h ../../include/openssl/dh.h -pk7_mime.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h -pk7_mime.o: ../../include/openssl/err.h ../../include/openssl/evp.h -pk7_mime.o: ../../include/openssl/idea.h ../../include/openssl/lhash.h -pk7_mime.o: ../../include/openssl/md2.h ../../include/openssl/md4.h -pk7_mime.o: ../../include/openssl/md5.h ../../include/openssl/mdc2.h +pk7_mime.o: ../../include/openssl/bio.h ../../include/openssl/bn.h +pk7_mime.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h +pk7_mime.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h +pk7_mime.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h +pk7_mime.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h pk7_mime.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h pk7_mime.o: ../../include/openssl/opensslconf.h pk7_mime.o: ../../include/openssl/opensslv.h ../../include/openssl/pkcs7.h -pk7_mime.o: ../../include/openssl/rand.h ../../include/openssl/rc2.h -pk7_mime.o: ../../include/openssl/rc4.h ../../include/openssl/rc5.h -pk7_mime.o: ../../include/openssl/rd_fst.h ../../include/openssl/rijndael.h -pk7_mime.o: ../../include/openssl/ripemd.h ../../include/openssl/rsa.h +pk7_mime.o: ../../include/openssl/rand.h ../../include/openssl/rsa.h pk7_mime.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h pk7_mime.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h pk7_mime.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h -pk7_mime.o: ../cryptlib.h pk7_mime.c +pk7_mime.o: ../cryptlib.h pk7_smime.o: ../../e_os.h ../../include/openssl/asn1.h -pk7_smime.o: ../../include/openssl/bio.h ../../include/openssl/blowfish.h -pk7_smime.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h -pk7_smime.o: ../../include/openssl/cast.h ../../include/openssl/conf.h -pk7_smime.o: ../../include/openssl/crypto.h ../../include/openssl/des.h -pk7_smime.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h -pk7_smime.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h -pk7_smime.o: ../../include/openssl/evp.h ../../include/openssl/idea.h -pk7_smime.o: ../../include/openssl/lhash.h ../../include/openssl/md2.h -pk7_smime.o: ../../include/openssl/md4.h ../../include/openssl/md5.h -pk7_smime.o: ../../include/openssl/mdc2.h ../../include/openssl/obj_mac.h +pk7_smime.o: ../../include/openssl/bio.h ../../include/openssl/bn.h +pk7_smime.o: ../../include/openssl/buffer.h ../../include/openssl/conf.h +pk7_smime.o: ../../include/openssl/crypto.h ../../include/openssl/dh.h +pk7_smime.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h +pk7_smime.o: ../../include/openssl/err.h ../../include/openssl/evp.h +pk7_smime.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h pk7_smime.o: ../../include/openssl/objects.h pk7_smime.o: ../../include/openssl/opensslconf.h pk7_smime.o: ../../include/openssl/opensslv.h ../../include/openssl/pkcs7.h -pk7_smime.o: ../../include/openssl/rc2.h ../../include/openssl/rc4.h -pk7_smime.o: ../../include/openssl/rc5.h ../../include/openssl/rd_fst.h -pk7_smime.o: ../../include/openssl/rijndael.h ../../include/openssl/ripemd.h pk7_smime.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h pk7_smime.o: ../../include/openssl/sha.h ../../include/openssl/stack.h pk7_smime.o: ../../include/openssl/symhacks.h ../../include/openssl/x509.h pk7_smime.o: ../../include/openssl/x509_vfy.h ../../include/openssl/x509v3.h -pk7_smime.o: ../cryptlib.h pk7_smime.c +pk7_smime.o: ../cryptlib.h pkcs7err.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h -pkcs7err.o: ../../include/openssl/blowfish.h ../../include/openssl/bn.h -pkcs7err.o: ../../include/openssl/buffer.h ../../include/openssl/cast.h -pkcs7err.o: ../../include/openssl/crypto.h ../../include/openssl/des.h -pkcs7err.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h -pkcs7err.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h -pkcs7err.o: ../../include/openssl/evp.h ../../include/openssl/idea.h -pkcs7err.o: ../../include/openssl/lhash.h ../../include/openssl/md2.h -pkcs7err.o: ../../include/openssl/md4.h ../../include/openssl/md5.h -pkcs7err.o: ../../include/openssl/mdc2.h ../../include/openssl/obj_mac.h +pkcs7err.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h +pkcs7err.o: ../../include/openssl/crypto.h ../../include/openssl/dh.h +pkcs7err.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h +pkcs7err.o: ../../include/openssl/err.h ../../include/openssl/evp.h +pkcs7err.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h pkcs7err.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h pkcs7err.o: ../../include/openssl/opensslv.h ../../include/openssl/pkcs7.h -pkcs7err.o: ../../include/openssl/rc2.h ../../include/openssl/rc4.h -pkcs7err.o: ../../include/openssl/rc5.h ../../include/openssl/rd_fst.h -pkcs7err.o: ../../include/openssl/rijndael.h ../../include/openssl/ripemd.h pkcs7err.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h pkcs7err.o: ../../include/openssl/sha.h ../../include/openssl/stack.h pkcs7err.o: ../../include/openssl/symhacks.h ../../include/openssl/x509.h -pkcs7err.o: ../../include/openssl/x509_vfy.h pkcs7err.c +pkcs7err.o: ../../include/openssl/x509_vfy.h diff --git a/crypto/pkcs7/pk7_doit.c b/crypto/pkcs7/pk7_doit.c index 921195f934..e2c82a2a6c 100644 --- a/crypto/pkcs7/pk7_doit.c +++ b/crypto/pkcs7/pk7_doit.c @@ -537,7 +537,8 @@ int PKCS7_dataFinal(PKCS7 *p7, BIO *bio) /* We now have the EVP_MD_CTX, lets do the * signing. */ - memcpy(&ctx_tmp,mdc,sizeof(ctx_tmp)); + EVP_MD_CTX_init(&ctx_tmp); + EVP_MD_CTX_copy(&ctx_tmp,mdc); if (!BUF_MEM_grow(buf,EVP_PKEY_size(si->pkey))) { PKCS7err(PKCS7_F_PKCS7_DATASIGN,ERR_R_BIO_LIB); @@ -623,6 +624,7 @@ int PKCS7_dataFinal(PKCS7 *p7, BIO *bio) } ret=1; err: + EVP_MD_CTX_cleanup(&ctx_tmp); if (buf != NULL) BUF_MEM_free(buf); return(ret); } @@ -688,6 +690,8 @@ int PKCS7_signatureVerify(BIO *bio, PKCS7 *p7, PKCS7_SIGNER_INFO *si, BIO *btmp; EVP_PKEY *pkey; + EVP_MD_CTX_init(&mdc_tmp); + if (!PKCS7_type_is_signed(p7) && !PKCS7_type_is_signedAndEnveloped(p7)) { PKCS7err(PKCS7_F_PKCS7_SIGNATUREVERIFY, @@ -721,7 +725,7 @@ int PKCS7_signatureVerify(BIO *bio, PKCS7 *p7, PKCS7_SIGNER_INFO *si, /* mdc is the digest ctx that we want, unless there are attributes, * in which case the digest is the signed attributes */ - memcpy(&mdc_tmp,mdc,sizeof(mdc_tmp)); + EVP_MD_CTX_copy(&mdc_tmp,mdc); sk=si->auth_attr; if ((sk != NULL) && (sk_X509_ATTRIBUTE_num(sk) != 0)) @@ -787,6 +791,7 @@ for (ii=0; ii