barebox/crypto/Kconfig
Sascha Hauer 2b5bdb47cf crypto: fix selecting of digests
SHA1 is meant as a boolean option which is true when sha1 support is available.
This works because the providers (DIGEST_SHA1_GENERIC and DIGEST_SHA1_ARM) have
a 'select SHA1'. However, consumers like the sha1sum command do a 'select SHA1'
to enable SHA1 support. This of course does not work; selecting SHA1 will not
select any of the SHA1 providers.

This is broken for all digest consumers. We have to explicitly select a digest
provider, that is DIGEST_*_GENERIC to enable the corresponding digest.

This means now we will always have the generic digest in the binary, even
when an optimized one is enabled. There is no sane way in Kconfig to
"select provider for feature xy", so let's live with the overhead in the binary.

Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2015-08-28 08:00:30 +02:00

87 lines
1.2 KiB
Text

config CRC32
bool
config CRC16
bool
config CRC7
bool
menuconfig DIGEST
bool "Digest"
if DIGEST
config MD5
bool
config SHA1
bool
config SHA224
bool
config SHA256
bool
config SHA384
bool
config SHA512
bool
config DIGEST_HMAC
bool
config DIGEST_MD5_GENERIC
bool "MD5"
select MD5
config DIGEST_SHA1_GENERIC
bool "SHA1"
select SHA1
config DIGEST_SHA224_GENERIC
bool "SHA224"
select SHA224
config DIGEST_SHA256_GENERIC
bool "SHA256"
select SHA256
config DIGEST_SHA384_GENERIC
bool "SHA384"
select SHA384
config DIGEST_SHA512_GENERIC
bool "SHA512"
select SHA512
config DIGEST_HMAC_GENERIC
bool "HMAC"
select DIGEST_HMAC
config DIGEST_SHA1_ARM
tristate "SHA1 digest algorithm (ARM-asm)"
depends on ARM
select SHA1
help
SHA-1 secure hash standard (FIPS 180-1/DFIPS 180-2) implemented
using optimized ARM assembler.
config DIGEST_SHA256_ARM
tristate "SHA-224/256 digest algorithm (ARM-asm and NEON)"
depends on ARM
select SHA256
select SHA224
help
SHA-256 secure hash standard (DFIPS 180-2) implemented
using optimized ARM assembler and NEON, when available.
endif
config CRYPTO_PBKDF2
select DIGEST
select DIGEST_SHA1_GENERIC
bool