[PATCH] crypto: eip93: Make read-only arrays static const

Colin Ian King posted 1 patch 1 week, 1 day ago
.../crypto/inside-secure/eip93/eip93-hash.c   | 20 +++++++++++++------
1 file changed, 14 insertions(+), 6 deletions(-)
[PATCH] crypto: eip93: Make read-only arrays static const
Posted by Colin Ian King 1 week, 1 day ago
Don't populate the read-only arrays sha256_init, sha224_init, sha1_init
and md5_init on the stack at run time, instead make them static.

Signed-off-by: Colin Ian King <colin.i.king@gmail.com>
---
 .../crypto/inside-secure/eip93/eip93-hash.c   | 20 +++++++++++++------
 1 file changed, 14 insertions(+), 6 deletions(-)

diff --git a/drivers/crypto/inside-secure/eip93/eip93-hash.c b/drivers/crypto/inside-secure/eip93/eip93-hash.c
index 5e9627467a42..528d5bd864c9 100644
--- a/drivers/crypto/inside-secure/eip93/eip93-hash.c
+++ b/drivers/crypto/inside-secure/eip93/eip93-hash.c
@@ -97,12 +97,20 @@ void eip93_hash_handle_result(struct crypto_async_request *async, int err)
 
 static void eip93_hash_init_sa_state_digest(u32 hash, u8 *digest)
 {
-	u32 sha256_init[] = { SHA256_H0, SHA256_H1, SHA256_H2, SHA256_H3,
-			      SHA256_H4, SHA256_H5, SHA256_H6, SHA256_H7 };
-	u32 sha224_init[] = { SHA224_H0, SHA224_H1, SHA224_H2, SHA224_H3,
-			      SHA224_H4, SHA224_H5, SHA224_H6, SHA224_H7 };
-	u32 sha1_init[] = { SHA1_H0, SHA1_H1, SHA1_H2, SHA1_H3, SHA1_H4 };
-	u32 md5_init[] = { MD5_H0, MD5_H1, MD5_H2, MD5_H3 };
+	static const u32 sha256_init[] = {
+		SHA256_H0, SHA256_H1, SHA256_H2, SHA256_H3,
+		SHA256_H4, SHA256_H5, SHA256_H6, SHA256_H7
+	};
+	static const u32 sha224_init[] = {
+		SHA224_H0, SHA224_H1, SHA224_H2, SHA224_H3,
+		SHA224_H4, SHA224_H5, SHA224_H6, SHA224_H7
+	};
+	static const u32 sha1_init[] = {
+		SHA1_H0, SHA1_H1, SHA1_H2, SHA1_H3, SHA1_H4
+	};
+	static const u32 md5_init[] = {
+		MD5_H0, MD5_H1, MD5_H2, MD5_H3
+	};
 
 	/* Init HASH constant */
 	switch (hash) {
-- 
2.49.0
Re: [PATCH] crypto: eip93: Make read-only arrays static const
Posted by Herbert Xu 3 days, 13 hours ago
On Wed, Apr 02, 2025 at 12:13:47PM +0100, Colin Ian King wrote:
> Don't populate the read-only arrays sha256_init, sha224_init, sha1_init
> and md5_init on the stack at run time, instead make them static.
> 
> Signed-off-by: Colin Ian King <colin.i.king@gmail.com>
> ---
>  .../crypto/inside-secure/eip93/eip93-hash.c   | 20 +++++++++++++------
>  1 file changed, 14 insertions(+), 6 deletions(-)

Patch applied.  Thanks.
-- 
Email: Herbert Xu <herbert@gondor.apana.org.au>
Home Page: http://gondor.apana.org.au/~herbert/
PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txt
Re: [PATCH] crypto: eip93: Make read-only arrays static const
Posted by Antoine Tenart 1 week ago
Quoting Colin Ian King (2025-04-02 13:13:47)
> Don't populate the read-only arrays sha256_init, sha224_init, sha1_init
> and md5_init on the stack at run time, instead make them static.
> 
> Signed-off-by: Colin Ian King <colin.i.king@gmail.com>

Reviewed-by: Antoine Tenart <atenart@kernel.org>

Thanks!

> ---
>  .../crypto/inside-secure/eip93/eip93-hash.c   | 20 +++++++++++++------
>  1 file changed, 14 insertions(+), 6 deletions(-)
> 
> diff --git a/drivers/crypto/inside-secure/eip93/eip93-hash.c b/drivers/crypto/inside-secure/eip93/eip93-hash.c
> index 5e9627467a42..528d5bd864c9 100644
> --- a/drivers/crypto/inside-secure/eip93/eip93-hash.c
> +++ b/drivers/crypto/inside-secure/eip93/eip93-hash.c
> @@ -97,12 +97,20 @@ void eip93_hash_handle_result(struct crypto_async_request *async, int err)
>  
>  static void eip93_hash_init_sa_state_digest(u32 hash, u8 *digest)
>  {
> -       u32 sha256_init[] = { SHA256_H0, SHA256_H1, SHA256_H2, SHA256_H3,
> -                             SHA256_H4, SHA256_H5, SHA256_H6, SHA256_H7 };
> -       u32 sha224_init[] = { SHA224_H0, SHA224_H1, SHA224_H2, SHA224_H3,
> -                             SHA224_H4, SHA224_H5, SHA224_H6, SHA224_H7 };
> -       u32 sha1_init[] = { SHA1_H0, SHA1_H1, SHA1_H2, SHA1_H3, SHA1_H4 };
> -       u32 md5_init[] = { MD5_H0, MD5_H1, MD5_H2, MD5_H3 };
> +       static const u32 sha256_init[] = {
> +               SHA256_H0, SHA256_H1, SHA256_H2, SHA256_H3,
> +               SHA256_H4, SHA256_H5, SHA256_H6, SHA256_H7
> +       };
> +       static const u32 sha224_init[] = {
> +               SHA224_H0, SHA224_H1, SHA224_H2, SHA224_H3,
> +               SHA224_H4, SHA224_H5, SHA224_H6, SHA224_H7
> +       };
> +       static const u32 sha1_init[] = {
> +               SHA1_H0, SHA1_H1, SHA1_H2, SHA1_H3, SHA1_H4
> +       };
> +       static const u32 md5_init[] = {
> +               MD5_H0, MD5_H1, MD5_H2, MD5_H3
> +       };
>  
>         /* Init HASH constant */
>         switch (hash) {
> -- 
> 2.49.0
>