diff options
author | Dr. Stephen Henson <steve@openssl.org> | 2000-06-16 23:29:26 +0000 |
---|---|---|
committer | Dr. Stephen Henson <steve@openssl.org> | 2000-06-16 23:29:26 +0000 |
commit | 3aceb94b9e6ac4722b96d4fb1cf7e1a4358941e0 (patch) | |
tree | 9adfd28b708d52c0f0efac181d7cfadc0f1ecb9a /crypto | |
parent | fb3e1eeb9364bc4d895cbdc5c048831cc7790c20 (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.h | 124 | ||||
-rw-r--r-- | crypto/bio/bio.h | 31 | ||||
-rw-r--r-- | crypto/conf/conf.h | 31 | ||||
-rw-r--r-- | crypto/crypto.h | 31 | ||||
-rw-r--r-- | crypto/objects/o_names.c | 31 | ||||
-rw-r--r-- | crypto/pkcs12/pkcs12.h | 31 | ||||
-rw-r--r-- | crypto/pkcs7/pk7_mime.c | 62 | ||||
-rw-r--r-- | crypto/pkcs7/pkcs7.h | 93 | ||||
-rw-r--r-- | crypto/stack/safestack.h | 842 | ||||
-rw-r--r-- | crypto/stack/stack.c | 5 | ||||
-rw-r--r-- | crypto/stack/stack.h | 4 | ||||
-rw-r--r-- | crypto/x509/x509.h | 310 | ||||
-rw-r--r-- | crypto/x509/x509_vfy.h | 31 | ||||
-rw-r--r-- | crypto/x509v3/x509v3.h | 248 |
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 |