From c4251c714a2fa6263e77103561b3dc4f6f5fed40 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Cristian=20Rodr=C3=ADguez?= Date: Mon, 21 Oct 2013 01:48:05 -0300 Subject: [PATCH] libcrypto: Hide library-private symbols --- apps/Makefile | 2 +- crypto/asn1/asn1_locl.h | 4 ++++ crypto/bn/bn_lcl.h | 4 ++++ crypto/camellia/cmll_locl.h | 3 +++ crypto/cast/cast_lcl.h | 2 ++ crypto/cms/cms_lcl.h | 5 ++++- crypto/des/des_locl.h | 2 ++ crypto/dsa/dsa_locl.h | 2 +- crypto/ec/ec_lcl.h | 4 ++++ crypto/ecdh/ech_locl.h | 4 +++- crypto/ecdsa/ecs_locl.h | 4 ++++ crypto/engine/eng_int.h | 4 +++- crypto/engine/eng_rsax.c | 2 +- crypto/evp/e_aes.c | 10 ++++++++++ crypto/evp/e_aes_cbc_hmac_sha1.c | 4 ++++ crypto/evp/evp_locl.h | 4 ++++ crypto/md4/md4_locl.h | 2 +- crypto/md5/md5_locl.h | 2 +- crypto/modes/modes_lcl.h | 4 +++- crypto/o_str.h | 4 ++++ crypto/o_time.h | 4 ++++ crypto/ripemd/rmd_locl.h | 2 +- crypto/rsa/rsa_locl.h | 2 +- crypto/sha/sha256.c | 2 +- crypto/sha/sha512.c | 2 +- crypto/sha/sha_locl.h | 2 +- crypto/store/str_locl.h | 4 +++- crypto/ui/ui_locl.h | 4 +++- crypto/whrlpool/wp_locl.h | 2 +- crypto/x509v3/ext_dat.h | 3 +++ crypto/x509v3/pcy_int.h | 3 +++ 31 files changed, 85 insertions(+), 17 deletions(-) Index: openssl-1.0.2a/apps/Makefile =================================================================== --- openssl-1.0.2a.orig/apps/Makefile 2015-05-29 13:57:01.496491593 +0200 +++ openssl-1.0.2a/apps/Makefile 2015-05-29 13:58:53.830777136 +0200 @@ -20,7 +20,7 @@ EXE_EXT= SHLIB_TARGET= -CFLAGS= -DMONOLITH $(INCLUDES) $(CFLAG) +CFLAGS= -fvisibility=hidden -DMONOLITH $(INCLUDES) $(CFLAG) GENERAL=Makefile makeapps.com install.com Index: openssl-1.0.2a/crypto/asn1/asn1_locl.h =================================================================== --- openssl-1.0.2a.orig/crypto/asn1/asn1_locl.h 2015-05-29 13:57:01.496491593 +0200 +++ openssl-1.0.2a/crypto/asn1/asn1_locl.h 2015-05-29 13:59:35.960258988 +0200 @@ -62,6 +62,8 @@ int asn1_utctime_to_tm(struct tm *tm, const ASN1_UTCTIME *d); int asn1_generalizedtime_to_tm(struct tm *tm, const ASN1_GENERALIZEDTIME *d); +#pragma GCC visibility push(hidden) + /* ASN1 print context structure */ struct asn1_pctx_st { @@ -133,3 +135,5 @@ struct x509_crl_method_st { ASN1_INTEGER *ser, X509_NAME *issuer); int (*crl_verify) (X509_CRL *crl, EVP_PKEY *pk); }; + +#pragma GCC visibility pop Index: openssl-1.0.2a/crypto/bn/bn_lcl.h =================================================================== --- openssl-1.0.2a.orig/crypto/bn/bn_lcl.h 2015-05-29 13:57:01.497491605 +0200 +++ openssl-1.0.2a/crypto/bn/bn_lcl.h 2015-05-29 14:00:30.503883360 +0200 @@ -505,6 +505,8 @@ unsigned __int64 _umul128(unsigned __int # undef bn_div_words # endif +#pragma GCC visibility push(hidden) + void bn_mul_normal(BN_ULONG *r, BN_ULONG *a, int na, BN_ULONG *b, int nb); void bn_mul_comba8(BN_ULONG *r, BN_ULONG *a, BN_ULONG *b); void bn_mul_comba4(BN_ULONG *r, BN_ULONG *a, BN_ULONG *b); @@ -530,6 +532,8 @@ BN_ULONG bn_sub_part_words(BN_ULONG *r, int bn_mul_mont(BN_ULONG *rp, const BN_ULONG *ap, const BN_ULONG *bp, const BN_ULONG *np, const BN_ULONG *n0, int num); +#pragma GCC visibility pop + #ifdef __cplusplus } #endif Index: openssl-1.0.2a/crypto/cast/cast_lcl.h =================================================================== --- openssl-1.0.2a.orig/crypto/cast/cast_lcl.h 2015-05-29 13:57:01.497491605 +0200 +++ openssl-1.0.2a/crypto/cast/cast_lcl.h 2015-05-29 13:58:53.831777147 +0200 @@ -217,6 +217,7 @@ } #endif +#pragma GCC visibility push(hidden) extern const CAST_LONG CAST_S_table0[256]; extern const CAST_LONG CAST_S_table1[256]; extern const CAST_LONG CAST_S_table2[256]; @@ -225,3 +226,4 @@ extern const CAST_LONG CAST_S_table4[256 extern const CAST_LONG CAST_S_table5[256]; extern const CAST_LONG CAST_S_table6[256]; extern const CAST_LONG CAST_S_table7[256]; +#pragma GCC visibility pop Index: openssl-1.0.2a/crypto/cms/cms_lcl.h =================================================================== --- openssl-1.0.2a.orig/crypto/cms/cms_lcl.h 2015-05-29 13:57:01.498491617 +0200 +++ openssl-1.0.2a/crypto/cms/cms_lcl.h 2015-05-29 14:02:50.582486082 +0200 @@ -410,6 +410,8 @@ DECLARE_ASN1_ALLOC_FUNCTIONS(CMS_IssuerA # define CMS_OIK_KEYIDENTIFIER 1 # define CMS_OIK_PUBKEY 2 +#pragma GCC visibility push(hidden) + BIO *cms_content_bio(CMS_ContentInfo *cms); CMS_ContentInfo *cms_Data_create(void); @@ -465,6 +467,8 @@ int cms_RecipientInfo_kari_encrypt(CMS_C int cms_RecipientInfo_pwri_crypt(CMS_ContentInfo *cms, CMS_RecipientInfo *ri, int en_de); +#pragma GCC visibility pop + #ifdef __cplusplus } #endif Index: openssl-1.0.2a/crypto/des/des_locl.h =================================================================== --- openssl-1.0.2a.orig/crypto/des/des_locl.h 2015-05-29 13:58:53.832777158 +0200 +++ openssl-1.0.2a/crypto/des/des_locl.h 2015-05-29 14:03:58.545263671 +0200 @@ -432,10 +432,12 @@ PERM_OP(l,r,tt, 4,0x0f0f0f0fL); \ } +#pragma GCC visibility push(hidden) extern const DES_LONG DES_SPtrans[8][64]; void fcrypt_body(DES_LONG *out, DES_key_schedule *ks, DES_LONG Eswap0, DES_LONG Eswap1); +#pragma GCC visibility pop # ifdef OPENSSL_SMALL_FOOTPRINT # undef DES_UNROLL Index: openssl-1.0.2a/crypto/dsa/dsa_locl.h =================================================================== --- openssl-1.0.2a.orig/crypto/dsa/dsa_locl.h 2015-05-29 13:58:53.832777158 +0200 +++ openssl-1.0.2a/crypto/dsa/dsa_locl.h 2015-05-29 14:05:14.177128917 +0200 @@ -58,7 +58,7 @@ int dsa_builtin_paramgen(DSA *ret, size_ const EVP_MD *evpmd, const unsigned char *seed_in, size_t seed_len, int *counter_ret, unsigned long *h_ret, - BN_GENCB *cb); + BN_GENCB *cb) __attribute__ ((visibility ("hidden"))); int dsa_builtin_paramgen2(DSA *ret, size_t L, size_t N, const EVP_MD *evpmd, const unsigned char *seed_in, Index: openssl-1.0.2a/crypto/ec/ec_lcl.h =================================================================== --- openssl-1.0.2a.orig/crypto/ec/ec_lcl.h 2015-05-29 13:57:01.499491629 +0200 +++ openssl-1.0.2a/crypto/ec/ec_lcl.h 2015-05-29 13:58:53.833777170 +0200 @@ -89,6 +89,8 @@ * change in future versions. */ +#pragma GCC visibility push(hidden) + struct ec_method_st { /* Various method flags */ int flags; @@ -574,3 +576,5 @@ EC_GROUP *FIPS_ec_group_new_curve_gf2m(c const BIGNUM *b, BN_CTX *ctx); EC_GROUP *FIPS_ec_group_new_by_curve_name(int nid); #endif + +#pragma GCC visibility pop Index: openssl-1.0.2a/crypto/ecdh/ech_locl.h =================================================================== --- openssl-1.0.2a.orig/crypto/ecdh/ech_locl.h 2015-05-29 13:57:01.499491629 +0200 +++ openssl-1.0.2a/crypto/ecdh/ech_locl.h 2015-05-29 14:06:06.800730916 +0200 @@ -58,6 +58,8 @@ # include +#pragma GCC visibility push(hidden) + #ifdef __cplusplus extern "C" { #endif @@ -101,4 +103,5 @@ ECDH_DATA *ecdh_check(EC_KEY *); } #endif +#pragma GCC visibility pop #endif /* HEADER_ECH_LOCL_H */ Index: openssl-1.0.2a/crypto/ecdsa/ecs_locl.h =================================================================== --- openssl-1.0.2a.orig/crypto/ecdsa/ecs_locl.h 2015-05-29 13:57:01.499491629 +0200 +++ openssl-1.0.2a/crypto/ecdsa/ecs_locl.h 2015-05-29 14:06:33.641037950 +0200 @@ -61,6 +61,8 @@ # include +#pragma GCC visibility push(hidden) + #ifdef __cplusplus extern "C" { #endif @@ -117,4 +119,5 @@ ECDSA_DATA *ecdsa_check(EC_KEY *eckey); } #endif +#pragma GCC visibility pop #endif /* HEADER_ECS_LOCL_H */ Index: openssl-1.0.2a/crypto/engine/eng_int.h =================================================================== --- openssl-1.0.2a.orig/crypto/engine/eng_int.h 2015-05-29 13:57:01.499491629 +0200 +++ openssl-1.0.2a/crypto/engine/eng_int.h 2015-05-29 14:07:02.552368670 +0200 @@ -69,6 +69,8 @@ /* Take public definitions from engine.h */ # include +#pragma GCC visibility push(hidden) + #ifdef __cplusplus extern "C" { #endif @@ -221,4 +223,5 @@ struct engine_st { } #endif +#pragma GCC visibility pop #endif /* HEADER_ENGINE_INT_H */ Index: openssl-1.0.2a/crypto/evp/e_aes.c =================================================================== --- openssl-1.0.2a.orig/crypto/evp/e_aes.c 2015-05-29 13:57:01.501491652 +0200 +++ openssl-1.0.2a/crypto/evp/e_aes.c 2015-05-29 14:08:41.561501841 +0200 @@ -115,6 +115,8 @@ typedef struct { # define MAXBITCHUNK ((size_t)1<<(sizeof(size_t)*8-4)) +#pragma GCC visibility push(hidden) + # ifdef VPAES_ASM int vpaes_set_encrypt_key(const unsigned char *userKey, int bits, AES_KEY *key); @@ -145,6 +147,7 @@ void bsaes_xts_decrypt(const unsigned ch size_t len, const AES_KEY *key1, const AES_KEY *key2, const unsigned char iv[16]); # endif +#pragma GCC visibility pop # ifdef AES_CTR_ASM void AES_ctr32_encrypt(const unsigned char *in, unsigned char *out, size_t blocks, const AES_KEY *key, @@ -193,6 +196,8 @@ extern unsigned int OPENSSL_ia32cap_P[]; */ # define AESNI_CAPABLE (OPENSSL_ia32cap_P[1]&(1<<(57-32))) +#pragma GCC visibility push(hidden) + int aesni_set_encrypt_key(const unsigned char *userKey, int bits, AES_KEY *key); int aesni_set_decrypt_key(const unsigned char *userKey, int bits, @@ -262,6 +267,8 @@ void gcm_ghash_avx(u64 Xi[2], const u128 # undef AES_GCM_ASM2 /* minor size optimization */ # endif +#pragma GCC visibility pop + static int aesni_init_key(EVP_CIPHER_CTX *ctx, const unsigned char *key, const unsigned char *iv, int enc) { Index: openssl-1.0.2a/crypto/evp/e_aes_cbc_hmac_sha1.c =================================================================== --- openssl-1.0.2a.orig/crypto/evp/e_aes_cbc_hmac_sha1.c 2015-05-29 13:57:01.501491652 +0200 +++ openssl-1.0.2a/crypto/evp/e_aes_cbc_hmac_sha1.c 2015-05-29 14:09:13.009860938 +0200 @@ -97,6 +97,8 @@ typedef struct { extern unsigned int OPENSSL_ia32cap_P[3]; # define AESNI_CAPABLE (1<<(57-32)) +#pragma GCC visibility push(hidden) + int aesni_set_encrypt_key(const unsigned char *userKey, int bits, AES_KEY *key); int aesni_set_decrypt_key(const unsigned char *userKey, int bits, @@ -115,6 +117,8 @@ void aesni256_cbc_sha1_dec(const void *i const AES_KEY *key, unsigned char iv[16], SHA_CTX *ctx, const void *in0); +#pragma GCC visibility pop + # define data(ctx) ((EVP_AES_HMAC_SHA1 *)(ctx)->cipher_data) static int aesni_cbc_hmac_sha1_init_key(EVP_CIPHER_CTX *ctx, Index: openssl-1.0.2a/crypto/evp/evp_locl.h =================================================================== --- openssl-1.0.2a.orig/crypto/evp/evp_locl.h 2015-05-29 13:57:01.502491662 +0200 +++ openssl-1.0.2a/crypto/evp/evp_locl.h 2015-05-29 14:09:56.939363434 +0200 @@ -261,6 +261,8 @@ const EVP_CIPHER *EVP_##cname##_ecb(void EVP_CIPH_FLAG_DEFAULT_ASN1, \ cipher##_init_key, NULL, NULL, NULL, NULL) +#pragma GCC visibility push(hidden) + struct evp_pkey_ctx_st { /* Method associated with this operation */ const EVP_PKEY_METHOD *pmeth; @@ -334,6 +336,8 @@ int PKCS5_v2_PBKDF2_keyivgen(EVP_CIPHER_ const EVP_MD *evp_get_fips_md(const EVP_MD *md); const EVP_CIPHER *evp_get_fips_cipher(const EVP_CIPHER *cipher); +#pragma GCC visibility pop + #ifdef OPENSSL_FIPS # ifdef OPENSSL_DOING_MAKEDEPEND Index: openssl-1.0.2a/crypto/md4/md4_locl.h =================================================================== --- openssl-1.0.2a.orig/crypto/md4/md4_locl.h 2015-05-29 13:58:53.836777204 +0200 +++ openssl-1.0.2a/crypto/md4/md4_locl.h 2015-05-29 14:10:54.331025396 +0200 @@ -65,7 +65,7 @@ # define MD4_LONG_LOG2 2 /* default to 32 bits */ #endif -void md4_block_data_order(MD4_CTX *c, const void *p, size_t num); +void md4_block_data_order(MD4_CTX *c, const void *p, size_t num) __attribute__ ((visibility ("hidden"))); #define DATA_ORDER_IS_LITTLE_ENDIAN Index: openssl-1.0.2a/crypto/md5/md5_locl.h =================================================================== --- openssl-1.0.2a.orig/crypto/md5/md5_locl.h 2015-05-29 13:58:53.836777204 +0200 +++ openssl-1.0.2a/crypto/md5/md5_locl.h 2015-05-29 14:11:40.218580180 +0200 @@ -76,7 +76,7 @@ # endif #endif -void md5_block_data_order(MD5_CTX *c, const void *p, size_t num); +void md5_block_data_order(MD5_CTX *c, const void *p, size_t num) __attribute__ ((visibility ("hidden"))); #define DATA_ORDER_IS_LITTLE_ENDIAN Index: openssl-1.0.2a/crypto/modes/modes_lcl.h =================================================================== --- openssl-1.0.2a.orig/crypto/modes/modes_lcl.h 2015-05-29 13:58:53.836777204 +0200 +++ openssl-1.0.2a/crypto/modes/modes_lcl.h 2015-05-29 14:12:47.352391628 +0200 @@ -89,6 +89,9 @@ _asm mov eax, val _asm bswap eax} # define GETU32(p) ((u32)(p)[0]<<24|(u32)(p)[1]<<16|(u32)(p)[2]<<8|(u32)(p)[3]) # define PUTU32(p,v) ((p)[0]=(u8)((v)>>24),(p)[1]=(u8)((v)>>16),(p)[2]=(u8)((v)>>8),(p)[3]=(u8)(v)) #endif + +#pragma GCC visibility push(hidden) + /*- GCM definitions */ typedef struct { u64 hi, lo; } u128; @@ -141,3 +144,5 @@ struct ccm128_context { block128_f block; void *key; }; + +#pragma GCC visibility pop Index: openssl-1.0.2a/crypto/o_str.h =================================================================== --- openssl-1.0.2a.orig/crypto/o_str.h 2015-05-29 13:58:53.836777204 +0200 +++ openssl-1.0.2a/crypto/o_str.h 2015-05-29 14:13:21.018798729 +0200 @@ -61,9 +61,11 @@ # define HEADER_O_STR_H # include /* to get size_t */ +#pragma GCC visibility push(hidden) int OPENSSL_strcasecmp(const char *str1, const char *str2); int OPENSSL_strncasecmp(const char *str1, const char *str2, size_t n); int OPENSSL_memcmp(const void *p1, const void *p2, size_t n); +#pragma GCC visibility pop #endif Index: openssl-1.0.2a/crypto/o_time.h =================================================================== --- openssl-1.0.2a.orig/crypto/o_time.h 2015-05-29 13:58:53.836777204 +0200 +++ openssl-1.0.2a/crypto/o_time.h 2015-05-29 14:14:00.740278452 +0200 @@ -61,10 +61,12 @@ # define HEADER_O_TIME_H # include +#pragma GCC visibility push(hidden) struct tm *OPENSSL_gmtime(const time_t *timer, struct tm *result); int OPENSSL_gmtime_adj(struct tm *tm, int offset_day, long offset_sec); int OPENSSL_gmtime_diff(int *pday, int *psec, const struct tm *from, const struct tm *to); +#pragma GCC visibility pop #endif Index: openssl-1.0.2a/crypto/ripemd/rmd_locl.h =================================================================== --- openssl-1.0.2a.orig/crypto/ripemd/rmd_locl.h 2015-05-29 13:58:53.837777216 +0200 +++ openssl-1.0.2a/crypto/ripemd/rmd_locl.h 2015-05-29 14:14:42.587783890 +0200 @@ -76,7 +76,7 @@ # endif #endif -void ripemd160_block_data_order(RIPEMD160_CTX *c, const void *p, size_t num); +void ripemd160_block_data_order(RIPEMD160_CTX *c, const void *p, size_t num) __attribute__ ((visibility ("hidden"))); #define DATA_ORDER_IS_LITTLE_ENDIAN Index: openssl-1.0.2a/crypto/rsa/rsa_locl.h =================================================================== --- openssl-1.0.2a.orig/crypto/rsa/rsa_locl.h 2015-05-29 13:58:53.837777216 +0200 +++ openssl-1.0.2a/crypto/rsa/rsa_locl.h 2015-05-29 14:15:18.372216267 +0200 @@ -1,4 +1,4 @@ extern int int_rsa_verify(int dtype, const unsigned char *m, unsigned int m_len, unsigned char *rm, size_t *prm_len, const unsigned char *sigbuf, - size_t siglen, RSA *rsa); + size_t siglen, RSA *rsa) __attribute__ ((visibility ("hidden"))); Index: openssl-1.0.2a/crypto/sha/sha256.c =================================================================== --- openssl-1.0.2a.orig/crypto/sha/sha256.c 2015-05-29 13:58:53.837777216 +0200 +++ openssl-1.0.2a/crypto/sha/sha256.c 2015-05-29 14:16:36.509166160 +0200 @@ -135,7 +135,7 @@ int SHA224_Final(unsigned char *md, SHA2 # ifndef SHA256_ASM static # endif -void sha256_block_data_order(SHA256_CTX *ctx, const void *in, size_t num); +void sha256_block_data_order(SHA256_CTX *ctx, const void *in, size_t num) __attribute__ ((visibility ("hidden"))); # include "md32_common.h" Index: openssl-1.0.2a/crypto/sha/sha512.c =================================================================== --- openssl-1.0.2a.orig/crypto/sha/sha512.c 2015-05-29 13:58:53.837777216 +0200 +++ openssl-1.0.2a/crypto/sha/sha512.c 2015-05-29 14:17:13.260611799 +0200 @@ -109,7 +109,7 @@ fips_md_init(SHA512) # ifndef SHA512_ASM static # endif -void sha512_block_data_order(SHA512_CTX *ctx, const void *in, size_t num); +void sha512_block_data_order(SHA512_CTX *ctx, const void *in, size_t num) __attribute__ ((visibility ("hidden"))); int SHA512_Final(unsigned char *md, SHA512_CTX *c) { Index: openssl-1.0.2a/crypto/sha/sha_locl.h =================================================================== --- openssl-1.0.2a.orig/crypto/sha/sha_locl.h 2015-05-29 13:58:53.838777227 +0200 +++ openssl-1.0.2a/crypto/sha/sha_locl.h 2015-05-29 14:17:59.773173925 +0200 @@ -108,7 +108,7 @@ static void sha_block_data_order(SHA_CTX # ifndef SHA1_ASM static # endif -void sha1_block_data_order(SHA_CTX *c, const void *p, size_t num); +void sha1_block_data_order(SHA_CTX *c, const void *p, size_t num) __attribute__ ((visibility ("hidden"))); #else # error "Either SHA_0 or SHA_1 must be defined." Index: openssl-1.0.2a/crypto/store/str_locl.h =================================================================== --- openssl-1.0.2a.orig/crypto/store/str_locl.h 2015-05-29 13:57:01.505491696 +0200 +++ openssl-1.0.2a/crypto/store/str_locl.h 2015-05-29 13:58:53.838777227 +0200 @@ -63,6 +63,8 @@ # include # include +#pragma GCC visibility push(hidden) + #ifdef __cplusplus extern "C" { #endif @@ -121,5 +123,5 @@ struct store_st { #ifdef __cplusplus } #endif - +#pragma GCC visibility pop #endif Index: openssl-1.0.2a/crypto/ui/ui_locl.h =================================================================== --- openssl-1.0.2a.orig/crypto/ui/ui_locl.h 2015-05-29 13:58:53.838777227 +0200 +++ openssl-1.0.2a/crypto/ui/ui_locl.h 2015-05-29 14:18:44.460717716 +0200 @@ -67,6 +67,8 @@ # undef _ # endif +#pragma GCC visibility push(hidden) + struct ui_method_st { char *name; /* @@ -142,4 +144,5 @@ struct ui_st { int flags; }; +#pragma GCC visibility pop #endif Index: openssl-1.0.2a/crypto/whrlpool/wp_locl.h =================================================================== --- openssl-1.0.2a.orig/crypto/whrlpool/wp_locl.h 2015-05-29 13:58:53.838777227 +0200 +++ openssl-1.0.2a/crypto/whrlpool/wp_locl.h 2015-05-29 14:19:16.174102106 +0200 @@ -1,3 +1,3 @@ #include -void whirlpool_block(WHIRLPOOL_CTX *, const void *, size_t); +void whirlpool_block(WHIRLPOOL_CTX *, const void *, size_t) __attribute__ ((visibility ("hidden"))); Index: openssl-1.0.2a/crypto/x509v3/ext_dat.h =================================================================== --- openssl-1.0.2a.orig/crypto/x509v3/ext_dat.h 2015-05-29 13:57:01.505491696 +0200 +++ openssl-1.0.2a/crypto/x509v3/ext_dat.h 2015-05-29 13:58:53.839777239 +0200 @@ -58,6 +58,8 @@ */ /* This file contains a table of "standard" extensions */ +#pragma GCC visibility push(hidden) + extern X509V3_EXT_METHOD v3_bcons, v3_nscert, v3_key_usage, v3_ext_ku; extern X509V3_EXT_METHOD v3_pkey_usage_period, v3_sxnet, v3_info, v3_sinfo; extern X509V3_EXT_METHOD v3_ns_ia5_list[], v3_alt[], v3_skey_id, v3_akey_id; @@ -131,6 +133,7 @@ static const X509V3_EXT_METHOD *standard &v3_ct_scts[1], }; +#pragma GCC visibility pop /* Number of standard extensions */ #define STANDARD_EXTENSION_COUNT (sizeof(standard_exts)/sizeof(X509V3_EXT_METHOD *)) Index: openssl-1.0.2a/crypto/x509v3/pcy_int.h =================================================================== --- openssl-1.0.2a.orig/crypto/x509v3/pcy_int.h 2015-05-29 13:57:01.506491709 +0200 +++ openssl-1.0.2a/crypto/x509v3/pcy_int.h 2015-05-29 14:19:55.941583947 +0200 @@ -57,6 +57,8 @@ * */ +#pragma GCC visibility push(hidden) + typedef struct X509_POLICY_DATA_st X509_POLICY_DATA; DECLARE_STACK_OF(X509_POLICY_DATA) @@ -215,3 +217,5 @@ int policy_node_match(const X509_POLICY_ const X509_POLICY_NODE *node, const ASN1_OBJECT *oid); const X509_POLICY_CACHE *policy_cache_set(X509 *x); + +#pragma GCC visibility pop Index: openssl-1.0.2a/crypto/modes/gcm128.c =================================================================== --- openssl-1.0.2a.orig/crypto/modes/gcm128.c 2015-05-29 13:58:53.840777250 +0200 +++ openssl-1.0.2a/crypto/modes/gcm128.c 2015-05-29 14:21:51.614984305 +0200 @@ -602,9 +602,9 @@ static void gcm_ghash_4bit(u64 Xi[2], co } # endif # else -void gcm_gmult_4bit(u64 Xi[2], const u128 Htable[16]); +void gcm_gmult_4bit(u64 Xi[2], const u128 Htable[16]) __attribute__ ((visibility ("hidden"))); void gcm_ghash_4bit(u64 Xi[2], const u128 Htable[16], const u8 *inp, - size_t len); + size_t len) __attribute__ ((visibility ("hidden"))); # endif # define GCM_MUL(ctx,Xi) gcm_gmult_4bit(ctx->Xi.u,ctx->Htable) @@ -696,10 +696,10 @@ static void gcm_gmult_1bit(u64 Xi[2], co # define GCM_FUNCREF_4BIT extern unsigned int OPENSSL_ia32cap_P[2]; -void gcm_init_clmul(u128 Htable[16], const u64 Xi[2]); -void gcm_gmult_clmul(u64 Xi[2], const u128 Htable[16]); +void gcm_init_clmul(u128 Htable[16], const u64 Xi[2]) __attribute__ ((visibility ("hidden"))); +void gcm_gmult_clmul(u64 Xi[2], const u128 Htable[16]) __attribute__ ((visibility ("hidden"))); void gcm_ghash_clmul(u64 Xi[2], const u128 Htable[16], const u8 *inp, - size_t len); + size_t len) __attribute__ ((visibility ("hidden"))); # if defined(__i386) || defined(__i386__) || defined(_M_IX86) # define gcm_init_avx gcm_init_clmul Index: openssl-1.0.2a/crypto/evp/e_rc4_hmac_md5.c =================================================================== --- openssl-1.0.2a.orig/crypto/evp/e_rc4_hmac_md5.c 2015-05-29 13:58:53.840777250 +0200 +++ openssl-1.0.2a/crypto/evp/e_rc4_hmac_md5.c 2015-05-29 14:22:20.495333738 +0200 @@ -77,7 +77,7 @@ typedef struct { # define NO_PAYLOAD_LENGTH ((size_t)-1) void rc4_md5_enc(RC4_KEY *key, const void *in0, void *out, - MD5_CTX *ctx, const void *inp, size_t blocks); + MD5_CTX *ctx, const void *inp, size_t blocks) __attribute__ ((visibility ("hidden"))); # define data(ctx) ((EVP_RC4_HMAC_MD5 *)(ctx)->cipher_data) Index: openssl-1.0.2a/crypto/cmac/cm_ameth.c =================================================================== --- openssl-1.0.2a.orig/crypto/cmac/cm_ameth.c 2015-05-29 13:58:53.840777250 +0200 +++ openssl-1.0.2a/crypto/cmac/cm_ameth.c 2015-05-29 14:23:02.278839089 +0200 @@ -73,7 +73,7 @@ static void cmac_key_free(EVP_PKEY *pkey if (cmctx) CMAC_CTX_free(cmctx); } - + __attribute__ ((visibility ("hidden"))) const EVP_PKEY_ASN1_METHOD cmac_asn1_meth = { EVP_PKEY_CMAC, EVP_PKEY_CMAC, Index: openssl-1.0.2a/crypto/evp/pmeth_lib.c =================================================================== --- openssl-1.0.2a.orig/crypto/evp/pmeth_lib.c 2015-05-29 13:57:01.507491720 +0200 +++ openssl-1.0.2a/crypto/evp/pmeth_lib.c 2015-05-29 13:58:53.841777261 +0200 @@ -71,7 +71,7 @@ typedef int sk_cmp_fn_type(const char *const *a, const char *const *b); DECLARE_STACK_OF(EVP_PKEY_METHOD) -STACK_OF(EVP_PKEY_METHOD) *app_pkey_methods = NULL; +static STACK_OF(EVP_PKEY_METHOD) *app_pkey_methods = NULL; extern const EVP_PKEY_METHOD rsa_pkey_meth, dh_pkey_meth, dsa_pkey_meth; extern const EVP_PKEY_METHOD ec_pkey_meth, hmac_pkey_meth, cmac_pkey_meth; Index: openssl-1.0.2a/crypto/cmac/cm_pmeth.c =================================================================== --- openssl-1.0.2a.orig/crypto/cmac/cm_pmeth.c 2015-05-29 13:58:53.841777261 +0200 +++ openssl-1.0.2a/crypto/cmac/cm_pmeth.c 2015-05-29 14:23:33.695219495 +0200 @@ -182,6 +182,7 @@ static int pkey_cmac_ctrl_str(EVP_PKEY_C return -2; } + __attribute__ ((visibility ("hidden"))) const EVP_PKEY_METHOD cmac_pkey_meth = { EVP_PKEY_CMAC, EVP_PKEY_FLAG_SIGCTX_CUSTOM, Index: openssl-1.0.2a/crypto/rand/md_rand.c =================================================================== --- openssl-1.0.2a.orig/crypto/rand/md_rand.c 2015-05-29 13:58:53.841777261 +0200 +++ openssl-1.0.2a/crypto/rand/md_rand.c 2015-05-29 14:24:04.870595846 +0200 @@ -164,7 +164,7 @@ static int ssleay_rand_nopseudo_bytes(un static int ssleay_rand_pseudo_bytes(unsigned char *buf, int num); static int ssleay_rand_status(void); -RAND_METHOD rand_ssleay_meth = { +static RAND_METHOD rand_ssleay_meth = { ssleay_rand_seed, ssleay_rand_nopseudo_bytes, ssleay_rand_cleanup, Index: openssl-1.0.2a/crypto/dh/dh_ameth.c =================================================================== --- openssl-1.0.2a.orig/crypto/dh/dh_ameth.c 2015-05-29 13:58:53.842777273 +0200 +++ openssl-1.0.2a/crypto/dh/dh_ameth.c 2015-05-29 14:24:30.526905527 +0200 @@ -584,6 +584,7 @@ static int dh_pkey_ctrl(EVP_PKEY *pkey, } + __attribute__ ((visibility ("hidden"))) const EVP_PKEY_ASN1_METHOD dh_asn1_meth = { EVP_PKEY_DH, EVP_PKEY_DH, Index: openssl-1.0.2a/crypto/dh/dh_pmeth.c =================================================================== --- openssl-1.0.2a.orig/crypto/dh/dh_pmeth.c 2015-05-29 13:58:53.842777273 +0200 +++ openssl-1.0.2a/crypto/dh/dh_pmeth.c 2015-05-29 14:25:02.208288551 +0200 @@ -482,6 +482,7 @@ static int pkey_dh_derive(EVP_PKEY_CTX * return 1; } + __attribute__ ((visibility ("hidden"))) const EVP_PKEY_METHOD dh_pkey_meth = { EVP_PKEY_DH, 0, Index: openssl-1.0.2a/crypto/dsa/dsa_ameth.c =================================================================== --- openssl-1.0.2a.orig/crypto/dsa/dsa_ameth.c 2015-05-29 13:58:53.842777273 +0200 +++ openssl-1.0.2a/crypto/dsa/dsa_ameth.c 2015-05-29 14:25:24.527557694 +0200 @@ -620,6 +620,7 @@ static int dsa_pkey_ctrl(EVP_PKEY *pkey, /* NB these are sorted in pkey_id order, lowest first */ + __attribute__ ((visibility ("hidden"))) const EVP_PKEY_ASN1_METHOD dsa_asn1_meths[] = { { Index: openssl-1.0.2a/crypto/dsa/dsa_pmeth.c =================================================================== --- openssl-1.0.2a.orig/crypto/dsa/dsa_pmeth.c 2015-05-29 13:58:53.843777284 +0200 +++ openssl-1.0.2a/crypto/dsa/dsa_pmeth.c 2015-05-29 14:25:50.943876979 +0200 @@ -278,6 +278,7 @@ static int pkey_dsa_keygen(EVP_PKEY_CTX return DSA_generate_key(pkey->pkey.dsa); } + __attribute__ ((visibility ("hidden"))) const EVP_PKEY_METHOD dsa_pkey_meth = { EVP_PKEY_DSA, EVP_PKEY_FLAG_AUTOARGLEN, Index: openssl-1.0.2a/crypto/ec/ec_ameth.c =================================================================== --- openssl-1.0.2a.orig/crypto/ec/ec_ameth.c 2015-05-29 13:58:53.843777284 +0200 +++ openssl-1.0.2a/crypto/ec/ec_ameth.c 2015-05-29 14:26:15.256170382 +0200 @@ -608,6 +608,7 @@ static int ec_pkey_ctrl(EVP_PKEY *pkey, } + __attribute__ ((visibility ("hidden"))) const EVP_PKEY_ASN1_METHOD eckey_asn1_meth = { EVP_PKEY_EC, EVP_PKEY_EC, Index: openssl-1.0.2a/crypto/ec/ec_pmeth.c =================================================================== --- openssl-1.0.2a.orig/crypto/ec/ec_pmeth.c 2015-05-29 13:58:53.843777284 +0200 +++ openssl-1.0.2a/crypto/ec/ec_pmeth.c 2015-05-29 14:26:42.183495689 +0200 @@ -491,6 +491,7 @@ static int pkey_ec_keygen(EVP_PKEY_CTX * return EC_KEY_generate_key(pkey->pkey.ec); } + __attribute__ ((visibility ("hidden"))) const EVP_PKEY_METHOD ec_pkey_meth = { EVP_PKEY_EC, 0, Index: openssl-1.0.2a/crypto/hmac/hm_ameth.c =================================================================== --- openssl-1.0.2a.orig/crypto/hmac/hm_ameth.c 2015-05-29 13:58:53.844777296 +0200 +++ openssl-1.0.2a/crypto/hmac/hm_ameth.c 2015-05-29 14:27:00.087711757 +0200 @@ -135,6 +135,7 @@ static int old_hmac_encode(const EVP_PKE #endif + __attribute__ ((visibility ("hidden"))) const EVP_PKEY_ASN1_METHOD hmac_asn1_meth = { EVP_PKEY_HMAC, EVP_PKEY_HMAC, Index: openssl-1.0.2a/crypto/hmac/hm_pmeth.c =================================================================== --- openssl-1.0.2a.orig/crypto/hmac/hm_pmeth.c 2015-05-29 13:58:53.844777296 +0200 +++ openssl-1.0.2a/crypto/hmac/hm_pmeth.c 2015-05-29 14:27:18.207930409 +0200 @@ -228,6 +228,7 @@ static int pkey_hmac_ctrl_str(EVP_PKEY_C return -2; } + __attribute__ ((visibility ("hidden"))) const EVP_PKEY_METHOD hmac_pkey_meth = { EVP_PKEY_HMAC, 0, Index: openssl-1.0.2a/crypto/rsa/rsa_ameth.c =================================================================== --- openssl-1.0.2a.orig/crypto/rsa/rsa_ameth.c 2015-05-29 13:58:53.844777296 +0200 +++ openssl-1.0.2a/crypto/rsa/rsa_ameth.c 2015-05-29 14:27:55.153376094 +0200 @@ -921,6 +921,7 @@ static int rsa_cms_encrypt(CMS_Recipient return rv; } + __attribute__ ((visibility ("hidden"))) const EVP_PKEY_ASN1_METHOD rsa_asn1_meths[] = { { EVP_PKEY_RSA, Index: openssl-1.0.2a/crypto/rsa/rsa_pmeth.c =================================================================== --- openssl-1.0.2a.orig/crypto/rsa/rsa_pmeth.c 2015-05-29 13:58:53.845777307 +0200 +++ openssl-1.0.2a/crypto/rsa/rsa_pmeth.c 2015-05-29 14:28:12.111582149 +0200 @@ -717,6 +717,7 @@ static int pkey_rsa_keygen(EVP_PKEY_CTX return ret; } + __attribute__ ((visibility ("hidden"))) const EVP_PKEY_METHOD rsa_pkey_meth = { EVP_PKEY_RSA, EVP_PKEY_FLAG_AUTOARGLEN, Index: openssl-1.0.2a/crypto/objects/obj_xref.c =================================================================== --- openssl-1.0.2a.orig/crypto/objects/obj_xref.c 2015-05-29 13:57:01.511491765 +0200 +++ openssl-1.0.2a/crypto/objects/obj_xref.c 2015-05-29 13:58:53.845777307 +0200 @@ -61,7 +61,7 @@ #include "obj_xref.h" DECLARE_STACK_OF(nid_triple) -STACK_OF(nid_triple) *sig_app, *sigx_app; +static STACK_OF(nid_triple) *sig_app, *sigx_app; static int sig_cmp(const nid_triple *a, const nid_triple *b) { Index: openssl-1.0.2a/crypto/pem/pem_lib.c =================================================================== --- openssl-1.0.2a.orig/crypto/pem/pem_lib.c 2015-05-29 13:57:01.512491776 +0200 +++ openssl-1.0.2a/crypto/pem/pem_lib.c 2015-05-29 13:58:53.845777307 +0200 @@ -80,7 +80,7 @@ const char PEM_version[] = "PEM" OPENSSL static int load_iv(char **fromp, unsigned char *to, int num); static int check_pem(const char *nm, const char *name); -int pem_check_suffix(const char *pem_str, const char *suffix); +int pem_check_suffix(const char *pem_str, const char *suffix) __attribute__ ((visibility ("hidden"))); int PEM_def_callback(char *buf, int num, int w, void *key) { Index: openssl-1.0.2a/crypto/asn1/tasn_prn.c =================================================================== --- openssl-1.0.2a.orig/crypto/asn1/tasn_prn.c 2015-05-29 13:58:53.845777307 +0200 +++ openssl-1.0.2a/crypto/asn1/tasn_prn.c 2015-05-29 14:28:41.568929701 +0200 @@ -73,7 +73,7 @@ /* ASN1_PCTX routines */ -ASN1_PCTX default_pctx = { +static ASN1_PCTX default_pctx = { ASN1_PCTX_FLAGS_SHOW_ABSENT, /* flags */ 0, /* nm_flags */ 0, /* cert_flags */ Index: openssl-1.0.2a/crypto/bn/bn_exp.c =================================================================== --- openssl-1.0.2a.orig/crypto/bn/bn_exp.c 2015-05-29 13:58:53.846777318 +0200 +++ openssl-1.0.2a/crypto/bn/bn_exp.c 2015-05-29 14:29:50.256737750 +0200 @@ -947,10 +947,10 @@ int BN_mod_exp_mont_consttime(BIGNUM *rr */ void bn_mul_mont_gather5(BN_ULONG *rp, const BN_ULONG *ap, const void *table, const BN_ULONG *np, - const BN_ULONG *n0, int num, int power); + const BN_ULONG *n0, int num, int power) __attribute__ ((visibility ("hidden"))); void bn_scatter5(const BN_ULONG *inp, size_t num, - void *table, size_t power); - void bn_gather5(BN_ULONG *out, size_t num, void *table, size_t power); + void *table, size_t power) __attribute__ ((visibility ("hidden"))); + void bn_gather5(BN_ULONG *out, size_t num, void *table, size_t power) __attribute__ ((visibility ("hidden"))); void bn_power5(BN_ULONG *rp, const BN_ULONG *ap, const void *table, const BN_ULONG *np, const BN_ULONG *n0, int num, int power); Index: openssl-1.0.2a/crypto/bn/bn_gf2m.c =================================================================== --- openssl-1.0.2a.orig/crypto/bn/bn_gf2m.c 2015-05-29 13:58:53.846777318 +0200 +++ openssl-1.0.2a/crypto/bn/bn_gf2m.c 2015-05-29 14:31:03.496598921 +0200 @@ -321,7 +321,7 @@ static void bn_GF2m_mul_2x2(BN_ULONG *r, } # else void bn_GF2m_mul_2x2(BN_ULONG *r, BN_ULONG a1, BN_ULONG a0, BN_ULONG b1, - BN_ULONG b0); + BN_ULONG b0) __attribute__ ((visibility ("hidden"))); # endif /*