* [PATCH 4/7] crypto: s390/sha1 - prefix the "sha1_" functions
2020-05-02 18:24 [PATCH 0/7] sha1 library cleanup Eric Biggers
@ 2020-05-02 18:24 ` Eric Biggers
2020-05-02 21:05 ` [PATCH 0/7] sha1 library cleanup Jason A. Donenfeld
` (2 subsequent siblings)
3 siblings, 0 replies; 6+ messages in thread
From: Eric Biggers @ 2020-05-02 18:24 UTC (permalink / raw)
To: linux-crypto
Cc: linux-kernel, Jason A . Donenfeld, Theodore Ts'o, linux-s390
From: Eric Biggers <ebiggers@google.com>
Prefix the s390 SHA-1 functions with "s390_sha1_" rather than "sha1_".
This allows us to rename the library function sha_init() to sha1_init()
without causing a naming collision.
Cc: linux-s390@vger.kernel.org
Signed-off-by: Eric Biggers <ebiggers@google.com>
---
arch/s390/crypto/sha1_s390.c | 12 ++++++------
1 file changed, 6 insertions(+), 6 deletions(-)
diff --git a/arch/s390/crypto/sha1_s390.c b/arch/s390/crypto/sha1_s390.c
index 7c15542d368547..698b1e6d3c14d1 100644
--- a/arch/s390/crypto/sha1_s390.c
+++ b/arch/s390/crypto/sha1_s390.c
@@ -27,7 +27,7 @@
#include "sha.h"
-static int sha1_init(struct shash_desc *desc)
+static int s390_sha1_init(struct shash_desc *desc)
{
struct s390_sha_ctx *sctx = shash_desc_ctx(desc);
@@ -42,7 +42,7 @@ static int sha1_init(struct shash_desc *desc)
return 0;
}
-static int sha1_export(struct shash_desc *desc, void *out)
+static int s390_sha1_export(struct shash_desc *desc, void *out)
{
struct s390_sha_ctx *sctx = shash_desc_ctx(desc);
struct sha1_state *octx = out;
@@ -53,7 +53,7 @@ static int sha1_export(struct shash_desc *desc, void *out)
return 0;
}
-static int sha1_import(struct shash_desc *desc, const void *in)
+static int s390_sha1_import(struct shash_desc *desc, const void *in)
{
struct s390_sha_ctx *sctx = shash_desc_ctx(desc);
const struct sha1_state *ictx = in;
@@ -67,11 +67,11 @@ static int sha1_import(struct shash_desc *desc, const void *in)
static struct shash_alg alg = {
.digestsize = SHA1_DIGEST_SIZE,
- .init = sha1_init,
+ .init = s390_sha1_init,
.update = s390_sha_update,
.final = s390_sha_final,
- .export = sha1_export,
- .import = sha1_import,
+ .export = s390_sha1_export,
+ .import = s390_sha1_import,
.descsize = sizeof(struct s390_sha_ctx),
.statesize = sizeof(struct sha1_state),
.base = {
--
2.26.2
^ permalink raw reply related [flat|nested] 6+ messages in thread* Re: [PATCH 0/7] sha1 library cleanup
2020-05-02 18:24 [PATCH 0/7] sha1 library cleanup Eric Biggers
2020-05-02 18:24 ` [PATCH 4/7] crypto: s390/sha1 - prefix the "sha1_" functions Eric Biggers
@ 2020-05-02 21:05 ` Jason A. Donenfeld
2020-05-03 16:45 ` Eric Biggers
2020-05-03 16:14 ` Ard Biesheuvel
2020-05-08 6:07 ` Herbert Xu
3 siblings, 1 reply; 6+ messages in thread
From: Jason A. Donenfeld @ 2020-05-02 21:05 UTC (permalink / raw)
To: Eric Biggers
Cc: Linux Crypto Mailing List, LKML, Theodore Ts'o, Paolo Abeni,
mptcp, linuxppc-dev, Benjamin Herrenschmidt, Michael Ellerman,
Paul Mackerras, linux-s390
Thanks for this series. I like the general idea. I think it might make
sense, though, to separate things out into sha1.h and sha256.h. That
will be nice preparation work for when we eventually move obsolete
primitives into some <crypto/dangerous/> subdirectory.
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH 0/7] sha1 library cleanup
2020-05-02 21:05 ` [PATCH 0/7] sha1 library cleanup Jason A. Donenfeld
@ 2020-05-03 16:45 ` Eric Biggers
0 siblings, 0 replies; 6+ messages in thread
From: Eric Biggers @ 2020-05-03 16:45 UTC (permalink / raw)
To: Jason A. Donenfeld
Cc: Linux Crypto Mailing List, LKML, Theodore Ts'o, Paolo Abeni,
mptcp, linuxppc-dev, Benjamin Herrenschmidt, Michael Ellerman,
Paul Mackerras, linux-s390
On Sat, May 02, 2020 at 03:05:46PM -0600, Jason A. Donenfeld wrote:
> Thanks for this series. I like the general idea. I think it might make
> sense, though, to separate things out into sha1.h and sha256.h. That
> will be nice preparation work for when we eventually move obsolete
> primitives into some <crypto/dangerous/> subdirectory.
That's basically what I suggested in the cover letter:
"As future work, we should split sha.h into sha1.h and sha2.h and try to
remove the remaining uses of SHA-1. For example, the remaining use in
drivers/char/random.c is probably one that can be gotten rid of."
("sha2.h" rather than "sha256.h", since it would include SHA-512 too.
Also, we already have sha3.h, so having sha{1,2,3}.h would be logical.)
But there are 108 files that include <crypto/sha.h>, all of which would need to
be updated, which risks merge conflicts. So this series seemed like a good
stopping point to get these initial changes in for 5.8. Then in the next
release we can split up sha.h (and debate whether sha1.h should really be
"<crypto/dangerous/sha1.h>" or whatever).
There are 3 files where I added an include of sha.h, where we could go directly
to sha1.h if we did it now. But that's not much compared to the 108 files.
- Eric
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH 0/7] sha1 library cleanup
2020-05-02 18:24 [PATCH 0/7] sha1 library cleanup Eric Biggers
2020-05-02 18:24 ` [PATCH 4/7] crypto: s390/sha1 - prefix the "sha1_" functions Eric Biggers
2020-05-02 21:05 ` [PATCH 0/7] sha1 library cleanup Jason A. Donenfeld
@ 2020-05-03 16:14 ` Ard Biesheuvel
2020-05-08 6:07 ` Herbert Xu
3 siblings, 0 replies; 6+ messages in thread
From: Ard Biesheuvel @ 2020-05-03 16:14 UTC (permalink / raw)
To: Eric Biggers
Cc: Linux Crypto Mailing List, Linux Kernel Mailing List,
Jason A . Donenfeld, Theodore Ts'o, Paolo Abeni, mptcp,
linuxppc-dev, Benjamin Herrenschmidt, Michael Ellerman,
Paul Mackerras, linux-s390
On Sat, 2 May 2020 at 20:28, Eric Biggers <ebiggers@kernel.org> wrote:
>
> <linux/cryptohash.h> sounds very generic and important, like it's the
> header to include if you're doing cryptographic hashing in the kernel.
> But actually it only includes the library implementation of the SHA-1
> compression function (not even the full SHA-1). This should basically
> never be used anymore; SHA-1 is no longer considered secure, and there
> are much better ways to do cryptographic hashing in the kernel.
>
> Also the function is named just "sha_transform()", which makes it
> unclear which version of SHA is meant.
>
> Therefore, this series cleans things up by moving these SHA-1
> declarations into <crypto/sha.h> where they better belong, and changing
> the names to say SHA-1 rather than just SHA.
>
> As future work, we should split sha.h into sha1.h and sha2.h and try to
> remove the remaining uses of SHA-1. For example, the remaining use in
> drivers/char/random.c is probably one that can be gotten rid of.
>
> This patch series applies to cryptodev/master.
>
> Eric Biggers (7):
> mptcp: use SHA256_BLOCK_SIZE, not SHA_MESSAGE_BYTES
> crypto: powerpc/sha1 - remove unused temporary workspace
> crypto: powerpc/sha1 - prefix the "sha1_" functions
> crypto: s390/sha1 - prefix the "sha1_" functions
> crypto: lib/sha1 - rename "sha" to "sha1"
> crypto: lib/sha1 - remove unnecessary includes of linux/cryptohash.h
> crypto: lib/sha1 - fold linux/cryptohash.h into crypto/sha.h
>
For the series,
Acked-by: Ard Biesheuvel <ardb@kernel.org>
> Documentation/security/siphash.rst | 2 +-
> arch/arm/crypto/sha1_glue.c | 1 -
> arch/arm/crypto/sha1_neon_glue.c | 1 -
> arch/arm/crypto/sha256_glue.c | 1 -
> arch/arm/crypto/sha256_neon_glue.c | 1 -
> arch/arm/kernel/armksyms.c | 1 -
> arch/arm64/crypto/sha256-glue.c | 1 -
> arch/arm64/crypto/sha512-glue.c | 1 -
> arch/microblaze/kernel/microblaze_ksyms.c | 1 -
> arch/mips/cavium-octeon/crypto/octeon-md5.c | 1 -
> arch/powerpc/crypto/md5-glue.c | 1 -
> arch/powerpc/crypto/sha1-spe-glue.c | 1 -
> arch/powerpc/crypto/sha1.c | 33 ++++++++++-----------
> arch/powerpc/crypto/sha256-spe-glue.c | 1 -
> arch/s390/crypto/sha1_s390.c | 12 ++++----
> arch/sparc/crypto/md5_glue.c | 1 -
> arch/sparc/crypto/sha1_glue.c | 1 -
> arch/sparc/crypto/sha256_glue.c | 1 -
> arch/sparc/crypto/sha512_glue.c | 1 -
> arch/unicore32/kernel/ksyms.c | 1 -
> arch/x86/crypto/sha1_ssse3_glue.c | 1 -
> arch/x86/crypto/sha256_ssse3_glue.c | 1 -
> arch/x86/crypto/sha512_ssse3_glue.c | 1 -
> crypto/sha1_generic.c | 5 ++--
> drivers/char/random.c | 8 ++---
> drivers/crypto/atmel-sha.c | 1 -
> drivers/crypto/chelsio/chcr_algo.c | 1 -
> drivers/crypto/chelsio/chcr_ipsec.c | 1 -
> drivers/crypto/omap-sham.c | 1 -
> fs/f2fs/hash.c | 1 -
> include/crypto/sha.h | 10 +++++++
> include/linux/cryptohash.h | 14 ---------
> include/linux/filter.h | 4 +--
> include/net/tcp.h | 1 -
> kernel/bpf/core.c | 18 +++++------
> lib/crypto/chacha.c | 1 -
> lib/sha1.c | 24 ++++++++-------
> net/core/secure_seq.c | 1 -
> net/ipv6/addrconf.c | 10 +++----
> net/ipv6/seg6_hmac.c | 1 -
> net/mptcp/crypto.c | 4 +--
> 41 files changed, 69 insertions(+), 104 deletions(-)
> delete mode 100644 include/linux/cryptohash.h
>
>
> base-commit: 12b3cf9093542d9f752a4968815ece836159013f
> --
> 2.26.2
>
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH 0/7] sha1 library cleanup
2020-05-02 18:24 [PATCH 0/7] sha1 library cleanup Eric Biggers
` (2 preceding siblings ...)
2020-05-03 16:14 ` Ard Biesheuvel
@ 2020-05-08 6:07 ` Herbert Xu
3 siblings, 0 replies; 6+ messages in thread
From: Herbert Xu @ 2020-05-08 6:07 UTC (permalink / raw)
To: Eric Biggers
Cc: linux-crypto, linux-kernel, Jason, tytso, pabeni, mptcp,
linuxppc-dev, benh, mpe, paulus, linux-s390
Eric Biggers <ebiggers@kernel.org> wrote:
> <linux/cryptohash.h> sounds very generic and important, like it's the
> header to include if you're doing cryptographic hashing in the kernel.
> But actually it only includes the library implementation of the SHA-1
> compression function (not even the full SHA-1). This should basically
> never be used anymore; SHA-1 is no longer considered secure, and there
> are much better ways to do cryptographic hashing in the kernel.
>
> Also the function is named just "sha_transform()", which makes it
> unclear which version of SHA is meant.
>
> Therefore, this series cleans things up by moving these SHA-1
> declarations into <crypto/sha.h> where they better belong, and changing
> the names to say SHA-1 rather than just SHA.
>
> As future work, we should split sha.h into sha1.h and sha2.h and try to
> remove the remaining uses of SHA-1. For example, the remaining use in
> drivers/char/random.c is probably one that can be gotten rid of.
>
> This patch series applies to cryptodev/master.
>
> Eric Biggers (7):
> mptcp: use SHA256_BLOCK_SIZE, not SHA_MESSAGE_BYTES
> crypto: powerpc/sha1 - remove unused temporary workspace
> crypto: powerpc/sha1 - prefix the "sha1_" functions
> crypto: s390/sha1 - prefix the "sha1_" functions
> crypto: lib/sha1 - rename "sha" to "sha1"
> crypto: lib/sha1 - remove unnecessary includes of linux/cryptohash.h
> crypto: lib/sha1 - fold linux/cryptohash.h into crypto/sha.h
>
> Documentation/security/siphash.rst | 2 +-
> arch/arm/crypto/sha1_glue.c | 1 -
> arch/arm/crypto/sha1_neon_glue.c | 1 -
> arch/arm/crypto/sha256_glue.c | 1 -
> arch/arm/crypto/sha256_neon_glue.c | 1 -
> arch/arm/kernel/armksyms.c | 1 -
> arch/arm64/crypto/sha256-glue.c | 1 -
> arch/arm64/crypto/sha512-glue.c | 1 -
> arch/microblaze/kernel/microblaze_ksyms.c | 1 -
> arch/mips/cavium-octeon/crypto/octeon-md5.c | 1 -
> arch/powerpc/crypto/md5-glue.c | 1 -
> arch/powerpc/crypto/sha1-spe-glue.c | 1 -
> arch/powerpc/crypto/sha1.c | 33 ++++++++++-----------
> arch/powerpc/crypto/sha256-spe-glue.c | 1 -
> arch/s390/crypto/sha1_s390.c | 12 ++++----
> arch/sparc/crypto/md5_glue.c | 1 -
> arch/sparc/crypto/sha1_glue.c | 1 -
> arch/sparc/crypto/sha256_glue.c | 1 -
> arch/sparc/crypto/sha512_glue.c | 1 -
> arch/unicore32/kernel/ksyms.c | 1 -
> arch/x86/crypto/sha1_ssse3_glue.c | 1 -
> arch/x86/crypto/sha256_ssse3_glue.c | 1 -
> arch/x86/crypto/sha512_ssse3_glue.c | 1 -
> crypto/sha1_generic.c | 5 ++--
> drivers/char/random.c | 8 ++---
> drivers/crypto/atmel-sha.c | 1 -
> drivers/crypto/chelsio/chcr_algo.c | 1 -
> drivers/crypto/chelsio/chcr_ipsec.c | 1 -
> drivers/crypto/omap-sham.c | 1 -
> fs/f2fs/hash.c | 1 -
> include/crypto/sha.h | 10 +++++++
> include/linux/cryptohash.h | 14 ---------
> include/linux/filter.h | 4 +--
> include/net/tcp.h | 1 -
> kernel/bpf/core.c | 18 +++++------
> lib/crypto/chacha.c | 1 -
> lib/sha1.c | 24 ++++++++-------
> net/core/secure_seq.c | 1 -
> net/ipv6/addrconf.c | 10 +++----
> net/ipv6/seg6_hmac.c | 1 -
> net/mptcp/crypto.c | 4 +--
> 41 files changed, 69 insertions(+), 104 deletions(-)
> delete mode 100644 include/linux/cryptohash.h
>
>
> base-commit: 12b3cf9093542d9f752a4968815ece836159013f
All 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
^ permalink raw reply [flat|nested] 6+ messages in thread