Use CRYPTO_API() etc. from include/crypto/api.h in preparation for compilation as part of support for FIPS 140 standalone modules. Generated using: ./fipsify.py --config CONFIG_ASYMMETRIC_KEY_TYPE --source crypto/asymmetric_keys/signature.c --header include/crypto/public_key.h Signed-off-by: Vegard Nossum <vegard.nossum@xxxxxxxxxx> --- crypto/asymmetric_keys/signature.c | 12 ++++++------ crypto/fips140-api.c | 13 +++++++++++++ include/crypto/public_key.h | 14 +++++++++----- 3 files changed, 28 insertions(+), 11 deletions(-) diff --git a/crypto/asymmetric_keys/signature.c b/crypto/asymmetric_keys/signature.c index 041d04b5c953..06ae0a49222c 100644 --- a/crypto/asymmetric_keys/signature.c +++ b/crypto/asymmetric_keys/signature.c @@ -20,7 +20,7 @@ /* * Destroy a public key signature. */ -void public_key_signature_free(struct public_key_signature *sig) +void CRYPTO_API(public_key_signature_free)(struct public_key_signature *sig) { int i; @@ -32,14 +32,14 @@ void public_key_signature_free(struct public_key_signature *sig) kfree(sig); } } -EXPORT_SYMBOL_GPL(public_key_signature_free); +DEFINE_CRYPTO_API(public_key_signature_free); /** * query_asymmetric_key - Get information about an asymmetric key. * @params: Various parameters. * @info: Where to put the information. */ -int query_asymmetric_key(const struct kernel_pkey_params *params, +int CRYPTO_API(query_asymmetric_key)(const struct kernel_pkey_params *params, struct kernel_pkey_query *info) { const struct asymmetric_key_subtype *subtype; @@ -62,7 +62,7 @@ int query_asymmetric_key(const struct kernel_pkey_params *params, pr_devel("<==%s() = %d\n", __func__, ret); return ret; } -EXPORT_SYMBOL_GPL(query_asymmetric_key); +DEFINE_CRYPTO_API(query_asymmetric_key); /** * verify_signature - Initiate the use of an asymmetric key to verify a signature @@ -71,7 +71,7 @@ EXPORT_SYMBOL_GPL(query_asymmetric_key); * * Returns 0 if successful or else an error. */ -int verify_signature(const struct key *key, +int CRYPTO_API(verify_signature)(const struct key *key, const struct public_key_signature *sig) { const struct asymmetric_key_subtype *subtype; @@ -93,4 +93,4 @@ int verify_signature(const struct key *key, pr_devel("<==%s() = %d\n", __func__, ret); return ret; } -EXPORT_SYMBOL_GPL(verify_signature); +DEFINE_CRYPTO_API(verify_signature); diff --git a/crypto/fips140-api.c b/crypto/fips140-api.c index 49e89f4bdddb..5c245b1be2ba 100644 --- a/crypto/fips140-api.c +++ b/crypto/fips140-api.c @@ -687,3 +687,16 @@ DEFINE_CRYPTO_API_STUB(public_key_verify_signature); #endif +/* + * crypto/asymmetric_keys/signature.c + */ +#if !IS_BUILTIN(CONFIG_ASYMMETRIC_KEY_TYPE) + +#include <crypto/public_key.h> + +DEFINE_CRYPTO_API_STUB(public_key_signature_free); +DEFINE_CRYPTO_API_STUB(query_asymmetric_key); +DEFINE_CRYPTO_API_STUB(verify_signature); + +#endif + diff --git a/include/crypto/public_key.h b/include/crypto/public_key.h index 46e6e14b8559..c8f30adbd655 100644 --- a/include/crypto/public_key.h +++ b/include/crypto/public_key.h @@ -54,7 +54,9 @@ struct public_key_signature { const char *encoding; }; -extern void public_key_signature_free(struct public_key_signature *sig); +DECLARE_CRYPTO_API(public_key_signature_free, void, + (struct public_key_signature *sig), + (sig)); extern struct asymmetric_key_subtype public_key_subtype; @@ -104,11 +106,13 @@ static inline int restrict_link_by_digsig(struct key *dest_keyring, } #endif -extern int query_asymmetric_key(const struct kernel_pkey_params *, - struct kernel_pkey_query *); +DECLARE_CRYPTO_API(query_asymmetric_key, int, + (const struct kernel_pkey_params *arg1, struct kernel_pkey_query *arg2), + (arg1, arg2)); -extern int verify_signature(const struct key *, - const struct public_key_signature *); +DECLARE_CRYPTO_API(verify_signature, int, + (const struct key *arg1, const struct public_key_signature *arg2), + (arg1, arg2)); #if IS_REACHABLE(CONFIG_ASYMMETRIC_PUBLIC_KEY_SUBTYPE) DECLARE_CRYPTO_API(public_key_verify_signature, int, -- 2.39.3