Convert CONFIG_CMD_BLOB to Kconfig
authorSimon Glass <sjg@chromium.org>
Thu, 27 Apr 2017 04:27:53 +0000 (22:27 -0600)
committerTom Rini <trini@konsulko.com>
Sun, 30 Apr 2017 14:30:03 +0000 (10:30 -0400)
This converts the following to Kconfig:
   CONFIG_CMD_BLOB

Signed-off-by: Simon Glass <sjg@chromium.org>
[trini: Add imply CMD_BLOB under CHAIN_OF_TRUST]
Signed-off-by: Tom Rini <trini@konsulko.com>
arch/arm/include/asm/fsl_secure_boot.h
arch/powerpc/include/asm/fsl_secure_boot.h
board/freescale/common/Kconfig
cmd/Kconfig
cmd/Makefile
scripts/config_whitelist.txt

index f5ca5d3..b0ca4bc 100644 (file)
@@ -30,7 +30,6 @@
 #define CONFIG_KEY_REVOCATION
 
 #ifndef CONFIG_SPL_BUILD
-#define CONFIG_CMD_BLOB
 #define CONFIG_CMD_HASH
 #ifndef CONFIG_SYS_RAMBOOT
 /* The key used for verification of next level images
index 2b5a291..62ce816 100644 (file)
 #define CONFIG_SHA_PROG_HW_ACCEL
 
 #ifndef CONFIG_SPL_BUILD
-#define CONFIG_CMD_BLOB
 /*
  * fsl_setenv_chain_of_trust() must be called from
  * board_late_init()
index f5190ac..8a9a9be 100644 (file)
@@ -1,5 +1,6 @@
 config CHAIN_OF_TRUST
        depends on !FIT_SIGNATURE && SECURE_BOOT
+       imply CMD_BLOB
        select FSL_CAAM
        bool
        default y
index 0c6d44e..306027c 100644 (file)
@@ -779,6 +779,50 @@ config CMD_AES
          supported by the algorithm but this command only supports 128 bits
          at present.
 
+config CMD_BLOB
+       bool "Enable the 'blob' command"
+       help
+         This is used with the Freescale secure boot mechanism.
+
+         Freescale's SEC block has built-in Blob Protocol which provides
+         a method for protecting user-defined data across system power
+         cycles. SEC block protects data in a data structure called a Blob,
+         which provides both confidentiality and integrity protection.
+
+         Encapsulating data as a blob
+         Each time that the Blob Protocol is used to protect data, a
+         different randomly generated key is used to encrypt the data.
+         This random key is itself encrypted using a key which is derived
+         from SoC's non-volatile secret key and a 16 bit Key identifier.
+         The resulting encrypted key along with encrypted data is called a
+         blob. The non-volatile secure key is available for use only during
+         secure boot.
+
+         During decapsulation, the reverse process is performed to get back
+         the original data.
+
+         Sub-commands:
+            blob enc - encapsulating data as a cryptgraphic blob
+           blob dec - decapsulating cryptgraphic blob to get the data
+
+         Syntax:
+
+         blob enc src dst len km
+
+         Encapsulate and create blob of data $len bytes long
+         at address $src and store the result at address $dst.
+         $km is the 16 byte key modifier is also required for
+         generation/use as key for cryptographic operation. Key
+         modifier should be 16 byte long.
+
+         blob dec src dst len km
+
+         Decapsulate the  blob of data at address $src and
+         store result of $len byte at addr $dst.
+         $km is the 16 byte key modifier is also required for
+         generation/use as key for cryptographic operation. Key
+         modifier should be 16 byte long.
+
 config CMD_TPM
        bool "Enable the 'tpm' command"
        depends on TPM
index 97c862f..e987868 100644 (file)
@@ -152,9 +152,9 @@ obj-$(CONFIG_CMD_ETHSW) += ethsw.o
 # Power
 obj-$(CONFIG_CMD_PMIC) += pmic.o
 obj-$(CONFIG_CMD_REGULATOR) += regulator.o
-endif # !CONFIG_SPL_BUILD
 
 obj-$(CONFIG_CMD_BLOB) += blob.o
+endif # !CONFIG_SPL_BUILD
 
 # core command
 obj-y += nvedit.o
index a58faf7..091cfd3 100644 (file)
@@ -393,7 +393,6 @@ CONFIG_CM922T_XA10
 CONFIG_CMDLINE_EDITING
 CONFIG_CMDLINE_PS_SUPPORT
 CONFIG_CMDLINE_TAG
-CONFIG_CMD_BLOB
 CONFIG_CMD_BMODE
 CONFIG_CMD_BMP
 CONFIG_CMD_BSP