summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorbeck <>2024-04-09 13:52:42 +0000
committerbeck <>2024-04-09 13:52:42 +0000
commitb8c1a99fdb41738feb7a1352029c5f5aa42fed86 (patch)
treeb9ee99887d6be79187ba476e0f6ac92f0820775f
parent94d86681cdef7dae37d5ce494a200523ce63b70c (diff)
downloadopenbsd-b8c1a99fdb41738feb7a1352029c5f5aa42fed86.tar.gz
openbsd-b8c1a99fdb41738feb7a1352029c5f5aa42fed86.tar.bz2
openbsd-b8c1a99fdb41738feb7a1352029c5f5aa42fed86.zip
Hide public symbols in evp.h
largely mechanically done by the guentherizer 9000 ok tb@
-rw-r--r--src/lib/libcrypto/Symbols.namespace349
-rw-r--r--src/lib/libcrypto/asn1/a_pkey.c5
-rw-r--r--src/lib/libcrypto/asn1/a_pubkey.c4
-rw-r--r--src/lib/libcrypto/crypto_init.c6
-rw-r--r--src/lib/libcrypto/evp/bio_b64.c3
-rw-r--r--src/lib/libcrypto/evp/bio_enc.c4
-rw-r--r--src/lib/libcrypto/evp/bio_md.c3
-rw-r--r--src/lib/libcrypto/evp/e_aes.c36
-rw-r--r--src/lib/libcrypto/evp/e_bf.c6
-rw-r--r--src/lib/libcrypto/evp/e_camellia.c20
-rw-r--r--src/lib/libcrypto/evp/e_cast.c6
-rw-r--r--src/lib/libcrypto/evp/e_chacha.c3
-rw-r--r--src/lib/libcrypto/evp/e_chacha20poly1305.c5
-rw-r--r--src/lib/libcrypto/evp/e_des.c8
-rw-r--r--src/lib/libcrypto/evp/e_des3.c14
-rw-r--r--src/lib/libcrypto/evp/e_idea.c6
-rw-r--r--src/lib/libcrypto/evp/e_null.c3
-rw-r--r--src/lib/libcrypto/evp/e_rc2.c8
-rw-r--r--src/lib/libcrypto/evp/e_rc4.c4
-rw-r--r--src/lib/libcrypto/evp/e_sm4.c7
-rw-r--r--src/lib/libcrypto/evp/e_xcbc_d.c3
-rw-r--r--src/lib/libcrypto/evp/evp_aead.c12
-rw-r--r--src/lib/libcrypto/evp/evp_cipher.c59
-rw-r--r--src/lib/libcrypto/evp/evp_digest.c29
-rw-r--r--src/lib/libcrypto/evp/evp_encode.c12
-rw-r--r--src/lib/libcrypto/evp/evp_err.c3
-rw-r--r--src/lib/libcrypto/evp/evp_key.c7
-rw-r--r--src/lib/libcrypto/evp/evp_names.c9
-rw-r--r--src/lib/libcrypto/evp/evp_pbe.c4
-rw-r--r--src/lib/libcrypto/evp/m_md4.c3
-rw-r--r--src/lib/libcrypto/evp/m_md5.c3
-rw-r--r--src/lib/libcrypto/evp/m_md5_sha1.c3
-rw-r--r--src/lib/libcrypto/evp/m_null.c3
-rw-r--r--src/lib/libcrypto/evp/m_ripemd.c3
-rw-r--r--src/lib/libcrypto/evp/m_sha1.c9
-rw-r--r--src/lib/libcrypto/evp/m_sha3.c6
-rw-r--r--src/lib/libcrypto/evp/m_sigver.c8
-rw-r--r--src/lib/libcrypto/evp/m_sm3.c3
-rw-r--r--src/lib/libcrypto/evp/m_wp.c3
-rw-r--r--src/lib/libcrypto/evp/p_legacy.c8
-rw-r--r--src/lib/libcrypto/evp/p_lib.c48
-rw-r--r--src/lib/libcrypto/evp/p_sign.c3
-rw-r--r--src/lib/libcrypto/evp/p_verify.c3
-rw-r--r--src/lib/libcrypto/evp/pmeth_fn.c15
-rw-r--r--src/lib/libcrypto/evp/pmeth_gn.c13
-rw-r--r--src/lib/libcrypto/evp/pmeth_lib.c16
-rw-r--r--src/lib/libcrypto/hidden/openssl/evp.h378
47 files changed, 1121 insertions, 45 deletions
diff --git a/src/lib/libcrypto/Symbols.namespace b/src/lib/libcrypto/Symbols.namespace
index ae248759a6..e17e38e6f5 100644
--- a/src/lib/libcrypto/Symbols.namespace
+++ b/src/lib/libcrypto/Symbols.namespace
@@ -2560,3 +2560,352 @@ _libre_AES_ctr128_encrypt
2560_libre_AES_ige_encrypt 2560_libre_AES_ige_encrypt
2561_libre_AES_wrap_key 2561_libre_AES_wrap_key
2562_libre_AES_unwrap_key 2562_libre_AES_unwrap_key
2563_libre_EVP_MD_type
2564_libre_EVP_MD_pkey_type
2565_libre_EVP_MD_size
2566_libre_EVP_MD_block_size
2567_libre_EVP_MD_flags
2568_libre_EVP_MD_CTX_md
2569_libre_EVP_MD_CTX_md_data
2570_libre_EVP_MD_CTX_pkey_ctx
2571_libre_EVP_MD_CTX_set_pkey_ctx
2572_libre_EVP_CIPHER_nid
2573_libre_EVP_CIPHER_block_size
2574_libre_EVP_CIPHER_key_length
2575_libre_EVP_CIPHER_iv_length
2576_libre_EVP_CIPHER_flags
2577_libre_EVP_CIPHER_CTX_cipher
2578_libre_EVP_CIPHER_CTX_encrypting
2579_libre_EVP_CIPHER_CTX_nid
2580_libre_EVP_CIPHER_CTX_block_size
2581_libre_EVP_CIPHER_CTX_key_length
2582_libre_EVP_CIPHER_CTX_iv_length
2583_libre_EVP_CIPHER_CTX_get_iv
2584_libre_EVP_CIPHER_CTX_set_iv
2585_libre_EVP_CIPHER_CTX_copy
2586_libre_EVP_CIPHER_CTX_get_app_data
2587_libre_EVP_CIPHER_CTX_set_app_data
2588_libre_EVP_CIPHER_CTX_get_cipher_data
2589_libre_EVP_CIPHER_CTX_set_cipher_data
2590_libre_EVP_CIPHER_CTX_buf_noconst
2591_libre_EVP_CIPHER_CTX_flags
2592_libre_EVP_CIPHER_meth_new
2593_libre_EVP_CIPHER_meth_dup
2594_libre_EVP_CIPHER_meth_free
2595_libre_EVP_CIPHER_meth_set_iv_length
2596_libre_EVP_CIPHER_meth_set_flags
2597_libre_EVP_CIPHER_meth_set_impl_ctx_size
2598_libre_EVP_CIPHER_meth_set_init
2599_libre_EVP_CIPHER_meth_set_do_cipher
2600_libre_EVP_CIPHER_meth_set_cleanup
2601_libre_EVP_CIPHER_meth_set_set_asn1_params
2602_libre_EVP_CIPHER_meth_set_get_asn1_params
2603_libre_EVP_CIPHER_meth_set_ctrl
2604_libre_EVP_PKEY_new_raw_private_key
2605_libre_EVP_PKEY_new_raw_public_key
2606_libre_EVP_PKEY_get_raw_private_key
2607_libre_EVP_PKEY_get_raw_public_key
2608_libre_EVP_Cipher
2609_libre_EVP_MD_CTX_new
2610_libre_EVP_MD_CTX_free
2611_libre_EVP_MD_CTX_reset
2612_libre_EVP_MD_CTX_create
2613_libre_EVP_MD_CTX_destroy
2614_libre_EVP_MD_CTX_cleanup
2615_libre_EVP_MD_CTX_copy_ex
2616_libre_EVP_MD_CTX_set_flags
2617_libre_EVP_MD_CTX_clear_flags
2618_libre_EVP_MD_CTX_ctrl
2619_libre_EVP_MD_CTX_test_flags
2620_libre_EVP_DigestInit_ex
2621_libre_EVP_DigestUpdate
2622_libre_EVP_DigestFinal_ex
2623_libre_EVP_Digest
2624_libre_EVP_MD_CTX_copy
2625_libre_EVP_DigestInit
2626_libre_EVP_DigestFinal
2627_libre_EVP_read_pw_string
2628_libre_EVP_read_pw_string_min
2629_libre_EVP_set_pw_prompt
2630_libre_EVP_get_pw_prompt
2631_libre_EVP_BytesToKey
2632_libre_EVP_CIPHER_CTX_set_flags
2633_libre_EVP_CIPHER_CTX_clear_flags
2634_libre_EVP_CIPHER_CTX_test_flags
2635_libre_EVP_EncryptInit
2636_libre_EVP_EncryptInit_ex
2637_libre_EVP_EncryptUpdate
2638_libre_EVP_EncryptFinal_ex
2639_libre_EVP_DecryptInit
2640_libre_EVP_DecryptInit_ex
2641_libre_EVP_DecryptUpdate
2642_libre_EVP_DecryptFinal_ex
2643_libre_EVP_CipherInit
2644_libre_EVP_CipherInit_ex
2645_libre_EVP_CipherUpdate
2646_libre_EVP_CipherFinal_ex
2647_libre_EVP_SignFinal
2648_libre_EVP_VerifyFinal
2649_libre_EVP_DigestSignInit
2650_libre_EVP_DigestSignFinal
2651_libre_EVP_DigestSign
2652_libre_EVP_DigestVerifyInit
2653_libre_EVP_DigestVerifyFinal
2654_libre_EVP_DigestVerify
2655_libre_EVP_OpenInit
2656_libre_EVP_OpenFinal
2657_libre_EVP_SealInit
2658_libre_EVP_SealFinal
2659_libre_EVP_ENCODE_CTX_new
2660_libre_EVP_ENCODE_CTX_free
2661_libre_EVP_EncodeInit
2662_libre_EVP_EncodeUpdate
2663_libre_EVP_EncodeFinal
2664_libre_EVP_EncodeBlock
2665_libre_EVP_DecodeInit
2666_libre_EVP_DecodeUpdate
2667_libre_EVP_DecodeFinal
2668_libre_EVP_DecodeBlock
2669_libre_EVP_CIPHER_CTX_cleanup
2670_libre_EVP_CIPHER_CTX_new
2671_libre_EVP_CIPHER_CTX_free
2672_libre_EVP_CIPHER_CTX_reset
2673_libre_EVP_CIPHER_CTX_set_key_length
2674_libre_EVP_CIPHER_CTX_set_padding
2675_libre_EVP_CIPHER_CTX_ctrl
2676_libre_EVP_CIPHER_CTX_rand_key
2677_libre_BIO_f_md
2678_libre_BIO_f_base64
2679_libre_BIO_f_cipher
2680_libre_BIO_set_cipher
2681_libre_EVP_md_null
2682_libre_EVP_md4
2683_libre_EVP_md5
2684_libre_EVP_md5_sha1
2685_libre_EVP_sha1
2686_libre_EVP_sha224
2687_libre_EVP_sha256
2688_libre_EVP_sha384
2689_libre_EVP_sha512
2690_libre_EVP_sha512_224
2691_libre_EVP_sha512_256
2692_libre_EVP_sha3_224
2693_libre_EVP_sha3_256
2694_libre_EVP_sha3_384
2695_libre_EVP_sha3_512
2696_libre_EVP_sm3
2697_libre_EVP_ripemd160
2698_libre_EVP_whirlpool
2699_libre_EVP_enc_null
2700_libre_EVP_des_ecb
2701_libre_EVP_des_ede
2702_libre_EVP_des_ede3
2703_libre_EVP_des_ede_ecb
2704_libre_EVP_des_ede3_ecb
2705_libre_EVP_des_cfb64
2706_libre_EVP_des_cfb1
2707_libre_EVP_des_cfb8
2708_libre_EVP_des_ede_cfb64
2709_libre_EVP_des_ede3_cfb64
2710_libre_EVP_des_ede3_cfb1
2711_libre_EVP_des_ede3_cfb8
2712_libre_EVP_des_ofb
2713_libre_EVP_des_ede_ofb
2714_libre_EVP_des_ede3_ofb
2715_libre_EVP_des_cbc
2716_libre_EVP_des_ede_cbc
2717_libre_EVP_des_ede3_cbc
2718_libre_EVP_desx_cbc
2719_libre_EVP_rc4
2720_libre_EVP_rc4_40
2721_libre_EVP_idea_ecb
2722_libre_EVP_idea_cfb64
2723_libre_EVP_idea_ofb
2724_libre_EVP_idea_cbc
2725_libre_EVP_rc2_ecb
2726_libre_EVP_rc2_cbc
2727_libre_EVP_rc2_40_cbc
2728_libre_EVP_rc2_64_cbc
2729_libre_EVP_rc2_cfb64
2730_libre_EVP_rc2_ofb
2731_libre_EVP_bf_ecb
2732_libre_EVP_bf_cbc
2733_libre_EVP_bf_cfb64
2734_libre_EVP_bf_ofb
2735_libre_EVP_cast5_ecb
2736_libre_EVP_cast5_cbc
2737_libre_EVP_cast5_cfb64
2738_libre_EVP_cast5_ofb
2739_libre_EVP_aes_128_ecb
2740_libre_EVP_aes_128_cbc
2741_libre_EVP_aes_128_cfb1
2742_libre_EVP_aes_128_cfb8
2743_libre_EVP_aes_128_cfb128
2744_libre_EVP_aes_128_ofb
2745_libre_EVP_aes_128_ctr
2746_libre_EVP_aes_128_ccm
2747_libre_EVP_aes_128_gcm
2748_libre_EVP_aes_128_wrap
2749_libre_EVP_aes_128_xts
2750_libre_EVP_aes_192_ecb
2751_libre_EVP_aes_192_cbc
2752_libre_EVP_aes_192_cfb1
2753_libre_EVP_aes_192_cfb8
2754_libre_EVP_aes_192_cfb128
2755_libre_EVP_aes_192_ofb
2756_libre_EVP_aes_192_ctr
2757_libre_EVP_aes_192_ccm
2758_libre_EVP_aes_192_gcm
2759_libre_EVP_aes_192_wrap
2760_libre_EVP_aes_256_ecb
2761_libre_EVP_aes_256_cbc
2762_libre_EVP_aes_256_cfb1
2763_libre_EVP_aes_256_cfb8
2764_libre_EVP_aes_256_cfb128
2765_libre_EVP_aes_256_ofb
2766_libre_EVP_aes_256_ctr
2767_libre_EVP_aes_256_ccm
2768_libre_EVP_aes_256_gcm
2769_libre_EVP_aes_256_wrap
2770_libre_EVP_aes_256_xts
2771_libre_EVP_chacha20_poly1305
2772_libre_EVP_camellia_128_ecb
2773_libre_EVP_camellia_128_cbc
2774_libre_EVP_camellia_128_cfb1
2775_libre_EVP_camellia_128_cfb8
2776_libre_EVP_camellia_128_cfb128
2777_libre_EVP_camellia_128_ofb
2778_libre_EVP_camellia_192_ecb
2779_libre_EVP_camellia_192_cbc
2780_libre_EVP_camellia_192_cfb1
2781_libre_EVP_camellia_192_cfb8
2782_libre_EVP_camellia_192_cfb128
2783_libre_EVP_camellia_192_ofb
2784_libre_EVP_camellia_256_ecb
2785_libre_EVP_camellia_256_cbc
2786_libre_EVP_camellia_256_cfb1
2787_libre_EVP_camellia_256_cfb8
2788_libre_EVP_camellia_256_cfb128
2789_libre_EVP_camellia_256_ofb
2790_libre_EVP_chacha20
2791_libre_EVP_sm4_ecb
2792_libre_EVP_sm4_cbc
2793_libre_EVP_sm4_cfb128
2794_libre_EVP_sm4_ofb
2795_libre_EVP_sm4_ctr
2796_libre_OPENSSL_add_all_algorithms_noconf
2797_libre_OPENSSL_add_all_algorithms_conf
2798_libre_OpenSSL_add_all_ciphers
2799_libre_OpenSSL_add_all_digests
2800_libre_EVP_get_cipherbyname
2801_libre_EVP_get_digestbyname
2802_libre_EVP_cleanup
2803_libre_EVP_CIPHER_do_all
2804_libre_EVP_CIPHER_do_all_sorted
2805_libre_EVP_MD_do_all
2806_libre_EVP_MD_do_all_sorted
2807_libre_EVP_PKEY_decrypt_old
2808_libre_EVP_PKEY_encrypt_old
2809_libre_EVP_PKEY_type
2810_libre_EVP_PKEY_id
2811_libre_EVP_PKEY_base_id
2812_libre_EVP_PKEY_bits
2813_libre_EVP_PKEY_security_bits
2814_libre_EVP_PKEY_size
2815_libre_EVP_PKEY_set_type
2816_libre_EVP_PKEY_set_type_str
2817_libre_EVP_PKEY_assign
2818_libre_EVP_PKEY_get0
2819_libre_EVP_PKEY_get0_hmac
2820_libre_EVP_PKEY_get0_RSA
2821_libre_EVP_PKEY_get1_RSA
2822_libre_EVP_PKEY_set1_RSA
2823_libre_EVP_PKEY_get0_DSA
2824_libre_EVP_PKEY_get1_DSA
2825_libre_EVP_PKEY_set1_DSA
2826_libre_EVP_PKEY_get0_DH
2827_libre_EVP_PKEY_get1_DH
2828_libre_EVP_PKEY_set1_DH
2829_libre_EVP_PKEY_get0_EC_KEY
2830_libre_EVP_PKEY_get1_EC_KEY
2831_libre_EVP_PKEY_set1_EC_KEY
2832_libre_EVP_PKEY_new
2833_libre_EVP_PKEY_free
2834_libre_EVP_PKEY_up_ref
2835_libre_d2i_PublicKey
2836_libre_i2d_PublicKey
2837_libre_d2i_PrivateKey
2838_libre_d2i_AutoPrivateKey
2839_libre_i2d_PrivateKey
2840_libre_EVP_PKEY_copy_parameters
2841_libre_EVP_PKEY_missing_parameters
2842_libre_EVP_PKEY_save_parameters
2843_libre_EVP_PKEY_cmp_parameters
2844_libre_EVP_PKEY_cmp
2845_libre_EVP_PKEY_print_public
2846_libre_EVP_PKEY_print_private
2847_libre_EVP_PKEY_print_params
2848_libre_EVP_PKEY_get_default_digest_nid
2849_libre_EVP_CIPHER_type
2850_libre_PKCS5_PBKDF2_HMAC_SHA1
2851_libre_PKCS5_PBKDF2_HMAC
2852_libre_EVP_PKEY_asn1_get_count
2853_libre_EVP_PKEY_asn1_get0
2854_libre_EVP_PKEY_asn1_find
2855_libre_EVP_PKEY_asn1_find_str
2856_libre_EVP_PKEY_asn1_get0_info
2857_libre_EVP_PKEY_get0_asn1
2858_libre_EVP_PKEY_CTX_new
2859_libre_EVP_PKEY_CTX_new_id
2860_libre_EVP_PKEY_CTX_dup
2861_libre_EVP_PKEY_CTX_free
2862_libre_EVP_PKEY_CTX_ctrl
2863_libre_EVP_PKEY_CTX_ctrl_str
2864_libre_EVP_PKEY_CTX_get_operation
2865_libre_EVP_PKEY_CTX_set0_keygen_info
2866_libre_EVP_PKEY_new_mac_key
2867_libre_EVP_PKEY_new_CMAC_key
2868_libre_EVP_PKEY_CTX_set_data
2869_libre_EVP_PKEY_CTX_get_data
2870_libre_EVP_PKEY_CTX_get0_pkey
2871_libre_EVP_PKEY_CTX_get0_peerkey
2872_libre_EVP_PKEY_CTX_set_app_data
2873_libre_EVP_PKEY_CTX_get_app_data
2874_libre_EVP_PKEY_sign_init
2875_libre_EVP_PKEY_sign
2876_libre_EVP_PKEY_verify_init
2877_libre_EVP_PKEY_verify
2878_libre_EVP_PKEY_verify_recover_init
2879_libre_EVP_PKEY_verify_recover
2880_libre_EVP_PKEY_encrypt_init
2881_libre_EVP_PKEY_encrypt
2882_libre_EVP_PKEY_decrypt_init
2883_libre_EVP_PKEY_decrypt
2884_libre_EVP_PKEY_derive_init
2885_libre_EVP_PKEY_derive_set_peer
2886_libre_EVP_PKEY_derive
2887_libre_EVP_PKEY_paramgen_init
2888_libre_EVP_PKEY_paramgen
2889_libre_EVP_PKEY_keygen_init
2890_libre_EVP_PKEY_keygen
2891_libre_EVP_PKEY_check
2892_libre_EVP_PKEY_public_check
2893_libre_EVP_PKEY_param_check
2894_libre_EVP_PKEY_CTX_set_cb
2895_libre_EVP_PKEY_CTX_get_cb
2896_libre_EVP_PKEY_CTX_get_keygen_info
2897_libre_EVP_aead_aes_128_gcm
2898_libre_EVP_aead_aes_256_gcm
2899_libre_EVP_aead_chacha20_poly1305
2900_libre_EVP_aead_xchacha20_poly1305
2901_libre_EVP_AEAD_key_length
2902_libre_EVP_AEAD_nonce_length
2903_libre_EVP_AEAD_max_overhead
2904_libre_EVP_AEAD_max_tag_len
2905_libre_EVP_AEAD_CTX_new
2906_libre_EVP_AEAD_CTX_free
2907_libre_EVP_AEAD_CTX_init
2908_libre_EVP_AEAD_CTX_cleanup
2909_libre_EVP_AEAD_CTX_seal
2910_libre_EVP_AEAD_CTX_open
2911_libre_ERR_load_EVP_strings
diff --git a/src/lib/libcrypto/asn1/a_pkey.c b/src/lib/libcrypto/asn1/a_pkey.c
index 1e8ebc913f..a730728076 100644
--- a/src/lib/libcrypto/asn1/a_pkey.c
+++ b/src/lib/libcrypto/asn1/a_pkey.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: a_pkey.c,v 1.7 2023/11/19 15:46:09 tb Exp $ */ 1/* $OpenBSD: a_pkey.c,v 1.8 2024/04/09 13:52:41 beck Exp $ */
2/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) 2/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
3 * All rights reserved. 3 * All rights reserved.
4 * 4 *
@@ -115,6 +115,7 @@ d2i_PrivateKey(int type, EVP_PKEY **a, const unsigned char **pp, long length)
115 EVP_PKEY_free(ret); 115 EVP_PKEY_free(ret);
116 return (NULL); 116 return (NULL);
117} 117}
118LCRYPTO_ALIAS(d2i_PrivateKey);
118 119
119int 120int
120i2d_PrivateKey(EVP_PKEY *a, unsigned char **pp) 121i2d_PrivateKey(EVP_PKEY *a, unsigned char **pp)
@@ -131,6 +132,7 @@ i2d_PrivateKey(EVP_PKEY *a, unsigned char **pp)
131 ASN1error(ASN1_R_UNSUPPORTED_PUBLIC_KEY_TYPE); 132 ASN1error(ASN1_R_UNSUPPORTED_PUBLIC_KEY_TYPE);
132 return (-1); 133 return (-1);
133} 134}
135LCRYPTO_ALIAS(i2d_PrivateKey);
134 136
135/* This works like d2i_PrivateKey() except it automatically works out the type */ 137/* This works like d2i_PrivateKey() except it automatically works out the type */
136 138
@@ -176,3 +178,4 @@ d2i_AutoPrivateKey(EVP_PKEY **a, const unsigned char **pp, long length)
176 sk_ASN1_TYPE_pop_free(inkey, ASN1_TYPE_free); 178 sk_ASN1_TYPE_pop_free(inkey, ASN1_TYPE_free);
177 return d2i_PrivateKey(keytype, a, pp, length); 179 return d2i_PrivateKey(keytype, a, pp, length);
178} 180}
181LCRYPTO_ALIAS(d2i_AutoPrivateKey);
diff --git a/src/lib/libcrypto/asn1/a_pubkey.c b/src/lib/libcrypto/asn1/a_pubkey.c
index 5e022d34ec..544f3d2cf0 100644
--- a/src/lib/libcrypto/asn1/a_pubkey.c
+++ b/src/lib/libcrypto/asn1/a_pubkey.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: a_pubkey.c,v 1.6 2023/07/07 19:37:52 beck Exp $ */ 1/* $OpenBSD: a_pubkey.c,v 1.7 2024/04/09 13:52:41 beck Exp $ */
2/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) 2/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
3 * All rights reserved. 3 * All rights reserved.
4 * 4 *
@@ -136,6 +136,7 @@ d2i_PublicKey(int type, EVP_PKEY **a, const unsigned char **pp, long length)
136 EVP_PKEY_free(ret); 136 EVP_PKEY_free(ret);
137 return (NULL); 137 return (NULL);
138} 138}
139LCRYPTO_ALIAS(d2i_PublicKey);
139 140
140int 141int
141i2d_PublicKey(EVP_PKEY *a, unsigned char **pp) 142i2d_PublicKey(EVP_PKEY *a, unsigned char **pp)
@@ -158,3 +159,4 @@ i2d_PublicKey(EVP_PKEY *a, unsigned char **pp)
158 return (-1); 159 return (-1);
159 } 160 }
160} 161}
162LCRYPTO_ALIAS(i2d_PublicKey);
diff --git a/src/lib/libcrypto/crypto_init.c b/src/lib/libcrypto/crypto_init.c
index ddd3ec19bc..4521036639 100644
--- a/src/lib/libcrypto/crypto_init.c
+++ b/src/lib/libcrypto/crypto_init.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: crypto_init.c,v 1.19 2024/03/19 19:27:33 tb Exp $ */ 1/* $OpenBSD: crypto_init.c,v 1.20 2024/04/09 13:52:41 beck Exp $ */
2/* 2/*
3 * Copyright (c) 2018 Bob Beck <beck@openbsd.org> 3 * Copyright (c) 2018 Bob Beck <beck@openbsd.org>
4 * 4 *
@@ -98,19 +98,23 @@ void
98OpenSSL_add_all_ciphers(void) 98OpenSSL_add_all_ciphers(void)
99{ 99{
100} 100}
101LCRYPTO_ALIAS(OpenSSL_add_all_ciphers);
101 102
102void 103void
103OpenSSL_add_all_digests(void) 104OpenSSL_add_all_digests(void)
104{ 105{
105} 106}
107LCRYPTO_ALIAS(OpenSSL_add_all_digests);
106 108
107void 109void
108OPENSSL_add_all_algorithms_noconf(void) 110OPENSSL_add_all_algorithms_noconf(void)
109{ 111{
110} 112}
113LCRYPTO_ALIAS(OPENSSL_add_all_algorithms_noconf);
111 114
112void 115void
113OPENSSL_add_all_algorithms_conf(void) 116OPENSSL_add_all_algorithms_conf(void)
114{ 117{
115 OPENSSL_config(NULL); 118 OPENSSL_config(NULL);
116} 119}
120LCRYPTO_ALIAS(OPENSSL_add_all_algorithms_conf);
diff --git a/src/lib/libcrypto/evp/bio_b64.c b/src/lib/libcrypto/evp/bio_b64.c
index 3c47628f54..32cd1f06df 100644
--- a/src/lib/libcrypto/evp/bio_b64.c
+++ b/src/lib/libcrypto/evp/bio_b64.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: bio_b64.c,v 1.28 2023/07/07 19:37:53 beck Exp $ */ 1/* $OpenBSD: bio_b64.c,v 1.29 2024/04/09 13:52:41 beck Exp $ */
2/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) 2/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
3 * All rights reserved. 3 * All rights reserved.
4 * 4 *
@@ -111,6 +111,7 @@ BIO_f_base64(void)
111{ 111{
112 return (&methods_b64); 112 return (&methods_b64);
113} 113}
114LCRYPTO_ALIAS(BIO_f_base64);
114 115
115static int 116static int
116b64_new(BIO *bi) 117b64_new(BIO *bi)
diff --git a/src/lib/libcrypto/evp/bio_enc.c b/src/lib/libcrypto/evp/bio_enc.c
index f9a95f53ec..62712830a8 100644
--- a/src/lib/libcrypto/evp/bio_enc.c
+++ b/src/lib/libcrypto/evp/bio_enc.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: bio_enc.c,v 1.31 2024/03/25 04:05:22 joshua Exp $ */ 1/* $OpenBSD: bio_enc.c,v 1.32 2024/04/09 13:52:41 beck Exp $ */
2/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) 2/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
3 * All rights reserved. 3 * All rights reserved.
4 * 4 *
@@ -107,6 +107,7 @@ BIO_f_cipher(void)
107{ 107{
108 return (&methods_enc); 108 return (&methods_enc);
109} 109}
110LCRYPTO_ALIAS(BIO_f_cipher);
110 111
111static void 112static void
112bio_enc_ctx_free(BIO_ENC_CTX *ctx) 113bio_enc_ctx_free(BIO_ENC_CTX *ctx)
@@ -426,3 +427,4 @@ BIO_set_cipher(BIO *b, const EVP_CIPHER *c, const unsigned char *k,
426 427
427 return 1; 428 return 1;
428} 429}
430LCRYPTO_ALIAS(BIO_set_cipher);
diff --git a/src/lib/libcrypto/evp/bio_md.c b/src/lib/libcrypto/evp/bio_md.c
index ccfcd1ea1d..420192d23c 100644
--- a/src/lib/libcrypto/evp/bio_md.c
+++ b/src/lib/libcrypto/evp/bio_md.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: bio_md.c,v 1.21 2023/07/07 19:37:53 beck Exp $ */ 1/* $OpenBSD: bio_md.c,v 1.22 2024/04/09 13:52:41 beck Exp $ */
2/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) 2/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
3 * All rights reserved. 3 * All rights reserved.
4 * 4 *
@@ -94,6 +94,7 @@ BIO_f_md(void)
94{ 94{
95 return (&methods_md); 95 return (&methods_md);
96} 96}
97LCRYPTO_ALIAS(BIO_f_md);
97 98
98static int 99static int
99md_new(BIO *bi) 100md_new(BIO *bi)
diff --git a/src/lib/libcrypto/evp/e_aes.c b/src/lib/libcrypto/evp/e_aes.c
index 1102b21c15..6135c7d84a 100644
--- a/src/lib/libcrypto/evp/e_aes.c
+++ b/src/lib/libcrypto/evp/e_aes.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: e_aes.c,v 1.57 2024/04/09 13:48:51 beck Exp $ */ 1/* $OpenBSD: e_aes.c,v 1.58 2024/04/09 13:52:41 beck Exp $ */
2/* ==================================================================== 2/* ====================================================================
3 * Copyright (c) 2001-2011 The OpenSSL Project. All rights reserved. 3 * Copyright (c) 2001-2011 The OpenSSL Project. All rights reserved.
4 * 4 *
@@ -572,6 +572,7 @@ EVP_aes_128_cbc(void)
572 return &aes_128_cbc; 572 return &aes_128_cbc;
573#endif 573#endif
574} 574}
575LCRYPTO_ALIAS(EVP_aes_128_cbc);
575 576
576#ifdef AESNI_CAPABLE 577#ifdef AESNI_CAPABLE
577static const EVP_CIPHER aesni_128_ecb = { 578static const EVP_CIPHER aesni_128_ecb = {
@@ -606,6 +607,7 @@ EVP_aes_128_ecb(void)
606 return &aes_128_ecb; 607 return &aes_128_ecb;
607#endif 608#endif
608} 609}
610LCRYPTO_ALIAS(EVP_aes_128_ecb);
609 611
610#ifdef AESNI_CAPABLE 612#ifdef AESNI_CAPABLE
611static const EVP_CIPHER aesni_128_ofb = { 613static const EVP_CIPHER aesni_128_ofb = {
@@ -640,6 +642,7 @@ EVP_aes_128_ofb(void)
640 return &aes_128_ofb; 642 return &aes_128_ofb;
641#endif 643#endif
642} 644}
645LCRYPTO_ALIAS(EVP_aes_128_ofb);
643 646
644#ifdef AESNI_CAPABLE 647#ifdef AESNI_CAPABLE
645static const EVP_CIPHER aesni_128_cfb = { 648static const EVP_CIPHER aesni_128_cfb = {
@@ -674,6 +677,7 @@ EVP_aes_128_cfb128(void)
674 return &aes_128_cfb; 677 return &aes_128_cfb;
675#endif 678#endif
676} 679}
680LCRYPTO_ALIAS(EVP_aes_128_cfb128);
677 681
678#ifdef AESNI_CAPABLE 682#ifdef AESNI_CAPABLE
679static const EVP_CIPHER aesni_128_cfb1 = { 683static const EVP_CIPHER aesni_128_cfb1 = {
@@ -708,6 +712,7 @@ EVP_aes_128_cfb1(void)
708 return &aes_128_cfb1; 712 return &aes_128_cfb1;
709#endif 713#endif
710} 714}
715LCRYPTO_ALIAS(EVP_aes_128_cfb1);
711 716
712#ifdef AESNI_CAPABLE 717#ifdef AESNI_CAPABLE
713static const EVP_CIPHER aesni_128_cfb8 = { 718static const EVP_CIPHER aesni_128_cfb8 = {
@@ -742,6 +747,7 @@ EVP_aes_128_cfb8(void)
742 return &aes_128_cfb8; 747 return &aes_128_cfb8;
743#endif 748#endif
744} 749}
750LCRYPTO_ALIAS(EVP_aes_128_cfb8);
745 751
746#ifdef AESNI_CAPABLE 752#ifdef AESNI_CAPABLE
747static const EVP_CIPHER aesni_128_ctr = { 753static const EVP_CIPHER aesni_128_ctr = {
@@ -776,6 +782,7 @@ EVP_aes_128_ctr(void)
776 return &aes_128_ctr; 782 return &aes_128_ctr;
777#endif 783#endif
778} 784}
785LCRYPTO_ALIAS(EVP_aes_128_ctr);
779 786
780 787
781#ifdef AESNI_CAPABLE 788#ifdef AESNI_CAPABLE
@@ -811,6 +818,7 @@ EVP_aes_192_cbc(void)
811 return &aes_192_cbc; 818 return &aes_192_cbc;
812#endif 819#endif
813} 820}
821LCRYPTO_ALIAS(EVP_aes_192_cbc);
814 822
815#ifdef AESNI_CAPABLE 823#ifdef AESNI_CAPABLE
816static const EVP_CIPHER aesni_192_ecb = { 824static const EVP_CIPHER aesni_192_ecb = {
@@ -845,6 +853,7 @@ EVP_aes_192_ecb(void)
845 return &aes_192_ecb; 853 return &aes_192_ecb;
846#endif 854#endif
847} 855}
856LCRYPTO_ALIAS(EVP_aes_192_ecb);
848 857
849#ifdef AESNI_CAPABLE 858#ifdef AESNI_CAPABLE
850static const EVP_CIPHER aesni_192_ofb = { 859static const EVP_CIPHER aesni_192_ofb = {
@@ -879,6 +888,7 @@ EVP_aes_192_ofb(void)
879 return &aes_192_ofb; 888 return &aes_192_ofb;
880#endif 889#endif
881} 890}
891LCRYPTO_ALIAS(EVP_aes_192_ofb);
882 892
883#ifdef AESNI_CAPABLE 893#ifdef AESNI_CAPABLE
884static const EVP_CIPHER aesni_192_cfb = { 894static const EVP_CIPHER aesni_192_cfb = {
@@ -913,6 +923,7 @@ EVP_aes_192_cfb128(void)
913 return &aes_192_cfb; 923 return &aes_192_cfb;
914#endif 924#endif
915} 925}
926LCRYPTO_ALIAS(EVP_aes_192_cfb128);
916 927
917#ifdef AESNI_CAPABLE 928#ifdef AESNI_CAPABLE
918static const EVP_CIPHER aesni_192_cfb1 = { 929static const EVP_CIPHER aesni_192_cfb1 = {
@@ -947,6 +958,7 @@ EVP_aes_192_cfb1(void)
947 return &aes_192_cfb1; 958 return &aes_192_cfb1;
948#endif 959#endif
949} 960}
961LCRYPTO_ALIAS(EVP_aes_192_cfb1);
950 962
951#ifdef AESNI_CAPABLE 963#ifdef AESNI_CAPABLE
952static const EVP_CIPHER aesni_192_cfb8 = { 964static const EVP_CIPHER aesni_192_cfb8 = {
@@ -981,6 +993,7 @@ EVP_aes_192_cfb8(void)
981 return &aes_192_cfb8; 993 return &aes_192_cfb8;
982#endif 994#endif
983} 995}
996LCRYPTO_ALIAS(EVP_aes_192_cfb8);
984 997
985#ifdef AESNI_CAPABLE 998#ifdef AESNI_CAPABLE
986static const EVP_CIPHER aesni_192_ctr = { 999static const EVP_CIPHER aesni_192_ctr = {
@@ -1015,6 +1028,7 @@ EVP_aes_192_ctr(void)
1015 return &aes_192_ctr; 1028 return &aes_192_ctr;
1016#endif 1029#endif
1017} 1030}
1031LCRYPTO_ALIAS(EVP_aes_192_ctr);
1018 1032
1019 1033
1020#ifdef AESNI_CAPABLE 1034#ifdef AESNI_CAPABLE
@@ -1050,6 +1064,7 @@ EVP_aes_256_cbc(void)
1050 return &aes_256_cbc; 1064 return &aes_256_cbc;
1051#endif 1065#endif
1052} 1066}
1067LCRYPTO_ALIAS(EVP_aes_256_cbc);
1053 1068
1054#ifdef AESNI_CAPABLE 1069#ifdef AESNI_CAPABLE
1055static const EVP_CIPHER aesni_256_ecb = { 1070static const EVP_CIPHER aesni_256_ecb = {
@@ -1084,6 +1099,7 @@ EVP_aes_256_ecb(void)
1084 return &aes_256_ecb; 1099 return &aes_256_ecb;
1085#endif 1100#endif
1086} 1101}
1102LCRYPTO_ALIAS(EVP_aes_256_ecb);
1087 1103
1088#ifdef AESNI_CAPABLE 1104#ifdef AESNI_CAPABLE
1089static const EVP_CIPHER aesni_256_ofb = { 1105static const EVP_CIPHER aesni_256_ofb = {
@@ -1118,6 +1134,7 @@ EVP_aes_256_ofb(void)
1118 return &aes_256_ofb; 1134 return &aes_256_ofb;
1119#endif 1135#endif
1120} 1136}
1137LCRYPTO_ALIAS(EVP_aes_256_ofb);
1121 1138
1122#ifdef AESNI_CAPABLE 1139#ifdef AESNI_CAPABLE
1123static const EVP_CIPHER aesni_256_cfb = { 1140static const EVP_CIPHER aesni_256_cfb = {
@@ -1152,6 +1169,7 @@ EVP_aes_256_cfb128(void)
1152 return &aes_256_cfb; 1169 return &aes_256_cfb;
1153#endif 1170#endif
1154} 1171}
1172LCRYPTO_ALIAS(EVP_aes_256_cfb128);
1155 1173
1156#ifdef AESNI_CAPABLE 1174#ifdef AESNI_CAPABLE
1157static const EVP_CIPHER aesni_256_cfb1 = { 1175static const EVP_CIPHER aesni_256_cfb1 = {
@@ -1186,6 +1204,7 @@ EVP_aes_256_cfb1(void)
1186 return &aes_256_cfb1; 1204 return &aes_256_cfb1;
1187#endif 1205#endif
1188} 1206}
1207LCRYPTO_ALIAS(EVP_aes_256_cfb1);
1189 1208
1190#ifdef AESNI_CAPABLE 1209#ifdef AESNI_CAPABLE
1191static const EVP_CIPHER aesni_256_cfb8 = { 1210static const EVP_CIPHER aesni_256_cfb8 = {
@@ -1220,6 +1239,7 @@ EVP_aes_256_cfb8(void)
1220 return &aes_256_cfb8; 1239 return &aes_256_cfb8;
1221#endif 1240#endif
1222} 1241}
1242LCRYPTO_ALIAS(EVP_aes_256_cfb8);
1223 1243
1224#ifdef AESNI_CAPABLE 1244#ifdef AESNI_CAPABLE
1225static const EVP_CIPHER aesni_256_ctr = { 1245static const EVP_CIPHER aesni_256_ctr = {
@@ -1254,6 +1274,7 @@ EVP_aes_256_ctr(void)
1254 return &aes_256_ctr; 1274 return &aes_256_ctr;
1255#endif 1275#endif
1256} 1276}
1277LCRYPTO_ALIAS(EVP_aes_256_ctr);
1257 1278
1258static int 1279static int
1259aes_gcm_cleanup(EVP_CIPHER_CTX *c) 1280aes_gcm_cleanup(EVP_CIPHER_CTX *c)
@@ -1677,6 +1698,7 @@ EVP_aes_128_gcm(void)
1677 return &aes_128_gcm; 1698 return &aes_128_gcm;
1678#endif 1699#endif
1679} 1700}
1701LCRYPTO_ALIAS(EVP_aes_128_gcm);
1680 1702
1681#ifdef AESNI_CAPABLE 1703#ifdef AESNI_CAPABLE
1682static const EVP_CIPHER aesni_192_gcm = { 1704static const EVP_CIPHER aesni_192_gcm = {
@@ -1715,6 +1737,7 @@ EVP_aes_192_gcm(void)
1715 return &aes_192_gcm; 1737 return &aes_192_gcm;
1716#endif 1738#endif
1717} 1739}
1740LCRYPTO_ALIAS(EVP_aes_192_gcm);
1718 1741
1719#ifdef AESNI_CAPABLE 1742#ifdef AESNI_CAPABLE
1720static const EVP_CIPHER aesni_256_gcm = { 1743static const EVP_CIPHER aesni_256_gcm = {
@@ -1753,6 +1776,7 @@ EVP_aes_256_gcm(void)
1753 return &aes_256_gcm; 1776 return &aes_256_gcm;
1754#endif 1777#endif
1755} 1778}
1779LCRYPTO_ALIAS(EVP_aes_256_gcm);
1756 1780
1757static int 1781static int
1758aes_xts_ctrl(EVP_CIPHER_CTX *c, int type, int arg, void *ptr) 1782aes_xts_ctrl(EVP_CIPHER_CTX *c, int type, int arg, void *ptr)
@@ -1919,6 +1943,7 @@ EVP_aes_128_xts(void)
1919 return &aes_128_xts; 1943 return &aes_128_xts;
1920#endif 1944#endif
1921} 1945}
1946LCRYPTO_ALIAS(EVP_aes_128_xts);
1922 1947
1923#ifdef AESNI_CAPABLE 1948#ifdef AESNI_CAPABLE
1924static const EVP_CIPHER aesni_256_xts = { 1949static const EVP_CIPHER aesni_256_xts = {
@@ -1957,6 +1982,7 @@ EVP_aes_256_xts(void)
1957 return &aes_256_xts; 1982 return &aes_256_xts;
1958#endif 1983#endif
1959} 1984}
1985LCRYPTO_ALIAS(EVP_aes_256_xts);
1960 1986
1961static int 1987static int
1962aes_ccm_ctrl(EVP_CIPHER_CTX *c, int type, int arg, void *ptr) 1988aes_ccm_ctrl(EVP_CIPHER_CTX *c, int type, int arg, void *ptr)
@@ -2157,6 +2183,7 @@ EVP_aes_128_ccm(void)
2157 return &aes_128_ccm; 2183 return &aes_128_ccm;
2158#endif 2184#endif
2159} 2185}
2186LCRYPTO_ALIAS(EVP_aes_128_ccm);
2160 2187
2161#ifdef AESNI_CAPABLE 2188#ifdef AESNI_CAPABLE
2162static const EVP_CIPHER aesni_192_ccm = { 2189static const EVP_CIPHER aesni_192_ccm = {
@@ -2195,6 +2222,7 @@ EVP_aes_192_ccm(void)
2195 return &aes_192_ccm; 2222 return &aes_192_ccm;
2196#endif 2223#endif
2197} 2224}
2225LCRYPTO_ALIAS(EVP_aes_192_ccm);
2198 2226
2199#ifdef AESNI_CAPABLE 2227#ifdef AESNI_CAPABLE
2200static const EVP_CIPHER aesni_256_ccm = { 2228static const EVP_CIPHER aesni_256_ccm = {
@@ -2233,6 +2261,7 @@ EVP_aes_256_ccm(void)
2233 return &aes_256_ccm; 2261 return &aes_256_ccm;
2234#endif 2262#endif
2235} 2263}
2264LCRYPTO_ALIAS(EVP_aes_256_ccm);
2236 2265
2237#define EVP_AEAD_AES_GCM_TAG_LEN 16 2266#define EVP_AEAD_AES_GCM_TAG_LEN 16
2238 2267
@@ -2423,12 +2452,14 @@ EVP_aead_aes_128_gcm(void)
2423{ 2452{
2424 return &aead_aes_128_gcm; 2453 return &aead_aes_128_gcm;
2425} 2454}
2455LCRYPTO_ALIAS(EVP_aead_aes_128_gcm);
2426 2456
2427const EVP_AEAD * 2457const EVP_AEAD *
2428EVP_aead_aes_256_gcm(void) 2458EVP_aead_aes_256_gcm(void)
2429{ 2459{
2430 return &aead_aes_256_gcm; 2460 return &aead_aes_256_gcm;
2431} 2461}
2462LCRYPTO_ALIAS(EVP_aead_aes_256_gcm);
2432 2463
2433typedef struct { 2464typedef struct {
2434 union { 2465 union {
@@ -2557,6 +2588,7 @@ EVP_aes_128_wrap(void)
2557{ 2588{
2558 return &aes_128_wrap; 2589 return &aes_128_wrap;
2559} 2590}
2591LCRYPTO_ALIAS(EVP_aes_128_wrap);
2560 2592
2561static const EVP_CIPHER aes_192_wrap = { 2593static const EVP_CIPHER aes_192_wrap = {
2562 .nid = NID_id_aes192_wrap, 2594 .nid = NID_id_aes192_wrap,
@@ -2578,6 +2610,7 @@ EVP_aes_192_wrap(void)
2578{ 2610{
2579 return &aes_192_wrap; 2611 return &aes_192_wrap;
2580} 2612}
2613LCRYPTO_ALIAS(EVP_aes_192_wrap);
2581 2614
2582static const EVP_CIPHER aes_256_wrap = { 2615static const EVP_CIPHER aes_256_wrap = {
2583 .nid = NID_id_aes256_wrap, 2616 .nid = NID_id_aes256_wrap,
@@ -2599,5 +2632,6 @@ EVP_aes_256_wrap(void)
2599{ 2632{
2600 return &aes_256_wrap; 2633 return &aes_256_wrap;
2601} 2634}
2635LCRYPTO_ALIAS(EVP_aes_256_wrap);
2602 2636
2603#endif 2637#endif
diff --git a/src/lib/libcrypto/evp/e_bf.c b/src/lib/libcrypto/evp/e_bf.c
index 90a589c608..4f3799975b 100644
--- a/src/lib/libcrypto/evp/e_bf.c
+++ b/src/lib/libcrypto/evp/e_bf.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: e_bf.c,v 1.18 2024/01/04 17:38:36 tb Exp $ */ 1/* $OpenBSD: e_bf.c,v 1.19 2024/04/09 13:52:41 beck Exp $ */
2/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) 2/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
3 * All rights reserved. 3 * All rights reserved.
4 * 4 *
@@ -177,6 +177,7 @@ EVP_bf_cbc(void)
177{ 177{
178 return &bf_cbc; 178 return &bf_cbc;
179} 179}
180LCRYPTO_ALIAS(EVP_bf_cbc);
180 181
181static const EVP_CIPHER bf_cfb64 = { 182static const EVP_CIPHER bf_cfb64 = {
182 .nid = NID_bf_cfb64, 183 .nid = NID_bf_cfb64,
@@ -198,6 +199,7 @@ EVP_bf_cfb64(void)
198{ 199{
199 return &bf_cfb64; 200 return &bf_cfb64;
200} 201}
202LCRYPTO_ALIAS(EVP_bf_cfb64);
201 203
202static const EVP_CIPHER bf_ofb = { 204static const EVP_CIPHER bf_ofb = {
203 .nid = NID_bf_ofb64, 205 .nid = NID_bf_ofb64,
@@ -219,6 +221,7 @@ EVP_bf_ofb(void)
219{ 221{
220 return &bf_ofb; 222 return &bf_ofb;
221} 223}
224LCRYPTO_ALIAS(EVP_bf_ofb);
222 225
223static const EVP_CIPHER bf_ecb = { 226static const EVP_CIPHER bf_ecb = {
224 .nid = NID_bf_ecb, 227 .nid = NID_bf_ecb,
@@ -240,4 +243,5 @@ EVP_bf_ecb(void)
240{ 243{
241 return &bf_ecb; 244 return &bf_ecb;
242} 245}
246LCRYPTO_ALIAS(EVP_bf_ecb);
243#endif 247#endif
diff --git a/src/lib/libcrypto/evp/e_camellia.c b/src/lib/libcrypto/evp/e_camellia.c
index 6d9bedbbcd..55dcc79922 100644
--- a/src/lib/libcrypto/evp/e_camellia.c
+++ b/src/lib/libcrypto/evp/e_camellia.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: e_camellia.c,v 1.19 2024/01/04 17:38:36 tb Exp $ */ 1/* $OpenBSD: e_camellia.c,v 1.20 2024/04/09 13:52:41 beck Exp $ */
2/* ==================================================================== 2/* ====================================================================
3 * Copyright (c) 2006 The OpenSSL Project. All rights reserved. 3 * Copyright (c) 2006 The OpenSSL Project. All rights reserved.
4 * 4 *
@@ -178,6 +178,7 @@ EVP_camellia_128_cbc(void)
178{ 178{
179 return &camellia_128_cbc; 179 return &camellia_128_cbc;
180} 180}
181LCRYPTO_ALIAS(EVP_camellia_128_cbc);
181 182
182static const EVP_CIPHER camellia_128_cfb128 = { 183static const EVP_CIPHER camellia_128_cfb128 = {
183 .nid = NID_camellia_128_cfb128, 184 .nid = NID_camellia_128_cfb128,
@@ -199,6 +200,7 @@ EVP_camellia_128_cfb128(void)
199{ 200{
200 return &camellia_128_cfb128; 201 return &camellia_128_cfb128;
201} 202}
203LCRYPTO_ALIAS(EVP_camellia_128_cfb128);
202 204
203static const EVP_CIPHER camellia_128_ofb = { 205static const EVP_CIPHER camellia_128_ofb = {
204 .nid = NID_camellia_128_ofb128, 206 .nid = NID_camellia_128_ofb128,
@@ -220,6 +222,7 @@ EVP_camellia_128_ofb(void)
220{ 222{
221 return &camellia_128_ofb; 223 return &camellia_128_ofb;
222} 224}
225LCRYPTO_ALIAS(EVP_camellia_128_ofb);
223 226
224static const EVP_CIPHER camellia_128_ecb = { 227static const EVP_CIPHER camellia_128_ecb = {
225 .nid = NID_camellia_128_ecb, 228 .nid = NID_camellia_128_ecb,
@@ -241,6 +244,7 @@ EVP_camellia_128_ecb(void)
241{ 244{
242 return &camellia_128_ecb; 245 return &camellia_128_ecb;
243} 246}
247LCRYPTO_ALIAS(EVP_camellia_128_ecb);
244 248
245static int 249static int
246camellia_192_cbc_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out, const unsigned char *in, size_t inl) 250camellia_192_cbc_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out, const unsigned char *in, size_t inl)
@@ -332,6 +336,7 @@ EVP_camellia_192_cbc(void)
332{ 336{
333 return &camellia_192_cbc; 337 return &camellia_192_cbc;
334} 338}
339LCRYPTO_ALIAS(EVP_camellia_192_cbc);
335 340
336static const EVP_CIPHER camellia_192_cfb128 = { 341static const EVP_CIPHER camellia_192_cfb128 = {
337 .nid = NID_camellia_192_cfb128, 342 .nid = NID_camellia_192_cfb128,
@@ -353,6 +358,7 @@ EVP_camellia_192_cfb128(void)
353{ 358{
354 return &camellia_192_cfb128; 359 return &camellia_192_cfb128;
355} 360}
361LCRYPTO_ALIAS(EVP_camellia_192_cfb128);
356 362
357static const EVP_CIPHER camellia_192_ofb = { 363static const EVP_CIPHER camellia_192_ofb = {
358 .nid = NID_camellia_192_ofb128, 364 .nid = NID_camellia_192_ofb128,
@@ -374,6 +380,7 @@ EVP_camellia_192_ofb(void)
374{ 380{
375 return &camellia_192_ofb; 381 return &camellia_192_ofb;
376} 382}
383LCRYPTO_ALIAS(EVP_camellia_192_ofb);
377 384
378static const EVP_CIPHER camellia_192_ecb = { 385static const EVP_CIPHER camellia_192_ecb = {
379 .nid = NID_camellia_192_ecb, 386 .nid = NID_camellia_192_ecb,
@@ -395,6 +402,7 @@ EVP_camellia_192_ecb(void)
395{ 402{
396 return &camellia_192_ecb; 403 return &camellia_192_ecb;
397} 404}
405LCRYPTO_ALIAS(EVP_camellia_192_ecb);
398 406
399static int 407static int
400camellia_256_cbc_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out, const unsigned char *in, size_t inl) 408camellia_256_cbc_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out, const unsigned char *in, size_t inl)
@@ -486,6 +494,7 @@ EVP_camellia_256_cbc(void)
486{ 494{
487 return &camellia_256_cbc; 495 return &camellia_256_cbc;
488} 496}
497LCRYPTO_ALIAS(EVP_camellia_256_cbc);
489 498
490static const EVP_CIPHER camellia_256_cfb128 = { 499static const EVP_CIPHER camellia_256_cfb128 = {
491 .nid = NID_camellia_256_cfb128, 500 .nid = NID_camellia_256_cfb128,
@@ -507,6 +516,7 @@ EVP_camellia_256_cfb128(void)
507{ 516{
508 return &camellia_256_cfb128; 517 return &camellia_256_cfb128;
509} 518}
519LCRYPTO_ALIAS(EVP_camellia_256_cfb128);
510 520
511static const EVP_CIPHER camellia_256_ofb = { 521static const EVP_CIPHER camellia_256_ofb = {
512 .nid = NID_camellia_256_ofb128, 522 .nid = NID_camellia_256_ofb128,
@@ -528,6 +538,7 @@ EVP_camellia_256_ofb(void)
528{ 538{
529 return &camellia_256_ofb; 539 return &camellia_256_ofb;
530} 540}
541LCRYPTO_ALIAS(EVP_camellia_256_ofb);
531 542
532static const EVP_CIPHER camellia_256_ecb = { 543static const EVP_CIPHER camellia_256_ecb = {
533 .nid = NID_camellia_256_ecb, 544 .nid = NID_camellia_256_ecb,
@@ -549,6 +560,7 @@ EVP_camellia_256_ecb(void)
549{ 560{
550 return &camellia_256_ecb; 561 return &camellia_256_ecb;
551} 562}
563LCRYPTO_ALIAS(EVP_camellia_256_ecb);
552 564
553static int 565static int
554camellia_128_cfb1_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out, const unsigned char *in, size_t inl) 566camellia_128_cfb1_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out, const unsigned char *in, size_t inl)
@@ -592,6 +604,7 @@ EVP_camellia_128_cfb1(void)
592{ 604{
593 return &camellia_128_cfb1; 605 return &camellia_128_cfb1;
594} 606}
607LCRYPTO_ALIAS(EVP_camellia_128_cfb1);
595 608
596static int 609static int
597camellia_192_cfb1_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out, const unsigned char *in, size_t inl) 610camellia_192_cfb1_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out, const unsigned char *in, size_t inl)
@@ -635,6 +648,7 @@ EVP_camellia_192_cfb1(void)
635{ 648{
636 return &camellia_192_cfb1; 649 return &camellia_192_cfb1;
637} 650}
651LCRYPTO_ALIAS(EVP_camellia_192_cfb1);
638 652
639static int 653static int
640camellia_256_cfb1_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out, const unsigned char *in, size_t inl) 654camellia_256_cfb1_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out, const unsigned char *in, size_t inl)
@@ -678,6 +692,7 @@ EVP_camellia_256_cfb1(void)
678{ 692{
679 return &camellia_256_cfb1; 693 return &camellia_256_cfb1;
680} 694}
695LCRYPTO_ALIAS(EVP_camellia_256_cfb1);
681 696
682 697
683static int 698static int
@@ -720,6 +735,7 @@ EVP_camellia_128_cfb8(void)
720{ 735{
721 return &camellia_128_cfb8; 736 return &camellia_128_cfb8;
722} 737}
738LCRYPTO_ALIAS(EVP_camellia_128_cfb8);
723 739
724static int 740static int
725camellia_192_cfb8_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out, const unsigned char *in, size_t inl) 741camellia_192_cfb8_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out, const unsigned char *in, size_t inl)
@@ -761,6 +777,7 @@ EVP_camellia_192_cfb8(void)
761{ 777{
762 return &camellia_192_cfb8; 778 return &camellia_192_cfb8;
763} 779}
780LCRYPTO_ALIAS(EVP_camellia_192_cfb8);
764 781
765static int 782static int
766camellia_256_cfb8_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out, const unsigned char *in, size_t inl) 783camellia_256_cfb8_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out, const unsigned char *in, size_t inl)
@@ -802,4 +819,5 @@ EVP_camellia_256_cfb8(void)
802{ 819{
803 return &camellia_256_cfb8; 820 return &camellia_256_cfb8;
804} 821}
822LCRYPTO_ALIAS(EVP_camellia_256_cfb8);
805#endif 823#endif
diff --git a/src/lib/libcrypto/evp/e_cast.c b/src/lib/libcrypto/evp/e_cast.c
index 5c3e504835..1575a7a5bb 100644
--- a/src/lib/libcrypto/evp/e_cast.c
+++ b/src/lib/libcrypto/evp/e_cast.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: e_cast.c,v 1.17 2024/01/04 17:38:36 tb Exp $ */ 1/* $OpenBSD: e_cast.c,v 1.18 2024/04/09 13:52:41 beck Exp $ */
2/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) 2/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
3 * All rights reserved. 3 * All rights reserved.
4 * 4 *
@@ -177,6 +177,7 @@ EVP_cast5_cbc(void)
177{ 177{
178 return &cast5_cbc; 178 return &cast5_cbc;
179} 179}
180LCRYPTO_ALIAS(EVP_cast5_cbc);
180 181
181static const EVP_CIPHER cast5_cfb64 = { 182static const EVP_CIPHER cast5_cfb64 = {
182 .nid = NID_cast5_cfb64, 183 .nid = NID_cast5_cfb64,
@@ -198,6 +199,7 @@ EVP_cast5_cfb64(void)
198{ 199{
199 return &cast5_cfb64; 200 return &cast5_cfb64;
200} 201}
202LCRYPTO_ALIAS(EVP_cast5_cfb64);
201 203
202static const EVP_CIPHER cast5_ofb = { 204static const EVP_CIPHER cast5_ofb = {
203 .nid = NID_cast5_ofb64, 205 .nid = NID_cast5_ofb64,
@@ -219,6 +221,7 @@ EVP_cast5_ofb(void)
219{ 221{
220 return &cast5_ofb; 222 return &cast5_ofb;
221} 223}
224LCRYPTO_ALIAS(EVP_cast5_ofb);
222 225
223static const EVP_CIPHER cast5_ecb = { 226static const EVP_CIPHER cast5_ecb = {
224 .nid = NID_cast5_ecb, 227 .nid = NID_cast5_ecb,
@@ -240,4 +243,5 @@ EVP_cast5_ecb(void)
240{ 243{
241 return &cast5_ecb; 244 return &cast5_ecb;
242} 245}
246LCRYPTO_ALIAS(EVP_cast5_ecb);
243#endif 247#endif
diff --git a/src/lib/libcrypto/evp/e_chacha.c b/src/lib/libcrypto/evp/e_chacha.c
index 5cd03c7c8d..4c801b3920 100644
--- a/src/lib/libcrypto/evp/e_chacha.c
+++ b/src/lib/libcrypto/evp/e_chacha.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: e_chacha.c,v 1.13 2023/08/24 04:20:57 tb Exp $ */ 1/* $OpenBSD: e_chacha.c,v 1.14 2024/04/09 13:52:41 beck Exp $ */
2/* 2/*
3 * Copyright (c) 2014 Joel Sing <jsing@openbsd.org> 3 * Copyright (c) 2014 Joel Sing <jsing@openbsd.org>
4 * 4 *
@@ -72,5 +72,6 @@ EVP_chacha20(void)
72{ 72{
73 return (&chacha20_cipher); 73 return (&chacha20_cipher);
74} 74}
75LCRYPTO_ALIAS(EVP_chacha20);
75 76
76#endif 77#endif
diff --git a/src/lib/libcrypto/evp/e_chacha20poly1305.c b/src/lib/libcrypto/evp/e_chacha20poly1305.c
index 796824aeeb..cc2e0157e6 100644
--- a/src/lib/libcrypto/evp/e_chacha20poly1305.c
+++ b/src/lib/libcrypto/evp/e_chacha20poly1305.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: e_chacha20poly1305.c,v 1.34 2023/12/30 18:24:09 tb Exp $ */ 1/* $OpenBSD: e_chacha20poly1305.c,v 1.35 2024/04/09 13:52:41 beck Exp $ */
2 2
3/* 3/*
4 * Copyright (c) 2022 Joel Sing <jsing@openbsd.org> 4 * Copyright (c) 2022 Joel Sing <jsing@openbsd.org>
@@ -349,6 +349,7 @@ EVP_aead_chacha20_poly1305(void)
349{ 349{
350 return &aead_chacha20_poly1305; 350 return &aead_chacha20_poly1305;
351} 351}
352LCRYPTO_ALIAS(EVP_aead_chacha20_poly1305);
352 353
353static const EVP_AEAD aead_xchacha20_poly1305 = { 354static const EVP_AEAD aead_xchacha20_poly1305 = {
354 .key_len = 32, 355 .key_len = 32,
@@ -367,6 +368,7 @@ EVP_aead_xchacha20_poly1305(void)
367{ 368{
368 return &aead_xchacha20_poly1305; 369 return &aead_xchacha20_poly1305;
369} 370}
371LCRYPTO_ALIAS(EVP_aead_xchacha20_poly1305);
370 372
371struct chacha20_poly1305_ctx { 373struct chacha20_poly1305_ctx {
372 ChaCha_ctx chacha; 374 ChaCha_ctx chacha;
@@ -614,5 +616,6 @@ EVP_chacha20_poly1305(void)
614{ 616{
615 return &cipher_chacha20_poly1305; 617 return &cipher_chacha20_poly1305;
616} 618}
619LCRYPTO_ALIAS(EVP_chacha20_poly1305);
617 620
618#endif /* !OPENSSL_NO_CHACHA && !OPENSSL_NO_POLY1305 */ 621#endif /* !OPENSSL_NO_CHACHA && !OPENSSL_NO_POLY1305 */
diff --git a/src/lib/libcrypto/evp/e_des.c b/src/lib/libcrypto/evp/e_des.c
index 7a0b24c1ab..fb335e95b1 100644
--- a/src/lib/libcrypto/evp/e_des.c
+++ b/src/lib/libcrypto/evp/e_des.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: e_des.c,v 1.23 2024/01/04 17:38:36 tb Exp $ */ 1/* $OpenBSD: e_des.c,v 1.24 2024/04/09 13:52:41 beck Exp $ */
2/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) 2/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
3 * All rights reserved. 3 * All rights reserved.
4 * 4 *
@@ -241,6 +241,7 @@ EVP_des_cbc(void)
241{ 241{
242 return &des_cbc; 242 return &des_cbc;
243} 243}
244LCRYPTO_ALIAS(EVP_des_cbc);
244 245
245static const EVP_CIPHER des_cfb64 = { 246static const EVP_CIPHER des_cfb64 = {
246 .nid = NID_des_cfb64, 247 .nid = NID_des_cfb64,
@@ -262,6 +263,7 @@ EVP_des_cfb64(void)
262{ 263{
263 return &des_cfb64; 264 return &des_cfb64;
264} 265}
266LCRYPTO_ALIAS(EVP_des_cfb64);
265 267
266static const EVP_CIPHER des_ofb = { 268static const EVP_CIPHER des_ofb = {
267 .nid = NID_des_ofb64, 269 .nid = NID_des_ofb64,
@@ -283,6 +285,7 @@ EVP_des_ofb(void)
283{ 285{
284 return &des_ofb; 286 return &des_ofb;
285} 287}
288LCRYPTO_ALIAS(EVP_des_ofb);
286 289
287static const EVP_CIPHER des_ecb = { 290static const EVP_CIPHER des_ecb = {
288 .nid = NID_des_ecb, 291 .nid = NID_des_ecb,
@@ -304,6 +307,7 @@ EVP_des_ecb(void)
304{ 307{
305 return &des_ecb; 308 return &des_ecb;
306} 309}
310LCRYPTO_ALIAS(EVP_des_ecb);
307 311
308static const EVP_CIPHER des_cfb1 = { 312static const EVP_CIPHER des_cfb1 = {
309 .nid = NID_des_cfb1, 313 .nid = NID_des_cfb1,
@@ -325,6 +329,7 @@ EVP_des_cfb1(void)
325{ 329{
326 return &des_cfb1; 330 return &des_cfb1;
327} 331}
332LCRYPTO_ALIAS(EVP_des_cfb1);
328 333
329static const EVP_CIPHER des_cfb8 = { 334static const EVP_CIPHER des_cfb8 = {
330 .nid = NID_des_cfb8, 335 .nid = NID_des_cfb8,
@@ -346,4 +351,5 @@ EVP_des_cfb8(void)
346{ 351{
347 return &des_cfb8; 352 return &des_cfb8;
348} 353}
354LCRYPTO_ALIAS(EVP_des_cfb8);
349#endif 355#endif
diff --git a/src/lib/libcrypto/evp/e_des3.c b/src/lib/libcrypto/evp/e_des3.c
index f283be2912..48fbcdb366 100644
--- a/src/lib/libcrypto/evp/e_des3.c
+++ b/src/lib/libcrypto/evp/e_des3.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: e_des3.c,v 1.29 2024/01/04 17:38:36 tb Exp $ */ 1/* $OpenBSD: e_des3.c,v 1.30 2024/04/09 13:52:41 beck Exp $ */
2/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) 2/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
3 * All rights reserved. 3 * All rights reserved.
4 * 4 *
@@ -273,6 +273,7 @@ EVP_des_ede_cbc(void)
273{ 273{
274 return &des_ede_cbc; 274 return &des_ede_cbc;
275} 275}
276LCRYPTO_ALIAS(EVP_des_ede_cbc);
276 277
277static const EVP_CIPHER des_ede_cfb64 = { 278static const EVP_CIPHER des_ede_cfb64 = {
278 .nid = NID_des_ede_cfb64, 279 .nid = NID_des_ede_cfb64,
@@ -294,6 +295,7 @@ EVP_des_ede_cfb64(void)
294{ 295{
295 return &des_ede_cfb64; 296 return &des_ede_cfb64;
296} 297}
298LCRYPTO_ALIAS(EVP_des_ede_cfb64);
297 299
298static const EVP_CIPHER des_ede_ofb = { 300static const EVP_CIPHER des_ede_ofb = {
299 .nid = NID_des_ede_ofb64, 301 .nid = NID_des_ede_ofb64,
@@ -315,6 +317,7 @@ EVP_des_ede_ofb(void)
315{ 317{
316 return &des_ede_ofb; 318 return &des_ede_ofb;
317} 319}
320LCRYPTO_ALIAS(EVP_des_ede_ofb);
318 321
319static const EVP_CIPHER des_ede_ecb = { 322static const EVP_CIPHER des_ede_ecb = {
320 .nid = NID_des_ede_ecb, 323 .nid = NID_des_ede_ecb,
@@ -336,6 +339,7 @@ EVP_des_ede_ecb(void)
336{ 339{
337 return &des_ede_ecb; 340 return &des_ede_ecb;
338} 341}
342LCRYPTO_ALIAS(EVP_des_ede_ecb);
339 343
340 344
341#define des_ede3_cfb64_cipher des_ede_cfb64_cipher 345#define des_ede3_cfb64_cipher des_ede_cfb64_cipher
@@ -363,6 +367,7 @@ EVP_des_ede3_cbc(void)
363{ 367{
364 return &des_ede3_cbc; 368 return &des_ede3_cbc;
365} 369}
370LCRYPTO_ALIAS(EVP_des_ede3_cbc);
366 371
367static const EVP_CIPHER des_ede3_cfb64 = { 372static const EVP_CIPHER des_ede3_cfb64 = {
368 .nid = NID_des_ede3_cfb64, 373 .nid = NID_des_ede3_cfb64,
@@ -384,6 +389,7 @@ EVP_des_ede3_cfb64(void)
384{ 389{
385 return &des_ede3_cfb64; 390 return &des_ede3_cfb64;
386} 391}
392LCRYPTO_ALIAS(EVP_des_ede3_cfb64);
387 393
388static const EVP_CIPHER des_ede3_ofb = { 394static const EVP_CIPHER des_ede3_ofb = {
389 .nid = NID_des_ede3_ofb64, 395 .nid = NID_des_ede3_ofb64,
@@ -405,6 +411,7 @@ EVP_des_ede3_ofb(void)
405{ 411{
406 return &des_ede3_ofb; 412 return &des_ede3_ofb;
407} 413}
414LCRYPTO_ALIAS(EVP_des_ede3_ofb);
408 415
409static const EVP_CIPHER des_ede3_ecb = { 416static const EVP_CIPHER des_ede3_ecb = {
410 .nid = NID_des_ede3_ecb, 417 .nid = NID_des_ede3_ecb,
@@ -426,6 +433,7 @@ EVP_des_ede3_ecb(void)
426{ 433{
427 return &des_ede3_ecb; 434 return &des_ede3_ecb;
428} 435}
436LCRYPTO_ALIAS(EVP_des_ede3_ecb);
429 437
430 438
431static const EVP_CIPHER des_ede3_cfb1 = { 439static const EVP_CIPHER des_ede3_cfb1 = {
@@ -448,6 +456,7 @@ EVP_des_ede3_cfb1(void)
448{ 456{
449 return &des_ede3_cfb1; 457 return &des_ede3_cfb1;
450} 458}
459LCRYPTO_ALIAS(EVP_des_ede3_cfb1);
451 460
452 461
453static const EVP_CIPHER des_ede3_cfb8 = { 462static const EVP_CIPHER des_ede3_cfb8 = {
@@ -470,16 +479,19 @@ EVP_des_ede3_cfb8(void)
470{ 479{
471 return &des_ede3_cfb8; 480 return &des_ede3_cfb8;
472} 481}
482LCRYPTO_ALIAS(EVP_des_ede3_cfb8);
473 483
474const EVP_CIPHER * 484const EVP_CIPHER *
475EVP_des_ede(void) 485EVP_des_ede(void)
476{ 486{
477 return &des_ede_ecb; 487 return &des_ede_ecb;
478} 488}
489LCRYPTO_ALIAS(EVP_des_ede);
479 490
480const EVP_CIPHER * 491const EVP_CIPHER *
481EVP_des_ede3(void) 492EVP_des_ede3(void)
482{ 493{
483 return &des_ede3_ecb; 494 return &des_ede3_ecb;
484} 495}
496LCRYPTO_ALIAS(EVP_des_ede3);
485#endif 497#endif
diff --git a/src/lib/libcrypto/evp/e_idea.c b/src/lib/libcrypto/evp/e_idea.c
index 025a1f5087..86cf77602a 100644
--- a/src/lib/libcrypto/evp/e_idea.c
+++ b/src/lib/libcrypto/evp/e_idea.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: e_idea.c,v 1.21 2024/01/04 17:38:36 tb Exp $ */ 1/* $OpenBSD: e_idea.c,v 1.22 2024/04/09 13:52:41 beck Exp $ */
2/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) 2/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
3 * All rights reserved. 3 * All rights reserved.
4 * 4 *
@@ -196,6 +196,7 @@ EVP_idea_cbc(void)
196{ 196{
197 return &idea_cbc; 197 return &idea_cbc;
198} 198}
199LCRYPTO_ALIAS(EVP_idea_cbc);
199 200
200static const EVP_CIPHER idea_cfb64 = { 201static const EVP_CIPHER idea_cfb64 = {
201 .nid = NID_idea_cfb64, 202 .nid = NID_idea_cfb64,
@@ -217,6 +218,7 @@ EVP_idea_cfb64(void)
217{ 218{
218 return &idea_cfb64; 219 return &idea_cfb64;
219} 220}
221LCRYPTO_ALIAS(EVP_idea_cfb64);
220 222
221static const EVP_CIPHER idea_ofb = { 223static const EVP_CIPHER idea_ofb = {
222 .nid = NID_idea_ofb64, 224 .nid = NID_idea_ofb64,
@@ -238,6 +240,7 @@ EVP_idea_ofb(void)
238{ 240{
239 return &idea_ofb; 241 return &idea_ofb;
240} 242}
243LCRYPTO_ALIAS(EVP_idea_ofb);
241 244
242static const EVP_CIPHER idea_ecb = { 245static const EVP_CIPHER idea_ecb = {
243 .nid = NID_idea_ecb, 246 .nid = NID_idea_ecb,
@@ -259,4 +262,5 @@ EVP_idea_ecb(void)
259{ 262{
260 return &idea_ecb; 263 return &idea_ecb;
261} 264}
265LCRYPTO_ALIAS(EVP_idea_ecb);
262#endif 266#endif
diff --git a/src/lib/libcrypto/evp/e_null.c b/src/lib/libcrypto/evp/e_null.c
index be46c1ccac..bcb8a1e560 100644
--- a/src/lib/libcrypto/evp/e_null.c
+++ b/src/lib/libcrypto/evp/e_null.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: e_null.c,v 1.20 2024/01/07 15:42:57 tb Exp $ */ 1/* $OpenBSD: e_null.c,v 1.21 2024/04/09 13:52:41 beck Exp $ */
2/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) 2/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
3 * All rights reserved. 3 * All rights reserved.
4 * 4 *
@@ -89,6 +89,7 @@ EVP_enc_null(void)
89{ 89{
90 return (&n_cipher); 90 return (&n_cipher);
91} 91}
92LCRYPTO_ALIAS(EVP_enc_null);
92 93
93static int 94static int
94null_init_key(EVP_CIPHER_CTX *ctx, const unsigned char *key, 95null_init_key(EVP_CIPHER_CTX *ctx, const unsigned char *key,
diff --git a/src/lib/libcrypto/evp/e_rc2.c b/src/lib/libcrypto/evp/e_rc2.c
index 25caef6e3a..dc404cff20 100644
--- a/src/lib/libcrypto/evp/e_rc2.c
+++ b/src/lib/libcrypto/evp/e_rc2.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: e_rc2.c,v 1.28 2024/03/26 06:58:21 tb Exp $ */ 1/* $OpenBSD: e_rc2.c,v 1.29 2024/04/09 13:52:41 beck Exp $ */
2/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) 2/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
3 * All rights reserved. 3 * All rights reserved.
4 * 4 *
@@ -179,6 +179,7 @@ EVP_rc2_cbc(void)
179{ 179{
180 return &rc2_cbc; 180 return &rc2_cbc;
181} 181}
182LCRYPTO_ALIAS(EVP_rc2_cbc);
182 183
183static const EVP_CIPHER rc2_cfb64 = { 184static const EVP_CIPHER rc2_cfb64 = {
184 .nid = NID_rc2_cfb64, 185 .nid = NID_rc2_cfb64,
@@ -200,6 +201,7 @@ EVP_rc2_cfb64(void)
200{ 201{
201 return &rc2_cfb64; 202 return &rc2_cfb64;
202} 203}
204LCRYPTO_ALIAS(EVP_rc2_cfb64);
203 205
204static const EVP_CIPHER rc2_ofb = { 206static const EVP_CIPHER rc2_ofb = {
205 .nid = NID_rc2_ofb64, 207 .nid = NID_rc2_ofb64,
@@ -221,6 +223,7 @@ EVP_rc2_ofb(void)
221{ 223{
222 return &rc2_ofb; 224 return &rc2_ofb;
223} 225}
226LCRYPTO_ALIAS(EVP_rc2_ofb);
224 227
225static const EVP_CIPHER rc2_ecb = { 228static const EVP_CIPHER rc2_ecb = {
226 .nid = NID_rc2_ecb, 229 .nid = NID_rc2_ecb,
@@ -242,6 +245,7 @@ EVP_rc2_ecb(void)
242{ 245{
243 return &rc2_ecb; 246 return &rc2_ecb;
244} 247}
248LCRYPTO_ALIAS(EVP_rc2_ecb);
245 249
246#define RC2_40_MAGIC 0xa0 250#define RC2_40_MAGIC 0xa0
247#define RC2_64_MAGIC 0x78 251#define RC2_64_MAGIC 0x78
@@ -282,12 +286,14 @@ EVP_rc2_64_cbc(void)
282{ 286{
283 return (&r2_64_cbc_cipher); 287 return (&r2_64_cbc_cipher);
284} 288}
289LCRYPTO_ALIAS(EVP_rc2_64_cbc);
285 290
286const EVP_CIPHER * 291const EVP_CIPHER *
287EVP_rc2_40_cbc(void) 292EVP_rc2_40_cbc(void)
288{ 293{
289 return (&r2_40_cbc_cipher); 294 return (&r2_40_cbc_cipher);
290} 295}
296LCRYPTO_ALIAS(EVP_rc2_40_cbc);
291 297
292static int 298static int
293rc2_init_key(EVP_CIPHER_CTX *ctx, const unsigned char *key, 299rc2_init_key(EVP_CIPHER_CTX *ctx, const unsigned char *key,
diff --git a/src/lib/libcrypto/evp/e_rc4.c b/src/lib/libcrypto/evp/e_rc4.c
index c0f12fb03c..df07483416 100644
--- a/src/lib/libcrypto/evp/e_rc4.c
+++ b/src/lib/libcrypto/evp/e_rc4.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: e_rc4.c,v 1.19 2024/01/07 15:42:57 tb Exp $ */ 1/* $OpenBSD: e_rc4.c,v 1.20 2024/04/09 13:52:41 beck Exp $ */
2/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) 2/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
3 * All rights reserved. 3 * All rights reserved.
4 * 4 *
@@ -117,12 +117,14 @@ EVP_rc4(void)
117{ 117{
118 return (&r4_cipher); 118 return (&r4_cipher);
119} 119}
120LCRYPTO_ALIAS(EVP_rc4);
120 121
121const EVP_CIPHER * 122const EVP_CIPHER *
122EVP_rc4_40(void) 123EVP_rc4_40(void)
123{ 124{
124 return (&r4_40_cipher); 125 return (&r4_40_cipher);
125} 126}
127LCRYPTO_ALIAS(EVP_rc4_40);
126 128
127static int 129static int
128rc4_init_key(EVP_CIPHER_CTX *ctx, const unsigned char *key, 130rc4_init_key(EVP_CIPHER_CTX *ctx, const unsigned char *key,
diff --git a/src/lib/libcrypto/evp/e_sm4.c b/src/lib/libcrypto/evp/e_sm4.c
index 85b4d3ca04..cde2f6c64b 100644
--- a/src/lib/libcrypto/evp/e_sm4.c
+++ b/src/lib/libcrypto/evp/e_sm4.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: e_sm4.c,v 1.12 2024/01/04 17:38:36 tb Exp $ */ 1/* $OpenBSD: e_sm4.c,v 1.13 2024/04/09 13:52:41 beck Exp $ */
2/* 2/*
3 * Copyright (c) 2017, 2019 Ribose Inc 3 * Copyright (c) 2017, 2019 Ribose Inc
4 * 4 *
@@ -164,6 +164,7 @@ EVP_sm4_cbc(void)
164{ 164{
165 return &sm4_cbc; 165 return &sm4_cbc;
166} 166}
167LCRYPTO_ALIAS(EVP_sm4_cbc);
167 168
168static const EVP_CIPHER sm4_cfb128 = { 169static const EVP_CIPHER sm4_cfb128 = {
169 .nid = NID_sm4_cfb128, 170 .nid = NID_sm4_cfb128,
@@ -185,6 +186,7 @@ EVP_sm4_cfb128(void)
185{ 186{
186 return &sm4_cfb128; 187 return &sm4_cfb128;
187} 188}
189LCRYPTO_ALIAS(EVP_sm4_cfb128);
188 190
189static const EVP_CIPHER sm4_ofb = { 191static const EVP_CIPHER sm4_ofb = {
190 .nid = NID_sm4_ofb128, 192 .nid = NID_sm4_ofb128,
@@ -206,6 +208,7 @@ EVP_sm4_ofb(void)
206{ 208{
207 return &sm4_ofb; 209 return &sm4_ofb;
208} 210}
211LCRYPTO_ALIAS(EVP_sm4_ofb);
209 212
210static const EVP_CIPHER sm4_ecb = { 213static const EVP_CIPHER sm4_ecb = {
211 .nid = NID_sm4_ecb, 214 .nid = NID_sm4_ecb,
@@ -227,6 +230,7 @@ EVP_sm4_ecb(void)
227{ 230{
228 return &sm4_ecb; 231 return &sm4_ecb;
229} 232}
233LCRYPTO_ALIAS(EVP_sm4_ecb);
230 234
231static int 235static int
232sm4_ctr_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out, const unsigned char *in, 236sm4_ctr_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out, const unsigned char *in,
@@ -259,4 +263,5 @@ EVP_sm4_ctr(void)
259{ 263{
260 return &sm4_ctr_mode; 264 return &sm4_ctr_mode;
261} 265}
266LCRYPTO_ALIAS(EVP_sm4_ctr);
262#endif 267#endif
diff --git a/src/lib/libcrypto/evp/e_xcbc_d.c b/src/lib/libcrypto/evp/e_xcbc_d.c
index dc01cbb982..1e3bee0791 100644
--- a/src/lib/libcrypto/evp/e_xcbc_d.c
+++ b/src/lib/libcrypto/evp/e_xcbc_d.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: e_xcbc_d.c,v 1.17 2024/01/07 15:42:57 tb Exp $ */ 1/* $OpenBSD: e_xcbc_d.c,v 1.18 2024/04/09 13:52:41 beck Exp $ */
2/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) 2/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
3 * All rights reserved. 3 * All rights reserved.
4 * 4 *
@@ -103,6 +103,7 @@ EVP_desx_cbc(void)
103{ 103{
104 return (&d_xcbc_cipher); 104 return (&d_xcbc_cipher);
105} 105}
106LCRYPTO_ALIAS(EVP_desx_cbc);
106 107
107static int 108static int
108desx_cbc_init_key(EVP_CIPHER_CTX *ctx, const unsigned char *key, 109desx_cbc_init_key(EVP_CIPHER_CTX *ctx, const unsigned char *key,
diff --git a/src/lib/libcrypto/evp/evp_aead.c b/src/lib/libcrypto/evp/evp_aead.c
index 3579533e5b..b35f5157ed 100644
--- a/src/lib/libcrypto/evp/evp_aead.c
+++ b/src/lib/libcrypto/evp/evp_aead.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: evp_aead.c,v 1.10 2023/07/07 19:37:53 beck Exp $ */ 1/* $OpenBSD: evp_aead.c,v 1.11 2024/04/09 13:52:41 beck Exp $ */
2/* 2/*
3 * Copyright (c) 2014, Google Inc. 3 * Copyright (c) 2014, Google Inc.
4 * 4 *
@@ -28,24 +28,28 @@ EVP_AEAD_key_length(const EVP_AEAD *aead)
28{ 28{
29 return aead->key_len; 29 return aead->key_len;
30} 30}
31LCRYPTO_ALIAS(EVP_AEAD_key_length);
31 32
32size_t 33size_t
33EVP_AEAD_nonce_length(const EVP_AEAD *aead) 34EVP_AEAD_nonce_length(const EVP_AEAD *aead)
34{ 35{
35 return aead->nonce_len; 36 return aead->nonce_len;
36} 37}
38LCRYPTO_ALIAS(EVP_AEAD_nonce_length);
37 39
38size_t 40size_t
39EVP_AEAD_max_overhead(const EVP_AEAD *aead) 41EVP_AEAD_max_overhead(const EVP_AEAD *aead)
40{ 42{
41 return aead->overhead; 43 return aead->overhead;
42} 44}
45LCRYPTO_ALIAS(EVP_AEAD_max_overhead);
43 46
44size_t 47size_t
45EVP_AEAD_max_tag_len(const EVP_AEAD *aead) 48EVP_AEAD_max_tag_len(const EVP_AEAD *aead)
46{ 49{
47 return aead->max_tag_len; 50 return aead->max_tag_len;
48} 51}
52LCRYPTO_ALIAS(EVP_AEAD_max_tag_len);
49 53
50int 54int
51EVP_AEAD_CTX_init(EVP_AEAD_CTX *ctx, const EVP_AEAD *aead, 55EVP_AEAD_CTX_init(EVP_AEAD_CTX *ctx, const EVP_AEAD *aead,
@@ -58,6 +62,7 @@ EVP_AEAD_CTX_init(EVP_AEAD_CTX *ctx, const EVP_AEAD *aead,
58 } 62 }
59 return aead->init(ctx, key, key_len, tag_len); 63 return aead->init(ctx, key, key_len, tag_len);
60} 64}
65LCRYPTO_ALIAS(EVP_AEAD_CTX_init);
61 66
62void 67void
63EVP_AEAD_CTX_cleanup(EVP_AEAD_CTX *ctx) 68EVP_AEAD_CTX_cleanup(EVP_AEAD_CTX *ctx)
@@ -67,12 +72,14 @@ EVP_AEAD_CTX_cleanup(EVP_AEAD_CTX *ctx)
67 ctx->aead->cleanup(ctx); 72 ctx->aead->cleanup(ctx);
68 ctx->aead = NULL; 73 ctx->aead = NULL;
69} 74}
75LCRYPTO_ALIAS(EVP_AEAD_CTX_cleanup);
70 76
71EVP_AEAD_CTX * 77EVP_AEAD_CTX *
72EVP_AEAD_CTX_new(void) 78EVP_AEAD_CTX_new(void)
73{ 79{
74 return calloc(1, sizeof(EVP_AEAD_CTX)); 80 return calloc(1, sizeof(EVP_AEAD_CTX));
75} 81}
82LCRYPTO_ALIAS(EVP_AEAD_CTX_new);
76 83
77void 84void
78EVP_AEAD_CTX_free(EVP_AEAD_CTX *ctx) 85EVP_AEAD_CTX_free(EVP_AEAD_CTX *ctx)
@@ -83,6 +90,7 @@ EVP_AEAD_CTX_free(EVP_AEAD_CTX *ctx)
83 EVP_AEAD_CTX_cleanup(ctx); 90 EVP_AEAD_CTX_cleanup(ctx);
84 free(ctx); 91 free(ctx);
85} 92}
93LCRYPTO_ALIAS(EVP_AEAD_CTX_free);
86 94
87/* check_alias returns 0 if out points within the buffer determined by in 95/* check_alias returns 0 if out points within the buffer determined by in
88 * and in_len and 1 otherwise. 96 * and in_len and 1 otherwise.
@@ -133,6 +141,7 @@ error:
133 *out_len = 0; 141 *out_len = 0;
134 return 0; 142 return 0;
135} 143}
144LCRYPTO_ALIAS(EVP_AEAD_CTX_seal);
136 145
137int 146int
138EVP_AEAD_CTX_open(const EVP_AEAD_CTX *ctx, unsigned char *out, size_t *out_len, 147EVP_AEAD_CTX_open(const EVP_AEAD_CTX *ctx, unsigned char *out, size_t *out_len,
@@ -158,3 +167,4 @@ error:
158 *out_len = 0; 167 *out_len = 0;
159 return 0; 168 return 0;
160} 169}
170LCRYPTO_ALIAS(EVP_AEAD_CTX_open);
diff --git a/src/lib/libcrypto/evp/evp_cipher.c b/src/lib/libcrypto/evp/evp_cipher.c
index 48aaea0f1b..c4b5034c25 100644
--- a/src/lib/libcrypto/evp/evp_cipher.c
+++ b/src/lib/libcrypto/evp/evp_cipher.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: evp_cipher.c,v 1.21 2024/03/02 09:55:30 tb Exp $ */ 1/* $OpenBSD: evp_cipher.c,v 1.22 2024/04/09 13:52:41 beck Exp $ */
2/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) 2/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
3 * All rights reserved. 3 * All rights reserved.
4 * 4 *
@@ -127,6 +127,7 @@ EVP_CipherInit(EVP_CIPHER_CTX *ctx, const EVP_CIPHER *cipher,
127{ 127{
128 return EVP_CipherInit_ex(ctx, cipher, NULL, key, iv, enc); 128 return EVP_CipherInit_ex(ctx, cipher, NULL, key, iv, enc);
129} 129}
130LCRYPTO_ALIAS(EVP_CipherInit);
130 131
131int 132int
132EVP_CipherInit_ex(EVP_CIPHER_CTX *ctx, const EVP_CIPHER *cipher, ENGINE *engine, 133EVP_CipherInit_ex(EVP_CIPHER_CTX *ctx, const EVP_CIPHER *cipher, ENGINE *engine,
@@ -242,6 +243,7 @@ EVP_CipherInit_ex(EVP_CIPHER_CTX *ctx, const EVP_CIPHER *cipher, ENGINE *engine,
242 243
243 return 1; 244 return 1;
244} 245}
246LCRYPTO_ALIAS(EVP_CipherInit_ex);
245 247
246int 248int
247EVP_CipherUpdate(EVP_CIPHER_CTX *ctx, unsigned char *out, int *out_len, 249EVP_CipherUpdate(EVP_CIPHER_CTX *ctx, unsigned char *out, int *out_len,
@@ -252,6 +254,7 @@ EVP_CipherUpdate(EVP_CIPHER_CTX *ctx, unsigned char *out, int *out_len,
252 254
253 return EVP_DecryptUpdate(ctx, out, out_len, in, in_len); 255 return EVP_DecryptUpdate(ctx, out, out_len, in, in_len);
254} 256}
257LCRYPTO_ALIAS(EVP_CipherUpdate);
255 258
256int 259int
257EVP_CipherFinal(EVP_CIPHER_CTX *ctx, unsigned char *out, int *out_len) 260EVP_CipherFinal(EVP_CIPHER_CTX *ctx, unsigned char *out, int *out_len)
@@ -270,6 +273,7 @@ EVP_CipherFinal_ex(EVP_CIPHER_CTX *ctx, unsigned char *out, int *out_len)
270 273
271 return EVP_DecryptFinal_ex(ctx, out, out_len); 274 return EVP_DecryptFinal_ex(ctx, out, out_len);
272} 275}
276LCRYPTO_ALIAS(EVP_CipherFinal_ex);
273 277
274int 278int
275EVP_EncryptInit(EVP_CIPHER_CTX *ctx, const EVP_CIPHER *cipher, 279EVP_EncryptInit(EVP_CIPHER_CTX *ctx, const EVP_CIPHER *cipher,
@@ -277,6 +281,7 @@ EVP_EncryptInit(EVP_CIPHER_CTX *ctx, const EVP_CIPHER *cipher,
277{ 281{
278 return EVP_CipherInit(ctx, cipher, key, iv, 1); 282 return EVP_CipherInit(ctx, cipher, key, iv, 1);
279} 283}
284LCRYPTO_ALIAS(EVP_EncryptInit);
280 285
281int 286int
282EVP_EncryptInit_ex(EVP_CIPHER_CTX *ctx, const EVP_CIPHER *cipher, ENGINE *engine, 287EVP_EncryptInit_ex(EVP_CIPHER_CTX *ctx, const EVP_CIPHER *cipher, ENGINE *engine,
@@ -284,6 +289,7 @@ EVP_EncryptInit_ex(EVP_CIPHER_CTX *ctx, const EVP_CIPHER *cipher, ENGINE *engine
284{ 289{
285 return EVP_CipherInit_ex(ctx, cipher, NULL, key, iv, 1); 290 return EVP_CipherInit_ex(ctx, cipher, NULL, key, iv, 1);
286} 291}
292LCRYPTO_ALIAS(EVP_EncryptInit_ex);
287 293
288/* 294/*
289 * EVP_Cipher() is an implementation detail of EVP_Cipher{Update,Final}(). 295 * EVP_Cipher() is an implementation detail of EVP_Cipher{Update,Final}().
@@ -303,6 +309,7 @@ EVP_Cipher(EVP_CIPHER_CTX *ctx, unsigned char *out, const unsigned char *in,
303{ 309{
304 return ctx->cipher->do_cipher(ctx, out, in, in_len); 310 return ctx->cipher->do_cipher(ctx, out, in, in_len);
305} 311}
312LCRYPTO_ALIAS(EVP_Cipher);
306 313
307static int 314static int
308evp_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out, int *out_len, 315evp_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out, int *out_len,
@@ -413,6 +420,7 @@ EVP_EncryptUpdate(EVP_CIPHER_CTX *ctx, unsigned char *out, int *out_len,
413 420
414 return 1; 421 return 1;
415} 422}
423LCRYPTO_ALIAS(EVP_EncryptUpdate);
416 424
417int 425int
418EVP_EncryptFinal(EVP_CIPHER_CTX *ctx, unsigned char *out, int *out_len) 426EVP_EncryptFinal(EVP_CIPHER_CTX *ctx, unsigned char *out, int *out_len)
@@ -453,6 +461,7 @@ EVP_EncryptFinal_ex(EVP_CIPHER_CTX *ctx, unsigned char *out, int *out_len)
453 461
454 return evp_cipher(ctx, out, out_len, ctx->buf, block_size); 462 return evp_cipher(ctx, out, out_len, ctx->buf, block_size);
455} 463}
464LCRYPTO_ALIAS(EVP_EncryptFinal_ex);
456 465
457int 466int
458EVP_DecryptInit(EVP_CIPHER_CTX *ctx, const EVP_CIPHER *cipher, 467EVP_DecryptInit(EVP_CIPHER_CTX *ctx, const EVP_CIPHER *cipher,
@@ -460,6 +469,7 @@ EVP_DecryptInit(EVP_CIPHER_CTX *ctx, const EVP_CIPHER *cipher,
460{ 469{
461 return EVP_CipherInit(ctx, cipher, key, iv, 0); 470 return EVP_CipherInit(ctx, cipher, key, iv, 0);
462} 471}
472LCRYPTO_ALIAS(EVP_DecryptInit);
463 473
464int 474int
465EVP_DecryptInit_ex(EVP_CIPHER_CTX *ctx, const EVP_CIPHER *cipher, ENGINE *engine, 475EVP_DecryptInit_ex(EVP_CIPHER_CTX *ctx, const EVP_CIPHER *cipher, ENGINE *engine,
@@ -467,6 +477,7 @@ EVP_DecryptInit_ex(EVP_CIPHER_CTX *ctx, const EVP_CIPHER *cipher, ENGINE *engine
467{ 477{
468 return EVP_CipherInit_ex(ctx, cipher, NULL, key, iv, 0); 478 return EVP_CipherInit_ex(ctx, cipher, NULL, key, iv, 0);
469} 479}
480LCRYPTO_ALIAS(EVP_DecryptInit_ex);
470 481
471int 482int
472EVP_DecryptUpdate(EVP_CIPHER_CTX *ctx, unsigned char *out, int *out_len, 483EVP_DecryptUpdate(EVP_CIPHER_CTX *ctx, unsigned char *out, int *out_len,
@@ -536,6 +547,7 @@ EVP_DecryptUpdate(EVP_CIPHER_CTX *ctx, unsigned char *out, int *out_len,
536 547
537 return 1; 548 return 1;
538} 549}
550LCRYPTO_ALIAS(EVP_DecryptUpdate);
539 551
540int 552int
541EVP_DecryptFinal(EVP_CIPHER_CTX *ctx, unsigned char *out, int *out_len) 553EVP_DecryptFinal(EVP_CIPHER_CTX *ctx, unsigned char *out, int *out_len)
@@ -594,12 +606,14 @@ EVP_DecryptFinal_ex(EVP_CIPHER_CTX *ctx, unsigned char *out, int *out_len)
594 606
595 return 1; 607 return 1;
596} 608}
609LCRYPTO_ALIAS(EVP_DecryptFinal_ex);
597 610
598EVP_CIPHER_CTX * 611EVP_CIPHER_CTX *
599EVP_CIPHER_CTX_new(void) 612EVP_CIPHER_CTX_new(void)
600{ 613{
601 return calloc(1, sizeof(EVP_CIPHER_CTX)); 614 return calloc(1, sizeof(EVP_CIPHER_CTX));
602} 615}
616LCRYPTO_ALIAS(EVP_CIPHER_CTX_new);
603 617
604void 618void
605EVP_CIPHER_CTX_free(EVP_CIPHER_CTX *ctx) 619EVP_CIPHER_CTX_free(EVP_CIPHER_CTX *ctx)
@@ -611,6 +625,7 @@ EVP_CIPHER_CTX_free(EVP_CIPHER_CTX *ctx)
611 625
612 free(ctx); 626 free(ctx);
613} 627}
628LCRYPTO_ALIAS(EVP_CIPHER_CTX_free);
614 629
615void 630void
616EVP_CIPHER_CTX_legacy_clear(EVP_CIPHER_CTX *ctx) 631EVP_CIPHER_CTX_legacy_clear(EVP_CIPHER_CTX *ctx)
@@ -629,6 +644,7 @@ EVP_CIPHER_CTX_reset(EVP_CIPHER_CTX *ctx)
629{ 644{
630 return EVP_CIPHER_CTX_cleanup(ctx); 645 return EVP_CIPHER_CTX_cleanup(ctx);
631} 646}
647LCRYPTO_ALIAS(EVP_CIPHER_CTX_reset);
632 648
633int 649int
634EVP_CIPHER_CTX_cleanup(EVP_CIPHER_CTX *ctx) 650EVP_CIPHER_CTX_cleanup(EVP_CIPHER_CTX *ctx)
@@ -651,6 +667,7 @@ EVP_CIPHER_CTX_cleanup(EVP_CIPHER_CTX *ctx)
651 667
652 return 1; 668 return 1;
653} 669}
670LCRYPTO_ALIAS(EVP_CIPHER_CTX_cleanup);
654 671
655int 672int
656EVP_CIPHER_CTX_ctrl(EVP_CIPHER_CTX *ctx, int type, int arg, void *ptr) 673EVP_CIPHER_CTX_ctrl(EVP_CIPHER_CTX *ctx, int type, int arg, void *ptr)
@@ -674,6 +691,7 @@ EVP_CIPHER_CTX_ctrl(EVP_CIPHER_CTX *ctx, int type, int arg, void *ptr)
674 } 691 }
675 return ret; 692 return ret;
676} 693}
694LCRYPTO_ALIAS(EVP_CIPHER_CTX_ctrl);
677 695
678int 696int
679EVP_CIPHER_CTX_rand_key(EVP_CIPHER_CTX *ctx, unsigned char *key) 697EVP_CIPHER_CTX_rand_key(EVP_CIPHER_CTX *ctx, unsigned char *key)
@@ -683,6 +701,7 @@ EVP_CIPHER_CTX_rand_key(EVP_CIPHER_CTX *ctx, unsigned char *key)
683 arc4random_buf(key, ctx->key_len); 701 arc4random_buf(key, ctx->key_len);
684 return 1; 702 return 1;
685} 703}
704LCRYPTO_ALIAS(EVP_CIPHER_CTX_rand_key);
686 705
687int 706int
688EVP_CIPHER_CTX_copy(EVP_CIPHER_CTX *out, const EVP_CIPHER_CTX *in) 707EVP_CIPHER_CTX_copy(EVP_CIPHER_CTX *out, const EVP_CIPHER_CTX *in)
@@ -722,6 +741,7 @@ EVP_CIPHER_CTX_copy(EVP_CIPHER_CTX *out, const EVP_CIPHER_CTX *in)
722 741
723 return 1; 742 return 1;
724} 743}
744LCRYPTO_ALIAS(EVP_CIPHER_CTX_copy);
725 745
726/* 746/*
727 * EVP_CIPHER_CTX accessors. 747 * EVP_CIPHER_CTX accessors.
@@ -732,12 +752,14 @@ EVP_CIPHER_CTX_cipher(const EVP_CIPHER_CTX *ctx)
732{ 752{
733 return ctx->cipher; 753 return ctx->cipher;
734} 754}
755LCRYPTO_ALIAS(EVP_CIPHER_CTX_cipher);
735 756
736int 757int
737EVP_CIPHER_CTX_encrypting(const EVP_CIPHER_CTX *ctx) 758EVP_CIPHER_CTX_encrypting(const EVP_CIPHER_CTX *ctx)
738{ 759{
739 return ctx->encrypt; 760 return ctx->encrypt;
740} 761}
762LCRYPTO_ALIAS(EVP_CIPHER_CTX_encrypting);
741 763
742int 764int
743EVP_CIPHER_CTX_get_iv(const EVP_CIPHER_CTX *ctx, unsigned char *iv, size_t len) 765EVP_CIPHER_CTX_get_iv(const EVP_CIPHER_CTX *ctx, unsigned char *iv, size_t len)
@@ -757,6 +779,7 @@ EVP_CIPHER_CTX_get_iv(const EVP_CIPHER_CTX *ctx, unsigned char *iv, size_t len)
757 } 779 }
758 return 1; 780 return 1;
759} 781}
782LCRYPTO_ALIAS(EVP_CIPHER_CTX_get_iv);
760 783
761int 784int
762EVP_CIPHER_CTX_set_iv(EVP_CIPHER_CTX *ctx, const unsigned char *iv, size_t len) 785EVP_CIPHER_CTX_set_iv(EVP_CIPHER_CTX *ctx, const unsigned char *iv, size_t len)
@@ -776,30 +799,35 @@ EVP_CIPHER_CTX_set_iv(EVP_CIPHER_CTX *ctx, const unsigned char *iv, size_t len)
776 } 799 }
777 return 1; 800 return 1;
778} 801}
802LCRYPTO_ALIAS(EVP_CIPHER_CTX_set_iv);
779 803
780unsigned char * 804unsigned char *
781EVP_CIPHER_CTX_buf_noconst(EVP_CIPHER_CTX *ctx) 805EVP_CIPHER_CTX_buf_noconst(EVP_CIPHER_CTX *ctx)
782{ 806{
783 return ctx->buf; 807 return ctx->buf;
784} 808}
809LCRYPTO_ALIAS(EVP_CIPHER_CTX_buf_noconst);
785 810
786void * 811void *
787EVP_CIPHER_CTX_get_app_data(const EVP_CIPHER_CTX *ctx) 812EVP_CIPHER_CTX_get_app_data(const EVP_CIPHER_CTX *ctx)
788{ 813{
789 return ctx->app_data; 814 return ctx->app_data;
790} 815}
816LCRYPTO_ALIAS(EVP_CIPHER_CTX_get_app_data);
791 817
792void 818void
793EVP_CIPHER_CTX_set_app_data(EVP_CIPHER_CTX *ctx, void *data) 819EVP_CIPHER_CTX_set_app_data(EVP_CIPHER_CTX *ctx, void *data)
794{ 820{
795 ctx->app_data = data; 821 ctx->app_data = data;
796} 822}
823LCRYPTO_ALIAS(EVP_CIPHER_CTX_set_app_data);
797 824
798int 825int
799EVP_CIPHER_CTX_key_length(const EVP_CIPHER_CTX *ctx) 826EVP_CIPHER_CTX_key_length(const EVP_CIPHER_CTX *ctx)
800{ 827{
801 return ctx->key_len; 828 return ctx->key_len;
802} 829}
830LCRYPTO_ALIAS(EVP_CIPHER_CTX_key_length);
803 831
804int 832int
805EVP_CIPHER_CTX_set_key_length(EVP_CIPHER_CTX *ctx, int key_len) 833EVP_CIPHER_CTX_set_key_length(EVP_CIPHER_CTX *ctx, int key_len)
@@ -813,6 +841,7 @@ EVP_CIPHER_CTX_set_key_length(EVP_CIPHER_CTX *ctx, int key_len)
813 EVPerror(EVP_R_INVALID_KEY_LENGTH); 841 EVPerror(EVP_R_INVALID_KEY_LENGTH);
814 return 0; 842 return 0;
815} 843}
844LCRYPTO_ALIAS(EVP_CIPHER_CTX_set_key_length);
816 845
817int 846int
818EVP_CIPHER_CTX_set_padding(EVP_CIPHER_CTX *ctx, int pad) 847EVP_CIPHER_CTX_set_padding(EVP_CIPHER_CTX *ctx, int pad)
@@ -823,30 +852,35 @@ EVP_CIPHER_CTX_set_padding(EVP_CIPHER_CTX *ctx, int pad)
823 ctx->flags |= EVP_CIPH_NO_PADDING; 852 ctx->flags |= EVP_CIPH_NO_PADDING;
824 return 1; 853 return 1;
825} 854}
855LCRYPTO_ALIAS(EVP_CIPHER_CTX_set_padding);
826 856
827void 857void
828EVP_CIPHER_CTX_set_flags(EVP_CIPHER_CTX *ctx, int flags) 858EVP_CIPHER_CTX_set_flags(EVP_CIPHER_CTX *ctx, int flags)
829{ 859{
830 ctx->flags |= flags; 860 ctx->flags |= flags;
831} 861}
862LCRYPTO_ALIAS(EVP_CIPHER_CTX_set_flags);
832 863
833void 864void
834EVP_CIPHER_CTX_clear_flags(EVP_CIPHER_CTX *ctx, int flags) 865EVP_CIPHER_CTX_clear_flags(EVP_CIPHER_CTX *ctx, int flags)
835{ 866{
836 ctx->flags &= ~flags; 867 ctx->flags &= ~flags;
837} 868}
869LCRYPTO_ALIAS(EVP_CIPHER_CTX_clear_flags);
838 870
839int 871int
840EVP_CIPHER_CTX_test_flags(const EVP_CIPHER_CTX *ctx, int flags) 872EVP_CIPHER_CTX_test_flags(const EVP_CIPHER_CTX *ctx, int flags)
841{ 873{
842 return (ctx->flags & flags); 874 return (ctx->flags & flags);
843} 875}
876LCRYPTO_ALIAS(EVP_CIPHER_CTX_test_flags);
844 877
845void * 878void *
846EVP_CIPHER_CTX_get_cipher_data(const EVP_CIPHER_CTX *ctx) 879EVP_CIPHER_CTX_get_cipher_data(const EVP_CIPHER_CTX *ctx)
847{ 880{
848 return ctx->cipher_data; 881 return ctx->cipher_data;
849} 882}
883LCRYPTO_ALIAS(EVP_CIPHER_CTX_get_cipher_data);
850 884
851void * 885void *
852EVP_CIPHER_CTX_set_cipher_data(EVP_CIPHER_CTX *ctx, void *cipher_data) 886EVP_CIPHER_CTX_set_cipher_data(EVP_CIPHER_CTX *ctx, void *cipher_data)
@@ -858,6 +892,7 @@ EVP_CIPHER_CTX_set_cipher_data(EVP_CIPHER_CTX *ctx, void *cipher_data)
858 892
859 return old_cipher_data; 893 return old_cipher_data;
860} 894}
895LCRYPTO_ALIAS(EVP_CIPHER_CTX_set_cipher_data);
861 896
862/* 897/*
863 * EVP_CIPHER_CTX getters that reach into the cipher attached to the context. 898 * EVP_CIPHER_CTX getters that reach into the cipher attached to the context.
@@ -868,12 +903,14 @@ EVP_CIPHER_CTX_nid(const EVP_CIPHER_CTX *ctx)
868{ 903{
869 return ctx->cipher->nid; 904 return ctx->cipher->nid;
870} 905}
906LCRYPTO_ALIAS(EVP_CIPHER_CTX_nid);
871 907
872int 908int
873EVP_CIPHER_CTX_block_size(const EVP_CIPHER_CTX *ctx) 909EVP_CIPHER_CTX_block_size(const EVP_CIPHER_CTX *ctx)
874{ 910{
875 return ctx->cipher->block_size; 911 return ctx->cipher->block_size;
876} 912}
913LCRYPTO_ALIAS(EVP_CIPHER_CTX_block_size);
877 914
878int 915int
879EVP_CIPHER_CTX_iv_length(const EVP_CIPHER_CTX *ctx) 916EVP_CIPHER_CTX_iv_length(const EVP_CIPHER_CTX *ctx)
@@ -893,12 +930,14 @@ EVP_CIPHER_CTX_iv_length(const EVP_CIPHER_CTX *ctx)
893 930
894 return iv_length; 931 return iv_length;
895} 932}
933LCRYPTO_ALIAS(EVP_CIPHER_CTX_iv_length);
896 934
897unsigned long 935unsigned long
898EVP_CIPHER_CTX_flags(const EVP_CIPHER_CTX *ctx) 936EVP_CIPHER_CTX_flags(const EVP_CIPHER_CTX *ctx)
899{ 937{
900 return ctx->cipher->flags; 938 return ctx->cipher->flags;
901} 939}
940LCRYPTO_ALIAS(EVP_CIPHER_CTX_flags);
902 941
903/* 942/*
904 * Used by CMS and its predecessors. Only GOST and RC2 have a custom method. 943 * Used by CMS and its predecessors. Only GOST and RC2 have a custom method.
@@ -1020,6 +1059,7 @@ EVP_CIPHER_type(const EVP_CIPHER *cipher)
1020 return nid; 1059 return nid;
1021 } 1060 }
1022} 1061}
1062LCRYPTO_ALIAS(EVP_CIPHER_type);
1023 1063
1024/* 1064/*
1025 * Accessors. First the trivial getters, then the setters for the method API. 1065 * Accessors. First the trivial getters, then the setters for the method API.
@@ -1030,30 +1070,35 @@ EVP_CIPHER_nid(const EVP_CIPHER *cipher)
1030{ 1070{
1031 return cipher->nid; 1071 return cipher->nid;
1032} 1072}
1073LCRYPTO_ALIAS(EVP_CIPHER_nid);
1033 1074
1034int 1075int
1035EVP_CIPHER_block_size(const EVP_CIPHER *cipher) 1076EVP_CIPHER_block_size(const EVP_CIPHER *cipher)
1036{ 1077{
1037 return cipher->block_size; 1078 return cipher->block_size;
1038} 1079}
1080LCRYPTO_ALIAS(EVP_CIPHER_block_size);
1039 1081
1040int 1082int
1041EVP_CIPHER_key_length(const EVP_CIPHER *cipher) 1083EVP_CIPHER_key_length(const EVP_CIPHER *cipher)
1042{ 1084{
1043 return cipher->key_len; 1085 return cipher->key_len;
1044} 1086}
1087LCRYPTO_ALIAS(EVP_CIPHER_key_length);
1045 1088
1046int 1089int
1047EVP_CIPHER_iv_length(const EVP_CIPHER *cipher) 1090EVP_CIPHER_iv_length(const EVP_CIPHER *cipher)
1048{ 1091{
1049 return cipher->iv_len; 1092 return cipher->iv_len;
1050} 1093}
1094LCRYPTO_ALIAS(EVP_CIPHER_iv_length);
1051 1095
1052unsigned long 1096unsigned long
1053EVP_CIPHER_flags(const EVP_CIPHER *cipher) 1097EVP_CIPHER_flags(const EVP_CIPHER *cipher)
1054{ 1098{
1055 return cipher->flags; 1099 return cipher->flags;
1056} 1100}
1101LCRYPTO_ALIAS(EVP_CIPHER_flags);
1057 1102
1058EVP_CIPHER * 1103EVP_CIPHER *
1059EVP_CIPHER_meth_new(int cipher_type, int block_size, int key_len) 1104EVP_CIPHER_meth_new(int cipher_type, int block_size, int key_len)
@@ -1076,6 +1121,7 @@ EVP_CIPHER_meth_new(int cipher_type, int block_size, int key_len)
1076 1121
1077 return cipher; 1122 return cipher;
1078} 1123}
1124LCRYPTO_ALIAS(EVP_CIPHER_meth_new);
1079 1125
1080EVP_CIPHER * 1126EVP_CIPHER *
1081EVP_CIPHER_meth_dup(const EVP_CIPHER *cipher) 1127EVP_CIPHER_meth_dup(const EVP_CIPHER *cipher)
@@ -1089,12 +1135,14 @@ EVP_CIPHER_meth_dup(const EVP_CIPHER *cipher)
1089 1135
1090 return copy; 1136 return copy;
1091} 1137}
1138LCRYPTO_ALIAS(EVP_CIPHER_meth_dup);
1092 1139
1093void 1140void
1094EVP_CIPHER_meth_free(EVP_CIPHER *cipher) 1141EVP_CIPHER_meth_free(EVP_CIPHER *cipher)
1095{ 1142{
1096 free(cipher); 1143 free(cipher);
1097} 1144}
1145LCRYPTO_ALIAS(EVP_CIPHER_meth_free);
1098 1146
1099int 1147int
1100EVP_CIPHER_meth_set_iv_length(EVP_CIPHER *cipher, int iv_len) 1148EVP_CIPHER_meth_set_iv_length(EVP_CIPHER *cipher, int iv_len)
@@ -1103,6 +1151,7 @@ EVP_CIPHER_meth_set_iv_length(EVP_CIPHER *cipher, int iv_len)
1103 1151
1104 return 1; 1152 return 1;
1105} 1153}
1154LCRYPTO_ALIAS(EVP_CIPHER_meth_set_iv_length);
1106 1155
1107int 1156int
1108EVP_CIPHER_meth_set_flags(EVP_CIPHER *cipher, unsigned long flags) 1157EVP_CIPHER_meth_set_flags(EVP_CIPHER *cipher, unsigned long flags)
@@ -1111,6 +1160,7 @@ EVP_CIPHER_meth_set_flags(EVP_CIPHER *cipher, unsigned long flags)
1111 1160
1112 return 1; 1161 return 1;
1113} 1162}
1163LCRYPTO_ALIAS(EVP_CIPHER_meth_set_flags);
1114 1164
1115int 1165int
1116EVP_CIPHER_meth_set_impl_ctx_size(EVP_CIPHER *cipher, int ctx_size) 1166EVP_CIPHER_meth_set_impl_ctx_size(EVP_CIPHER *cipher, int ctx_size)
@@ -1119,6 +1169,7 @@ EVP_CIPHER_meth_set_impl_ctx_size(EVP_CIPHER *cipher, int ctx_size)
1119 1169
1120 return 1; 1170 return 1;
1121} 1171}
1172LCRYPTO_ALIAS(EVP_CIPHER_meth_set_impl_ctx_size);
1122 1173
1123int 1174int
1124EVP_CIPHER_meth_set_init(EVP_CIPHER *cipher, 1175EVP_CIPHER_meth_set_init(EVP_CIPHER *cipher,
@@ -1129,6 +1180,7 @@ EVP_CIPHER_meth_set_init(EVP_CIPHER *cipher,
1129 1180
1130 return 1; 1181 return 1;
1131} 1182}
1183LCRYPTO_ALIAS(EVP_CIPHER_meth_set_init);
1132 1184
1133int 1185int
1134EVP_CIPHER_meth_set_do_cipher(EVP_CIPHER *cipher, 1186EVP_CIPHER_meth_set_do_cipher(EVP_CIPHER *cipher,
@@ -1139,6 +1191,7 @@ EVP_CIPHER_meth_set_do_cipher(EVP_CIPHER *cipher,
1139 1191
1140 return 1; 1192 return 1;
1141} 1193}
1194LCRYPTO_ALIAS(EVP_CIPHER_meth_set_do_cipher);
1142 1195
1143int 1196int
1144EVP_CIPHER_meth_set_cleanup(EVP_CIPHER *cipher, 1197EVP_CIPHER_meth_set_cleanup(EVP_CIPHER *cipher,
@@ -1148,6 +1201,7 @@ EVP_CIPHER_meth_set_cleanup(EVP_CIPHER *cipher,
1148 1201
1149 return 1; 1202 return 1;
1150} 1203}
1204LCRYPTO_ALIAS(EVP_CIPHER_meth_set_cleanup);
1151 1205
1152int 1206int
1153EVP_CIPHER_meth_set_set_asn1_params(EVP_CIPHER *cipher, 1207EVP_CIPHER_meth_set_set_asn1_params(EVP_CIPHER *cipher,
@@ -1157,6 +1211,7 @@ EVP_CIPHER_meth_set_set_asn1_params(EVP_CIPHER *cipher,
1157 1211
1158 return 1; 1212 return 1;
1159} 1213}
1214LCRYPTO_ALIAS(EVP_CIPHER_meth_set_set_asn1_params);
1160 1215
1161int 1216int
1162EVP_CIPHER_meth_set_get_asn1_params(EVP_CIPHER *cipher, 1217EVP_CIPHER_meth_set_get_asn1_params(EVP_CIPHER *cipher,
@@ -1166,6 +1221,7 @@ EVP_CIPHER_meth_set_get_asn1_params(EVP_CIPHER *cipher,
1166 1221
1167 return 1; 1222 return 1;
1168} 1223}
1224LCRYPTO_ALIAS(EVP_CIPHER_meth_set_get_asn1_params);
1169 1225
1170int 1226int
1171EVP_CIPHER_meth_set_ctrl(EVP_CIPHER *cipher, 1227EVP_CIPHER_meth_set_ctrl(EVP_CIPHER *cipher,
@@ -1175,3 +1231,4 @@ EVP_CIPHER_meth_set_ctrl(EVP_CIPHER *cipher,
1175 1231
1176 return 1; 1232 return 1;
1177} 1233}
1234LCRYPTO_ALIAS(EVP_CIPHER_meth_set_ctrl);
diff --git a/src/lib/libcrypto/evp/evp_digest.c b/src/lib/libcrypto/evp/evp_digest.c
index d360760295..3eb6c258bf 100644
--- a/src/lib/libcrypto/evp/evp_digest.c
+++ b/src/lib/libcrypto/evp/evp_digest.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: evp_digest.c,v 1.12 2024/03/02 09:59:56 tb Exp $ */ 1/* $OpenBSD: evp_digest.c,v 1.13 2024/04/09 13:52:41 beck Exp $ */
2/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) 2/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
3 * All rights reserved. 3 * All rights reserved.
4 * 4 *
@@ -126,6 +126,7 @@ EVP_DigestInit(EVP_MD_CTX *ctx, const EVP_MD *type)
126 EVP_MD_CTX_legacy_clear(ctx); 126 EVP_MD_CTX_legacy_clear(ctx);
127 return EVP_DigestInit_ex(ctx, type, NULL); 127 return EVP_DigestInit_ex(ctx, type, NULL);
128} 128}
129LCRYPTO_ALIAS(EVP_DigestInit);
129 130
130int 131int
131EVP_DigestInit_ex(EVP_MD_CTX *ctx, const EVP_MD *type, ENGINE *impl) 132EVP_DigestInit_ex(EVP_MD_CTX *ctx, const EVP_MD *type, ENGINE *impl)
@@ -161,12 +162,14 @@ EVP_DigestInit_ex(EVP_MD_CTX *ctx, const EVP_MD *type, ENGINE *impl)
161 return 1; 162 return 1;
162 return ctx->digest->init(ctx); 163 return ctx->digest->init(ctx);
163} 164}
165LCRYPTO_ALIAS(EVP_DigestInit_ex);
164 166
165int 167int
166EVP_DigestUpdate(EVP_MD_CTX *ctx, const void *data, size_t count) 168EVP_DigestUpdate(EVP_MD_CTX *ctx, const void *data, size_t count)
167{ 169{
168 return ctx->update(ctx, data, count); 170 return ctx->update(ctx, data, count);
169} 171}
172LCRYPTO_ALIAS(EVP_DigestUpdate);
170 173
171/* The caller can assume that this removes any secret data from the context */ 174/* The caller can assume that this removes any secret data from the context */
172int 175int
@@ -178,6 +181,7 @@ EVP_DigestFinal(EVP_MD_CTX *ctx, unsigned char *md, unsigned int *size)
178 EVP_MD_CTX_cleanup(ctx); 181 EVP_MD_CTX_cleanup(ctx);
179 return ret; 182 return ret;
180} 183}
184LCRYPTO_ALIAS(EVP_DigestFinal);
181 185
182/* The caller can assume that this removes any secret data from the context */ 186/* The caller can assume that this removes any secret data from the context */
183int 187int
@@ -199,6 +203,7 @@ EVP_DigestFinal_ex(EVP_MD_CTX *ctx, unsigned char *md, unsigned int *size)
199 memset(ctx->md_data, 0, ctx->digest->ctx_size); 203 memset(ctx->md_data, 0, ctx->digest->ctx_size);
200 return ret; 204 return ret;
201} 205}
206LCRYPTO_ALIAS(EVP_DigestFinal_ex);
202 207
203int 208int
204EVP_Digest(const void *data, size_t count, 209EVP_Digest(const void *data, size_t count,
@@ -216,12 +221,14 @@ EVP_Digest(const void *data, size_t count,
216 221
217 return ret; 222 return ret;
218} 223}
224LCRYPTO_ALIAS(EVP_Digest);
219 225
220EVP_MD_CTX * 226EVP_MD_CTX *
221EVP_MD_CTX_new(void) 227EVP_MD_CTX_new(void)
222{ 228{
223 return calloc(1, sizeof(EVP_MD_CTX)); 229 return calloc(1, sizeof(EVP_MD_CTX));
224} 230}
231LCRYPTO_ALIAS(EVP_MD_CTX_new);
225 232
226void 233void
227EVP_MD_CTX_free(EVP_MD_CTX *ctx) 234EVP_MD_CTX_free(EVP_MD_CTX *ctx)
@@ -233,18 +240,21 @@ EVP_MD_CTX_free(EVP_MD_CTX *ctx)
233 240
234 free(ctx); 241 free(ctx);
235} 242}
243LCRYPTO_ALIAS(EVP_MD_CTX_free);
236 244
237EVP_MD_CTX * 245EVP_MD_CTX *
238EVP_MD_CTX_create(void) 246EVP_MD_CTX_create(void)
239{ 247{
240 return EVP_MD_CTX_new(); 248 return EVP_MD_CTX_new();
241} 249}
250LCRYPTO_ALIAS(EVP_MD_CTX_create);
242 251
243void 252void
244EVP_MD_CTX_destroy(EVP_MD_CTX *ctx) 253EVP_MD_CTX_destroy(EVP_MD_CTX *ctx)
245{ 254{
246 EVP_MD_CTX_free(ctx); 255 EVP_MD_CTX_free(ctx);
247} 256}
257LCRYPTO_ALIAS(EVP_MD_CTX_destroy);
248 258
249void 259void
250EVP_MD_CTX_legacy_clear(EVP_MD_CTX *ctx) 260EVP_MD_CTX_legacy_clear(EVP_MD_CTX *ctx)
@@ -263,6 +273,7 @@ EVP_MD_CTX_reset(EVP_MD_CTX *ctx)
263{ 273{
264 return EVP_MD_CTX_cleanup(ctx); 274 return EVP_MD_CTX_cleanup(ctx);
265} 275}
276LCRYPTO_ALIAS(EVP_MD_CTX_reset);
266 277
267int 278int
268EVP_MD_CTX_cleanup(EVP_MD_CTX *ctx) 279EVP_MD_CTX_cleanup(EVP_MD_CTX *ctx)
@@ -290,6 +301,7 @@ EVP_MD_CTX_cleanup(EVP_MD_CTX *ctx)
290 301
291 return 1; 302 return 1;
292} 303}
304LCRYPTO_ALIAS(EVP_MD_CTX_cleanup);
293 305
294int 306int
295EVP_MD_CTX_copy(EVP_MD_CTX *out, const EVP_MD_CTX *in) 307EVP_MD_CTX_copy(EVP_MD_CTX *out, const EVP_MD_CTX *in)
@@ -297,6 +309,7 @@ EVP_MD_CTX_copy(EVP_MD_CTX *out, const EVP_MD_CTX *in)
297 EVP_MD_CTX_legacy_clear(out); 309 EVP_MD_CTX_legacy_clear(out);
298 return EVP_MD_CTX_copy_ex(out, in); 310 return EVP_MD_CTX_copy_ex(out, in);
299} 311}
312LCRYPTO_ALIAS(EVP_MD_CTX_copy);
300 313
301int 314int
302EVP_MD_CTX_copy_ex(EVP_MD_CTX *out, const EVP_MD_CTX *in) 315EVP_MD_CTX_copy_ex(EVP_MD_CTX *out, const EVP_MD_CTX *in)
@@ -352,6 +365,7 @@ EVP_MD_CTX_copy_ex(EVP_MD_CTX *out, const EVP_MD_CTX *in)
352 365
353 return 1; 366 return 1;
354} 367}
368LCRYPTO_ALIAS(EVP_MD_CTX_copy_ex);
355 369
356int 370int
357EVP_MD_CTX_ctrl(EVP_MD_CTX *ctx, int type, int arg, void *ptr) 371EVP_MD_CTX_ctrl(EVP_MD_CTX *ctx, int type, int arg, void *ptr)
@@ -375,6 +389,7 @@ EVP_MD_CTX_ctrl(EVP_MD_CTX *ctx, int type, int arg, void *ptr)
375 } 389 }
376 return ret; 390 return ret;
377} 391}
392LCRYPTO_ALIAS(EVP_MD_CTX_ctrl);
378 393
379const EVP_MD * 394const EVP_MD *
380EVP_MD_CTX_md(const EVP_MD_CTX *ctx) 395EVP_MD_CTX_md(const EVP_MD_CTX *ctx)
@@ -383,36 +398,42 @@ EVP_MD_CTX_md(const EVP_MD_CTX *ctx)
383 return NULL; 398 return NULL;
384 return ctx->digest; 399 return ctx->digest;
385} 400}
401LCRYPTO_ALIAS(EVP_MD_CTX_md);
386 402
387void 403void
388EVP_MD_CTX_clear_flags(EVP_MD_CTX *ctx, int flags) 404EVP_MD_CTX_clear_flags(EVP_MD_CTX *ctx, int flags)
389{ 405{
390 ctx->flags &= ~flags; 406 ctx->flags &= ~flags;
391} 407}
408LCRYPTO_ALIAS(EVP_MD_CTX_clear_flags);
392 409
393void 410void
394EVP_MD_CTX_set_flags(EVP_MD_CTX *ctx, int flags) 411EVP_MD_CTX_set_flags(EVP_MD_CTX *ctx, int flags)
395{ 412{
396 ctx->flags |= flags; 413 ctx->flags |= flags;
397} 414}
415LCRYPTO_ALIAS(EVP_MD_CTX_set_flags);
398 416
399int 417int
400EVP_MD_CTX_test_flags(const EVP_MD_CTX *ctx, int flags) 418EVP_MD_CTX_test_flags(const EVP_MD_CTX *ctx, int flags)
401{ 419{
402 return (ctx->flags & flags); 420 return (ctx->flags & flags);
403} 421}
422LCRYPTO_ALIAS(EVP_MD_CTX_test_flags);
404 423
405void * 424void *
406EVP_MD_CTX_md_data(const EVP_MD_CTX *ctx) 425EVP_MD_CTX_md_data(const EVP_MD_CTX *ctx)
407{ 426{
408 return ctx->md_data; 427 return ctx->md_data;
409} 428}
429LCRYPTO_ALIAS(EVP_MD_CTX_md_data);
410 430
411EVP_PKEY_CTX * 431EVP_PKEY_CTX *
412EVP_MD_CTX_pkey_ctx(const EVP_MD_CTX *ctx) 432EVP_MD_CTX_pkey_ctx(const EVP_MD_CTX *ctx)
413{ 433{
414 return ctx->pctx; 434 return ctx->pctx;
415} 435}
436LCRYPTO_ALIAS(EVP_MD_CTX_pkey_ctx);
416 437
417void 438void
418EVP_MD_CTX_set_pkey_ctx(EVP_MD_CTX *ctx, EVP_PKEY_CTX *pctx) 439EVP_MD_CTX_set_pkey_ctx(EVP_MD_CTX *ctx, EVP_PKEY_CTX *pctx)
@@ -436,18 +457,21 @@ EVP_MD_CTX_set_pkey_ctx(EVP_MD_CTX *ctx, EVP_PKEY_CTX *pctx)
436 EVP_MD_CTX_set_flags(ctx, EVP_MD_CTX_FLAG_KEEP_PKEY_CTX); 457 EVP_MD_CTX_set_flags(ctx, EVP_MD_CTX_FLAG_KEEP_PKEY_CTX);
437 } 458 }
438} 459}
460LCRYPTO_ALIAS(EVP_MD_CTX_set_pkey_ctx);
439 461
440int 462int
441EVP_MD_type(const EVP_MD *md) 463EVP_MD_type(const EVP_MD *md)
442{ 464{
443 return md->type; 465 return md->type;
444} 466}
467LCRYPTO_ALIAS(EVP_MD_type);
445 468
446int 469int
447EVP_MD_pkey_type(const EVP_MD *md) 470EVP_MD_pkey_type(const EVP_MD *md)
448{ 471{
449 return md->pkey_type; 472 return md->pkey_type;
450} 473}
474LCRYPTO_ALIAS(EVP_MD_pkey_type);
451 475
452int 476int
453EVP_MD_size(const EVP_MD *md) 477EVP_MD_size(const EVP_MD *md)
@@ -458,15 +482,18 @@ EVP_MD_size(const EVP_MD *md)
458 } 482 }
459 return md->md_size; 483 return md->md_size;
460} 484}
485LCRYPTO_ALIAS(EVP_MD_size);
461 486
462unsigned long 487unsigned long
463EVP_MD_flags(const EVP_MD *md) 488EVP_MD_flags(const EVP_MD *md)
464{ 489{
465 return md->flags; 490 return md->flags;
466} 491}
492LCRYPTO_ALIAS(EVP_MD_flags);
467 493
468int 494int
469EVP_MD_block_size(const EVP_MD *md) 495EVP_MD_block_size(const EVP_MD *md)
470{ 496{
471 return md->block_size; 497 return md->block_size;
472} 498}
499LCRYPTO_ALIAS(EVP_MD_block_size);
diff --git a/src/lib/libcrypto/evp/evp_encode.c b/src/lib/libcrypto/evp/evp_encode.c
index 199bdfa27e..ae6ec476e3 100644
--- a/src/lib/libcrypto/evp/evp_encode.c
+++ b/src/lib/libcrypto/evp/evp_encode.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: evp_encode.c,v 1.2 2023/12/29 10:31:50 tb Exp $ */ 1/* $OpenBSD: evp_encode.c,v 1.3 2024/04/09 13:52:41 beck Exp $ */
2/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) 2/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
3 * All rights reserved. 3 * All rights reserved.
4 * 4 *
@@ -128,12 +128,14 @@ EVP_ENCODE_CTX_new(void)
128{ 128{
129 return calloc(1, sizeof(EVP_ENCODE_CTX)); 129 return calloc(1, sizeof(EVP_ENCODE_CTX));
130} 130}
131LCRYPTO_ALIAS(EVP_ENCODE_CTX_new);
131 132
132void 133void
133EVP_ENCODE_CTX_free(EVP_ENCODE_CTX *ctx) 134EVP_ENCODE_CTX_free(EVP_ENCODE_CTX *ctx)
134{ 135{
135 free(ctx); 136 free(ctx);
136} 137}
138LCRYPTO_ALIAS(EVP_ENCODE_CTX_free);
137 139
138void 140void
139EVP_EncodeInit(EVP_ENCODE_CTX *ctx) 141EVP_EncodeInit(EVP_ENCODE_CTX *ctx)
@@ -142,6 +144,7 @@ EVP_EncodeInit(EVP_ENCODE_CTX *ctx)
142 ctx->num = 0; 144 ctx->num = 0;
143 ctx->line_num = 0; 145 ctx->line_num = 0;
144} 146}
147LCRYPTO_ALIAS(EVP_EncodeInit);
145 148
146int 149int
147EVP_EncodeUpdate(EVP_ENCODE_CTX *ctx, unsigned char *out, int *outl, 150EVP_EncodeUpdate(EVP_ENCODE_CTX *ctx, unsigned char *out, int *outl,
@@ -192,6 +195,7 @@ EVP_EncodeUpdate(EVP_ENCODE_CTX *ctx, unsigned char *out, int *outl,
192 195
193 return 1; 196 return 1;
194} 197}
198LCRYPTO_ALIAS(EVP_EncodeUpdate);
195 199
196void 200void
197EVP_EncodeFinal(EVP_ENCODE_CTX *ctx, unsigned char *out, int *outl) 201EVP_EncodeFinal(EVP_ENCODE_CTX *ctx, unsigned char *out, int *outl)
@@ -206,6 +210,7 @@ EVP_EncodeFinal(EVP_ENCODE_CTX *ctx, unsigned char *out, int *outl)
206 } 210 }
207 *outl = ret; 211 *outl = ret;
208} 212}
213LCRYPTO_ALIAS(EVP_EncodeFinal);
209 214
210int 215int
211EVP_EncodeBlock(unsigned char *t, const unsigned char *f, int dlen) 216EVP_EncodeBlock(unsigned char *t, const unsigned char *f, int dlen)
@@ -238,6 +243,7 @@ EVP_EncodeBlock(unsigned char *t, const unsigned char *f, int dlen)
238 *t = '\0'; 243 *t = '\0';
239 return (ret); 244 return (ret);
240} 245}
246LCRYPTO_ALIAS(EVP_EncodeBlock);
241 247
242void 248void
243EVP_DecodeInit(EVP_ENCODE_CTX *ctx) 249EVP_DecodeInit(EVP_ENCODE_CTX *ctx)
@@ -247,6 +253,7 @@ EVP_DecodeInit(EVP_ENCODE_CTX *ctx)
247 ctx->line_num = 0; 253 ctx->line_num = 0;
248 ctx->expect_nl = 0; 254 ctx->expect_nl = 0;
249} 255}
256LCRYPTO_ALIAS(EVP_DecodeInit);
250 257
251int 258int
252EVP_DecodeUpdate(EVP_ENCODE_CTX *ctx, unsigned char *out, int *outl, 259EVP_DecodeUpdate(EVP_ENCODE_CTX *ctx, unsigned char *out, int *outl,
@@ -355,6 +362,7 @@ EVP_DecodeUpdate(EVP_ENCODE_CTX *ctx, unsigned char *out, int *outl,
355 ctx->num = n; 362 ctx->num = n;
356 return (rv); 363 return (rv);
357} 364}
365LCRYPTO_ALIAS(EVP_DecodeUpdate);
358 366
359int 367int
360EVP_DecodeBlock(unsigned char *t, const unsigned char *f, int n) 368EVP_DecodeBlock(unsigned char *t, const unsigned char *f, int n)
@@ -395,6 +403,7 @@ EVP_DecodeBlock(unsigned char *t, const unsigned char *f, int n)
395 } 403 }
396 return (ret); 404 return (ret);
397} 405}
406LCRYPTO_ALIAS(EVP_DecodeBlock);
398 407
399int 408int
400EVP_DecodeFinal(EVP_ENCODE_CTX *ctx, unsigned char *out, int *outl) 409EVP_DecodeFinal(EVP_ENCODE_CTX *ctx, unsigned char *out, int *outl)
@@ -412,3 +421,4 @@ EVP_DecodeFinal(EVP_ENCODE_CTX *ctx, unsigned char *out, int *outl)
412 } else 421 } else
413 return (1); 422 return (1);
414} 423}
424LCRYPTO_ALIAS(EVP_DecodeFinal);
diff --git a/src/lib/libcrypto/evp/evp_err.c b/src/lib/libcrypto/evp/evp_err.c
index 039e17e6cf..07515f4d99 100644
--- a/src/lib/libcrypto/evp/evp_err.c
+++ b/src/lib/libcrypto/evp/evp_err.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: evp_err.c,v 1.32 2023/07/07 19:37:53 beck Exp $ */ 1/* $OpenBSD: evp_err.c,v 1.33 2024/04/09 13:52:41 beck Exp $ */
2/* ==================================================================== 2/* ====================================================================
3 * Copyright (c) 1999-2011 The OpenSSL Project. All rights reserved. 3 * Copyright (c) 1999-2011 The OpenSSL Project. All rights reserved.
4 * 4 *
@@ -164,3 +164,4 @@ ERR_load_EVP_strings(void)
164 } 164 }
165#endif 165#endif
166} 166}
167LCRYPTO_ALIAS(ERR_load_EVP_strings);
diff --git a/src/lib/libcrypto/evp/evp_key.c b/src/lib/libcrypto/evp/evp_key.c
index da103c853f..e7c7ec3294 100644
--- a/src/lib/libcrypto/evp/evp_key.c
+++ b/src/lib/libcrypto/evp/evp_key.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: evp_key.c,v 1.35 2024/03/25 10:58:06 joshua Exp $ */ 1/* $OpenBSD: evp_key.c,v 1.36 2024/04/09 13:52:41 beck Exp $ */
2/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) 2/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
3 * All rights reserved. 3 * All rights reserved.
4 * 4 *
@@ -78,6 +78,7 @@ EVP_set_pw_prompt(const char *prompt)
78 else 78 else
79 strlcpy(prompt_string, prompt, sizeof(prompt_string)); 79 strlcpy(prompt_string, prompt, sizeof(prompt_string));
80} 80}
81LCRYPTO_ALIAS(EVP_set_pw_prompt);
81 82
82char * 83char *
83EVP_get_pw_prompt(void) 84EVP_get_pw_prompt(void)
@@ -87,12 +88,14 @@ EVP_get_pw_prompt(void)
87 88
88 return prompt_string; 89 return prompt_string;
89} 90}
91LCRYPTO_ALIAS(EVP_get_pw_prompt);
90 92
91int 93int
92EVP_read_pw_string(char *buf, int len, const char *prompt, int verify) 94EVP_read_pw_string(char *buf, int len, const char *prompt, int verify)
93{ 95{
94 return EVP_read_pw_string_min(buf, 0, len, prompt, verify); 96 return EVP_read_pw_string_min(buf, 0, len, prompt, verify);
95} 97}
98LCRYPTO_ALIAS(EVP_read_pw_string);
96 99
97int 100int
98EVP_read_pw_string_min(char *buf, int min, int len, const char *prompt, 101EVP_read_pw_string_min(char *buf, int min, int len, const char *prompt,
@@ -129,6 +132,7 @@ EVP_read_pw_string_min(char *buf, int min, int len, const char *prompt,
129 132
130 return ret; 133 return ret;
131} 134}
135LCRYPTO_ALIAS(EVP_read_pw_string_min);
132 136
133int 137int
134EVP_BytesToKey(const EVP_CIPHER *type, const EVP_MD *md, 138EVP_BytesToKey(const EVP_CIPHER *type, const EVP_MD *md,
@@ -216,3 +220,4 @@ err:
216 explicit_bzero(md_buf, sizeof md_buf); 220 explicit_bzero(md_buf, sizeof md_buf);
217 return rv; 221 return rv;
218} 222}
223LCRYPTO_ALIAS(EVP_BytesToKey);
diff --git a/src/lib/libcrypto/evp/evp_names.c b/src/lib/libcrypto/evp/evp_names.c
index d1e21d2793..99ad53e3ac 100644
--- a/src/lib/libcrypto/evp/evp_names.c
+++ b/src/lib/libcrypto/evp/evp_names.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: evp_names.c,v 1.15 2024/03/24 13:56:35 jca Exp $ */ 1/* $OpenBSD: evp_names.c,v 1.16 2024/04/09 13:52:41 beck Exp $ */
2/* 2/*
3 * Copyright (c) 2023 Theo Buehler <tb@openbsd.org> 3 * Copyright (c) 2023 Theo Buehler <tb@openbsd.org>
4 * 4 *
@@ -1495,6 +1495,7 @@ EVP_CIPHER_do_all_sorted(void (*fn)(const EVP_CIPHER *, const char *,
1495 fn(evp_cipher, cipher->name, NULL, arg); 1495 fn(evp_cipher, cipher->name, NULL, arg);
1496 } 1496 }
1497} 1497}
1498LCRYPTO_ALIAS(EVP_CIPHER_do_all_sorted);
1498 1499
1499void 1500void
1500EVP_CIPHER_do_all(void (*fn)(const EVP_CIPHER *, const char *, const char *, 1501EVP_CIPHER_do_all(void (*fn)(const EVP_CIPHER *, const char *, const char *,
@@ -1502,6 +1503,7 @@ EVP_CIPHER_do_all(void (*fn)(const EVP_CIPHER *, const char *, const char *,
1502{ 1503{
1503 EVP_CIPHER_do_all_sorted(fn, arg); 1504 EVP_CIPHER_do_all_sorted(fn, arg);
1504} 1505}
1506LCRYPTO_ALIAS(EVP_CIPHER_do_all);
1505 1507
1506void 1508void
1507EVP_MD_do_all_sorted(void (*fn)(const EVP_MD *, const char *, const char *, 1509EVP_MD_do_all_sorted(void (*fn)(const EVP_MD *, const char *, const char *,
@@ -1525,6 +1527,7 @@ EVP_MD_do_all_sorted(void (*fn)(const EVP_MD *, const char *, const char *,
1525 fn(evp_md, digest->name, NULL, arg); 1527 fn(evp_md, digest->name, NULL, arg);
1526 } 1528 }
1527} 1529}
1530LCRYPTO_ALIAS(EVP_MD_do_all_sorted);
1528 1531
1529void 1532void
1530EVP_MD_do_all(void (*fn)(const EVP_MD *, const char *, const char *, void *), 1533EVP_MD_do_all(void (*fn)(const EVP_MD *, const char *, const char *, void *),
@@ -1532,6 +1535,7 @@ EVP_MD_do_all(void (*fn)(const EVP_MD *, const char *, const char *, void *),
1532{ 1535{
1533 EVP_MD_do_all_sorted(fn, arg); 1536 EVP_MD_do_all_sorted(fn, arg);
1534} 1537}
1538LCRYPTO_ALIAS(EVP_MD_do_all);
1535 1539
1536/* 1540/*
1537 * The OBJ_NAME API is completely misnamed. It has little to do with objects 1541 * The OBJ_NAME API is completely misnamed. It has little to do with objects
@@ -1652,6 +1656,7 @@ EVP_get_cipherbyname(const char *name)
1652 1656
1653 return cipher->cipher(); 1657 return cipher->cipher();
1654} 1658}
1659LCRYPTO_ALIAS(EVP_get_cipherbyname);
1655 1660
1656static int 1661static int
1657digest_cmp(const void *a, const void *b) 1662digest_cmp(const void *a, const void *b)
@@ -1676,6 +1681,7 @@ EVP_get_digestbyname(const char *name)
1676 1681
1677 return digest->digest(); 1682 return digest->digest();
1678} 1683}
1684LCRYPTO_ALIAS(EVP_get_digestbyname);
1679 1685
1680/* 1686/*
1681 * XXX - this is here because most of its job was to clean up the dynamic 1687 * XXX - this is here because most of its job was to clean up the dynamic
@@ -1687,3 +1693,4 @@ void
1687EVP_cleanup(void) 1693EVP_cleanup(void)
1688{ 1694{
1689} 1695}
1696LCRYPTO_ALIAS(EVP_cleanup);
diff --git a/src/lib/libcrypto/evp/evp_pbe.c b/src/lib/libcrypto/evp/evp_pbe.c
index 81fa0446ed..88ceb14033 100644
--- a/src/lib/libcrypto/evp/evp_pbe.c
+++ b/src/lib/libcrypto/evp/evp_pbe.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: evp_pbe.c,v 1.49 2024/03/25 11:38:47 joshua Exp $ */ 1/* $OpenBSD: evp_pbe.c,v 1.50 2024/04/09 13:52:41 beck Exp $ */
2/* Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL 2/* Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL
3 * project 1999. 3 * project 1999.
4 */ 4 */
@@ -398,6 +398,7 @@ PKCS5_PBKDF2_HMAC(const char *pass, int passlen, const unsigned char *salt,
398 HMAC_CTX_cleanup(&hctx_tpl); 398 HMAC_CTX_cleanup(&hctx_tpl);
399 return 1; 399 return 1;
400} 400}
401LCRYPTO_ALIAS(PKCS5_PBKDF2_HMAC);
401 402
402int 403int
403PKCS5_PBKDF2_HMAC_SHA1(const char *pass, int passlen, const unsigned char *salt, 404PKCS5_PBKDF2_HMAC_SHA1(const char *pass, int passlen, const unsigned char *salt,
@@ -406,6 +407,7 @@ PKCS5_PBKDF2_HMAC_SHA1(const char *pass, int passlen, const unsigned char *salt,
406 return PKCS5_PBKDF2_HMAC(pass, passlen, salt, saltlen, iter, 407 return PKCS5_PBKDF2_HMAC(pass, passlen, salt, saltlen, iter,
407 EVP_sha1(), keylen, out); 408 EVP_sha1(), keylen, out);
408} 409}
410LCRYPTO_ALIAS(PKCS5_PBKDF2_HMAC_SHA1);
409 411
410/* 412/*
411 * Now the key derivation function itself. This is a bit evil because 413 * Now the key derivation function itself. This is a bit evil because
diff --git a/src/lib/libcrypto/evp/m_md4.c b/src/lib/libcrypto/evp/m_md4.c
index 199dba8489..a9d3150948 100644
--- a/src/lib/libcrypto/evp/m_md4.c
+++ b/src/lib/libcrypto/evp/m_md4.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: m_md4.c,v 1.21 2023/07/07 19:37:53 beck Exp $ */ 1/* $OpenBSD: m_md4.c,v 1.22 2024/04/09 13:52:41 beck Exp $ */
2/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) 2/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
3 * All rights reserved. 3 * All rights reserved.
4 * 4 *
@@ -110,4 +110,5 @@ EVP_md4(void)
110{ 110{
111 return (&md4_md); 111 return (&md4_md);
112} 112}
113LCRYPTO_ALIAS(EVP_md4);
113#endif 114#endif
diff --git a/src/lib/libcrypto/evp/m_md5.c b/src/lib/libcrypto/evp/m_md5.c
index 0dfad89aaf..1bba8c4e1b 100644
--- a/src/lib/libcrypto/evp/m_md5.c
+++ b/src/lib/libcrypto/evp/m_md5.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: m_md5.c,v 1.20 2023/07/07 19:37:53 beck Exp $ */ 1/* $OpenBSD: m_md5.c,v 1.21 2024/04/09 13:52:41 beck Exp $ */
2/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) 2/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
3 * All rights reserved. 3 * All rights reserved.
4 * 4 *
@@ -110,4 +110,5 @@ EVP_md5(void)
110{ 110{
111 return (&md5_md); 111 return (&md5_md);
112} 112}
113LCRYPTO_ALIAS(EVP_md5);
113#endif 114#endif
diff --git a/src/lib/libcrypto/evp/m_md5_sha1.c b/src/lib/libcrypto/evp/m_md5_sha1.c
index 7dd1ae1278..87a801f013 100644
--- a/src/lib/libcrypto/evp/m_md5_sha1.c
+++ b/src/lib/libcrypto/evp/m_md5_sha1.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: m_md5_sha1.c,v 1.8 2023/09/02 04:55:18 tb Exp $ */ 1/* $OpenBSD: m_md5_sha1.c,v 1.9 2024/04/09 13:52:41 beck Exp $ */
2/* 2/*
3 * Copyright (c) 2017 Joel Sing <jsing@openbsd.org> 3 * Copyright (c) 2017 Joel Sing <jsing@openbsd.org>
4 * 4 *
@@ -87,3 +87,4 @@ EVP_md5_sha1(void)
87{ 87{
88 return &md5_sha1_md; 88 return &md5_sha1_md;
89} 89}
90LCRYPTO_ALIAS(EVP_md5_sha1);
diff --git a/src/lib/libcrypto/evp/m_null.c b/src/lib/libcrypto/evp/m_null.c
index 28634d2da5..65af387eaa 100644
--- a/src/lib/libcrypto/evp/m_null.c
+++ b/src/lib/libcrypto/evp/m_null.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: m_null.c,v 1.14 2023/07/07 19:37:53 beck Exp $ */ 1/* $OpenBSD: m_null.c,v 1.15 2024/04/09 13:52:41 beck Exp $ */
2/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) 2/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
3 * All rights reserved. 3 * All rights reserved.
4 * 4 *
@@ -101,3 +101,4 @@ EVP_md_null(void)
101{ 101{
102 return (&null_md); 102 return (&null_md);
103} 103}
104LCRYPTO_ALIAS(EVP_md_null);
diff --git a/src/lib/libcrypto/evp/m_ripemd.c b/src/lib/libcrypto/evp/m_ripemd.c
index 638d0cd274..d771510868 100644
--- a/src/lib/libcrypto/evp/m_ripemd.c
+++ b/src/lib/libcrypto/evp/m_ripemd.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: m_ripemd.c,v 1.17 2023/07/07 19:37:53 beck Exp $ */ 1/* $OpenBSD: m_ripemd.c,v 1.18 2024/04/09 13:52:41 beck Exp $ */
2/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) 2/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
3 * All rights reserved. 3 * All rights reserved.
4 * 4 *
@@ -110,4 +110,5 @@ EVP_ripemd160(void)
110{ 110{
111 return (&ripemd160_md); 111 return (&ripemd160_md);
112} 112}
113LCRYPTO_ALIAS(EVP_ripemd160);
113#endif 114#endif
diff --git a/src/lib/libcrypto/evp/m_sha1.c b/src/lib/libcrypto/evp/m_sha1.c
index c65e0515c8..cdceb99aaf 100644
--- a/src/lib/libcrypto/evp/m_sha1.c
+++ b/src/lib/libcrypto/evp/m_sha1.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: m_sha1.c,v 1.25 2023/07/07 19:37:53 beck Exp $ */ 1/* $OpenBSD: m_sha1.c,v 1.26 2024/04/09 13:52:41 beck Exp $ */
2/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) 2/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
3 * All rights reserved. 3 * All rights reserved.
4 * 4 *
@@ -110,6 +110,7 @@ EVP_sha1(void)
110{ 110{
111 return &sha1_md; 111 return &sha1_md;
112} 112}
113LCRYPTO_ALIAS(EVP_sha1);
113#endif 114#endif
114 115
115#ifndef OPENSSL_NO_SHA256 116#ifndef OPENSSL_NO_SHA256
@@ -155,6 +156,7 @@ EVP_sha224(void)
155{ 156{
156 return &sha224_md; 157 return &sha224_md;
157} 158}
159LCRYPTO_ALIAS(EVP_sha224);
158 160
159static int 161static int
160sha256_init(EVP_MD_CTX *ctx) 162sha256_init(EVP_MD_CTX *ctx)
@@ -193,6 +195,7 @@ EVP_sha256(void)
193{ 195{
194 return &sha256_md; 196 return &sha256_md;
195} 197}
198LCRYPTO_ALIAS(EVP_sha256);
196#endif /* ifndef OPENSSL_NO_SHA256 */ 199#endif /* ifndef OPENSSL_NO_SHA256 */
197 200
198#ifndef OPENSSL_NO_SHA512 201#ifndef OPENSSL_NO_SHA512
@@ -234,6 +237,7 @@ EVP_sha384(void)
234{ 237{
235 return &sha384_md; 238 return &sha384_md;
236} 239}
240LCRYPTO_ALIAS(EVP_sha384);
237 241
238static int 242static int
239sha512_init(EVP_MD_CTX *ctx) 243sha512_init(EVP_MD_CTX *ctx)
@@ -272,6 +276,7 @@ EVP_sha512(void)
272{ 276{
273 return &sha512_md; 277 return &sha512_md;
274} 278}
279LCRYPTO_ALIAS(EVP_sha512);
275 280
276static int 281static int
277sha512_224_init(EVP_MD_CTX *ctx) 282sha512_224_init(EVP_MD_CTX *ctx)
@@ -310,6 +315,7 @@ EVP_sha512_224(void)
310{ 315{
311 return &sha512_224_md; 316 return &sha512_224_md;
312} 317}
318LCRYPTO_ALIAS(EVP_sha512_224);
313 319
314static int 320static int
315sha512_256_init(EVP_MD_CTX *ctx) 321sha512_256_init(EVP_MD_CTX *ctx)
@@ -348,4 +354,5 @@ EVP_sha512_256(void)
348{ 354{
349 return &sha512_256_md; 355 return &sha512_256_md;
350} 356}
357LCRYPTO_ALIAS(EVP_sha512_256);
351#endif /* ifndef OPENSSL_NO_SHA512 */ 358#endif /* ifndef OPENSSL_NO_SHA512 */
diff --git a/src/lib/libcrypto/evp/m_sha3.c b/src/lib/libcrypto/evp/m_sha3.c
index 67f94f7956..a21833b605 100644
--- a/src/lib/libcrypto/evp/m_sha3.c
+++ b/src/lib/libcrypto/evp/m_sha3.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: m_sha3.c,v 1.3 2023/07/07 19:37:53 beck Exp $ */ 1/* $OpenBSD: m_sha3.c,v 1.4 2024/04/09 13:52:41 beck Exp $ */
2/* 2/*
3 * Copyright (c) 2023 Joel Sing <jsing@openbsd.org> 3 * Copyright (c) 2023 Joel Sing <jsing@openbsd.org>
4 * 4 *
@@ -57,6 +57,7 @@ EVP_sha3_224(void)
57{ 57{
58 return &sha3_224_md; 58 return &sha3_224_md;
59} 59}
60LCRYPTO_ALIAS(EVP_sha3_224);
60 61
61static int 62static int
62sha3_256_init(EVP_MD_CTX *ctx) 63sha3_256_init(EVP_MD_CTX *ctx)
@@ -95,6 +96,7 @@ EVP_sha3_256(void)
95{ 96{
96 return &sha3_256_md; 97 return &sha3_256_md;
97} 98}
99LCRYPTO_ALIAS(EVP_sha3_256);
98 100
99static int 101static int
100sha3_384_init(EVP_MD_CTX *ctx) 102sha3_384_init(EVP_MD_CTX *ctx)
@@ -133,6 +135,7 @@ EVP_sha3_384(void)
133{ 135{
134 return &sha3_384_md; 136 return &sha3_384_md;
135} 137}
138LCRYPTO_ALIAS(EVP_sha3_384);
136 139
137static int 140static int
138sha3_512_init(EVP_MD_CTX *ctx) 141sha3_512_init(EVP_MD_CTX *ctx)
@@ -171,3 +174,4 @@ EVP_sha3_512(void)
171{ 174{
172 return &sha3_512_md; 175 return &sha3_512_md;
173} 176}
177LCRYPTO_ALIAS(EVP_sha3_512);
diff --git a/src/lib/libcrypto/evp/m_sigver.c b/src/lib/libcrypto/evp/m_sigver.c
index d427e05db0..a3353854f1 100644
--- a/src/lib/libcrypto/evp/m_sigver.c
+++ b/src/lib/libcrypto/evp/m_sigver.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: m_sigver.c,v 1.26 2024/03/27 07:36:59 tb Exp $ */ 1/* $OpenBSD: m_sigver.c,v 1.27 2024/04/09 13:52:41 beck Exp $ */
2/* Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL 2/* Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL
3 * project 2006. 3 * project 2006.
4 */ 4 */
@@ -128,6 +128,7 @@ EVP_DigestSignInit(EVP_MD_CTX *ctx, EVP_PKEY_CTX **pctx, const EVP_MD *type,
128{ 128{
129 return do_sigver_init(ctx, pctx, type, pkey, 0); 129 return do_sigver_init(ctx, pctx, type, pkey, 0);
130} 130}
131LCRYPTO_ALIAS(EVP_DigestSignInit);
131 132
132int 133int
133EVP_DigestVerifyInit(EVP_MD_CTX *ctx, EVP_PKEY_CTX **pctx, const EVP_MD *type, 134EVP_DigestVerifyInit(EVP_MD_CTX *ctx, EVP_PKEY_CTX **pctx, const EVP_MD *type,
@@ -135,6 +136,7 @@ EVP_DigestVerifyInit(EVP_MD_CTX *ctx, EVP_PKEY_CTX **pctx, const EVP_MD *type,
135{ 136{
136 return do_sigver_init(ctx, pctx, type, pkey, 1); 137 return do_sigver_init(ctx, pctx, type, pkey, 1);
137} 138}
139LCRYPTO_ALIAS(EVP_DigestVerifyInit);
138 140
139static int 141static int
140evp_digestsignfinal_sigctx_custom(EVP_MD_CTX *ctx, unsigned char *sigret, 142evp_digestsignfinal_sigctx_custom(EVP_MD_CTX *ctx, unsigned char *sigret,
@@ -215,6 +217,7 @@ EVP_DigestSignFinal(EVP_MD_CTX *ctx, unsigned char *sigret, size_t *siglen)
215 217
216 return ret; 218 return ret;
217} 219}
220LCRYPTO_ALIAS(EVP_DigestSignFinal);
218 221
219int 222int
220EVP_DigestSign(EVP_MD_CTX *ctx, unsigned char *sigret, size_t *siglen, 223EVP_DigestSign(EVP_MD_CTX *ctx, unsigned char *sigret, size_t *siglen,
@@ -231,6 +234,7 @@ EVP_DigestSign(EVP_MD_CTX *ctx, unsigned char *sigret, size_t *siglen,
231 234
232 return EVP_DigestSignFinal(ctx, sigret, siglen); 235 return EVP_DigestSignFinal(ctx, sigret, siglen);
233} 236}
237LCRYPTO_ALIAS(EVP_DigestSign);
234 238
235int 239int
236EVP_DigestVerifyFinal(EVP_MD_CTX *ctx, const unsigned char *sig, size_t siglen) 240EVP_DigestVerifyFinal(EVP_MD_CTX *ctx, const unsigned char *sig, size_t siglen)
@@ -249,6 +253,7 @@ EVP_DigestVerifyFinal(EVP_MD_CTX *ctx, const unsigned char *sig, size_t siglen)
249 return r; 253 return r;
250 return EVP_PKEY_verify(ctx->pctx, sig, siglen, md, mdlen); 254 return EVP_PKEY_verify(ctx->pctx, sig, siglen, md, mdlen);
251} 255}
256LCRYPTO_ALIAS(EVP_DigestVerifyFinal);
252 257
253int 258int
254EVP_DigestVerify(EVP_MD_CTX *ctx, const unsigned char *sigret, size_t siglen, 259EVP_DigestVerify(EVP_MD_CTX *ctx, const unsigned char *sigret, size_t siglen,
@@ -263,3 +268,4 @@ EVP_DigestVerify(EVP_MD_CTX *ctx, const unsigned char *sigret, size_t siglen,
263 268
264 return EVP_DigestVerifyFinal(ctx, sigret, siglen); 269 return EVP_DigestVerifyFinal(ctx, sigret, siglen);
265} 270}
271LCRYPTO_ALIAS(EVP_DigestVerify);
diff --git a/src/lib/libcrypto/evp/m_sm3.c b/src/lib/libcrypto/evp/m_sm3.c
index ea30d8d222..672d06f9fd 100644
--- a/src/lib/libcrypto/evp/m_sm3.c
+++ b/src/lib/libcrypto/evp/m_sm3.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: m_sm3.c,v 1.6 2023/07/07 19:37:53 beck Exp $ */ 1/* $OpenBSD: m_sm3.c,v 1.7 2024/04/09 13:52:41 beck Exp $ */
2/* 2/*
3 * Copyright (c) 2018, Ribose Inc 3 * Copyright (c) 2018, Ribose Inc
4 * 4 *
@@ -64,5 +64,6 @@ EVP_sm3(void)
64{ 64{
65 return &sm3_md; 65 return &sm3_md;
66} 66}
67LCRYPTO_ALIAS(EVP_sm3);
67 68
68#endif /* OPENSSL_NO_SM3 */ 69#endif /* OPENSSL_NO_SM3 */
diff --git a/src/lib/libcrypto/evp/m_wp.c b/src/lib/libcrypto/evp/m_wp.c
index 44d13b1484..6755d56e44 100644
--- a/src/lib/libcrypto/evp/m_wp.c
+++ b/src/lib/libcrypto/evp/m_wp.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: m_wp.c,v 1.13 2023/07/07 19:37:54 beck Exp $ */ 1/* $OpenBSD: m_wp.c,v 1.14 2024/04/09 13:52:41 beck Exp $ */
2 2
3#include <stdio.h> 3#include <stdio.h>
4 4
@@ -50,4 +50,5 @@ EVP_whirlpool(void)
50{ 50{
51 return (&whirlpool_md); 51 return (&whirlpool_md);
52} 52}
53LCRYPTO_ALIAS(EVP_whirlpool);
53#endif 54#endif
diff --git a/src/lib/libcrypto/evp/p_legacy.c b/src/lib/libcrypto/evp/p_legacy.c
index adb6dc9174..01cfdbcd6a 100644
--- a/src/lib/libcrypto/evp/p_legacy.c
+++ b/src/lib/libcrypto/evp/p_legacy.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: p_legacy.c,v 1.5 2024/03/28 01:42:02 tb Exp $ */ 1/* $OpenBSD: p_legacy.c,v 1.6 2024/04/09 13:52:41 beck Exp $ */
2/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) 2/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
3 * All rights reserved. 3 * All rights reserved.
4 * 4 *
@@ -77,6 +77,7 @@ EVP_PKEY_decrypt_old(unsigned char *to, const unsigned char *from, int from_len,
77 return RSA_private_decrypt(from_len, from, to, pkey->pkey.rsa, 77 return RSA_private_decrypt(from_len, from, to, pkey->pkey.rsa,
78 RSA_PKCS1_PADDING); 78 RSA_PKCS1_PADDING);
79} 79}
80LCRYPTO_ALIAS(EVP_PKEY_decrypt_old);
80 81
81int 82int
82EVP_PKEY_encrypt_old(unsigned char *to, const unsigned char *from, int from_len, 83EVP_PKEY_encrypt_old(unsigned char *to, const unsigned char *from, int from_len,
@@ -90,6 +91,7 @@ EVP_PKEY_encrypt_old(unsigned char *to, const unsigned char *from, int from_len,
90 return RSA_public_encrypt(from_len, from, to, pkey->pkey.rsa, 91 return RSA_public_encrypt(from_len, from, to, pkey->pkey.rsa,
91 RSA_PKCS1_PADDING); 92 RSA_PKCS1_PADDING);
92} 93}
94LCRYPTO_ALIAS(EVP_PKEY_encrypt_old);
93 95
94int 96int
95EVP_OpenInit(EVP_CIPHER_CTX *ctx, const EVP_CIPHER *type, 97EVP_OpenInit(EVP_CIPHER_CTX *ctx, const EVP_CIPHER *type,
@@ -135,6 +137,7 @@ err:
135 freezero(key, size); 137 freezero(key, size);
136 return (ret); 138 return (ret);
137} 139}
140LCRYPTO_ALIAS(EVP_OpenInit);
138 141
139int 142int
140EVP_OpenFinal(EVP_CIPHER_CTX *ctx, unsigned char *out, int *outl) 143EVP_OpenFinal(EVP_CIPHER_CTX *ctx, unsigned char *out, int *outl)
@@ -146,6 +149,7 @@ EVP_OpenFinal(EVP_CIPHER_CTX *ctx, unsigned char *out, int *outl)
146 i = EVP_DecryptInit_ex(ctx, NULL, NULL, NULL, NULL); 149 i = EVP_DecryptInit_ex(ctx, NULL, NULL, NULL, NULL);
147 return (i); 150 return (i);
148} 151}
152LCRYPTO_ALIAS(EVP_OpenFinal);
149 153
150int 154int
151EVP_SealInit(EVP_CIPHER_CTX *ctx, const EVP_CIPHER *type, unsigned char **ek, 155EVP_SealInit(EVP_CIPHER_CTX *ctx, const EVP_CIPHER *type, unsigned char **ek,
@@ -181,6 +185,7 @@ EVP_SealInit(EVP_CIPHER_CTX *ctx, const EVP_CIPHER *type, unsigned char **ek,
181 } 185 }
182 return (npubk); 186 return (npubk);
183} 187}
188LCRYPTO_ALIAS(EVP_SealInit);
184 189
185int 190int
186EVP_SealFinal(EVP_CIPHER_CTX *ctx, unsigned char *out, int *outl) 191EVP_SealFinal(EVP_CIPHER_CTX *ctx, unsigned char *out, int *outl)
@@ -192,3 +197,4 @@ EVP_SealFinal(EVP_CIPHER_CTX *ctx, unsigned char *out, int *outl)
192 i = EVP_EncryptInit_ex(ctx, NULL, NULL, NULL, NULL); 197 i = EVP_EncryptInit_ex(ctx, NULL, NULL, NULL, NULL);
193 return i; 198 return i;
194} 199}
200LCRYPTO_ALIAS(EVP_SealFinal);
diff --git a/src/lib/libcrypto/evp/p_lib.c b/src/lib/libcrypto/evp/p_lib.c
index 8bf820560c..4a6a6db4cc 100644
--- a/src/lib/libcrypto/evp/p_lib.c
+++ b/src/lib/libcrypto/evp/p_lib.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: p_lib.c,v 1.59 2024/03/02 11:17:27 tb Exp $ */ 1/* $OpenBSD: p_lib.c,v 1.60 2024/04/09 13:52:41 beck Exp $ */
2/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) 2/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
3 * All rights reserved. 3 * All rights reserved.
4 * 4 *
@@ -170,6 +170,7 @@ EVP_PKEY_asn1_get_count(void)
170{ 170{
171 return N_ASN1_METHODS; 171 return N_ASN1_METHODS;
172} 172}
173LCRYPTO_ALIAS(EVP_PKEY_asn1_get_count);
173 174
174const EVP_PKEY_ASN1_METHOD * 175const EVP_PKEY_ASN1_METHOD *
175EVP_PKEY_asn1_get0(int idx) 176EVP_PKEY_asn1_get0(int idx)
@@ -179,6 +180,7 @@ EVP_PKEY_asn1_get0(int idx)
179 180
180 return asn1_methods[idx]; 181 return asn1_methods[idx];
181} 182}
183LCRYPTO_ALIAS(EVP_PKEY_asn1_get0);
182 184
183const EVP_PKEY_ASN1_METHOD * 185const EVP_PKEY_ASN1_METHOD *
184EVP_PKEY_asn1_find(ENGINE **engine, int pkey_id) 186EVP_PKEY_asn1_find(ENGINE **engine, int pkey_id)
@@ -195,6 +197,7 @@ EVP_PKEY_asn1_find(ENGINE **engine, int pkey_id)
195 197
196 return NULL; 198 return NULL;
197} 199}
200LCRYPTO_ALIAS(EVP_PKEY_asn1_find);
198 201
199const EVP_PKEY_ASN1_METHOD * 202const EVP_PKEY_ASN1_METHOD *
200EVP_PKEY_asn1_find_str(ENGINE **engine, const char *str, int len) 203EVP_PKEY_asn1_find_str(ENGINE **engine, const char *str, int len)
@@ -224,6 +227,7 @@ EVP_PKEY_asn1_find_str(ENGINE **engine, const char *str, int len)
224 227
225 return NULL; 228 return NULL;
226} 229}
230LCRYPTO_ALIAS(EVP_PKEY_asn1_find_str);
227 231
228int 232int
229EVP_PKEY_asn1_get0_info(int *pkey_id, int *pkey_base_id, int *pkey_flags, 233EVP_PKEY_asn1_get0_info(int *pkey_id, int *pkey_base_id, int *pkey_flags,
@@ -246,12 +250,14 @@ EVP_PKEY_asn1_get0_info(int *pkey_id, int *pkey_base_id, int *pkey_flags,
246 250
247 return 1; 251 return 1;
248} 252}
253LCRYPTO_ALIAS(EVP_PKEY_asn1_get0_info);
249 254
250const EVP_PKEY_ASN1_METHOD* 255const EVP_PKEY_ASN1_METHOD*
251EVP_PKEY_get0_asn1(const EVP_PKEY *pkey) 256EVP_PKEY_get0_asn1(const EVP_PKEY *pkey)
252{ 257{
253 return pkey->ameth; 258 return pkey->ameth;
254} 259}
260LCRYPTO_ALIAS(EVP_PKEY_get0_asn1);
255 261
256int 262int
257EVP_PKEY_bits(const EVP_PKEY *pkey) 263EVP_PKEY_bits(const EVP_PKEY *pkey)
@@ -260,6 +266,7 @@ EVP_PKEY_bits(const EVP_PKEY *pkey)
260 return pkey->ameth->pkey_bits(pkey); 266 return pkey->ameth->pkey_bits(pkey);
261 return 0; 267 return 0;
262} 268}
269LCRYPTO_ALIAS(EVP_PKEY_bits);
263 270
264int 271int
265EVP_PKEY_security_bits(const EVP_PKEY *pkey) 272EVP_PKEY_security_bits(const EVP_PKEY *pkey)
@@ -271,6 +278,7 @@ EVP_PKEY_security_bits(const EVP_PKEY *pkey)
271 278
272 return pkey->ameth->pkey_security_bits(pkey); 279 return pkey->ameth->pkey_security_bits(pkey);
273} 280}
281LCRYPTO_ALIAS(EVP_PKEY_security_bits);
274 282
275int 283int
276EVP_PKEY_size(const EVP_PKEY *pkey) 284EVP_PKEY_size(const EVP_PKEY *pkey)
@@ -279,6 +287,7 @@ EVP_PKEY_size(const EVP_PKEY *pkey)
279 return pkey->ameth->pkey_size(pkey); 287 return pkey->ameth->pkey_size(pkey);
280 return 0; 288 return 0;
281} 289}
290LCRYPTO_ALIAS(EVP_PKEY_size);
282 291
283int 292int
284EVP_PKEY_save_parameters(EVP_PKEY *pkey, int mode) 293EVP_PKEY_save_parameters(EVP_PKEY *pkey, int mode)
@@ -303,6 +312,7 @@ EVP_PKEY_save_parameters(EVP_PKEY *pkey, int mode)
303#endif 312#endif
304 return (0); 313 return (0);
305} 314}
315LCRYPTO_ALIAS(EVP_PKEY_save_parameters);
306 316
307int 317int
308EVP_PKEY_copy_parameters(EVP_PKEY *to, const EVP_PKEY *from) 318EVP_PKEY_copy_parameters(EVP_PKEY *to, const EVP_PKEY *from)
@@ -322,6 +332,7 @@ EVP_PKEY_copy_parameters(EVP_PKEY *to, const EVP_PKEY *from)
322err: 332err:
323 return 0; 333 return 0;
324} 334}
335LCRYPTO_ALIAS(EVP_PKEY_copy_parameters);
325 336
326int 337int
327EVP_PKEY_missing_parameters(const EVP_PKEY *pkey) 338EVP_PKEY_missing_parameters(const EVP_PKEY *pkey)
@@ -330,6 +341,7 @@ EVP_PKEY_missing_parameters(const EVP_PKEY *pkey)
330 return pkey->ameth->param_missing(pkey); 341 return pkey->ameth->param_missing(pkey);
331 return 0; 342 return 0;
332} 343}
344LCRYPTO_ALIAS(EVP_PKEY_missing_parameters);
333 345
334int 346int
335EVP_PKEY_cmp_parameters(const EVP_PKEY *a, const EVP_PKEY *b) 347EVP_PKEY_cmp_parameters(const EVP_PKEY *a, const EVP_PKEY *b)
@@ -340,6 +352,7 @@ EVP_PKEY_cmp_parameters(const EVP_PKEY *a, const EVP_PKEY *b)
340 return a->ameth->param_cmp(a, b); 352 return a->ameth->param_cmp(a, b);
341 return -2; 353 return -2;
342} 354}
355LCRYPTO_ALIAS(EVP_PKEY_cmp_parameters);
343 356
344int 357int
345EVP_PKEY_cmp(const EVP_PKEY *a, const EVP_PKEY *b) 358EVP_PKEY_cmp(const EVP_PKEY *a, const EVP_PKEY *b)
@@ -362,6 +375,7 @@ EVP_PKEY_cmp(const EVP_PKEY *a, const EVP_PKEY *b)
362 375
363 return -2; 376 return -2;
364} 377}
378LCRYPTO_ALIAS(EVP_PKEY_cmp);
365 379
366EVP_PKEY * 380EVP_PKEY *
367EVP_PKEY_new(void) 381EVP_PKEY_new(void)
@@ -379,12 +393,14 @@ EVP_PKEY_new(void)
379 393
380 return pkey; 394 return pkey;
381} 395}
396LCRYPTO_ALIAS(EVP_PKEY_new);
382 397
383int 398int
384EVP_PKEY_up_ref(EVP_PKEY *pkey) 399EVP_PKEY_up_ref(EVP_PKEY *pkey)
385{ 400{
386 return CRYPTO_add(&pkey->references, 1, CRYPTO_LOCK_EVP_PKEY) > 1; 401 return CRYPTO_add(&pkey->references, 1, CRYPTO_LOCK_EVP_PKEY) > 1;
387} 402}
403LCRYPTO_ALIAS(EVP_PKEY_up_ref);
388 404
389static void 405static void
390evp_pkey_free_pkey_ptr(EVP_PKEY *pkey) 406evp_pkey_free_pkey_ptr(EVP_PKEY *pkey)
@@ -409,6 +425,7 @@ EVP_PKEY_free(EVP_PKEY *pkey)
409 sk_X509_ATTRIBUTE_pop_free(pkey->attributes, X509_ATTRIBUTE_free); 425 sk_X509_ATTRIBUTE_pop_free(pkey->attributes, X509_ATTRIBUTE_free);
410 freezero(pkey, sizeof(*pkey)); 426 freezero(pkey, sizeof(*pkey));
411} 427}
428LCRYPTO_ALIAS(EVP_PKEY_free);
412 429
413int 430int
414EVP_PKEY_set_type(EVP_PKEY *pkey, int type) 431EVP_PKEY_set_type(EVP_PKEY *pkey, int type)
@@ -428,6 +445,7 @@ EVP_PKEY_set_type(EVP_PKEY *pkey, int type)
428 445
429 return 1; 446 return 1;
430} 447}
448LCRYPTO_ALIAS(EVP_PKEY_set_type);
431 449
432int 450int
433EVP_PKEY_set_type_str(EVP_PKEY *pkey, const char *str, int len) 451EVP_PKEY_set_type_str(EVP_PKEY *pkey, const char *str, int len)
@@ -447,6 +465,7 @@ EVP_PKEY_set_type_str(EVP_PKEY *pkey, const char *str, int len)
447 465
448 return 1; 466 return 1;
449} 467}
468LCRYPTO_ALIAS(EVP_PKEY_set_type_str);
450 469
451int 470int
452EVP_PKEY_assign(EVP_PKEY *pkey, int type, void *key) 471EVP_PKEY_assign(EVP_PKEY *pkey, int type, void *key)
@@ -456,6 +475,7 @@ EVP_PKEY_assign(EVP_PKEY *pkey, int type, void *key)
456 475
457 return (pkey->pkey.ptr = key) != NULL; 476 return (pkey->pkey.ptr = key) != NULL;
458} 477}
478LCRYPTO_ALIAS(EVP_PKEY_assign);
459 479
460EVP_PKEY * 480EVP_PKEY *
461EVP_PKEY_new_raw_private_key(int type, ENGINE *engine, 481EVP_PKEY_new_raw_private_key(int type, ENGINE *engine,
@@ -485,6 +505,7 @@ EVP_PKEY_new_raw_private_key(int type, ENGINE *engine,
485 505
486 return NULL; 506 return NULL;
487} 507}
508LCRYPTO_ALIAS(EVP_PKEY_new_raw_private_key);
488 509
489EVP_PKEY * 510EVP_PKEY *
490EVP_PKEY_new_raw_public_key(int type, ENGINE *engine, 511EVP_PKEY_new_raw_public_key(int type, ENGINE *engine,
@@ -514,6 +535,7 @@ EVP_PKEY_new_raw_public_key(int type, ENGINE *engine,
514 535
515 return NULL; 536 return NULL;
516} 537}
538LCRYPTO_ALIAS(EVP_PKEY_new_raw_public_key);
517 539
518int 540int
519EVP_PKEY_get_raw_private_key(const EVP_PKEY *pkey, 541EVP_PKEY_get_raw_private_key(const EVP_PKEY *pkey,
@@ -530,6 +552,7 @@ EVP_PKEY_get_raw_private_key(const EVP_PKEY *pkey,
530 552
531 return 1; 553 return 1;
532} 554}
555LCRYPTO_ALIAS(EVP_PKEY_get_raw_private_key);
533 556
534int 557int
535EVP_PKEY_get_raw_public_key(const EVP_PKEY *pkey, 558EVP_PKEY_get_raw_public_key(const EVP_PKEY *pkey,
@@ -546,6 +569,7 @@ EVP_PKEY_get_raw_public_key(const EVP_PKEY *pkey,
546 569
547 return 1; 570 return 1;
548} 571}
572LCRYPTO_ALIAS(EVP_PKEY_get_raw_public_key);
549 573
550EVP_PKEY * 574EVP_PKEY *
551EVP_PKEY_new_CMAC_key(ENGINE *e, const unsigned char *priv, size_t len, 575EVP_PKEY_new_CMAC_key(ENGINE *e, const unsigned char *priv, size_t len,
@@ -577,12 +601,14 @@ EVP_PKEY_new_CMAC_key(ENGINE *e, const unsigned char *priv, size_t len,
577 601
578 return NULL; 602 return NULL;
579} 603}
604LCRYPTO_ALIAS(EVP_PKEY_new_CMAC_key);
580 605
581void * 606void *
582EVP_PKEY_get0(const EVP_PKEY *pkey) 607EVP_PKEY_get0(const EVP_PKEY *pkey)
583{ 608{
584 return pkey->pkey.ptr; 609 return pkey->pkey.ptr;
585} 610}
611LCRYPTO_ALIAS(EVP_PKEY_get0);
586 612
587const unsigned char * 613const unsigned char *
588EVP_PKEY_get0_hmac(const EVP_PKEY *pkey, size_t *len) 614EVP_PKEY_get0_hmac(const EVP_PKEY *pkey, size_t *len)
@@ -599,6 +625,7 @@ EVP_PKEY_get0_hmac(const EVP_PKEY *pkey, size_t *len)
599 625
600 return os->data; 626 return os->data;
601} 627}
628LCRYPTO_ALIAS(EVP_PKEY_get0_hmac);
602 629
603#ifndef OPENSSL_NO_RSA 630#ifndef OPENSSL_NO_RSA
604RSA * 631RSA *
@@ -610,6 +637,7 @@ EVP_PKEY_get0_RSA(EVP_PKEY *pkey)
610 EVPerror(EVP_R_EXPECTING_AN_RSA_KEY); 637 EVPerror(EVP_R_EXPECTING_AN_RSA_KEY);
611 return NULL; 638 return NULL;
612} 639}
640LCRYPTO_ALIAS(EVP_PKEY_get0_RSA);
613 641
614RSA * 642RSA *
615EVP_PKEY_get1_RSA(EVP_PKEY *pkey) 643EVP_PKEY_get1_RSA(EVP_PKEY *pkey)
@@ -623,6 +651,7 @@ EVP_PKEY_get1_RSA(EVP_PKEY *pkey)
623 651
624 return rsa; 652 return rsa;
625} 653}
654LCRYPTO_ALIAS(EVP_PKEY_get1_RSA);
626 655
627int 656int
628EVP_PKEY_set1_RSA(EVP_PKEY *pkey, RSA *key) 657EVP_PKEY_set1_RSA(EVP_PKEY *pkey, RSA *key)
@@ -632,6 +661,7 @@ EVP_PKEY_set1_RSA(EVP_PKEY *pkey, RSA *key)
632 RSA_up_ref(key); 661 RSA_up_ref(key);
633 return ret; 662 return ret;
634} 663}
664LCRYPTO_ALIAS(EVP_PKEY_set1_RSA);
635#endif 665#endif
636 666
637#ifndef OPENSSL_NO_DSA 667#ifndef OPENSSL_NO_DSA
@@ -644,6 +674,7 @@ EVP_PKEY_get0_DSA(EVP_PKEY *pkey)
644 } 674 }
645 return pkey->pkey.dsa; 675 return pkey->pkey.dsa;
646} 676}
677LCRYPTO_ALIAS(EVP_PKEY_get0_DSA);
647 678
648DSA * 679DSA *
649EVP_PKEY_get1_DSA(EVP_PKEY *pkey) 680EVP_PKEY_get1_DSA(EVP_PKEY *pkey)
@@ -657,6 +688,7 @@ EVP_PKEY_get1_DSA(EVP_PKEY *pkey)
657 688
658 return dsa; 689 return dsa;
659} 690}
691LCRYPTO_ALIAS(EVP_PKEY_get1_DSA);
660 692
661int 693int
662EVP_PKEY_set1_DSA(EVP_PKEY *pkey, DSA *key) 694EVP_PKEY_set1_DSA(EVP_PKEY *pkey, DSA *key)
@@ -666,6 +698,7 @@ EVP_PKEY_set1_DSA(EVP_PKEY *pkey, DSA *key)
666 DSA_up_ref(key); 698 DSA_up_ref(key);
667 return ret; 699 return ret;
668} 700}
701LCRYPTO_ALIAS(EVP_PKEY_set1_DSA);
669#endif 702#endif
670 703
671#ifndef OPENSSL_NO_EC 704#ifndef OPENSSL_NO_EC
@@ -678,6 +711,7 @@ EVP_PKEY_get0_EC_KEY(EVP_PKEY *pkey)
678 } 711 }
679 return pkey->pkey.ec; 712 return pkey->pkey.ec;
680} 713}
714LCRYPTO_ALIAS(EVP_PKEY_get0_EC_KEY);
681 715
682EC_KEY * 716EC_KEY *
683EVP_PKEY_get1_EC_KEY(EVP_PKEY *pkey) 717EVP_PKEY_get1_EC_KEY(EVP_PKEY *pkey)
@@ -691,6 +725,7 @@ EVP_PKEY_get1_EC_KEY(EVP_PKEY *pkey)
691 725
692 return key; 726 return key;
693} 727}
728LCRYPTO_ALIAS(EVP_PKEY_get1_EC_KEY);
694 729
695int 730int
696EVP_PKEY_set1_EC_KEY(EVP_PKEY *pkey, EC_KEY *key) 731EVP_PKEY_set1_EC_KEY(EVP_PKEY *pkey, EC_KEY *key)
@@ -700,6 +735,7 @@ EVP_PKEY_set1_EC_KEY(EVP_PKEY *pkey, EC_KEY *key)
700 EC_KEY_up_ref(key); 735 EC_KEY_up_ref(key);
701 return ret; 736 return ret;
702} 737}
738LCRYPTO_ALIAS(EVP_PKEY_set1_EC_KEY);
703#endif 739#endif
704 740
705 741
@@ -713,6 +749,7 @@ EVP_PKEY_get0_DH(EVP_PKEY *pkey)
713 } 749 }
714 return pkey->pkey.dh; 750 return pkey->pkey.dh;
715} 751}
752LCRYPTO_ALIAS(EVP_PKEY_get0_DH);
716 753
717DH * 754DH *
718EVP_PKEY_get1_DH(EVP_PKEY *pkey) 755EVP_PKEY_get1_DH(EVP_PKEY *pkey)
@@ -726,6 +763,7 @@ EVP_PKEY_get1_DH(EVP_PKEY *pkey)
726 763
727 return dh; 764 return dh;
728} 765}
766LCRYPTO_ALIAS(EVP_PKEY_get1_DH);
729 767
730int 768int
731EVP_PKEY_set1_DH(EVP_PKEY *pkey, DH *key) 769EVP_PKEY_set1_DH(EVP_PKEY *pkey, DH *key)
@@ -735,6 +773,7 @@ EVP_PKEY_set1_DH(EVP_PKEY *pkey, DH *key)
735 DH_up_ref(key); 773 DH_up_ref(key);
736 return ret; 774 return ret;
737} 775}
776LCRYPTO_ALIAS(EVP_PKEY_set1_DH);
738#endif 777#endif
739 778
740int 779int
@@ -747,18 +786,21 @@ EVP_PKEY_type(int type)
747 786
748 return NID_undef; 787 return NID_undef;
749} 788}
789LCRYPTO_ALIAS(EVP_PKEY_type);
750 790
751int 791int
752EVP_PKEY_id(const EVP_PKEY *pkey) 792EVP_PKEY_id(const EVP_PKEY *pkey)
753{ 793{
754 return pkey->type; 794 return pkey->type;
755} 795}
796LCRYPTO_ALIAS(EVP_PKEY_id);
756 797
757int 798int
758EVP_PKEY_base_id(const EVP_PKEY *pkey) 799EVP_PKEY_base_id(const EVP_PKEY *pkey)
759{ 800{
760 return EVP_PKEY_type(pkey->type); 801 return EVP_PKEY_type(pkey->type);
761} 802}
803LCRYPTO_ALIAS(EVP_PKEY_base_id);
762 804
763static int 805static int
764unsup_alg(BIO *out, const EVP_PKEY *pkey, int indent, const char *kstr) 806unsup_alg(BIO *out, const EVP_PKEY *pkey, int indent, const char *kstr)
@@ -779,6 +821,7 @@ EVP_PKEY_print_public(BIO *out, const EVP_PKEY *pkey, int indent,
779 821
780 return unsup_alg(out, pkey, indent, "Public Key"); 822 return unsup_alg(out, pkey, indent, "Public Key");
781} 823}
824LCRYPTO_ALIAS(EVP_PKEY_print_public);
782 825
783int 826int
784EVP_PKEY_print_private(BIO *out, const EVP_PKEY *pkey, int indent, 827EVP_PKEY_print_private(BIO *out, const EVP_PKEY *pkey, int indent,
@@ -789,6 +832,7 @@ EVP_PKEY_print_private(BIO *out, const EVP_PKEY *pkey, int indent,
789 832
790 return unsup_alg(out, pkey, indent, "Private Key"); 833 return unsup_alg(out, pkey, indent, "Private Key");
791} 834}
835LCRYPTO_ALIAS(EVP_PKEY_print_private);
792 836
793int 837int
794EVP_PKEY_print_params(BIO *out, const EVP_PKEY *pkey, int indent, 838EVP_PKEY_print_params(BIO *out, const EVP_PKEY *pkey, int indent,
@@ -798,6 +842,7 @@ EVP_PKEY_print_params(BIO *out, const EVP_PKEY *pkey, int indent,
798 return pkey->ameth->param_print(out, pkey, indent, pctx); 842 return pkey->ameth->param_print(out, pkey, indent, pctx);
799 return unsup_alg(out, pkey, indent, "Parameters"); 843 return unsup_alg(out, pkey, indent, "Parameters");
800} 844}
845LCRYPTO_ALIAS(EVP_PKEY_print_params);
801 846
802int 847int
803EVP_PKEY_get_default_digest_nid(EVP_PKEY *pkey, int *pnid) 848EVP_PKEY_get_default_digest_nid(EVP_PKEY *pkey, int *pnid)
@@ -807,3 +852,4 @@ EVP_PKEY_get_default_digest_nid(EVP_PKEY *pkey, int *pnid)
807 return pkey->ameth->pkey_ctrl(pkey, ASN1_PKEY_CTRL_DEFAULT_MD_NID, 852 return pkey->ameth->pkey_ctrl(pkey, ASN1_PKEY_CTRL_DEFAULT_MD_NID,
808 0, pnid); 853 0, pnid);
809} 854}
855LCRYPTO_ALIAS(EVP_PKEY_get_default_digest_nid);
diff --git a/src/lib/libcrypto/evp/p_sign.c b/src/lib/libcrypto/evp/p_sign.c
index 70290ed216..7f472ea716 100644
--- a/src/lib/libcrypto/evp/p_sign.c
+++ b/src/lib/libcrypto/evp/p_sign.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: p_sign.c,v 1.21 2024/03/26 06:08:51 joshua Exp $ */ 1/* $OpenBSD: p_sign.c,v 1.22 2024/04/09 13:52:41 beck Exp $ */
2/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) 2/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
3 * All rights reserved. 3 * All rights reserved.
4 * 4 *
@@ -104,3 +104,4 @@ EVP_SignFinal(EVP_MD_CTX *ctx, unsigned char *sigret, unsigned int *siglen,
104 EVP_PKEY_CTX_free(pkctx); 104 EVP_PKEY_CTX_free(pkctx);
105 return ret; 105 return ret;
106} 106}
107LCRYPTO_ALIAS(EVP_SignFinal);
diff --git a/src/lib/libcrypto/evp/p_verify.c b/src/lib/libcrypto/evp/p_verify.c
index 04b7c39c65..02132e2c38 100644
--- a/src/lib/libcrypto/evp/p_verify.c
+++ b/src/lib/libcrypto/evp/p_verify.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: p_verify.c,v 1.20 2024/03/26 05:50:49 joshua Exp $ */ 1/* $OpenBSD: p_verify.c,v 1.21 2024/04/09 13:52:41 beck Exp $ */
2/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) 2/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
3 * All rights reserved. 3 * All rights reserved.
4 * 4 *
@@ -96,3 +96,4 @@ EVP_VerifyFinal(EVP_MD_CTX *ctx, const unsigned char *sigbuf,
96 EVP_PKEY_CTX_free(pkctx); 96 EVP_PKEY_CTX_free(pkctx);
97 return ret; 97 return ret;
98} 98}
99LCRYPTO_ALIAS(EVP_VerifyFinal);
diff --git a/src/lib/libcrypto/evp/pmeth_fn.c b/src/lib/libcrypto/evp/pmeth_fn.c
index a304752e63..f8ed555fda 100644
--- a/src/lib/libcrypto/evp/pmeth_fn.c
+++ b/src/lib/libcrypto/evp/pmeth_fn.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: pmeth_fn.c,v 1.9 2023/07/07 19:37:54 beck Exp $ */ 1/* $OpenBSD: pmeth_fn.c,v 1.10 2024/04/09 13:52:41 beck Exp $ */
2/* Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL 2/* Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL
3 * project 2006. 3 * project 2006.
4 */ 4 */
@@ -98,6 +98,7 @@ EVP_PKEY_sign_init(EVP_PKEY_CTX *ctx)
98 ctx->operation = EVP_PKEY_OP_UNDEFINED; 98 ctx->operation = EVP_PKEY_OP_UNDEFINED;
99 return ret; 99 return ret;
100} 100}
101LCRYPTO_ALIAS(EVP_PKEY_sign_init);
101 102
102int 103int
103EVP_PKEY_sign(EVP_PKEY_CTX *ctx, unsigned char *sig, size_t *siglen, 104EVP_PKEY_sign(EVP_PKEY_CTX *ctx, unsigned char *sig, size_t *siglen,
@@ -114,6 +115,7 @@ EVP_PKEY_sign(EVP_PKEY_CTX *ctx, unsigned char *sig, size_t *siglen,
114 M_check_autoarg(ctx, sig, siglen, EVP_F_EVP_PKEY_SIGN) 115 M_check_autoarg(ctx, sig, siglen, EVP_F_EVP_PKEY_SIGN)
115 return ctx->pmeth->sign(ctx, sig, siglen, tbs, tbslen); 116 return ctx->pmeth->sign(ctx, sig, siglen, tbs, tbslen);
116} 117}
118LCRYPTO_ALIAS(EVP_PKEY_sign);
117 119
118int 120int
119EVP_PKEY_verify_init(EVP_PKEY_CTX *ctx) 121EVP_PKEY_verify_init(EVP_PKEY_CTX *ctx)
@@ -132,6 +134,7 @@ EVP_PKEY_verify_init(EVP_PKEY_CTX *ctx)
132 ctx->operation = EVP_PKEY_OP_UNDEFINED; 134 ctx->operation = EVP_PKEY_OP_UNDEFINED;
133 return ret; 135 return ret;
134} 136}
137LCRYPTO_ALIAS(EVP_PKEY_verify_init);
135 138
136int 139int
137EVP_PKEY_verify(EVP_PKEY_CTX *ctx, const unsigned char *sig, size_t siglen, 140EVP_PKEY_verify(EVP_PKEY_CTX *ctx, const unsigned char *sig, size_t siglen,
@@ -147,6 +150,7 @@ EVP_PKEY_verify(EVP_PKEY_CTX *ctx, const unsigned char *sig, size_t siglen,
147 } 150 }
148 return ctx->pmeth->verify(ctx, sig, siglen, tbs, tbslen); 151 return ctx->pmeth->verify(ctx, sig, siglen, tbs, tbslen);
149} 152}
153LCRYPTO_ALIAS(EVP_PKEY_verify);
150 154
151int 155int
152EVP_PKEY_verify_recover_init(EVP_PKEY_CTX *ctx) 156EVP_PKEY_verify_recover_init(EVP_PKEY_CTX *ctx)
@@ -165,6 +169,7 @@ EVP_PKEY_verify_recover_init(EVP_PKEY_CTX *ctx)
165 ctx->operation = EVP_PKEY_OP_UNDEFINED; 169 ctx->operation = EVP_PKEY_OP_UNDEFINED;
166 return ret; 170 return ret;
167} 171}
172LCRYPTO_ALIAS(EVP_PKEY_verify_recover_init);
168 173
169int 174int
170EVP_PKEY_verify_recover(EVP_PKEY_CTX *ctx, unsigned char *rout, size_t *routlen, 175EVP_PKEY_verify_recover(EVP_PKEY_CTX *ctx, unsigned char *rout, size_t *routlen,
@@ -181,6 +186,7 @@ EVP_PKEY_verify_recover(EVP_PKEY_CTX *ctx, unsigned char *rout, size_t *routlen,
181 M_check_autoarg(ctx, rout, routlen, EVP_F_EVP_PKEY_VERIFY_RECOVER) 186 M_check_autoarg(ctx, rout, routlen, EVP_F_EVP_PKEY_VERIFY_RECOVER)
182 return ctx->pmeth->verify_recover(ctx, rout, routlen, sig, siglen); 187 return ctx->pmeth->verify_recover(ctx, rout, routlen, sig, siglen);
183} 188}
189LCRYPTO_ALIAS(EVP_PKEY_verify_recover);
184 190
185int 191int
186EVP_PKEY_encrypt_init(EVP_PKEY_CTX *ctx) 192EVP_PKEY_encrypt_init(EVP_PKEY_CTX *ctx)
@@ -199,6 +205,7 @@ EVP_PKEY_encrypt_init(EVP_PKEY_CTX *ctx)
199 ctx->operation = EVP_PKEY_OP_UNDEFINED; 205 ctx->operation = EVP_PKEY_OP_UNDEFINED;
200 return ret; 206 return ret;
201} 207}
208LCRYPTO_ALIAS(EVP_PKEY_encrypt_init);
202 209
203int 210int
204EVP_PKEY_encrypt(EVP_PKEY_CTX *ctx, unsigned char *out, size_t *outlen, 211EVP_PKEY_encrypt(EVP_PKEY_CTX *ctx, unsigned char *out, size_t *outlen,
@@ -215,6 +222,7 @@ EVP_PKEY_encrypt(EVP_PKEY_CTX *ctx, unsigned char *out, size_t *outlen,
215 M_check_autoarg(ctx, out, outlen, EVP_F_EVP_PKEY_ENCRYPT) 222 M_check_autoarg(ctx, out, outlen, EVP_F_EVP_PKEY_ENCRYPT)
216 return ctx->pmeth->encrypt(ctx, out, outlen, in, inlen); 223 return ctx->pmeth->encrypt(ctx, out, outlen, in, inlen);
217} 224}
225LCRYPTO_ALIAS(EVP_PKEY_encrypt);
218 226
219int 227int
220EVP_PKEY_decrypt_init(EVP_PKEY_CTX *ctx) 228EVP_PKEY_decrypt_init(EVP_PKEY_CTX *ctx)
@@ -233,6 +241,7 @@ EVP_PKEY_decrypt_init(EVP_PKEY_CTX *ctx)
233 ctx->operation = EVP_PKEY_OP_UNDEFINED; 241 ctx->operation = EVP_PKEY_OP_UNDEFINED;
234 return ret; 242 return ret;
235} 243}
244LCRYPTO_ALIAS(EVP_PKEY_decrypt_init);
236 245
237int 246int
238EVP_PKEY_decrypt(EVP_PKEY_CTX *ctx, unsigned char *out, size_t *outlen, 247EVP_PKEY_decrypt(EVP_PKEY_CTX *ctx, unsigned char *out, size_t *outlen,
@@ -249,6 +258,7 @@ EVP_PKEY_decrypt(EVP_PKEY_CTX *ctx, unsigned char *out, size_t *outlen,
249 M_check_autoarg(ctx, out, outlen, EVP_F_EVP_PKEY_DECRYPT) 258 M_check_autoarg(ctx, out, outlen, EVP_F_EVP_PKEY_DECRYPT)
250 return ctx->pmeth->decrypt(ctx, out, outlen, in, inlen); 259 return ctx->pmeth->decrypt(ctx, out, outlen, in, inlen);
251} 260}
261LCRYPTO_ALIAS(EVP_PKEY_decrypt);
252 262
253int 263int
254EVP_PKEY_derive_init(EVP_PKEY_CTX *ctx) 264EVP_PKEY_derive_init(EVP_PKEY_CTX *ctx)
@@ -267,6 +277,7 @@ EVP_PKEY_derive_init(EVP_PKEY_CTX *ctx)
267 ctx->operation = EVP_PKEY_OP_UNDEFINED; 277 ctx->operation = EVP_PKEY_OP_UNDEFINED;
268 return ret; 278 return ret;
269} 279}
280LCRYPTO_ALIAS(EVP_PKEY_derive_init);
270 281
271int 282int
272EVP_PKEY_derive_set_peer(EVP_PKEY_CTX *ctx, EVP_PKEY *peer) 283EVP_PKEY_derive_set_peer(EVP_PKEY_CTX *ctx, EVP_PKEY *peer)
@@ -328,6 +339,7 @@ EVP_PKEY_derive_set_peer(EVP_PKEY_CTX *ctx, EVP_PKEY *peer)
328 CRYPTO_add(&peer->references, 1, CRYPTO_LOCK_EVP_PKEY); 339 CRYPTO_add(&peer->references, 1, CRYPTO_LOCK_EVP_PKEY);
329 return 1; 340 return 1;
330} 341}
342LCRYPTO_ALIAS(EVP_PKEY_derive_set_peer);
331 343
332int 344int
333EVP_PKEY_derive(EVP_PKEY_CTX *ctx, unsigned char *key, size_t *pkeylen) 345EVP_PKEY_derive(EVP_PKEY_CTX *ctx, unsigned char *key, size_t *pkeylen)
@@ -343,3 +355,4 @@ EVP_PKEY_derive(EVP_PKEY_CTX *ctx, unsigned char *key, size_t *pkeylen)
343 M_check_autoarg(ctx, key, pkeylen, EVP_F_EVP_PKEY_DERIVE) 355 M_check_autoarg(ctx, key, pkeylen, EVP_F_EVP_PKEY_DERIVE)
344 return ctx->pmeth->derive(ctx, key, pkeylen); 356 return ctx->pmeth->derive(ctx, key, pkeylen);
345} 357}
358LCRYPTO_ALIAS(EVP_PKEY_derive);
diff --git a/src/lib/libcrypto/evp/pmeth_gn.c b/src/lib/libcrypto/evp/pmeth_gn.c
index ce7b107c7a..2711ba1a9e 100644
--- a/src/lib/libcrypto/evp/pmeth_gn.c
+++ b/src/lib/libcrypto/evp/pmeth_gn.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: pmeth_gn.c,v 1.15 2024/01/01 18:33:04 tb Exp $ */ 1/* $OpenBSD: pmeth_gn.c,v 1.16 2024/04/09 13:52:41 beck Exp $ */
2/* Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL 2/* Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL
3 * project 2006. 3 * project 2006.
4 */ 4 */
@@ -85,6 +85,7 @@ EVP_PKEY_paramgen_init(EVP_PKEY_CTX *ctx)
85 ctx->operation = EVP_PKEY_OP_UNDEFINED; 85 ctx->operation = EVP_PKEY_OP_UNDEFINED;
86 return ret; 86 return ret;
87} 87}
88LCRYPTO_ALIAS(EVP_PKEY_paramgen_init);
88 89
89int 90int
90EVP_PKEY_paramgen(EVP_PKEY_CTX *ctx, EVP_PKEY **ppkey) 91EVP_PKEY_paramgen(EVP_PKEY_CTX *ctx, EVP_PKEY **ppkey)
@@ -114,6 +115,7 @@ EVP_PKEY_paramgen(EVP_PKEY_CTX *ctx, EVP_PKEY **ppkey)
114 } 115 }
115 return ret; 116 return ret;
116} 117}
118LCRYPTO_ALIAS(EVP_PKEY_paramgen);
117 119
118int 120int
119EVP_PKEY_keygen_init(EVP_PKEY_CTX *ctx) 121EVP_PKEY_keygen_init(EVP_PKEY_CTX *ctx)
@@ -132,6 +134,7 @@ EVP_PKEY_keygen_init(EVP_PKEY_CTX *ctx)
132 ctx->operation = EVP_PKEY_OP_UNDEFINED; 134 ctx->operation = EVP_PKEY_OP_UNDEFINED;
133 return ret; 135 return ret;
134} 136}
137LCRYPTO_ALIAS(EVP_PKEY_keygen_init);
135 138
136int 139int
137EVP_PKEY_keygen(EVP_PKEY_CTX *ctx, EVP_PKEY **ppkey) 140EVP_PKEY_keygen(EVP_PKEY_CTX *ctx, EVP_PKEY **ppkey)
@@ -160,18 +163,21 @@ EVP_PKEY_keygen(EVP_PKEY_CTX *ctx, EVP_PKEY **ppkey)
160 } 163 }
161 return ret; 164 return ret;
162} 165}
166LCRYPTO_ALIAS(EVP_PKEY_keygen);
163 167
164void 168void
165EVP_PKEY_CTX_set_cb(EVP_PKEY_CTX *ctx, EVP_PKEY_gen_cb *cb) 169EVP_PKEY_CTX_set_cb(EVP_PKEY_CTX *ctx, EVP_PKEY_gen_cb *cb)
166{ 170{
167 ctx->pkey_gencb = cb; 171 ctx->pkey_gencb = cb;
168} 172}
173LCRYPTO_ALIAS(EVP_PKEY_CTX_set_cb);
169 174
170EVP_PKEY_gen_cb * 175EVP_PKEY_gen_cb *
171EVP_PKEY_CTX_get_cb(EVP_PKEY_CTX *ctx) 176EVP_PKEY_CTX_get_cb(EVP_PKEY_CTX *ctx)
172{ 177{
173 return ctx->pkey_gencb; 178 return ctx->pkey_gencb;
174} 179}
180LCRYPTO_ALIAS(EVP_PKEY_CTX_get_cb);
175 181
176/* "translation callback" to call EVP_PKEY_CTX callbacks using BN_GENCB 182/* "translation callback" to call EVP_PKEY_CTX callbacks using BN_GENCB
177 * style callbacks. 183 * style callbacks.
@@ -201,6 +207,7 @@ EVP_PKEY_CTX_get_keygen_info(EVP_PKEY_CTX *ctx, int idx)
201 return 0; 207 return 0;
202 return ctx->keygen_info[idx]; 208 return ctx->keygen_info[idx];
203} 209}
210LCRYPTO_ALIAS(EVP_PKEY_CTX_get_keygen_info);
204 211
205EVP_PKEY * 212EVP_PKEY *
206EVP_PKEY_new_mac_key(int type, ENGINE *e, const unsigned char *key, int keylen) 213EVP_PKEY_new_mac_key(int type, ENGINE *e, const unsigned char *key, int keylen)
@@ -223,6 +230,7 @@ merr:
223 EVP_PKEY_CTX_free(mac_ctx); 230 EVP_PKEY_CTX_free(mac_ctx);
224 return mac_key; 231 return mac_key;
225} 232}
233LCRYPTO_ALIAS(EVP_PKEY_new_mac_key);
226 234
227int 235int
228EVP_PKEY_check(EVP_PKEY_CTX *ctx) 236EVP_PKEY_check(EVP_PKEY_CTX *ctx)
@@ -244,6 +252,7 @@ EVP_PKEY_check(EVP_PKEY_CTX *ctx)
244 252
245 return pkey->ameth->pkey_check(pkey); 253 return pkey->ameth->pkey_check(pkey);
246} 254}
255LCRYPTO_ALIAS(EVP_PKEY_check);
247 256
248int 257int
249EVP_PKEY_public_check(EVP_PKEY_CTX *ctx) 258EVP_PKEY_public_check(EVP_PKEY_CTX *ctx)
@@ -265,6 +274,7 @@ EVP_PKEY_public_check(EVP_PKEY_CTX *ctx)
265 274
266 return pkey->ameth->pkey_public_check(pkey); 275 return pkey->ameth->pkey_public_check(pkey);
267} 276}
277LCRYPTO_ALIAS(EVP_PKEY_public_check);
268 278
269int 279int
270EVP_PKEY_param_check(EVP_PKEY_CTX *ctx) 280EVP_PKEY_param_check(EVP_PKEY_CTX *ctx)
@@ -286,3 +296,4 @@ EVP_PKEY_param_check(EVP_PKEY_CTX *ctx)
286 296
287 return pkey->ameth->pkey_param_check(pkey); 297 return pkey->ameth->pkey_param_check(pkey);
288} 298}
299LCRYPTO_ALIAS(EVP_PKEY_param_check);
diff --git a/src/lib/libcrypto/evp/pmeth_lib.c b/src/lib/libcrypto/evp/pmeth_lib.c
index a2a9ad9c7b..a0a193da7a 100644
--- a/src/lib/libcrypto/evp/pmeth_lib.c
+++ b/src/lib/libcrypto/evp/pmeth_lib.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: pmeth_lib.c,v 1.39 2024/03/02 11:17:27 tb Exp $ */ 1/* $OpenBSD: pmeth_lib.c,v 1.40 2024/04/09 13:52:41 beck Exp $ */
2/* Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL 2/* Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL
3 * project 2006. 3 * project 2006.
4 */ 4 */
@@ -155,12 +155,14 @@ EVP_PKEY_CTX_new(EVP_PKEY *pkey, ENGINE *engine)
155{ 155{
156 return evp_pkey_ctx_new(pkey, -1); 156 return evp_pkey_ctx_new(pkey, -1);
157} 157}
158LCRYPTO_ALIAS(EVP_PKEY_CTX_new);
158 159
159EVP_PKEY_CTX * 160EVP_PKEY_CTX *
160EVP_PKEY_CTX_new_id(int nid, ENGINE *engine) 161EVP_PKEY_CTX_new_id(int nid, ENGINE *engine)
161{ 162{
162 return evp_pkey_ctx_new(NULL, nid); 163 return evp_pkey_ctx_new(NULL, nid);
163} 164}
165LCRYPTO_ALIAS(EVP_PKEY_CTX_new_id);
164 166
165EVP_PKEY_CTX * 167EVP_PKEY_CTX *
166EVP_PKEY_CTX_dup(EVP_PKEY_CTX *pctx) 168EVP_PKEY_CTX_dup(EVP_PKEY_CTX *pctx)
@@ -192,6 +194,7 @@ EVP_PKEY_CTX_dup(EVP_PKEY_CTX *pctx)
192 EVP_PKEY_CTX_free(rctx); 194 EVP_PKEY_CTX_free(rctx);
193 return NULL; 195 return NULL;
194} 196}
197LCRYPTO_ALIAS(EVP_PKEY_CTX_dup);
195 198
196void 199void
197EVP_PKEY_CTX_free(EVP_PKEY_CTX *ctx) 200EVP_PKEY_CTX_free(EVP_PKEY_CTX *ctx)
@@ -204,6 +207,7 @@ EVP_PKEY_CTX_free(EVP_PKEY_CTX *ctx)
204 EVP_PKEY_free(ctx->peerkey); 207 EVP_PKEY_free(ctx->peerkey);
205 free(ctx); 208 free(ctx);
206} 209}
210LCRYPTO_ALIAS(EVP_PKEY_CTX_free);
207 211
208int 212int
209EVP_PKEY_CTX_ctrl(EVP_PKEY_CTX *ctx, int keytype, int optype, int cmd, 213EVP_PKEY_CTX_ctrl(EVP_PKEY_CTX *ctx, int keytype, int optype, int cmd,
@@ -236,6 +240,7 @@ EVP_PKEY_CTX_ctrl(EVP_PKEY_CTX *ctx, int keytype, int optype, int cmd,
236 return ret; 240 return ret;
237 241
238} 242}
243LCRYPTO_ALIAS(EVP_PKEY_CTX_ctrl);
239 244
240int 245int
241EVP_PKEY_CTX_ctrl_str(EVP_PKEY_CTX *ctx, const char *name, const char *value) 246EVP_PKEY_CTX_ctrl_str(EVP_PKEY_CTX *ctx, const char *name, const char *value)
@@ -250,6 +255,7 @@ EVP_PKEY_CTX_ctrl_str(EVP_PKEY_CTX *ctx, const char *name, const char *value)
250 } 255 }
251 return ctx->pmeth->ctrl_str(ctx, name, value); 256 return ctx->pmeth->ctrl_str(ctx, name, value);
252} 257}
258LCRYPTO_ALIAS(EVP_PKEY_CTX_ctrl_str);
253 259
254int 260int
255EVP_PKEY_CTX_str2ctrl(EVP_PKEY_CTX *ctx, int cmd, const char *str) 261EVP_PKEY_CTX_str2ctrl(EVP_PKEY_CTX *ctx, int cmd, const char *str)
@@ -300,6 +306,7 @@ EVP_PKEY_CTX_get_operation(EVP_PKEY_CTX *ctx)
300{ 306{
301 return ctx->operation; 307 return ctx->operation;
302} 308}
309LCRYPTO_ALIAS(EVP_PKEY_CTX_get_operation);
303 310
304void 311void
305EVP_PKEY_CTX_set0_keygen_info(EVP_PKEY_CTX *ctx, int *dat, int datlen) 312EVP_PKEY_CTX_set0_keygen_info(EVP_PKEY_CTX *ctx, int *dat, int datlen)
@@ -307,39 +314,46 @@ EVP_PKEY_CTX_set0_keygen_info(EVP_PKEY_CTX *ctx, int *dat, int datlen)
307 ctx->keygen_info = dat; 314 ctx->keygen_info = dat;
308 ctx->keygen_info_count = datlen; 315 ctx->keygen_info_count = datlen;
309} 316}
317LCRYPTO_ALIAS(EVP_PKEY_CTX_set0_keygen_info);
310 318
311void 319void
312EVP_PKEY_CTX_set_data(EVP_PKEY_CTX *ctx, void *data) 320EVP_PKEY_CTX_set_data(EVP_PKEY_CTX *ctx, void *data)
313{ 321{
314 ctx->data = data; 322 ctx->data = data;
315} 323}
324LCRYPTO_ALIAS(EVP_PKEY_CTX_set_data);
316 325
317void * 326void *
318EVP_PKEY_CTX_get_data(EVP_PKEY_CTX *ctx) 327EVP_PKEY_CTX_get_data(EVP_PKEY_CTX *ctx)
319{ 328{
320 return ctx->data; 329 return ctx->data;
321} 330}
331LCRYPTO_ALIAS(EVP_PKEY_CTX_get_data);
322 332
323EVP_PKEY * 333EVP_PKEY *
324EVP_PKEY_CTX_get0_pkey(EVP_PKEY_CTX *ctx) 334EVP_PKEY_CTX_get0_pkey(EVP_PKEY_CTX *ctx)
325{ 335{
326 return ctx->pkey; 336 return ctx->pkey;
327} 337}
338LCRYPTO_ALIAS(EVP_PKEY_CTX_get0_pkey);
328 339
329EVP_PKEY * 340EVP_PKEY *
330EVP_PKEY_CTX_get0_peerkey(EVP_PKEY_CTX *ctx) 341EVP_PKEY_CTX_get0_peerkey(EVP_PKEY_CTX *ctx)
331{ 342{
332 return ctx->peerkey; 343 return ctx->peerkey;
333} 344}
345LCRYPTO_ALIAS(EVP_PKEY_CTX_get0_peerkey);
334 346
335void 347void
336EVP_PKEY_CTX_set_app_data(EVP_PKEY_CTX *ctx, void *data) 348EVP_PKEY_CTX_set_app_data(EVP_PKEY_CTX *ctx, void *data)
337{ 349{
338 ctx->app_data = data; 350 ctx->app_data = data;
339} 351}
352LCRYPTO_ALIAS(EVP_PKEY_CTX_set_app_data);
340 353
341void * 354void *
342EVP_PKEY_CTX_get_app_data(EVP_PKEY_CTX *ctx) 355EVP_PKEY_CTX_get_app_data(EVP_PKEY_CTX *ctx)
343{ 356{
344 return ctx->app_data; 357 return ctx->app_data;
345} 358}
359LCRYPTO_ALIAS(EVP_PKEY_CTX_get_app_data);
diff --git a/src/lib/libcrypto/hidden/openssl/evp.h b/src/lib/libcrypto/hidden/openssl/evp.h
new file mode 100644
index 0000000000..f5f0cc6dd6
--- /dev/null
+++ b/src/lib/libcrypto/hidden/openssl/evp.h
@@ -0,0 +1,378 @@
1/* $OpenBSD: evp.h,v 1.3 2024/04/09 13:52:42 beck Exp $ */
2/*
3 * Copyright (c) 2024 Bob Beck <beck@openbsd.org>
4 *
5 * Permission to use, copy, modify, and distribute this software for any
6 * purpose with or without fee is hereby granted, provided that the above
7 * copyright notice and this permission notice appear in all copies.
8 *
9 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
10 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
11 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
12 * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
13 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
14 * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
15 * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
16 */
17
18#ifndef _LIBCRYPTO_EVP_H
19#define _LIBCRYPTO_EVP_H
20
21#ifndef _MSC_VER
22#include_next <openssl/evp.h>
23#else
24#include "../include/openssl/evp.h"
25#endif
26#include "crypto_namespace.h"
27
28LCRYPTO_USED(EVP_MD_type);
29LCRYPTO_USED(EVP_MD_pkey_type);
30LCRYPTO_USED(EVP_MD_size);
31LCRYPTO_USED(EVP_MD_block_size);
32LCRYPTO_USED(EVP_MD_flags);
33LCRYPTO_USED(EVP_MD_CTX_md);
34LCRYPTO_USED(EVP_MD_CTX_md_data);
35LCRYPTO_USED(EVP_MD_CTX_pkey_ctx);
36LCRYPTO_USED(EVP_MD_CTX_set_pkey_ctx);
37LCRYPTO_USED(EVP_CIPHER_nid);
38LCRYPTO_USED(EVP_CIPHER_block_size);
39LCRYPTO_USED(EVP_CIPHER_key_length);
40LCRYPTO_USED(EVP_CIPHER_iv_length);
41LCRYPTO_USED(EVP_CIPHER_flags);
42LCRYPTO_USED(EVP_CIPHER_CTX_cipher);
43LCRYPTO_USED(EVP_CIPHER_CTX_encrypting);
44LCRYPTO_USED(EVP_CIPHER_CTX_nid);
45LCRYPTO_USED(EVP_CIPHER_CTX_block_size);
46LCRYPTO_USED(EVP_CIPHER_CTX_key_length);
47LCRYPTO_USED(EVP_CIPHER_CTX_iv_length);
48LCRYPTO_USED(EVP_CIPHER_CTX_get_iv);
49LCRYPTO_USED(EVP_CIPHER_CTX_set_iv);
50LCRYPTO_USED(EVP_CIPHER_CTX_copy);
51LCRYPTO_USED(EVP_CIPHER_CTX_get_app_data);
52LCRYPTO_USED(EVP_CIPHER_CTX_set_app_data);
53LCRYPTO_USED(EVP_CIPHER_CTX_get_cipher_data);
54LCRYPTO_USED(EVP_CIPHER_CTX_set_cipher_data);
55LCRYPTO_USED(EVP_CIPHER_CTX_buf_noconst);
56LCRYPTO_USED(EVP_CIPHER_CTX_flags);
57LCRYPTO_USED(EVP_CIPHER_meth_new);
58LCRYPTO_USED(EVP_CIPHER_meth_dup);
59LCRYPTO_USED(EVP_CIPHER_meth_free);
60LCRYPTO_USED(EVP_CIPHER_meth_set_iv_length);
61LCRYPTO_USED(EVP_CIPHER_meth_set_flags);
62LCRYPTO_USED(EVP_CIPHER_meth_set_impl_ctx_size);
63LCRYPTO_USED(EVP_CIPHER_meth_set_init);
64LCRYPTO_USED(EVP_CIPHER_meth_set_do_cipher);
65LCRYPTO_USED(EVP_CIPHER_meth_set_cleanup);
66LCRYPTO_USED(EVP_CIPHER_meth_set_set_asn1_params);
67LCRYPTO_USED(EVP_CIPHER_meth_set_get_asn1_params);
68LCRYPTO_USED(EVP_CIPHER_meth_set_ctrl);
69LCRYPTO_USED(EVP_PKEY_new_raw_private_key);
70LCRYPTO_USED(EVP_PKEY_new_raw_public_key);
71LCRYPTO_USED(EVP_PKEY_get_raw_private_key);
72LCRYPTO_USED(EVP_PKEY_get_raw_public_key);
73LCRYPTO_USED(EVP_Cipher);
74LCRYPTO_USED(EVP_MD_CTX_new);
75LCRYPTO_USED(EVP_MD_CTX_free);
76LCRYPTO_USED(EVP_MD_CTX_reset);
77LCRYPTO_USED(EVP_MD_CTX_create);
78LCRYPTO_USED(EVP_MD_CTX_destroy);
79LCRYPTO_USED(EVP_MD_CTX_cleanup);
80LCRYPTO_USED(EVP_MD_CTX_copy_ex);
81LCRYPTO_USED(EVP_MD_CTX_set_flags);
82LCRYPTO_USED(EVP_MD_CTX_clear_flags);
83LCRYPTO_USED(EVP_MD_CTX_ctrl);
84LCRYPTO_USED(EVP_MD_CTX_test_flags);
85LCRYPTO_USED(EVP_DigestInit_ex);
86LCRYPTO_USED(EVP_DigestUpdate);
87LCRYPTO_USED(EVP_DigestFinal_ex);
88LCRYPTO_USED(EVP_Digest);
89LCRYPTO_USED(EVP_MD_CTX_copy);
90LCRYPTO_USED(EVP_DigestInit);
91LCRYPTO_USED(EVP_DigestFinal);
92LCRYPTO_USED(EVP_read_pw_string);
93LCRYPTO_USED(EVP_read_pw_string_min);
94LCRYPTO_USED(EVP_set_pw_prompt);
95LCRYPTO_USED(EVP_get_pw_prompt);
96LCRYPTO_USED(EVP_BytesToKey);
97LCRYPTO_USED(EVP_CIPHER_CTX_set_flags);
98LCRYPTO_USED(EVP_CIPHER_CTX_clear_flags);
99LCRYPTO_USED(EVP_CIPHER_CTX_test_flags);
100LCRYPTO_USED(EVP_EncryptInit);
101LCRYPTO_USED(EVP_EncryptInit_ex);
102LCRYPTO_USED(EVP_EncryptUpdate);
103LCRYPTO_USED(EVP_EncryptFinal_ex);
104LCRYPTO_USED(EVP_DecryptInit);
105LCRYPTO_USED(EVP_DecryptInit_ex);
106LCRYPTO_USED(EVP_DecryptUpdate);
107LCRYPTO_USED(EVP_DecryptFinal_ex);
108LCRYPTO_USED(EVP_CipherInit);
109LCRYPTO_USED(EVP_CipherInit_ex);
110LCRYPTO_USED(EVP_CipherUpdate);
111LCRYPTO_USED(EVP_CipherFinal_ex);
112LCRYPTO_USED(EVP_SignFinal);
113LCRYPTO_USED(EVP_VerifyFinal);
114LCRYPTO_USED(EVP_DigestSignInit);
115LCRYPTO_USED(EVP_DigestSignFinal);
116LCRYPTO_USED(EVP_DigestSign);
117LCRYPTO_USED(EVP_DigestVerifyInit);
118LCRYPTO_USED(EVP_DigestVerifyFinal);
119LCRYPTO_USED(EVP_DigestVerify);
120LCRYPTO_USED(EVP_OpenInit);
121LCRYPTO_USED(EVP_OpenFinal);
122LCRYPTO_USED(EVP_SealInit);
123LCRYPTO_USED(EVP_SealFinal);
124LCRYPTO_USED(EVP_ENCODE_CTX_new);
125LCRYPTO_USED(EVP_ENCODE_CTX_free);
126LCRYPTO_USED(EVP_EncodeInit);
127LCRYPTO_USED(EVP_EncodeUpdate);
128LCRYPTO_USED(EVP_EncodeFinal);
129LCRYPTO_USED(EVP_EncodeBlock);
130LCRYPTO_USED(EVP_DecodeInit);
131LCRYPTO_USED(EVP_DecodeUpdate);
132LCRYPTO_USED(EVP_DecodeFinal);
133LCRYPTO_USED(EVP_DecodeBlock);
134LCRYPTO_USED(EVP_CIPHER_CTX_cleanup);
135LCRYPTO_USED(EVP_CIPHER_CTX_new);
136LCRYPTO_USED(EVP_CIPHER_CTX_free);
137LCRYPTO_USED(EVP_CIPHER_CTX_reset);
138LCRYPTO_USED(EVP_CIPHER_CTX_set_key_length);
139LCRYPTO_USED(EVP_CIPHER_CTX_set_padding);
140LCRYPTO_USED(EVP_CIPHER_CTX_ctrl);
141LCRYPTO_USED(EVP_CIPHER_CTX_rand_key);
142LCRYPTO_USED(BIO_f_md);
143LCRYPTO_USED(BIO_f_base64);
144LCRYPTO_USED(BIO_f_cipher);
145LCRYPTO_USED(BIO_set_cipher);
146LCRYPTO_USED(EVP_md_null);
147LCRYPTO_USED(EVP_md4);
148LCRYPTO_USED(EVP_md5);
149LCRYPTO_USED(EVP_md5_sha1);
150LCRYPTO_USED(EVP_sha1);
151LCRYPTO_USED(EVP_sha224);
152LCRYPTO_USED(EVP_sha256);
153LCRYPTO_USED(EVP_sha384);
154LCRYPTO_USED(EVP_sha512);
155LCRYPTO_USED(EVP_sha512_224);
156LCRYPTO_USED(EVP_sha512_256);
157LCRYPTO_USED(EVP_sha3_224);
158LCRYPTO_USED(EVP_sha3_256);
159LCRYPTO_USED(EVP_sha3_384);
160LCRYPTO_USED(EVP_sha3_512);
161LCRYPTO_USED(EVP_sm3);
162LCRYPTO_USED(EVP_ripemd160);
163LCRYPTO_USED(EVP_whirlpool);
164LCRYPTO_USED(EVP_enc_null);
165LCRYPTO_USED(EVP_des_ecb);
166LCRYPTO_USED(EVP_des_ede);
167LCRYPTO_USED(EVP_des_ede3);
168LCRYPTO_USED(EVP_des_ede_ecb);
169LCRYPTO_USED(EVP_des_ede3_ecb);
170LCRYPTO_USED(EVP_des_cfb64);
171LCRYPTO_USED(EVP_des_cfb1);
172LCRYPTO_USED(EVP_des_cfb8);
173LCRYPTO_USED(EVP_des_ede_cfb64);
174LCRYPTO_USED(EVP_des_ede3_cfb64);
175LCRYPTO_USED(EVP_des_ede3_cfb1);
176LCRYPTO_USED(EVP_des_ede3_cfb8);
177LCRYPTO_USED(EVP_des_ofb);
178LCRYPTO_USED(EVP_des_ede_ofb);
179LCRYPTO_USED(EVP_des_ede3_ofb);
180LCRYPTO_USED(EVP_des_cbc);
181LCRYPTO_USED(EVP_des_ede_cbc);
182LCRYPTO_USED(EVP_des_ede3_cbc);
183LCRYPTO_USED(EVP_desx_cbc);
184LCRYPTO_USED(EVP_rc4);
185LCRYPTO_USED(EVP_rc4_40);
186LCRYPTO_USED(EVP_idea_ecb);
187LCRYPTO_USED(EVP_idea_cfb64);
188LCRYPTO_USED(EVP_idea_ofb);
189LCRYPTO_USED(EVP_idea_cbc);
190LCRYPTO_USED(EVP_rc2_ecb);
191LCRYPTO_USED(EVP_rc2_cbc);
192LCRYPTO_USED(EVP_rc2_40_cbc);
193LCRYPTO_USED(EVP_rc2_64_cbc);
194LCRYPTO_USED(EVP_rc2_cfb64);
195LCRYPTO_USED(EVP_rc2_ofb);
196LCRYPTO_USED(EVP_bf_ecb);
197LCRYPTO_USED(EVP_bf_cbc);
198LCRYPTO_USED(EVP_bf_cfb64);
199LCRYPTO_USED(EVP_bf_ofb);
200LCRYPTO_USED(EVP_cast5_ecb);
201LCRYPTO_USED(EVP_cast5_cbc);
202LCRYPTO_USED(EVP_cast5_cfb64);
203LCRYPTO_USED(EVP_cast5_ofb);
204LCRYPTO_USED(EVP_aes_128_ecb);
205LCRYPTO_USED(EVP_aes_128_cbc);
206LCRYPTO_USED(EVP_aes_128_cfb1);
207LCRYPTO_USED(EVP_aes_128_cfb8);
208LCRYPTO_USED(EVP_aes_128_cfb128);
209LCRYPTO_USED(EVP_aes_128_ofb);
210LCRYPTO_USED(EVP_aes_128_ctr);
211LCRYPTO_USED(EVP_aes_128_ccm);
212LCRYPTO_USED(EVP_aes_128_gcm);
213LCRYPTO_USED(EVP_aes_128_wrap);
214LCRYPTO_USED(EVP_aes_128_xts);
215LCRYPTO_USED(EVP_aes_192_ecb);
216LCRYPTO_USED(EVP_aes_192_cbc);
217LCRYPTO_USED(EVP_aes_192_cfb1);
218LCRYPTO_USED(EVP_aes_192_cfb8);
219LCRYPTO_USED(EVP_aes_192_cfb128);
220LCRYPTO_USED(EVP_aes_192_ofb);
221LCRYPTO_USED(EVP_aes_192_ctr);
222LCRYPTO_USED(EVP_aes_192_ccm);
223LCRYPTO_USED(EVP_aes_192_gcm);
224LCRYPTO_USED(EVP_aes_192_wrap);
225LCRYPTO_USED(EVP_aes_256_ecb);
226LCRYPTO_USED(EVP_aes_256_cbc);
227LCRYPTO_USED(EVP_aes_256_cfb1);
228LCRYPTO_USED(EVP_aes_256_cfb8);
229LCRYPTO_USED(EVP_aes_256_cfb128);
230LCRYPTO_USED(EVP_aes_256_ofb);
231LCRYPTO_USED(EVP_aes_256_ctr);
232LCRYPTO_USED(EVP_aes_256_ccm);
233LCRYPTO_USED(EVP_aes_256_gcm);
234LCRYPTO_USED(EVP_aes_256_wrap);
235LCRYPTO_USED(EVP_aes_256_xts);
236LCRYPTO_USED(EVP_chacha20_poly1305);
237LCRYPTO_USED(EVP_camellia_128_ecb);
238LCRYPTO_USED(EVP_camellia_128_cbc);
239LCRYPTO_USED(EVP_camellia_128_cfb1);
240LCRYPTO_USED(EVP_camellia_128_cfb8);
241LCRYPTO_USED(EVP_camellia_128_cfb128);
242LCRYPTO_USED(EVP_camellia_128_ofb);
243LCRYPTO_USED(EVP_camellia_192_ecb);
244LCRYPTO_USED(EVP_camellia_192_cbc);
245LCRYPTO_USED(EVP_camellia_192_cfb1);
246LCRYPTO_USED(EVP_camellia_192_cfb8);
247LCRYPTO_USED(EVP_camellia_192_cfb128);
248LCRYPTO_USED(EVP_camellia_192_ofb);
249LCRYPTO_USED(EVP_camellia_256_ecb);
250LCRYPTO_USED(EVP_camellia_256_cbc);
251LCRYPTO_USED(EVP_camellia_256_cfb1);
252LCRYPTO_USED(EVP_camellia_256_cfb8);
253LCRYPTO_USED(EVP_camellia_256_cfb128);
254LCRYPTO_USED(EVP_camellia_256_ofb);
255LCRYPTO_USED(EVP_chacha20);
256LCRYPTO_USED(EVP_sm4_ecb);
257LCRYPTO_USED(EVP_sm4_cbc);
258LCRYPTO_USED(EVP_sm4_cfb128);
259LCRYPTO_USED(EVP_sm4_ofb);
260LCRYPTO_USED(EVP_sm4_ctr);
261LCRYPTO_USED(OPENSSL_add_all_algorithms_noconf);
262LCRYPTO_USED(OPENSSL_add_all_algorithms_conf);
263LCRYPTO_USED(OpenSSL_add_all_ciphers);
264LCRYPTO_USED(OpenSSL_add_all_digests);
265LCRYPTO_USED(EVP_get_cipherbyname);
266LCRYPTO_USED(EVP_get_digestbyname);
267LCRYPTO_USED(EVP_cleanup);
268LCRYPTO_USED(EVP_CIPHER_do_all);
269LCRYPTO_USED(EVP_CIPHER_do_all_sorted);
270LCRYPTO_USED(EVP_MD_do_all);
271LCRYPTO_USED(EVP_MD_do_all_sorted);
272LCRYPTO_USED(EVP_PKEY_decrypt_old);
273LCRYPTO_USED(EVP_PKEY_encrypt_old);
274LCRYPTO_USED(EVP_PKEY_type);
275LCRYPTO_USED(EVP_PKEY_id);
276LCRYPTO_USED(EVP_PKEY_base_id);
277LCRYPTO_USED(EVP_PKEY_bits);
278LCRYPTO_USED(EVP_PKEY_security_bits);
279LCRYPTO_USED(EVP_PKEY_size);
280LCRYPTO_USED(EVP_PKEY_set_type);
281LCRYPTO_USED(EVP_PKEY_set_type_str);
282LCRYPTO_USED(EVP_PKEY_assign);
283LCRYPTO_USED(EVP_PKEY_get0);
284LCRYPTO_USED(EVP_PKEY_get0_hmac);
285LCRYPTO_USED(EVP_PKEY_get0_RSA);
286LCRYPTO_USED(EVP_PKEY_get1_RSA);
287LCRYPTO_USED(EVP_PKEY_set1_RSA);
288LCRYPTO_USED(EVP_PKEY_get0_DSA);
289LCRYPTO_USED(EVP_PKEY_get1_DSA);
290LCRYPTO_USED(EVP_PKEY_set1_DSA);
291LCRYPTO_USED(EVP_PKEY_get0_DH);
292LCRYPTO_USED(EVP_PKEY_get1_DH);
293LCRYPTO_USED(EVP_PKEY_set1_DH);
294LCRYPTO_USED(EVP_PKEY_get0_EC_KEY);
295LCRYPTO_USED(EVP_PKEY_get1_EC_KEY);
296LCRYPTO_USED(EVP_PKEY_set1_EC_KEY);
297LCRYPTO_USED(EVP_PKEY_new);
298LCRYPTO_USED(EVP_PKEY_free);
299LCRYPTO_USED(EVP_PKEY_up_ref);
300LCRYPTO_USED(d2i_PublicKey);
301LCRYPTO_USED(i2d_PublicKey);
302LCRYPTO_USED(d2i_PrivateKey);
303LCRYPTO_USED(d2i_AutoPrivateKey);
304LCRYPTO_USED(i2d_PrivateKey);
305LCRYPTO_USED(EVP_PKEY_copy_parameters);
306LCRYPTO_USED(EVP_PKEY_missing_parameters);
307LCRYPTO_USED(EVP_PKEY_save_parameters);
308LCRYPTO_USED(EVP_PKEY_cmp_parameters);
309LCRYPTO_USED(EVP_PKEY_cmp);
310LCRYPTO_USED(EVP_PKEY_print_public);
311LCRYPTO_USED(EVP_PKEY_print_private);
312LCRYPTO_USED(EVP_PKEY_print_params);
313LCRYPTO_USED(EVP_PKEY_get_default_digest_nid);
314LCRYPTO_USED(EVP_CIPHER_type);
315LCRYPTO_USED(PKCS5_PBKDF2_HMAC_SHA1);
316LCRYPTO_USED(PKCS5_PBKDF2_HMAC);
317LCRYPTO_USED(EVP_PKEY_asn1_get_count);
318LCRYPTO_USED(EVP_PKEY_asn1_get0);
319LCRYPTO_USED(EVP_PKEY_asn1_find);
320LCRYPTO_USED(EVP_PKEY_asn1_find_str);
321LCRYPTO_USED(EVP_PKEY_asn1_get0_info);
322LCRYPTO_USED(EVP_PKEY_get0_asn1);
323LCRYPTO_USED(EVP_PKEY_CTX_new);
324LCRYPTO_USED(EVP_PKEY_CTX_new_id);
325LCRYPTO_USED(EVP_PKEY_CTX_dup);
326LCRYPTO_USED(EVP_PKEY_CTX_free);
327LCRYPTO_USED(EVP_PKEY_CTX_ctrl);
328LCRYPTO_USED(EVP_PKEY_CTX_ctrl_str);
329LCRYPTO_USED(EVP_PKEY_CTX_get_operation);
330LCRYPTO_USED(EVP_PKEY_CTX_set0_keygen_info);
331LCRYPTO_USED(EVP_PKEY_new_mac_key);
332LCRYPTO_USED(EVP_PKEY_new_CMAC_key);
333LCRYPTO_USED(EVP_PKEY_CTX_set_data);
334LCRYPTO_USED(EVP_PKEY_CTX_get_data);
335LCRYPTO_USED(EVP_PKEY_CTX_get0_pkey);
336LCRYPTO_USED(EVP_PKEY_CTX_get0_peerkey);
337LCRYPTO_USED(EVP_PKEY_CTX_set_app_data);
338LCRYPTO_USED(EVP_PKEY_CTX_get_app_data);
339LCRYPTO_USED(EVP_PKEY_sign_init);
340LCRYPTO_USED(EVP_PKEY_sign);
341LCRYPTO_USED(EVP_PKEY_verify_init);
342LCRYPTO_USED(EVP_PKEY_verify);
343LCRYPTO_USED(EVP_PKEY_verify_recover_init);
344LCRYPTO_USED(EVP_PKEY_verify_recover);
345LCRYPTO_USED(EVP_PKEY_encrypt_init);
346LCRYPTO_USED(EVP_PKEY_encrypt);
347LCRYPTO_USED(EVP_PKEY_decrypt_init);
348LCRYPTO_USED(EVP_PKEY_decrypt);
349LCRYPTO_USED(EVP_PKEY_derive_init);
350LCRYPTO_USED(EVP_PKEY_derive_set_peer);
351LCRYPTO_USED(EVP_PKEY_derive);
352LCRYPTO_USED(EVP_PKEY_paramgen_init);
353LCRYPTO_USED(EVP_PKEY_paramgen);
354LCRYPTO_USED(EVP_PKEY_keygen_init);
355LCRYPTO_USED(EVP_PKEY_keygen);
356LCRYPTO_USED(EVP_PKEY_check);
357LCRYPTO_USED(EVP_PKEY_public_check);
358LCRYPTO_USED(EVP_PKEY_param_check);
359LCRYPTO_USED(EVP_PKEY_CTX_set_cb);
360LCRYPTO_USED(EVP_PKEY_CTX_get_cb);
361LCRYPTO_USED(EVP_PKEY_CTX_get_keygen_info);
362LCRYPTO_USED(EVP_aead_aes_128_gcm);
363LCRYPTO_USED(EVP_aead_aes_256_gcm);
364LCRYPTO_USED(EVP_aead_chacha20_poly1305);
365LCRYPTO_USED(EVP_aead_xchacha20_poly1305);
366LCRYPTO_USED(EVP_AEAD_key_length);
367LCRYPTO_USED(EVP_AEAD_nonce_length);
368LCRYPTO_USED(EVP_AEAD_max_overhead);
369LCRYPTO_USED(EVP_AEAD_max_tag_len);
370LCRYPTO_USED(EVP_AEAD_CTX_new);
371LCRYPTO_USED(EVP_AEAD_CTX_free);
372LCRYPTO_USED(EVP_AEAD_CTX_init);
373LCRYPTO_USED(EVP_AEAD_CTX_cleanup);
374LCRYPTO_USED(EVP_AEAD_CTX_seal);
375LCRYPTO_USED(EVP_AEAD_CTX_open);
376LCRYPTO_USED(ERR_load_EVP_strings);
377
378#endif /* _LIBCRYPTO_EVP_H */