New ASN1 macros to just implement and declare the new and free functions
authorDr. Stephen Henson <steve@openssl.org>
Thu, 20 Mar 2003 17:58:33 +0000 (17:58 +0000)
committerDr. Stephen Henson <steve@openssl.org>
Thu, 20 Mar 2003 17:58:33 +0000 (17:58 +0000)
and changes to mkdef.pl so it recognises them.

Use these in policyMappings extension.

crypto/asn1/asn1.h
crypto/asn1/asn1t.h
crypto/x509v3/v3_pmaps.c
crypto/x509v3/x509v3.h
util/libeay.num
util/mkdef.pl

index 0eb97fa62e040ec319157564ae569f60fc29d47b..19414444a5c216c81b808acd5cb39c3d0ae0b1ad 100644 (file)
@@ -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
index 479225bea070a261aabe89d9344e8549ea3903a7..c1a4bea8f1e1b940b18204e1643beb920cd3b35f 100644 (file)
@@ -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) \
        { \
index 897640fc1263537421a7a69d7d7871965d4bb4d8..137be58ad91a3f7501b58f37f04e434e394b7c83 100644 (file)
@@ -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,
index fda50c95a0a28c01beda92ef189bd1bf41cb2e75..2cbe1b96325b7a61eb9e5ea29924837a4ec4f17d 100644 (file)
@@ -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
index 243d9f12d99e922464c54ce04f058fdb19424947..b97228ce3ba5a5da4358e6c8cfaed1c7e1bce50a 100755 (executable)
@@ -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:
index f7f0e6ebf20bad667d7ec9f5bd2ed2dcaaef719e..3091e2035b802c86da0e99289897269f3784d6c7 100755 (executable)
@@ -673,6 +673,10 @@ sub do_defs
                                                      "EXPORT_VAR_AS_FUNCTION",
                                                      "FUNCTION");
                                        next;
+                               } elsif (/^\s*DECLARE_ASN1_ALLOC_FUNCTIONS\s*\(\s*(\w*)\s*\)/) {
+                                       $def .= "int $1_free(void);";
+                                       $def .= "int $1_new(void);";
+                                       next;
                                } elsif (/^\s*DECLARE_ASN1_FUNCTIONS_name\s*\(\s*(\w*)\s*,\s*(\w*)\s*\)/) {
                                        $def .= "int d2i_$2(void);";
                                        $def .= "int i2d_$2(void);";