[1/1] Kconfig: Add support for hash and sha1sum commands

Message ID 1495897155-9664-1-git-send-email-trini@konsulko.com
State New
Headers show
Series
  • [1/1] Kconfig: Add support for hash and sha1sum commands
Related show

Commit Message

Tom Rini May 27, 2017, 2:59 p.m.
From: Daniel Thompson <daniel.thompson@linaro.org>

Currently these (board agnostic) commands cannot be selected using
menuconfig and friends. Fix this the obvious way.

Signed-off-by: Daniel Thompson <daniel.thompson@linaro.org>
[trini: Re-apply, add imply for a few cases, run moveconfig.py]
Signed-off-by: Tom Rini <trini@konsulko.com>
---
 README                              | 11 -----------
 arch/Kconfig                        |  1 +
 arch/arm/Kconfig                    |  1 +
 arch/arm/mach-exynos/Kconfig        |  1 +
 cmd/Kconfig                         | 18 ++++++++++++++++++
 configs/bcm958622hr_defconfig       |  1 +
 include/configs/bcm_ep_board.h      |  3 ---
 include/configs/exynos5-common.h    |  3 ---
 include/configs/imx6qdl_icore.h     |  1 -
 include/configs/imx6qdl_icore_rqs.h |  1 -
 include/configs/imx6ul_geam.h       |  1 -
 include/configs/imx6ul_isiot.h      |  1 -
 include/configs/sandbox.h           |  2 --
 include/hash.h                      |  4 ----
 scripts/config_whitelist.txt        |  1 -
 15 files changed, 22 insertions(+), 28 deletions(-)

Comments

Simon Glass May 31, 2017, 3:50 a.m. | #1
On 27 May 2017 at 08:59, Tom Rini <trini@konsulko.com> wrote:
> From: Daniel Thompson <daniel.thompson@linaro.org>
>
> Currently these (board agnostic) commands cannot be selected using
> menuconfig and friends. Fix this the obvious way.
>
> Signed-off-by: Daniel Thompson <daniel.thompson@linaro.org>
> [trini: Re-apply, add imply for a few cases, run moveconfig.py]
> Signed-off-by: Tom Rini <trini@konsulko.com>
> ---
>  README                              | 11 -----------
>  arch/Kconfig                        |  1 +
>  arch/arm/Kconfig                    |  1 +
>  arch/arm/mach-exynos/Kconfig        |  1 +
>  cmd/Kconfig                         | 18 ++++++++++++++++++
>  configs/bcm958622hr_defconfig       |  1 +
>  include/configs/bcm_ep_board.h      |  3 ---
>  include/configs/exynos5-common.h    |  3 ---
>  include/configs/imx6qdl_icore.h     |  1 -
>  include/configs/imx6qdl_icore_rqs.h |  1 -
>  include/configs/imx6ul_geam.h       |  1 -
>  include/configs/imx6ul_isiot.h      |  1 -
>  include/configs/sandbox.h           |  2 --
>  include/hash.h                      |  4 ----
>  scripts/config_whitelist.txt        |  1 -
>  15 files changed, 22 insertions(+), 28 deletions(-)

Reviewed-by: Simon Glass <sjg@chromium.org>

Patch

diff --git a/README b/README
index 9d351ec5ad..f9931f6a6f 100644
--- a/README
+++ b/README
@@ -889,8 +889,6 @@  The following options need to be configured:
 		CONFIG_CMD_SETGETDCR	  Support for DCR Register access
 					  (4xx only)
 		CONFIG_CMD_SF		* Read/write/erase SPI NOR flash
-		CONFIG_CMD_SHA1SUM	* print sha1 memory digest
-					  (requires CONFIG_CMD_MEMORY)
 		CONFIG_CMD_SOFTSWITCH	* Soft switch setting command for BF60x
 		CONFIG_CMD_SOURCE	  "source" command Support
 		CONFIG_CMD_SPI		* SPI serial bus support
@@ -2679,15 +2677,6 @@  The following options need to be configured:
 		A better solution is to properly configure the firewall,
 		but sometimes that is not allowed.
 
