summaryrefslogtreecommitdiffstats
path: root/crypto
diff options
context:
space:
mode:
authorDr. Stephen Henson <steve@openssl.org>2000-06-16 23:29:26 +0000
committerDr. Stephen Henson <steve@openssl.org>2000-06-16 23:29:26 +0000
commit3aceb94b9e6ac4722b96d4fb1cf7e1a4358941e0 (patch)
tree9adfd28b708d52c0f0efac181d7cfadc0f1ecb9a /crypto
parentfb3e1eeb9364bc4d895cbdc5c048831cc7790c20 (diff)
Safe stack reorganisation in terms of function casts.
After some messing around this seems to work but needs a few more tests. Working out the syntax for sk_set_cmp_func() (cast it to a function that itself returns a function pointer) was painful :-( Needs some testing to see what other compilers think of this syntax. Also needs similar stuff for ASN1_SET_OF etc etc.
Diffstat (limited to 'crypto')
-rw-r--r--crypto/asn1/asn1.h124
-rw-r--r--crypto/bio/bio.h31
-rw-r--r--crypto/conf/conf.h31
-rw-r--r--crypto/crypto.h31
-rw-r--r--crypto/objects/o_names.c31
-rw-r--r--crypto/pkcs12/pkcs12.h31
-rw-r--r--crypto/pkcs7/pk7_mime.c62
-rw-r--r--crypto/pkcs7/pkcs7.h93
-rw-r--r--crypto/stack/safestack.h842
-rw-r--r--crypto/stack/stack.c5
-rw-r--r--crypto/stack/stack.h4
-rw-r--r--crypto/x509/x509.h310
-rw-r--r--crypto/x509/x509_vfy.h31
-rw-r--r--crypto/x509v3/x509v3.h248
14 files changed, 780 insertions, 1094 deletions
diff --git a/crypto/asn1/asn1.h b/crypto/asn1/asn1.h
index 791636cbcb..b604712865 100644
--- a/crypto/asn1/asn1.h
+++ b/crypto/asn1/asn1.h
@@ -248,37 +248,6 @@ typedef struct asn1_string_table_st {
} ASN1_STRING_TABLE;
DECLARE_STACK_OF(ASN1_STRING_TABLE)
-/* This block of defines is updated by a perl script, please do not touch! */
-#ifndef DEBUG_SAFESTACK
- #define sk_ASN1_STRING_TABLE_new(a) sk_new((int (*) \
- (const char * const *, const char * const *))(a))
- #define sk_ASN1_STRING_TABLE_new_null() sk_new_null()
- #define sk_ASN1_STRING_TABLE_free(a) sk_free(a)
- #define sk_ASN1_STRING_TABLE_num(a) sk_num(a)
- #define sk_ASN1_STRING_TABLE_value(a,b) ((ASN1_STRING_TABLE *) \
- sk_value((a),(b)))
- #define sk_ASN1_STRING_TABLE_set(a,b,c) ((ASN1_STRING_TABLE *) \
- sk_set((a),(b),(char *)(c)))
- #define sk_ASN1_STRING_TABLE_zero(a) sk_zero(a)
- #define sk_ASN1_STRING_TABLE_push(a,b) sk_push((a),(char *)(b))
- #define sk_ASN1_STRING_TABLE_unshift(a,b) sk_unshift((a),(b))
- #define sk_ASN1_STRING_TABLE_find(a,b) sk_find((a), (char *)(b))
- #define sk_ASN1_STRING_TABLE_delete(a,b) ((ASN1_STRING_TABLE *) \
- sk_delete((a),(b)))
- #define sk_ASN1_STRING_TABLE_delete_ptr(a,b) ((ASN1_STRING_TABLE *) \
- sk_delete_ptr((a),(char *)(b)))
- #define sk_ASN1_STRING_TABLE_insert(a,b,c) sk_insert((a),(char *)(b),(c))
- #define sk_ASN1_STRING_TABLE_set_cmp_func(a,b) ((int (*) \
- (const ASN1_STRING_TABLE * const *,const ASN1_STRING_TABLE * const *)) \
- sk_set_cmp_func((a),(int (*) \
- (const char * const *, const char * const *))(b)))
- #define sk_ASN1_STRING_TABLE_dup(a) sk_dup(a)
- #define sk_ASN1_STRING_TABLE_pop_free(a,b) sk_pop_free((a),(void (*)(void *))(b))
- #define sk_ASN1_STRING_TABLE_shift(a) ((ASN1_STRING_TABLE *)sk_shift(a))
- #define sk_ASN1_STRING_TABLE_pop(a) ((ASN1_STRING_TABLE *)sk_pop(a))
- #define sk_ASN1_STRING_TABLE_sort(a) sk_sort(a)
-#endif /* !DEBUG_SAFESTACK */
-/* End of perl script block, you may now edit :-) */
/* size limits: this stuff is taken straight from RFC2459 */
@@ -328,37 +297,6 @@ typedef struct asn1_string_st ASN1_UTF8STRING;
typedef int ASN1_NULL;
DECLARE_STACK_OF(ASN1_INTEGER)
-/* This block of defines is updated by a perl script, please do not touch! */
-#ifndef DEBUG_SAFESTACK
- #define sk_ASN1_INTEGER_new(a) sk_new((int (*) \
- (const char * const *, const char * const *))(a))
- #define sk_ASN1_INTEGER_new_null() sk_new_null()
- #define sk_ASN1_INTEGER_free(a) sk_free(a)
- #define sk_ASN1_INTEGER_num(a) sk_num(a)
- #define sk_ASN1_INTEGER_value(a,b) ((ASN1_INTEGER *) \
- sk_value((a),(b)))
- #define sk_ASN1_INTEGER_set(a,b,c) ((ASN1_INTEGER *) \
- sk_set((a),(b),(char *)(c)))
- #define sk_ASN1_INTEGER_zero(a) sk_zero(a)
- #define sk_ASN1_INTEGER_push(a,b) sk_push((a),(char *)(b))
- #define sk_ASN1_INTEGER_unshift(a,b) sk_unshift((a),(b))
- #define sk_ASN1_INTEGER_find(a,b) sk_find((a), (char *)(b))
- #define sk_ASN1_INTEGER_delete(a,b) ((ASN1_INTEGER *) \
- sk_delete((a),(b)))
- #define sk_ASN1_INTEGER_delete_ptr(a,b) ((ASN1_INTEGER *) \
- sk_delete_ptr((a),(char *)(b)))
- #define sk_ASN1_INTEGER_insert(a,b,c) sk_insert((a),(char *)(b),(c))
- #define sk_ASN1_INTEGER_set_cmp_func(a,b) ((int (*) \
- (const ASN1_INTEGER * const *,const ASN1_INTEGER * const *)) \
- sk_set_cmp_func((a),(int (*) \
- (const char * const *, const char * const *))(b)))
- #define sk_ASN1_INTEGER_dup(a) sk_dup(a)
- #define sk_ASN1_INTEGER_pop_free(a,b) sk_pop_free((a),(void (*)(void *))(b))
- #define sk_ASN1_INTEGER_shift(a) ((ASN1_INTEGER *)sk_shift(a))
- #define sk_ASN1_INTEGER_pop(a) ((ASN1_INTEGER *)sk_pop(a))
- #define sk_ASN1_INTEGER_sort(a) sk_sort(a)
-#endif /* !DEBUG_SAFESTACK */
-/* End of perl script block, you may now edit :-) */
DECLARE_ASN1_SET_OF(ASN1_INTEGER)
typedef struct asn1_type_st
@@ -390,37 +328,6 @@ typedef struct asn1_type_st
} ASN1_TYPE;
DECLARE_STACK_OF(ASN1_TYPE)
-/* This block of defines is updated by a perl script, please do not touch! */
-#ifndef DEBUG_SAFESTACK
- #define sk_ASN1_TYPE_new(a) sk_new((int (*) \
- (const char * const *, const char * const *))(a))
- #define sk_ASN1_TYPE_new_null() sk_new_null()
- #define sk_ASN1_TYPE_free(a) sk_free(a)
- #define sk_ASN1_TYPE_num(a) sk_num(a)
- #define sk_ASN1_TYPE_value(a,b) ((ASN1_TYPE *) \
- sk_value((a),(b)))
- #define sk_ASN1_TYPE_set(a,b,c) ((ASN1_TYPE *) \
- sk_set((a),(b),(char *)(c)))
- #define sk_ASN1_TYPE_zero(a) sk_zero(a)
- #define sk_ASN1_TYPE_push(a,b) sk_push((a),(char *)(b))
- #define sk_ASN1_TYPE_unshift(a,b) sk_unshift((a),(b))
- #define sk_ASN1_TYPE_find(a,b) sk_find((a), (char *)(b))
- #define sk_ASN1_TYPE_delete(a,b) ((ASN1_TYPE *) \
- sk_delete((a),(b)))
- #define sk_ASN1_TYPE_delete_ptr(a,b) ((ASN1_TYPE *) \
- sk_delete_ptr((a),(char *)(b)))
- #define sk_ASN1_TYPE_insert(a,b,c) sk_insert((a),(char *)(b),(c))
- #define sk_ASN1_TYPE_set_cmp_func(a,b) ((int (*) \
- (const ASN1_TYPE * const *,const ASN1_TYPE * const *)) \
- sk_set_cmp_func((a),(int (*) \
- (const char * const *, const char * const *))(b)))
- #define sk_ASN1_TYPE_dup(a) sk_dup(a)
- #define sk_ASN1_TYPE_pop_free(a,b) sk_pop_free((a),(void (*)(void *))(b))
- #define sk_ASN1_TYPE_shift(a) ((ASN1_TYPE *)sk_shift(a))
- #define sk_ASN1_TYPE_pop(a) ((ASN1_TYPE *)sk_pop(a))
- #define sk_ASN1_TYPE_sort(a) sk_sort(a)
-#endif /* !DEBUG_SAFESTACK */
-/* End of perl script block, you may now edit :-) */
DECLARE_ASN1_SET_OF(ASN1_TYPE)
typedef struct asn1_method_st
@@ -642,37 +549,6 @@ ASN1_OBJECT * d2i_ASN1_OBJECT(ASN1_OBJECT **a,unsigned char **pp,
long length);
DECLARE_STACK_OF(ASN1_OBJECT)
-/* This block of defines is updated by a perl script, please do not touch! */
-#ifndef DEBUG_SAFESTACK
- #define sk_ASN1_OBJECT_new(a) sk_new((int (*) \
- (const char * const *, const char * const *))(a))
- #define sk_ASN1_OBJECT_new_null() sk_new_null()
- #define sk_ASN1_OBJECT_free(a) sk_free(a)
- #define sk_ASN1_OBJECT_num(a) sk_num(a)
- #define sk_ASN1_OBJECT_value(a,b) ((ASN1_OBJECT *) \
- sk_value((a),(b)))
- #define sk_ASN1_OBJECT_set(a,b,c) ((ASN1_OBJECT *) \
- sk_set((a),(b),(char *)(c)))
- #define sk_ASN1_OBJECT_zero(a) sk_zero(a)
- #define sk_ASN1_OBJECT_push(a,b) sk_push((a),(char *)(b))
- #define sk_ASN1_OBJECT_unshift(a,b) sk_unshift((a),(b))
- #define sk_ASN1_OBJECT_find(a,b) sk_find((a), (char *)(b))
- #define sk_ASN1_OBJECT_delete(a,b) ((ASN1_OBJECT *) \
- sk_delete((a),(b)))
- #define sk_ASN1_OBJECT_delete_ptr(a,b) ((ASN1_OBJECT *) \
- sk_delete_ptr((a),(char *)(b)))
- #define sk_ASN1_OBJECT_insert(a,b,c) sk_insert((a),(char *)(b),(c))
- #define sk_ASN1_OBJECT_set_cmp_func(a,b) ((int (*) \
- (const ASN1_OBJECT * const *,const ASN1_OBJECT * const *)) \
- sk_set_cmp_func((a),(int (*) \
- (const char * const *, const char * const *))(b)))
- #define sk_ASN1_OBJECT_dup(a) sk_dup(a)
- #define sk_ASN1_OBJECT_pop_free(a,b) sk_pop_free((a),(void (*)(void *))(b))
- #define sk_ASN1_OBJECT_shift(a) ((ASN1_OBJECT *)sk_shift(a))
- #define sk_ASN1_OBJECT_pop(a) ((ASN1_OBJECT *)sk_pop(a))
- #define sk_ASN1_OBJECT_sort(a) sk_sort(a)
-#endif /* !DEBUG_SAFESTACK */
-/* End of perl script block, you may now edit :-) */
DECLARE_ASN1_SET_OF(ASN1_OBJECT)
ASN1_STRING * ASN1_STRING_new(void);
diff --git a/crypto/bio/bio.h b/crypto/bio/bio.h
index fa4e0e2225..68107d9798 100644
--- a/crypto/bio/bio.h
+++ b/crypto/bio/bio.h
@@ -264,37 +264,6 @@ struct bio_st
};
DECLARE_STACK_OF(BIO)
-/* This block of defines is updated by a perl script, please do not touch! */
-#ifndef DEBUG_SAFESTACK
- #define sk_BIO_new(a) sk_new((int (*) \
- (const char * const *, const char * const *))(a))
- #define sk_BIO_new_null() sk_new_null()
- #define sk_BIO_free(a) sk_free(a)
- #define sk_BIO_num(a) sk_num(a)
- #define sk_BIO_value(a,b) ((BIO *) \
- sk_value((a),(b)))
- #define sk_BIO_set(a,b,c) ((BIO *) \
- sk_set((a),(b),(char *)(c)))
- #define sk_BIO_zero(a) sk_zero(a)
- #define sk_BIO_push(a,b) sk_push((a),(char *)(b))
- #define sk_BIO_unshift(a,b) sk_unshift((a),(b))
- #define sk_BIO_find(a,b) sk_find((a), (char *)(b))
- #define sk_BIO_delete(a,b) ((BIO *) \
- sk_delete((a),(b)))
- #define sk_BIO_delete_ptr(a,b) ((BIO *) \
- sk_delete_ptr((a),(char *)(b)))
- #define sk_BIO_insert(a,b,c) sk_insert((a),(char *)(b),(c))
- #define sk_BIO_set_cmp_func(a,b) ((int (*) \
- (const BIO * const *,const BIO * const *)) \
- sk_set_cmp_func((a),(int (*) \
- (const char * const *, const char * const *))(b)))
- #define sk_BIO_dup(a) sk_dup(a)
- #define sk_BIO_pop_free(a,b) sk_pop_free((a),(void (*)(void *))(b))
- #define sk_BIO_shift(a) ((BIO *)sk_shift(a))
- #define sk_BIO_pop(a) ((BIO *)sk_pop(a))
- #define sk_BIO_sort(a) sk_sort(a)
-#endif /* !DEBUG_SAFESTACK */
-/* End of perl script block, you may now edit :-) */
typedef struct bio_f_buffer_ctx_struct
{
diff --git a/crypto/conf/conf.h b/crypto/conf/conf.h
index 0adda45dd3..2f70634455 100644
--- a/crypto/conf/conf.h
+++ b/crypto/conf/conf.h
@@ -77,37 +77,6 @@ typedef struct
} CONF_VALUE;
DECLARE_STACK_OF(CONF_VALUE)
-/* This block of defines is updated by a perl script, please do not touch! */
-#ifndef DEBUG_SAFESTACK
- #define sk_CONF_VALUE_new(a) sk_new((int (*) \
- (const char * const *, const char * const *))(a))
- #define sk_CONF_VALUE_new_null() sk_new_null()
- #define sk_CONF_VALUE_free(a) sk_free(a)
- #define sk_CONF_VALUE_num(a) sk_num(a)
- #define sk_CONF_VALUE_value(a,b) ((CONF_VALUE *) \
- sk_value((a),(b)))
- #define sk_CONF_VALUE_set(a,b,c) ((CONF_VALUE *) \
- sk_set((a),(b),(char *)(c)))
- #define sk_CONF_VALUE_zero(a) sk_zero(a)
- #define sk_CONF_VALUE_push(a,b) sk_push((a),(char *)(b))
- #define sk_CONF_VALUE_unshift(a,b) sk_unshift((a),(b))
- #define sk_CONF_VALUE_find(a,b) sk_find((a), (char *)(b))
- #define sk_CONF_VALUE_delete(a,b) ((CONF_VALUE *) \
- sk_delete((a),(b)))
- #define sk_CONF_VALUE_delete_ptr(a,b) ((CONF_VALUE *) \
- sk_delete_ptr((a),(char *)(b)))
- #define sk_CONF_VALUE_insert(a,b,c) sk_insert((a),(char *)(b),(c))
- #define sk_CONF_VALUE_set_cmp_func(a,b) ((int (*) \
- (const CONF_VALUE * const *,const CONF_VALUE * const *)) \
- sk_set_cmp_func((a),(int (*) \
- (const char * const *, const char * const *))(b)))
- #define sk_CONF_VALUE_dup(a) sk_dup(a)
- #define sk_CONF_VALUE_pop_free(a,b) sk_pop_free((a),(void (*)(void *))(b))
- #define sk_CONF_VALUE_shift(a) ((CONF_VALUE *)sk_shift(a))
- #define sk_CONF_VALUE_pop(a) ((CONF_VALUE *)sk_pop(a))
- #define sk_CONF_VALUE_sort(a) sk_sort(a)
-#endif /* !DEBUG_SAFESTACK */
-/* End of perl script block, you may now edit :-) */
struct conf_st;
typedef struct conf_st CONF;
diff --git a/crypto/crypto.h b/crypto/crypto.h
index 20181a96a0..9a3a6f8b00 100644
--- a/crypto/crypto.h
+++ b/crypto/crypto.h
@@ -201,37 +201,6 @@ typedef struct crypto_ex_data_func_st
} CRYPTO_EX_DATA_FUNCS;
DECLARE_STACK_OF(CRYPTO_EX_DATA_FUNCS)
-/* This block of defines is updated by a perl script, please do not touch! */
-#ifndef DEBUG_SAFESTACK
- #define sk_CRYPTO_EX_DATA_FUNCS_new(a) sk_new((int (*) \
- (const char * const *, const char * const *))(a))
- #define sk_CRYPTO_EX_DATA_FUNCS_new_null() sk_new_null()
- #define sk_CRYPTO_EX_DATA_FUNCS_free(a) sk_free(a)
- #define sk_CRYPTO_EX_DATA_FUNCS_num(a) sk_num(a)
- #define sk_CRYPTO_EX_DATA_FUNCS_value(a,b) ((CRYPTO_EX_DATA_FUNCS *) \
- sk_value((a),(b)))
- #define sk_CRYPTO_EX_DATA_FUNCS_set(a,b,c) ((CRYPTO_EX_DATA_FUNCS *) \
- sk_set((a),(b),(char *)(c)))
- #define sk_CRYPTO_EX_DATA_FUNCS_zero(a) sk_zero(a)
- #define sk_CRYPTO_EX_DATA_FUNCS_push(a,b) sk_push((a),(char *)(b))
- #define sk_CRYPTO_EX_DATA_FUNCS_unshift(a,b) sk_unshift((a),(b))
- #define sk_CRYPTO_EX_DATA_FUNCS_find(a,b) sk_find((a), (char *)(b))
- #define sk_CRYPTO_EX_DATA_FUNCS_delete(a,b) ((CRYPTO_EX_DATA_FUNCS *) \
- sk_delete((a),(b)))
- #define sk_CRYPTO_EX_DATA_FUNCS_delete_ptr(a,b) ((CRYPTO_EX_DATA_FUNCS *) \
- sk_delete_ptr((a),(char *)(b)))
- #define sk_CRYPTO_EX_DATA_FUNCS_insert(a,b,c) sk_insert((a),(char *)(b),(c))
- #define sk_CRYPTO_EX_DATA_FUNCS_set_cmp_func(a,b) ((int (*) \
- (const CRYPTO_EX_DATA_FUNCS * const *,const CRYPTO_EX_DATA_FUNCS * const *)) \
- sk_set_cmp_func((a),(int (*) \
- (const char * const *, const char * const *))(b)))
- #define sk_CRYPTO_EX_DATA_FUNCS_dup(a) sk_dup(a)
- #define sk_CRYPTO_EX_DATA_FUNCS_pop_free(a,b) sk_pop_free((a),(void (*)(void *))(b))
- #define sk_CRYPTO_EX_DATA_FUNCS_shift(a) ((CRYPTO_EX_DATA_FUNCS *)sk_shift(a))
- #define sk_CRYPTO_EX_DATA_FUNCS_pop(a) ((CRYPTO_EX_DATA_FUNCS *)sk_pop(a))
- #define sk_CRYPTO_EX_DATA_FUNCS_sort(a) sk_sort(a)
-#endif /* !DEBUG_SAFESTACK */
-/* End of perl script block, you may now edit :-) */
/* Per class, we have a STACK of CRYPTO_EX_DATA_FUNCS for each CRYPTO_EX_DATA
* entry.
diff --git a/crypto/objects/o_names.c b/crypto/objects/o_names.c
index aa82a8a07c..f6bb643491 100644
--- a/crypto/objects/o_names.c
+++ b/crypto/objects/o_names.c
@@ -20,37 +20,6 @@ typedef struct name_funcs_st
} NAME_FUNCS;
DECLARE_STACK_OF(NAME_FUNCS)
-/* This block of defines is updated by a perl script, please do not touch! */
-#ifndef DEBUG_SAFESTACK
- #define sk_NAME_FUNCS_new(a) sk_new((int (*) \
- (const char * const *, const char * const *))(a))
- #define sk_NAME_FUNCS_new_null() sk_new_null()
- #define sk_NAME_FUNCS_free(a) sk_free(a)
- #define sk_NAME_FUNCS_num(a) sk_num(a)
- #define sk_NAME_FUNCS_value(a,b) ((NAME_FUNCS *) \
- sk_value((a),(b)))
- #define sk_NAME_FUNCS_set(a,b,c) ((NAME_FUNCS *) \
- sk_set((a),(b),(char *)(c)))
- #define sk_NAME_FUNCS_zero(a) sk_zero(a)
- #define sk_NAME_FUNCS_push(a,b) sk_push((a),(char *)(b))
- #define sk_NAME_FUNCS_unshift(a,b) sk_unshift((a),(b))
- #define sk_NAME_FUNCS_find(a,b) sk_find((a), (char *)(b))
- #define sk_NAME_FUNCS_delete(a,b) ((NAME_FUNCS *) \
- sk_delete((a),(b)))
- #define sk_NAME_FUNCS_delete_ptr(a,b) ((NAME_FUNCS *) \
- sk_delete_ptr((a),(char *)(b)))
- #define sk_NAME_FUNCS_insert(a,b,c) sk_insert((a),(char *)(b),(c))
- #define sk_NAME_FUNCS_set_cmp_func(a,b) ((int (*) \
- (const NAME_FUNCS * const *,const NAME_FUNCS * const *)) \
- sk_set_cmp_func((a),(int (*) \
- (const char * const *, const char * const *))(b)))
- #define sk_NAME_FUNCS_dup(a) sk_dup(a)
- #define sk_NAME_FUNCS_pop_free(a,b) sk_pop_free((a),(void (*)(void *))(b))
- #define sk_NAME_FUNCS_shift(a) ((NAME_FUNCS *)sk_shift(a))
- #define sk_NAME_FUNCS_pop(a) ((NAME_FUNCS *)sk_pop(a))
- #define sk_NAME_FUNCS_sort(a) sk_sort(a)
-#endif /* !DEBUG_SAFESTACK */
-/* End of perl script block, you may now edit :-) */
IMPLEMENT_STACK_OF(NAME_FUNCS)
static STACK_OF(NAME_FUNCS) *name_funcs_stack;
diff --git a/crypto/pkcs12/pkcs12.h b/crypto/pkcs12/pkcs12.h
index 1e0dc3e189..4cf92b68ea 100644
--- a/crypto/pkcs12/pkcs12.h
+++ b/crypto/pkcs12/pkcs12.h
@@ -124,37 +124,6 @@ ASN1_TYPE *rest;
} PKCS12_SAFEBAG;
DECLARE_STACK_OF(PKCS12_SAFEBAG)
-/* This block of defines is updated by a perl script, please do not touch! */
-#ifndef DEBUG_SAFESTACK
- #define sk_PKCS12_SAFEBAG_new(a) sk_new((int (*) \
- (const char * const *, const char * const *))(a))
- #define sk_PKCS12_SAFEBAG_new_null() sk_new_null()
- #define sk_PKCS12_SAFEBAG_free(a) sk_free(a)
- #define sk_PKCS12_SAFEBAG_num(a) sk_num(a)
- #define sk_PKCS12_SAFEBAG_value(a,b) ((PKCS12_SAFEBAG *) \
- sk_value((a),(b)))
- #define sk_PKCS12_SAFEBAG_set(a,b,c) ((PKCS12_SAFEBAG *) \
- sk_set((a),(b),(char *)(c)))
- #define sk_PKCS12_SAFEBAG_zero(a) sk_zero(a)
- #define sk_PKCS12_SAFEBAG_push(a,b) sk_push((a),(char *)(b))
- #define sk_PKCS12_SAFEBAG_unshift(a,b) sk_unshift((a),(b))
- #define sk_PKCS12_SAFEBAG_find(a,b) sk_find((a), (char *)(b))
- #define sk_PKCS12_SAFEBAG_delete(a,b) ((PKCS12_SAFEBAG *) \
- sk_delete((a),(b)))
- #define sk_PKCS12_SAFEBAG_delete_ptr(a,b) ((PKCS12_SAFEBAG *) \
- sk_delete_ptr((a),(char *)(b)))
- #define sk_PKCS12_SAFEBAG_insert(a,b,c) sk_insert((a),(char *)(b),(c))
- #define sk_PKCS12_SAFEBAG_set_cmp_func(a,b) ((int (*) \
- (const PKCS12_SAFEBAG * const *,const PKCS12_SAFEBAG * const *)) \
- sk_set_cmp_func((a),(int (*) \
- (const char * const *, const char * const *))(b)))
- #define sk_PKCS12_SAFEBAG_dup(a) sk_dup(a)
- #define sk_PKCS12_SAFEBAG_pop_free(a,b) sk_pop_free((a),(void (*)(void *))(b))
- #define sk_PKCS12_SAFEBAG_shift(a) ((PKCS12_SAFEBAG *)sk_shift(a))
- #define sk_PKCS12_SAFEBAG_pop(a) ((PKCS12_SAFEBAG *)sk_pop(a))
- #define sk_PKCS12_SAFEBAG_sort(a) sk_sort(a)
-#endif /* !DEBUG_SAFESTACK */
-/* End of perl script block, you may now edit :-) */
DECLARE_ASN1_SET_OF(PKCS12_SAFEBAG)
DECLARE_PKCS12_STACK_OF(PKCS12_SAFEBAG)
diff --git a/crypto/pkcs7/pk7_mime.c b/crypto/pkcs7/pk7_mime.c
index 7c6649cc14..9741aa578e 100644
--- a/crypto/pkcs7/pk7_mime.c
+++ b/crypto/pkcs7/pk7_mime.c
@@ -75,37 +75,6 @@ char *param_value; /* Param value e.g. "sha1" */
} MIME_PARAM;
DECLARE_STACK_OF(MIME_PARAM)
-/* This block of defines is updated by a perl script, please do not touch! */
-#ifndef DEBUG_SAFESTACK
- #define sk_MIME_PARAM_new(a) sk_new((int (*) \
- (const char * const *, const char * const *))(a))
- #define sk_MIME_PARAM_new_null() sk_new_null()
- #define sk_MIME_PARAM_free(a) sk_free(a)
- #define sk_MIME_PARAM_num(a) sk_num(a)
- #define sk_MIME_PARAM_value(a,b) ((MIME_PARAM *) \
- sk_value((a),(b)))
- #define sk_MIME_PARAM_set(a,b,c) ((MIME_PARAM *) \
- sk_set((a),(b),(char *)(c)))
- #define sk_MIME_PARAM_zero(a) sk_zero(a)
- #define sk_MIME_PARAM_push(a,b) sk_push((a),(char *)(b))
- #define sk_MIME_PARAM_unshift(a,b) sk_unshift((a),(b))
- #define sk_MIME_PARAM_find(a,b) sk_find((a), (char *)(b))
- #define sk_MIME_PARAM_delete(a,b) ((MIME_PARAM *) \
- sk_delete((a),(b)))
- #define sk_MIME_PARAM_delete_ptr(a,b) ((MIME_PARAM *) \
- sk_delete_ptr((a),(char *)(b)))
- #define sk_MIME_PARAM_insert(a,b,c) sk_insert((a),(char *)(b),(c))
- #define sk_MIME_PARAM_set_cmp_func(a,b) ((int (*) \
- (const MIME_PARAM * const *,const MIME_PARAM * const *)) \
- sk_set_cmp_func((a),(int (*) \
- (const char * const *, const char * const *))(b)))
- #define sk_MIME_PARAM_dup(a) sk_dup(a)
- #define sk_MIME_PARAM_pop_free(a,b) sk_pop_free((a),(void (*)(void *))(b))
- #define sk_MIME_PARAM_shift(a) ((MIME_PARAM *)sk_shift(a))
- #define sk_MIME_PARAM_pop(a) ((MIME_PARAM *)sk_pop(a))
- #define sk_MIME_PARAM_sort(a) sk_sort(a)
-#endif /* !DEBUG_SAFESTACK */
-/* End of perl script block, you may now edit :-) */
IMPLEMENT_STACK_OF(MIME_PARAM)
typedef struct {
@@ -115,37 +84,6 @@ STACK_OF(MIME_PARAM) *params; /* Zero or more parameters */
} MIME_HEADER;
DECLARE_STACK_OF(MIME_HEADER)
-/* This block of defines is updated by a perl script, please do not touch! */
-#ifndef DEBUG_SAFESTACK
- #define sk_MIME_HEADER_new(a) sk_new((int (*) \
- (const char * const *, const char * const *))(a))
- #define sk_MIME_HEADER_new_null() sk_new_null()
- #define sk_MIME_HEADER_free(a) sk_free(a)
- #define sk_MIME_HEADER_num(a) sk_num(a)
- #define sk_MIME_HEADER_value(a,b) ((MIME_HEADER *) \
- sk_value((a),(b)))
- #define sk_MIME_HEADER_set(a,b,c) ((MIME_HEADER *) \
- sk_set((a),(b),(char *)(c)))
- #define sk_MIME_HEADER_zero(a) sk_zero(a)
- #define sk_MIME_HEADER_push(a,b) sk_push((a),(char *)(b))
- #define sk_MIME_HEADER_unshift(a,b) sk_unshift((a),(b))
- #define sk_MIME_HEADER_find(a,b) sk_find((a), (char *)(b))
- #define sk_MIME_HEADER_delete(a,b) ((MIME_HEADER *) \
- sk_delete((a),(b)))
- #define sk_MIME_HEADER_delete_ptr(a,b) ((MIME_HEADER *) \
- sk_delete_ptr((a),(char *)(b)))
- #define sk_MIME_HEADER_insert(a,b,c) sk_insert((a),(char *)(b),(c))
- #define sk_MIME_HEADER_set_cmp_func(a,b) ((int (*) \
- (const MIME_HEADER * const *,const MIME_HEADER * const *)) \
- sk_set_cmp_func((a),(int (*) \
- (const char * const *, const char * const *))(b)))
- #define sk_MIME_HEADER_dup(a) sk_dup(a)
- #define sk_MIME_HEADER_pop_free(a,b) sk_pop_free((a),(void (*)(void *))(b))
- #define sk_MIME_HEADER_shift(a) ((MIME_HEADER *)sk_shift(a))
- #define sk_MIME_HEADER_pop(a) ((MIME_HEADER *)sk_pop(a))
- #define sk_MIME_HEADER_sort(a) sk_sort(a)
-#endif /* !DEBUG_SAFESTACK */
-/* End of perl script block, you may now edit :-) */
IMPLEMENT_STACK_OF(MIME_HEADER)
static int B64_write_PKCS7(BIO *bio, PKCS7 *p7);
diff --git a/crypto/pkcs7/pkcs7.h b/crypto/pkcs7/pkcs7.h
index 9916a3b1d9..f3f85f57af 100644
--- a/crypto/pkcs7/pkcs7.h
+++ b/crypto/pkcs7/pkcs7.h
@@ -104,37 +104,6 @@ typedef struct pkcs7_signer_info_st
} PKCS7_SIGNER_INFO;
DECLARE_STACK_OF(PKCS7_SIGNER_INFO)
-/* This block of defines is updated by a perl script, please do not touch! */
-#ifndef DEBUG_SAFESTACK
- #define sk_PKCS7_SIGNER_INFO_new(a) sk_new((int (*) \
- (const char * const *, const char * const *))(a))
- #define sk_PKCS7_SIGNER_INFO_new_null() sk_new_null()
- #define sk_PKCS7_SIGNER_INFO_free(a) sk_free(a)
- #define sk_PKCS7_SIGNER_INFO_num(a) sk_num(a)
- #define sk_PKCS7_SIGNER_INFO_value(a,b) ((PKCS7_SIGNER_INFO *) \
- sk_value((a),(b)))
- #define sk_PKCS7_SIGNER_INFO_set(a,b,c) ((PKCS7_SIGNER_INFO *) \
- sk_set((a),(b),(char *)(c)))
- #define sk_PKCS7_SIGNER_INFO_zero(a) sk_zero(a)
- #define sk_PKCS7_SIGNER_INFO_push(a,b) sk_push((a),(char *)(b))
- #define sk_PKCS7_SIGNER_INFO_unshift(a,b) sk_unshift((a),(b))
- #define sk_PKCS7_SIGNER_INFO_find(a,b) sk_find((a), (char *)(b))
- #define sk_PKCS7_SIGNER_INFO_delete(a,b) ((PKCS7_SIGNER_INFO *) \
- sk_delete((a),(b)))
- #define sk_PKCS7_SIGNER_INFO_delete_ptr(a,b) ((PKCS7_SIGNER_INFO *) \
- sk_delete_ptr((a),(char *)(b)))
- #define sk_PKCS7_SIGNER_INFO_insert(a,b,c) sk_insert((a),(char *)(b),(c))
- #define sk_PKCS7_SIGNER_INFO_set_cmp_func(a,b) ((int (*) \
- (const PKCS7_SIGNER_INFO * const *,const PKCS7_SIGNER_INFO * const *)) \
- sk_set_cmp_func((a),(int (*) \
- (const char * const *, const char * const *))(b)))
- #define sk_PKCS7_SIGNER_INFO_dup(a) sk_dup(a)
- #define sk_PKCS7_SIGNER_INFO_pop_free(a,b) sk_pop_free((a),(void (*)(void *))(b))
- #define sk_PKCS7_SIGNER_INFO_shift(a) ((PKCS7_SIGNER_INFO *)sk_shift(a))
- #define sk_PKCS7_SIGNER_INFO_pop(a) ((PKCS7_SIGNER_INFO *)sk_pop(a))
- #define sk_PKCS7_SIGNER_INFO_sort(a) sk_sort(a)
-#endif /* !DEBUG_SAFESTACK */
-/* End of perl script block, you may now edit :-) */
DECLARE_ASN1_SET_OF(PKCS7_SIGNER_INFO)
typedef struct pkcs7_recip_info_st
@@ -147,37 +116,6 @@ typedef struct pkcs7_recip_info_st
} PKCS7_RECIP_INFO;
DECLARE_STACK_OF(PKCS7_RECIP_INFO)
-/* This block of defines is updated by a perl script, please do not touch! */
-#ifndef DEBUG_SAFESTACK
- #define sk_PKCS7_RECIP_INFO_new(a) sk_new((int (*) \
- (const char * const *, const char * const *))(a))
- #define sk_PKCS7_RECIP_INFO_new_null() sk_new_null()
- #define sk_PKCS7_RECIP_INFO_free(a) sk_free(a)
- #define sk_PKCS7_RECIP_INFO_num(a) sk_num(a)
- #define sk_PKCS7_RECIP_INFO_value(a,b) ((PKCS7_RECIP_INFO *) \
- sk_value((a),(b)))
- #define sk_PKCS7_RECIP_INFO_set(a,b,c) ((PKCS7_RECIP_INFO *) \
- sk_set((a),(b),(char *)(c)))
- #define sk_PKCS7_RECIP_INFO_zero(a) sk_zero(a)
- #define sk_PKCS7_RECIP_INFO_push(a,b) sk_push((a),(char *)(b))
- #define sk_PKCS7_RECIP_INFO_unshift(a,b) sk_unshift((a),(b))
- #define sk_PKCS7_RECIP_INFO_find(a,b) sk_find((a), (char *)(b))
- #define sk_PKCS7_RECIP_INFO_delete(a,b) ((PKCS7_RECIP_INFO *) \
- sk_delete((a),(b)))
- #define sk_PKCS7_RECIP_INFO_delete_ptr(a,b) ((PKCS7_RECIP_INFO *) \
- sk_delete_ptr((a),(char *)(b)))
- #define sk_PKCS7_RECIP_INFO_insert(a,b,c) sk_insert((a),(char *)(b),(c))
- #define sk_PKCS7_RECIP_INFO_set_cmp_func(a,b) ((int (*) \
- (const PKCS7_RECIP_INFO * const *,const PKCS7_RECIP_INFO * const *)) \
- sk_set_cmp_func((a),(int (*) \
- (const char * const *, const char * const *))(b)))
- #define sk_PKCS7_RECIP_INFO_dup(a) sk_dup(a)
- #define sk_PKCS7_RECIP_INFO_pop_free(a,b) sk_pop_free((a),(void (*)(void *))(b))
- #define sk_PKCS7_RECIP_INFO_shift(a) ((PKCS7_RECIP_INFO *)sk_shift(a))
- #define sk_PKCS7_RECIP_INFO_pop(a) ((PKCS7_RECIP_INFO *)sk_pop(a))
- #define sk_PKCS7_RECIP_INFO_sort(a) sk_sort(a)
-#endif /* !DEBUG_SAFESTACK */
-/* End of perl script block, you may now edit :-) */
DECLARE_ASN1_SET_OF(PKCS7_RECIP_INFO)
typedef struct pkcs7_signed_st
@@ -276,37 +214,6 @@ typedef struct pkcs7_st
} PKCS7;
DECLARE_STACK_OF(PKCS7)
-/* This block of defines is updated by a perl script, please do not touch! */
-#ifndef DEBUG_SAFESTACK
- #define sk_PKCS7_new(a) sk_new((int (*) \
- (const char * const *, const char * const *))(a))
- #define sk_PKCS7_new_null() sk_new_null()
- #define sk_PKCS7_free(a) sk_free(a)
- #define sk_PKCS7_num(a) sk_num(a)
- #define sk_PKCS7_value(a,b) ((PKCS7 *) \
- sk_value((a),(b)))
- #define sk_PKCS7_set(a,b,c) ((PKCS7 *) \
- sk_set((a),(b),(char *)(c)))
- #define sk_PKCS7_zero(a) sk_zero(a)
- #define sk_PKCS7_push(a,b) sk_push((a),(char *)(b))
- #define sk_PKCS7_unshift(a,b) sk_unshift((a),(b))
- #define sk_PKCS7_find(a,b) sk_find((a), (char *)(b))
- #define sk_PKCS7_delete(a,b) ((PKCS7 *) \
- sk_delete((a),(b)))
- #define sk_PKCS7_delete_ptr(a,b) ((PKCS7 *) \
- sk_delete_ptr((a),(char *)(b)))
- #define sk_PKCS7_insert(a,b,c) sk_insert((a),(char *)(b),(c))
- #define sk_PKCS7_set_cmp_func(a,b) ((int (*) \
- (const PKCS7 * const *,const PKCS7 * const *)) \
- sk_set_cmp_func((a),(int (*) \
- (const char * const *, const char * const *))(b)))
- #define sk_PKCS7_dup(a) sk_dup(a)
- #define sk_PKCS7_pop_free(a,b) sk_pop_free((a),(void (*)(void *))(b))
- #define sk_PKCS7_shift(a) ((PKCS7 *)sk_shift(a))
- #define sk_PKCS7_pop(a) ((PKCS7 *)sk_pop(a))
- #define sk_PKCS7_sort(a) sk_sort(a)
-#endif /* !DEBUG_SAFESTACK */
-/* End of perl script block, you may now edit :-) */
DECLARE_ASN1_SET_OF(PKCS7)
DECLARE_PKCS12_STACK_OF(PKCS7)
diff --git a/crypto/stack/safestack.h b/crypto/stack/safestack.h
index 228b4f8184..3338d1630a 100644
--- a/crypto/stack/safestack.h
+++ b/crypto/stack/safestack.h
@@ -66,74 +66,49 @@
STACK_OF(type) \
{ \
STACK stack; \
- }; \
-STACK_OF(type) *sk_##type##_new(int (*cmp)(const type * const *, \
- const type * const *)); \
-STACK_OF(type) *sk_##type##_new_null(void); \
-void sk_##type##_free(STACK_OF(type) *sk); \
-int sk_##type##_num(const STACK_OF(type) *sk); \
-type *sk_##type##_value(const STACK_OF(type) *sk,int n); \
-type *sk_##type##_set(STACK_OF(type) *sk,int n,type *v); \
-void sk_##type##_zero(STACK_OF(type) *sk); \
-int sk_##type##_push(STACK_OF(type) *sk,type *v); \
-int sk_##type##_unshift(STACK_OF(type) *sk,type *v); \
-int sk_##type##_find(STACK_OF(type) *sk,type *v); \
-type *sk_##type##_delete(STACK_OF(type) *sk,int n); \
-type *sk_##type##_delete_ptr(STACK_OF(type) *sk,type *v); \
-int sk_##type##_insert(STACK_OF(type) *sk,type *v,int n); \
-int (*sk_##type##_set_cmp_func(STACK_OF(type) *sk, \
- int (*cmp)(const type * const *,const type * const *))) \
- (const type * const *,const type * const *); \
-STACK_OF(type) *sk_##type##_dup(STACK_OF(type) *sk); \
-void sk_##type##_pop_free(STACK_OF(type) *sk,void (*func)(type *)); \
-type *sk_##type##_shift(STACK_OF(type) *sk); \
-type *sk_##type##_pop(STACK_OF(type) *sk); \
-void sk_##type##_sort(STACK_OF(type) *sk);
-
-#define IMPLEMENT_STACK_OF(type) \
-STACK_OF(type) *sk_##type##_new(int (*cmp)(const type * const *, \
- const type * const *)) \
- { return (STACK_OF(type) *)sk_new( \
- (int (*)(const char * const *,const char * const *))cmp); } \
-STACK_OF(type) *sk_##type##_new_null() \
- { return (STACK_OF(type) *)sk_new_null(); } \
-void sk_##type##_free(STACK_OF(type) *sk) \
- { sk_free((STACK *)sk); } \
-int sk_##type##_num(const STACK_OF(type) *sk) \
- { return M_sk_num((const STACK *)sk); } \
-type *sk_##type##_value(const STACK_OF(type) *sk,int n) \
- { return (type *)sk_value((STACK *)sk,n); } \
-type *sk_##type##_set(STACK_OF(type) *sk,int n,type *v) \
- { return (type *)(sk_set((STACK *)sk,n,(char *)v)); } \
-void sk_##type##_zero(STACK_OF(type) *sk) \
- { sk_zero((STACK *)sk); } \
-int sk_##type##_push(STACK_OF(type) *sk,type *v) \
- { return sk_push((STACK *)sk,(char *)v); } \
-int sk_##type##_unshift(STACK_OF(type) *sk,type *v) \
- { return sk_unshift((STACK *)sk,(char *)v); } \
-int sk_##type##_find(STACK_OF(type) *sk,type *v) \
- { return sk_find((STACK *)sk,(char *)v); } \
-type *sk_##type##_delete(STACK_OF(type) *sk,int n) \
- { return (type *)sk_delete((STACK *)sk,n); } \
-type *sk_##type##_delete_ptr(STACK_OF(type) *sk,type *v) \
- { return (type *)sk_delete_ptr((STACK *)sk,(char *)v); } \
-int sk_##type##_insert(STACK_OF(type) *sk,type *v,int n) \
- { return sk_insert((STACK *)sk,(char *)v,n); } \
-int (*sk_##type##_set_cmp_func(STACK_OF(type) *sk, \
- int (*cmp)(const type * const *,const type * const *))) \
- (const type * const *,const type * const *) \
- { return (int (*)(const type * const *,const type * const *))sk_set_cmp_func( \
- (STACK *)sk, (int(*)(const char * const *, const char * const *))cmp); } \
-STACK_OF(type) *sk_##type##_dup(STACK_OF(type) *sk) \
- { return (STACK_OF(type) *)sk_dup((STACK *)sk); } \
-void sk_##type##_pop_free(STACK_OF(type) *sk,void (*func)(type *)) \
- { sk_pop_free((STACK *)sk,(void (*)(void *))func); } \
-type *sk_##type##_shift(STACK_OF(type) *sk) \
- { return (type *)sk_shift((STACK *)sk); } \
-type *sk_##type##_pop(STACK_OF(type) *sk) \
- { return (type *)sk_pop((STACK *)sk); } \
-void sk_##type##_sort(STACK_OF(type) *sk) \
- { sk_sort((STACK *)sk); }
+ };
+
+#define IMPLEMENT_STACK_OF(type) /* nada */
+
+#define SKM_sk_new(type, a) \
+ ((STACK_OF(type) * (*)(int (*)(const type * const *, const type * const *)))sk_new)(a)
+#define SKM_sk_new_null(type) \
+ ((STACK_OF(type) * (*)(void))sk_new_null)()
+#define SKM_sk_free(type, a) \
+ ((void (*)(STACK_OF(type) *))sk_free)(a)
+#define SKM_sk_num(type, a) \
+ ((int (*)(const STACK_OF(type) *))sk_num)(a)
+#define SKM_sk_value(type, a, b) \
+ ((type * (*)(const STACK_OF(type) *, int))sk_value)(a, b)
+#define SKM_sk_set(type, a, b, c) \
+ ((type * (*)(STACK_OF(type) *, int, type *))sk_set)(a,b,c)
+#define SKM_sk_zero(type, a) \
+ ((void (*)(STACK_OF(type) *))sk_zero)(a)
+#define SKM_sk_push(type, a, b) \
+ ((int (*)(STACK_OF(type) *, type *))sk_push)(a, b)
+#define SKM_sk_unshift(type, a,b) \
+ ((int (*)(STACK_OF(type) *, type *))sk_unshift)(a, b)
+#define SKM_sk_find(type, a, b) \
+ ((int (*)(STACK_OF(type) *, type *))sk_find)(a, b)
+#define SKM_sk_delete(type, a,b) \
+ ((type * (*)(STACK_OF(type) *, int))sk_delete)(a, b)
+#define SKM_sk_delete_ptr(type, a,b) \
+ ((type * (*)(STACK_OF(type) *, type *))sk_delete_ptr)(a, b)
+#define SKM_sk_insert(type, a,b,c) \
+ ((int (*)(STACK_OF(type) *, type *, int))sk_insert)(a,b,c)
+#define SKM_sk_set_cmp_func(type, a,b) \
+ ((int (*(*)(STACK_OF(type) *, int (*)(const type * const *, const type * const *))) \
+ (const type * const *, const type * const *))sk_set_cmp_func)(a, b)
+#define SKM_sk_dup(type, a) \
+ ((STACK_OF(type) *(*)(STACK_OF(type) *))sk_dup)(a)
+#define SKM_sk_pop_free(type, a,b) \
+ ((void (*)(STACK_OF(type) *, void (*)(type *)))sk_pop_free)(a, b)
+#define SKM_sk_shift(type, a) \
+ ((type * (*)(STACK_OF(type) *))sk_shift)(a)
+#define SKM_sk_pop(type, a) \
+ ((type * (*)(STACK_OF(type) *))sk_pop)(a)
+#define SKM_sk_sort(type, a) \
+ ((void (*)(STACK_OF(type) *))sk_sort)(a)
#else
@@ -142,6 +117,737 @@ void sk_##type##_sort(STACK_OF(type) *sk) \
#define DECLARE_STACK_OF(type) /* nada */
#define IMPLEMENT_STACK_OF(type) /* nada */
+#define SKM_sk_new(stype, a) sk_new((int (*) \
+ (const char * const *, const char * const *))(a))
+#define SKM_sk_new_null(stype) sk_new_null()
+#define SKM_sk_free(stype, a) sk_free(a)
+#define SKM_sk_num(stype, a) sk_num(a)
+#define SKM_sk_value(stype, a,b) ((stype *) \
+ sk_value((a),(b)))
+#define SKM_sk_set(stype, a,b,c) ((stype *) \
+ sk_set((a),(b),(char *)(c)))
+#define SKM_sk_zero(stype, a) sk_zero(a)
+#define SKM_sk_push(stype, a,b) sk_push((a),(char *)(b))
+#define SKM_sk_unshift(stype, a,b) sk_unshift((a),(b))
+#define SKM_sk_find(stype, a,b) sk_find((a), (char *)(b))
+#define SKM_sk_delete(stype, a,b) ((stype *) \
+ sk_delete((a),(b)))
+#define SKM_sk_delete_ptr(stype, a,b) ((stype *) \
+ sk_delete_ptr((a),(char *)(b)))
+#define SKM_sk_insert(stype, a,b,c) sk_insert((a),(char *)(b),(c))
+#define SKM_sk_set_cmp_func(stype, a,b) ((int (*) \
+ (const stype * const *,const stype * const *)) \
+ sk_set_cmp_func((a),(int (*) \
+ (const char * const *, const char * const *))(b)))
+#define SKM_sk_dup(stype, a) sk_dup(a)
+#define SKM_sk_pop_free(stype, a,b) sk_pop_free((a),(void (*)(void *))(b))
+#define SKM_sk_shift(stype, a) ((stype *)sk_shift(a))
+#define SKM_sk_pop(stype, a) ((stype *)sk_pop(a))
+#define SKM_sk_sort(stype, a) sk_sort(a)
+
#endif
+/* This block of defines is updated by a perl script, please do not touch! */
+ #define sk_CRYPTO_EX_DATA_FUNCS_new(a) SKM_sk_new(CRYPTO_EX_DATA_FUNCS, (a))
+ #define sk_CRYPTO_EX_DATA_FUNCS_new_null() SKM_sk_new_null(CRYPTO_EX_DATA_FUNCS)
+ #define sk_CRYPTO_EX_DATA_FUNCS_free(a) SKM_sk_free(CRYPTO_EX_DATA_FUNCS, (a))
+ #define sk_CRYPTO_EX_DATA_FUNCS_num(a) SKM_sk_num(CRYPTO_EX_DATA_FUNCS, (a))
+ #define sk_CRYPTO_EX_DATA_FUNCS_value(a,b) SKM_sk_value(CRYPTO_EX_DATA_FUNCS, (a), (b))
+ #define sk_CRYPTO_EX_DATA_FUNCS_set(a,b,c) SKM_sk_set(CRYPTO_EX_DATA_FUNCS, (a), (b), (c))
+ #define sk_CRYPTO_EX_DATA_FUNCS_zero(a) SKM_sk_zero(CRYPTO_EX_DATA_FUNCS, (a))
+ #define sk_CRYPTO_EX_DATA_FUNCS_push(a,b) SKM_sk_push(CRYPTO_EX_DATA_FUNCS, (a),(b))
+ #define sk_CRYPTO_EX_DATA_FUNCS