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

Reply via email to