Add some utilities to support SXNet extension also add support in DEF files
generator to typesafe stacks.
This commit is contained in:
parent
d91f8c3ce8
commit
28a98809d1
4
CHANGES
4
CHANGES
@ -5,6 +5,10 @@
|
|||||||
|
|
||||||
Changes between 0.9.2b and 0.9.3
|
Changes between 0.9.2b and 0.9.3
|
||||||
|
|
||||||
|
*) Various utility functions to handle SXNet extension. Modify mkdef.pl to
|
||||||
|
support typesafe stack.
|
||||||
|
[Steve Henson]
|
||||||
|
|
||||||
*) Fix typo in SSL_[gs]et_options().
|
*) Fix typo in SSL_[gs]et_options().
|
||||||
[Nils Frostberg <nils@medcom.se>]
|
[Nils Frostberg <nils@medcom.se>]
|
||||||
|
|
||||||
|
@ -71,11 +71,11 @@ int X509V3_EXT_add(ext)
|
|||||||
X509V3_EXT_METHOD *ext;
|
X509V3_EXT_METHOD *ext;
|
||||||
{
|
{
|
||||||
if(!ext_list && !(ext_list = sk_new(ext_cmp))) {
|
if(!ext_list && !(ext_list = sk_new(ext_cmp))) {
|
||||||
X509V3err(X509V3_F_X509V3_ADD_EXT,ERR_R_MALLOC_FAILURE);
|
X509V3err(X509V3_F_X509V3_EXT_ADD,ERR_R_MALLOC_FAILURE);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
if(!sk_push(ext_list, (char *)ext)) {
|
if(!sk_push(ext_list, (char *)ext)) {
|
||||||
X509V3err(X509V3_F_X509V3_ADD_EXT,ERR_R_MALLOC_FAILURE);
|
X509V3err(X509V3_F_X509V3_EXT_ADD,ERR_R_MALLOC_FAILURE);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
return 1;
|
return 1;
|
||||||
|
@ -65,8 +65,13 @@
|
|||||||
|
|
||||||
/* Support for Thawte strong extranet extension */
|
/* Support for Thawte strong extranet extension */
|
||||||
|
|
||||||
|
#define SXNET_TEST
|
||||||
|
|
||||||
#ifndef NOPROTO
|
#ifndef NOPROTO
|
||||||
static int sxnet_i2r(X509V3_EXT_METHOD *method, SXNET *sx, BIO *out, int indent);
|
static int sxnet_i2r(X509V3_EXT_METHOD *method, SXNET *sx, BIO *out, int indent);
|
||||||
|
#ifdef SXNET_TEST
|
||||||
|
static SXNET * sxnet_v2i(X509V3_EXT_METHOD *method, X509V3_CTX *ctx, STACK *nval);
|
||||||
|
#endif
|
||||||
#else
|
#else
|
||||||
static int sxnet_i2r();
|
static int sxnet_i2r();
|
||||||
#endif
|
#endif
|
||||||
@ -78,7 +83,12 @@ SXNET_free,
|
|||||||
(X509V3_EXT_D2I)d2i_SXNET,
|
(X509V3_EXT_D2I)d2i_SXNET,
|
||||||
i2d_SXNET,
|
i2d_SXNET,
|
||||||
NULL, NULL,
|
NULL, NULL,
|
||||||
NULL, NULL,
|
NULL,
|
||||||
|
#ifdef SXNET_TEST
|
||||||
|
(X509V3_EXT_V2I)sxnet_v2i,
|
||||||
|
#else
|
||||||
|
NULL,
|
||||||
|
#endif
|
||||||
(X509V3_EXT_I2R)sxnet_i2r,
|
(X509V3_EXT_I2R)sxnet_i2r,
|
||||||
NULL,
|
NULL,
|
||||||
NULL
|
NULL
|
||||||
@ -114,8 +124,8 @@ SXNET *SXNET_new()
|
|||||||
SXNET *ret=NULL;
|
SXNET *ret=NULL;
|
||||||
ASN1_CTX c;
|
ASN1_CTX c;
|
||||||
M_ASN1_New_Malloc(ret, SXNET);
|
M_ASN1_New_Malloc(ret, SXNET);
|
||||||
ret->version = NULL;
|
M_ASN1_New(ret->version,ASN1_INTEGER_new);
|
||||||
ret->ids = NULL;
|
M_ASN1_New(ret->ids,sk_new_null);
|
||||||
return (ret);
|
return (ret);
|
||||||
M_ASN1_New_Error(ASN1_F_SXNET_NEW);
|
M_ASN1_New_Error(ASN1_F_SXNET_NEW);
|
||||||
}
|
}
|
||||||
@ -142,8 +152,6 @@ SXNET *a;
|
|||||||
Free ((char *)a);
|
Free ((char *)a);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
int i2d_SXNETID(a,pp)
|
int i2d_SXNETID(a,pp)
|
||||||
SXNETID *a;
|
SXNETID *a;
|
||||||
unsigned char **pp;
|
unsigned char **pp;
|
||||||
@ -215,3 +223,158 @@ int indent;
|
|||||||
}
|
}
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifdef SXNET_TEST
|
||||||
|
|
||||||
|
/* NBB: this is used for testing only. It should *not* be used for anything
|
||||||
|
* else because it will just take static IDs from the configuration file and
|
||||||
|
* they should really be separate values for each user.
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
static SXNET * sxnet_v2i(method, ctx, nval)
|
||||||
|
X509V3_EXT_METHOD *method;
|
||||||
|
X509V3_CTX *ctx;
|
||||||
|
STACK *nval;
|
||||||
|
{
|
||||||
|
CONF_VALUE *cnf;
|
||||||
|
SXNET *sx = NULL;
|
||||||
|
int i;
|
||||||
|
for(i = 0; i < sk_num(nval); i++) {
|
||||||
|
cnf = (CONF_VALUE *)sk_value(nval, i);
|
||||||
|
if(!SXNET_add_id_asc(&sx, cnf->name, cnf->value, -1))
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
return sx;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/* Strong Extranet utility functions */
|
||||||
|
|
||||||
|
/* Add an id given the zone as an ASCII number */
|
||||||
|
|
||||||
|
int SXNET_add_id_asc(psx, zone, user, userlen)
|
||||||
|
SXNET **psx;
|
||||||
|
char *zone;
|
||||||
|
unsigned char *user;
|
||||||
|
int userlen;
|
||||||
|
{
|
||||||
|
ASN1_INTEGER *izone = NULL;
|
||||||
|
if(!(izone = s2i_ASN1_INTEGER(NULL, zone))) {
|
||||||
|
X509V3err(X509V3_F_SXNET_ADD_ASC,X509V3_R_ERROR_CONVERTING_ZONE);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
return SXNET_add_id_INTEGER(psx, izone, user, userlen);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Add an id given the zone as an unsigned long */
|
||||||
|
|
||||||
|
int SXNET_add_id_ulong(psx, lzone, user, userlen)
|
||||||
|
SXNET **psx;
|
||||||
|
unsigned long lzone;
|
||||||
|
unsigned char *user;
|
||||||
|
int userlen;
|
||||||
|
{
|
||||||
|
ASN1_INTEGER *izone = NULL;
|
||||||
|
if(!(izone = ASN1_INTEGER_new()) || !ASN1_INTEGER_set(izone, lzone)) {
|
||||||
|
X509V3err(X509V3_F_SXNET_ADD_ID_ULONG,ERR_R_MALLOC_FAILURE);
|
||||||
|
ASN1_INTEGER_free(izone);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
return SXNET_add_id_INTEGER(psx, izone, user, userlen);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Add an id given the zone as an ASN1_INTEGER.
|
||||||
|
* Note this version uses the passed integer and doesn't make a copy so don't
|
||||||
|
* free it up afterwards.
|
||||||
|
*/
|
||||||
|
|
||||||
|
int SXNET_add_id_INTEGER(psx, zone, user, userlen)
|
||||||
|
SXNET **psx;
|
||||||
|
ASN1_INTEGER *zone;
|
||||||
|
unsigned char *user;
|
||||||
|
int userlen;
|
||||||
|
{
|
||||||
|
SXNET *sx = NULL;
|
||||||
|
SXNETID *id = NULL;
|
||||||
|
if(!psx || !zone || !user) {
|
||||||
|
X509V3err(X509V3_F_SXNET_ADD_ID_INTEGER,X509V3_R_INVALID_NULL_ARGUMENT);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
if(userlen == -1) userlen = strlen(user);
|
||||||
|
if(userlen > 64) {
|
||||||
|
X509V3err(X509V3_F_SXNET_ADD_ID_INTEGER,X509V3_R_USER_TOO_LONG);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
if(!*psx) {
|
||||||
|
if(!(sx = SXNET_new())) goto err;
|
||||||
|
if(!ASN1_INTEGER_set(sx->version, 0)) goto err;
|
||||||
|
*psx = sx;
|
||||||
|
} else sx = *psx;
|
||||||
|
if(SXNET_get_id_INTEGER(sx, zone)) {
|
||||||
|
X509V3err(X509V3_F_SXNET_ADD_ID_INTEGER,X509V3_R_DUPLICATE_ZONE_ID);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
if(!(id = SXNETID_new())) goto err;
|
||||||
|
if(userlen == -1) userlen = strlen(user);
|
||||||
|
|
||||||
|
if(!ASN1_OCTET_STRING_set(id->user, user, userlen)) goto err;
|
||||||
|
if(!sk_push(sx->ids, (char *)id)) goto err;
|
||||||
|
id->zone = zone;
|
||||||
|
return 1;
|
||||||
|
|
||||||
|
err:
|
||||||
|
X509V3err(X509V3_F_SXNET_ADD_ID_INTEGER,ERR_R_MALLOC_FAILURE);
|
||||||
|
SXNETID_free(id);
|
||||||
|
SXNET_free(sx);
|
||||||
|
*psx = NULL;
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
ASN1_OCTET_STRING *SXNET_get_id_asc(sx, zone)
|
||||||
|
SXNET *sx;
|
||||||
|
char *zone;
|
||||||
|
{
|
||||||
|
ASN1_INTEGER *izone = NULL;
|
||||||
|
ASN1_OCTET_STRING *oct;
|
||||||
|
if(!(izone = s2i_ASN1_INTEGER(NULL, zone))) {
|
||||||
|
X509V3err(X509V3_F_SXNET_GET_ID_ASC,X509V3_R_ERROR_CONVERTING_ZONE);
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
oct = SXNET_get_id_INTEGER(sx, izone);
|
||||||
|
ASN1_INTEGER_free(oct);
|
||||||
|
return oct;
|
||||||
|
}
|
||||||
|
|
||||||
|
ASN1_OCTET_STRING *SXNET_get_id_ulong(sx, lzone)
|
||||||
|
SXNET *sx;
|
||||||
|
unsigned long lzone;
|
||||||
|
{
|
||||||
|
ASN1_INTEGER *izone = NULL;
|
||||||
|
ASN1_OCTET_STRING *oct;
|
||||||
|
if(!(izone = ASN1_INTEGER_new()) || !ASN1_INTEGER_set(izone, lzone)) {
|
||||||
|
X509V3err(X509V3_F_SXNET_GET_ID_ULONG,ERR_R_MALLOC_FAILURE);
|
||||||
|
ASN1_INTEGER_free(izone);
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
oct = SXNET_get_id_INTEGER(sx, izone);
|
||||||
|
ASN1_INTEGER_free(oct);
|
||||||
|
return oct;
|
||||||
|
}
|
||||||
|
|
||||||
|
ASN1_OCTET_STRING *SXNET_get_id_INTEGER(sx, zone)
|
||||||
|
SXNET *sx;
|
||||||
|
ASN1_INTEGER *zone;
|
||||||
|
{
|
||||||
|
SXNETID *id;
|
||||||
|
int i;
|
||||||
|
for(i = 0; i < sk_num(sx->ids); i++) {
|
||||||
|
id = (SXNETID *)sk_value(sx->ids, i);
|
||||||
|
if(!ASN1_INTEGER_cmp(id->zone, zone)) return id->user;
|
||||||
|
}
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
@ -151,6 +151,30 @@ ASN1_INTEGER *a;
|
|||||||
return strtmp;
|
return strtmp;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
ASN1_INTEGER *s2i_ASN1_INTEGER(method, value)
|
||||||
|
X509V3_EXT_METHOD *method;
|
||||||
|
char *value;
|
||||||
|
{
|
||||||
|
BIGNUM *bn = NULL;
|
||||||
|
ASN1_INTEGER *aint;
|
||||||
|
bn = BN_new();
|
||||||
|
if(!value) {
|
||||||
|
X509V3err(X509V3_F_S2I_ASN1_INTEGER,X509V3_R_INVALID_NULL_VALUE);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
if(!BN_dec2bn(&bn, value)) {
|
||||||
|
X509V3err(X509V3_F_S2I_ASN1_INTEGER,X509V3_R_BN_DEC2BN_ERROR);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
if(!(aint = BN_to_ASN1_INTEGER(bn, NULL))) {
|
||||||
|
X509V3err(X509V3_F_S2I_ASN1_INTEGER,X509V3_R_BN_TO_ASN1_INTEGER_ERROR);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
BN_free(bn);
|
||||||
|
return aint;
|
||||||
|
}
|
||||||
|
|
||||||
int X509V3_add_value_int(name, aint, extlist)
|
int X509V3_add_value_int(name, aint, extlist)
|
||||||
char *name;
|
char *name;
|
||||||
ASN1_INTEGER *aint;
|
ASN1_INTEGER *aint;
|
||||||
@ -183,7 +207,7 @@ int *asn1_bool;
|
|||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
err:
|
err:
|
||||||
X509V3err(X509V3_F_X509V3_VALUE_GET_BOOL,X509V3_R_INVALID_BOOLEAN_STRING);
|
X509V3err(X509V3_F_X509V3_GET_VALUE_BOOL,X509V3_R_INVALID_BOOLEAN_STRING);
|
||||||
X509V3_conf_err(value);
|
X509V3_conf_err(value);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
@ -192,25 +216,12 @@ int X509V3_get_value_int(value, aint)
|
|||||||
CONF_VALUE *value;
|
CONF_VALUE *value;
|
||||||
ASN1_INTEGER **aint;
|
ASN1_INTEGER **aint;
|
||||||
{
|
{
|
||||||
BIGNUM *bn = NULL;
|
ASN1_INTEGER *itmp;
|
||||||
bn = BN_new();
|
if(!(itmp = s2i_ASN1_INTEGER(NULL, value->value))) {
|
||||||
if(!value->value) {
|
|
||||||
X509V3err(X509V3_F_X509V3_GET_VALUE_INT,X509V3_R_INVALID_NULL_VALUE);
|
|
||||||
X509V3_conf_err(value);
|
X509V3_conf_err(value);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
if(!BN_dec2bn(&bn, value->value)) {
|
*aint = itmp;
|
||||||
X509V3err(X509V3_F_X509V3_GET_VALUE_INT,X509V3_R_BN_DEC2BN_ERROR);
|
|
||||||
X509V3_conf_err(value);
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
if(!(*aint = BN_to_ASN1_INTEGER(bn, NULL))) {
|
|
||||||
X509V3err(X509V3_F_X509V3_GET_VALUE_INT,X509V3_R_BN_TO_ASN1_INTEGER_ERROR);
|
|
||||||
X509V3_conf_err(value);
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
BN_free(bn);
|
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -70,10 +70,16 @@ static ERR_STRING_DATA X509V3_str_functs[]=
|
|||||||
{ERR_PACK(0,X509V3_F_I2S_ASN1_ENUMERATED,0), "i2s_ASN1_ENUMERATED"},
|
{ERR_PACK(0,X509V3_F_I2S_ASN1_ENUMERATED,0), "i2s_ASN1_ENUMERATED"},
|
||||||
{ERR_PACK(0,X509V3_F_I2S_ASN1_INTEGER,0), "i2s_ASN1_INTEGER"},
|
{ERR_PACK(0,X509V3_F_I2S_ASN1_INTEGER,0), "i2s_ASN1_INTEGER"},
|
||||||
{ERR_PACK(0,X509V3_F_S2I_ASN1_IA5STRING,0), "S2I_ASN1_IA5STRING"},
|
{ERR_PACK(0,X509V3_F_S2I_ASN1_IA5STRING,0), "S2I_ASN1_IA5STRING"},
|
||||||
|
{ERR_PACK(0,X509V3_F_S2I_ASN1_INTEGER,0), "s2i_ASN1_INTEGER"},
|
||||||
{ERR_PACK(0,X509V3_F_S2I_ASN1_OCTET_STRING,0), "s2i_ASN1_OCTET_STRING"},
|
{ERR_PACK(0,X509V3_F_S2I_ASN1_OCTET_STRING,0), "s2i_ASN1_OCTET_STRING"},
|
||||||
{ERR_PACK(0,X509V3_F_S2I_ASN1_SKEY_ID,0), "S2I_ASN1_SKEY_ID"},
|
{ERR_PACK(0,X509V3_F_S2I_ASN1_SKEY_ID,0), "S2I_ASN1_SKEY_ID"},
|
||||||
{ERR_PACK(0,X509V3_F_S2I_S2I_SKEY_ID,0), "S2I_S2I_SKEY_ID"},
|
{ERR_PACK(0,X509V3_F_S2I_S2I_SKEY_ID,0), "S2I_S2I_SKEY_ID"},
|
||||||
{ERR_PACK(0,X509V3_F_STRING_TO_HEX,0), "string_to_hex"},
|
{ERR_PACK(0,X509V3_F_STRING_TO_HEX,0), "string_to_hex"},
|
||||||
|
{ERR_PACK(0,X509V3_F_SXNET_ADD_ASC,0), "SXNET_ADD_ASC"},
|
||||||
|
{ERR_PACK(0,X509V3_F_SXNET_ADD_ID_INTEGER,0), "SXNET_add_id_INTEGER"},
|
||||||
|
{ERR_PACK(0,X509V3_F_SXNET_ADD_ID_ULONG,0), "SXNET_add_id_ulong"},
|
||||||
|
{ERR_PACK(0,X509V3_F_SXNET_GET_ID_ASC,0), "SXNET_get_id_asc"},
|
||||||
|
{ERR_PACK(0,X509V3_F_SXNET_GET_ID_ULONG,0), "SXNET_get_id_ulong"},
|
||||||
{ERR_PACK(0,X509V3_F_V2I_ASN1_BIT_STRING,0), "V2I_ASN1_BIT_STRING"},
|
{ERR_PACK(0,X509V3_F_V2I_ASN1_BIT_STRING,0), "V2I_ASN1_BIT_STRING"},
|
||||||
{ERR_PACK(0,X509V3_F_V2I_AUTHORITY_KEYID,0), "V2I_AUTHORITY_KEYID"},
|
{ERR_PACK(0,X509V3_F_V2I_AUTHORITY_KEYID,0), "V2I_AUTHORITY_KEYID"},
|
||||||
{ERR_PACK(0,X509V3_F_V2I_BASIC_CONSTRAINTS,0), "V2I_BASIC_CONSTRAINTS"},
|
{ERR_PACK(0,X509V3_F_V2I_BASIC_CONSTRAINTS,0), "V2I_BASIC_CONSTRAINTS"},
|
||||||
@ -81,13 +87,12 @@ static ERR_STRING_DATA X509V3_str_functs[]=
|
|||||||
{ERR_PACK(0,X509V3_F_V2I_GENERAL_NAME,0), "v2i_GENERAL_NAME"},
|
{ERR_PACK(0,X509V3_F_V2I_GENERAL_NAME,0), "v2i_GENERAL_NAME"},
|
||||||
{ERR_PACK(0,X509V3_F_V2I_GENERAL_NAMES,0), "v2i_GENERAL_NAMES"},
|
{ERR_PACK(0,X509V3_F_V2I_GENERAL_NAMES,0), "v2i_GENERAL_NAMES"},
|
||||||
{ERR_PACK(0,X509V3_F_V3_GENERIC_EXTENSION,0), "V3_GENERIC_EXTENSION"},
|
{ERR_PACK(0,X509V3_F_V3_GENERIC_EXTENSION,0), "V3_GENERIC_EXTENSION"},
|
||||||
{ERR_PACK(0,X509V3_F_X509V3_ADD_EXT,0), "X509V3_ADD_EXT"},
|
{ERR_PACK(0,X509V3_F_X509V3_EXT_ADD,0), "X509V3_EXT_add"},
|
||||||
{ERR_PACK(0,X509V3_F_X509V3_ADD_VALUE,0), "X509V3_add_value"},
|
{ERR_PACK(0,X509V3_F_X509V3_ADD_VALUE,0), "X509V3_add_value"},
|
||||||
{ERR_PACK(0,X509V3_F_X509V3_EXT_ADD_ALIAS,0), "X509V3_EXT_add_alias"},
|
{ERR_PACK(0,X509V3_F_X509V3_EXT_ADD_ALIAS,0), "X509V3_EXT_add_alias"},
|
||||||
{ERR_PACK(0,X509V3_F_X509V3_EXT_CONF,0), "X509V3_EXT_conf"},
|
{ERR_PACK(0,X509V3_F_X509V3_EXT_CONF,0), "X509V3_EXT_conf"},
|
||||||
{ERR_PACK(0,X509V3_F_X509V3_GET_VALUE_INT,0), "X509V3_get_value_int"},
|
|
||||||
{ERR_PACK(0,X509V3_F_X509V3_PARSE_LIST,0), "X509V3_parse_list"},
|
{ERR_PACK(0,X509V3_F_X509V3_PARSE_LIST,0), "X509V3_parse_list"},
|
||||||
{ERR_PACK(0,X509V3_F_X509V3_VALUE_GET_BOOL,0), "X509V3_VALUE_GET_BOOL"},
|
{ERR_PACK(0,X509V3_F_X509V3_GET_VALUE_BOOL,0), "X509V3_get_value_bool"},
|
||||||
{0,NULL},
|
{0,NULL},
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -97,6 +102,8 @@ static ERR_STRING_DATA X509V3_str_reasons[]=
|
|||||||
{X509V3_R_BAD_OBJECT ,"bad object"},
|
{X509V3_R_BAD_OBJECT ,"bad object"},
|
||||||
{X509V3_R_BN_DEC2BN_ERROR ,"bn dec2bn error"},
|
{X509V3_R_BN_DEC2BN_ERROR ,"bn dec2bn error"},
|
||||||
{X509V3_R_BN_TO_ASN1_INTEGER_ERROR ,"bn to asn1 integer error"},
|
{X509V3_R_BN_TO_ASN1_INTEGER_ERROR ,"bn to asn1 integer error"},
|
||||||
|
{X509V3_R_DUPLICATE_ZONE_ID ,"duplicate zone id"},
|
||||||
|
{X509V3_R_ERROR_CONVERTING_ZONE ,"error converting zone"},
|
||||||
{X509V3_R_ERROR_IN_EXTENSION ,"error in extension"},
|
{X509V3_R_ERROR_IN_EXTENSION ,"error in extension"},
|
||||||
{X509V3_R_EXTENSION_NAME_ERROR ,"extension name error"},
|
{X509V3_R_EXTENSION_NAME_ERROR ,"extension name error"},
|
||||||
{X509V3_R_EXTENSION_NOT_FOUND ,"extension not found"},
|
{X509V3_R_EXTENSION_NOT_FOUND ,"extension not found"},
|
||||||
@ -124,6 +131,7 @@ static ERR_STRING_DATA X509V3_str_reasons[]=
|
|||||||
{X509V3_R_UNKNOWN_EXTENSION_NAME ,"unknown extension name"},
|
{X509V3_R_UNKNOWN_EXTENSION_NAME ,"unknown extension name"},
|
||||||
{X509V3_R_UNKNOWN_OPTION ,"unknown option"},
|
{X509V3_R_UNKNOWN_OPTION ,"unknown option"},
|
||||||
{X509V3_R_UNSUPPORTED_OPTION ,"unsupported option"},
|
{X509V3_R_UNSUPPORTED_OPTION ,"unsupported option"},
|
||||||
|
{X509V3_R_USER_TOO_LONG ,"user too long"},
|
||||||
{0,NULL},
|
{0,NULL},
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -8,10 +8,16 @@
|
|||||||
#define X509V3_F_I2S_ASN1_ENUMERATED 121
|
#define X509V3_F_I2S_ASN1_ENUMERATED 121
|
||||||
#define X509V3_F_I2S_ASN1_INTEGER 120
|
#define X509V3_F_I2S_ASN1_INTEGER 120
|
||||||
#define X509V3_F_S2I_ASN1_IA5STRING 100
|
#define X509V3_F_S2I_ASN1_IA5STRING 100
|
||||||
|
#define X509V3_F_S2I_ASN1_INTEGER 108
|
||||||
#define X509V3_F_S2I_ASN1_OCTET_STRING 112
|
#define X509V3_F_S2I_ASN1_OCTET_STRING 112
|
||||||
#define X509V3_F_S2I_ASN1_SKEY_ID 114
|
#define X509V3_F_S2I_ASN1_SKEY_ID 114
|
||||||
#define X509V3_F_S2I_S2I_SKEY_ID 115
|
#define X509V3_F_S2I_S2I_SKEY_ID 115
|
||||||
#define X509V3_F_STRING_TO_HEX 113
|
#define X509V3_F_STRING_TO_HEX 113
|
||||||
|
#define X509V3_F_SXNET_ADD_ASC 125
|
||||||
|
#define X509V3_F_SXNET_ADD_ID_INTEGER 126
|
||||||
|
#define X509V3_F_SXNET_ADD_ID_ULONG 127
|
||||||
|
#define X509V3_F_SXNET_GET_ID_ASC 128
|
||||||
|
#define X509V3_F_SXNET_GET_ID_ULONG 129
|
||||||
#define X509V3_F_V2I_ASN1_BIT_STRING 101
|
#define X509V3_F_V2I_ASN1_BIT_STRING 101
|
||||||
#define X509V3_F_V2I_AUTHORITY_KEYID 119
|
#define X509V3_F_V2I_AUTHORITY_KEYID 119
|
||||||
#define X509V3_F_V2I_BASIC_CONSTRAINTS 102
|
#define X509V3_F_V2I_BASIC_CONSTRAINTS 102
|
||||||
@ -19,19 +25,20 @@
|
|||||||
#define X509V3_F_V2I_GENERAL_NAME 117
|
#define X509V3_F_V2I_GENERAL_NAME 117
|
||||||
#define X509V3_F_V2I_GENERAL_NAMES 118
|
#define X509V3_F_V2I_GENERAL_NAMES 118
|
||||||
#define X509V3_F_V3_GENERIC_EXTENSION 116
|
#define X509V3_F_V3_GENERIC_EXTENSION 116
|
||||||
#define X509V3_F_X509V3_ADD_EXT 104
|
#define X509V3_F_X509V3_EXT_ADD 104
|
||||||
#define X509V3_F_X509V3_ADD_VALUE 105
|
#define X509V3_F_X509V3_ADD_VALUE 105
|
||||||
#define X509V3_F_X509V3_EXT_ADD_ALIAS 106
|
#define X509V3_F_X509V3_EXT_ADD_ALIAS 106
|
||||||
#define X509V3_F_X509V3_EXT_CONF 107
|
#define X509V3_F_X509V3_EXT_CONF 107
|
||||||
#define X509V3_F_X509V3_GET_VALUE_INT 108
|
|
||||||
#define X509V3_F_X509V3_PARSE_LIST 109
|
#define X509V3_F_X509V3_PARSE_LIST 109
|
||||||
#define X509V3_F_X509V3_VALUE_GET_BOOL 110
|
#define X509V3_F_X509V3_GET_VALUE_BOOL 110
|
||||||
|
|
||||||
/* Reason codes. */
|
/* Reason codes. */
|
||||||
#define X509V3_R_BAD_IP_ADDRESS 118
|
#define X509V3_R_BAD_IP_ADDRESS 118
|
||||||
#define X509V3_R_BAD_OBJECT 119
|
#define X509V3_R_BAD_OBJECT 119
|
||||||
#define X509V3_R_BN_DEC2BN_ERROR 100
|
#define X509V3_R_BN_DEC2BN_ERROR 100
|
||||||
#define X509V3_R_BN_TO_ASN1_INTEGER_ERROR 101
|
#define X509V3_R_BN_TO_ASN1_INTEGER_ERROR 101
|
||||||
|
#define X509V3_R_DUPLICATE_ZONE_ID 133
|
||||||
|
#define X509V3_R_ERROR_CONVERTING_ZONE 131
|
||||||
#define X509V3_R_ERROR_IN_EXTENSION 128
|
#define X509V3_R_ERROR_IN_EXTENSION 128
|
||||||
#define X509V3_R_EXTENSION_NAME_ERROR 115
|
#define X509V3_R_EXTENSION_NAME_ERROR 115
|
||||||
#define X509V3_R_EXTENSION_NOT_FOUND 102
|
#define X509V3_R_EXTENSION_NOT_FOUND 102
|
||||||
@ -59,3 +66,4 @@
|
|||||||
#define X509V3_R_UNKNOWN_EXTENSION_NAME 130
|
#define X509V3_R_UNKNOWN_EXTENSION_NAME 130
|
||||||
#define X509V3_R_UNKNOWN_OPTION 120
|
#define X509V3_R_UNKNOWN_OPTION 120
|
||||||
#define X509V3_R_UNSUPPORTED_OPTION 117
|
#define X509V3_R_UNSUPPORTED_OPTION 117
|
||||||
|
#define X509V3_R_USER_TOO_LONG 132
|
||||||
|
@ -235,6 +235,14 @@ SXNETID *d2i_SXNETID(SXNETID **a, unsigned char **pp, long length);
|
|||||||
SXNETID *SXNETID_new(void);
|
SXNETID *SXNETID_new(void);
|
||||||
void SXNETID_free(SXNETID *a);
|
void SXNETID_free(SXNETID *a);
|
||||||
|
|
||||||
|
int SXNET_add_id_asc(SXNET **psx, char *zone, unsigned char *user, int userlen);
|
||||||
|
int SXNET_add_id_ulong(SXNET **psx, unsigned long lzone, unsigned char *user, int userlen);
|
||||||
|
int SXNET_add_id_INTEGER(SXNET **psx, ASN1_INTEGER *izone, unsigned char *user, int userlen);
|
||||||
|
|
||||||
|
ASN1_OCTET_STRING *SXNET_get_id_asc(SXNET *sx, char *zone);
|
||||||
|
ASN1_OCTET_STRING *SXNET_get_id_ulong(SXNET *sx, unsigned long lzone);
|
||||||
|
ASN1_OCTET_STRING *SXNET_get_id_INTEGER(SXNET *sx, ASN1_INTEGER *zone);
|
||||||
|
|
||||||
int i2d_AUTHORITY_KEYID(AUTHORITY_KEYID *a, unsigned char **pp);
|
int i2d_AUTHORITY_KEYID(AUTHORITY_KEYID *a, unsigned char **pp);
|
||||||
AUTHORITY_KEYID *d2i_AUTHORITY_KEYID(AUTHORITY_KEYID **a, unsigned char **pp, long length);
|
AUTHORITY_KEYID *d2i_AUTHORITY_KEYID(AUTHORITY_KEYID **a, unsigned char **pp, long length);
|
||||||
AUTHORITY_KEYID *AUTHORITY_KEYID_new(void);
|
AUTHORITY_KEYID *AUTHORITY_KEYID_new(void);
|
||||||
@ -276,6 +284,7 @@ int X509V3_add_value(char *name, char *value, STACK **extlist);
|
|||||||
int X509V3_add_value_bool(char *name, int asn1_bool, STACK **extlist);
|
int X509V3_add_value_bool(char *name, int asn1_bool, STACK **extlist);
|
||||||
int X509V3_add_value_int( char *name, ASN1_INTEGER *aint, STACK **extlist);
|
int X509V3_add_value_int( char *name, ASN1_INTEGER *aint, STACK **extlist);
|
||||||
char * i2s_ASN1_INTEGER(X509V3_EXT_METHOD *meth, ASN1_INTEGER *aint);
|
char * i2s_ASN1_INTEGER(X509V3_EXT_METHOD *meth, ASN1_INTEGER *aint);
|
||||||
|
ASN1_INTEGER * s2i_ASN1_INTEGER(X509V3_EXT_METHOD *meth, char *value);
|
||||||
char * i2s_ASN1_ENUMERATED(X509V3_EXT_METHOD *meth, ASN1_ENUMERATED *aint);
|
char * i2s_ASN1_ENUMERATED(X509V3_EXT_METHOD *meth, ASN1_ENUMERATED *aint);
|
||||||
char * i2s_ASN1_ENUMERATED_TABLE(X509V3_EXT_METHOD *meth, ASN1_ENUMERATED *aint);
|
char * i2s_ASN1_ENUMERATED_TABLE(X509V3_EXT_METHOD *meth, ASN1_ENUMERATED *aint);
|
||||||
int X509V3_EXT_add(X509V3_EXT_METHOD *ext);
|
int X509V3_EXT_add(X509V3_EXT_METHOD *ext);
|
||||||
@ -319,6 +328,12 @@ int i2d_SXNETID();
|
|||||||
SXNETID *d2i_SXNETID();
|
SXNETID *d2i_SXNETID();
|
||||||
SXNETID *SXNETID_new();
|
SXNETID *SXNETID_new();
|
||||||
void SXNETID_free();
|
void SXNETID_free();
|
||||||
|
int SXNET_add_id_asc();
|
||||||
|
int SXNET_add_id_ulong();
|
||||||
|
int SXNET_add_id_INTEGER();
|
||||||
|
ASN1_OCTET_STRING *SXNET_get_id_asc();
|
||||||
|
ASN1_OCTET_STRING *SXNET_get_id_ulong();
|
||||||
|
ASN1_OCTET_STRING *SXNET_get_id_INTEGER();
|
||||||
|
|
||||||
int i2d_AUTHORITY_KEYID();
|
int i2d_AUTHORITY_KEYID();
|
||||||
AUTHORITY_KEYID *d2i_AUTHORITY_KEYID();
|
AUTHORITY_KEYID *d2i_AUTHORITY_KEYID();
|
||||||
@ -359,6 +374,7 @@ int X509V3_add_value();
|
|||||||
int X509V3_add_value_bool();
|
int X509V3_add_value_bool();
|
||||||
int X509V3_add_value_int();
|
int X509V3_add_value_int();
|
||||||
char *i2s_ASN1_INTEGER();
|
char *i2s_ASN1_INTEGER();
|
||||||
|
ASN1_INTEGER * s2i_ASN1_INTEGER();
|
||||||
char * i2s_ASN1_ENUMERATED();
|
char * i2s_ASN1_ENUMERATED();
|
||||||
char * i2s_ASN1_ENUMERATED_TABLE();
|
char * i2s_ASN1_ENUMERATED_TABLE();
|
||||||
int X509V3_EXT_add();
|
int X509V3_EXT_add();
|
||||||
@ -391,10 +407,16 @@ int X509V3_EXT_print_fp();
|
|||||||
#define X509V3_F_I2S_ASN1_ENUMERATED 121
|
#define X509V3_F_I2S_ASN1_ENUMERATED 121
|
||||||
#define X509V3_F_I2S_ASN1_INTEGER 120
|
#define X509V3_F_I2S_ASN1_INTEGER 120
|
||||||
#define X509V3_F_S2I_ASN1_IA5STRING 100
|
#define X509V3_F_S2I_ASN1_IA5STRING 100
|
||||||
|
#define X509V3_F_S2I_ASN1_INTEGER 108
|
||||||
#define X509V3_F_S2I_ASN1_OCTET_STRING 112
|
#define X509V3_F_S2I_ASN1_OCTET_STRING 112
|
||||||
#define X509V3_F_S2I_ASN1_SKEY_ID 114
|
#define X509V3_F_S2I_ASN1_SKEY_ID 114
|
||||||
#define X509V3_F_S2I_S2I_SKEY_ID 115
|
#define X509V3_F_S2I_S2I_SKEY_ID 115
|
||||||
#define X509V3_F_STRING_TO_HEX 113
|
#define X509V3_F_STRING_TO_HEX 113
|
||||||
|
#define X509V3_F_SXNET_ADD_ASC 125
|
||||||
|
#define X509V3_F_SXNET_ADD_ID_INTEGER 126
|
||||||
|
#define X509V3_F_SXNET_ADD_ID_ULONG 127
|
||||||
|
#define X509V3_F_SXNET_GET_ID_ASC 128
|
||||||
|
#define X509V3_F_SXNET_GET_ID_ULONG 129
|
||||||
#define X509V3_F_V2I_ASN1_BIT_STRING 101
|
#define X509V3_F_V2I_ASN1_BIT_STRING 101
|
||||||
#define X509V3_F_V2I_AUTHORITY_KEYID 119
|
#define X509V3_F_V2I_AUTHORITY_KEYID 119
|
||||||
#define X509V3_F_V2I_BASIC_CONSTRAINTS 102
|
#define X509V3_F_V2I_BASIC_CONSTRAINTS 102
|
||||||
@ -402,19 +424,20 @@ int X509V3_EXT_print_fp();
|
|||||||
#define X509V3_F_V2I_GENERAL_NAME 117
|
#define X509V3_F_V2I_GENERAL_NAME 117
|
||||||
#define X509V3_F_V2I_GENERAL_NAMES 118
|
#define X509V3_F_V2I_GENERAL_NAMES 118
|
||||||
#define X509V3_F_V3_GENERIC_EXTENSION 116
|
#define X509V3_F_V3_GENERIC_EXTENSION 116
|
||||||
#define X509V3_F_X509V3_ADD_EXT 104
|
#define X509V3_F_X509V3_EXT_ADD 104
|
||||||
#define X509V3_F_X509V3_ADD_VALUE 105
|
#define X509V3_F_X509V3_ADD_VALUE 105
|
||||||
#define X509V3_F_X509V3_EXT_ADD_ALIAS 106
|
#define X509V3_F_X509V3_EXT_ADD_ALIAS 106
|
||||||
#define X509V3_F_X509V3_EXT_CONF 107
|
#define X509V3_F_X509V3_EXT_CONF 107
|
||||||
#define X509V3_F_X509V3_GET_VALUE_INT 108
|
|
||||||
#define X509V3_F_X509V3_PARSE_LIST 109
|
#define X509V3_F_X509V3_PARSE_LIST 109
|
||||||
#define X509V3_F_X509V3_VALUE_GET_BOOL 110
|
#define X509V3_F_X509V3_GET_VALUE_BOOL 110
|
||||||
|
|
||||||
/* Reason codes. */
|
/* Reason codes. */
|
||||||
#define X509V3_R_BAD_IP_ADDRESS 118
|
#define X509V3_R_BAD_IP_ADDRESS 118
|
||||||
#define X509V3_R_BAD_OBJECT 119
|
#define X509V3_R_BAD_OBJECT 119
|
||||||
#define X509V3_R_BN_DEC2BN_ERROR 100
|
#define X509V3_R_BN_DEC2BN_ERROR 100
|
||||||
#define X509V3_R_BN_TO_ASN1_INTEGER_ERROR 101
|
#define X509V3_R_BN_TO_ASN1_INTEGER_ERROR 101
|
||||||
|
#define X509V3_R_DUPLICATE_ZONE_ID 133
|
||||||
|
#define X509V3_R_ERROR_CONVERTING_ZONE 131
|
||||||
#define X509V3_R_ERROR_IN_EXTENSION 128
|
#define X509V3_R_ERROR_IN_EXTENSION 128
|
||||||
#define X509V3_R_EXTENSION_NAME_ERROR 115
|
#define X509V3_R_EXTENSION_NAME_ERROR 115
|
||||||
#define X509V3_R_EXTENSION_NOT_FOUND 102
|
#define X509V3_R_EXTENSION_NOT_FOUND 102
|
||||||
@ -442,6 +465,7 @@ int X509V3_EXT_print_fp();
|
|||||||
#define X509V3_R_UNKNOWN_EXTENSION_NAME 130
|
#define X509V3_R_UNKNOWN_EXTENSION_NAME 130
|
||||||
#define X509V3_R_UNKNOWN_OPTION 120
|
#define X509V3_R_UNKNOWN_OPTION 120
|
||||||
#define X509V3_R_UNSUPPORTED_OPTION 117
|
#define X509V3_R_UNSUPPORTED_OPTION 117
|
||||||
|
#define X509V3_R_USER_TOO_LONG 132
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
}
|
}
|
||||||
|
@ -11,6 +11,8 @@ $ssl_num= "util/ssleay.num";
|
|||||||
|
|
||||||
$W32=1;
|
$W32=1;
|
||||||
$NT=0;
|
$NT=0;
|
||||||
|
# Set this to make typesafe STACK definitions appear in DEF
|
||||||
|
$safe_stack_def = 1;
|
||||||
foreach (@ARGV)
|
foreach (@ARGV)
|
||||||
{
|
{
|
||||||
$W32=1 if $_ eq "32";
|
$W32=1 if $_ eq "32";
|
||||||
@ -179,7 +181,33 @@ sub do_defs
|
|||||||
$t=undef;
|
$t=undef;
|
||||||
if (/^extern .*;$/)
|
if (/^extern .*;$/)
|
||||||
{ $t=&do_extern($name,$_); }
|
{ $t=&do_extern($name,$_); }
|
||||||
elsif ( ($tag{'NOPROTO'} == 1) &&
|
elsif ($safe_stack_def &&
|
||||||
|
/^\s*DECLARE_STACK_OF\s*\(\s*(\w*)\s*\)/)
|
||||||
|
{
|
||||||
|
push(@ret,"sk_${1}_new");
|
||||||
|
push(@ret,"sk_${1}_new_null");
|
||||||
|
push(@ret,"sk_${1}_free");
|
||||||
|
push(@ret,"sk_${1}_num");
|
||||||
|
push(@ret,"sk_${1}_value");
|
||||||
|
push(@ret,"sk_${1}_set");
|
||||||
|
push(@ret,"sk_${1}_zero");
|
||||||
|
push(@ret,"sk_${1}_push");
|
||||||
|
# push(@ret,"sk_${1}_pop");
|
||||||
|
push(@ret,"sk_${1}_find");
|
||||||
|
push(@ret,"sk_${1}_delete");
|
||||||
|
push(@ret,"sk_${1}_delete_ptr");
|
||||||
|
push(@ret,"sk_${1}_set_cmp_func");
|
||||||
|
push(@ret,"sk_${1}_dup");
|
||||||
|
push(@ret,"sk_${1}_pop_free");
|
||||||
|
push(@ret,"sk_${1}_shift");
|
||||||
|
}
|
||||||
|
elsif ($safe_stack_def &&
|
||||||
|
/^\s*DECLARE_ASN1_SET_OF\s*\(\s*(\w*)\s*\)/)
|
||||||
|
{
|
||||||
|
push(@ret,"d2i_ASN1_SET_OF_${1}");
|
||||||
|
push(@ret,"i2d_ASN1_SET_OF_${1}");
|
||||||
|
}
|
||||||
|
elsif (($tag{'NOPROTO'} == 1) &&
|
||||||
($tag{'FreeBSD'} != 1) &&
|
($tag{'FreeBSD'} != 1) &&
|
||||||
(($W32 && ($tag{'WIN16'} != 1)) ||
|
(($W32 && ($tag{'WIN16'} != 1)) ||
|
||||||
(!$W32 && ($tag{'WIN16'} != -1))) &&
|
(!$W32 && ($tag{'WIN16'} != -1))) &&
|
||||||
|
Loading…
x
Reference in New Issue
Block a user