summaryrefslogtreecommitdiff
path: root/src/lib/libcrypto/x509v3/v3_alt.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/libcrypto/x509v3/v3_alt.c')
-rw-r--r--src/lib/libcrypto/x509v3/v3_alt.c49
1 files changed, 21 insertions, 28 deletions
diff --git a/src/lib/libcrypto/x509v3/v3_alt.c b/src/lib/libcrypto/x509v3/v3_alt.c
index 23867ea449..746339bebd 100644
--- a/src/lib/libcrypto/x509v3/v3_alt.c
+++ b/src/lib/libcrypto/x509v3/v3_alt.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: v3_alt.c,v 1.26 2016/12/30 15:54:49 jsing Exp $ */ 1/* $OpenBSD: v3_alt.c,v 1.27 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. 3 * project.
4 */ 4 */
@@ -279,7 +279,7 @@ v2i_issuer_alt(X509V3_EXT_METHOD *method, X509V3_CTX *ctx,
279 int i; 279 int i;
280 280
281 if ((gens = sk_GENERAL_NAME_new_null()) == NULL) { 281 if ((gens = sk_GENERAL_NAME_new_null()) == NULL) {
282 X509V3err(X509V3_F_V2I_ISSUER_ALT, ERR_R_MALLOC_FAILURE); 282 X509V3error(ERR_R_MALLOC_FAILURE);
283 return NULL; 283 return NULL;
284 } 284 }
285 for (i = 0; i < sk_CONF_VALUE_num(nval); i++) { 285 for (i = 0; i < sk_CONF_VALUE_num(nval); i++) {
@@ -318,7 +318,7 @@ copy_issuer(X509V3_CTX *ctx, GENERAL_NAMES *gens)
318 if (ctx && (ctx->flags == CTX_TEST)) 318 if (ctx && (ctx->flags == CTX_TEST))
319 return 1; 319 return 1;
320 if (!ctx || !ctx->issuer_cert) { 320 if (!ctx || !ctx->issuer_cert) {
321 X509V3err(X509V3_F_COPY_ISSUER, X509V3_R_NO_ISSUER_DETAILS); 321 X509V3error(X509V3_R_NO_ISSUER_DETAILS);
322 goto err; 322 goto err;
323 } 323 }
324 i = X509_get_ext_by_NID(ctx->issuer_cert, NID_subject_alt_name, -1); 324 i = X509_get_ext_by_NID(ctx->issuer_cert, NID_subject_alt_name, -1);
@@ -326,14 +326,14 @@ copy_issuer(X509V3_CTX *ctx, GENERAL_NAMES *gens)
326 return 1; 326 return 1;
327 if (!(ext = X509_get_ext(ctx->issuer_cert, i)) || 327 if (!(ext = X509_get_ext(ctx->issuer_cert, i)) ||
328 !(ialt = X509V3_EXT_d2i(ext))) { 328 !(ialt = X509V3_EXT_d2i(ext))) {
329 X509V3err(X509V3_F_COPY_ISSUER, X509V3_R_ISSUER_DECODE_ERROR); 329 X509V3error(X509V3_R_ISSUER_DECODE_ERROR);
330 goto err; 330 goto err;
331 } 331 }
332 332
333 for (i = 0; i < sk_GENERAL_NAME_num(ialt); i++) { 333 for (i = 0; i < sk_GENERAL_NAME_num(ialt); i++) {
334 gen = sk_GENERAL_NAME_value(ialt, i); 334 gen = sk_GENERAL_NAME_value(ialt, i);
335 if (!sk_GENERAL_NAME_push(gens, gen)) { 335 if (!sk_GENERAL_NAME_push(gens, gen)) {
336 X509V3err(X509V3_F_COPY_ISSUER, ERR_R_MALLOC_FAILURE); 336 X509V3error(ERR_R_MALLOC_FAILURE);
337 goto err; 337 goto err;
338 } 338 }
339 } 339 }
@@ -355,7 +355,7 @@ v2i_subject_alt(X509V3_EXT_METHOD *method, X509V3_CTX *ctx,
355 int i; 355 int i;
356 356
357 if (!(gens = sk_GENERAL_NAME_new_null())) { 357 if (!(gens = sk_GENERAL_NAME_new_null())) {
358 X509V3err(X509V3_F_V2I_SUBJECT_ALT, ERR_R_MALLOC_FAILURE); 358 X509V3error(ERR_R_MALLOC_FAILURE);
359 return NULL; 359 return NULL;
360 } 360 }
361 for (i = 0; i < sk_CONF_VALUE_num(nval); i++) { 361 for (i = 0; i < sk_CONF_VALUE_num(nval); i++) {
@@ -401,7 +401,7 @@ copy_email(X509V3_CTX *ctx, GENERAL_NAMES *gens, int move_p)
401 if (ctx != NULL && ctx->flags == CTX_TEST) 401 if (ctx != NULL && ctx->flags == CTX_TEST)
402 return 1; 402 return 1;
403 if (!ctx || (!ctx->subject_cert && !ctx->subject_req)) { 403 if (!ctx || (!ctx->subject_cert && !ctx->subject_req)) {
404 X509V3err(X509V3_F_COPY_EMAIL, X509V3_R_NO_SUBJECT_DETAILS); 404 X509V3error(X509V3_R_NO_SUBJECT_DETAILS);
405 goto err; 405 goto err;
406 } 406 }
407 /* Find the subject name */ 407 /* Find the subject name */
@@ -422,14 +422,14 @@ copy_email(X509V3_CTX *ctx, GENERAL_NAMES *gens, int move_p)
422 i--; 422 i--;
423 } 423 }
424 if (!email || !(gen = GENERAL_NAME_new())) { 424 if (!email || !(gen = GENERAL_NAME_new())) {
425 X509V3err(X509V3_F_COPY_EMAIL, ERR_R_MALLOC_FAILURE); 425 X509V3error(ERR_R_MALLOC_FAILURE);
426 goto err; 426 goto err;
427 } 427 }
428 gen->d.ia5 = email; 428 gen->d.ia5 = email;
429 email = NULL; 429 email = NULL;
430 gen->type = GEN_EMAIL; 430 gen->type = GEN_EMAIL;
431 if (!sk_GENERAL_NAME_push(gens, gen)) { 431 if (!sk_GENERAL_NAME_push(gens, gen)) {
432 X509V3err(X509V3_F_COPY_EMAIL, ERR_R_MALLOC_FAILURE); 432 X509V3error(ERR_R_MALLOC_FAILURE);
433 goto err; 433 goto err;
434 } 434 }
435 gen = NULL; 435 gen = NULL;
@@ -453,7 +453,7 @@ v2i_GENERAL_NAMES(const X509V3_EXT_METHOD *method, X509V3_CTX *ctx,
453 int i; 453 int i;
454 454
455 if (!(gens = sk_GENERAL_NAME_new_null())) { 455 if (!(gens = sk_GENERAL_NAME_new_null())) {
456 X509V3err(X509V3_F_V2I_GENERAL_NAMES, ERR_R_MALLOC_FAILURE); 456 X509V3error(ERR_R_MALLOC_FAILURE);
457 return NULL; 457 return NULL;
458 } 458 }
459 for (i = 0; i < sk_CONF_VALUE_num(nval); i++) { 459 for (i = 0; i < sk_CONF_VALUE_num(nval); i++) {
@@ -487,7 +487,7 @@ a2i_GENERAL_NAME(GENERAL_NAME *out, const X509V3_EXT_METHOD *method,
487 GENERAL_NAME *gen = NULL; 487 GENERAL_NAME *gen = NULL;
488 488
489 if (!value) { 489 if (!value) {
490 X509V3err(X509V3_F_A2I_GENERAL_NAME, X509V3_R_MISSING_VALUE); 490 X509V3error(X509V3_R_MISSING_VALUE);
491 return NULL; 491 return NULL;
492 } 492 }
493 493
@@ -496,8 +496,7 @@ a2i_GENERAL_NAME(GENERAL_NAME *out, const X509V3_EXT_METHOD *method,
496 else { 496 else {
497 gen = GENERAL_NAME_new(); 497 gen = GENERAL_NAME_new();
498 if (gen == NULL) { 498 if (gen == NULL) {
499 X509V3err(X509V3_F_A2I_GENERAL_NAME, 499 X509V3error(ERR_R_MALLOC_FAILURE);
500 ERR_R_MALLOC_FAILURE);
501 return NULL; 500 return NULL;
502 } 501 }
503 } 502 }
@@ -513,8 +512,7 @@ a2i_GENERAL_NAME(GENERAL_NAME *out, const X509V3_EXT_METHOD *method,
513 { 512 {
514 ASN1_OBJECT *obj; 513 ASN1_OBJECT *obj;
515 if (!(obj = OBJ_txt2obj(value, 0))) { 514 if (!(obj = OBJ_txt2obj(value, 0))) {
516 X509V3err(X509V3_F_A2I_GENERAL_NAME, 515 X509V3error(X509V3_R_BAD_OBJECT);
517 X509V3_R_BAD_OBJECT);
518 ERR_asprintf_error_data("value=%s", value); 516 ERR_asprintf_error_data("value=%s", value);
519 goto err; 517 goto err;
520 } 518 }
@@ -528,8 +526,7 @@ a2i_GENERAL_NAME(GENERAL_NAME *out, const X509V3_EXT_METHOD *method,
528 else 526 else
529 gen->d.ip = a2i_IPADDRESS(value); 527 gen->d.ip = a2i_IPADDRESS(value);
530 if (gen->d.ip == NULL) { 528 if (gen->d.ip == NULL) {
531 X509V3err(X509V3_F_A2I_GENERAL_NAME, 529 X509V3error(X509V3_R_BAD_IP_ADDRESS);
532 X509V3_R_BAD_IP_ADDRESS);
533 ERR_asprintf_error_data("value=%s", value); 530 ERR_asprintf_error_data("value=%s", value);
534 goto err; 531 goto err;
535 } 532 }
@@ -537,22 +534,20 @@ a2i_GENERAL_NAME(GENERAL_NAME *out, const X509V3_EXT_METHOD *method,
537 534
538 case GEN_DIRNAME: 535 case GEN_DIRNAME:
539 if (!do_dirname(gen, value, ctx)) { 536 if (!do_dirname(gen, value, ctx)) {
540 X509V3err(X509V3_F_A2I_GENERAL_NAME, 537 X509V3error(X509V3_R_DIRNAME_ERROR);
541 X509V3_R_DIRNAME_ERROR);
542 goto err; 538 goto err;
543 } 539 }
544 break; 540 break;
545 541
546 case GEN_OTHERNAME: 542 case GEN_OTHERNAME:
547 if (!do_othername(gen, value, ctx)) { 543 if (!do_othername(gen, value, ctx)) {
548 X509V3err(X509V3_F_A2I_GENERAL_NAME, 544 X509V3error(X509V3_R_OTHERNAME_ERROR);
549 X509V3_R_OTHERNAME_ERROR);
550 goto err; 545 goto err;
551 } 546 }
552 break; 547 break;
553 548
554 default: 549 default:
555 X509V3err(X509V3_F_A2I_GENERAL_NAME, X509V3_R_UNSUPPORTED_TYPE); 550 X509V3error(X509V3_R_UNSUPPORTED_TYPE);
556 goto err; 551 goto err;
557 } 552 }
558 553
@@ -560,8 +555,7 @@ a2i_GENERAL_NAME(GENERAL_NAME *out, const X509V3_EXT_METHOD *method,
560 if (!(gen->d.ia5 = ASN1_IA5STRING_new()) || 555 if (!(gen->d.ia5 = ASN1_IA5STRING_new()) ||
561 !ASN1_STRING_set(gen->d.ia5, (unsigned char*)value, 556 !ASN1_STRING_set(gen->d.ia5, (unsigned char*)value,
562 strlen(value))) { 557 strlen(value))) {
563 X509V3err(X509V3_F_A2I_GENERAL_NAME, 558 X509V3error(ERR_R_MALLOC_FAILURE);
564 ERR_R_MALLOC_FAILURE);
565 goto err; 559 goto err;
566 } 560 }
567 } 561 }
@@ -587,7 +581,7 @@ v2i_GENERAL_NAME_ex(GENERAL_NAME *out, const X509V3_EXT_METHOD *method,
587 value = cnf->value; 581 value = cnf->value;
588 582
589 if (!value) { 583 if (!value) {
590 X509V3err(X509V3_F_V2I_GENERAL_NAME_EX, X509V3_R_MISSING_VALUE); 584 X509V3error(X509V3_R_MISSING_VALUE);
591 return NULL; 585 return NULL;
592 } 586 }
593 587
@@ -606,8 +600,7 @@ v2i_GENERAL_NAME_ex(GENERAL_NAME *out, const X509V3_EXT_METHOD *method,
606 else if (!name_cmp(name, "otherName")) 600 else if (!name_cmp(name, "otherName"))
607 type = GEN_OTHERNAME; 601 type = GEN_OTHERNAME;
608 else { 602 else {
609 X509V3err(X509V3_F_V2I_GENERAL_NAME_EX, 603 X509V3error(X509V3_R_UNSUPPORTED_OPTION);
610 X509V3_R_UNSUPPORTED_OPTION);
611 ERR_asprintf_error_data("name=%s", name); 604 ERR_asprintf_error_data("name=%s", name);
612 return NULL; 605 return NULL;
613 } 606 }
@@ -655,7 +648,7 @@ do_dirname(GENERAL_NAME *gen, char *value, X509V3_CTX *ctx)
655 return 0; 648 return 0;
656 sk = X509V3_get_section(ctx, value); 649 sk = X509V3_get_section(ctx, value);
657 if (!sk) { 650 if (!sk) {
658 X509V3err(X509V3_F_DO_DIRNAME, X509V3_R_SECTION_NOT_FOUND); 651 X509V3error(X509V3_R_SECTION_NOT_FOUND);
659 ERR_asprintf_error_data("section=%s", value); 652 ERR_asprintf_error_data("section=%s", value);
660 X509_NAME_free(nm); 653 X509_NAME_free(nm);
661 return 0; 654 return 0;