-- Hashing support:
-		CONFIG_HASH_VERIFY
-
-		Enable the hash verify command (hash -v). This adds to code
-		size a little.
-
-		Note: There is also a sha1sum command, which should perhaps
-		be deprecated in favour of 'hash sha1'.
-
 - bootcount support:
 		CONFIG_BOOTCOUNT_LIMIT
 
diff --git a/arch/Kconfig b/arch/Kconfig
index 02e887ac86..6e291e7316 100644
--- a/arch/Kconfig
+++ b/arch/Kconfig
@@ -76,6 +76,7 @@  config SANDBOX
 	imply CMD_IOTRACE
 	imply LZMA
 	imply CMD_LZMADEC
+	imply HASH_VERIFY
 
 config SH
 	bool "SuperH architecture"
diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
index 91f50b0637..0df99904a2 100644
--- a/arch/arm/Kconfig
+++ b/arch/arm/Kconfig
@@ -504,6 +504,7 @@  config TARGET_BCMCYGNUS
 	bool "Support bcmcygnus"
 	select CPU_V7
 	imply CMD_HASH
+	imply HASH_VERIFY
 
 config TARGET_BCMNSP
 	bool "Support bcmnsp"
diff --git a/arch/arm/mach-exynos/Kconfig b/arch/arm/mach-exynos/Kconfig
index 5b6c5ea328..9c5387e37a 100644
--- a/arch/arm/mach-exynos/Kconfig
+++ b/arch/arm/mach-exynos/Kconfig
@@ -19,6 +19,7 @@  config ARCH_EXYNOS5
 	select BOARD_EARLY_INIT_F
 	select SHA_HW_ACCEL
 	imply CMD_HASH
+	imply HASH_VERIFY
 	help
 	  Samsung Exynos5 SoC family are based on ARM Cortex-A15 CPU (and
 	  Cortex-A7 CPU in big.LITTLE configuration). There are multiple SoCs
diff --git a/cmd/Kconfig b/cmd/Kconfig
index 5ee52f62cc..d3580ec779 100644
--- a/cmd/Kconfig
+++ b/cmd/Kconfig
@@ -417,6 +417,18 @@  config MD5SUM_VERFIY
 	help
 	  Add -v option to verify data against an MD5 checksum.
 
+config CMD_SHA1SUM
+	bool "sha1sum"
+	select SHA1
+	help
+	  Compute SHA1 checksum.
+
+config SHA1SUM_VERFIY
+	bool "sha1sum -v"
+	depends on CMD_SHA1SUM
+	help
+	  Add -v option to verify data against an SHA1 checksum.
+
 config LOOPW
 	bool "loopw"
 	help
@@ -1068,6 +1080,12 @@  config CMD_HASH
 	  saved to memory or to an environment variable. It is also possible
 	  to verify a hash against data in memory.
 
+config HASH_VERIFY
+	bool "hash -v"
+	depends on CMD_HASH
+	help
+	  Add -v option to verify data against a hash.
+
 config CMD_TPM
 	bool "Enable the 'tpm' command"
 	depends on TPM
diff --git a/configs/bcm958622hr_defconfig b/configs/bcm958622hr_defconfig
index c2713c61fa..69b9fe878b 100644
--- a/configs/bcm958622hr_defconfig
+++ b/configs/bcm958622hr_defconfig
@@ -14,6 +14,7 @@  CONFIG_CMD_ASKENV=y
 CONFIG_CMD_CACHE=y
 CONFIG_CMD_TIME=y
 CONFIG_CMD_HASH=y
+CONFIG_HASH_VERIFY=y
 CONFIG_CMD_FAT=y
 # CONFIG_MMC is not set
 CONFIG_SYS_NS16550=y
diff --git a/include/configs/bcm_ep_board.h b/include/configs/bcm_ep_board.h
index 957cd9e0ba..53220491b8 100644
--- a/include/configs/bcm_ep_board.h
+++ b/include/configs/bcm_ep_board.h
@@ -66,9 +66,6 @@ 
 /* Commands */
 #define CONFIG_FAT_WRITE
 
-/* SHA hashing */
-#define CONFIG_HASH_VERIFY
-
 /* Enable Time Command */
 
 /* Misc utility code */
