diff options
author | Dr. Stephen Henson <steve@openssl.org> | 1999-04-20 01:10:33 +0000 |
---|---|---|
committer | Dr. Stephen Henson <steve@openssl.org> | 1999-04-20 01:10:33 +0000 |
commit | f5fedc0497ef4a7b4d60d404f9b37020967eab94 (patch) | |
tree | 2a11ceff0837be591b43c2c10936bdd8c921c524 /crypto/x509v3/v3_alt.c | |
parent | e4aac1cb684a630d4e55bf5960d4fd8d1dbcccd1 (diff) |
Various fixes so Win32 compile may work. Convert GeneralNames to use safe stack.
Diffstat (limited to 'crypto/x509v3/v3_alt.c')
-rw-r--r-- | crypto/x509v3/v3_alt.c | 75 |
1 files changed, 38 insertions, 37 deletions
diff --git a/crypto/x509v3/v3_alt.c b/crypto/x509v3/v3_alt.c index b8054eb636..e9bfad8025 100644 --- a/crypto/x509v3/v3_alt.c +++ b/crypto/x509v3/v3_alt.c @@ -62,10 +62,10 @@ #include "x509v3.h" #ifndef NOPROTO -static STACK *v2i_subject_alt(X509V3_EXT_METHOD *method, X509V3_CTX *ctx, STACK *nval); -static STACK *v2i_issuer_alt(X509V3_EXT_METHOD *method, X509V3_CTX *ctx, STACK *nval); -static int copy_email(X509V3_CTX *ctx, STACK *gens); -static int copy_issuer(X509V3_CTX *ctx, STACK *gens); +static STACK_OF(GENERAL_NAME) *v2i_subject_alt(X509V3_EXT_METHOD *method, X509V3_CTX *ctx, STACK *nval); +static STACK_OF(GENERAL_NAME) *v2i_issuer_alt(X509V3_EXT_METHOD *method, X509V3_CTX *ctx, STACK *nval); +static int copy_email(X509V3_CTX *ctx, STACK_OF(GENERAL_NAME) *gens); +static int copy_issuer(X509V3_CTX *ctx, STACK_OF(GENERAL_NAME) *gens); #else static STACK *v2i_issuer_alt(); static STACK *v2i_subject_alt(); @@ -95,19 +95,20 @@ NULL, NULL, NULL}, EXT_END }; -STACK *i2v_GENERAL_NAMES(X509V3_EXT_METHOD *method, STACK *gens, STACK *ret) +STACK *i2v_GENERAL_NAMES(X509V3_EXT_METHOD *method, + STACK_OF(GENERAL_NAME) *gens, STACK *ret) { int i; GENERAL_NAME *gen; - for(i = 0; i < sk_num(gens); i++) { - gen = (GENERAL_NAME *)sk_value(gens, i); + for(i = 0; i < sk_GENERAL_NAME_num(gens); i++) { + gen = sk_GENERAL_NAME_value(gens, i); ret = i2v_GENERAL_NAME(method, gen, ret); } return ret; } STACK *i2v_GENERAL_NAME(X509V3_EXT_METHOD *method, GENERAL_NAME *gen, - STACK *ret) + STACK *ret) { char oline[256]; unsigned char *p; @@ -161,13 +162,13 @@ STACK *i2v_GENERAL_NAME(X509V3_EXT_METHOD *method, GENERAL_NAME *gen, return ret; } -static STACK *v2i_issuer_alt(X509V3_EXT_METHOD *method, X509V3_CTX *ctx, - STACK *nval) +static STACK_OF(GENERAL_NAME) *v2i_issuer_alt(X509V3_EXT_METHOD *method, + X509V3_CTX *ctx, STACK *nval) { - STACK *gens = NULL; + STACK_OF(GENERAL_NAME) *gens = NULL; CONF_VALUE *cnf; int i; - if(!(gens = sk_new(NULL))) { + if(!(gens = sk_GENERAL_NAME_new(NULL))) { X509V3err(X509V3_F_V2I_GENERAL_NAMES,ERR_R_MALLOC_FAILURE); return NULL; } @@ -180,21 +181,21 @@ static STACK *v2i_issuer_alt(X509V3_EXT_METHOD *method, X509V3_CTX *ctx, GENERAL_NAME *gen; if(!(gen = v2i_GENERAL_NAME(method, ctx, cnf))) goto err; - sk_push(gens, (char *)gen); + sk_GENERAL_NAME_push(gens, gen); } } return gens; err: - sk_pop_free(gens, GENERAL_NAME_free); + sk_GENERAL_NAME_pop_free(gens, GENERAL_NAME_free); return NULL; } /* Append subject altname of issuer to issuer alt name of subject */ -static int copy_issuer(X509V3_CTX *ctx, STACK *gens) +static int copy_issuer(X509V3_CTX *ctx, STACK_OF(GENERAL_NAME) *gens) { - STACK *ialt; - char *gen; + STACK_OF(GENERAL_NAME) *ialt; + GENERAL_NAME *gen; X509_EXTENSION *ext; int i; if(ctx && (ctx->flags == CTX_TEST)) return 1; @@ -205,19 +206,19 @@ static int copy_issuer(X509V3_CTX *ctx, STACK *gens) i = X509_get_ext_by_NID(ctx->issuer_cert, NID_subject_alt_name, -1); if(i < 0) return 1; if(!(ext = X509_get_ext(ctx->issuer_cert, i)) || - !(ialt = (STACK *) X509V3_EXT_d2i(ext)) ) { + !(ialt = X509V3_EXT_d2i(ext)) ) { X509V3err(X509V3_F_COPY_ISSUER,X509V3_R_ISSUER_DECODE_ERROR); goto err; } - for(i = 0; i < sk_num(ialt); i++) { - gen = sk_value(ialt, i); - if(!sk_push(gens, gen)) { + for(i = 0; i < sk_GENERAL_NAME_num(ialt); i++) { + gen = sk_GENERAL_NAME_value(ialt, i); + if(!sk_GENERAL_NAME_push(gens, gen)) { X509V3err(X509V3_F_COPY_ISSUER,ERR_R_MALLOC_FAILURE); goto err; } } - sk_free(ialt); + sk_GENERAL_NAME_free(ialt); return 1; @@ -226,13 +227,13 @@ static int copy_issuer(X509V3_CTX *ctx, STACK *gens) } -static STACK *v2i_subject_alt(X509V3_EXT_METHOD *method, X509V3_CTX *ctx, - STACK *nval) +static STACK_OF(GENERAL_NAME) *v2i_subject_alt(X509V3_EXT_METHOD *method, + X509V3_CTX *ctx, STACK *nval) { - STACK *gens = NULL; + STACK_OF(GENERAL_NAME) *gens = NULL; CONF_VALUE *cnf; int i; - if(!(gens = sk_new(NULL))) { + if(!(gens = sk_GENERAL_NAME_new(NULL))) { X509V3err(X509V3_F_V2I_GENERAL_NAMES,ERR_R_MALLOC_FAILURE); return NULL; } @@ -245,12 +246,12 @@ static STACK *v2i_subject_alt(X509V3_EXT_METHOD *method, X509V3_CTX *ctx, GENERAL_NAME *gen; if(!(gen = v2i_GENERAL_NAME(method, ctx, cnf))) goto err; - sk_push(gens, (char *)gen); + sk_GENERAL_NAME_push(gens, gen); } } return gens; err: - sk_pop_free(gens, GENERAL_NAME_free); + sk_GENERAL_NAME_pop_free(gens, GENERAL_NAME_free); return NULL; } @@ -258,7 +259,7 @@ static STACK *v2i_subject_alt(X509V3_EXT_METHOD *method, X509V3_CTX *ctx, * GENERAL_NAMES */ -static int copy_email(X509V3_CTX *ctx, STACK *gens) +static int copy_email(X509V3_CTX *ctx, STACK_OF(GENERAL_NAME) *gens) { X509_NAME *nm; ASN1_IA5STRING *email = NULL; @@ -287,7 +288,7 @@ static int copy_email(X509V3_CTX *ctx, STACK *gens) gen->d.ia5 = email; email = NULL; gen->type = GEN_EMAIL; - if(!sk_push(gens, (char *)gen)) { + if(!sk_GENERAL_NAME_push(gens, gen)) { X509V3err(X509V3_F_COPY_EMAIL,ERR_R_MALLOC_FAILURE); goto err; } @@ -304,30 +305,30 @@ static int copy_email(X509V3_CTX *ctx, STACK *gens) } -STACK *v2i_GENERAL_NAMES(X509V3_EXT_METHOD *method, X509V3_CTX *ctx, - STACK *nval) +STACK_OF(GENERAL_NAME) *v2i_GENERAL_NAMES(X509V3_EXT_METHOD *method, + X509V3_CTX *ctx, STACK *nval) { GENERAL_NAME *gen; - STACK *gens = NULL; + STACK_OF(GENERAL_NAME) *gens = NULL; CONF_VALUE *cnf; int i; - if(!(gens = sk_new(NULL))) { + if(!(gens = sk_GENERAL_NAME_new(NULL))) { X509V3err(X509V3_F_V2I_GENERAL_NAMES,ERR_R_MALLOC_FAILURE); return NULL; } for(i = 0; i < sk_num(nval); i++) { cnf = (CONF_VALUE *)sk_value(nval, i); if(!(gen = v2i_GENERAL_NAME(method, ctx, cnf))) goto err; - sk_push(gens, (char *)gen); + sk_GENERAL_NAME_push(gens, gen); } return gens; err: - sk_pop_free(gens, GENERAL_NAME_free); + sk_GENERAL_NAME_pop_free(gens, GENERAL_NAME_free); return NULL; } GENERAL_NAME *v2i_GENERAL_NAME(X509V3_EXT_METHOD *method, X509V3_CTX *ctx, - CONF_VALUE *cnf) + CONF_VALUE *cnf) { char is_string = 0; int type; |