Hello guys,
In v3_enum.c, there is not 's2i' function.
So, we can't use CRLReason extension field in CRL.
I patch v3_enu.c, x509v3.h to use crlreason.
The following is config file format:
CRLReason=keyCompromise
-----
ChangHee Lee.
Email: [EMAIL PROTECTED]
Company: Initiative Technology
diff x509v3.org/v3_enum.c x509v3/v3_enum.c
83c83
< (X509V3_EXT_S2I)NULL,
---
> (X509V3_EXT_S2I)s2i_ASN1_ENUMERATED_TABLE,
103a104,132
>
> ASN1_ENUMERATED *s2i_ASN1_ENUMERATED_TABLE(method, ctx, str)
> X509V3_EXT_METHOD *method;
> X509V3_CTX *ctx;
> char *str;
> {
> ASN1_ENUMERATED *e;
> int i;
> ENUMERATED_NAMES *enam;
>
> if(!str) {
>
>X509V3err(X509V3_F_S2I_ASN1_ENUMERATED_TABLE,X509V3_R_INVALID_NULL_ARGUMENT);
> return NULL;
> }
> if(!(e = ASN1_ENUMERATED_new())) return NULL;
> for(enam = (ENUMERATED_NAMES *)method->usr_data; enam->lname; enam++) {
> if(!strcmp(enam->sname, str) ||
> !strcmp(enam->lname, str)) {
> ASN1_ENUMERATED_set(e, enam->bitnum);
> break;
> }
> }
> if(!enam->lname) {
> ASN1_ENUMERATED_free(e);
> return NULL;
> }
> return e;
> }
>
diff x509v3.org/x509v3.h x509v3/x509v3.h
131,132c131,132
< char *lname;
< char *sname;
---
> char *lname; /* extention value long name */
> char *sname; /* extention value short name */
176,178d175
<
<
<
260a258
> ASN1_ENUMERATED *s2i_ASN1_ENUMERATED_TABLE(X509V3_EXT_METHOD *meth, X509V3_CTX *ctx,
>char *str);
333a332
> ASN1_ENUMERATED *s2i_ASN1_ENUMERATED_TABLE();
381a381
> #define X509V3_F_S2I_ASN1_ENUMERATED_TABLE 127