Merge tag 'squashfs-updates' of git://git.kernel.org/pub/scm/linux/kernel/git/pkl...
[cascardo/linux.git] / crypto / drbg.c
index 9fb38a5..d748a1d 100644 (file)
@@ -98,6 +98,7 @@
  */
 
 #include <crypto/drbg.h>
+#include <linux/string.h>
 
 /***************************************************************
  * Backend cipher definitions available to DRBG
@@ -291,12 +292,12 @@ static inline void drbg_cpu_to_be32(__u32 val, unsigned char *buf)
 
 #ifdef CONFIG_CRYPTO_DRBG_CTR
 #define CRYPTO_DRBG_CTR_STRING "CTR "
-MODULE_ALIAS("drbg_pr_ctr_aes256");
-MODULE_ALIAS("drbg_nopr_ctr_aes256");
-MODULE_ALIAS("drbg_pr_ctr_aes192");
-MODULE_ALIAS("drbg_nopr_ctr_aes192");
-MODULE_ALIAS("drbg_pr_ctr_aes128");
-MODULE_ALIAS("drbg_nopr_ctr_aes128");
+MODULE_ALIAS_CRYPTO("drbg_pr_ctr_aes256");
+MODULE_ALIAS_CRYPTO("drbg_nopr_ctr_aes256");
+MODULE_ALIAS_CRYPTO("drbg_pr_ctr_aes192");
+MODULE_ALIAS_CRYPTO("drbg_nopr_ctr_aes192");
+MODULE_ALIAS_CRYPTO("drbg_pr_ctr_aes128");
+MODULE_ALIAS_CRYPTO("drbg_nopr_ctr_aes128");
 
 static int drbg_kcapi_sym(struct drbg_state *drbg, const unsigned char *key,
                          unsigned char *outval, const struct drbg_string *in);
@@ -497,9 +498,9 @@ static int drbg_ctr_df(struct drbg_state *drbg,
        ret = 0;
 
 out:
-       memset(iv, 0, drbg_blocklen(drbg));
-       memset(temp, 0, drbg_statelen(drbg));
-       memset(pad, 0, drbg_blocklen(drbg));
+       memzero_explicit(iv, drbg_blocklen(drbg));
+       memzero_explicit(temp, drbg_statelen(drbg));
+       memzero_explicit(pad, drbg_blocklen(drbg));
        return ret;
 }
 
@@ -573,9 +574,9 @@ static int drbg_ctr_update(struct drbg_state *drbg, struct list_head *seed,
        ret = 0;
 
 out:
-       memset(temp, 0, drbg_statelen(drbg) + drbg_blocklen(drbg));
+       memzero_explicit(temp, drbg_statelen(drbg) + drbg_blocklen(drbg));
        if (2 != reseed)
-               memset(df_data, 0, drbg_statelen(drbg));
+               memzero_explicit(df_data, drbg_statelen(drbg));
        return ret;
 }
 
@@ -633,7 +634,7 @@ static int drbg_ctr_generate(struct drbg_state *drbg,
                len = ret;
 
 out:
-       memset(drbg->scratchpad, 0, drbg_blocklen(drbg));
+       memzero_explicit(drbg->scratchpad, drbg_blocklen(drbg));
        return len;
 }
 
@@ -658,14 +659,14 @@ static int drbg_fini_hash_kernel(struct drbg_state *drbg);
 
 #ifdef CONFIG_CRYPTO_DRBG_HMAC
 #define CRYPTO_DRBG_HMAC_STRING "HMAC "
-MODULE_ALIAS("drbg_pr_hmac_sha512");
-MODULE_ALIAS("drbg_nopr_hmac_sha512");
-MODULE_ALIAS("drbg_pr_hmac_sha384");
-MODULE_ALIAS("drbg_nopr_hmac_sha384");
-MODULE_ALIAS("drbg_pr_hmac_sha256");
-MODULE_ALIAS("drbg_nopr_hmac_sha256");
-MODULE_ALIAS("drbg_pr_hmac_sha1");
-MODULE_ALIAS("drbg_nopr_hmac_sha1");
+MODULE_ALIAS_CRYPTO("drbg_pr_hmac_sha512");
+MODULE_ALIAS_CRYPTO("drbg_nopr_hmac_sha512");
+MODULE_ALIAS_CRYPTO("drbg_pr_hmac_sha384");
+MODULE_ALIAS_CRYPTO("drbg_nopr_hmac_sha384");
+MODULE_ALIAS_CRYPTO("drbg_pr_hmac_sha256");
+MODULE_ALIAS_CRYPTO("drbg_nopr_hmac_sha256");
+MODULE_ALIAS_CRYPTO("drbg_pr_hmac_sha1");
+MODULE_ALIAS_CRYPTO("drbg_nopr_hmac_sha1");
 
 /* update function of HMAC DRBG as defined in 10.1.2.2 */
 static int drbg_hmac_update(struct drbg_state *drbg, struct list_head *seed,
@@ -778,14 +779,14 @@ static struct drbg_state_ops drbg_hmac_ops = {
 
 #ifdef CONFIG_CRYPTO_DRBG_HASH
 #define CRYPTO_DRBG_HASH_STRING "HASH "
-MODULE_ALIAS("drbg_pr_sha512");
-MODULE_ALIAS("drbg_nopr_sha512");
-MODULE_ALIAS("drbg_pr_sha384");
-MODULE_ALIAS("drbg_nopr_sha384");
-MODULE_ALIAS("drbg_pr_sha256");
-MODULE_ALIAS("drbg_nopr_sha256");
-MODULE_ALIAS("drbg_pr_sha1");
-MODULE_ALIAS("drbg_nopr_sha1");
+MODULE_ALIAS_CRYPTO("drbg_pr_sha512");
+MODULE_ALIAS_CRYPTO("drbg_nopr_sha512");
+MODULE_ALIAS_CRYPTO("drbg_pr_sha384");
+MODULE_ALIAS_CRYPTO("drbg_nopr_sha384");
+MODULE_ALIAS_CRYPTO("drbg_pr_sha256");
+MODULE_ALIAS_CRYPTO("drbg_nopr_sha256");
+MODULE_ALIAS_CRYPTO("drbg_pr_sha1");
+MODULE_ALIAS_CRYPTO("drbg_nopr_sha1");
 
 /*
  * Increment buffer
@@ -871,7 +872,7 @@ static int drbg_hash_df(struct drbg_state *drbg,
        }
 
 out:
-       memset(tmp, 0, drbg_blocklen(drbg));
+       memzero_explicit(tmp, drbg_blocklen(drbg));
        return ret;
 }
 
@@ -915,7 +916,7 @@ static int drbg_hash_update(struct drbg_state *drbg, struct list_head *seed,
        ret = drbg_hash_df(drbg, drbg->C, drbg_statelen(drbg), &datalist2);
 
 out:
-       memset(drbg->scratchpad, 0, drbg_statelen(drbg));
+       memzero_explicit(drbg->scratchpad, drbg_statelen(drbg));
        return ret;
 }
 
@@ -950,7 +951,7 @@ static int drbg_hash_process_addtl(struct drbg_state *drbg,
                     drbg->scratchpad, drbg_blocklen(drbg));
 
 out:
-       memset(drbg->scratchpad, 0, drbg_blocklen(drbg));
+       memzero_explicit(drbg->scratchpad, drbg_blocklen(drbg));
        return ret;
 }
 
@@ -997,7 +998,7 @@ static int drbg_hash_hashgen(struct drbg_state *drbg,
        }
 
 out:
-       memset(drbg->scratchpad, 0,
+       memzero_explicit(drbg->scratchpad,
               (drbg_statelen(drbg) + drbg_blocklen(drbg)));
        return len;
 }
@@ -1046,7 +1047,7 @@ static int drbg_hash_generate(struct drbg_state *drbg,
        drbg_add_buf(drbg->V, drbg_statelen(drbg), u.req, 8);
 
 out:
-       memset(drbg->scratchpad, 0, drbg_blocklen(drbg));
+       memzero_explicit(drbg->scratchpad, drbg_blocklen(drbg));
        return len;
 }