Commit ea3675b5 authored by Dr. Stephen Henson's avatar Dr. Stephen Henson
Browse files

New ASN1 macros to just implement and declare the new and free functions

and changes to mkdef.pl so it recognises them.

Use these in policyMappings extension.
parent c554155b
Loading
Loading
Loading
Loading
+8 −4
Original line number Diff line number Diff line
@@ -264,14 +264,15 @@ typedef struct ASN1_VALUE_st ASN1_VALUE;

#define DECLARE_ASN1_FUNCTIONS(type) DECLARE_ASN1_FUNCTIONS_name(type, type)

#define DECLARE_ASN1_ALLOC_FUNCTIONS(type) \
	DECLARE_ASN1_ALLOC_FUNCTIONS_name(type, type)

#define DECLARE_ASN1_FUNCTIONS_name(type, name) \
	type *name##_new(void); \
	void name##_free(type *a); \
	DECLARE_ASN1_ALLOC_FUNCTIONS_name(type, name) \
	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_ALLOC_FUNCTIONS_name(type, name) \
	DECLARE_ASN1_ENCODE_FUNCTIONS(type, itname, name)

#define	DECLARE_ASN1_ENCODE_FUNCTIONS(type, itname, name) \
@@ -291,6 +292,9 @@ typedef struct ASN1_VALUE_st ASN1_VALUE;
	name *name##_new(void); \
	void name##_free(name *a);

#define DECLARE_ASN1_ALLOC_FUNCTIONS_name(type, name) \
	type *name##_new(void); \
	void name##_free(type *a);

/* The following macros and typedefs allow an ASN1_ITEM
 * to be embedded in a structure and referenced. Since
+3 −0
Original line number Diff line number Diff line
@@ -775,6 +775,9 @@ typedef struct ASN1_AUX_st {
#define IMPLEMENT_ASN1_FUNCTIONS_ENCODE_name(stname, itname) \
			IMPLEMENT_ASN1_FUNCTIONS_ENCODE_fname(stname, itname, itname)

#define IMPLEMENT_ASN1_ALLOC_FUNCTIONS(stname) \
		IMPLEMENT_ASN1_ALLOC_FUNCTIONS_fname(stname, stname, stname)

#define IMPLEMENT_ASN1_ALLOC_FUNCTIONS_fname(stname, itname, fname) \
	stname *fname##_new(void) \
	{ \
+1 −1
Original line number Diff line number Diff line
@@ -89,7 +89,7 @@ ASN1_ITEM_TEMPLATE(POLICY_MAPPINGS) =
								POLICY_MAPPING)
ASN1_ITEM_TEMPLATE_END(POLICY_MAPPINGS)

IMPLEMENT_ASN1_FUNCTIONS(POLICY_MAPPING)
IMPLEMENT_ASN1_ALLOC_FUNCTIONS(POLICY_MAPPING)


static STACK_OF(CONF_VALUE) *i2v_POLICY_MAPPINGS(X509V3_EXT_METHOD *method,
+1 −0
Original line number Diff line number Diff line
@@ -465,6 +465,7 @@ DECLARE_ASN1_FUNCTIONS(ACCESS_DESCRIPTION)
DECLARE_ASN1_FUNCTIONS(AUTHORITY_INFO_ACCESS)

DECLARE_ASN1_ITEM(POLICY_MAPPING)
DECLARE_ASN1_ALLOC_FUNCTIONS(POLICY_MAPPING)
DECLARE_ASN1_ITEM(POLICY_MAPPINGS)

#ifdef HEADER_CONF_H
+6 −0
Original line number Diff line number Diff line
@@ -3000,3 +3000,9 @@ a2i_IPADDRESS 3434 EXIST::FUNCTION:
ENGINE_setup_bsd_cryptodev              3435	EXIST:__FreeBSD__:FUNCTION:ENGINE
EC_GROUP_have_precompute_mult           3436	EXIST::FUNCTION:EC
X509V3_NAME_from_section                3437	EXIST::FUNCTION:
POLICY_MAPPING_it                       3438	EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:
POLICY_MAPPING_it                       3438	EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:
POLICY_MAPPINGS_it                      3439	EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:
POLICY_MAPPINGS_it                      3439	EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:
POLICY_MAPPING_new                      3440	EXIST::FUNCTION:
POLICY_MAPPING_free                     3441	EXIST::FUNCTION:
Loading