summaryrefslogtreecommitdiff
path: root/src/lib/libcrypto/x509v3/v3_conf.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/libcrypto/x509v3/v3_conf.c')
-rw-r--r--src/lib/libcrypto/x509v3/v3_conf.c37
1 files changed, 14 insertions, 23 deletions
diff --git a/src/lib/libcrypto/x509v3/v3_conf.c b/src/lib/libcrypto/x509v3/v3_conf.c
index 6847985913..27e1bc9f57 100644
--- a/src/lib/libcrypto/x509v3/v3_conf.c
+++ b/src/lib/libcrypto/x509v3/v3_conf.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: v3_conf.c,v 1.20 2016/12/30 15:54:49 jsing Exp $ */ 1/* $OpenBSD: v3_conf.c,v 1.21 2017/01/29 17:49:23 beck 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 */
@@ -93,8 +93,7 @@ X509V3_EXT_nconf(CONF *conf, X509V3_CTX *ctx, char *name, char *value)
93 return v3_generic_extension(name, value, crit, ext_type, ctx); 93 return v3_generic_extension(name, value, crit, ext_type, ctx);
94 ret = do_ext_nconf(conf, ctx, OBJ_sn2nid(name), crit, value); 94 ret = do_ext_nconf(conf, ctx, OBJ_sn2nid(name), crit, value);
95 if (!ret) { 95 if (!ret) {
96 X509V3err(X509V3_F_X509V3_EXT_NCONF, 96 X509V3error(X509V3_R_ERROR_IN_EXTENSION);
97 X509V3_R_ERROR_IN_EXTENSION);
98 ERR_asprintf_error_data("name=%s, value=%s", name, value); 97 ERR_asprintf_error_data("name=%s, value=%s", name, value);
99 } 98 }
100 return ret; 99 return ret;
@@ -125,12 +124,11 @@ do_ext_nconf(CONF *conf, X509V3_CTX *ctx, int ext_nid, int crit, char *value)
125 void *ext_struc; 124 void *ext_struc;
126 125
127 if (ext_nid == NID_undef) { 126 if (ext_nid == NID_undef) {
128 X509V3err(X509V3_F_DO_EXT_NCONF, 127 X509V3error(X509V3_R_UNKNOWN_EXTENSION_NAME);
129 X509V3_R_UNKNOWN_EXTENSION_NAME);
130 return NULL; 128 return NULL;
131 } 129 }
132 if (!(method = X509V3_EXT_get_nid(ext_nid))) { 130 if (!(method = X509V3_EXT_get_nid(ext_nid))) {
133 X509V3err(X509V3_F_DO_EXT_NCONF, X509V3_R_UNKNOWN_EXTENSION); 131 X509V3error(X509V3_R_UNKNOWN_EXTENSION);
134 return NULL; 132 return NULL;
135 } 133 }
136 /* Now get internal extension representation based on type */ 134 /* Now get internal extension representation based on type */
@@ -142,8 +140,7 @@ do_ext_nconf(CONF *conf, X509V3_CTX *ctx, int ext_nid, int crit, char *value)
142 else 140 else
143 nval = X509V3_parse_list(value); 141 nval = X509V3_parse_list(value);
144 if (sk_CONF_VALUE_num(nval) <= 0) { 142 if (sk_CONF_VALUE_num(nval) <= 0) {
145 X509V3err(X509V3_F_DO_EXT_NCONF, 143 X509V3error(X509V3_R_INVALID_EXTENSION_STRING);
146 X509V3_R_INVALID_EXTENSION_STRING);
147 ERR_asprintf_error_data("name=%s,section=%s", 144 ERR_asprintf_error_data("name=%s,section=%s",
148 OBJ_nid2sn(ext_nid), value); 145 OBJ_nid2sn(ext_nid), value);
149 if (*value != '@') 146 if (*value != '@')
@@ -157,14 +154,12 @@ do_ext_nconf(CONF *conf, X509V3_CTX *ctx, int ext_nid, int crit, char *value)
157 ext_struc = method->s2i(method, ctx, value); 154 ext_struc = method->s2i(method, ctx, value);
158 } else if (method->r2i) { 155 } else if (method->r2i) {
159 if (!ctx->db || !ctx->db_meth) { 156 if (!ctx->db || !ctx->db_meth) {
160 X509V3err(X509V3_F_DO_EXT_NCONF, 157 X509V3error(X509V3_R_NO_CONFIG_DATABASE);
161 X509V3_R_NO_CONFIG_DATABASE);
162 return NULL; 158 return NULL;
163 } 159 }
164 ext_struc = method->r2i(method, ctx, value); 160 ext_struc = method->r2i(method, ctx, value);
165 } else { 161 } else {
166 X509V3err(X509V3_F_DO_EXT_NCONF, 162 X509V3error(X509V3_R_EXTENSION_SETTING_NOT_SUPPORTED);
167 X509V3_R_EXTENSION_SETTING_NOT_SUPPORTED);
168 ERR_asprintf_error_data("name=%s", OBJ_nid2sn(ext_nid)); 163 ERR_asprintf_error_data("name=%s", OBJ_nid2sn(ext_nid));
169 return NULL; 164 return NULL;
170 } 165 }
@@ -217,7 +212,7 @@ do_ext_i2d(const X509V3_EXT_METHOD *method, int ext_nid, int crit,
217 212
218merr: 213merr:
219 ASN1_OCTET_STRING_free(ext_oct); 214 ASN1_OCTET_STRING_free(ext_oct);
220 X509V3err(X509V3_F_DO_EXT_I2D, ERR_R_MALLOC_FAILURE); 215 X509V3error(ERR_R_MALLOC_FAILURE);
221 return NULL; 216 return NULL;
222 217
223} 218}
@@ -230,7 +225,7 @@ X509V3_EXT_i2d(int ext_nid, int crit, void *ext_struc)
230 const X509V3_EXT_METHOD *method; 225 const X509V3_EXT_METHOD *method;
231 226
232 if (!(method = X509V3_EXT_get_nid(ext_nid))) { 227 if (!(method = X509V3_EXT_get_nid(ext_nid))) {
233 X509V3err(X509V3_F_X509V3_EXT_I2D, X509V3_R_UNKNOWN_EXTENSION); 228 X509V3error(X509V3_R_UNKNOWN_EXTENSION);
234 return NULL; 229 return NULL;
235 } 230 }
236 return do_ext_i2d(method, ext_nid, crit, ext_struc); 231 return do_ext_i2d(method, ext_nid, crit, ext_struc);
@@ -284,8 +279,7 @@ v3_generic_extension(const char *ext, char *value, int crit, int gen_type,
284 X509_EXTENSION *extension = NULL; 279 X509_EXTENSION *extension = NULL;
285 280
286 if (!(obj = OBJ_txt2obj(ext, 0))) { 281 if (!(obj = OBJ_txt2obj(ext, 0))) {
287 X509V3err(X509V3_F_V3_GENERIC_EXTENSION, 282 X509V3error(X509V3_R_EXTENSION_NAME_ERROR);
288 X509V3_R_EXTENSION_NAME_ERROR);
289 ERR_asprintf_error_data("name=%s", ext); 283 ERR_asprintf_error_data("name=%s", ext);
290 goto err; 284 goto err;
291 } 285 }
@@ -300,14 +294,13 @@ v3_generic_extension(const char *ext, char *value, int crit, int gen_type,
300 } 294 }
301 295
302 if (ext_der == NULL) { 296 if (ext_der == NULL) {
303 X509V3err(X509V3_F_V3_GENERIC_EXTENSION, 297 X509V3error(X509V3_R_EXTENSION_VALUE_ERROR);
304 X509V3_R_EXTENSION_VALUE_ERROR);
305 ERR_asprintf_error_data("value=%s", value); 298 ERR_asprintf_error_data("value=%s", value);
306 goto err; 299 goto err;
307 } 300 }
308 301
309 if (!(oct = ASN1_OCTET_STRING_new())) { 302 if (!(oct = ASN1_OCTET_STRING_new())) {
310 X509V3err(X509V3_F_V3_GENERIC_EXTENSION, ERR_R_MALLOC_FAILURE); 303 X509V3error(ERR_R_MALLOC_FAILURE);
311 goto err; 304 goto err;
312 } 305 }
313 306
@@ -414,8 +407,7 @@ char *
414X509V3_get_string(X509V3_CTX *ctx, char *name, char *section) 407X509V3_get_string(X509V3_CTX *ctx, char *name, char *section)
415{ 408{
416 if (!ctx->db || !ctx->db_meth || !ctx->db_meth->get_string) { 409 if (!ctx->db || !ctx->db_meth || !ctx->db_meth->get_string) {
417 X509V3err(X509V3_F_X509V3_GET_STRING, 410 X509V3error(X509V3_R_OPERATION_NOT_DEFINED);
418 X509V3_R_OPERATION_NOT_DEFINED);
419 return NULL; 411 return NULL;
420 } 412 }
421 if (ctx->db_meth->get_string) 413 if (ctx->db_meth->get_string)
@@ -427,8 +419,7 @@ STACK_OF(CONF_VALUE) *
427X509V3_get_section(X509V3_CTX *ctx, char *section) 419X509V3_get_section(X509V3_CTX *ctx, char *section)
428{ 420{
429 if (!ctx->db || !ctx->db_meth || !ctx->db_meth->get_section) { 421 if (!ctx->db || !ctx->db_meth || !ctx->db_meth->get_section) {
430 X509V3err(X509V3_F_X509V3_GET_SECTION, 422 X509V3error(X509V3_R_OPERATION_NOT_DEFINED);
431 X509V3_R_OPERATION_NOT_DEFINED);
432 return NULL; 423 return NULL;
433 } 424 }
434 if (ctx->db_meth->get_section) 425 if (ctx->db_meth->get_section)