diff options
author | Tom Rini <trini@konsulko.com> | 2017-11-14 08:39:35 -0500 |
---|---|---|
committer | Tom Rini <trini@konsulko.com> | 2017-11-21 07:43:31 -0500 |
commit | c6831c74a9e9dbedc351de94d23d35188ae1a39b (patch) | |
tree | ec3444def18bc20f81dce3594b01dfdba9097949 /env/common.c | |
parent | 042de609ed49cfc41afb13639850c7b01079a527 (diff) |
env: Remove CONFIG_ENV_AES support
This support has been deprecated since v2017.09 due to security issues.
We now remove this support.
Signed-off-by: Tom Rini <trini@konsulko.com>
Diffstat (limited to 'env/common.c')
-rw-r--r-- | env/common.c | 61 |
1 files changed, 0 insertions, 61 deletions
diff --git a/env/common.c b/env/common.c index 70715bb6e7..8167ea2992 100644 --- a/env/common.c +++ b/env/common.c @@ -103,52 +103,6 @@ int set_default_vars(int nvars, char * const vars[]) H_NOCLEAR | H_INTERACTIVE, 0, nvars, vars); } -#ifdef CONFIG_ENV_AES -#include <uboot_aes.h> -/** - * env_aes_cbc_get_key() - Get AES-128-CBC key for the environment - * - * This function shall return 16-byte array containing AES-128 key used - * to encrypt and decrypt the environment. This function must be overridden - * by the implementer as otherwise the environment encryption will not - * work. - */ -__weak uint8_t *env_aes_cbc_get_key(void) -{ - return NULL; -} - -static int env_aes_cbc_crypt(env_t *env, const int enc) -{ - unsigned char *data = env->data; - uint8_t *key; - uint8_t key_exp[AES_EXPAND_KEY_LENGTH]; - uint32_t aes_blocks; - - key = env_aes_cbc_get_key(); - if (!key) - return -EINVAL; - - /* First we expand the key. */ - aes_expand_key(key, key_exp); - - /* Calculate the number of AES blocks to encrypt. */ - aes_blocks = ENV_SIZE / AES_KEY_LENGTH; - - if (enc) - aes_cbc_encrypt_blocks(key_exp, data, data, aes_blocks); - else - aes_cbc_decrypt_blocks(key_exp, data, data, aes_blocks); - - return 0; -} -#else -static inline int env_aes_cbc_crypt(env_t *env, const int enc) -{ - return 0; -} -#endif - /* * Check if CRC is valid and (if yes) import the environment. * Note that "buf" may or may not be aligned. @@ -156,7 +110,6 @@ static inline int env_aes_cbc_crypt(env_t *env, const int enc) int env_import(const char *buf, int check) { env_t *ep = (env_t *)buf; - int ret; if (check) { uint32_t crc; @@ -169,14 +122,6 @@ int env_import(const char *buf, int check) } } - /* Decrypt the env if desired. */ - ret = env_aes_cbc_crypt(ep, 0); - if (ret) { - pr_err("Failed to decrypt env!\n"); - set_default_env("!import failed"); - return ret; - } - if (himport_r(&env_htab, (char *)ep->data, ENV_SIZE, '\0', 0, 0, 0, NULL)) { gd->flags |= GD_FLG_ENV_READY; @@ -242,7 +187,6 @@ int env_export(env_t *env_out) { char *res; ssize_t len; - int ret; res = (char *)env_out->data; len = hexport_r(&env_htab, '\0', 0, &res, ENV_SIZE, 0, NULL); @@ -251,11 +195,6 @@ int env_export(env_t *env_out) return 1; } - /* Encrypt the env if desired. */ - ret = env_aes_cbc_crypt(env_out, 1); - if (ret) - return ret; - env_out->crc = crc32(0, env_out->data, ENV_SIZE); #ifdef CONFIG_SYS_REDUNDAND_ENVIRONMENT |