diff -up openssl-3.0.0-beta1/crypto/evp/exchange.c.dual-abi openssl-3.0.0-beta1/crypto/evp/exchange.c --- openssl-3.0.0-beta1/crypto/evp/exchange.c.dual-abi 2021-07-02 15:28:23.331896975 +0200 +++ openssl-3.0.0-beta1/crypto/evp/exchange.c 2021-07-02 17:17:56.332300741 +0200 @@ -472,6 +472,7 @@ const char *EVP_KEYEXCH_get0_description { return keyexch->description; } +RHEL_ALIAS1(EVP_KEYEXCH_description); int EVP_KEYEXCH_is_a(const EVP_KEYEXCH *keyexch, const char *name) { diff -up openssl-3.0.0-beta1/crypto/evp/kdf_lib.c.dual-abi openssl-3.0.0-beta1/crypto/evp/kdf_lib.c --- openssl-3.0.0-beta1/crypto/evp/kdf_lib.c.dual-abi 2021-07-02 14:57:12.576376884 +0200 +++ openssl-3.0.0-beta1/crypto/evp/kdf_lib.c 2021-07-02 14:59:05.277356425 +0200 @@ -92,11 +92,13 @@ const char *EVP_KDF_get0_name(const EVP_ { return kdf->type_name; } +RHEL_ALIAS1(EVP_KDF_name); const char *EVP_KDF_get0_description(const EVP_KDF *kdf) { return kdf->description; } +RHEL_ALIAS1(EVP_KDF_description); int EVP_KDF_is_a(const EVP_KDF *kdf, const char *name) { @@ -107,6 +109,7 @@ const OSSL_PROVIDER *EVP_KDF_get0_provid { return kdf->prov; } +RHEL_ALIAS1(EVP_KDF_provider); const EVP_KDF *EVP_KDF_CTX_kdf(EVP_KDF_CTX *ctx) { diff -up openssl-3.0.0-beta1/crypto/evp/kem.c.dual-abi openssl-3.0.0-beta1/crypto/evp/kem.c --- openssl-3.0.0-beta1/crypto/evp/kem.c.dual-abi 2021-07-02 14:59:25.315530582 +0200 +++ openssl-3.0.0-beta1/crypto/evp/kem.c 2021-07-02 15:28:04.812733083 +0200 @@ -328,6 +328,7 @@ OSSL_PROVIDER *EVP_KEM_get0_provider(con { return kem->prov; } +RHEL_ALIAS1(EVP_KEM_provider); EVP_KEM *EVP_KEM_fetch(OSSL_LIB_CTX *ctx, const char *algorithm, const char *properties) @@ -352,11 +353,13 @@ const char *EVP_KEM_get0_name(const EVP_ { return kem->type_name; } +RHEL_ALIAS1(EVP_KEM_name); const char *EVP_KEM_get0_description(const EVP_KEM *kem) { return kem->description; } +RHEL_ALIAS1(EVP_KEM_description); void EVP_KEM_do_all_provided(OSSL_LIB_CTX *libctx, void (*fn)(EVP_KEM *kem, void *arg), diff -up openssl-3.0.0-beta1/crypto/encode_decode/decoder_meth.c.dual-abi openssl-3.0.0-beta1/crypto/encode_decode/decoder_meth.c --- openssl-3.0.0-beta1/crypto/encode_decode/decoder_meth.c.dual-abi 2021-07-12 23:22:43.652838373 +0200 +++ openssl-3.0.0-beta1/crypto/encode_decode/decoder_meth.c 2021-07-12 23:40:46.085974883 +0200 @@ -430,6 +430,7 @@ const OSSL_PROVIDER *OSSL_DECODER_get0_p return decoder->base.prov; } +RHEL_ALIAS1(OSSL_DECODER_provider); const char *OSSL_DECODER_get0_properties(const OSSL_DECODER *decoder) { @@ -440,6 +441,7 @@ const char *OSSL_DECODER_get0_properties return decoder->base.algodef->property_definition; } +RHEL_ALIAS1(OSSL_DECODER_properties); const OSSL_PROPERTY_LIST * ossl_decoder_parsed_properties(const OSSL_DECODER *decoder) @@ -471,6 +473,7 @@ const char *OSSL_DECODER_get0_descriptio { return decoder->base.algodef->algorithm_description; } +RHEL_ALIAS1(OSSL_DECODER_description); int OSSL_DECODER_is_a(const OSSL_DECODER *decoder, const char *name) { diff -up openssl-3.0.0-beta1/crypto/encode_decode/encoder_meth.c.dual-abi openssl-3.0.0-beta1/crypto/encode_decode/encoder_meth.c --- openssl-3.0.0-beta1/crypto/encode_decode/encoder_meth.c.dual-abi 2021-07-12 23:22:06.307513672 +0200 +++ openssl-3.0.0-beta1/crypto/encode_decode/encoder_meth.c 2021-07-08 14:20:58.568247805 +0200 @@ -439,6 +439,7 @@ const OSSL_PROVIDER *OSSL_ENCODER_get0_p return encoder->base.prov; } +RHEL_ALIAS1(OSSL_ENCODER_provider); const char *OSSL_ENCODER_get0_properties(const OSSL_ENCODER *encoder) { @@ -449,6 +450,7 @@ const char *OSSL_ENCODER_get0_properties return encoder->base.algodef->property_definition; } +RHEL_ALIAS1(OSSL_ENCODER_properties); const OSSL_PROPERTY_LIST * ossl_encoder_parsed_properties(const OSSL_ENCODER *encoder) diff -up openssl-3.0.0-beta1/crypto/evp/signature.c.dual-abi openssl-3.0.0-beta1/crypto/evp/signature.c --- openssl-3.0.0-beta1/crypto/evp/signature.c.dual-abi 2021-07-12 23:35:50.113380220 +0200 +++ openssl-3.0.0-beta1/crypto/evp/signature.c 2021-07-12 23:42:13.074732176 +0200 @@ -304,6 +304,7 @@ OSSL_PROVIDER *EVP_SIGNATURE_get0_provid { return signature->prov; } +RHEL_ALIAS1(EVP_SIGNATURE_provider); EVP_SIGNATURE *EVP_SIGNATURE_fetch(OSSL_LIB_CTX *ctx, const char *algorithm, const char *properties) diff -up openssl-3.0.0-beta1/crypto/provider.c.dual-abi openssl-3.0.0-beta1/crypto/provider.c --- openssl-3.0.0-beta1/crypto/provider.c.dual-abi 2021-07-12 23:20:52.911866341 +0200 +++ openssl-3.0.0-beta1/crypto/provider.c 2021-07-08 14:17:56.222526254 +0200 @@ -133,6 +133,7 @@ const char *OSSL_PROVIDER_get0_name(cons { return ossl_provider_name(prov); } +RHEL_ALIAS1(OSSL_PROVIDER_name); int OSSL_PROVIDER_do_all(OSSL_LIB_CTX *ctx, int (*cb)(OSSL_PROVIDER *provider, diff -up openssl-3.0.0-beta1/crypto/store/store_meth.c.dual-abi openssl-3.0.0-beta1/crypto/store/store_meth.c --- openssl-3.0.0-beta1/crypto/store/store_meth.c.dual-abi 2021-07-12 23:19:45.894383707 +0200 +++ openssl-3.0.0-beta1/crypto/store/store_meth.c 2021-07-08 10:32:19.767282116 +0200 @@ -398,6 +398,7 @@ const OSSL_PROVIDER *OSSL_STORE_LOADER_g return loader->prov; } +RHEL_ALIAS1(OSSL_STORE_LOADER_provider); const char *OSSL_STORE_LOADER_get0_properties(const OSSL_STORE_LOADER *loader) { @@ -408,6 +409,7 @@ const char *OSSL_STORE_LOADER_get0_prope return loader->propdef; } +RHEL_ALIAS1(OSSL_STORE_LOADER_properties); int ossl_store_loader_get_number(const OSSL_STORE_LOADER *loader) { @@ -423,6 +425,7 @@ const char *OSSL_STORE_LOADER_get0_descr { return loader->description; } +RHEL_ALIAS1(OSSL_STORE_LOADER_description); int OSSL_STORE_LOADER_is_a(const OSSL_STORE_LOADER *loader, const char *name) { diff -up openssl-3.0.0-beta1/crypto/encode_decode/decoder_meth.c.dual-abi openssl-3.0.0-beta1/crypto/encode_decode/decoder_meth.c --- openssl-3.0.0-beta1/crypto/encode_decode/decoder_meth.c.dual-abi 2021-07-13 01:01:18.919145746 +0200 +++ openssl-3.0.0-beta1/crypto/encode_decode/decoder_meth.c 2021-07-13 01:02:00.137533120 +0200 @@ -23,6 +23,21 @@ */ #define NAME_SEPARATOR ':' +/* Macro machinery. */ + +/* Defines OLD_STRING (a C string) as an alias for NEW_ID (a C + * identifier). The controlling C identifier symbol is ALIAS_ID (a C + * identifier). */ +#define RHEL_ALIAS3(alias_id, new_id, old_string) \ + extern __typeof(new_id) alias_id \ + __asm__ (old_string) \ + __attribute__ ((__copy__ (new_id), __alias__ (#new_id))) + +/* Defines an alias using OLD_ID, which must be an macro identifier + * that expands to the new identifier. */ +#define RHEL_ALIAS1(old_id) \ + RHEL_ALIAS3(RHEL_ALIAS_##old_id, old_id, #old_id) + /* Simple method structure constructor and destructor */ static OSSL_DECODER *ossl_decoder_new(void) { diff -up openssl-3.0.0-beta1/crypto/encode_decode/encoder_meth.c.dual-abi openssl-3.0.0-beta1/crypto/encode_decode/encoder_meth.c --- openssl-3.0.0-beta1/crypto/encode_decode/encoder_meth.c.dual-abi 2021-07-13 01:01:31.433263354 +0200 +++ openssl-3.0.0-beta1/crypto/encode_decode/encoder_meth.c 2021-07-13 01:02:26.169777773 +0200 @@ -23,6 +23,21 @@ */ #define NAME_SEPARATOR ':' +/* Macro machinery. */ + +/* Defines OLD_STRING (a C string) as an alias for NEW_ID (a C + * identifier). The controlling C identifier symbol is ALIAS_ID (a C + * identifier). */ +#define RHEL_ALIAS3(alias_id, new_id, old_string) \ + extern __typeof(new_id) alias_id \ + __asm__ (old_string) \ + __attribute__ ((__copy__ (new_id), __alias__ (#new_id))) + +/* Defines an alias using OLD_ID, which must be an macro identifier + * that expands to the new identifier. */ +#define RHEL_ALIAS1(old_id) \ + RHEL_ALIAS3(RHEL_ALIAS_##old_id, old_id, #old_id) + /* Simple method structure constructor and destructor */ static OSSL_ENCODER *ossl_encoder_new(void) { diff -up openssl-3.0.0-beta1/crypto/evp/asymcipher.c.dual-abi openssl-3.0.0-beta1/crypto/evp/asymcipher.c --- openssl-3.0.0-beta1/crypto/evp/asymcipher.c.dual-abi 2021-07-13 01:11:45.757160664 +0200 +++ openssl-3.0.0-beta1/crypto/evp/asymcipher.c 2021-07-13 01:12:10.821406727 +0200 @@ -17,6 +17,21 @@ #include "crypto/evp.h" #include "evp_local.h" +/* Macro machinery. */ + +/* Defines OLD_STRING (a C string) as an alias for NEW_ID (a C + * identifier). The controlling C identifier symbol is ALIAS_ID (a C + * identifier). */ +#define RHEL_ALIAS3(alias_id, new_id, old_string) \ + extern __typeof(new_id) alias_id \ + __asm__ (old_string) \ + __attribute__ ((__copy__ (new_id), __alias__ (#new_id))) + +/* Defines an alias using OLD_ID, which must be an macro identifier + * that expands to the new identifier. */ +#define RHEL_ALIAS1(old_id) \ + RHEL_ALIAS3(RHEL_ALIAS_##old_id, old_id, #old_id) + static int evp_pkey_asym_cipher_init(EVP_PKEY_CTX *ctx, int operation, const OSSL_PARAM params[]) { @@ -413,6 +428,7 @@ OSSL_PROVIDER *EVP_ASYM_CIPHER_get0_prov { return cipher->prov; } +RHEL_ALIAS1(EVP_ASYM_CIPHER_provider); EVP_ASYM_CIPHER *EVP_ASYM_CIPHER_fetch(OSSL_LIB_CTX *ctx, const char *algorithm, const char *properties) @@ -437,11 +453,13 @@ const char *EVP_ASYM_CIPHER_get0_name(co { return cipher->type_name; } +RHEL_ALIAS1(EVP_ASYM_CIPHER_name); const char *EVP_ASYM_CIPHER_get0_description(const EVP_ASYM_CIPHER *cipher) { return cipher->description; } +RHEL_ALIAS1(EVP_ASYM_CIPHER_description); void EVP_ASYM_CIPHER_do_all_provided(OSSL_LIB_CTX *libctx, void (*fn)(EVP_ASYM_CIPHER *cipher, diff -up openssl-3.0.0-beta1/crypto/evp/evp_lib.c.dual-abi openssl-3.0.0-beta1/crypto/evp/evp_lib.c --- openssl-3.0.0-beta1/crypto/evp/evp_lib.c.dual-abi 2021-07-13 01:10:08.970210463 +0200 +++ openssl-3.0.0-beta1/crypto/evp/evp_lib.c 2021-07-13 01:10:20.596324598 +0200 @@ -31,6 +31,21 @@ #include "crypto/asn1.h" #include "internal/provider.h" #include "evp_local.h" +/* Macro machinery. */ + +/* Defines OLD_STRING (a C string) as an alias for NEW_ID (a C + * identifier). The controlling C identifier symbol is ALIAS_ID (a C + * identifier). */ +#define RHEL_ALIAS3(alias_id, new_id, old_string) \ + extern __typeof(new_id) alias_id \ + __asm__ (old_string) \ + __attribute__ ((__copy__ (new_id), __alias__ (#new_id))) + +/* Defines an alias using OLD_ID, which must be an macro identifier + * that expands to the new identifier. */ +#define RHEL_ALIAS1(old_id) \ + RHEL_ALIAS3(RHEL_ALIAS_##old_id, old_id, #old_id) + #if !defined(FIPS_MODULE) @@ -337,6 +352,7 @@ int EVP_CIPHER_get_type(const EVP_CIPHER #endif } } +RHEL_ALIAS1(EVP_CIPHER_type); int evp_cipher_cache_constants(EVP_CIPHER *cipher) { @@ -389,11 +405,13 @@ int EVP_CIPHER_get_block_size(const EVP_ { return cipher->block_size; } +RHEL_ALIAS1(EVP_CIPHER_block_size); int EVP_CIPHER_CTX_get_block_size(const EVP_CIPHER_CTX *ctx) { return EVP_CIPHER_get_block_size(ctx->cipher); } +RHEL_ALIAS1(EVP_CIPHER_CTX_block_size); int EVP_CIPHER_impl_ctx_size(const EVP_CIPHER *e) { @@ -466,11 +484,13 @@ int EVP_CIPHER_CTX_is_encrypting(const E { return ctx->encrypt; } +RHEL_ALIAS1(EVP_CIPHER_CTX_encrypting); unsigned long EVP_CIPHER_get_flags(const EVP_CIPHER *cipher) { return cipher->flags; } +RHEL_ALIAS1(EVP_CIPHER_flags); void *EVP_CIPHER_CTX_get_app_data(const EVP_CIPHER_CTX *ctx) { @@ -501,6 +521,7 @@ int EVP_CIPHER_get_iv_length(const EVP_C { return cipher->iv_len; } +RHEL_ALIAS1(EVP_CIPHER_iv_length); int EVP_CIPHER_CTX_get_iv_length(const EVP_CIPHER_CTX *ctx) { @@ -522,6 +543,7 @@ legacy: } return len; } +RHEL_ALIAS1(EVP_CIPHER_CTX_iv_length); int EVP_CIPHER_CTX_get_tag_length(const EVP_CIPHER_CTX *ctx) { @@ -533,6 +555,7 @@ int EVP_CIPHER_CTX_get_tag_length(const ret = evp_do_ciph_ctx_getparams(ctx->cipher, ctx->algctx, params); return ret == 1 ? (int)v : 0; } +RHEL_ALIAS1(EVP_CIPHER_CTX_tag_length); #ifndef OPENSSL_NO_DEPRECATED_3_0 const unsigned char *EVP_CIPHER_CTX_original_iv(const EVP_CIPHER_CTX *ctx) @@ -615,6 +638,7 @@ int EVP_CIPHER_CTX_get_num(const EVP_CIP return ok != 0 ? (int)v : EVP_CTRL_RET_UNSUPPORTED; } +RHEL_ALIAS1(EVP_CIPHER_CTX_num); int EVP_CIPHER_CTX_set_num(EVP_CIPHER_CTX *ctx, int num) { @@ -634,6 +658,7 @@ int EVP_CIPHER_get_key_length(const EVP_ { return cipher->key_len; } +RHEL_ALIAS1(EVP_CIPHER_key_length); int EVP_CIPHER_CTX_get_key_length(const EVP_CIPHER_CTX *ctx) { @@ -646,16 +671,19 @@ int EVP_CIPHER_CTX_get_key_length(const return ok != 0 ? (int)v : EVP_CTRL_RET_UNSUPPORTED; } +RHEL_ALIAS1(EVP_CIPHER_CTX_key_length); int EVP_CIPHER_get_nid(const EVP_CIPHER *cipher) { return cipher->nid; } +RHEL_ALIAS1(EVP_CIPHER_nid); int EVP_CIPHER_CTX_get_nid(const EVP_CIPHER_CTX *ctx) { return ctx->cipher->nid; } +RHEL_ALIAS1(EVP_CIPHER_CTX_nid); int EVP_CIPHER_is_a(const EVP_CIPHER *cipher, const char *name) { @@ -679,6 +707,7 @@ const char *EVP_CIPHER_get0_name(const E return NULL; #endif } +RHEL_ALIAS1(EVP_CIPHER_name); const char *EVP_CIPHER_get0_description(const EVP_CIPHER *cipher) { @@ -690,6 +719,7 @@ const char *EVP_CIPHER_get0_description( return NULL; #endif } +RHEL_ALIAS1(EVP_CIPHER_description); int EVP_CIPHER_names_do_all(const EVP_CIPHER *cipher, void (*fn)(const char *name, void *data), @@ -705,11 +735,13 @@ const OSSL_PROVIDER *EVP_CIPHER_get0_pro { return cipher->prov; } +RHEL_ALIAS1(EVP_CIPHER_provider); int EVP_CIPHER_get_mode(const EVP_CIPHER *cipher) { return EVP_CIPHER_get_flags(cipher) & EVP_CIPH_MODE; } +RHEL_ALIAS1(EVP_CIPHER_mode); int EVP_MD_is_a(const EVP_MD *md, const char *name) { @@ -733,6 +765,7 @@ const char *EVP_MD_get0_description(cons return NULL; #endif } +RHEL_ALIAS1(EVP_MD_description); const char *EVP_MD_get0_name(const EVP_MD *md) { @@ -746,6 +779,7 @@ const char *EVP_MD_get0_name(const EVP_M return NULL; #endif } +RHEL_ALIAS1(EVP_MD_name); int EVP_MD_names_do_all(const EVP_MD *md, void (*fn)(const char *name, void *data), @@ -761,16 +795,19 @@ const OSSL_PROVIDER *EVP_MD_get0_provide { return md->prov; } +RHEL_ALIAS1(EVP_MD_provider); int EVP_MD_get_type(const EVP_MD *md) { return md->type; } +RHEL_ALIAS1(EVP_MD_type); int EVP_MD_get_pkey_type(const EVP_MD *md) { return md->pkey_type; } +RHEL_ALIAS1(EVP_MD_pkey_type); int EVP_MD_get_block_size(const EVP_MD *md) { @@ -780,6 +817,7 @@ int EVP_MD_get_block_size(const EVP_MD * } return md->block_size; } +RHEL_ALIAS1(EVP_MD_block_size); int EVP_MD_get_size(const EVP_MD *md) { @@ -789,11 +827,13 @@ int EVP_MD_get_size(const EVP_MD *md) } return md->md_size; } +RHEL_ALIAS1(EVP_MD_size); unsigned long EVP_MD_get_flags(const EVP_MD *md) { return md->flags; } +RHEL_ALIAS1(EVP_MD_flags); EVP_MD *EVP_MD_meth_new(int md_type, int pkey_type) { @@ -1007,6 +1047,7 @@ EVP_PKEY_CTX *EVP_MD_CTX_get_pkey_ctx(co { return ctx->pctx; } +RHEL_ALIAS1(EVP_MD_CTX_pkey_ctx); #if !defined(FIPS_MODULE) void EVP_MD_CTX_set_pkey_ctx(EVP_MD_CTX *ctx, EVP_PKEY_CTX *pctx) @@ -1033,6 +1074,7 @@ void *EVP_MD_CTX_get0_md_data(const EVP_ { return ctx->md_data; } +RHEL_ALIAS1(EVP_MD_CTX_md_data); int (*EVP_MD_CTX_update_fn(EVP_MD_CTX *ctx))(EVP_MD_CTX *ctx, const void *data, size_t count) diff -up openssl-3.0.0-beta1/crypto/evp/evp_rand.c.dual-abi openssl-3.0.0-beta1/crypto/evp/evp_rand.c --- openssl-3.0.0-beta1/crypto/evp/evp_rand.c.dual-abi 2021-07-13 00:54:33.231325700 +0200 +++ openssl-3.0.0-beta1/crypto/evp/evp_rand.c 2021-07-13 00:57:22.596922955 +0200 @@ -26,6 +26,22 @@ #include "crypto/evp.h" #include "evp_local.h" +/* Macro machinery. */ + +/* Defines OLD_STRING (a C string) as an alias for NEW_ID (a C + * identifier). The controlling C identifier symbol is ALIAS_ID (a C + * identifier). */ +#define RHEL_ALIAS3(alias_id, new_id, old_string) \ + extern __typeof(new_id) alias_id \ + __asm__ (old_string) \ + __attribute__ ((__copy__ (new_id), __alias__ (#new_id))) + +/* Defines an alias using OLD_ID, which must be an macro identifier + * that expands to the new identifier. */ +#define RHEL_ALIAS1(old_id) \ + RHEL_ALIAS3(RHEL_ALIAS_##old_id, old_id, #old_id) + + struct evp_rand_st { OSSL_PROVIDER *prov; int name_id; @@ -302,11 +318,13 @@ const char *EVP_RAND_get0_name(const EVP { return rand->type_name; } +RHEL_ALIAS1(EVP_RAND_name); const char *EVP_RAND_get0_description(const EVP_RAND *rand) { return rand->description; } +RHEL_ALIAS1(EVP_RAND_description); int EVP_RAND_is_a(const EVP_RAND *rand, const char *name) { @@ -317,6 +335,7 @@ const OSSL_PROVIDER *EVP_RAND_get0_provi { return rand->prov; } +RHEL_ALIAS1(EVP_RAND_provider); int EVP_RAND_get_params(EVP_RAND *rand, OSSL_PARAM params[]) { @@ -399,6 +418,7 @@ EVP_RAND *EVP_RAND_CTX_get0_rand(EVP_RAN { return ctx->meth; } +RHEL_ALIAS1(EVP_RAND_CTX_rand); static int evp_rand_get_ctx_params_locked(EVP_RAND_CTX *ctx, OSSL_PARAM params[]) @@ -633,6 +653,7 @@ unsigned int EVP_RAND_get_strength(EVP_R evp_rand_unlock(ctx); return res; } +RHEL_ALIAS1(EVP_RAND_strength); static int evp_rand_nonce_locked(EVP_RAND_CTX *ctx, unsigned char *out, size_t outlen) @@ -667,6 +688,7 @@ int EVP_RAND_get_state(EVP_RAND_CTX *ctx state = EVP_RAND_STATE_ERROR; return state; } +RHEL_ALIAS1(EVP_RAND_state); static int evp_rand_verify_zeroization_locked(EVP_RAND_CTX *ctx) { diff -up openssl-3.0.0-beta1/crypto/evp/exchange.c.dual-abi openssl-3.0.0-beta1/crypto/evp/exchange.c --- openssl-3.0.0-beta1/crypto/evp/exchange.c.dual-abi 2021-07-12 23:58:50.656415550 +0200 +++ openssl-3.0.0-beta1/crypto/evp/exchange.c 2021-07-13 00:43:35.764165305 +0200 @@ -17,6 +17,21 @@ #include "crypto/evp.h" #include "evp_local.h" +/* Macro machinery. */ + +/* Defines OLD_STRING (a C string) as an alias for NEW_ID (a C + * identifier). The controlling C identifier symbol is ALIAS_ID (a C + * identifier). */ +#define RHEL_ALIAS3(alias_id, new_id, old_string) \ + extern __typeof(new_id) alias_id \ + __asm__ (old_string) \ + __attribute__ ((__copy__ (new_id), __alias__ (#new_id))) + +/* Defines an alias using OLD_ID, which must be an macro identifier + * that expands to the new identifier. */ +#define RHEL_ALIAS1(old_id) \ + RHEL_ALIAS3(RHEL_ALIAS_##old_id, old_id, #old_id) + static EVP_KEYEXCH *evp_keyexch_new(OSSL_PROVIDER *prov) { EVP_KEYEXCH *exchange = OPENSSL_zalloc(sizeof(EVP_KEYEXCH)); @@ -170,6 +185,7 @@ OSSL_PROVIDER *EVP_KEYEXCH_get0_provider { return exchange->prov; } +RHEL_ALIAS1(EVP_KEYEXCH_provider); EVP_KEYEXCH *EVP_KEYEXCH_fetch(OSSL_LIB_CTX *ctx, const char *algorithm, const char *properties) @@ -467,6 +483,7 @@ const char *EVP_KEYEXCH_get0_name(const { return keyexch->type_name; } +RHEL_ALIAS1(EVP_KEYEXCH_name); const char *EVP_KEYEXCH_get0_description(const EVP_KEYEXCH *keyexch) { diff -up openssl-3.0.0-beta1/crypto/evp/kdf_lib.c.dual-abi openssl-3.0.0-beta1/crypto/evp/kdf_lib.c --- openssl-3.0.0-beta1/crypto/evp/kdf_lib.c.dual-abi 2021-07-13 01:05:40.212601404 +0200 +++ openssl-3.0.0-beta1/crypto/evp/kdf_lib.c 2021-07-13 01:06:03.238817806 +0200 @@ -23,6 +23,21 @@ #include "internal/provider.h" #include "evp_local.h" +/* Macro machinery. */ + +/* Defines OLD_STRING (a C string) as an alias for NEW_ID (a C + * identifier). The controlling C identifier symbol is ALIAS_ID (a C + * identifier). */ +#define RHEL_ALIAS3(alias_id, new_id, old_string) \ + extern __typeof(new_id) alias_id \ + __asm__ (old_string) \ + __attribute__ ((__copy__ (new_id), __alias__ (#new_id))) + +/* Defines an alias using OLD_ID, which must be an macro identifier + * that expands to the new identifier. */ +#define RHEL_ALIAS1(old_id) \ + RHEL_ALIAS3(RHEL_ALIAS_##old_id, old_id, #old_id) + EVP_KDF_CTX *EVP_KDF_CTX_new(EVP_KDF *kdf) { EVP_KDF_CTX *ctx = NULL; diff -up openssl-3.0.0-beta1/crypto/evp/kem.c.dual-abi openssl-3.0.0-beta1/crypto/evp/kem.c --- openssl-3.0.0-beta1/crypto/evp/kem.c.dual-abi 2021-07-13 01:05:02.966251358 +0200 +++ openssl-3.0.0-beta1/crypto/evp/kem.c 2021-07-13 01:04:49.023120319 +0200 @@ -17,6 +17,21 @@ #include "crypto/evp.h" #include "evp_local.h" +/* Macro machinery. */ + +/* Defines OLD_STRING (a C string) as an alias for NEW_ID (a C + * identifier). The controlling C identifier symbol is ALIAS_ID (a C + * identifier). */ +#define RHEL_ALIAS3(alias_id, new_id, old_string) \ + extern __typeof(new_id) alias_id \ + __asm__ (old_string) \ + __attribute__ ((__copy__ (new_id), __alias__ (#new_id))) + +/* Defines an alias using OLD_ID, which must be an macro identifier + * that expands to the new identifier. */ +#define RHEL_ALIAS1(old_id) \ + RHEL_ALIAS3(RHEL_ALIAS_##old_id, old_id, #old_id) + static int evp_kem_init(EVP_PKEY_CTX *ctx, int operation, const OSSL_PARAM params[]) { diff -up openssl-3.0.0-beta1/crypto/evp/keymgmt_meth.c.dual-abi openssl-3.0.0-beta1/crypto/evp/keymgmt_meth.c --- openssl-3.0.0-beta1/crypto/evp/keymgmt_meth.c.dual-abi 2021-07-13 00:01:22.784863826 +0200 +++ openssl-3.0.0-beta1/crypto/evp/keymgmt_meth.c 2021-07-13 00:44:18.815566635 +0200 @@ -17,6 +17,21 @@ #include "crypto/evp.h" #include "evp_local.h" +/* Macro machinery. */ + +/* Defines OLD_STRING (a C string) as an alias for NEW_ID (a C + * identifier). The controlling C identifier symbol is ALIAS_ID (a C + * identifier). */ +#define RHEL_ALIAS3(alias_id, new_id, old_string) \ + extern __typeof(new_id) alias_id \ + __asm__ (old_string) \ + __attribute__ ((__copy__ (new_id), __alias__ (#new_id))) + +/* Defines an alias using OLD_ID, which must be an macro identifier + * that expands to the new identifier. */ +#define RHEL_ALIAS1(old_id) \ + RHEL_ALIAS3(RHEL_ALIAS_##old_id, old_id, #old_id) + static void *keymgmt_new(void) { EVP_KEYMGMT *keymgmt = NULL; @@ -250,6 +265,7 @@ const OSSL_PROVIDER *EVP_KEYMGMT_get0_pr { return keymgmt->prov; } +RHEL_ALIAS1(EVP_KEYMGMT_provider); int evp_keymgmt_get_number(const EVP_KEYMGMT *keymgmt) { @@ -260,11 +276,13 @@ const char *EVP_KEYMGMT_get0_description { return keymgmt->description; } +RHEL_ALIAS1(EVP_KEYMGMT_description); const char *EVP_KEYMGMT_get0_name(const EVP_KEYMGMT *keymgmt) { return keymgmt->type_name; } +RHEL_ALIAS1(EVP_KEYMGMT_name); int EVP_KEYMGMT_is_a(const EVP_KEYMGMT *keymgmt, const char *name) { diff -up openssl-3.0.0-beta1/crypto/evp/mac_lib.c.dual-abi openssl-3.0.0-beta1/crypto/evp/mac_lib.c --- openssl-3.0.0-beta1/crypto/evp/mac_lib.c.dual-abi 2021-07-13 00:03:56.495327168 +0200 +++ openssl-3.0.0-beta1/crypto/evp/mac_lib.c 2021-07-13 00:44:48.459842988 +0200 @@ -19,6 +19,21 @@ #include "internal/provider.h" #include "evp_local.h" +/* Macro machinery. */ + +/* Defines OLD_STRING (a C string) as an alias for NEW_ID (a C + * identifier). The controlling C identifier symbol is ALIAS_ID (a C + * identifier). */ +#define RHEL_ALIAS3(alias_id, new_id, old_string) \ + extern __typeof(new_id) alias_id \ + __asm__ (old_string) \ + __attribute__ ((__copy__ (new_id), __alias__ (#new_id))) + +/* Defines an alias using OLD_ID, which must be an macro identifier + * that expands to the new identifier. */ +#define RHEL_ALIAS1(old_id) \ + RHEL_ALIAS3(RHEL_ALIAS_##old_id, old_id, #old_id) + EVP_MAC_CTX *EVP_MAC_CTX_new(EVP_MAC *mac) { EVP_MAC_CTX *ctx = OPENSSL_zalloc(sizeof(EVP_MAC_CTX)); @@ -81,6 +96,7 @@ EVP_MAC *EVP_MAC_CTX_get0_mac(EVP_MAC_CT { return ctx->meth; } +RHEL_ALIAS1(EVP_MAC_CTX_mac); static size_t get_size_t_ctx_param(EVP_MAC_CTX *ctx, const char *name) { @@ -212,11 +228,13 @@ const char *EVP_MAC_get0_name(const EVP_ { return mac->type_name; } +RHEL_ALIAS1(EVP_MAC_name); const char *EVP_MAC_get0_description(const EVP_MAC *mac) { return mac->description; } +RHEL_ALIAS1(EVP_MAC_description); int EVP_MAC_is_a(const EVP_MAC *mac, const char *name) { diff -up openssl-3.0.0-beta1/crypto/evp/mac_meth.c.dual-abi openssl-3.0.0-beta1/crypto/evp/mac_meth.c --- openssl-3.0.0-beta1/crypto/evp/mac_meth.c.dual-abi 2021-07-13 00:06:10.565599500 +0200 +++ openssl-3.0.0-beta1/crypto/evp/mac_meth.c 2021-07-13 00:45:14.925089707 +0200 @@ -7,6 +7,21 @@ #include "crypto/evp.h" #include "evp_local.h" +/* Macro machinery. */ + +/* Defines OLD_STRING (a C string) as an alias for NEW_ID (a C + * identifier). The controlling C identifier symbol is ALIAS_ID (a C + * identifier). */ +#define RHEL_ALIAS3(alias_id, new_id, old_string) \ + extern __typeof(new_id) alias_id \ + __asm__ (old_string) \ + __attribute__ ((__copy__ (new_id), __alias__ (#new_id))) + +/* Defines an alias using OLD_ID, which must be an macro identifier + * that expands to the new identifier. */ +#define RHEL_ALIAS1(old_id) \ + RHEL_ALIAS3(RHEL_ALIAS_##old_id, old_id, #old_id) + static int evp_mac_up_ref(void *vmac) { EVP_MAC *mac = vmac; @@ -179,6 +194,7 @@ const OSSL_PROVIDER *EVP_MAC_get0_provid { return mac->prov; } +RHEL_ALIAS1(EVP_MAC_provider); const OSSL_PARAM *EVP_MAC_gettable_params(const EVP_MAC *mac) { diff -up openssl-3.0.0-beta1/crypto/evp/p_lib.c.dual-abi openssl-3.0.0-beta1/crypto/evp/p_lib.c --- openssl-3.0.0-beta1/crypto/evp/p_lib.c.dual-abi 2021-07-13 00:49:03.477220320 +0200 +++ openssl-3.0.0-beta1/crypto/evp/p_lib.c 2021-07-13 00:53:25.178683891 +0200 @@ -49,6 +49,21 @@ #include "e_os.h" /* strcasecmp on Windows */ +/* Macro machinery. */ + +/* Defines OLD_STRING (a C string) as an alias for NEW_ID (a C + * identifier). The controlling C identifier symbol is ALIAS_ID (a C + * identifier). */ +#define RHEL_ALIAS3(alias_id, new_id, old_string) \ + extern __typeof(new_id) alias_id \ + __asm__ (old_string) \ + __attribute__ ((__copy__ (new_id), __alias__ (#new_id))) + +/* Defines an alias using OLD_ID, which must be an macro identifier + * that expands to the new identifier. */ +#define RHEL_ALIAS1(old_id) \ + RHEL_ALIAS3(RHEL_ALIAS_##old_id, old_id, #old_id) + static int pkey_set_type(EVP_PKEY *pkey, ENGINE *e, int type, const char *str, int len, EVP_KEYMGMT *keymgmt); static void evp_pkey_free_it(EVP_PKEY *key); @@ -69,6 +84,7 @@ int EVP_PKEY_get_bits(const EVP_PKEY *pk } return size < 0 ? 0 : size; } +RHEL_ALIAS1(EVP_PKEY_bits); int EVP_PKEY_get_security_bits(const EVP_PKEY *pkey) { @@ -81,6 +97,7 @@ int EVP_PKEY_get_security_bits(const EVP } return size < 0 ? 0 : size; } +RHEL_ALIAS1(EVP_PKEY_security_bits); int EVP_PKEY_save_parameters(EVP_PKEY *pkey, int mode) { @@ -974,11 +991,13 @@ int EVP_PKEY_get_id(const EVP_PKEY *pkey { return pkey->type; } +RHEL_ALIAS1(EVP_PKEY_id); int EVP_PKEY_get_base_id(const EVP_PKEY *pkey) { return EVP_PKEY_type(pkey->type); } +RHEL_ALIAS1(EVP_PKEY_base_id); /* * These hard coded cases are pure hackery to get around the fact @@ -1780,6 +1799,7 @@ int EVP_PKEY_get_size(const EVP_PKEY *pk } return size < 0 ? 0 : size; } +RHEL_ALIAS1(EVP_PKEY_size); const char *EVP_PKEY_get0_description(const EVP_PKEY *pkey) { @@ -1794,6 +1814,7 @@ const char *EVP_PKEY_get0_description(co #endif return NULL; } +RHEL_ALIAS1(EVP_PKEY_description); void *evp_pkey_export_to_provider(EVP_PKEY *pk, OSSL_LIB_CTX *libctx, EVP_KEYMGMT **keymgmt, diff -up openssl-3.0.0-beta1/crypto/evp/pmeth_lib.c.dual-abi openssl-3.0.0-beta1/crypto/evp/pmeth_lib.c --- openssl-3.0.0-beta1/crypto/evp/pmeth_lib.c.dual-abi 2021-07-13 00:47:14.791207121 +0200 +++ openssl-3.0.0-beta1/crypto/evp/pmeth_lib.c 2021-07-13 00:48:48.716082716 +0200 @@ -34,6 +34,21 @@ #ifndef FIPS_MODULE +/* Macro machinery. */ + +/* Defines OLD_STRING (a C string) as an alias for NEW_ID (a C + * identifier). The controlling C identifier symbol is ALIAS_ID (a C + * identifier). */ +#define RHEL_ALIAS3(alias_id, new_id, old_string) \ + extern __typeof(new_id) alias_id \ + __asm__ (old_string) \ + __attribute__ ((__copy__ (new_id), __alias__ (#new_id))) + +/* Defines an alias using OLD_ID, which must be an macro identifier + * that expands to the new identifier. */ +#define RHEL_ALIAS1(old_id) \ + RHEL_ALIAS3(RHEL_ALIAS_##old_id, old_id, #old_id) + static int evp_pkey_ctx_store_cached_data(EVP_PKEY_CTX *ctx, int keytype, int optype, int cmd, const char *name, @@ -1076,6 +1091,7 @@ int EVP_PKEY_CTX_set_hkdf_mode(EVP_PKEY_ return EVP_PKEY_CTX_set_params(ctx, int_params); } +RHEL_ALIAS1(EVP_PKEY_CTX_hkdf_mode); int EVP_PKEY_CTX_set1_pbe_pass(EVP_PKEY_CTX *ctx, const char *pass, int passlen) diff -up openssl-3.0.0-beta1/crypto/evp/signature.c.dual-abi openssl-3.0.0-beta1/crypto/evp/signature.c --- openssl-3.0.0-beta1/crypto/evp/signature.c.dual-abi 2021-07-13 00:58:07.602347388 +0200 +++ openssl-3.0.0-beta1/crypto/evp/signature.c 2021-07-13 00:59:52.391332550 +0200 @@ -18,6 +18,21 @@ #include "crypto/evp.h" #include "evp_local.h" +/* Macro machinery. */ + +/* Defines OLD_STRING (a C string) as an alias for NEW_ID (a C + * identifier). The controlling C identifier symbol is ALIAS_ID (a C + * identifier). */ +#define RHEL_ALIAS3(alias_id, new_id, old_string) \ + extern __typeof(new_id) alias_id \ + __asm__ (old_string) \ + __attribute__ ((__copy__ (new_id), __alias__ (#new_id))) + +/* Defines an alias using OLD_ID, which must be an macro identifier + * that expands to the new identifier. */ +#define RHEL_ALIAS1(old_id) \ + RHEL_ALIAS3(RHEL_ALIAS_##old_id, old_id, #old_id) + static EVP_SIGNATURE *evp_signature_new(OSSL_PROVIDER *prov) { EVP_SIGNATURE *signature = OPENSSL_zalloc(sizeof(EVP_SIGNATURE)); @@ -329,11 +344,13 @@ const char *EVP_SIGNATURE_get0_name(cons { return signature->type_name; } +RHEL_ALIAS1(EVP_SIGNATURE_name); const char *EVP_SIGNATURE_get0_description(const EVP_SIGNATURE *signature) { return signature->description; } +RHEL_ALIAS1(EVP_SIGNATURE_description); void EVP_SIGNATURE_do_all_provided(OSSL_LIB_CTX *libctx, void (*fn)(EVP_SIGNATURE *signature, diff -up openssl-3.0.0-beta1/crypto/store/store_meth.c.dual-abi openssl-3.0.0-beta1/crypto/store/store_meth.c --- openssl-3.0.0-beta1/crypto/store/store_meth.c.dual-abi 2021-07-13 01:02:51.062011712 +0200 +++ openssl-3.0.0-beta1/crypto/store/store_meth.c 2021-07-13 01:03:16.138247380 +0200 @@ -15,6 +15,21 @@ #include "internal/provider.h" #include "store_local.h" +/* Macro machinery. */ + +/* Defines OLD_STRING (a C string) as an alias for NEW_ID (a C + * identifier). The controlling C identifier symbol is ALIAS_ID (a C + * identifier). */ +#define RHEL_ALIAS3(alias_id, new_id, old_string) \ + extern __typeof(new_id) alias_id \ + __asm__ (old_string) \ + __attribute__ ((__copy__ (new_id), __alias__ (#new_id))) + +/* Defines an alias using OLD_ID, which must be an macro identifier + * that expands to the new identifier. */ +#define RHEL_ALIAS1(old_id) \ + RHEL_ALIAS3(RHEL_ALIAS_##old_id, old_id, #old_id) + int OSSL_STORE_LOADER_up_ref(OSSL_STORE_LOADER *loader) { int ref = 0; diff -up openssl-3.0.0-beta1/crypto/http/http_client.c.dual-abi openssl-3.0.0-beta1/crypto/http/http_client.c --- openssl-3.0.0-beta1/crypto/http/http_client.c.dual-abi 2021-07-13 22:47:01.463713204 +0200 +++ openssl-3.0.0-beta1/crypto/http/http_client.c 2021-07-13 22:46:32.064435146 +0200 @@ -784,6 +784,11 @@ int OSSL_HTTP_REQ_CTX_nbio_d2i(OSSL_HTTP } +int OCSP_sendreq_nbio(OCSP_RESPONSE **presp, OSSL_HTTP_REQ_CTX *rctx) +{ + return OSSL_HTTP_REQ_CTX_nbio_d2i(rctx, (ASN1_VALUE **)(presp), ASN1_ITEM_rptr(OCSP_RESPONSE)); +} + #ifndef OPENSSL_NO_SOCK /* set up a new connection BIO, to HTTP server or to HTTP(S) proxy if given */ diff -up openssl-3.0.0-beta1/include/openssl/http.h.dual-abi openssl-3.0.0-beta1/include/openssl/http.h --- openssl-3.0.0-beta1/include/openssl/http.h.dual-abi 2021-07-13 22:46:13.628260778 +0200 +++ openssl-3.0.0-beta1/include/openssl/http.h 2021-07-13 22:45:33.390880219 +0200 @@ -52,6 +52,7 @@ int OSSL_HTTP_REQ_CTX_set1_req(OSSL_HTTP int OSSL_HTTP_REQ_CTX_nbio(OSSL_HTTP_REQ_CTX *rctx); int OSSL_HTTP_REQ_CTX_nbio_d2i(OSSL_HTTP_REQ_CTX *rctx, ASN1_VALUE **pval, const ASN1_ITEM *it); +int OCSP_sendreq_nbio(OCSP_RESPONSE **presp, OSSL_HTTP_REQ_CTX *rctx); BIO *OSSL_HTTP_REQ_CTX_exchange(OSSL_HTTP_REQ_CTX *rctx); BIO *OSSL_HTTP_REQ_CTX_get0_mem_bio(const OSSL_HTTP_REQ_CTX *rctx); size_t OSSL_HTTP_REQ_CTX_get_resp_len(const OSSL_HTTP_REQ_CTX *rctx); diff -up openssl-3.0.0-beta1/crypto/encode_decode/encoder_meth.c.dual-abi openssl-3.0.0-beta1/crypto/encode_decode/encoder_meth.c --- openssl-3.0.0-beta1/crypto/encode_decode/encoder_meth.c.dual-abi 2021-07-13 23:41:29.425486504 +0200 +++ openssl-3.0.0-beta1/crypto/encode_decode/encoder_meth.c 2021-07-13 23:42:00.393819678 +0200 @@ -497,6 +497,7 @@ const char *OSSL_ENCODER_get0_descriptio { return encoder->base.algodef->algorithm_description; } +RHEL_ALIAS1(OSSL_ENCODER_description); int OSSL_ENCODER_is_a(const OSSL_ENCODER *encoder, const char *name) { diff -up openssl-3.0.0-beta1/util/libcrypto.num.dual-abi openssl-3.0.0-beta1/util/libcrypto.num --- openssl-3.0.0-beta1/util/libcrypto.num.dual-abi 2021-07-13 23:38:25.166562563 +0200 +++ openssl-3.0.0-beta1/util/libcrypto.num 2021-07-13 23:40:38.622939932 +0200 @@ -5414,3 +5414,76 @@ ASN1_item_d2i_bio_ex ASN1_item_d2i_ex ? 3_0_0 EXIST::FUNCTION: ASN1_TIME_print_ex ? 3_0_0 EXIST::FUNCTION: ossl_safe_getenv ? 3_0_0 EXIST::FUNCTION: +EVP_ASYM_CIPHER_description ? 3_0_0 EXIST::FUNCTION: +EVP_ASYM_CIPHER_name ? 3_0_0 EXIST::FUNCTION: +EVP_ASYM_CIPHER_provider ? 3_0_0 EXIST::FUNCTION: +EVP_CIPHER_CTX_block_size ? 3_0_0 EXIST::FUNCTION: +EVP_CIPHER_CTX_encrypting ? 3_0_0 EXIST::FUNCTION: +EVP_CIPHER_CTX_iv_length ? 3_0_0 EXIST::FUNCTION: +EVP_CIPHER_CTX_key_length ? 3_0_0 EXIST::FUNCTION: +EVP_CIPHER_CTX_nid ? 3_0_0 EXIST::FUNCTION: +EVP_CIPHER_CTX_num ? 3_0_0 EXIST::FUNCTION: +EVP_CIPHER_CTX_tag_length ? 3_0_0 EXIST::FUNCTION: +EVP_CIPHER_block_size ? 3_0_0 EXIST::FUNCTION: +EVP_CIPHER_description ? 3_0_0 EXIST::FUNCTION: +EVP_CIPHER_flags ? 3_0_0 EXIST::FUNCTION: +EVP_CIPHER_iv_length ? 3_0_0 EXIST::FUNCTION: +EVP_CIPHER_key_length ? 3_0_0 EXIST::FUNCTION: +EVP_CIPHER_mode ? 3_0_0 EXIST::FUNCTION: +EVP_CIPHER_name ? 3_0_0 EXIST::FUNCTION: +EVP_CIPHER_nid ? 3_0_0 EXIST::FUNCTION: +EVP_CIPHER_provider ? 3_0_0 EXIST::FUNCTION: +EVP_CIPHER_type ? 3_0_0 EXIST::FUNCTION: +EVP_KDF_description ? 3_0_0 EXIST::FUNCTION: +EVP_KDF_name ? 3_0_0 EXIST::FUNCTION: +EVP_KDF_provider ? 3_0_0 EXIST::FUNCTION: +EVP_KEM_description ? 3_0_0 EXIST::FUNCTION: +EVP_KEM_name ? 3_0_0 EXIST::FUNCTION: +EVP_KEM_provider ? 3_0_0 EXIST::FUNCTION: +EVP_KEYEXCH_description ? 3_0_0 EXIST::FUNCTION: +EVP_KEYEXCH_name ? 3_0_0 EXIST::FUNCTION: +EVP_KEYEXCH_provider ? 3_0_0 EXIST::FUNCTION: +EVP_KEYMGMT_description ? 3_0_0 EXIST::FUNCTION: +EVP_KEYMGMT_name ? 3_0_0 EXIST::FUNCTION: +EVP_KEYMGMT_provider ? 3_0_0 EXIST::FUNCTION: +EVP_MAC_CTX_mac ? 3_0_0 EXIST::FUNCTION: +EVP_MAC_description ? 3_0_0 EXIST::FUNCTION: +EVP_MAC_name ? 3_0_0 EXIST::FUNCTION: +EVP_MAC_provider ? 3_0_0 EXIST::FUNCTION: +EVP_MD_CTX_md_data ? 3_0_0 EXIST::FUNCTION: +EVP_MD_CTX_pkey_ctx ? 3_0_0 EXIST::FUNCTION: +EVP_MD_block_size ? 3_0_0 EXIST::FUNCTION: +EVP_MD_description ? 3_0_0 EXIST::FUNCTION: +EVP_MD_flags ? 3_0_0 EXIST::FUNCTION: +EVP_MD_name ? 3_0_0 EXIST::FUNCTION: +EVP_MD_pkey_type ? 3_0_0 EXIST::FUNCTION: +EVP_MD_provider ? 3_0_0 EXIST::FUNCTION: +EVP_MD_size ? 3_0_0 EXIST::FUNCTION: +EVP_MD_type ? 3_0_0 EXIST::FUNCTION: +EVP_PKEY_CTX_hkdf_mode ? 3_0_0 EXIST::FUNCTION: +EVP_PKEY_base_id ? 3_0_0 EXIST::FUNCTION: +EVP_PKEY_bits ? 3_0_0 EXIST::FUNCTION: +EVP_PKEY_description ? 3_0_0 EXIST::FUNCTION: +EVP_PKEY_id ? 3_0_0 EXIST::FUNCTION: +EVP_PKEY_security_bits ? 3_0_0 EXIST::FUNCTION: +EVP_PKEY_size ? 3_0_0 EXIST::FUNCTION: +EVP_RAND_CTX_rand ? 3_0_0 EXIST::FUNCTION: +EVP_RAND_description ? 3_0_0 EXIST::FUNCTION: +EVP_RAND_name ? 3_0_0 EXIST::FUNCTION: +EVP_RAND_provider ? 3_0_0 EXIST::FUNCTION: +EVP_RAND_state ? 3_0_0 EXIST::FUNCTION: +EVP_RAND_strength ? 3_0_0 EXIST::FUNCTION: +EVP_SIGNATURE_description ? 3_0_0 EXIST::FUNCTION: +EVP_SIGNATURE_name ? 3_0_0 EXIST::FUNCTION: +EVP_SIGNATURE_provider ? 3_0_0 EXIST::FUNCTION: +OCSP_sendreq_nbio ? 3_0_0 EXIST::FUNCTION: +OSSL_DECODER_description ? 3_0_0 EXIST::FUNCTION: +OSSL_DECODER_provider ? 3_0_0 EXIST::FUNCTION: +OSSL_ENCODER_description ? 3_0_0 EXIST::FUNCTION: +OSSL_ENCODER_properties ? 3_0_0 EXIST::FUNCTION: +OSSL_ENCODER_provider ? 3_0_0 EXIST::FUNCTION: +OSSL_PROVIDER_name ? 3_0_0 EXIST::FUNCTION: +OSSL_STORE_LOADER_description ? 3_0_0 EXIST::FUNCTION: +OSSL_STORE_LOADER_properties ? 3_0_0 EXIST::FUNCTION: +OSSL_STORE_LOADER_provider ? 3_0_0 EXIST::FUNCTION: +OCSP_sendreq_nbio ? 3_0_0 EXIST::FUNCTION: diff -up openssl-3.0.0-beta1/crypto/provider.c.dual-abi openssl-3.0.0-beta1/crypto/provider.c --- openssl-3.0.0-beta1/crypto/provider.c.dual-abi 2021-07-14 00:37:49.301207962 +0200 +++ openssl-3.0.0-beta1/crypto/provider.c 2021-07-14 00:39:34.796200433 +0200 @@ -13,6 +13,21 @@ #include #include "internal/provider.h" +/* Macro machinery. */ + +/* Defines OLD_STRING (a C string) as an alias for NEW_ID (a C + * identifier). The controlling C identifier symbol is ALIAS_ID (a C + * identifier). */ +#define RHEL_ALIAS3(alias_id, new_id, old_string) \ + extern __typeof(new_id) alias_id \ + __asm__ (old_string) \ + __attribute__ ((__copy__ (new_id), __alias__ (#new_id))) + +/* Defines an alias using OLD_ID, which must be an macro identifier + * that expands to the new identifier. */ +#define RHEL_ALIAS1(old_id) \ + RHEL_ALIAS3(RHEL_ALIAS_##old_id, old_id, #old_id) + OSSL_PROVIDER *OSSL_PROVIDER_try_load(OSSL_LIB_CTX *libctx, const char *name, int retain_fallbacks) { diff -up openssl-3.0.0-beta1/util/libcrypto.num.dual-abi openssl-3.0.0-beta1/util/libcrypto.num --- openssl-3.0.0-beta1/util/libcrypto.num.dual-abi 2021-07-14 08:43:00.374838367 +0200 +++ openssl-3.0.0-beta1/util/libcrypto.num 2021-07-14 08:43:20.421006957 +0200 @@ -5486,4 +5486,3 @@ OSSL_PROVIDER_name ? 3_0_0 EXIS OSSL_STORE_LOADER_description ? 3_0_0 EXIST::FUNCTION: OSSL_STORE_LOADER_properties ? 3_0_0 EXIST::FUNCTION: OSSL_STORE_LOADER_provider ? 3_0_0 EXIST::FUNCTION: -OCSP_sendreq_nbio ? 3_0_0 EXIST::FUNCTION: diff -up openssl-3.0.0-beta1/crypto/encode_decode/decoder_meth.c.dual-abi openssl-3.0.0-beta1/crypto/encode_decode/decoder_meth.c --- openssl-3.0.0-beta1/crypto/encode_decode/decoder_meth.c.dual-abi 2021-07-17 22:00:59.773016162 +0200 +++ openssl-3.0.0-beta1/crypto/encode_decode/decoder_meth.c 2021-07-17 22:02:15.768898376 +0200 @@ -38,6 +38,9 @@ #define RHEL_ALIAS1(old_id) \ RHEL_ALIAS3(RHEL_ALIAS_##old_id, old_id, #old_id) +#define OSSL_DECODER_provider OSSL_DECODER_get0_provider +#define OSSL_DECODER_properties OSSL_DECODER_get0_properties +#define OSSL_DECODER_description OSSL_DECODER_get0_description /* Simple method structure constructor and destructor */ static OSSL_DECODER *ossl_decoder_new(void) { diff -up openssl-3.0.0-beta1/crypto/encode_decode/encoder_meth.c.dual-abi openssl-3.0.0-beta1/crypto/encode_decode/encoder_meth.c --- openssl-3.0.0-beta1/crypto/encode_decode/encoder_meth.c.dual-abi 2021-07-17 22:11:45.414684273 +0200 +++ openssl-3.0.0-beta1/crypto/encode_decode/encoder_meth.c 2021-07-17 22:13:31.863953270 +0200 @@ -38,6 +38,10 @@ #define RHEL_ALIAS1(old_id) \ RHEL_ALIAS3(RHEL_ALIAS_##old_id, old_id, #old_id) +#define OSSL_ENCODER_provider OSSL_ENCODER_get0_provider +#define OSSL_ENCODER_properties OSSL_ENCODER_get0_properties +#define OSSL_ENCODER_description OSSL_ENCODER_get0_description + /* Simple method structure constructor and destructor */ static OSSL_ENCODER *ossl_encoder_new(void) { diff -up openssl-3.0.0-beta1/crypto/evp/asymcipher.c.dual-abi openssl-3.0.0-beta1/crypto/evp/asymcipher.c --- openssl-3.0.0-beta1/crypto/evp/asymcipher.c.dual-abi 2021-07-17 22:41:57.601106537 +0200 +++ openssl-3.0.0-beta1/crypto/evp/asymcipher.c 2021-07-17 22:43:21.232142660 +0200 @@ -32,6 +32,10 @@ #define RHEL_ALIAS1(old_id) \ RHEL_ALIAS3(RHEL_ALIAS_##old_id, old_id, #old_id) +#define EVP_ASYM_CIPHER_provider EVP_ASYM_CIPHER_get0_provider +#define EVP_ASYM_CIPHER_name EVP_ASYM_CIPHER_get0_name +#define EVP_ASYM_CIPHER_description EVP_ASYM_CIPHER_get0_description + static int evp_pkey_asym_cipher_init(EVP_PKEY_CTX *ctx, int operation, const OSSL_PARAM params[]) { diff -up openssl-3.0.0-beta1/crypto/evp/evp_lib.c.dual-abi openssl-3.0.0-beta1/crypto/evp/evp_lib.c --- openssl-3.0.0-beta1/crypto/evp/evp_lib.c.dual-abi 2021-07-17 22:24:40.140969959 +0200 +++ openssl-3.0.0-beta1/crypto/evp/evp_lib.c 2021-07-17 22:25:50.977834241 +0200 @@ -43,6 +43,10 @@ #define RHEL_ALIAS1(old_id) \ RHEL_ALIAS3(RHEL_ALIAS_##old_id, old_id, #old_id) +#define EVP_MD_description EVP_MD_get0_description +#define EVP_MD_provider EVP_MD_get0_provider +#define EVP_CIPHER_description EVP_CIPHER_get0_description +#define EVP_CIPHER_provider EVP_CIPHER_get0_provider #if !defined(FIPS_MODULE) diff -up openssl-3.0.0-beta1/crypto/evp/evp_rand.c.dual-abi openssl-3.0.0-beta1/crypto/evp/evp_rand.c --- openssl-3.0.0-beta1/crypto/evp/evp_rand.c.dual-abi 2021-07-17 22:29:25.742454581 +0200 +++ openssl-3.0.0-beta1/crypto/evp/evp_rand.c 2021-07-17 22:33:36.158699400 +0200 @@ -41,6 +41,12 @@ #define RHEL_ALIAS1(old_id) \ RHEL_ALIAS3(RHEL_ALIAS_##old_id, old_id, #old_id) +#define EVP_RAND_name EVP_RAND_get0_name +#define EVP_RAND_description EVP_RAND_get0_description +#define EVP_RAND_provider EVP_RAND_get0_provider +#define EVP_RAND_CTX_rand EVP_RAND_CTX_get0_rand +#define EVP_RAND_strength EVP_RAND_get_strength +#define EVP_RAND_state EVP_RAND_get_state struct evp_rand_st { OSSL_PROVIDER *prov; diff -up openssl-3.0.0-beta1/crypto/evp/kdf_lib.c.dual-abi openssl-3.0.0-beta1/crypto/evp/kdf_lib.c --- openssl-3.0.0-beta1/crypto/evp/kdf_lib.c.dual-abi 2021-07-19 11:05:37.011176112 +0200 +++ openssl-3.0.0-beta1/crypto/evp/kdf_lib.c 2021-07-19 11:07:00.979312903 +0200 @@ -38,6 +38,10 @@ #define RHEL_ALIAS1(old_id) \ RHEL_ALIAS3(RHEL_ALIAS_##old_id, old_id, #old_id) +#define EVP_KDF_description EVP_KDF_get0_description +#define EVP_KDF_name EVP_KDF_get0_name +#define EVP_KDF_provider EVP_KDF_get0_provider + EVP_KDF_CTX *EVP_KDF_CTX_new(EVP_KDF *kdf) { EVP_KDF_CTX *ctx = NULL; diff -up openssl-3.0.0-beta1/crypto/evp/kem.c.dual-abi openssl-3.0.0-beta1/crypto/evp/kem.c --- openssl-3.0.0-beta1/crypto/evp/kem.c.dual-abi 2021-07-17 22:43:48.398479226 +0200 +++ openssl-3.0.0-beta1/crypto/evp/kem.c 2021-07-17 22:57:43.456546917 +0200 @@ -32,6 +32,10 @@ #define RHEL_ALIAS1(old_id) \ RHEL_ALIAS3(RHEL_ALIAS_##old_id, old_id, #old_id) +#define EVP_KEM_provider EVP_KEM_get0_provider +#define EVP_KEM_name EVP_KEM_get0_name +#define EVP_KEM_description EVP_KEM_get0_description + static int evp_kem_init(EVP_PKEY_CTX *ctx, int operation, const OSSL_PARAM params[]) { diff -up openssl-3.0.0-beta1/crypto/evp/keymgmt_meth.c.dual-abi openssl-3.0.0-beta1/crypto/evp/keymgmt_meth.c --- openssl-3.0.0-beta1/crypto/evp/keymgmt_meth.c.dual-abi 2021-07-17 22:37:22.080738360 +0200 +++ openssl-3.0.0-beta1/crypto/evp/keymgmt_meth.c 2021-07-17 22:39:05.847978640 +0200 @@ -32,6 +32,10 @@ #define RHEL_ALIAS1(old_id) \ RHEL_ALIAS3(RHEL_ALIAS_##old_id, old_id, #old_id) +#define EVP_KEYMGMT_provider EVP_KEYMGMT_get0_provider +#define EVP_KEYMGMT_name EVP_KEYMGMT_get0_name +#define EVP_KEYMGMT_description EVP_KEYMGMT_get0_description + static void *keymgmt_new(void) { EVP_KEYMGMT *keymgmt = NULL; diff -up openssl-3.0.0-beta1/crypto/evp/mac_lib.c.dual-abi openssl-3.0.0-beta1/crypto/evp/mac_lib.c --- openssl-3.0.0-beta1/crypto/evp/mac_lib.c.dual-abi 2021-07-17 22:26:15.364131776 +0200 +++ openssl-3.0.0-beta1/crypto/evp/mac_lib.c 2021-07-17 22:29:32.718539694 +0200 @@ -34,6 +34,10 @@ #define RHEL_ALIAS1(old_id) \ RHEL_ALIAS3(RHEL_ALIAS_##old_id, old_id, #old_id) +#define EVP_MAC_name EVP_MAC_get0_name +#define EVP_MAC_description EVP_MAC_get0_description +# define EVP_MAC_CTX_mac EVP_MAC_CTX_get0_mac + EVP_MAC_CTX *EVP_MAC_CTX_new(EVP_MAC *mac) { EVP_MAC_CTX *ctx = OPENSSL_zalloc(sizeof(EVP_MAC_CTX)); diff -up openssl-3.0.0-beta1/crypto/evp/mac_meth.c.dual-abi openssl-3.0.0-beta1/crypto/evp/mac_meth.c --- openssl-3.0.0-beta1/crypto/evp/mac_meth.c.dual-abi 2021-07-17 22:27:04.406730147 +0200 +++ openssl-3.0.0-beta1/crypto/evp/mac_meth.c 2021-07-17 22:30:30.482255830 +0200 @@ -22,6 +22,8 @@ #define RHEL_ALIAS1(old_id) \ RHEL_ALIAS3(RHEL_ALIAS_##old_id, old_id, #old_id) +# define EVP_MAC_provider EVP_MAC_get0_provider + static int evp_mac_up_ref(void *vmac) { EVP_MAC *mac = vmac; diff -up openssl-3.0.0-beta1/crypto/evp/signature.c.dual-abi openssl-3.0.0-beta1/crypto/evp/signature.c --- openssl-3.0.0-beta1/crypto/evp/signature.c.dual-abi 2021-07-17 22:40:02.942686000 +0200 +++ openssl-3.0.0-beta1/crypto/evp/signature.c 2021-07-17 22:41:27.180729654 +0200 @@ -33,6 +33,10 @@ #define RHEL_ALIAS1(old_id) \ RHEL_ALIAS3(RHEL_ALIAS_##old_id, old_id, #old_id) +#define EVP_SIGNATURE_provider EVP_SIGNATURE_get0_provider +#define EVP_SIGNATURE_name EVP_SIGNATURE_get0_name +#define EVP_SIGNATURE_description EVP_SIGNATURE_get0_description + static EVP_SIGNATURE *evp_signature_new(OSSL_PROVIDER *prov) { EVP_SIGNATURE *signature = OPENSSL_zalloc(sizeof(EVP_SIGNATURE)); diff -up openssl-3.0.0-beta1/crypto/provider.c.dual-abi openssl-3.0.0-beta1/crypto/provider.c --- openssl-3.0.0-beta1/crypto/provider.c.dual-abi 2021-07-19 11:07:31.301723423 +0200 +++ openssl-3.0.0-beta1/crypto/provider.c 2021-07-19 11:08:09.354238585 +0200 @@ -28,6 +28,8 @@ #define RHEL_ALIAS1(old_id) \ RHEL_ALIAS3(RHEL_ALIAS_##old_id, old_id, #old_id) +#define OSSL_PROVIDER_name OSSL_PROVIDER_get0_name + OSSL_PROVIDER *OSSL_PROVIDER_try_load(OSSL_LIB_CTX *libctx, const char *name, int retain_fallbacks) { diff -up openssl-3.0.0-beta1/crypto/store/store_meth.c.dual-abi openssl-3.0.0-beta1/crypto/store/store_meth.c --- openssl-3.0.0-beta1/crypto/store/store_meth.c.dual-abi 2021-07-19 11:09:38.398444097 +0200 +++ openssl-3.0.0-beta1/crypto/store/store_meth.c 2021-07-19 12:35:14.153417504 +0200 @@ -30,6 +30,10 @@ #define RHEL_ALIAS1(old_id) \ RHEL_ALIAS3(RHEL_ALIAS_##old_id, old_id, #old_id) +#define OSSL_STORE_LOADER_provider OSSL_STORE_LOADER_get0_provider +#define OSSL_STORE_LOADER_properties OSSL_STORE_LOADER_get0_properties +#define OSSL_STORE_LOADER_description OSSL_STORE_LOADER_get0_description + int OSSL_STORE_LOADER_up_ref(OSSL_STORE_LOADER *loader) { int ref = 0; diff -up openssl-3.0.0-beta1/crypto/evp/exchange.c.dual-abi openssl-3.0.0-beta1/crypto/evp/exchange.c --- openssl-3.0.0-beta1/crypto/evp/exchange.c.dual-abi 2021-07-19 12:53:41.708859841 +0200 +++ openssl-3.0.0-beta1/crypto/evp/exchange.c 2021-07-19 12:54:27.782435636 +0200 @@ -32,6 +32,10 @@ #define RHEL_ALIAS1(old_id) \ RHEL_ALIAS3(RHEL_ALIAS_##old_id, old_id, #old_id) +#define EVP_KEYEXCH_provider EVP_KEYEXCH_get0_provider +#define EVP_KEYEXCH_name EVP_KEYEXCH_get0_name +#define EVP_KEYEXCH_description EVP_KEYEXCH_get0_description + static EVP_KEYEXCH *evp_keyexch_new(OSSL_PROVIDER *prov) { EVP_KEYEXCH *exchange = OPENSSL_zalloc(sizeof(EVP_KEYEXCH)); diff -up openssl-3.0.0-beta1/crypto/evp/p_lib.c.dual-abi openssl-3.0.0-beta1/crypto/evp/p_lib.c --- openssl-3.0.0-beta1/crypto/evp/p_lib.c.dual-abi 2021-07-19 13:07:31.799790073 +0200 +++ openssl-3.0.0-beta1/crypto/evp/p_lib.c 2021-07-19 13:08:23.334480304 +0200 @@ -64,6 +64,8 @@ #define RHEL_ALIAS1(old_id) \ RHEL_ALIAS3(RHEL_ALIAS_##old_id, old_id, #old_id) +#define EVP_PKEY_description EVP_PKEY_get0_description + static int pkey_set_type(EVP_PKEY *pkey, ENGINE *e, int type, const char *str, int len, EVP_KEYMGMT *keymgmt); static void evp_pkey_free_it(EVP_PKEY *key);