/* ** @(#) oid.h - Definitions ** @(#) $Id: oid.h,v 1.5 2003/12/08 07:14:21 lucio Exp $ */ /* ** ================================================================== ** ** $Logfile:$ ** $RCSfile: oid.h,v $ ** $Revision: 1.5 $ ** $Date: 2003/12/08 07:14:21 $ ** $Author: lucio $ ** ** ================================================================== ** ** $Log: oid.h,v $ ** Revision 1.5 2003/12/08 07:14:21 lucio ** Weekend developments - mostly OID related ** ** Revision 1.4 2003/12/05 16:00:44 lucio ** Checkpoint - with a view to some homework. ** ** Revision 1.3 2003/12/04 16:13:30 lucio ** Checkpoint - OID rethink (incomplete) ** ** Revision 1.2 2003/12/04 11:31:42 lucio ** Streamlined - specially OID management ** ** Revision 1.1 2003/11/30 18:45:17 lucio ** OID definitions ** ** ================================================================== */ #define OIDMAX (256) enum { OID_RSAENCRYPTION = 0, OID_MD2RSAENCRYPTION, OID_MD4RSAENCRYPTION, OID_MD5RSAENCRYPTION, OID_SHA1RSAENCRYPTION, OID_MD2, OID_MD4, OID_MD5, OID_RSA, }; enum { OID_MSGDATA = 0, OID_MSGSIGNEDDATA, OID_MSGENVELOPEDDATA, OID_MSGSIGNEDANDENVELOPEDDATA, OID_MSGDIGESTEDDATA, OID_MSGENCRYPTEDDATA, }; typedef struct oidalg OidAlg; struct oidalg { char *str; uchar *ber; int len; void (*proc)(BerObj *, int); }; typedef struct oidcrypt OidCrypt; struct oidcrypt { char *str; uchar *ber; int len; void (*proc)(BerObj *, int); }; typedef struct oidhier OidHier; struct oidhier { uchar *oid; // ASN.1 representation int len; // ASN.1 length long long roid; // relative value char *name; // common name char *descr; // description char **alias; // other names (nil-terminated) OidHier *next; // sibling OidHier *down; // progeny }; typedef struct oidobj OidObj; struct oidobj { BerObj *obj; OidHier *hier; }; /* extern char *BER_CN_OBJECTID; extern int LEN_BER_CN; extern char *BER_COUNTRY_OBJECTID; extern int LEN_BER_COUNTRY; extern char *BER_LOCALITY_OBJECTID; extern int LEN_BER_LOCALITY; extern char *BER_MD2RSAENCRYPTION_OBJECTID; extern int LEN_BER_MD2RSAENCRYPTION; extern char *BER_MD2_OBJECTID; extern int LEN_BER_MD2; extern char *BER_MD5_OBJECTID; extern int LEN_BER_MD5; extern char *BER_ORGUNIT_OBJECTID; extern int LEN_BER_ORGUNIT; extern char *BER_ORG_OBJECTID; extern int LEN_BER_ORG; extern char *BER_RSAENCRYPTION_OBJECTID; extern int LEN_BER_RSAENCRYPTION; extern char *BER_RSA_OBJECTID; extern int LEN_BER_RSA; extern char *IDAT_AUTHORITYREVOCATIONLIST_OBJECTID; extern int LEN_IDAT_AUTHORITYREVOCATIONLIST; extern char *IDAT_CACERTIFICATE_OBJECTID; extern int LEN_IDAT_CACERTIFICATE; extern char *IDAT_CERTIFICATEREVOCATIONLIST_OBJECTID; extern int LEN_IDAT_CERTIFICATEREVOCATIONLIST; extern char *IDAT_CROSSCERTIFICATEPAIR_OBJECTID; extern int LEN_IDAT_CROSSCERTIFICATEPAIR; extern char *IDAT_USERCERTIFICATE_OBJECTID; extern int LEN_IDAT_USERCERTIFICATE; extern char *IDAT_USERPASSWORD_OBJECTID; extern int LEN_IDAT_USERPASSWORD; extern char *PEM_DATA_OBJECTID; extern int LEN_PEM_DATA; extern char *PEM_SIGNEDDATA_OBJECTID; extern int LEN_PEM_SIGNEDDATA; */ #pragma varargck type "N" OidObj * OidHier *oid_initdb (OidHier *h); int oid_fmtdn (Fmt *f); // %N - distinguished name OidHier *oid_append (OidHier *h, BerObj *oid, char *name, char *descr, ...); void oid_hdump (OidHier *h);