diff options
author | Marek Vasut <marex@denx.de> | 2014-03-05 19:59:51 +0100 |
---|---|---|
committer | Tom Rini <trini@ti.com> | 2014-03-21 16:44:02 -0400 |
commit | a4223b746db5c2db2e1a1d4f0bb20e30484b1667 (patch) | |
tree | fd79a07f7ad91a74aaa214c149df5488a5a57a44 /include/environment.h | |
parent | 7ce1526ed2bf7a7499a843d38b30095fa2894659 (diff) | |
download | u-boot-imx-a4223b746db5c2db2e1a1d4f0bb20e30484b1667.zip u-boot-imx-a4223b746db5c2db2e1a1d4f0bb20e30484b1667.tar.gz u-boot-imx-a4223b746db5c2db2e1a1d4f0bb20e30484b1667.tar.bz2 |
env: Implement support for encrypting environment
Add function which allows encrypting the whole environment block with
AES-128-CBC. The key for the environment is retrieved by
env_aes_cbc_get_key() function, which must be implemented on a per-board
basis.
Signed-off-by: Marek Vasut <marex@denx.de>
Diffstat (limited to 'include/environment.h')
-rw-r--r-- | include/environment.h | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/include/environment.h b/include/environment.h index f797595..08679ae 100644 --- a/include/environment.h +++ b/include/environment.h @@ -146,7 +146,12 @@ extern unsigned long nand_env_oob_offset; extern char *env_name_spec; #endif +#ifdef CONFIG_ENV_AES +/* Make sure the payload is multiple of AES block size */ +#define ENV_SIZE ((CONFIG_ENV_SIZE - ENV_HEADER_SIZE) & ~(16 - 1)) +#else #define ENV_SIZE (CONFIG_ENV_SIZE - ENV_HEADER_SIZE) +#endif typedef struct environment_s { uint32_t crc; /* CRC32 over data bytes */ @@ -154,7 +159,12 @@ typedef struct environment_s { unsigned char flags; /* active/obsolete flags */ #endif unsigned char data[ENV_SIZE]; /* Environment data */ -} env_t; +} env_t +#ifdef CONFIG_ENV_AES +/* Make sure the env is aligned to block size. */ +__attribute__((aligned(16))) +#endif +; #ifdef ENV_IS_EMBEDDED extern env_t environment; |