lib: Drop SHA512_ALGO in lieu of SHA512

SHA512_ALGO was used as a "either SHA512 or SHA384", although the
implementations of these two algorithms share a majority of code.

From a Kconfig interface perspective, it makes sense to present two
distinct options. This requires #ifdefing out the SHA512
implementation from sha512.c. The latter doesn't make any sense.

It's reasonable to say in Kconfig that SHA384 depends on SHA512, and
seems to be the more polite way to handle the selection.

Thus, automatically select SHA512 when SHA384 is enabled.

Signed-off-by: Alexandru Gagniuc <mr.nuke.me@gmail.com>
This commit is contained in:
Alexandru Gagniuc 2021-09-02 19:54:18 -05:00 committed by Tom Rini
parent eb5171ddec
commit e60e449931
6 changed files with 8 additions and 14 deletions

View File

@ -11,7 +11,7 @@ config SOCFPGA_SECURE_VAB_AUTH
depends on TARGET_SOCFPGA_AGILEX || TARGET_SOCFPGA_N5X depends on TARGET_SOCFPGA_AGILEX || TARGET_SOCFPGA_N5X
select FIT_IMAGE_POST_PROCESS select FIT_IMAGE_POST_PROCESS
select SHA384 select SHA384
select SHA512_ALGO select SHA512
select SPL_FIT_IMAGE_POST_PROCESS select SPL_FIT_IMAGE_POST_PROCESS
help help
All images loaded from FIT will be authenticated by Secure Device All images loaded from FIT will be authenticated by Secure Device

View File

@ -375,14 +375,9 @@ config SHA256
The SHA256 algorithm produces a 256-bit (32-byte) hash value The SHA256 algorithm produces a 256-bit (32-byte) hash value
(digest). (digest).
config SHA512_ALGO
bool "Enable SHA512 algorithm"
help
This option enables support of internal SHA512 algorithm.
config SHA512 config SHA512
bool "Enable SHA512 support" bool "Enable SHA512 support"
depends on SHA512_ALGO
help help
This option enables support of hashing using SHA512 algorithm. This option enables support of hashing using SHA512 algorithm.
The hash is calculated in software. The hash is calculated in software.
@ -391,10 +386,11 @@ config SHA512
config SHA384 config SHA384
bool "Enable SHA384 support" bool "Enable SHA384 support"
depends on SHA512_ALGO select SHA512
help help
This option enables support of hashing using SHA384 algorithm. This option enables support of hashing using SHA384 algorithm.
The hash is calculated in software. The hash is calculated in software. This is also selects SHA512,
because these implementations share the bulk of the code..
The SHA384 algorithm produces a 384-bit (48-byte) hash value The SHA384 algorithm produces a 384-bit (48-byte) hash value
(digest). (digest).
@ -409,7 +405,7 @@ if SHA_HW_ACCEL
config SHA512_HW_ACCEL config SHA512_HW_ACCEL
bool "Enable hardware acceleration for SHA512" bool "Enable hardware acceleration for SHA512"
depends on SHA512_ALGO depends on SHA512
help help
This option enables hardware acceleration for the SHA384 and SHA512 This option enables hardware acceleration for the SHA384 and SHA512
hashing algorithms. This affects the 'hash' command and also the hashing algorithms. This affects the 'hash' command and also the

View File

@ -65,7 +65,7 @@ obj-$(CONFIG_$(SPL_)RSA) += rsa/
obj-$(CONFIG_HASH) += hash-checksum.o obj-$(CONFIG_HASH) += hash-checksum.o
obj-$(CONFIG_SHA1) += sha1.o obj-$(CONFIG_SHA1) += sha1.o
obj-$(CONFIG_SHA256) += sha256.o obj-$(CONFIG_SHA256) += sha256.o
obj-$(CONFIG_SHA512_ALGO) += sha512.o obj-$(CONFIG_SHA512) += sha512.o
obj-$(CONFIG_CRYPT_PW) += crypt/ obj-$(CONFIG_CRYPT_PW) += crypt/
obj-$(CONFIG_$(SPL_)ZLIB) += zlib/ obj-$(CONFIG_$(SPL_)ZLIB) += zlib/

View File

@ -20,7 +20,7 @@ config CRYPT_PW_SHA256
config CRYPT_PW_SHA512 config CRYPT_PW_SHA512
bool "Provide sha512crypt" bool "Provide sha512crypt"
select SHA512 select SHA512
select SHA512_ALGO select SHA512
help help
Enables support for the sha512crypt password-hashing algorithm. Enables support for the sha512crypt password-hashing algorithm.
The prefix is "$6$". The prefix is "$6$".

View File

@ -323,7 +323,7 @@ config EFI_TCG2_PROTOCOL
depends on TPM_V2 depends on TPM_V2
select SHA1 select SHA1
select SHA256 select SHA256
select SHA512_ALGO select SHA512
select SHA384 select SHA384
select SHA512 select SHA512
select HASH select HASH

View File

@ -320,7 +320,6 @@ void sha384_csum_wd(const unsigned char *input, unsigned int ilen,
#endif #endif
#if defined(CONFIG_SHA512)
void sha512_starts(sha512_context * ctx) void sha512_starts(sha512_context * ctx)
{ {
ctx->state[0] = SHA512_H0; ctx->state[0] = SHA512_H0;
@ -381,4 +380,3 @@ void sha512_csum_wd(const unsigned char *input, unsigned int ilen,
sha512_finish(&ctx, output); sha512_finish(&ctx, output);
} }
#endif