DECLARE_STACK_OF(ASN1_STRING_TABLE)    #define ub_name				32768 #define ub_common_name			64 #define ub_locality_name		128 #define ub_state_name			128 #define ub_organization_name		64 #define ub_organization_unit_name	64 #define ub_title			64 #define ub_email_address		128  #ifdef NO_ASN1_TYPEDEFS #define ASN1_INTEGER		ASN1_STRING #define ASN1_ENUMERATED		ASN1_STRING #define ASN1_BIT_STRING		ASN1_STRING #define ASN1_OCTET_STRING	ASN1_STRING #define ASN1_PRINTABLESTRING	ASN1_STRING #define ASN1_T61STRING		ASN1_STRING #define ASN1_IA5STRING		ASN1_STRING #define ASN1_UTCTIME		ASN1_STRING #define ASN1_GENERALIZEDTIME	ASN1_STRING #define ASN1_TIME		ASN1_STRING #define ASN1_GENERALSTRING	ASN1_STRING #define ASN1_UNIVERSALSTRING	ASN1_STRING #define ASN1_BMPSTRING		ASN1_STRING #define ASN1_VISIBLESTRING	ASN1_STRING #define ASN1_UTF8STRING		ASN1_STRING #define ASN1_BOOLEAN		int #define ASN1_NULL		int #else typedef struct asn1_string_st ASN1_INTEGER; typedef struct asn1_string_st ASN1_ENUMERATED; typedef struct asn1_string_st ASN1_BIT_STRING; typedef struct asn1_string_st ASN1_OCTET_STRING; typedef struct asn1_string_st ASN1_PRINTABLESTRING; typedef struct asn1_string_st ASN1_T61STRING; typedef struct asn1_string_st ASN1_IA5STRING; typedef struct asn1_string_st ASN1_GENERALSTRING; typedef struct asn1_string_st ASN1_UNIVERSALSTRING; typedef struct asn1_string_st ASN1_BMPSTRING; typedef struct asn1_string_st ASN1_UTCTIME; typedef struct asn1_string_st ASN1_TIME; typedef struct asn1_string_st ASN1_GENERALIZEDTIME; typedef struct asn1_string_st ASN1_VISIBLESTRING; typedef struct asn1_string_st ASN1_UTF8STRING; typedef int ASN1_BOOLEAN; typedef int ASN1_NULL; #endif   typedef struct ASN1_TEMPLATE_st ASN1_TEMPLATE; typedef struct ASN1_ITEM_st ASN1_ITEM; typedef struct ASN1_TLC_st ASN1_TLC;  typedef struct ASN1_VALUE_st ASN1_VALUE;    #define DECLARE_ASN1_FUNCTIONS(type) DECLARE_ASN1_FUNCTIONS_name(type, type)  #define DECLARE_ASN1_FUNCTIONS_name(type, name) \ type *name##_new(void); \ void name##_free(type *a); \ DECLARE_ASN1_ENCODE_FUNCTIONS(type, name, name)  #define DECLARE_ASN1_FUNCTIONS_fname(type, itname, name) \ type *name##_new(void); \ void name##_free(type *a); \ DECLARE_ASN1_ENCODE_FUNCTIONS(type, itname, name)  #define	DECLARE_ASN1_ENCODE_FUNCTIONS(type, itname, name) \ type *d2i_##name(type **a, unsigned char **in, long len); \ int i2d_##name(type *a, unsigned char **out); \ extern const ASN1_ITEM itname##_it;  #define	DECLARE_ASN1_ENCODE_FUNCTIONS_const(type, name) \ type *d2i_##name(type **a, const unsigned char **in, long len); \ int i2d_##name(const type *a, unsigned char **out); \ extern const ASN1_ITEM name##_it;  #define DECLARE_ASN1_FUNCTIONS_const(name) \ name *name##_new(void); \ void name##_free(name *a);      #define ASN1_STRFLGS_ESC_2253		1 #define ASN1_STRFLGS_ESC_CTRL		2 #define ASN1_STRFLGS_ESC_MSB		4     #define ASN1_STRFLGS_ESC_QUOTE		8      #define CHARTYPE_PRINTABLESTRING	0x10  #define CHARTYPE_FIRST_ESC_2253		0x20  #define CHARTYPE_LAST_ESC_2253		0x40      #define ASN1_STRFLGS_UTF8_CONVERT	0x10    #define ASN1_STRFLGS_IGNORE_TYPE	0x20   #define ASN1_STRFLGS_SHOW_TYPE		0x40    #define ASN1_STRFLGS_DUMP_ALL		0x80 #define ASN1_STRFLGS_DUMP_UNKNOWN	0x100    #define ASN1_STRFLGS_DUMP_DER		0x200    #define ASN1_STRFLGS_RFC2253	(ASN1_STRFLGS_ESC_2253 | \ ASN1_STRFLGS_ESC_CTRL | \ ASN1_STRFLGS_ESC_MSB | \ ASN1_STRFLGS_UTF8_CONVERT | \ ASN1_STRFLGS_DUMP_UNKNOWN | \ ASN1_STRFLGS_DUMP_DER)
DECLARE_STACK_OF(ASN1_INTEGER)DECLARE_ASN1_SET_OF(ASN1_INTEGER)typedef struct asn1_type_st	{	int type;	union	{		char *ptr;		ASN1_BOOLEAN		boolean;		ASN1_STRING *		asn1_string;		ASN1_OBJECT *		object;		ASN1_INTEGER *		integer;		ASN1_ENUMERATED *	enumerated;		ASN1_BIT_STRING *	bit_string;		ASN1_OCTET_STRING *	octet_string;		ASN1_PRINTABLESTRING *	printablestring;		ASN1_T61STRING *	t61string;		ASN1_IA5STRING *	ia5string;		ASN1_GENERALSTRING *	generalstring;		ASN1_BMPSTRING *	bmpstring;		ASN1_UNIVERSALSTRING *	universalstring;		ASN1_UTCTIME *		utctime;		ASN1_GENERALIZEDTIME *	generalizedtime;		ASN1_VISIBLESTRING *	visiblestring;		ASN1_UTF8STRING *	utf8string;		/* set and sequence are left complete and still		 * contain the set or sequence bytes */		ASN1_STRING *		set;		ASN1_STRING *		sequence;		} value;	} ASN1_TYPE;