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) |
