DECLARE_STACK_OF(ASN1_TYPE) DECLARE_ASN1_SET_OF(ASN1_TYPE)  typedef struct asn1_method_st
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   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); \ DECLARE_ASN1_ITEM(itname)  #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); \ DECLARE_ASN1_ITEM(name)  #define DECLARE_ASN1_FUNCTIONS_const(name) \ name *name##_new(void); \ void name##_free(name *a);     #ifndef OPENSSL_EXPORT_VAR_AS_FUNCTION   typedef const ASN1_ITEM ASN1_ITEM_EXP;   #define ASN1_ITEM_ptr(iptr) (iptr)   #define ASN1_ITEM_ref(iptr) (&(iptr##_it))  #define ASN1_ITEM_rptr(ref) (&(ref##_it))  #define DECLARE_ASN1_ITEM(name) \ OPENSSL_EXTERN const ASN1_ITEM name##_it;  #else     typedef const ASN1_ITEM * ASN1_ITEM_EXP(void);   #define ASN1_ITEM_ptr(iptr) (iptr())   #define ASN1_ITEM_ref(iptr) (iptr##_it)  #define ASN1_ITEM_rptr(ref) (ref##_it())  #define DECLARE_ASN1_ITEM(name) \ const ASN1_ITEM * name##_it(void);  #endif      #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)  DECLARE_STACK_OF(ASN1_GENERALSTRING)  typedef struct asn1_type_st
DECLARE_STACK_OF(ASN1_TYPE)DECLARE_ASN1_SET_OF(ASN1_TYPE)typedef struct asn1_method_st	{	int (*i2d)();	char *(*d2i)();	char *(*create)();	void (*destroy)();	} ASN1_METHOD;