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_CRYPTO_ECDH --source crypto/ecdh_helper.c --header include/crypto/ecdh.h Signed-off-by: Vegard Nossum <vegard.nossum@xxxxxxxxxx> --- crypto/ecdh_helper.c | 12 ++++++------ crypto/fips140-api.c | 13 +++++++++++++ include/crypto/ecdh.h | 12 +++++++++--- 3 files changed, 28 insertions(+), 9 deletions(-) diff --git a/crypto/ecdh_helper.c b/crypto/ecdh_helper.c index f18f9028f912..42530c3f70dd 100644 --- a/crypto/ecdh_helper.c +++ b/crypto/ecdh_helper.c @@ -24,13 +24,13 @@ static inline const u8 *ecdh_unpack_data(void *dst, const void *src, size_t sz) return src + sz; } -unsigned int crypto_ecdh_key_len(const struct ecdh *params) +unsigned int CRYPTO_API(crypto_ecdh_key_len)(const struct ecdh *params) { return ECDH_KPP_SECRET_MIN_SIZE + params->key_size; } -EXPORT_SYMBOL_GPL(crypto_ecdh_key_len); +DEFINE_CRYPTO_API(crypto_ecdh_key_len); -int crypto_ecdh_encode_key(char *buf, unsigned int len, +int CRYPTO_API(crypto_ecdh_encode_key)(char *buf, unsigned int len, const struct ecdh *params) { u8 *ptr = buf; @@ -51,9 +51,9 @@ int crypto_ecdh_encode_key(char *buf, unsigned int len, return 0; } -EXPORT_SYMBOL_GPL(crypto_ecdh_encode_key); +DEFINE_CRYPTO_API(crypto_ecdh_encode_key); -int crypto_ecdh_decode_key(const char *buf, unsigned int len, +int CRYPTO_API(crypto_ecdh_decode_key)(const char *buf, unsigned int len, struct ecdh *params) { const u8 *ptr = buf; @@ -80,4 +80,4 @@ int crypto_ecdh_decode_key(const char *buf, unsigned int len, return 0; } -EXPORT_SYMBOL_GPL(crypto_ecdh_decode_key); +DEFINE_CRYPTO_API(crypto_ecdh_decode_key); diff --git a/crypto/fips140-api.c b/crypto/fips140-api.c index f236b302c2a7..fab12d65a312 100644 --- a/crypto/fips140-api.c +++ b/crypto/fips140-api.c @@ -397,3 +397,16 @@ DEFINE_CRYPTO_API_STUB(ecc_point_mult_shamir); #endif +/* + * crypto/ecdh_helper.c + */ +#if !IS_BUILTIN(CONFIG_CRYPTO_ECDH) + +#include <crypto/ecdh.h> + +DEFINE_CRYPTO_API_STUB(crypto_ecdh_key_len); +DEFINE_CRYPTO_API_STUB(crypto_ecdh_encode_key); +DEFINE_CRYPTO_API_STUB(crypto_ecdh_decode_key); + +#endif + diff --git a/include/crypto/ecdh.h b/include/crypto/ecdh.h index aa09f880c0d3..35d20c9b23d2 100644 --- a/include/crypto/ecdh.h +++ b/include/crypto/ecdh.h @@ -51,7 +51,9 @@ struct ecdh { * * Return: size of the key in bytes */ -unsigned int crypto_ecdh_key_len(const struct ecdh *params); +DECLARE_CRYPTO_API(crypto_ecdh_key_len, unsigned int, + (const struct ecdh *params), + (params)); /** * crypto_ecdh_encode_key() - encode the private key @@ -66,7 +68,9 @@ unsigned int crypto_ecdh_key_len(const struct ecdh *params); * * Return: -EINVAL if buffer has insufficient size, 0 on success */ -int crypto_ecdh_encode_key(char *buf, unsigned int len, const struct ecdh *p); +DECLARE_CRYPTO_API(crypto_ecdh_encode_key, int, + (char *buf, unsigned int len, const struct ecdh *p), + (buf, len, p)); /** * crypto_ecdh_decode_key() - decode a private key @@ -80,6 +84,8 @@ int crypto_ecdh_encode_key(char *buf, unsigned int len, const struct ecdh *p); * * Return: -EINVAL if buffer has insufficient size, 0 on success */ -int crypto_ecdh_decode_key(const char *buf, unsigned int len, struct ecdh *p); +DECLARE_CRYPTO_API(crypto_ecdh_decode_key, int, + (const char *buf, unsigned int len, struct ecdh *p), + (buf, len, p)); #endif -- 2.39.3