summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDr. Stephen Henson <steve@openssl.org>1999-10-05 12:57:50 +0000
committerDr. Stephen Henson <steve@openssl.org>1999-10-05 12:57:50 +0000
commit2d681b779cf0936b441914eabff301e3b036f6a2 (patch)
tree2512d3556656d5790fbac5acf04a5e752b7b1a06
parent3908cdf442e3394ee7fa52b46d8715796ca5ea6a (diff)
Fix for bug in pkcs12 program and typo in ASN1_tag2str().
-rw-r--r--CHANGES4
-rw-r--r--apps/pkcs12.c7
-rw-r--r--crypto/asn1/asn1_par.c2
3 files changed, 9 insertions, 4 deletions
diff --git a/CHANGES b/CHANGES
index 8ee6b2ea11..f0e812cae7 100644
--- a/CHANGES
+++ b/CHANGES
@@ -4,6 +4,10 @@
Changes between 0.9.4 and 0.9.5 [xx XXX 1999]
+ *) Fix for pkcs12 program. It was hashing an invalid certificate pointer
+ when producing the local key id.
+ [Richard Levitte <levitte@stacken.kth.se>]
+
*) New option -dhparam in s_server. This allows a DH parameter file to be
stated explicitly. If it is not stated then it tries the first server
certificate file. The previous behaviour hard coded the filename
diff --git a/apps/pkcs12.c b/apps/pkcs12.c
index 5defddeb32..f6b444b5f6 100644
--- a/apps/pkcs12.c
+++ b/apps/pkcs12.c
@@ -281,13 +281,13 @@ int MAIN(int argc, char **argv)
}
}
-if (export_cert) {
+ if (export_cert) {
EVP_PKEY *key;
STACK *bags, *safes;
PKCS12_SAFEBAG *bag;
PKCS8_PRIV_KEY_INFO *p8;
PKCS7 *authsafe;
- X509 *cert = NULL, *ucert = NULL;
+ X509 *ucert = NULL;
STACK_OF(X509) *certs;
char *catmp;
int i;
@@ -313,7 +313,7 @@ if (export_cert) {
for(i = 0; i < sk_X509_num(certs); i++) {
ucert = sk_X509_value(certs, i);
if(X509_check_private_key(ucert, key)) {
- X509_digest(cert, EVP_sha1(), keyid, &keyidlen);
+ X509_digest(ucert, EVP_sha1(), keyid, &keyidlen);
break;
}
}
@@ -354,6 +354,7 @@ if (export_cert) {
/* We now have loads of certificates: include them all */
for(i = 0; i < sk_X509_num(certs); i++) {
+ X509 *cert = NULL;
cert = sk_X509_value(certs, i);
bag = M_PKCS12_x5092certbag(cert);
/* If it matches private key set id */
diff --git a/crypto/asn1/asn1_par.c b/crypto/asn1/asn1_par.c
index 8209b7f240..5a628a4bc2 100644
--- a/crypto/asn1/asn1_par.c
+++ b/crypto/asn1/asn1_par.c
@@ -371,7 +371,7 @@ const char *ASN1_tag2str(int tag)
"ENUMERATED", "<ASN1 11>", "UTF8STRING", "<ASN1 13>", /* 10-13 */
"<ASN1 14>", "<ASN1 15>", "SEQUENCE", "SET", /* 15-17 */
"NUMERICSTRING", "PRINTABLESTRING", "T61STRING", /* 18-20 */
- "VIDEOTEXSTRING", "IA5STRING", "UTCTIME" "GENERALIZEDTIME", /* 21-24 */
+ "VIDEOTEXSTRING", "IA5STRING", "UTCTIME","GENERALIZEDTIME", /* 21-24 */
"GRAPHICSTRING", "VISIBLESTRING", "GENERALSTRING", /* 25-27 */
"UNIVERSALSTRING", "<ASN1 29>", "BMPSTRING" /* 28-30 */
};