From: Dr. Stephen Henson Date: Wed, 6 Jan 2016 02:54:18 +0000 (+0000) Subject: Only declare stacks in headers X-Git-Tag: OpenSSL_1_1_0-pre2~117 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=4a1f3f274108e25b97bd9870170fe2970892e155;p=thirdparty%2Fopenssl.git Only declare stacks in headers Don't define stacks in C source files: it causes warnings about unused functions in some compilers. Reviewed-by: Richard Levitte --- diff --git a/crypto/asn1/ameth_lib.c b/crypto/asn1/ameth_lib.c index 1febfe91ba7..a932028911a 100644 --- a/crypto/asn1/ameth_lib.c +++ b/crypto/asn1/ameth_lib.c @@ -92,7 +92,6 @@ static const EVP_PKEY_ASN1_METHOD *standard_methods[] = { }; typedef int sk_cmp_fn_type(const char *const *a, const char *const *b); -DEFINE_CONST_STACK_OF(EVP_PKEY_ASN1_METHOD) static STACK_OF(EVP_PKEY_ASN1_METHOD) *app_methods = NULL; #ifdef TEST diff --git a/crypto/asn1/asn1_locl.h b/crypto/asn1/asn1_locl.h index d076fa071c1..c47eb44938f 100644 --- a/crypto/asn1/asn1_locl.h +++ b/crypto/asn1/asn1_locl.h @@ -87,6 +87,11 @@ struct asn1_sctx_st { void *app_data; } /* ASN1_SCTX */ ; +typedef struct mime_param_st MIME_PARAM; +DEFINE_STACK_OF(MIME_PARAM) +typedef struct mime_header_st MIME_HEADER; +DEFINE_STACK_OF(MIME_HEADER) + /* Month values for printing out times */ extern const char *_asn1_mon[12]; diff --git a/crypto/asn1/asn_mime.c b/crypto/asn1/asn_mime.c index f138db9c811..58d53240afa 100644 --- a/crypto/asn1/asn_mime.c +++ b/crypto/asn1/asn_mime.c @@ -73,20 +73,16 @@ * from parameter values. Quotes are stripped off */ -typedef struct { +struct mime_param_st { char *param_name; /* Param name e.g. "micalg" */ char *param_value; /* Param value e.g. "sha1" */ -} MIME_PARAM; +}; -DEFINE_STACK_OF(MIME_PARAM) - -typedef struct { +struct mime_header_st { char *name; /* Name of line e.g. "content-type" */ char *value; /* Value of line e.g. "text/plain" */ STACK_OF(MIME_PARAM) *params; /* Zero or more parameters */ -} MIME_HEADER; - -DEFINE_STACK_OF(MIME_HEADER) +}; static int asn1_output_data(BIO *out, BIO *data, ASN1_VALUE *val, int flags, const ASN1_ITEM *it); diff --git a/crypto/evp/evp_locl.h b/crypto/evp/evp_locl.h index 89ac37ed63e..1c879b46241 100644 --- a/crypto/evp/evp_locl.h +++ b/crypto/evp/evp_locl.h @@ -295,3 +295,6 @@ struct evp_Encode_Ctx_st { int line_num; int expect_nl; }; + +typedef struct evp_pbe_st EVP_PBE_CTL; +DEFINE_STACK_OF(EVP_PBE_CTL) diff --git a/crypto/evp/evp_pbe.c b/crypto/evp/evp_pbe.c index 731ae91a7ad..da7c7d335f0 100644 --- a/crypto/evp/evp_pbe.c +++ b/crypto/evp/evp_pbe.c @@ -68,15 +68,14 @@ /* Setup a cipher context from a PBE algorithm */ -typedef struct { +struct evp_pbe_st { int pbe_type; int pbe_nid; int cipher_nid; int md_nid; EVP_PBE_KEYGEN *keygen; -} EVP_PBE_CTL; +}; -DEFINE_STACK_OF(EVP_PBE_CTL) static STACK_OF(EVP_PBE_CTL) *pbe_algs; static const EVP_PBE_CTL builtin_pbe[] = { diff --git a/crypto/evp/pmeth_lib.c b/crypto/evp/pmeth_lib.c index aaba42aa1ff..f5d558feca3 100644 --- a/crypto/evp/pmeth_lib.c +++ b/crypto/evp/pmeth_lib.c @@ -69,7 +69,6 @@ typedef int sk_cmp_fn_type(const char *const *a, const char *const *b); -DEFINE_CONST_STACK_OF(EVP_PKEY_METHOD) static STACK_OF(EVP_PKEY_METHOD) *app_pkey_methods = NULL; static const EVP_PKEY_METHOD *standard_methods[] = { diff --git a/crypto/ex_data.c b/crypto/ex_data.c index 76e4b3b6a21..fcdc83f9d13 100644 --- a/crypto/ex_data.c +++ b/crypto/ex_data.c @@ -111,21 +111,17 @@ #include "internal/cryptlib.h" #include - - /* * Each structure type (sometimes called a class), that supports * exdata has a stack of callbacks for each instance. */ -typedef struct ex_callback_st { +struct ex_callback_st { long argl; /* Arbitary long */ void *argp; /* Arbitary void * */ CRYPTO_EX_new *new_func; CRYPTO_EX_free *free_func; CRYPTO_EX_dup *dup_func; -} EX_CALLBACK; - -DEFINE_STACK_OF(EX_CALLBACK) +}; /* * The state for each class. This could just be a typedef, but diff --git a/crypto/include/internal/asn1_int.h b/crypto/include/internal/asn1_int.h index 966f3aa8c6d..c227224e59b 100644 --- a/crypto/include/internal/asn1_int.h +++ b/crypto/include/internal/asn1_int.h @@ -104,6 +104,8 @@ struct evp_pkey_asn1_method_st { ASN1_BIT_STRING *sig); } /* EVP_PKEY_ASN1_METHOD */ ; +DEFINE_CONST_STACK_OF(EVP_PKEY_ASN1_METHOD) + extern const EVP_PKEY_ASN1_METHOD cmac_asn1_meth; extern const EVP_PKEY_ASN1_METHOD dh_asn1_meth; extern const EVP_PKEY_ASN1_METHOD dhx_asn1_meth; diff --git a/crypto/include/internal/cryptlib.h b/crypto/include/internal/cryptlib.h index d7018b61e7f..1265a042f2d 100644 --- a/crypto/include/internal/cryptlib.h +++ b/crypto/include/internal/cryptlib.h @@ -79,6 +79,13 @@ extern "C" { #endif +typedef struct ex_callback_st EX_CALLBACK; + +DEFINE_STACK_OF(EX_CALLBACK) + +DEFINE_STACK_OF(CRYPTO_dynlock) + + # ifndef OPENSSL_SYS_VMS # define X509_CERT_AREA OPENSSLDIR # define X509_CERT_DIR OPENSSLDIR "/certs" diff --git a/crypto/include/internal/evp_int.h b/crypto/include/internal/evp_int.h index 4372d4bae0a..831d9684add 100644 --- a/crypto/include/internal/evp_int.h +++ b/crypto/include/internal/evp_int.h @@ -120,6 +120,8 @@ struct evp_pkey_method_st { int (*ctrl_str) (EVP_PKEY_CTX *ctx, const char *type, const char *value); } /* EVP_PKEY_METHOD */ ; +DEFINE_CONST_STACK_OF(EVP_PKEY_METHOD) + void evp_pkey_set_cb_translate(BN_GENCB *cb, EVP_PKEY_CTX *ctx); extern const EVP_PKEY_METHOD cmac_pkey_meth; diff --git a/crypto/lock.c b/crypto/lock.c index ec01a815bad..12210da96b5 100644 --- a/crypto/lock.c +++ b/crypto/lock.c @@ -121,8 +121,6 @@ static double OpenSSL_MSVC5_hack = 0.0; /* and for VC1.5 */ #endif -DEFINE_STACK_OF(CRYPTO_dynlock) - /* real #defines in crypto.h, keep these upto date */ static const char *const lock_names[CRYPTO_NUM_LOCKS] = { "<>", diff --git a/crypto/objects/Makefile b/crypto/objects/Makefile index 7bc0aac3cf9..d6ccb8a2353 100644 --- a/crypto/objects/Makefile +++ b/crypto/objects/Makefile @@ -21,7 +21,7 @@ LIBOBJ= o_names.o obj_dat.o obj_lib.o obj_err.o obj_xref.o SRC= $(LIBSRC) -HEADER= obj_dat.h obj_xref.h +HEADER= obj_dat.h obj_xref.h o_names.h ALL= $(GENERAL) $(SRC) $(HEADER) diff --git a/crypto/objects/o_names.c b/crypto/objects/o_names.c index 0839feeee6a..aa9b400ef8c 100644 --- a/crypto/objects/o_names.c +++ b/crypto/objects/o_names.c @@ -7,6 +7,7 @@ #include #include #include +#include "o_names.h" /* * Later versions of DEC C has started to add lnkage information to certain @@ -28,13 +29,11 @@ DECLARE_LHASH_OF(OBJ_NAME); static LHASH_OF(OBJ_NAME) *names_lh = NULL; static int names_type_num = OBJ_NAME_TYPE_NUM; -typedef struct name_funcs_st { +struct name_funcs_st { unsigned long (*hash_func) (const char *name); int (*cmp_func) (const char *a, const char *b); void (*free_func) (const char *, int, const char *); -} NAME_FUNCS; - -DEFINE_STACK_OF(NAME_FUNCS) +}; static STACK_OF(NAME_FUNCS) *name_funcs_stack; diff --git a/crypto/objects/o_names.h b/crypto/objects/o_names.h new file mode 100644 index 00000000000..914ed330863 --- /dev/null +++ b/crypto/objects/o_names.h @@ -0,0 +1,4 @@ + + +typedef struct name_funcs_st NAME_FUNCS; +DEFINE_STACK_OF(NAME_FUNCS) diff --git a/crypto/objects/obj_xref.c b/crypto/objects/obj_xref.c index 15426fe342f..62ff882125a 100644 --- a/crypto/objects/obj_xref.c +++ b/crypto/objects/obj_xref.c @@ -61,8 +61,6 @@ #include "obj_xref.h" #include "e_os.h" -DEFINE_STACK_OF(nid_triple) - static STACK_OF(nid_triple) *sig_app, *sigx_app; static int sig_cmp(const nid_triple *a, const nid_triple *b) diff --git a/crypto/objects/obj_xref.h b/crypto/objects/obj_xref.h index c07adee4f25..7096ca54422 100644 --- a/crypto/objects/obj_xref.h +++ b/crypto/objects/obj_xref.h @@ -6,6 +6,8 @@ typedef struct { int pkey_id; } nid_triple; +DEFINE_STACK_OF(nid_triple) + static const nid_triple sigoid_srt[] = { {NID_md2WithRSAEncryption, NID_md2, NID_rsaEncryption}, {NID_md5WithRSAEncryption, NID_md5, NID_rsaEncryption}, diff --git a/crypto/objects/objxref.pl b/crypto/objects/objxref.pl index a1900cab5c6..05b987ad16d 100644 --- a/crypto/objects/objxref.pl +++ b/crypto/objects/objxref.pl @@ -68,6 +68,8 @@ typedef struct { int pkey_id; } nid_triple; +DEFINE_STACK_OF(nid_triple) + static const nid_triple sigoid_srt[] = { EOF diff --git a/crypto/x509/by_dir.c b/crypto/x509/by_dir.c index 7e49daadfdb..717d258c346 100644 --- a/crypto/x509/by_dir.c +++ b/crypto/x509/by_dir.c @@ -73,26 +73,24 @@ #include #include #include "internal/x509_int.h" +#include "x509_lcl.h" -typedef struct lookup_dir_hashes_st { +struct lookup_dir_hashes_st { unsigned long hash; int suffix; -} BY_DIR_HASH; +}; -typedef struct lookup_dir_entry_st { +struct lookup_dir_entry_st { char *dir; int dir_type; STACK_OF(BY_DIR_HASH) *hashes; -} BY_DIR_ENTRY; +}; typedef struct lookup_dir_st { BUF_MEM *buffer; STACK_OF(BY_DIR_ENTRY) *dirs; } BY_DIR; -DEFINE_STACK_OF(BY_DIR_HASH) -DEFINE_STACK_OF(BY_DIR_ENTRY) - static int dir_ctrl(X509_LOOKUP *ctx, int cmd, const char *argp, long argl, char **ret); static int new_dir(X509_LOOKUP *lu); diff --git a/crypto/x509/x509_lcl.h b/crypto/x509/x509_lcl.h index e5c05ed2524..724c241e69e 100644 --- a/crypto/x509/x509_lcl.h +++ b/crypto/x509/x509_lcl.h @@ -113,3 +113,10 @@ struct x509_crl_method_st { ASN1_INTEGER *ser, X509_NAME *issuer); int (*crl_verify) (X509_CRL *crl, EVP_PKEY *pk); }; + +typedef struct lookup_dir_hashes_st BY_DIR_HASH; +typedef struct lookup_dir_entry_st BY_DIR_ENTRY; +DEFINE_STACK_OF(BY_DIR_HASH) +DEFINE_STACK_OF(BY_DIR_ENTRY) +typedef STACK_OF(X509_NAME_ENTRY) STACK_OF_X509_NAME_ENTRY; +DEFINE_STACK_OF(STACK_OF_X509_NAME_ENTRY) diff --git a/crypto/x509/x_name.c b/crypto/x509/x_name.c index c12b248f3af..f151da4b9a6 100644 --- a/crypto/x509/x_name.c +++ b/crypto/x509/x_name.c @@ -63,9 +63,7 @@ #include #include "internal/x509_int.h" #include "internal/asn1_int.h" - -typedef STACK_OF(X509_NAME_ENTRY) STACK_OF_X509_NAME_ENTRY; -DEFINE_STACK_OF(STACK_OF_X509_NAME_ENTRY) +#include "x509_lcl.h" static int x509_name_ex_d2i(ASN1_VALUE **val, const unsigned char **in, long len, diff --git a/include/internal/dane.h b/include/internal/dane.h index cbe33f3e489..0d35cc2405e 100644 --- a/include/internal/dane.h +++ b/include/internal/dane.h @@ -97,6 +97,8 @@ typedef struct danetls_record_st { EVP_PKEY *spki; } danetls_record; +DEFINE_STACK_OF(danetls_record) + /* * Shared DANE context */ diff --git a/include/openssl/ssl.h b/include/openssl/ssl.h index 62325c5b35d..fdee4833b85 100644 --- a/include/openssl/ssl.h +++ b/include/openssl/ssl.h @@ -327,8 +327,6 @@ typedef struct ssl_conf_ctx_st SSL_CONF_CTX; DEFINE_CONST_STACK_OF(SSL_CIPHER) -DECLARE_STACK_OF(danetls_record) - /* SRTP protection profiles for use with the use_srtp extension (RFC 5764)*/ typedef struct srtp_protection_profile_st { const char *name;