]> git.kernelconcepts.de Git - karo-tx-uboot.git/commit
imx6: Added DEK blob generator command
authorRaul Cardenas <Ulises.Cardenas@freescale.com>
Fri, 27 Feb 2015 17:22:06 +0000 (11:22 -0600)
committerLothar Waßmann <LW@KARO-electronics.de>
Tue, 1 Sep 2015 12:10:23 +0000 (14:10 +0200)
commitff1213543f5380c6b3f8c3a01127037f77061487
treeb2de9192445f4831a077387a37f3d0b753992786
parent0e260e7148ad0bbfebf515a9026815e5cbe19b0e
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