Loading CHANGES +4 −0 Original line number Diff line number Diff line Loading @@ -4,6 +4,10 @@ Changes between 0.9.7a and 0.9.8 [xx XXX xxxx] *) Generate muti valued AVAs using '+' notation in config files for req and dirName. [Steve Henson] *) Support for nameConstraints certificate extension. [Steve Henson] Loading apps/req.c +25 −6 Original line number Diff line number Diff line Loading @@ -133,7 +133,7 @@ static int add_attribute_object(X509_REQ *req, char *text, char *def, char *value, int nid, int n_min, int n_max, unsigned long chtype); static int add_DN_object(X509_NAME *n, char *text, char *def, char *value, int nid,int n_min,int n_max, unsigned long chtype); int nid,int n_min,int n_max, unsigned long chtype, int mval); #ifndef OPENSSL_NO_RSA static void MS_CALLBACK req_cb(int p,int n,void *arg); #endif Loading Loading @@ -1259,7 +1259,7 @@ static int prompt_info(X509_REQ *req, int i; char *p,*q; char buf[100]; int nid; int nid, mval; long n_min,n_max; char *type,*def,*value; CONF_VALUE *v; Loading Loading @@ -1302,6 +1302,13 @@ start: for (;;) if(*p) type = p; break; } if (*type == '+') { mval = -1; type++; } else mval = 0; /* If OBJ not recognised ignore it */ if ((nid=OBJ_txt2nid(type)) == NID_undef) goto start; Loading Loading @@ -1339,7 +1346,7 @@ start: for (;;) } if (!add_DN_object(subj,v->value,def,value,nid, n_min,n_max, chtype)) n_min,n_max, chtype, mval)) return 0; } if (X509_NAME_entry_count(subj) == 0) Loading Loading @@ -1429,6 +1436,7 @@ static int auto_info(X509_REQ *req, STACK_OF(CONF_VALUE) *dn_sk, for (i = 0; i < sk_CONF_VALUE_num(dn_sk); i++) { int mval; v=sk_CONF_VALUE_value(dn_sk,i); p=q=NULL; type=v->name; Loading @@ -1445,8 +1453,19 @@ static int auto_info(X509_REQ *req, STACK_OF(CONF_VALUE) *dn_sk, if(*p) type = p; break; } #ifndef CHARSET_EBCDIC if (*p == '+') #else if (*p == os_toascii['+']) #endif { p++; mval = -1; } else mval = 0; if (!X509_NAME_add_entry_by_txt(subj,type, chtype, (unsigned char *) v->value,-1,-1,0)) return 0; (unsigned char *) v->value,-1,-1,mval)) return 0; } Loading @@ -1469,7 +1488,7 @@ static int auto_info(X509_REQ *req, STACK_OF(CONF_VALUE) *dn_sk, static int add_DN_object(X509_NAME *n, char *text, char *def, char *value, int nid, int n_min, int n_max, unsigned long chtype) int nid, int n_min, int n_max, unsigned long chtype, int mval) { int i,ret=0; MS_STATIC char buf[1024]; Loading Loading @@ -1519,7 +1538,7 @@ start: #endif if(!req_check_len(i, n_min, n_max)) goto start; if (!X509_NAME_add_entry_by_NID(n,nid, chtype, (unsigned char *) buf, -1,-1,0)) goto err; (unsigned char *) buf, -1,-1,mval)) goto err; ret=1; err: return(ret); Loading crypto/x509v3/v3_utl.c +13 −2 Original line number Diff line number Diff line Loading @@ -801,7 +801,7 @@ int X509V3_NAME_from_section(X509_NAME *nm, STACK_OF(CONF_VALUE)*dn_sk, unsigned long chtype) { CONF_VALUE *v; int i; int i, mval; char *p, *type; if (!nm) return 0; Loading @@ -824,8 +824,19 @@ int X509V3_NAME_from_section(X509_NAME *nm, STACK_OF(CONF_VALUE)*dn_sk, if(*p) type = p; break; } #ifndef CHARSET_EBCDIC if (*p == '+') #else if (*p == os_toascii['+']) #endif { mval = -1; p++; } else mval = 0; if (!X509_NAME_add_entry_by_txt(nm,type, chtype, (unsigned char *) v->value,-1,-1,0)) (unsigned char *) v->value,-1,-1,mval)) return 0; } Loading Loading
CHANGES +4 −0 Original line number Diff line number Diff line Loading @@ -4,6 +4,10 @@ Changes between 0.9.7a and 0.9.8 [xx XXX xxxx] *) Generate muti valued AVAs using '+' notation in config files for req and dirName. [Steve Henson] *) Support for nameConstraints certificate extension. [Steve Henson] Loading
apps/req.c +25 −6 Original line number Diff line number Diff line Loading @@ -133,7 +133,7 @@ static int add_attribute_object(X509_REQ *req, char *text, char *def, char *value, int nid, int n_min, int n_max, unsigned long chtype); static int add_DN_object(X509_NAME *n, char *text, char *def, char *value, int nid,int n_min,int n_max, unsigned long chtype); int nid,int n_min,int n_max, unsigned long chtype, int mval); #ifndef OPENSSL_NO_RSA static void MS_CALLBACK req_cb(int p,int n,void *arg); #endif Loading Loading @@ -1259,7 +1259,7 @@ static int prompt_info(X509_REQ *req, int i; char *p,*q; char buf[100]; int nid; int nid, mval; long n_min,n_max; char *type,*def,*value; CONF_VALUE *v; Loading Loading @@ -1302,6 +1302,13 @@ start: for (;;) if(*p) type = p; break; } if (*type == '+') { mval = -1; type++; } else mval = 0; /* If OBJ not recognised ignore it */ if ((nid=OBJ_txt2nid(type)) == NID_undef) goto start; Loading Loading @@ -1339,7 +1346,7 @@ start: for (;;) } if (!add_DN_object(subj,v->value,def,value,nid, n_min,n_max, chtype)) n_min,n_max, chtype, mval)) return 0; } if (X509_NAME_entry_count(subj) == 0) Loading Loading @@ -1429,6 +1436,7 @@ static int auto_info(X509_REQ *req, STACK_OF(CONF_VALUE) *dn_sk, for (i = 0; i < sk_CONF_VALUE_num(dn_sk); i++) { int mval; v=sk_CONF_VALUE_value(dn_sk,i); p=q=NULL; type=v->name; Loading @@ -1445,8 +1453,19 @@ static int auto_info(X509_REQ *req, STACK_OF(CONF_VALUE) *dn_sk, if(*p) type = p; break; } #ifndef CHARSET_EBCDIC if (*p == '+') #else if (*p == os_toascii['+']) #endif { p++; mval = -1; } else mval = 0; if (!X509_NAME_add_entry_by_txt(subj,type, chtype, (unsigned char *) v->value,-1,-1,0)) return 0; (unsigned char *) v->value,-1,-1,mval)) return 0; } Loading @@ -1469,7 +1488,7 @@ static int auto_info(X509_REQ *req, STACK_OF(CONF_VALUE) *dn_sk, static int add_DN_object(X509_NAME *n, char *text, char *def, char *value, int nid, int n_min, int n_max, unsigned long chtype) int nid, int n_min, int n_max, unsigned long chtype, int mval) { int i,ret=0; MS_STATIC char buf[1024]; Loading Loading @@ -1519,7 +1538,7 @@ start: #endif if(!req_check_len(i, n_min, n_max)) goto start; if (!X509_NAME_add_entry_by_NID(n,nid, chtype, (unsigned char *) buf, -1,-1,0)) goto err; (unsigned char *) buf, -1,-1,mval)) goto err; ret=1; err: return(ret); Loading
crypto/x509v3/v3_utl.c +13 −2 Original line number Diff line number Diff line Loading @@ -801,7 +801,7 @@ int X509V3_NAME_from_section(X509_NAME *nm, STACK_OF(CONF_VALUE)*dn_sk, unsigned long chtype) { CONF_VALUE *v; int i; int i, mval; char *p, *type; if (!nm) return 0; Loading @@ -824,8 +824,19 @@ int X509V3_NAME_from_section(X509_NAME *nm, STACK_OF(CONF_VALUE)*dn_sk, if(*p) type = p; break; } #ifndef CHARSET_EBCDIC if (*p == '+') #else if (*p == os_toascii['+']) #endif { mval = -1; p++; } else mval = 0; if (!X509_NAME_add_entry_by_txt(nm,type, chtype, (unsigned char *) v->value,-1,-1,0)) (unsigned char *) v->value,-1,-1,mval)) return 0; } Loading