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/asymmetric_type.c --header 
include/keys/asymmetric-parser.h include/keys/asymmetric-type.h

Signed-off-by: Vegard Nossum <[email protected]>
---
 crypto/asymmetric_keys/asymmetric_type.c | 30 ++++++++++++------------
 crypto/fips140-api.c                     | 19 +++++++++++++++
 include/keys/asymmetric-parser.h         |  8 +++++--
 include/keys/asymmetric-type.h           | 26 ++++++++++----------
 4 files changed, 53 insertions(+), 30 deletions(-)

diff --git a/crypto/asymmetric_keys/asymmetric_type.c 
b/crypto/asymmetric_keys/asymmetric_type.c
index ba2d9d1ea235..7c0a73d17eb9 100644
--- a/crypto/asymmetric_keys/asymmetric_type.c
+++ b/crypto/asymmetric_keys/asymmetric_type.c
@@ -38,7 +38,7 @@ static DECLARE_RWSEM(asymmetric_key_parsers_sem);
  * exactly.  If both are missing, id_2 must match the sought key's third
  * identifier exactly.
  */
-struct key *find_asymmetric_key(struct key *keyring,
+struct key *CRYPTO_API(find_asymmetric_key)(struct key *keyring,
                                const struct asymmetric_key_id *id_0,
                                const struct asymmetric_key_id *id_1,
                                const struct asymmetric_key_id *id_2,
@@ -124,7 +124,7 @@ struct key *find_asymmetric_key(struct key *keyring,
        key_put(key);
        return ERR_PTR(-EKEYREJECTED);
 }
-EXPORT_SYMBOL_GPL(find_asymmetric_key);
+DEFINE_CRYPTO_API(find_asymmetric_key);
 
 /**
  * asymmetric_key_generate_id: Construct an asymmetric key ID
@@ -135,7 +135,7 @@ EXPORT_SYMBOL_GPL(find_asymmetric_key);
  *
  * Construct an asymmetric key ID from a pair of binary blobs.
  */
-struct asymmetric_key_id *asymmetric_key_generate_id(const void *val_1,
+struct asymmetric_key_id *CRYPTO_API(asymmetric_key_generate_id)(const void 
*val_1,
                                                     size_t len_1,
                                                     const void *val_2,
                                                     size_t len_2)
@@ -151,14 +151,14 @@ struct asymmetric_key_id 
*asymmetric_key_generate_id(const void *val_1,
        memcpy(kid->data + len_1, val_2, len_2);
        return kid;
 }
-EXPORT_SYMBOL_GPL(asymmetric_key_generate_id);
+DEFINE_CRYPTO_API(asymmetric_key_generate_id);
 
 /**
  * asymmetric_key_id_same - Return true if two asymmetric keys IDs are the 
same.
  * @kid1: The key ID to compare
  * @kid2: The key ID to compare
  */
-bool asymmetric_key_id_same(const struct asymmetric_key_id *kid1,
+bool CRYPTO_API(asymmetric_key_id_same)(const struct asymmetric_key_id *kid1,
                            const struct asymmetric_key_id *kid2)
 {
        if (!kid1 || !kid2)
@@ -167,7 +167,7 @@ bool asymmetric_key_id_same(const struct asymmetric_key_id 
*kid1,
                return false;
        return memcmp(kid1->data, kid2->data, kid1->len) == 0;
 }
-EXPORT_SYMBOL_GPL(asymmetric_key_id_same);
+DEFINE_CRYPTO_API(asymmetric_key_id_same);
 
 /**
  * asymmetric_key_id_partial - Return true if two asymmetric keys IDs
@@ -175,7 +175,7 @@ EXPORT_SYMBOL_GPL(asymmetric_key_id_same);
  * @kid1: The key ID to compare
  * @kid2: The key ID to compare
  */
-bool asymmetric_key_id_partial(const struct asymmetric_key_id *kid1,
+bool CRYPTO_API(asymmetric_key_id_partial)(const struct asymmetric_key_id 
*kid1,
                               const struct asymmetric_key_id *kid2)
 {
        if (!kid1 || !kid2)
@@ -185,7 +185,7 @@ bool asymmetric_key_id_partial(const struct 
asymmetric_key_id *kid1,
        return memcmp(kid1->data + (kid1->len - kid2->len),
                      kid2->data, kid2->len) == 0;
 }
-EXPORT_SYMBOL_GPL(asymmetric_key_id_partial);
+DEFINE_CRYPTO_API(asymmetric_key_id_partial);
 
 /**
  * asymmetric_match_key_ids - Search asymmetric key IDs 1 & 2
@@ -281,7 +281,7 @@ static bool asymmetric_key_cmp_name(const struct key *key,
        const struct asymmetric_key_ids *kids = asymmetric_key_ids(key);
        const struct asymmetric_key_id *match_id = match_data->preparsed;
 
-       return kids && asymmetric_key_id_same(kids->id[2], match_id);
+       return kids && CRYPTO_API(asymmetric_key_id_same)(kids->id[2], 
match_id);
 }
 
 /*
@@ -617,7 +617,7 @@ EXPORT_SYMBOL_GPL(key_type_asymmetric);
  * register_asymmetric_key_parser - Register a asymmetric key blob parser
  * @parser: The parser to register
  */
-int register_asymmetric_key_parser(struct asymmetric_key_parser *parser)
+int CRYPTO_API(register_asymmetric_key_parser)(struct asymmetric_key_parser 
*parser)
 {
        struct asymmetric_key_parser *cursor;
        int ret;
@@ -642,13 +642,13 @@ int register_asymmetric_key_parser(struct 
asymmetric_key_parser *parser)
        up_write(&asymmetric_key_parsers_sem);
        return ret;
 }
-EXPORT_SYMBOL_GPL(register_asymmetric_key_parser);
+DEFINE_CRYPTO_API(register_asymmetric_key_parser);
 
 /**
  * unregister_asymmetric_key_parser - Unregister a asymmetric key blob parser
  * @parser: The parser to unregister
  */
-void unregister_asymmetric_key_parser(struct asymmetric_key_parser *parser)
+void CRYPTO_API(unregister_asymmetric_key_parser)(struct asymmetric_key_parser 
*parser)
 {
        down_write(&asymmetric_key_parsers_sem);
        list_del(&parser->link);
@@ -656,7 +656,7 @@ void unregister_asymmetric_key_parser(struct 
asymmetric_key_parser *parser)
 
        pr_notice("Asymmetric key parser '%s' unregistered\n", parser->name);
 }
-EXPORT_SYMBOL_GPL(unregister_asymmetric_key_parser);
+DEFINE_CRYPTO_API(unregister_asymmetric_key_parser);
 
 /*
  * Module stuff
@@ -671,5 +671,5 @@ static void __exit asymmetric_key_cleanup(void)
        unregister_key_type(&key_type_asymmetric);
 }
 
-module_init(asymmetric_key_init);
-module_exit(asymmetric_key_cleanup);
+crypto_module_init(asymmetric_key_init);
+crypto_module_exit(asymmetric_key_cleanup);
diff --git a/crypto/fips140-api.c b/crypto/fips140-api.c
index 5599cfa963d8..81d920836e1b 100644
--- a/crypto/fips140-api.c
+++ b/crypto/fips140-api.c
@@ -620,3 +620,22 @@ DEFINE_CRYPTO_API_STUB(alg_test);
 
 #endif
 
+/*
+ * crypto/asymmetric_keys/asymmetric_type.c
+ */
+#if !IS_BUILTIN(CONFIG_ASYMMETRIC_KEY_TYPE)
+
+#include <keys/asymmetric-parser.h>
+
+DEFINE_CRYPTO_API_STUB(register_asymmetric_key_parser);
+DEFINE_CRYPTO_API_STUB(unregister_asymmetric_key_parser);
+
+#include <keys/asymmetric-type.h>
+
+DEFINE_CRYPTO_API_STUB(asymmetric_key_id_same);
+DEFINE_CRYPTO_API_STUB(asymmetric_key_id_partial);
+DEFINE_CRYPTO_API_STUB(asymmetric_key_generate_id);
+DEFINE_CRYPTO_API_STUB(find_asymmetric_key);
+
+#endif
+
diff --git a/include/keys/asymmetric-parser.h b/include/keys/asymmetric-parser.h
index 516a3f51179e..682c82588cee 100644
--- a/include/keys/asymmetric-parser.h
+++ b/include/keys/asymmetric-parser.h
@@ -29,7 +29,11 @@ struct asymmetric_key_parser {
        int (*parse)(struct key_preparsed_payload *prep);
 };
 
-extern int register_asymmetric_key_parser(struct asymmetric_key_parser *);
-extern void unregister_asymmetric_key_parser(struct asymmetric_key_parser *);
+DECLARE_CRYPTO_API(register_asymmetric_key_parser, int,
+       (struct asymmetric_key_parser *parser),
+       (parser));
+DECLARE_CRYPTO_API(unregister_asymmetric_key_parser, void,
+       (struct asymmetric_key_parser *parser),
+       (parser));
 
 #endif /* _KEYS_ASYMMETRIC_PARSER_H */
diff --git a/include/keys/asymmetric-type.h b/include/keys/asymmetric-type.h
index 69a13e1e5b2e..fb7f82527978 100644
--- a/include/keys/asymmetric-type.h
+++ b/include/keys/asymmetric-type.h
@@ -10,6 +10,7 @@
 #ifndef _KEYS_ASYMMETRIC_TYPE_H
 #define _KEYS_ASYMMETRIC_TYPE_H
 
+#include <crypto/api.h>
 #include <linux/key-type.h>
 #include <linux/verification.h>
 
@@ -56,16 +57,17 @@ struct asymmetric_key_ids {
        void            *id[3];
 };
 
-extern bool asymmetric_key_id_same(const struct asymmetric_key_id *kid1,
-                                  const struct asymmetric_key_id *kid2);
+DECLARE_CRYPTO_API(asymmetric_key_id_same, bool,
+       (const struct asymmetric_key_id *kid1, const struct asymmetric_key_id 
*kid2),
+       (kid1, kid2));
 
-extern bool asymmetric_key_id_partial(const struct asymmetric_key_id *kid1,
-                                     const struct asymmetric_key_id *kid2);
+DECLARE_CRYPTO_API(asymmetric_key_id_partial, bool,
+       (const struct asymmetric_key_id *kid1, const struct asymmetric_key_id 
*kid2),
+       (kid1, kid2));
 
-extern struct asymmetric_key_id *asymmetric_key_generate_id(const void *val_1,
-                                                           size_t len_1,
-                                                           const void *val_2,
-                                                           size_t len_2);
+DECLARE_CRYPTO_API(asymmetric_key_generate_id, struct asymmetric_key_id *,
+       (const void *val_1, size_t len_1, const void *val_2, size_t len_2),
+       (val_1, len_1, val_2, len_2));
 static inline
 const struct asymmetric_key_ids *asymmetric_key_ids(const struct key *key)
 {
@@ -78,11 +80,9 @@ const struct public_key *asymmetric_key_public_key(const 
struct key *key)
        return key->payload.data[asym_crypto];
 }
 
-extern struct key *find_asymmetric_key(struct key *keyring,
-                                      const struct asymmetric_key_id *id_0,
-                                      const struct asymmetric_key_id *id_1,
-                                      const struct asymmetric_key_id *id_2,
-                                      bool partial);
+DECLARE_CRYPTO_API(find_asymmetric_key, struct key *,
+       (struct key *keyring, const struct asymmetric_key_id *id_0, const 
struct asymmetric_key_id *id_1, const struct asymmetric_key_id *id_2, bool 
partial),
+       (keyring, id_0, id_1, id_2, partial));
 
 int x509_load_certificate_list(const u8 cert_list[], const unsigned long 
list_size,
                               const struct key *keyring);
-- 
2.39.3


Reply via email to