Loading Configure +1 −0 Original line number Diff line number Diff line Loading @@ -94,6 +94,7 @@ my %table=( "purify", "purify gcc:-g -DPURIFY -Wall:(unknown):-lsocket -lnsl::::", "debug", "gcc:-DBN_DEBUG -DREF_CHECK -DCRYPTO_MDEBUG -ggdb -g2 -Wformat -Wshadow -Wmissing-prototypes -Wmissing-declarations -Werror:(unknown):-lefence::::", "debug-ben", "gcc:-DBN_DEBUG -DREF_CHECK -DCRYPTO_MDEBUG -O2 -pedantic -Wall -Wshadow -Werror -pipe:(unknown):::::", "debug-ben-debug", "gcc:-DBN_DEBUG -DREF_CHECK -DCRYPTO_MDEBUG -g3 -O2 -pedantic -Wall -Wshadow -Werror -pipe:(unknown):::::", "debug-ben-strict", "gcc:-DBN_DEBUG -DREF_CHECK -DCRYPTO_MDEBUG -DCONST_STRICT -O2 -Wall -Wshadow -Werror -Wpointer-arith -Wcast-qual -Wwrite-strings -pipe:(unknown):::::", "debug-rse","cc:-DTERMIOS -DL_ENDIAN -pipe -O -g -ggdb3 -Wall:(unknown)::BN_LLONG $x86_gcc_des $x86_gcc_opts:$x86_elf_asm", "dist", "cc:-O:(unknown):::::", Loading apps/ca.c +2 −1 Original line number Diff line number Diff line Loading @@ -1721,7 +1721,8 @@ again2: /* Free the current entries if any, there should not * be any I belive */ if (ci->extensions != NULL) sk_pop_free(ci->extensions,X509_EXTENSION_free); sk_X509_EXTENSION_pop_free(ci->extensions, X509_EXTENSION_free); ci->extensions = NULL; Loading apps/pkcs12.c +2 −2 Original line number Diff line number Diff line Loading @@ -638,8 +638,8 @@ int print_attribs (BIO *out, STACK *attrlst, char *name) BIO_printf(out, ": "); } else BIO_printf(out, "%s: ", OBJ_nid2ln(attr_nid)); if(sk_num(attr->value.set)) { av = (ASN1_TYPE *)sk_value(attr->value.set, 0); if(sk_ASN1_TYPE_num(attr->value.set)) { av = sk_ASN1_TYPE_value(attr->value.set, 0); switch(av->type) { case V_ASN1_BMPSTRING: value = uni2asc(av->value.bmpstring->data, Loading crypto/asn1/asn1_mac.h +56 −0 Original line number Diff line number Diff line Loading @@ -175,6 +175,10 @@ err:\ if ((a != NULL) && (sk_num(a) != 0)) \ M_ASN1_I2D_put_SEQUENCE(a,f); #define M_ASN1_I2D_put_SEQUENCE_opt_type(type,a,f) \ if ((a != NULL) && (sk_##type##_num(a) != 0)) \ M_ASN1_I2D_put_SEQUENCE_type(type,a,f); #define M_ASN1_D2I_get_IMP_set_opt(b,func,free_func,tag) \ if ((c.slen != 0) && \ (M_ASN1_next == \ Loading Loading @@ -206,6 +210,11 @@ err:\ V_ASN1_CONSTRUCTED|V_ASN1_SEQUENCE)))\ { M_ASN1_D2I_get_seq(r,func,free_func); } #define M_ASN1_D2I_get_seq_opt_type(type,r,func,free_func) \ if ((c.slen != 0) && (M_ASN1_next == (V_ASN1_UNIVERSAL| \ V_ASN1_CONSTRUCTED|V_ASN1_SEQUENCE)))\ { M_ASN1_D2I_get_seq_type(type,r,func,free_func); } #define M_ASN1_D2I_get_IMP_set(r,func,free_func,x) \ M_ASN1_D2I_get_imp_set(r,func,free_func,\ x,V_ASN1_CONTEXT_SPECIFIC); Loading Loading @@ -286,6 +295,32 @@ err:\ c.slen-=(c.p-c.q); \ } #define M_ASN1_D2I_get_EXP_set_opt_type(type,r,func,free_func,tag,b) \ if ((c.slen != 0) && (M_ASN1_next == \ (V_ASN1_CONSTRUCTED|V_ASN1_CONTEXT_SPECIFIC|tag))) \ { \ int Tinf,Ttag,Tclass; \ long Tlen; \ \ c.q=c.p; \ Tinf=ASN1_get_object(&c.p,&Tlen,&Ttag,&Tclass,c.slen); \ if (Tinf & 0x80) \ { c.error=ERR_R_BAD_ASN1_OBJECT_HEADER; \ c.line=__LINE__; goto err; } \ if (Tinf == (V_ASN1_CONSTRUCTED+1)) \ Tlen = c.slen - (c.p - c.q) - 2; \ if (d2i_ASN1_SET_OF_##type(&(r),&c.p,Tlen,func, \ free_func,b,V_ASN1_UNIVERSAL) == NULL) \ { c.line=__LINE__; goto err; } \ if (Tinf == (V_ASN1_CONSTRUCTED+1)) { \ Tlen = c.slen - (c.p - c.q); \ if(!ASN1_check_infinite_end(&c.p, Tlen)) \ { c.error=ERR_R_MISSING_ASN1_EOS; \ c.line=__LINE__; goto err; } \ }\ c.slen-=(c.p-c.q); \ } /* New macros */ #define M_ASN1_New_Malloc(ret,type) \ if ((ret=(type *)Malloc(sizeof(type))) == NULL) \ Loading Loading @@ -329,6 +364,10 @@ err:\ if ((a != NULL) && (sk_num(a) != 0)) \ M_ASN1_I2D_len_SEQUENCE(a,f); #define M_ASN1_I2D_len_SEQUENCE_opt_type(type,a,f) \ if ((a != NULL) && (sk_##type##_num(a) != 0)) \ M_ASN1_I2D_len_SEQUENCE_type(type,a,f); #define M_ASN1_I2D_len_IMP_SET(a,f,x) \ ret+=i2d_ASN1_SET(a,NULL,f,x,V_ASN1_CONTEXT_SPECIFIC,IS_SET); Loading Loading @@ -383,6 +422,15 @@ err:\ ret+=ASN1_object_size(1,v,mtag); \ } #define M_ASN1_I2D_len_EXP_SEQUENCE_opt_type(type,a,f,mtag,tag,v) \ if ((a != NULL) && (sk_##type##_num(a) != 0))\ { \ v=i2d_ASN1_SET_OF_##type(a,NULL,f,tag, \ V_ASN1_UNIVERSAL, \ IS_SEQUENCE); \ ret+=ASN1_object_size(1,v,mtag); \ } /* Put Macros */ #define M_ASN1_I2D_put(a,f) f(a,&p) Loading Loading @@ -457,6 +505,14 @@ err:\ i2d_ASN1_SET(a,&p,f,tag,V_ASN1_UNIVERSAL,IS_SEQUENCE); \ } #define M_ASN1_I2D_put_EXP_SEQUENCE_opt_type(type,a,f,mtag,tag,v) \ if ((a != NULL) && (sk_##type##_num(a) != 0)) \ { \ ASN1_put_object(&p,1,v,mtag,V_ASN1_CONTEXT_SPECIFIC); \ i2d_ASN1_SET_OF_##type(a,&p,f,tag,V_ASN1_UNIVERSAL, \ IS_SEQUENCE); \ } #define M_ASN1_I2D_seq_total() \ r=ASN1_object_size(1,ret,V_ASN1_SEQUENCE); \ if (pp == NULL) return(r); \ Loading crypto/asn1/x_cinf.c +15 −9 Original line number Diff line number Diff line Loading @@ -74,7 +74,9 @@ int i2d_X509_CINF(X509_CINF *a, unsigned char **pp) M_ASN1_I2D_len(a->key, i2d_X509_PUBKEY); M_ASN1_I2D_len_IMP_opt(a->issuerUID, i2d_ASN1_BIT_STRING); M_ASN1_I2D_len_IMP_opt(a->subjectUID, i2d_ASN1_BIT_STRING); M_ASN1_I2D_len_EXP_SEQUENCE_opt(a->extensions,i2d_X509_EXTENSION,3,V_ASN1_SEQUENCE,v2); M_ASN1_I2D_len_EXP_SEQUENCE_opt_type(X509_EXTENSION,a->extensions, i2d_X509_EXTENSION,3, V_ASN1_SEQUENCE,v2); M_ASN1_I2D_seq_total(); Loading @@ -87,7 +89,9 @@ int i2d_X509_CINF(X509_CINF *a, unsigned char **pp) M_ASN1_I2D_put(a->key, i2d_X509_PUBKEY); M_ASN1_I2D_put_IMP_opt(a->issuerUID, i2d_ASN1_BIT_STRING,1); M_ASN1_I2D_put_IMP_opt(a->subjectUID, i2d_ASN1_BIT_STRING,2); M_ASN1_I2D_put_EXP_SEQUENCE_opt(a->extensions,i2d_X509_EXTENSION,3,V_ASN1_SEQUENCE,v2); M_ASN1_I2D_put_EXP_SEQUENCE_opt_type(X509_EXTENSION,a->extensions, i2d_X509_EXTENSION,3, V_ASN1_SEQUENCE,v2); M_ASN1_I2D_finish(); } Loading Loading @@ -147,11 +151,13 @@ X509_CINF *d2i_X509_CINF(X509_CINF **a, unsigned char **pp, long length) #endif { if (ret->extensions != NULL) while (sk_num(ret->extensions)) X509_EXTENSION_free((X509_EXTENSION *) sk_pop(ret->extensions)); M_ASN1_D2I_get_EXP_set_opt(ret->extensions,d2i_X509_EXTENSION, X509_EXTENSION_free,3,V_ASN1_SEQUENCE); while (sk_X509_EXTENSION_num(ret->extensions)) X509_EXTENSION_free( sk_X509_EXTENSION_pop(ret->extensions)); M_ASN1_D2I_get_EXP_set_opt_type(X509_EXTENSION,ret->extensions, d2i_X509_EXTENSION, X509_EXTENSION_free,3, V_ASN1_SEQUENCE); } M_ASN1_D2I_Finish(a,X509_CINF_free,ASN1_F_D2I_X509_CINF); } Loading Loading @@ -188,7 +194,7 @@ void X509_CINF_free(X509_CINF *a) X509_PUBKEY_free(a->key); ASN1_BIT_STRING_free(a->issuerUID); ASN1_BIT_STRING_free(a->subjectUID); sk_pop_free(a->extensions,X509_EXTENSION_free); Free((char *)a); sk_X509_EXTENSION_pop_free(a->extensions,X509_EXTENSION_free); Free(a); } Loading
Configure +1 −0 Original line number Diff line number Diff line Loading @@ -94,6 +94,7 @@ my %table=( "purify", "purify gcc:-g -DPURIFY -Wall:(unknown):-lsocket -lnsl::::", "debug", "gcc:-DBN_DEBUG -DREF_CHECK -DCRYPTO_MDEBUG -ggdb -g2 -Wformat -Wshadow -Wmissing-prototypes -Wmissing-declarations -Werror:(unknown):-lefence::::", "debug-ben", "gcc:-DBN_DEBUG -DREF_CHECK -DCRYPTO_MDEBUG -O2 -pedantic -Wall -Wshadow -Werror -pipe:(unknown):::::", "debug-ben-debug", "gcc:-DBN_DEBUG -DREF_CHECK -DCRYPTO_MDEBUG -g3 -O2 -pedantic -Wall -Wshadow -Werror -pipe:(unknown):::::", "debug-ben-strict", "gcc:-DBN_DEBUG -DREF_CHECK -DCRYPTO_MDEBUG -DCONST_STRICT -O2 -Wall -Wshadow -Werror -Wpointer-arith -Wcast-qual -Wwrite-strings -pipe:(unknown):::::", "debug-rse","cc:-DTERMIOS -DL_ENDIAN -pipe -O -g -ggdb3 -Wall:(unknown)::BN_LLONG $x86_gcc_des $x86_gcc_opts:$x86_elf_asm", "dist", "cc:-O:(unknown):::::", Loading
apps/ca.c +2 −1 Original line number Diff line number Diff line Loading @@ -1721,7 +1721,8 @@ again2: /* Free the current entries if any, there should not * be any I belive */ if (ci->extensions != NULL) sk_pop_free(ci->extensions,X509_EXTENSION_free); sk_X509_EXTENSION_pop_free(ci->extensions, X509_EXTENSION_free); ci->extensions = NULL; Loading
apps/pkcs12.c +2 −2 Original line number Diff line number Diff line Loading @@ -638,8 +638,8 @@ int print_attribs (BIO *out, STACK *attrlst, char *name) BIO_printf(out, ": "); } else BIO_printf(out, "%s: ", OBJ_nid2ln(attr_nid)); if(sk_num(attr->value.set)) { av = (ASN1_TYPE *)sk_value(attr->value.set, 0); if(sk_ASN1_TYPE_num(attr->value.set)) { av = sk_ASN1_TYPE_value(attr->value.set, 0); switch(av->type) { case V_ASN1_BMPSTRING: value = uni2asc(av->value.bmpstring->data, Loading
crypto/asn1/asn1_mac.h +56 −0 Original line number Diff line number Diff line Loading @@ -175,6 +175,10 @@ err:\ if ((a != NULL) && (sk_num(a) != 0)) \ M_ASN1_I2D_put_SEQUENCE(a,f); #define M_ASN1_I2D_put_SEQUENCE_opt_type(type,a,f) \ if ((a != NULL) && (sk_##type##_num(a) != 0)) \ M_ASN1_I2D_put_SEQUENCE_type(type,a,f); #define M_ASN1_D2I_get_IMP_set_opt(b,func,free_func,tag) \ if ((c.slen != 0) && \ (M_ASN1_next == \ Loading Loading @@ -206,6 +210,11 @@ err:\ V_ASN1_CONSTRUCTED|V_ASN1_SEQUENCE)))\ { M_ASN1_D2I_get_seq(r,func,free_func); } #define M_ASN1_D2I_get_seq_opt_type(type,r,func,free_func) \ if ((c.slen != 0) && (M_ASN1_next == (V_ASN1_UNIVERSAL| \ V_ASN1_CONSTRUCTED|V_ASN1_SEQUENCE)))\ { M_ASN1_D2I_get_seq_type(type,r,func,free_func); } #define M_ASN1_D2I_get_IMP_set(r,func,free_func,x) \ M_ASN1_D2I_get_imp_set(r,func,free_func,\ x,V_ASN1_CONTEXT_SPECIFIC); Loading Loading @@ -286,6 +295,32 @@ err:\ c.slen-=(c.p-c.q); \ } #define M_ASN1_D2I_get_EXP_set_opt_type(type,r,func,free_func,tag,b) \ if ((c.slen != 0) && (M_ASN1_next == \ (V_ASN1_CONSTRUCTED|V_ASN1_CONTEXT_SPECIFIC|tag))) \ { \ int Tinf,Ttag,Tclass; \ long Tlen; \ \ c.q=c.p; \ Tinf=ASN1_get_object(&c.p,&Tlen,&Ttag,&Tclass,c.slen); \ if (Tinf & 0x80) \ { c.error=ERR_R_BAD_ASN1_OBJECT_HEADER; \ c.line=__LINE__; goto err; } \ if (Tinf == (V_ASN1_CONSTRUCTED+1)) \ Tlen = c.slen - (c.p - c.q) - 2; \ if (d2i_ASN1_SET_OF_##type(&(r),&c.p,Tlen,func, \ free_func,b,V_ASN1_UNIVERSAL) == NULL) \ { c.line=__LINE__; goto err; } \ if (Tinf == (V_ASN1_CONSTRUCTED+1)) { \ Tlen = c.slen - (c.p - c.q); \ if(!ASN1_check_infinite_end(&c.p, Tlen)) \ { c.error=ERR_R_MISSING_ASN1_EOS; \ c.line=__LINE__; goto err; } \ }\ c.slen-=(c.p-c.q); \ } /* New macros */ #define M_ASN1_New_Malloc(ret,type) \ if ((ret=(type *)Malloc(sizeof(type))) == NULL) \ Loading Loading @@ -329,6 +364,10 @@ err:\ if ((a != NULL) && (sk_num(a) != 0)) \ M_ASN1_I2D_len_SEQUENCE(a,f); #define M_ASN1_I2D_len_SEQUENCE_opt_type(type,a,f) \ if ((a != NULL) && (sk_##type##_num(a) != 0)) \ M_ASN1_I2D_len_SEQUENCE_type(type,a,f); #define M_ASN1_I2D_len_IMP_SET(a,f,x) \ ret+=i2d_ASN1_SET(a,NULL,f,x,V_ASN1_CONTEXT_SPECIFIC,IS_SET); Loading Loading @@ -383,6 +422,15 @@ err:\ ret+=ASN1_object_size(1,v,mtag); \ } #define M_ASN1_I2D_len_EXP_SEQUENCE_opt_type(type,a,f,mtag,tag,v) \ if ((a != NULL) && (sk_##type##_num(a) != 0))\ { \ v=i2d_ASN1_SET_OF_##type(a,NULL,f,tag, \ V_ASN1_UNIVERSAL, \ IS_SEQUENCE); \ ret+=ASN1_object_size(1,v,mtag); \ } /* Put Macros */ #define M_ASN1_I2D_put(a,f) f(a,&p) Loading Loading @@ -457,6 +505,14 @@ err:\ i2d_ASN1_SET(a,&p,f,tag,V_ASN1_UNIVERSAL,IS_SEQUENCE); \ } #define M_ASN1_I2D_put_EXP_SEQUENCE_opt_type(type,a,f,mtag,tag,v) \ if ((a != NULL) && (sk_##type##_num(a) != 0)) \ { \ ASN1_put_object(&p,1,v,mtag,V_ASN1_CONTEXT_SPECIFIC); \ i2d_ASN1_SET_OF_##type(a,&p,f,tag,V_ASN1_UNIVERSAL, \ IS_SEQUENCE); \ } #define M_ASN1_I2D_seq_total() \ r=ASN1_object_size(1,ret,V_ASN1_SEQUENCE); \ if (pp == NULL) return(r); \ Loading
crypto/asn1/x_cinf.c +15 −9 Original line number Diff line number Diff line Loading @@ -74,7 +74,9 @@ int i2d_X509_CINF(X509_CINF *a, unsigned char **pp) M_ASN1_I2D_len(a->key, i2d_X509_PUBKEY); M_ASN1_I2D_len_IMP_opt(a->issuerUID, i2d_ASN1_BIT_STRING); M_ASN1_I2D_len_IMP_opt(a->subjectUID, i2d_ASN1_BIT_STRING); M_ASN1_I2D_len_EXP_SEQUENCE_opt(a->extensions,i2d_X509_EXTENSION,3,V_ASN1_SEQUENCE,v2); M_ASN1_I2D_len_EXP_SEQUENCE_opt_type(X509_EXTENSION,a->extensions, i2d_X509_EXTENSION,3, V_ASN1_SEQUENCE,v2); M_ASN1_I2D_seq_total(); Loading @@ -87,7 +89,9 @@ int i2d_X509_CINF(X509_CINF *a, unsigned char **pp) M_ASN1_I2D_put(a->key, i2d_X509_PUBKEY); M_ASN1_I2D_put_IMP_opt(a->issuerUID, i2d_ASN1_BIT_STRING,1); M_ASN1_I2D_put_IMP_opt(a->subjectUID, i2d_ASN1_BIT_STRING,2); M_ASN1_I2D_put_EXP_SEQUENCE_opt(a->extensions,i2d_X509_EXTENSION,3,V_ASN1_SEQUENCE,v2); M_ASN1_I2D_put_EXP_SEQUENCE_opt_type(X509_EXTENSION,a->extensions, i2d_X509_EXTENSION,3, V_ASN1_SEQUENCE,v2); M_ASN1_I2D_finish(); } Loading Loading @@ -147,11 +151,13 @@ X509_CINF *d2i_X509_CINF(X509_CINF **a, unsigned char **pp, long length) #endif { if (ret->extensions != NULL) while (sk_num(ret->extensions)) X509_EXTENSION_free((X509_EXTENSION *) sk_pop(ret->extensions)); M_ASN1_D2I_get_EXP_set_opt(ret->extensions,d2i_X509_EXTENSION, X509_EXTENSION_free,3,V_ASN1_SEQUENCE); while (sk_X509_EXTENSION_num(ret->extensions)) X509_EXTENSION_free( sk_X509_EXTENSION_pop(ret->extensions)); M_ASN1_D2I_get_EXP_set_opt_type(X509_EXTENSION,ret->extensions, d2i_X509_EXTENSION, X509_EXTENSION_free,3, V_ASN1_SEQUENCE); } M_ASN1_D2I_Finish(a,X509_CINF_free,ASN1_F_D2I_X509_CINF); } Loading Loading @@ -188,7 +194,7 @@ void X509_CINF_free(X509_CINF *a) X509_PUBKEY_free(a->key); ASN1_BIT_STRING_free(a->issuerUID); ASN1_BIT_STRING_free(a->subjectUID); sk_pop_free(a->extensions,X509_EXTENSION_free); Free((char *)a); sk_X509_EXTENSION_pop_free(a->extensions,X509_EXTENSION_free); Free(a); }