diff --git a/include/configs/exynos5-common.h b/include/configs/exynos5-common.h
index 6915dc1a48..378219d83a 100644
--- a/include/configs/exynos5-common.h
+++ b/include/configs/exynos5-common.h
@@ -131,9 +131,6 @@ 
 #define CONFIG_ENV_SROM_BANK		1
 #endif /*CONFIG_CMD_NET*/
 
-/* SHA hashing */
-#define CONFIG_HASH_VERIFY
-
 /* Enable Time Command */
 
 /* USB */
diff --git a/include/configs/imx6qdl_icore.h b/include/configs/imx6qdl_icore.h
index 741bdfa807..13fc48fa3a 100644
--- a/include/configs/imx6qdl_icore.h
+++ b/include/configs/imx6qdl_icore.h
@@ -125,7 +125,6 @@ 
 
 /* FIT */
 #ifdef CONFIG_FIT
-# define CONFIG_HASH_VERIFY
 # define CONFIG_IMAGE_FORMAT_LEGACY
 #endif
 
diff --git a/include/configs/imx6qdl_icore_rqs.h b/include/configs/imx6qdl_icore_rqs.h
index f52865b5a0..a588823da0 100644
--- a/include/configs/imx6qdl_icore_rqs.h
+++ b/include/configs/imx6qdl_icore_rqs.h
@@ -107,7 +107,6 @@ 
 
 /* FIT */
 #ifdef CONFIG_FIT
-# define CONFIG_HASH_VERIFY
 # define CONFIG_IMAGE_FORMAT_LEGACY
 #endif
 
diff --git a/include/configs/imx6ul_geam.h b/include/configs/imx6ul_geam.h
index 2e12b97767..1d48726086 100644
--- a/include/configs/imx6ul_geam.h
+++ b/include/configs/imx6ul_geam.h
@@ -124,7 +124,6 @@ 
 
 /* FIT */
 #ifdef CONFIG_FIT
-# define CONFIG_HASH_VERIFY
 # define CONFIG_IMAGE_FORMAT_LEGACY
 #endif
 
diff --git a/include/configs/imx6ul_isiot.h b/include/configs/imx6ul_isiot.h
index 76ae159da3..a0eb6e25fe 100644
--- a/include/configs/imx6ul_isiot.h
+++ b/include/configs/imx6ul_isiot.h
@@ -124,7 +124,6 @@ 
 
 /* FIT */
 #ifdef CONFIG_FIT
-# define CONFIG_HASH_VERIFY
 # define CONFIG_IMAGE_FORMAT_LEGACY
 #endif
 
diff --git a/include/configs/sandbox.h b/include/configs/sandbox.h
index c62b45e51c..fbbd6cd99b 100644
--- a/include/configs/sandbox.h
+++ b/include/configs/sandbox.h
@@ -98,8 +98,6 @@ 
 #define CONFIG_BOOTP_SERVERIP
 #define CONFIG_IP_DEFRAG
 
-#define CONFIG_HASH_VERIFY
-
 #define CONFIG_CMD_SANDBOX
 
 #define CONFIG_BOOTARGS ""
diff --git a/include/hash.h b/include/hash.h
index d81433772f..4f9a8cf1db 100644
--- a/include/hash.h
+++ b/include/hash.h
@@ -17,10 +17,6 @@  enum {
 	HASH_FLAG_ENV		= 1 << 1,	/* Allow env vars */
 };
 
-#if defined(CONFIG_SHA1SUM_VERIFY) || defined(CONFIG_CRC32_VERIFY)
-#define CONFIG_HASH_VERIFY
-#endif
-
 struct hash_algo {
 	const char *name;			/* Name of algorithm */
 	int digest_size;			/* Length of digest */
diff --git a/scripts/config_whitelist.txt b/scripts/config_whitelist.txt
index e8f49ebe5d..a20f1c593c 100644
--- a/scripts/config_whitelist.txt
+++ b/scripts/config_whitelist.txt
@@ -1074,7 +1074,6 @@  CONFIG_H264_FREQ
 CONFIG_H8300
 CONFIG_HALEAKALA
 CONFIG_HARD_SPI
-CONFIG_HASH_VERIFY
 CONFIG_HAS_DATAFLASH
 CONFIG_HAS_ETH0
 CONFIG_HAS_ETH1