summaryrefslogtreecommitdiff
path: root/src/lib/libcrypto/x509v3/v3_utl.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/libcrypto/x509v3/v3_utl.c')
-rw-r--r--src/lib/libcrypto/x509v3/v3_utl.c47
1 files changed, 22 insertions, 25 deletions
diff --git a/src/lib/libcrypto/x509v3/v3_utl.c b/src/lib/libcrypto/x509v3/v3_utl.c
index e030234540..2cb53008e3 100644
--- a/src/lib/libcrypto/x509v3/v3_utl.c
+++ b/src/lib/libcrypto/x509v3/v3_utl.c
@@ -67,9 +67,9 @@
67 67
68static char *strip_spaces(char *name); 68static char *strip_spaces(char *name);
69static int sk_strcmp(const char * const *a, const char * const *b); 69static int sk_strcmp(const char * const *a, const char * const *b);
70static STACK_OF(OPENSSL_STRING) *get_email(X509_NAME *name, GENERAL_NAMES *gens); 70static STACK *get_email(X509_NAME *name, GENERAL_NAMES *gens);
71static void str_free(OPENSSL_STRING str); 71static void str_free(void *str);
72static int append_ia5(STACK_OF(OPENSSL_STRING) **sk, ASN1_IA5STRING *email); 72static int append_ia5(STACK **sk, ASN1_IA5STRING *email);
73 73
74static int ipv4_from_asc(unsigned char *v4, const char *in); 74static int ipv4_from_asc(unsigned char *v4, const char *in);
75static int ipv6_from_asc(unsigned char *v6, const char *in); 75static int ipv6_from_asc(unsigned char *v6, const char *in);
@@ -344,7 +344,7 @@ static char *strip_spaces(char *name)
344 char *p, *q; 344 char *p, *q;
345 /* Skip over leading spaces */ 345 /* Skip over leading spaces */
346 p = name; 346 p = name;
347 while(*p && isspace((unsigned char)*p)) p++; 347 while(isspace((unsigned char)*p)) p++;
348 if(!*p) return NULL; 348 if(!*p) return NULL;
349 q = p + strlen(p) - 1; 349 q = p + strlen(p) - 1;
350 while((q != p) && isspace((unsigned char)*q)) q--; 350 while((q != p) && isspace((unsigned char)*q)) q--;
@@ -360,10 +360,10 @@ static char *strip_spaces(char *name)
360 * @@@ (Contents of buffer are always kept in ASCII, also on EBCDIC machines) 360 * @@@ (Contents of buffer are always kept in ASCII, also on EBCDIC machines)
361 */ 361 */
362 362
363char *hex_to_string(const unsigned char *buffer, long len) 363char *hex_to_string(unsigned char *buffer, long len)
364{ 364{
365 char *tmp, *q; 365 char *tmp, *q;
366 const unsigned char *p; 366 unsigned char *p;
367 int i; 367 int i;
368 const static char hexdig[] = "0123456789ABCDEF"; 368 const static char hexdig[] = "0123456789ABCDEF";
369 if(!buffer || !len) return NULL; 369 if(!buffer || !len) return NULL;
@@ -389,7 +389,7 @@ char *hex_to_string(const unsigned char *buffer, long len)
389 * a buffer 389 * a buffer
390 */ 390 */
391 391
392unsigned char *string_to_hex(const char *str, long *len) 392unsigned char *string_to_hex(char *str, long *len)
393{ 393{
394 unsigned char *hexbuf, *q; 394 unsigned char *hexbuf, *q;
395 unsigned char ch, cl, *p; 395 unsigned char ch, cl, *p;
@@ -463,23 +463,21 @@ static int sk_strcmp(const char * const *a, const char * const *b)
463 return strcmp(*a, *b); 463 return strcmp(*a, *b);
464} 464}
465 465
466STACK_OF(OPENSSL_STRING) *X509_get1_email(X509 *x) 466STACK *X509_get1_email(X509 *x)
467{ 467{
468 GENERAL_NAMES *gens; 468 GENERAL_NAMES *gens;
469 STACK_OF(OPENSSL_STRING) *ret; 469 STACK *ret;
470
471 gens = X509_get_ext_d2i(x, NID_subject_alt_name, NULL, NULL); 470 gens = X509_get_ext_d2i(x, NID_subject_alt_name, NULL, NULL);
472 ret = get_email(X509_get_subject_name(x), gens); 471 ret = get_email(X509_get_subject_name(x), gens);
473 sk_GENERAL_NAME_pop_free(gens, GENERAL_NAME_free); 472 sk_GENERAL_NAME_pop_free(gens, GENERAL_NAME_free);
474 return ret; 473 return ret;
475} 474}
476 475
477STACK_OF(OPENSSL_STRING) *X509_get1_ocsp(X509 *x) 476STACK *X509_get1_ocsp(X509 *x)
478{ 477{
479 AUTHORITY_INFO_ACCESS *info; 478 AUTHORITY_INFO_ACCESS *info;
480 STACK_OF(OPENSSL_STRING) *ret = NULL; 479 STACK *ret = NULL;
481 int i; 480 int i;
482
483 info = X509_get_ext_d2i(x, NID_info_access, NULL, NULL); 481 info = X509_get_ext_d2i(x, NID_info_access, NULL, NULL);
484 if (!info) 482 if (!info)
485 return NULL; 483 return NULL;
@@ -499,12 +497,11 @@ STACK_OF(OPENSSL_STRING) *X509_get1_ocsp(X509 *x)
499 return ret; 497 return ret;
500} 498}
501 499
502STACK_OF(OPENSSL_STRING) *X509_REQ_get1_email(X509_REQ *x) 500STACK *X509_REQ_get1_email(X509_REQ *x)
503{ 501{
504 GENERAL_NAMES *gens; 502 GENERAL_NAMES *gens;
505 STACK_OF(X509_EXTENSION) *exts; 503 STACK_OF(X509_EXTENSION) *exts;
506 STACK_OF(OPENSSL_STRING) *ret; 504 STACK *ret;
507
508 exts = X509_REQ_get_extensions(x); 505 exts = X509_REQ_get_extensions(x);
509 gens = X509V3_get_d2i(exts, NID_subject_alt_name, NULL, NULL); 506 gens = X509V3_get_d2i(exts, NID_subject_alt_name, NULL, NULL);
510 ret = get_email(X509_REQ_get_subject_name(x), gens); 507 ret = get_email(X509_REQ_get_subject_name(x), gens);
@@ -514,9 +511,9 @@ STACK_OF(OPENSSL_STRING) *X509_REQ_get1_email(X509_REQ *x)
514} 511}
515 512
516 513
517static STACK_OF(OPENSSL_STRING) *get_email(X509_NAME *name, GENERAL_NAMES *gens) 514static STACK *get_email(X509_NAME *name, GENERAL_NAMES *gens)
518{ 515{
519 STACK_OF(OPENSSL_STRING) *ret = NULL; 516 STACK *ret = NULL;
520 X509_NAME_ENTRY *ne; 517 X509_NAME_ENTRY *ne;
521 ASN1_IA5STRING *email; 518 ASN1_IA5STRING *email;
522 GENERAL_NAME *gen; 519 GENERAL_NAME *gen;
@@ -539,23 +536,23 @@ static STACK_OF(OPENSSL_STRING) *get_email(X509_NAME *name, GENERAL_NAMES *gens)
539 return ret; 536 return ret;
540} 537}
541 538
542static void str_free(OPENSSL_STRING str) 539static void str_free(void *str)
543{ 540{
544 OPENSSL_free(str); 541 OPENSSL_free(str);
545} 542}
546 543
547static int append_ia5(STACK_OF(OPENSSL_STRING) **sk, ASN1_IA5STRING *email) 544static int append_ia5(STACK **sk, ASN1_IA5STRING *email)
548{ 545{
549 char *emtmp; 546 char *emtmp;
550 /* First some sanity checks */ 547 /* First some sanity checks */
551 if(email->type != V_ASN1_IA5STRING) return 1; 548 if(email->type != V_ASN1_IA5STRING) return 1;
552 if(!email->data || !email->length) return 1; 549 if(!email->data || !email->length) return 1;
553 if(!*sk) *sk = sk_OPENSSL_STRING_new(sk_strcmp); 550 if(!*sk) *sk = sk_new(sk_strcmp);
554 if(!*sk) return 0; 551 if(!*sk) return 0;
555 /* Don't add duplicates */ 552 /* Don't add duplicates */
556 if(sk_OPENSSL_STRING_find(*sk, (char *)email->data) != -1) return 1; 553 if(sk_find(*sk, (char *)email->data) != -1) return 1;
557 emtmp = BUF_strdup((char *)email->data); 554 emtmp = BUF_strdup((char *)email->data);
558 if(!emtmp || !sk_OPENSSL_STRING_push(*sk, emtmp)) { 555 if(!emtmp || !sk_push(*sk, emtmp)) {
559 X509_email_free(*sk); 556 X509_email_free(*sk);
560 *sk = NULL; 557 *sk = NULL;
561 return 0; 558 return 0;
@@ -563,9 +560,9 @@ static int append_ia5(STACK_OF(OPENSSL_STRING) **sk, ASN1_IA5STRING *email)
563 return 1; 560 return 1;
564} 561}
565 562
566void X509_email_free(STACK_OF(OPENSSL_STRING) *sk) 563void X509_email_free(STACK *sk)
567{ 564{
568 sk_OPENSSL_STRING_pop_free(sk, str_free); 565 sk_pop_free(sk, str_free);
569} 566}
570 567
571/* Convert IP addresses both IPv4 and IPv6 into an 568/* Convert IP addresses both IPv4 and IPv6 into an