aboutsummaryrefslogtreecommitdiff
path: root/core
diff options
context:
space:
mode:
authorJens Wiklander <jens.wiklander@linaro.org>2019-03-26 20:31:53 +0100
committerJérôme Forissier <jerome.forissier@linaro.org>2019-03-28 14:11:23 +0100
commit25cc72e017f4914b3b4ab7d5f5c40067d97f0e1b (patch)
tree2011f7b34b2389e1397cd8a3e80c005cf08c27d1 /core
parent0f1ae0540bc8bae083451ed44001b50139b84603 (diff)
core: ltc: move remaining exported aes functions
Moves remaining exported aes functions to aes.c Acked-by: Jerome Forissier <jerome.forissier@linaro.org> Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org>
Diffstat (limited to 'core')
-rw-r--r--core/lib/libtomcrypt/aes.c39
-rw-r--r--core/lib/libtomcrypt/src/tee_ltc_provider.c29
-rw-r--r--core/lib/libtomcrypt/sub.mk1
3 files changed, 40 insertions, 29 deletions
diff --git a/core/lib/libtomcrypt/aes.c b/core/lib/libtomcrypt/aes.c
new file mode 100644
index 00000000..027a2f76
--- /dev/null
+++ b/core/lib/libtomcrypt/aes.c
@@ -0,0 +1,39 @@
+// SPDX-License-Identifier: BSD-2-Clause
+/*
+ * Copyright (c) 2014-2019, Linaro Limited
+ */
+
+#include <crypto/crypto.h>
+#include <kernel/panic.h>
+#include <tee_api_defines.h>
+#include <tee_api_types.h>
+#include <tomcrypt.h>
+
+TEE_Result crypto_aes_expand_enc_key(const void *key, size_t key_len,
+ void *enc_key, size_t enc_keylen,
+ unsigned int *rounds)
+{
+ symmetric_key skey;
+
+ if (enc_keylen < sizeof(skey.rijndael.eK))
+ return TEE_ERROR_BAD_PARAMETERS;
+
+ if (aes_setup(key, key_len, 0, &skey))
+ return TEE_ERROR_BAD_PARAMETERS;
+
+ memcpy(enc_key, skey.rijndael.eK, sizeof(skey.rijndael.eK));
+ *rounds = skey.rijndael.Nr;
+ return TEE_SUCCESS;
+}
+
+void crypto_aes_enc_block(const void *enc_key, size_t enc_keylen __maybe_unused,
+ unsigned int rounds, const void *src, void *dst)
+{
+ symmetric_key skey;
+
+ assert(enc_keylen >= sizeof(skey.rijndael.eK));
+ memcpy(skey.rijndael.eK, enc_key, sizeof(skey.rijndael.eK));
+ skey.rijndael.Nr = rounds;
+ if (aes_ecb_encrypt(src, dst, &skey))
+ panic();
+}
diff --git a/core/lib/libtomcrypt/src/tee_ltc_provider.c b/core/lib/libtomcrypt/src/tee_ltc_provider.c
index 2fa3d662..2663e774 100644
--- a/core/lib/libtomcrypt/src/tee_ltc_provider.c
+++ b/core/lib/libtomcrypt/src/tee_ltc_provider.c
@@ -144,32 +144,3 @@ void tomcrypt_arm_neon_disable(struct tomcrypt_arm_neon_state *state)
thread_kernel_disable_vfp(state->state);
}
#endif
-
-TEE_Result crypto_aes_expand_enc_key(const void *key, size_t key_len,
- void *enc_key, size_t enc_keylen,
- unsigned int *rounds)
-{
- symmetric_key skey;
-
- if (enc_keylen < sizeof(skey.rijndael.eK))
- return TEE_ERROR_BAD_PARAMETERS;
-
- if (aes_setup(key, key_len, 0, &skey))
- return TEE_ERROR_BAD_PARAMETERS;
-
- memcpy(enc_key, skey.rijndael.eK, sizeof(skey.rijndael.eK));
- *rounds = skey.rijndael.Nr;
- return TEE_SUCCESS;
-}
-
-void crypto_aes_enc_block(const void *enc_key, size_t enc_keylen __maybe_unused,
- unsigned int rounds, const void *src, void *dst)
-{
- symmetric_key skey;
-
- assert(enc_keylen >= sizeof(skey.rijndael.eK));
- memcpy(skey.rijndael.eK, enc_key, sizeof(skey.rijndael.eK));
- skey.rijndael.Nr = rounds;
- if (aes_ecb_encrypt(src, dst, &skey))
- panic();
-}
diff --git a/core/lib/libtomcrypt/sub.mk b/core/lib/libtomcrypt/sub.mk
index 50333ac1..31fbcd41 100644
--- a/core/lib/libtomcrypt/sub.mk
+++ b/core/lib/libtomcrypt/sub.mk
@@ -19,3 +19,4 @@ srcs-$(CFG_CRYPTO_DSA) += dsa.c
srcs-$(CFG_CRYPTO_ECC) += ecc.c
srcs-$(CFG_CRYPTO_RSA) += rsa.c
srcs-$(CFG_CRYPTO_DH) += dh.c
+srcs-$(CFG_CRYPTO_AES) += aes.c