From: Yu Watanabe Date: Thu, 25 Jun 2026 12:10:05 +0000 (+0900) Subject: crypto-util: load several more functions from libcrypto.so X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=2b2ca3d7cb20c9ef5935bf6ecd7221fe55ec243a;p=thirdparty%2Fsystemd.git crypto-util: load several more functions from libcrypto.so They will be used in later commits. --- diff --git a/src/shared/crypto-util.c b/src/shared/crypto-util.c index 6fefad74c97..5b1d6d81366 100644 --- a/src/shared/crypto-util.c +++ b/src/shared/crypto-util.c @@ -17,7 +17,6 @@ #include "strv.h" #if HAVE_OPENSSL -# include # include # include # include @@ -73,12 +72,32 @@ DLSYM_PROTOTYPE(BIO_s_mem) = NULL; DLSYM_PROTOTYPE(BIO_write) = NULL; DLSYM_PROTOTYPE(BN_CTX_free) = NULL; DLSYM_PROTOTYPE(BN_CTX_new) = NULL; +DLSYM_PROTOTYPE(BN_CTX_secure_new) = NULL; +DLSYM_PROTOTYPE(BN_add) = NULL; +DLSYM_PROTOTYPE(BN_add_word) = NULL; DLSYM_PROTOTYPE(BN_bin2bn) = NULL; -static DLSYM_PROTOTYPE(BN_bn2bin) = NULL; +DLSYM_PROTOTYPE(BN_bn2bin) = NULL; +DLSYM_PROTOTYPE(BN_bn2binpad) = NULL; DLSYM_PROTOTYPE(BN_bn2nativepad) = NULL; +DLSYM_PROTOTYPE(BN_check_prime) = NULL; +DLSYM_PROTOTYPE(BN_clear_free) = NULL; +DLSYM_PROTOTYPE(BN_cmp) = NULL; +DLSYM_PROTOTYPE(BN_copy) = NULL; DLSYM_PROTOTYPE(BN_free) = NULL; +DLSYM_PROTOTYPE(BN_is_negative) = NULL; +DLSYM_PROTOTYPE(BN_mod_exp) = NULL; +DLSYM_PROTOTYPE(BN_mod_inverse) = NULL; +DLSYM_PROTOTYPE(BN_mod_lshift1_quick) = NULL; +DLSYM_PROTOTYPE(BN_mod_mul) = NULL; +DLSYM_PROTOTYPE(BN_mod_sqr) = NULL; +DLSYM_PROTOTYPE(BN_mod_sub) = NULL; +DLSYM_PROTOTYPE(BN_mul) = NULL; DLSYM_PROTOTYPE(BN_new) = NULL; +DLSYM_PROTOTYPE(BN_nnmod) = NULL; DLSYM_PROTOTYPE(BN_num_bits) = NULL; +DLSYM_PROTOTYPE(BN_secure_new) = NULL; +DLSYM_PROTOTYPE(BN_set_word) = NULL; +DLSYM_PROTOTYPE(BN_sub_word) = NULL; DLSYM_PROTOTYPE(CRYPTO_free) = NULL; DLSYM_PROTOTYPE(ECDSA_SIG_free) = NULL; DLSYM_PROTOTYPE(EC_GROUP_free) = NULL; @@ -130,12 +149,13 @@ static DLSYM_PROTOTYPE(EVP_KDF_fetch) = NULL; static DLSYM_PROTOTYPE(EVP_KDF_free) = NULL; DLSYM_PROTOTYPE(EVP_MAC_CTX_free) = NULL; static DLSYM_PROTOTYPE(EVP_MAC_CTX_get_mac_size) = NULL; -static DLSYM_PROTOTYPE(EVP_MAC_CTX_new) = NULL; -static DLSYM_PROTOTYPE(EVP_MAC_fetch) = NULL; -static DLSYM_PROTOTYPE(EVP_MAC_final) = NULL; +DLSYM_PROTOTYPE(EVP_MAC_CTX_new) = NULL; +DLSYM_PROTOTYPE(EVP_MAC_fetch) = NULL; +DLSYM_PROTOTYPE(EVP_MAC_final) = NULL; DLSYM_PROTOTYPE(EVP_MAC_free) = NULL; -static DLSYM_PROTOTYPE(EVP_MAC_init) = NULL; -static DLSYM_PROTOTYPE(EVP_MAC_update) = NULL; +DLSYM_PROTOTYPE(EVP_MAC_init) = NULL; +DLSYM_PROTOTYPE(EVP_MAC_update) = NULL; +DLSYM_PROTOTYPE(EVP_MD_CTX_copy_ex) = NULL; DLSYM_PROTOTYPE(EVP_MD_CTX_free) = NULL; DLSYM_PROTOTYPE(EVP_MD_CTX_get0_md) = NULL; DLSYM_PROTOTYPE(EVP_MD_CTX_new) = NULL; @@ -195,11 +215,11 @@ DLSYM_PROTOTYPE(OPENSSL_sk_pop_free) = NULL; DLSYM_PROTOTYPE(OPENSSL_sk_push) = NULL; DLSYM_PROTOTYPE(OPENSSL_sk_value) = NULL; DLSYM_PROTOTYPE(OSSL_EC_curve_nid2name) = NULL; -static DLSYM_PROTOTYPE(OSSL_PARAM_BLD_free) = NULL; -static DLSYM_PROTOTYPE(OSSL_PARAM_BLD_new) = NULL; +DLSYM_PROTOTYPE(OSSL_PARAM_BLD_free) = NULL; +DLSYM_PROTOTYPE(OSSL_PARAM_BLD_new) = NULL; static DLSYM_PROTOTYPE(OSSL_PARAM_BLD_push_octet_string) = NULL; -static DLSYM_PROTOTYPE(OSSL_PARAM_BLD_push_utf8_string) = NULL; -static DLSYM_PROTOTYPE(OSSL_PARAM_BLD_to_param) = NULL; +DLSYM_PROTOTYPE(OSSL_PARAM_BLD_push_utf8_string) = NULL; +DLSYM_PROTOTYPE(OSSL_PARAM_BLD_to_param) = NULL; DLSYM_PROTOTYPE(OSSL_PARAM_construct_BN) = NULL; DLSYM_PROTOTYPE(OSSL_PARAM_construct_end) = NULL; DLSYM_PROTOTYPE(OSSL_PARAM_construct_octet_string) = NULL; @@ -276,7 +296,6 @@ static DLSYM_PROTOTYPE(i2d_PublicKey) = NULL; DLSYM_PROTOTYPE(i2d_X509) = NULL; DLSYM_PROTOTYPE(i2d_X509_NAME) = NULL; -DEFINE_TRIVIAL_CLEANUP_FUNC_FULL_RENAME(OSSL_PARAM_BLD*, sym_OSSL_PARAM_BLD_free, OSSL_PARAM_BLD_freep, NULL); DEFINE_TRIVIAL_CLEANUP_FUNC_FULL_RENAME(OSSL_STORE_CTX*, sym_OSSL_STORE_close, OSSL_STORE_closep, NULL); DEFINE_TRIVIAL_CLEANUP_FUNC_FULL_RENAME(OSSL_STORE_INFO*, sym_OSSL_STORE_INFO_free, OSSL_STORE_INFO_freep, NULL); DEFINE_TRIVIAL_CLEANUP_FUNC_FULL_RENAME(EVP_KDF*, sym_EVP_KDF_free, EVP_KDF_freep, NULL); @@ -380,12 +399,32 @@ int dlopen_libcrypto(int log_level) { DLSYM_ARG(BIO_write), DLSYM_ARG(BN_CTX_free), DLSYM_ARG(BN_CTX_new), + DLSYM_ARG(BN_CTX_secure_new), + DLSYM_ARG(BN_add), + DLSYM_ARG(BN_add_word), DLSYM_ARG(BN_bin2bn), DLSYM_ARG(BN_bn2bin), + DLSYM_ARG(BN_bn2binpad), DLSYM_ARG(BN_bn2nativepad), + DLSYM_ARG(BN_check_prime), + DLSYM_ARG(BN_clear_free), + DLSYM_ARG(BN_cmp), + DLSYM_ARG(BN_copy), DLSYM_ARG(BN_free), + DLSYM_ARG(BN_is_negative), + DLSYM_ARG(BN_mod_exp), + DLSYM_ARG(BN_mod_inverse), + DLSYM_ARG(BN_mod_lshift1_quick), + DLSYM_ARG(BN_mod_mul), + DLSYM_ARG(BN_mod_sqr), + DLSYM_ARG(BN_mod_sub), + DLSYM_ARG(BN_mul), DLSYM_ARG(BN_new), + DLSYM_ARG(BN_nnmod), DLSYM_ARG(BN_num_bits), + DLSYM_ARG(BN_secure_new), + DLSYM_ARG(BN_set_word), + DLSYM_ARG(BN_sub_word), DLSYM_ARG(CRYPTO_free), DLSYM_ARG(ECDSA_SIG_free), DLSYM_ARG(EC_GROUP_free), @@ -443,6 +482,7 @@ int dlopen_libcrypto(int log_level) { DLSYM_ARG(EVP_MAC_free), DLSYM_ARG(EVP_MAC_init), DLSYM_ARG(EVP_MAC_update), + DLSYM_ARG(EVP_MD_CTX_copy_ex), DLSYM_ARG(EVP_MD_CTX_free), DLSYM_ARG(EVP_MD_CTX_get0_md), DLSYM_ARG(EVP_MD_CTX_new), diff --git a/src/shared/crypto-util.h b/src/shared/crypto-util.h index 791b37d6be8..bd7dda0931c 100644 --- a/src/shared/crypto-util.h +++ b/src/shared/crypto-util.h @@ -47,6 +47,7 @@ int dlopen_libcrypto(int log_level); # include /* IWYU pragma: export */ # include /* IWYU pragma: export */ +# include /* IWYU pragma: export */ # include /* IWYU pragma: export */ # include /* IWYU pragma: export */ # include /* IWYU pragma: export */ @@ -93,11 +94,32 @@ extern DLSYM_PROTOTYPE(BIO_s_mem); extern DLSYM_PROTOTYPE(BIO_write); extern DLSYM_PROTOTYPE(BN_CTX_free); extern DLSYM_PROTOTYPE(BN_CTX_new); +extern DLSYM_PROTOTYPE(BN_CTX_secure_new); +extern DLSYM_PROTOTYPE(BN_add); +extern DLSYM_PROTOTYPE(BN_add_word); extern DLSYM_PROTOTYPE(BN_bin2bn); +extern DLSYM_PROTOTYPE(BN_bn2bin); +extern DLSYM_PROTOTYPE(BN_bn2binpad); extern DLSYM_PROTOTYPE(BN_bn2nativepad); +extern DLSYM_PROTOTYPE(BN_check_prime); +extern DLSYM_PROTOTYPE(BN_clear_free); +extern DLSYM_PROTOTYPE(BN_cmp); +extern DLSYM_PROTOTYPE(BN_copy); extern DLSYM_PROTOTYPE(BN_free); +extern DLSYM_PROTOTYPE(BN_is_negative); +extern DLSYM_PROTOTYPE(BN_mod_exp); +extern DLSYM_PROTOTYPE(BN_mod_inverse); +extern DLSYM_PROTOTYPE(BN_mod_lshift1_quick); +extern DLSYM_PROTOTYPE(BN_mod_mul); +extern DLSYM_PROTOTYPE(BN_mod_sqr); +extern DLSYM_PROTOTYPE(BN_mod_sub); +extern DLSYM_PROTOTYPE(BN_mul); extern DLSYM_PROTOTYPE(BN_new); +extern DLSYM_PROTOTYPE(BN_nnmod); extern DLSYM_PROTOTYPE(BN_num_bits); +extern DLSYM_PROTOTYPE(BN_secure_new); +extern DLSYM_PROTOTYPE(BN_set_word); +extern DLSYM_PROTOTYPE(BN_sub_word); extern DLSYM_PROTOTYPE(CRYPTO_free); extern DLSYM_PROTOTYPE(ECDSA_SIG_free); extern DLSYM_PROTOTYPE(EC_GROUP_free); @@ -135,7 +157,13 @@ extern DLSYM_PROTOTYPE(EVP_EncryptFinal_ex); extern DLSYM_PROTOTYPE(EVP_EncryptInit_ex); extern DLSYM_PROTOTYPE(EVP_EncryptUpdate); extern DLSYM_PROTOTYPE(EVP_MAC_CTX_free); +extern DLSYM_PROTOTYPE(EVP_MAC_CTX_new); +extern DLSYM_PROTOTYPE(EVP_MAC_fetch); +extern DLSYM_PROTOTYPE(EVP_MAC_final); extern DLSYM_PROTOTYPE(EVP_MAC_free); +extern DLSYM_PROTOTYPE(EVP_MAC_init); +extern DLSYM_PROTOTYPE(EVP_MAC_update); +extern DLSYM_PROTOTYPE(EVP_MD_CTX_copy_ex); extern DLSYM_PROTOTYPE(EVP_MD_CTX_free); extern DLSYM_PROTOTYPE(EVP_MD_CTX_get0_md); extern DLSYM_PROTOTYPE(EVP_MD_CTX_new); @@ -180,6 +208,10 @@ extern DLSYM_PROTOTYPE(OPENSSL_sk_pop_free); extern DLSYM_PROTOTYPE(OPENSSL_sk_push); extern DLSYM_PROTOTYPE(OPENSSL_sk_value); extern DLSYM_PROTOTYPE(OSSL_EC_curve_nid2name); +extern DLSYM_PROTOTYPE(OSSL_PARAM_BLD_free); +extern DLSYM_PROTOTYPE(OSSL_PARAM_BLD_new); +extern DLSYM_PROTOTYPE(OSSL_PARAM_BLD_push_utf8_string); +extern DLSYM_PROTOTYPE(OSSL_PARAM_BLD_to_param); extern DLSYM_PROTOTYPE(OSSL_PARAM_construct_BN); extern DLSYM_PROTOTYPE(OSSL_PARAM_construct_end); extern DLSYM_PROTOTYPE(OSSL_PARAM_construct_octet_string); @@ -262,6 +294,7 @@ DEFINE_TRIVIAL_CLEANUP_FUNC_FULL_RENAME(RSA*, sym_RSA_free, RSA_freep, NULL); #define sym_BIO_get_mem_ptr(b, pp) sym_BIO_ctrl((b), BIO_C_GET_BUF_MEM_PTR, 0, (char *) (pp)) #define sym_BIO_reset(b) sym_BIO_ctrl((b), BIO_CTRL_RESET, 0, NULL) #define sym_BN_num_bytes(a) ((sym_BN_num_bits(a) + 7) / 8) +#define sym_BN_one(a) sym_BN_set_word(a, 1) #define sym_EVP_MD_CTX_get_size(ctx) sym_EVP_MD_get_size(sym_EVP_MD_CTX_get0_md(ctx)) #define sym_EVP_MD_CTX_get0_name(ctx) sym_EVP_MD_get0_name(sym_EVP_MD_CTX_get0_md(ctx)) #define sym_EVP_PKEY_assign_RSA(pkey, rsa) sym_EVP_PKEY_assign((pkey), EVP_PKEY_RSA, (rsa)) @@ -272,6 +305,7 @@ DEFINE_TRIVIAL_CLEANUP_FUNC_FULL_MACRO_RENAME(void*, sym_OPENSSL_free, OPENSSL_f DEFINE_TRIVIAL_CLEANUP_FUNC_FULL_RENAME(ASN1_OCTET_STRING*, sym_ASN1_OCTET_STRING_free, ASN1_OCTET_STRING_freep, NULL); DEFINE_TRIVIAL_CLEANUP_FUNC_FULL_RENAME(ASN1_TIME*, sym_ASN1_TIME_free, ASN1_TIME_freep, NULL); DEFINE_TRIVIAL_CLEANUP_FUNC_FULL_RENAME(BIGNUM*, sym_BN_free, BN_freep, NULL); +DEFINE_TRIVIAL_CLEANUP_FUNC_FULL_RENAME(BIGNUM*, sym_BN_clear_free, BN_clear_freep, NULL); DEFINE_TRIVIAL_CLEANUP_FUNC_FULL_RENAME(BIO*, sym_BIO_free_all, BIO_free_allp, NULL); DEFINE_TRIVIAL_CLEANUP_FUNC_FULL_RENAME(BIO*, sym_BIO_free, BIO_freep, NULL); DEFINE_TRIVIAL_CLEANUP_FUNC_FULL_RENAME(BN_CTX*, sym_BN_CTX_free, BN_CTX_freep, NULL); @@ -286,6 +320,7 @@ DEFINE_TRIVIAL_CLEANUP_FUNC_FULL_RENAME(EVP_MD_CTX*, sym_EVP_MD_CTX_free, EVP_MD DEFINE_TRIVIAL_CLEANUP_FUNC_FULL_RENAME(EVP_MD*, sym_EVP_MD_free, EVP_MD_freep, NULL); DEFINE_TRIVIAL_CLEANUP_FUNC_FULL_RENAME(EVP_PKEY_CTX*, sym_EVP_PKEY_CTX_free, EVP_PKEY_CTX_freep, NULL); DEFINE_TRIVIAL_CLEANUP_FUNC_FULL_RENAME(EVP_PKEY*, sym_EVP_PKEY_free, EVP_PKEY_freep, NULL); +DEFINE_TRIVIAL_CLEANUP_FUNC_FULL_RENAME(OSSL_PARAM_BLD*, sym_OSSL_PARAM_BLD_free, OSSL_PARAM_BLD_freep, NULL); DEFINE_TRIVIAL_CLEANUP_FUNC_FULL_RENAME(OSSL_PARAM*, sym_OSSL_PARAM_free, OSSL_PARAM_freep, NULL); DEFINE_TRIVIAL_CLEANUP_FUNC_FULL_RENAME(PKCS7_SIGNER_INFO*, sym_PKCS7_SIGNER_INFO_free, PKCS7_SIGNER_INFO_freep, NULL); DEFINE_TRIVIAL_CLEANUP_FUNC_FULL_RENAME(PKCS7*, sym_PKCS7_free, PKCS7_freep, NULL);