imx6: Added DEK blob generator command
authorRaul Cardenas <Ulises.Cardenas@freescale.com>
Fri, 27 Feb 2015 17:22:06 +0000 (11:22 -0600)
committerStefano Babic <sbabic@denx.de>
Mon, 2 Mar 2015 08:57:06 +0000 (09:57 +0100)
commit0200020bc2b8192c31dc57c600865267f51bface
tree77e47e958773096b7cb53c20a0c6a1f4d83e46d8
parentb5cd10b911f632f74e1211ef786989781d2a1ca1
imx6: Added DEK blob generator command

Freescale's SEC block has built-in Data Encryption
Key(DEK) Blob Protocol which provides a method for
protecting a DEK for non-secure memory storage.
SEC block protects data in a data structure called
a Secret Key Blob, which provides both confidentiality
and integrity protection.
Every time the blob encapsulation is executed,
a AES-256 key is randomly generated to encrypt the DEK.
This key is encrypted with the OTP Secret key
from SoC. The resulting blob consists of the encrypted
AES-256 key, the encrypted DEK, and a 16-bit MAC.

During decapsulation, the reverse process is performed
to get back the original DEK. A caveat to the blob
decapsulation process,  is that the DEK is decrypted
in secure-memory and can only be read by FSL SEC HW.
The DEK is used to decrypt data during encrypted boot.

Commands added
--------------
  dek_blob - encapsulating DEK as a cryptgraphic blob

Commands Syntax
---------------
  dek_blob src dst len

    Encapsulate and create blob of a len-bits DEK at
    address src and store the result at address dst.

Signed-off-by: Raul Cardenas <Ulises.Cardenas@freescale.com>
Signed-off-by: Nitin Garg <nitin.garg@freescale.com>
Signed-off-by: Ulises Cardenas <ulises.cardenas@freescale.com>
Signed-off-by: Ulises Cardenas-B45798 <Ulises.Cardenas@freescale.com>
12 files changed:
arch/arm/imx-common/Makefile
arch/arm/imx-common/cmd_dek.c [new file with mode: 0644]
arch/arm/imx-common/timer.c
arch/arm/include/asm/arch-mx6/imx-regs.h
doc/README.mxc_hab
drivers/crypto/fsl/Makefile
drivers/crypto/fsl/desc.h
drivers/crypto/fsl/fsl_blob.c
drivers/crypto/fsl/jobdesc.c
drivers/crypto/fsl/jobdesc.h
drivers/crypto/fsl/jr.c
include/fsl_sec.h