summaryrefslogtreecommitdiff
path: root/src/lib/libcrypto/x509v3/v3_akey.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/libcrypto/x509v3/v3_akey.c')
-rw-r--r--src/lib/libcrypto/x509v3/v3_akey.c45
1 files changed, 32 insertions, 13 deletions
diff --git a/src/lib/libcrypto/x509v3/v3_akey.c b/src/lib/libcrypto/x509v3/v3_akey.c
index 3b57fd21f7..65184b19b6 100644
--- a/src/lib/libcrypto/x509v3/v3_akey.c
+++ b/src/lib/libcrypto/x509v3/v3_akey.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: v3_akey.c,v 1.20 2019/04/21 08:07:47 tb Exp $ */ 1/* $OpenBSD: v3_akey.c,v 1.21 2019/04/21 16:50:34 tb Exp $ */
2/* Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL 2/* Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL
3 * project 1999. 3 * project 1999.
4 */ 4 */
@@ -91,22 +91,41 @@ static STACK_OF(CONF_VALUE) *
91i2v_AUTHORITY_KEYID(X509V3_EXT_METHOD *method, AUTHORITY_KEYID *akeyid, 91i2v_AUTHORITY_KEYID(X509V3_EXT_METHOD *method, AUTHORITY_KEYID *akeyid,
92 STACK_OF(CONF_VALUE) *extlist) 92 STACK_OF(CONF_VALUE) *extlist)
93{ 93{
94 char *tmp; 94 char *tmpstr = NULL;
95 95
96 if (akeyid->keyid) { 96 if (akeyid->keyid != NULL) {
97 tmp = hex_to_string(akeyid->keyid->data, akeyid->keyid->length); 97 if ((tmpstr = hex_to_string(akeyid->keyid->data,
98 X509V3_add_value("keyid", tmp, &extlist); 98 akeyid->keyid->length)) == NULL)
99 free(tmp); 99 goto err;
100 if (!X509V3_add_value("keyid", tmpstr, &extlist))
101 goto err;
102 free(tmpstr);
103 tmpstr = NULL;
100 } 104 }
101 if (akeyid->issuer) 105
102 extlist = i2v_GENERAL_NAMES(NULL, akeyid->issuer, extlist); 106 if (akeyid->issuer != NULL) {
103 if (akeyid->serial) { 107 if ((extlist = i2v_GENERAL_NAMES(NULL, akeyid->issuer,
104 tmp = hex_to_string(akeyid->serial->data, 108 extlist)) == NULL)
105 akeyid->serial->length); 109 goto err;
106 X509V3_add_value("serial", tmp, &extlist);
107 free(tmp);
108 } 110 }
111
112 if (akeyid->serial != NULL) {
113 if ((tmpstr = hex_to_string(akeyid->serial->data,
114 akeyid->serial->length)) == NULL)
115 goto err;
116 if (!X509V3_add_value("serial", tmpstr, &extlist))
117 goto err;
118 free(tmpstr);
119 tmpstr = NULL;
120 }
121
109 return extlist; 122 return extlist;
123
124 err:
125 free(tmpstr);
126 sk_CONF_VALUE_pop_free(extlist, X509V3_conf_free);
127
128 return NULL;
110} 129}
111 130
112/* 131/*