diff options
Diffstat (limited to 'src/lib/libcrypto/x509v3/v3_akey.c')
| -rw-r--r-- | src/lib/libcrypto/x509v3/v3_akey.c | 45 |
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) * | |||
| 91 | i2v_AUTHORITY_KEYID(X509V3_EXT_METHOD *method, AUTHORITY_KEYID *akeyid, | 91 | i2v_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 | /* |
