diff options
Diffstat (limited to 'src/lib/libcrypto/x509v3/v3_conf.c')
-rw-r--r-- | src/lib/libcrypto/x509v3/v3_conf.c | 37 |
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 | ||
218 | merr: | 213 | merr: |
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 * | |||
414 | X509V3_get_string(X509V3_CTX *ctx, char *name, char *section) | 407 | X509V3_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) * | |||
427 | X509V3_get_section(X509V3_CTX *ctx, char *section) | 419 | X509V3_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) |