History log of /optee_os/core/tee/ (Results 201 – 225 of 584)
Revision Date Author Comments
(<<< Hide modified files)
(Show modified files >>>)
6b3a371c01-Mar-2019 Jens Wiklander <jens.wiklander@linaro.org>

core: remove algo from crypto_hash_*()

Removes the algo parameters from all crypto_hash_*() functions except
crypto_hash_alloc_ctx().

Reviewed-by: Etienne Carriere <etienne.carriere@linaro.org>
Ack

core: remove algo from crypto_hash_*()

Removes the algo parameters from all crypto_hash_*() functions except
crypto_hash_alloc_ctx().

Reviewed-by: Etienne Carriere <etienne.carriere@linaro.org>
Acked-by: Jerome Forissier <jerome.forissier@linaro.org>
Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org>

show more ...


/optee_os/.shippable.yml
/optee_os/CHANGELOG.md
/optee_os/MAINTAINERS
/optee_os/core/arch/arm/arm.mk
/optee_os/core/arch/arm/include/arm.h
/optee_os/core/arch/arm/include/kernel/misc.h
/optee_os/core/arch/arm/include/kernel/user_ta.h
/optee_os/core/arch/arm/include/mm/core_mmu.h
/optee_os/core/arch/arm/include/sm/optee_smc.h
/optee_os/core/arch/arm/include/sm/sm.h
/optee_os/core/arch/arm/kernel/abort.c
/optee_os/core/arch/arm/kernel/early_ta.c
/optee_os/core/arch/arm/kernel/misc_a32.S
/optee_os/core/arch/arm/kernel/misc_a64.S
/optee_os/core/arch/arm/kernel/ree_fs_ta.c
/optee_os/core/arch/arm/kernel/sub.mk
/optee_os/core/arch/arm/kernel/thread.c
/optee_os/core/arch/arm/kernel/unwind_arm64.c
/optee_os/core/arch/arm/kernel/user_ta.c
/optee_os/core/arch/arm/mm/sub.mk
/optee_os/core/arch/arm/plat-bcm/conf.mk
/optee_os/core/arch/arm/plat-bcm/crc32.c
/optee_os/core/arch/arm/plat-bcm/crc32.h
/optee_os/core/arch/arm/plat-bcm/main.c
/optee_os/core/arch/arm/plat-bcm/platform_config.h
/optee_os/core/arch/arm/plat-bcm/sub.mk
/optee_os/core/arch/arm/plat-hikey/main.c
/optee_os/core/arch/arm/plat-imx/conf.mk
/optee_os/core/arch/arm/plat-imx/registers/imx6.h
/optee_os/core/arch/arm/plat-rockchip/common.h
/optee_os/core/arch/arm/plat-rockchip/conf.mk
/optee_os/core/arch/arm/plat-rockchip/cru.h
/optee_os/core/arch/arm/plat-rockchip/grf.h
/optee_os/core/arch/arm/plat-rockchip/main.c
/optee_os/core/arch/arm/plat-rockchip/plat_init.S
/optee_os/core/arch/arm/plat-rockchip/platform.c
/optee_os/core/arch/arm/plat-rockchip/platform.h
/optee_os/core/arch/arm/plat-rockchip/platform_config.h
/optee_os/core/arch/arm/plat-rockchip/platform_px30.c
/optee_os/core/arch/arm/plat-rockchip/platform_rk322x.c
/optee_os/core/arch/arm/plat-rockchip/platform_rk3399.c
/optee_os/core/arch/arm/plat-rockchip/psci_rk322x.c
/optee_os/core/arch/arm/plat-rockchip/sub.mk
/optee_os/core/arch/arm/sm/sm_a32.S
/optee_os/core/arch/arm/tee/arch_svc.c
/optee_os/core/core.mk
/optee_os/core/crypto/crypto.c
/optee_os/core/crypto/rng_fortuna.c
/optee_os/core/drivers/bnxt/bnxt.c
/optee_os/core/drivers/bnxt/bnxt_fw.c
/optee_os/core/drivers/bnxt/bnxt_images.c
/optee_os/core/drivers/bnxt/sub.mk
/optee_os/core/drivers/sub.mk
/optee_os/core/include/crypto/crypto.h
/optee_os/core/include/drivers/bcm/bnxt.h
/optee_os/core/include/kernel/tee_ta_manager.h
/optee_os/core/kernel/tee_ta_manager.c
/optee_os/core/lib/libtomcrypt/src/ciphers/aes/aes.c
/optee_os/core/lib/libtomcrypt/src/pk/asn1/der/utf8/der_decode_utf8_string.c
/optee_os/core/pta/bcm/bnxt.c
/optee_os/core/pta/bcm/sub.mk
/optee_os/core/pta/secstor_ta_mgmt.c
/optee_os/core/pta/sub.mk
/optee_os/core/pta/system.c
/optee_os/core/sub.mk
fs_htree.c
tee_cryp_concat_kdf.c
tee_cryp_utl.c
tee_svc_cryp.c
/optee_os/ldelf/ftrace.c
/optee_os/ldelf/ftrace.h
/optee_os/ldelf/link.mk
/optee_os/ldelf/main.c
/optee_os/ldelf/sub.mk
/optee_os/lib/libutee/arch/arm/sub.mk
/optee_os/lib/libutee/include/user_ta_header.h
/optee_os/lib/libutils/ext/arch/arm/mcount_a32.S
/optee_os/lib/libutils/ext/arch/arm/mcount_a64.S
/optee_os/lib/libutils/ext/arch/arm/sub.mk
/optee_os/lib/libutils/ext/ftrace/ftrace.c
/optee_os/lib/libutils/ext/ftrace/ftrace.h
/optee_os/lib/libutils/ext/ftrace/sub.mk
/optee_os/lib/libutils/ext/sub.mk
/optee_os/lib/libutils/isoc/arch/arm/setjmp_a32.S
/optee_os/lib/libutils/isoc/arch/arm/setjmp_a64.S
/optee_os/lib/libutils/isoc/include/setjmp.h
/optee_os/mk/config.mk
/optee_os/mk/subdir.mk
/optee_os/scripts/arm32_sysreg.py
/optee_os/scripts/symbolize.py
/optee_os/scripts/update_changelog.py
/optee_os/ta/arch/arm/link.mk
/optee_os/ta/arch/arm/user_ta_header.c
/optee_os/ta/ta.mk
34a08bec25-Jun-2019 Joakim Bech <joakim.bech@linaro.org>

cryp: prevent direct calls to update and final functions

With inconsistent or malformed data it has been possible to call
"update" and "final" crypto functions directly. Using a fuzzer tool [1]
we h

cryp: prevent direct calls to update and final functions

With inconsistent or malformed data it has been possible to call
"update" and "final" crypto functions directly. Using a fuzzer tool [1]
we have seen that this results in asserts, i.e., a crash that
potentially could leak sensitive information.

By setting the state (initialized) in the crypto context (i.e., the
tee_cryp_state) at the end of all syscall_*_init functions and then add
a check of the state at the beginning of all update and final functions,
we prevent direct entrance to the "update" and "final" functions.

[1] https://github.com/MartijnB/optee_fuzzer

Fixes: OP-TEE-2019-0021

Signed-off-by: Joakim Bech <joakim.bech@linaro.org>
Reported-by: Martijn Bogaard <bogaard@riscure.com>
Acked-by: Jerome Forissier <jerome.forissier@linaro.org>
Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org>

show more ...

28aa35f524-Jun-2019 Joakim Bech <joakim.bech@linaro.org>

cryp: ensure that mode is cipher in syscall_cipher_init

When calling syscall_cipher_init there is no check being done that the
state coming from the TA has been initialized to a valid cipher state.

cryp: ensure that mode is cipher in syscall_cipher_init

When calling syscall_cipher_init there is no check being done that the
state coming from the TA has been initialized to a valid cipher state.
By checking the class we prevent an assert in cipher_ops.

Fixes: OP-TEE-2019-0020

Signed-off-by: Joakim Bech <joakim.bech@linaro.org>
Reported-by: Martijn Bogaard <bogaard@riscure.com>
Acked-by: Jerome Forissier <jerome.forissier@linaro.org>
Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org>

show more ...

45a367d820-Jun-2019 Joakim Bech <joakim.bech@linaro.org>

cryp: ensure that mode is AE in syscall_authenc_ functions

When doing calls to syscall_authenc_xyz functions (all of them except
syscall_authenc_init) there is no check being done that the state com

cryp: ensure that mode is AE in syscall_authenc_ functions

When doing calls to syscall_authenc_xyz functions (all of them except
syscall_authenc_init) there is no check being done that the state coming
from the TA has been initialized to a valid authenticated encryption
state. As a consequence of that it's possible to redirect execution to
other functions. Doing like that will make TEE core end up with a data
abort.

Fixes: OP-TEE-2019-0019

Signed-off-by: Joakim Bech <joakim.bech@linaro.org>
Reported-by: Martijn Bogaard <bogaard@riscure.com>
Acked-by: Jerome Forissier <jerome.forissier@linaro.org>
Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org>

show more ...


/optee_os/MAINTAINERS
/optee_os/core/arch/arm/plat-hikey/conf.mk
/optee_os/core/arch/arm/plat-imx/conf.mk
/optee_os/core/arch/arm/plat-imx/crypto_conf.mk
/optee_os/core/arch/arm/plat-imx/imx.h
/optee_os/core/arch/arm/plat-imx/platform_config.h
/optee_os/core/arch/arm/plat-imx/registers/imx7ulp-crm.h
/optee_os/core/arch/arm/plat-imx/registers/imx7ulp.h
/optee_os/core/drivers/crypto/caam/caam_ctrl.c
/optee_os/core/drivers/crypto/caam/caam_desc.c
/optee_os/core/drivers/crypto/caam/caam_jr.c
/optee_os/core/drivers/crypto/caam/caam_pwr.c
/optee_os/core/drivers/crypto/caam/caam_rng.c
/optee_os/core/drivers/crypto/caam/hal/common/hal_cfg.c
/optee_os/core/drivers/crypto/caam/hal/common/hal_cfg_dt.c
/optee_os/core/drivers/crypto/caam/hal/common/hal_ctrl.c
/optee_os/core/drivers/crypto/caam/hal/common/hal_jr.c
/optee_os/core/drivers/crypto/caam/hal/common/hal_rng.c
/optee_os/core/drivers/crypto/caam/hal/common/registers/ccb_regs.h
/optee_os/core/drivers/crypto/caam/hal/common/registers/jr_regs.h
/optee_os/core/drivers/crypto/caam/hal/common/registers/rng_regs.h
/optee_os/core/drivers/crypto/caam/hal/common/registers/version_regs.h
/optee_os/core/drivers/crypto/caam/hal/common/sub.mk
/optee_os/core/drivers/crypto/caam/hal/imx_6_7/hal_clk_mx6.c
/optee_os/core/drivers/crypto/caam/hal/imx_6_7/hal_clk_mx7.c
/optee_os/core/drivers/crypto/caam/hal/imx_6_7/hal_clk_mx7ulp.c
/optee_os/core/drivers/crypto/caam/hal/imx_6_7/hal_ctrl.c
/optee_os/core/drivers/crypto/caam/hal/imx_6_7/hal_jr.c
/optee_os/core/drivers/crypto/caam/hal/imx_6_7/registers/ctrl_regs.h
/optee_os/core/drivers/crypto/caam/hal/imx_6_7/sub.mk
/optee_os/core/drivers/crypto/caam/hal/imx_8m/hal_clk.c
/optee_os/core/drivers/crypto/caam/hal/imx_8m/hal_ctrl.c
/optee_os/core/drivers/crypto/caam/hal/imx_8m/hal_jr.c
/optee_os/core/drivers/crypto/caam/hal/imx_8m/registers/ctrl_regs.h
/optee_os/core/drivers/crypto/caam/hal/imx_8m/sub.mk
/optee_os/core/drivers/crypto/caam/hal/ls/hal_clk.c
/optee_os/core/drivers/crypto/caam/hal/ls/hal_ctrl.c
/optee_os/core/drivers/crypto/caam/hal/ls/hal_jr.c
/optee_os/core/drivers/crypto/caam/hal/ls/registers/ctrl_regs.h
/optee_os/core/drivers/crypto/caam/hal/ls/sub.mk
/optee_os/core/drivers/crypto/caam/hal/sub.mk
/optee_os/core/drivers/crypto/caam/hash/caam_hash.c
/optee_os/core/drivers/crypto/caam/hash/sub.mk
/optee_os/core/drivers/crypto/caam/include/caam_common.h
/optee_os/core/drivers/crypto/caam/include/caam_desc_defines.h
/optee_os/core/drivers/crypto/caam/include/caam_desc_helper.h
/optee_os/core/drivers/crypto/caam/include/caam_hal_cfg.h
/optee_os/core/drivers/crypto/caam/include/caam_hal_clk.h
/optee_os/core/drivers/crypto/caam/include/caam_hal_ctrl.h
/optee_os/core/drivers/crypto/caam/include/caam_hal_jr.h
/optee_os/core/drivers/crypto/caam/include/caam_hal_rng.h
/optee_os/core/drivers/crypto/caam/include/caam_hash.h
/optee_os/core/drivers/crypto/caam/include/caam_io.h
/optee_os/core/drivers/crypto/caam/include/caam_jr.h
/optee_os/core/drivers/crypto/caam/include/caam_jr_status.h
/optee_os/core/drivers/crypto/caam/include/caam_pwr.h
/optee_os/core/drivers/crypto/caam/include/caam_rng.h
/optee_os/core/drivers/crypto/caam/include/caam_status.h
/optee_os/core/drivers/crypto/caam/include/caam_trace.h
/optee_os/core/drivers/crypto/caam/include/caam_utils_delay.h
/optee_os/core/drivers/crypto/caam/include/caam_utils_mem.h
/optee_os/core/drivers/crypto/caam/include/caam_utils_sgt.h
/optee_os/core/drivers/crypto/caam/include/caam_utils_status.h
/optee_os/core/drivers/crypto/caam/sub.mk
/optee_os/core/drivers/crypto/caam/utils/sub.mk
/optee_os/core/drivers/crypto/caam/utils/utils_delay.c
/optee_os/core/drivers/crypto/caam/utils/utils_mem.c
/optee_os/core/drivers/crypto/caam/utils/utils_sgt.c
/optee_os/core/drivers/crypto/caam/utils/utils_status.c
/optee_os/core/drivers/crypto/sub.mk
tee_svc_cryp.c
/optee_os/ldelf/main.c
7815588827-Sep-2019 Jerome Forissier <jerome@forissier.org>

core: tadb.c: get rid of atomic reference counting

This commit changes the way the tadb_db global variable is protected
against concurrent access on creation and deletion. Instead of using an
atomic

core: tadb.c: get rid of atomic reference counting

This commit changes the way the tadb_db global variable is protected
against concurrent access on creation and deletion. Instead of using an
atomic reference counter (struct refcount) and a mutex, only the mutex
is used and taken unconditionally. The reference count becomes a global
integer protected by the same mutex.

Using a struct refcount was apparently an optimization to avoid taking
the lock unless actual creation or deletion of the tadb_db was needed.
Unfortunately this implementation was causing occasional crashes of the
TEE core (easily reproducible on HiKey running 'xtest 1013' in a loop).
The new implementation is simpler and appears to be rock solid with no
measurable difference in performance.

Signed-off-by: Jerome Forissier <jerome@forissier.org>
Reviewed-by: Etienne Carriere <etienne.carriere@linaro.org>
Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org>

show more ...

6e9e277f13-Sep-2019 Jerome Forissier <jerome@forissier.org>

core: move sockets PTA to core/tee

The sockets pseudo-TA is architecture-independent. Move it to
core/tee and drop the pta_ prefix which is not really useful.

Signed-off-by: Jerome Forissier <jerom

core: move sockets PTA to core/tee

The sockets pseudo-TA is architecture-independent. Move it to
core/tee and drop the pta_ prefix which is not really useful.

Signed-off-by: Jerome Forissier <jerome@forissier.org>
Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org>

show more ...


/optee_os/.shippable.yml
/optee_os/MAINTAINERS
/optee_os/core/arch/arm/arm.mk
/optee_os/core/arch/arm/crypto/ghash-ce-core_a32.S
/optee_os/core/arch/arm/crypto/ghash-ce-core_a64.S
/optee_os/core/arch/arm/include/arm32.h
/optee_os/core/arch/arm/include/arm64.h
/optee_os/core/arch/arm/include/kernel/abort.h
/optee_os/core/arch/arm/include/kernel/cache_helpers.h
/optee_os/core/arch/arm/include/kernel/spinlock.h
/optee_os/core/arch/arm/include/kernel/thread.h
/optee_os/core/arch/arm/include/kernel/tlb_helpers.h
/optee_os/core/arch/arm/include/kernel/unwind.h
/optee_os/core/arch/arm/include/kernel/user_ta.h
/optee_os/core/arch/arm/include/mm/core_mmu.h
/optee_os/core/arch/arm/include/sm/sm.h
/optee_os/core/arch/arm/include/tee/entry_fast.h
/optee_os/core/arch/arm/include/tee/entry_std.h
/optee_os/core/arch/arm/kernel/generic_boot.c
/optee_os/core/arch/arm/kernel/link.mk
/optee_os/core/arch/arm/kernel/link_dummies.c
/optee_os/core/arch/arm/kernel/pm_stubs.c
/optee_os/core/arch/arm/kernel/sub.mk
/optee_os/core/arch/arm/kernel/thread.c
/optee_os/core/arch/arm/kernel/thread_a32.S
/optee_os/core/arch/arm/kernel/thread_a64.S
/optee_os/core/arch/arm/kernel/thread_optee_smc.c
/optee_os/core/arch/arm/kernel/thread_optee_smc_a32.S
/optee_os/core/arch/arm/kernel/thread_optee_smc_a64.S
/optee_os/core/arch/arm/kernel/thread_private.h
/optee_os/core/arch/arm/kernel/user_ta.c
/optee_os/core/arch/arm/mm/core_mmu_lpae.c
/optee_os/core/arch/arm/plat-bcm/conf.mk
/optee_os/core/arch/arm/plat-bcm/main.c
/optee_os/core/arch/arm/plat-d02/main.c
/optee_os/core/arch/arm/plat-hikey/conf.mk
/optee_os/core/arch/arm/plat-hikey/main.c
/optee_os/core/arch/arm/plat-hisilicon/main.c
/optee_os/core/arch/arm/plat-imx/conf.mk
/optee_os/core/arch/arm/plat-imx/imx-common.c
/optee_os/core/arch/arm/plat-imx/imx-regs.h
/optee_os/core/arch/arm/plat-imx/imx.h
/optee_os/core/arch/arm/plat-imx/imx_pm.h
/optee_os/core/arch/arm/plat-imx/main.c
/optee_os/core/arch/arm/plat-imx/pm/psci.c
/optee_os/core/arch/arm/plat-imx/pm/sub.mk
/optee_os/core/arch/arm/plat-imx/registers/imx6-crm_regs.h
/optee_os/core/arch/arm/plat-imx/registers/imx6.h
/optee_os/core/arch/arm/plat-imx/registers/imx7-crm_regs.h
/optee_os/core/arch/arm/plat-imx/registers/imx7.h
/optee_os/core/arch/arm/plat-imx/registers/imx7ulp.h
/optee_os/core/arch/arm/plat-imx/registers/imx8m.h
/optee_os/core/arch/arm/plat-imx/registers/imx8q.h
/optee_os/core/arch/arm/plat-imx/sub.mk
/optee_os/core/arch/arm/plat-k3/main.c
/optee_os/core/arch/arm/plat-ls/main.c
/optee_os/core/arch/arm/plat-marvell/main.c
/optee_os/core/arch/arm/plat-mediatek/main.c
/optee_os/core/arch/arm/plat-poplar/main.c
/optee_os/core/arch/arm/plat-rcar/main.c
/optee_os/core/arch/arm/plat-rockchip/main.c
/optee_os/core/arch/arm/plat-rpi3/main.c
/optee_os/core/arch/arm/plat-sam/main.c
/optee_os/core/arch/arm/plat-sprd/main.c
/optee_os/core/arch/arm/plat-stm/main.c
/optee_os/core/arch/arm/plat-stm32mp1/drivers/stm32mp1_rcc.h
/optee_os/core/arch/arm/plat-stm32mp1/main.c
/optee_os/core/arch/arm/plat-sunxi/main.c
/optee_os/core/arch/arm/plat-sunxi/psci.c
/optee_os/core/arch/arm/plat-sunxi/sub.mk
/optee_os/core/arch/arm/plat-synquacer/main.c
/optee_os/core/arch/arm/plat-ti/main.c
/optee_os/core/arch/arm/plat-vexpress/main.c
/optee_os/core/arch/arm/plat-zynq7k/main.c
/optee_os/core/arch/arm/plat-zynqmp/main.c
/optee_os/core/arch/arm/sm/sm_a32.S
/optee_os/core/arch/arm/tee/entry_fast.c
/optee_os/core/arch/arm/tee/entry_std.c
/optee_os/core/arch/arm/tee/sub.mk
/optee_os/core/crypto.mk
/optee_os/core/crypto/crypto.c
/optee_os/core/drivers/crypto/crypto_api/drvcrypt.c
/optee_os/core/drivers/crypto/crypto_api/hash/hash.c
/optee_os/core/drivers/crypto/crypto_api/hash/sub.mk
/optee_os/core/drivers/crypto/crypto_api/include/drvcrypt.h
/optee_os/core/drivers/crypto/crypto_api/include/drvcrypt_hash.h
/optee_os/core/drivers/crypto/crypto_api/sub.mk
/optee_os/core/drivers/crypto/sub.mk
/optee_os/core/drivers/imx_lpuart.c
/optee_os/core/drivers/imx_uart.c
/optee_os/core/drivers/imx_wdog.c
/optee_os/core/drivers/sp805_wdt.c
/optee_os/core/drivers/sub.mk
/optee_os/core/include/config.h
/optee_os/core/include/crypto/crypto_impl.h
/optee_os/core/include/drivers/imx_wdog.h
/optee_os/core/include/drivers/sp805_wdt.h
/optee_os/core/include/drivers/wdt.h
/optee_os/core/include/io.h
/optee_os/core/include/keep.h
/optee_os/core/include/kernel/asan.h
/optee_os/core/include/kernel/dt.h
/optee_os/core/include/kernel/interrupt.h
/optee_os/core/include/kernel/tee_ta_manager.h
/optee_os/core/include/optee_msg.h
/optee_os/core/include/signed_hdr.h
/optee_os/core/kernel/dt.c
/optee_os/core/kernel/interrupt.c
/optee_os/core/kernel/tee_ta_manager.c
/optee_os/core/lib/libtomcrypt/aes.c
/optee_os/core/lib/libtomcrypt/cbc.c
/optee_os/core/lib/libtomcrypt/ccm.c
/optee_os/core/lib/libtomcrypt/cmac.c
/optee_os/core/lib/libtomcrypt/ctr.c
/optee_os/core/lib/libtomcrypt/dh.c
/optee_os/core/lib/libtomcrypt/dsa.c
/optee_os/core/lib/libtomcrypt/ecb.c
/optee_os/core/lib/libtomcrypt/ecc.c
/optee_os/core/lib/libtomcrypt/gcm.c
/optee_os/core/lib/libtomcrypt/hash.c
/optee_os/core/lib/libtomcrypt/hmac.c
/optee_os/core/lib/libtomcrypt/mpa_desc.c
/optee_os/core/lib/libtomcrypt/mpi_desc.c
/optee_os/core/lib/libtomcrypt/rsa.c
/optee_os/core/lib/libtomcrypt/src/ciphers/aes/aes.c
/optee_os/core/lib/libtomcrypt/src/ciphers/aes/aes_armv8a_ce.c
/optee_os/core/lib/libtomcrypt/src/ciphers/aes/aes_modes_armv8a_ce_a32.S
/optee_os/core/lib/libtomcrypt/src/ciphers/aes/aes_modes_armv8a_ce_a64.S
/optee_os/core/lib/libtomcrypt/src/ciphers/aes/aes_tab.c
/optee_os/core/lib/libtomcrypt/src/ciphers/aes/sub.mk
/optee_os/core/lib/libtomcrypt/src/ciphers/anubis.c
/optee_os/core/lib/libtomcrypt/src/ciphers/blowfish.c
/optee_os/core/lib/libtomcrypt/src/ciphers/camellia.c
/optee_os/core/lib/libtomcrypt/src/ciphers/cast5.c
/optee_os/core/lib/libtomcrypt/src/ciphers/des.c
/optee_os/core/lib/libtomcrypt/src/ciphers/idea.c
/optee_os/core/lib/libtomcrypt/src/ciphers/kasumi.c
/optee_os/core/lib/libtomcrypt/src/ciphers/khazad.c
/optee_os/core/lib/libtomcrypt/src/ciphers/kseed.c
/optee_os/core/lib/libtomcrypt/src/ciphers/multi2.c
/optee_os/core/lib/libtomcrypt/src/ciphers/noekeon.c
/optee_os/core/lib/libtomcrypt/src/ciphers/rc2.c
/optee_os/core/lib/libtomcrypt/src/ciphers/rc5.c
/optee_os/core/lib/libtomcrypt/src/ciphers/rc6.c
/optee_os/core/lib/libtomcrypt/src/ciphers/safer/safer.c
/optee_os/core/lib/libtomcrypt/src/ciphers/safer/safer_tab.c
/optee_os/core/lib/libtomcrypt/src/ciphers/safer/saferp.c
/optee_os/core/lib/libtomcrypt/src/ciphers/serpent.c
/optee_os/core/lib/libtomcrypt/src/ciphers/skipjack.c
/optee_os/core/lib/libtomcrypt/src/ciphers/sub.mk
/optee_os/core/lib/libtomcrypt/src/ciphers/twofish/twofish.c
/optee_os/core/lib/libtomcrypt/src/ciphers/twofish/twofish_tab.c
/optee_os/core/lib/libtomcrypt/src/ciphers/xtea.c
/optee_os/core/lib/libtomcrypt/src/encauth/ccm/ccm_add_aad.c
/optee_os/core/lib/libtomcrypt/src/encauth/ccm/ccm_add_nonce.c
/optee_os/core/lib/libtomcrypt/src/encauth/ccm/ccm_done.c
/optee_os/core/lib/libtomcrypt/src/encauth/ccm/ccm_init.c
/optee_os/core/lib/libtomcrypt/src/encauth/ccm/ccm_memory.c
/optee_os/core/lib/libtomcrypt/src/encauth/ccm/ccm_process.c
/optee_os/core/lib/libtomcrypt/src/encauth/ccm/ccm_reset.c
/optee_os/core/lib/libtomcrypt/src/encauth/ccm/ccm_test.c
/optee_os/core/lib/libtomcrypt/src/encauth/ccm/sub.mk
/optee_os/core/lib/libtomcrypt/src/encauth/chachapoly/chacha20poly1305_add_aad.c
/optee_os/core/lib/libtomcrypt/src/encauth/chachapoly/chacha20poly1305_decrypt.c
/optee_os/core/lib/libtomcrypt/src/encauth/chachapoly/chacha20poly1305_done.c
/optee_os/core/lib/libtomcrypt/src/encauth/chachapoly/chacha20poly1305_encrypt.c
/optee_os/core/lib/libtomcrypt/src/encauth/chachapoly/chacha20poly1305_init.c
/optee_os/core/lib/libtomcrypt/src/encauth/chachapoly/chacha20poly1305_memory.c
/optee_os/core/lib/libtomcrypt/src/encauth/chachapoly/chacha20poly1305_setiv.c
/optee_os/core/lib/libtomcrypt/src/encauth/chachapoly/chacha20poly1305_setiv_rfc7905.c
/optee_os/core/lib/libtomcrypt/src/encauth/chachapoly/chacha20poly1305_test.c
/optee_os/core/lib/libtomcrypt/src/encauth/eax/eax_addheader.c
/optee_os/core/lib/libtomcrypt/src/encauth/eax/eax_decrypt.c
/optee_os/core/lib/libtomcrypt/src/encauth/eax/eax_decrypt_verify_memory.c
/optee_os/core/lib/libtomcrypt/src/encauth/eax/eax_done.c
/optee_os/core/lib/libtomcrypt/src/encauth/eax/eax_encrypt.c
/optee_os/core/lib/libtomcrypt/src/encauth/eax/eax_encrypt_authenticate_memory.c
/optee_os/core/lib/libtomcrypt/src/encauth/eax/eax_init.c
/optee_os/core/lib/libtomcrypt/src/encauth/eax/eax_test.c
/optee_os/core/lib/libtomcrypt/src/encauth/gcm/gcm_add_aad.c
/optee_os/core/lib/libtomcrypt/src/encauth/gcm/gcm_add_iv.c
/optee_os/core/lib/libtomcrypt/src/encauth/gcm/gcm_done.c
/optee_os/core/lib/libtomcrypt/src/encauth/gcm/gcm_gf_mult.c
/optee_os/core/lib/libtomcrypt/src/encauth/gcm/gcm_init.c
/optee_os/core/lib/libtomcrypt/src/encauth/gcm/gcm_memory.c
/optee_os/core/lib/libtomcrypt/src/encauth/gcm/gcm_mult_h.c
/optee_os/core/lib/libtomcrypt/src/encauth/gcm/gcm_process.c
/optee_os/core/lib/libtomcrypt/src/encauth/gcm/gcm_reset.c
/optee_os/core/lib/libtomcrypt/src/encauth/gcm/gcm_test.c
/optee_os/core/lib/libtomcrypt/src/encauth/gcm/sub.mk
/optee_os/core/lib/libtomcrypt/src/encauth/ocb/ocb_decrypt.c
/optee_os/core/lib/libtomcrypt/src/encauth/ocb/ocb_decrypt_verify_memory.c
/optee_os/core/lib/libtomcrypt/src/encauth/ocb/ocb_done_decrypt.c
/optee_os/core/lib/libtomcrypt/src/encauth/ocb/ocb_done_encrypt.c
/optee_os/core/lib/libtomcrypt/src/encauth/ocb/ocb_encrypt.c
/optee_os/core/lib/libtomcrypt/src/encauth/ocb/ocb_encrypt_authenticate_memory.c
/optee_os/core/lib/libtomcrypt/src/encauth/ocb/ocb_init.c
/optee_os/core/lib/libtomcrypt/src/encauth/ocb/ocb_ntz.c
/optee_os/core/lib/libtomcrypt/src/encauth/ocb/ocb_shift_xor.c
/optee_os/core/lib/libtomcrypt/src/encauth/ocb/ocb_test.c
/optee_os/core/lib/libtomcrypt/src/encauth/ocb/s_ocb_done.c
/optee_os/core/lib/libtomcrypt/src/encauth/ocb3/ocb3_add_aad.c
/optee_os/core/lib/libtomcrypt/src/encauth/ocb3/ocb3_decrypt.c
/optee_os/core/lib/libtomcrypt/src/encauth/ocb3/ocb3_decrypt_last.c
/optee_os/core/lib/libtomcrypt/src/encauth/ocb3/ocb3_decrypt_verify_memory.c
/optee_os/core/lib/libtomcrypt/src/encauth/ocb3/ocb3_done.c
/optee_os/core/lib/libtomcrypt/src/encauth/ocb3/ocb3_encrypt.c
/optee_os/core/lib/libtomcrypt/src/encauth/ocb3/ocb3_encrypt_authenticate_memory.c
/optee_os/core/lib/libtomcrypt/src/encauth/ocb3/ocb3_encrypt_last.c
/optee_os/core/lib/libtomcrypt/src/encauth/ocb3/ocb3_init.c
/optee_os/core/lib/libtomcrypt/src/encauth/ocb3/ocb3_int_ntz.c
/optee_os/core/lib/libtomcrypt/src/encauth/ocb3/ocb3_int_xor_blocks.c
/optee_os/core/lib/libtomcrypt/src/encauth/ocb3/ocb3_test.c
/optee_os/core/lib/libtomcrypt/src/hashes/blake2b.c
/optee_os/core/lib/libtomcrypt/src/hashes/blake2s.c
/optee_os/core/lib/libtomcrypt/src/hashes/chc/chc.c
/optee_os/core/lib/libtomcrypt/src/hashes/helper/hash_file.c
/optee_os/core/lib/libtomcrypt/src/hashes/helper/hash_filehandle.c
/optee_os/core/lib/libtomcrypt/src/hashes/helper/hash_memory.c
/optee_os/core/lib/libtomcrypt/src/hashes/helper/hash_memory_multi.c
/optee_os/core/lib/libtomcrypt/src/hashes/helper/sub.mk
/optee_os/core/lib/libtomcrypt/src/hashes/md2.c
/optee_os/core/lib/libtomcrypt/src/hashes/md4.c
/optee_os/core/lib/libtomcrypt/src/hashes/md5.c
/optee_os/core/lib/libtomcrypt/src/hashes/rmd128.c
/optee_os/core/lib/libtomcrypt/src/hashes/rmd160.c
/optee_os/core/lib/libtomcrypt/src/hashes/rmd256.c
/optee_os/core/lib/libtomcrypt/src/hashes/rmd320.c
/optee_os/core/lib/libtomcrypt/src/hashes/sha1.c
/optee_os/core/lib/libtomcrypt/src/hashes/sha1_armv8a_ce.c
/optee_os/core/lib/libtomcrypt/src/hashes/sha2/sha224.c
/optee_os/core/lib/libtomcrypt/src/hashes/sha2/sha256.c
/optee_os/core/lib/libtomcrypt/src/hashes/sha2/sha256_armv8a_ce.c
/optee_os/core/lib/libtomcrypt/src/hashes/sha2/sha384.c
/optee_os/core/lib/libtomcrypt/src/hashes/sha2/sha512.c
/optee_os/core/lib/libtomcrypt/src/hashes/sha2/sha512_224.c
/optee_os/core/lib/libtomcrypt/src/hashes/sha2/sha512_256.c
/optee_os/core/lib/libtomcrypt/src/hashes/sha3.c
/optee_os/core/lib/libtomcrypt/src/hashes/sha3_test.c
/optee_os/core/lib/libtomcrypt/src/hashes/tiger.c
/optee_os/core/lib/libtomcrypt/src/hashes/whirl/whirl.c
/optee_os/core/lib/libtomcrypt/src/hashes/whirl/whirltab.c
/optee_os/core/lib/libtomcrypt/src/headers/tomcrypt.h
/optee_os/core/lib/libtomcrypt/src/headers/tomcrypt_argchk.h
/optee_os/core/lib/libtomcrypt/src/headers/tomcrypt_arm_neon.h
/optee_os/core/lib/libtomcrypt/src/headers/tomcrypt_cfg.h
/optee_os/core/lib/libtomcrypt/src/headers/tomcrypt_cipher.h
/optee_os/core/lib/libtomcrypt/src/headers/tomcrypt_custom.h
/optee_os/core/lib/libtomcrypt/src/headers/tomcrypt_hash.h
/optee_os/core/lib/libtomcrypt/src/headers/tomcrypt_mac.h
/optee_os/core/lib/libtomcrypt/src/headers/tomcrypt_macros.h
/optee_os/core/lib/libtomcrypt/src/headers/tomcrypt_math.h
/optee_os/core/lib/libtomcrypt/src/headers/tomcrypt_misc.h
/optee_os/core/lib/libtomcrypt/src/headers/tomcrypt_pk.h
/optee_os/core/lib/libtomcrypt/src/headers/tomcrypt_pkcs.h
/optee_os/core/lib/libtomcrypt/src/headers/tomcrypt_private.h
/optee_os/core/lib/libtomcrypt/src/headers/tomcrypt_prng.h
/optee_os/core/lib/libtomcrypt/src/mac/blake2/blake2bmac.c
/optee_os/core/lib/libtomcrypt/src/mac/blake2/blake2bmac_file.c
/optee_os/core/lib/libtomcrypt/src/mac/blake2/blake2bmac_memory.c
/optee_os/core/lib/libtomcrypt/src/mac/blake2/blake2bmac_memory_multi.c
/optee_os/core/lib/libtomcrypt/src/mac/blake2/blake2bmac_test.c
/optee_os/core/lib/libtomcrypt/src/mac/blake2/blake2smac.c
/optee_os/core/lib/libtomcrypt/src/mac/blake2/blake2smac_file.c
/optee_os/core/lib/libtomcrypt/src/mac/blake2/blake2smac_memory.c
/optee_os/core/lib/libtomcrypt/src/mac/blake2/blake2smac_memory_multi.c
/optee_os/core/lib/libtomcrypt/src/mac/blake2/blake2smac_test.c
/optee_os/core/lib/libtomcrypt/src/mac/f9/f9_done.c
/optee_os/core/lib/libtomcrypt/src/mac/f9/f9_file.c
/optee_os/core/lib/libtomcrypt/src/mac/f9/f9_init.c
/optee_os/core/lib/libtomcrypt/src/mac/f9/f9_memory.c
/optee_os/core/lib/libtomcrypt/src/mac/f9/f9_memory_multi.c
/optee_os/core/lib/libtomcrypt/src/mac/f9/f9_process.c
/optee_os/core/lib/libtomcrypt/src/mac/f9/f9_test.c
/optee_os/core/lib/libtomcrypt/src/mac/hmac/hmac_done.c
/optee_os/core/lib/libtomcrypt/src/mac/hmac/hmac_file.c
/optee_os/core/lib/libtomcrypt/src/mac/hmac/hmac_init.c
/optee_os/core/lib/libtomcrypt/src/mac/hmac/hmac_memory.c
/optee_os/core/lib/libtomcrypt/src/mac/hmac/hmac_memory_multi.c
/optee_os/core/lib/libtomcrypt/src/mac/hmac/hmac_process.c
/optee_os/core/lib/libtomcrypt/src/mac/hmac/hmac_test.c
/optee_os/core/lib/libtomcrypt/src/mac/hmac/sub.mk
/optee_os/core/lib/libtomcrypt/src/mac/omac/omac_done.c
/optee_os/core/lib/libtomcrypt/src/mac/omac/omac_file.c
/optee_os/core/lib/libtomcrypt/src/mac/omac/omac_init.c
/optee_os/core/lib/libtomcrypt/src/mac/omac/omac_memory.c
/optee_os/core/lib/libtomcrypt/src/mac/omac/omac_memory_multi.c
/optee_os/core/lib/libtomcrypt/src/mac/omac/omac_process.c
/optee_os/core/lib/libtomcrypt/src/mac/omac/omac_test.c
/optee_os/core/lib/libtomcrypt/src/mac/omac/sub.mk
/optee_os/core/lib/libtomcrypt/src/mac/pelican/pelican.c
/optee_os/core/lib/libtomcrypt/src/mac/pelican/pelican_memory.c
/optee_os/core/lib/libtomcrypt/src/mac/pelican/pelican_test.c
/optee_os/core/lib/libtomcrypt/src/mac/pmac/pmac_done.c
/optee_os/core/lib/libtomcrypt/src/mac/pmac/pmac_file.c
/optee_os/core/lib/libtomcrypt/src/mac/pmac/pmac_init.c
/optee_os/core/lib/libtomcrypt/src/mac/pmac/pmac_memory.c
/optee_os/core/lib/libtomcrypt/src/mac/pmac/pmac_memory_multi.c
/optee_os/core/lib/libtomcrypt/src/mac/pmac/pmac_ntz.c
/optee_os/core/lib/libtomcrypt/src/mac/pmac/pmac_process.c
/optee_os/core/lib/libtomcrypt/src/mac/pmac/pmac_shift_xor.c
/optee_os/core/lib/libtomcrypt/src/mac/pmac/pmac_test.c
/optee_os/core/lib/libtomcrypt/src/mac/poly1305/poly1305.c
/optee_os/core/lib/libtomcrypt/src/mac/poly1305/poly1305_file.c
/optee_os/core/lib/libtomcrypt/src/mac/poly1305/poly1305_memory.c
/optee_os/core/lib/libtomcrypt/src/mac/poly1305/poly1305_memory_multi.c
/optee_os/core/lib/libtomcrypt/src/mac/poly1305/poly1305_test.c
/optee_os/core/lib/libtomcrypt/src/mac/xcbc/xcbc_done.c
/optee_os/core/lib/libtomcrypt/src/mac/xcbc/xcbc_file.c
/optee_os/core/lib/libtomcrypt/src/mac/xcbc/xcbc_init.c
/optee_os/core/lib/libtomcrypt/src/mac/xcbc/xcbc_memory.c
/optee_os/core/lib/libtomcrypt/src/mac/xcbc/xcbc_memory_multi.c
/optee_os/core/lib/libtomcrypt/src/mac/xcbc/xcbc_process.c
/optee_os/core/lib/libtomcrypt/src/mac/xcbc/xcbc_test.c
/optee_os/core/lib/libtomcrypt/src/math/fp/ltc_ecc_fp_mulmod.c
/optee_os/core/lib/libtomcrypt/src/math/gmp_desc.c
/optee_os/core/lib/libtomcrypt/src/math/ltm_desc.c
/optee_os/core/lib/libtomcrypt/src/math/multi.c
/optee_os/core/lib/libtomcrypt/src/math/radix_to_bin.c
/optee_os/core/lib/libtomcrypt/src/math/rand_bn.c
/optee_os/core/lib/libtomcrypt/src/math/rand_prime.c
/optee_os/core/lib/libtomcrypt/src/math/tfm_desc.c
/optee_os/core/lib/libtomcrypt/src/misc/adler32.c
/optee_os/core/lib/libtomcrypt/src/misc/base16/base16_decode.c
/optee_os/core/lib/libtomcrypt/src/misc/base16/base16_encode.c
/optee_os/core/lib/libtomcrypt/src/misc/base32/base32_decode.c
/optee_os/core/lib/libtomcrypt/src/misc/base32/base32_encode.c
/optee_os/core/lib/libtomcrypt/src/misc/base64/base64_decode.c
/optee_os/core/lib/libtomcrypt/src/misc/base64/base64_encode.c
/optee_os/core/lib/libtomcrypt/src/misc/burn_stack.c
/optee_os/core/lib/libtomcrypt/src/misc/compare_testvector.c
/optee_os/core/lib/libtomcrypt/src/misc/copy_or_zeromem.c
/optee_os/core/lib/libtomcrypt/src/misc/crc32.c
/optee_os/core/lib/libtomcrypt/src/misc/crypt/crypt.c
/optee_os/core/lib/libtomcrypt/src/misc/crypt/crypt_argchk.c
/optee_os/core/lib/libtomcrypt/src/misc/crypt/crypt_cipher_descriptor.c
/optee_os/core/lib/libtomcrypt/src/misc/crypt/crypt_cipher_is_valid.c
/optee_os/core/lib/libtomcrypt/src/misc/crypt/crypt_constants.c
/optee_os/core/lib/libtomcrypt/src/misc/crypt/crypt_find_cipher.c
/optee_os/core/lib/libtomcrypt/src/misc/crypt/crypt_find_cipher_any.c
/optee_os/core/lib/libtomcrypt/src/misc/crypt/crypt_find_cipher_id.c
/optee_os/core/lib/libtomcrypt/src/misc/crypt/crypt_find_hash.c
/optee_os/core/lib/libtomcrypt/src/misc/crypt/crypt_find_hash_any.c
/optee_os/core/lib/libtomcrypt/src/misc/crypt/crypt_find_hash_id.c
/optee_os/core/lib/libtomcrypt/src/misc/crypt/crypt_find_hash_oid.c
/optee_os/core/lib/libtomcrypt/src/misc/crypt/crypt_find_prng.c
/optee_os/core/lib/libtomcrypt/src/misc/crypt/crypt_fsa.c
/optee_os/core/lib/libtomcrypt/src/misc/crypt/crypt_hash_descriptor.c
/optee_os/core/lib/libtomcrypt/src/misc/crypt/crypt_hash_is_valid.c
/optee_os/core/lib/libtomcrypt/src/misc/crypt/crypt_inits.c
/optee_os/core/lib/libtomcrypt/src/misc/crypt/crypt_ltc_mp_descriptor.c
/optee_os/core/lib/libtomcrypt/src/misc/crypt/crypt_prng_descriptor.c
/optee_os/core/lib/libtomcrypt/src/misc/crypt/crypt_prng_is_valid.c
/optee_os/core/lib/libtomcrypt/src/misc/crypt/crypt_prng_rng_descriptor.c
/optee_os/core/lib/libtomcrypt/src/misc/crypt/crypt_register_all_ciphers.c
/optee_os/core/lib/libtomcrypt/src/misc/crypt/crypt_register_all_hashes.c
/optee_os/core/lib/libtomcrypt/src/misc/crypt/crypt_register_all_prngs.c
/optee_os/core/lib/libtomcrypt/src/misc/crypt/crypt_register_cipher.c
/optee_os/core/lib/libtomcrypt/src/misc/crypt/crypt_register_hash.c
/optee_os/core/lib/libtomcrypt/src/misc/crypt/crypt_register_prng.c
/optee_os/core/lib/libtomcrypt/src/misc/crypt/crypt_sizes.c
/optee_os/core/lib/libtomcrypt/src/misc/crypt/crypt_unregister_cipher.c
/optee_os/core/lib/libtomcrypt/src/misc/crypt/crypt_unregister_hash.c
/optee_os/core/lib/libtomcrypt/src/misc/crypt/crypt_unregister_prng.c
/optee_os/core/lib/libtomcrypt/src/misc/error_to_string.c
/optee_os/core/lib/libtomcrypt/src/misc/hkdf/hkdf.c
/optee_os/core/lib/libtomcrypt/src/misc/hkdf/hkdf_test.c
/optee_os/core/lib/libtomcrypt/src/misc/mem_neq.c
/optee_os/core/lib/libtomcrypt/src/misc/padding/padding_depad.c
/optee_os/core/lib/libtomcrypt/src/misc/padding/padding_pad.c
/optee_os/core/lib/libtomcrypt/src/misc/pbes/pbes.c
/optee_os/core/lib/libtomcrypt/src/misc/pbes/pbes1.c
/optee_os/core/lib/libtomcrypt/src/misc/pbes/pbes2.c
/optee_os/core/lib/libtomcrypt/src/misc/pkcs12/pkcs12_kdf.c
/optee_os/core/lib/libtomcrypt/src/misc/pkcs12/pkcs12_utf8_to_utf16.c
/optee_os/core/lib/libtomcrypt/src/misc/pkcs5/pkcs_5_1.c
/optee_os/core/lib/libtomcrypt/src/misc/pkcs5/pkcs_5_2.c
/optee_os/core/lib/libtomcrypt/src/misc/pkcs5/pkcs_5_test.c
/optee_os/core/lib/libtomcrypt/src/misc/ssh/ssh_decode_sequence_multi.c
/optee_os/core/lib/libtomcrypt/src/misc/ssh/ssh_encode_sequence_multi.c
/optee_os/core/lib/libtomcrypt/src/misc/ssh/sub.mk
/optee_os/core/lib/libtomcrypt/src/misc/sub.mk
/optee_os/core/lib/libtomcrypt/src/misc/zeromem.c
/optee_os/core/lib/libtomcrypt/src/modes/cbc/cbc_decrypt.c
/optee_os/core/lib/libtomcrypt/src/modes/cbc/cbc_done.c
/optee_os/core/lib/libtomcrypt/src/modes/cbc/cbc_encrypt.c
/optee_os/core/lib/libtomcrypt/src/modes/cbc/cbc_getiv.c
/optee_os/core/lib/libtomcrypt/src/modes/cbc/cbc_setiv.c
/optee_os/core/lib/libtomcrypt/src/modes/cbc/cbc_start.c
/optee_os/core/lib/libtomcrypt/src/modes/cfb/cfb_decrypt.c
/optee_os/core/lib/libtomcrypt/src/modes/cfb/cfb_done.c
/optee_os/core/lib/libtomcrypt/src/modes/cfb/cfb_encrypt.c
/optee_os/core/lib/libtomcrypt/src/modes/cfb/cfb_getiv.c
/optee_os/core/lib/libtomcrypt/src/modes/cfb/cfb_setiv.c
/optee_os/core/lib/libtomcrypt/src/modes/cfb/cfb_start.c
/optee_os/core/lib/libtomcrypt/src/modes/ctr/ctr_decrypt.c
/optee_os/core/lib/libtomcrypt/src/modes/ctr/ctr_done.c
/optee_os/core/lib/libtomcrypt/src/modes/ctr/ctr_encrypt.c
/optee_os/core/lib/libtomcrypt/src/modes/ctr/ctr_getiv.c
/optee_os/core/lib/libtomcrypt/src/modes/ctr/ctr_setiv.c
/optee_os/core/lib/libtomcrypt/src/modes/ctr/ctr_start.c
/optee_os/core/lib/libtomcrypt/src/modes/ctr/ctr_test.c
/optee_os/core/lib/libtomcrypt/src/modes/ctr/sub.mk
/optee_os/core/lib/libtomcrypt/src/modes/ecb/ecb_decrypt.c
/optee_os/core/lib/libtomcrypt/src/modes/ecb/ecb_done.c
/optee_os/core/lib/libtomcrypt/src/modes/ecb/ecb_encrypt.c
/optee_os/core/lib/libtomcrypt/src/modes/ecb/ecb_start.c
/optee_os/core/lib/libtomcrypt/src/modes/f8/f8_decrypt.c
/optee_os/core/lib/libtomcrypt/src/modes/f8/f8_done.c
/optee_os/core/lib/libtomcrypt/src/modes/f8/f8_encrypt.c
/optee_os/core/lib/libtomcrypt/src/modes/f8/f8_getiv.c
/optee_os/core/lib/libtomcrypt/src/modes/f8/f8_setiv.c
/optee_os/core/lib/libtomcrypt/src/modes/f8/f8_start.c
/optee_os/core/lib/libtomcrypt/src/modes/f8/f8_test_mode.c
/optee_os/core/lib/libtomcrypt/src/modes/lrw/lrw_decrypt.c
/optee_os/core/lib/libtomcrypt/src/modes/lrw/lrw_done.c
/optee_os/core/lib/libtomcrypt/src/modes/lrw/lrw_encrypt.c
/optee_os/core/lib/libtomcrypt/src/modes/lrw/lrw_getiv.c
/optee_os/core/lib/libtomcrypt/src/modes/lrw/lrw_process.c
/optee_os/core/lib/libtomcrypt/src/modes/lrw/lrw_setiv.c
/optee_os/core/lib/libtomcrypt/src/modes/lrw/lrw_start.c
/optee_os/core/lib/libtomcrypt/src/modes/lrw/lrw_test.c
/optee_os/core/lib/libtomcrypt/src/modes/lrw/sub.mk
/optee_os/core/lib/libtomcrypt/src/modes/ofb/ofb_decrypt.c
/optee_os/core/lib/libtomcrypt/src/modes/ofb/ofb_done.c
/optee_os/core/lib/libtomcrypt/src/modes/ofb/ofb_encrypt.c
/optee_os/core/lib/libtomcrypt/src/modes/ofb/ofb_getiv.c
/optee_os/core/lib/libtomcrypt/src/modes/ofb/ofb_setiv.c
/optee_os/core/lib/libtomcrypt/src/modes/ofb/ofb_start.c
/optee_os/core/lib/libtomcrypt/src/modes/xts/sub.mk
/optee_os/core/lib/libtomcrypt/src/modes/xts/xts_decrypt.c
/optee_os/core/lib/libtomcrypt/src/modes/xts/xts_done.c
/optee_os/core/lib/libtomcrypt/src/modes/xts/xts_encrypt.c
/optee_os/core/lib/libtomcrypt/src/modes/xts/xts_init.c
/optee_os/core/lib/libtomcrypt/src/modes/xts/xts_mult_x.c
/optee_os/core/lib/libtomcrypt/src/modes/xts/xts_test.c
/optee_os/core/lib/libtomcrypt/src/pk/asn1/der/bit/der_decode_bit_string.c
/optee_os/core/lib/libtomcrypt/src/pk/asn1/der/bit/der_decode_raw_bit_string.c
/optee_os/core/lib/libtomcrypt/src/pk/asn1/der/bit/der_encode_bit_string.c
/optee_os/core/lib/libtomcrypt/src/pk/asn1/der/bit/der_encode_raw_bit_string.c
/optee_os/core/lib/libtomcrypt/src/pk/asn1/der/bit/der_length_bit_string.c
/optee_os/core/lib/libtomcrypt/src/pk/asn1/der/boolean/der_decode_boolean.c
/optee_os/core/lib/libtomcrypt/src/pk/asn1/der/boolean/der_encode_boolean.c
/optee_os/core/lib/libtomcrypt/src/pk/asn1/der/boolean/der_length_boolean.c
/optee_os/core/lib/libtomcrypt/src/pk/asn1/der/choice/der_decode_choice.c
/optee_os/core/lib/libtomcrypt/src/pk/asn1/der/custom_type/der_decode_custom_type.c
/optee_os/core/lib/libtomcrypt/src/pk/asn1/der/custom_type/der_encode_custom_type.c
/optee_os/core/lib/libtomcrypt/src/pk/asn1/der/custom_type/der_length_custom_type.c
/optee_os/core/lib/libtomcrypt/src/pk/asn1/der/custom_type/sub.mk
/optee_os/core/lib/libtomcrypt/src/pk/asn1/der/general/der_asn1_maps.c
/optee_os/core/lib/libtomcrypt/src/pk/asn1/der/general/der_decode_asn1_identifier.c
/optee_os/core/lib/libtomcrypt/src/pk/asn1/der/general/der_decode_asn1_length.c
/optee_os/core/lib/libtomcrypt/src/pk/asn1/der/general/der_encode_asn1_identifier.c
/optee_os/core/lib/libtomcrypt/src/pk/asn1/der/general/der_encode_asn1_length.c
/optee_os/core/lib/libtomcrypt/src/pk/asn1/der/general/der_length_asn1_identifier.c
/optee_os/core/lib/libtomcrypt/src/pk/asn1/der/general/der_length_asn1_length.c
/optee_os/core/lib/libtomcrypt/src/pk/asn1/der/general/sub.mk
/optee_os/core/lib/libtomcrypt/src/pk/asn1/der/generalizedtime/der_decode_generalizedtime.c
/optee_os/core/lib/libtomcrypt/src/pk/asn1/der/generalizedtime/der_encode_generalizedtime.c
/optee_os/core/lib/libtomcrypt/src/pk/asn1/der/generalizedtime/der_length_generalizedtime.c
/optee_os/core/lib/libtomcrypt/src/pk/asn1/der/generalizedtime/sub.mk
/optee_os/core/lib/libtomcrypt/src/pk/asn1/der/ia5/der_decode_ia5_string.c
/optee_os/core/lib/libtomcrypt/src/pk/asn1/der/ia5/der_encode_ia5_string.c
/optee_os/core/lib/libtomcrypt/src/pk/asn1/der/ia5/der_length_ia5_string.c
/optee_os/core/lib/libtomcrypt/src/pk/asn1/der/integer/der_decode_integer.c
/optee_os/core/lib/libtomcrypt/src/pk/asn1/der/integer/der_encode_integer.c
/optee_os/core/lib/libtomcrypt/src/pk/asn1/der/integer/der_length_integer.c
/optee_os/core/lib/libtomcrypt/src/pk/asn1/der/object_identifier/der_decode_object_identifier.c
/optee_os/core/lib/libtomcrypt/src/pk/asn1/der/object_identifier/der_encode_object_identifier.c
/optee_os/core/lib/libtomcrypt/src/pk/asn1/der/object_identifier/der_length_object_identifier.c
/optee_os/core/lib/libtomcrypt/src/pk/asn1/der/octet/der_decode_octet_string.c
/optee_os/core/lib/libtomcrypt/src/pk/asn1/der/octet/der_encode_octet_string.c
/optee_os/core/lib/libtomcrypt/src/pk/asn1/der/octet/der_length_octet_string.c
/optee_os/core/lib/libtomcrypt/src/pk/asn1/der/printable_string/der_decode_printable_string.c
/optee_os/core/lib/libtomcrypt/src/pk/asn1/der/printable_string/der_encode_printable_string.c
/optee_os/core/lib/libtomcrypt/src/pk/asn1/der/printable_string/der_length_printable_string.c
/optee_os/core/lib/libtomcrypt/src/pk/asn1/der/sequence/der_decode_sequence_ex.c
/optee_os/core/lib/libtomcrypt/src/pk/asn1/der/sequence/der_decode_sequence_flexi.c
/optee_os/core/lib/libtomcrypt/src/pk/asn1/der/sequence/der_decode_sequence_multi.c
/optee_os/core/lib/libtomcrypt/src/pk/asn1/der/sequence/der_encode_sequence_ex.c
/optee_os/core/lib/libtomcrypt/src/pk/asn1/der/sequence/der_encode_sequence_multi.c
/optee_os/core/lib/libtomcrypt/src/pk/asn1/der/sequence/der_length_sequence.c
/optee_os/core/lib/libtomcrypt/src/pk/asn1/der/sequence/der_sequence_free.c
/optee_os/core/lib/libtomcrypt/src/pk/asn1/der/sequence/der_sequence_shrink.c
/optee_os/core/lib/libtomcrypt/src/pk/asn1/der/sequence/sub.mk
/optee_os/core/lib/libtomcrypt/src/pk/asn1/der/set/der_encode_set.c
/optee_os/core/lib/libtomcrypt/src/pk/asn1/der/set/der_encode_setof.c
/optee_os/core/lib/libtomcrypt/src/pk/asn1/der/short_integer/der_decode_short_integer.c
/optee_os/core/lib/libtomcrypt/src/pk/asn1/der/short_integer/der_encode_short_integer.c
/optee_os/core/lib/libtomcrypt/src/pk/asn1/der/short_integer/der_length_short_integer.c
/optee_os/core/lib/libtomcrypt/src/pk/asn1/der/sub.mk
/optee_os/core/lib/libtomcrypt/src/pk/asn1/der/teletex_string/der_decode_teletex_string.c
/optee_os/core/lib/libtomcrypt/src/pk/asn1/der/teletex_string/der_length_teletex_string.c
/optee_os/core/lib/libtomcrypt/src/pk/asn1/der/utctime/der_decode_utctime.c
/optee_os/core/lib/libtomcrypt/src/pk/asn1/der/utctime/der_encode_utctime.c
/optee_os/core/lib/libtomcrypt/src/pk/asn1/der/utctime/der_length_utctime.c
/optee_os/core/lib/libtomcrypt/src/pk/asn1/der/utf8/der_decode_utf8_string.c
/optee_os/core/lib/libtomcrypt/src/pk/asn1/der/utf8/der_encode_utf8_string.c
/optee_os/core/lib/libtomcrypt/src/pk/asn1/der/utf8/der_length_utf8_string.c
/optee_os/core/lib/libtomcrypt/src/pk/asn1/oid/pk_get_oid.c
/optee_os/core/lib/libtomcrypt/src/pk/asn1/oid/pk_oid_cmp.c
/optee_os/core/lib/libtomcrypt/src/pk/asn1/oid/pk_oid_str.c
/optee_os/core/lib/libtomcrypt/src/pk/asn1/oid/sub.mk
/optee_os/core/lib/libtomcrypt/src/pk/asn1/pkcs8/pkcs8_decode_flexi.c
/optee_os/core/lib/libtomcrypt/src/pk/asn1/sub.mk
/optee_os/core/lib/libtomcrypt/src/pk/asn1/x509/x509_decode_public_key_from_certificate.c
/optee_os/core/lib/libtomcrypt/src/pk/asn1/x509/x509_decode_subject_public_key_info.c
/optee_os/core/lib/libtomcrypt/src/pk/asn1/x509/x509_encode_subject_public_key_info.c
/optee_os/core/lib/libtomcrypt/src/pk/dh/dh.c
/optee_os/core/lib/libtomcrypt/src/pk/dh/dh_check_pubkey.c
/optee_os/core/lib/libtomcrypt/src/pk/dh/dh_export.c
/optee_os/core/lib/libtomcrypt/src/pk/dh/dh_export_key.c
/optee_os/core/lib/libtomcrypt/src/pk/dh/dh_free.c
/optee_os/core/lib/libtomcrypt/src/pk/dh/dh_generate_key.c
/optee_os/core/lib/libtomcrypt/src/pk/dh/dh_import.c
/optee_os/core/lib/libtomcrypt/src/pk/dh/dh_make_key.c
/optee_os/core/lib/libtomcrypt/src/pk/dh/dh_set.c
/optee_os/core/lib/libtomcrypt/src/pk/dh/dh_set_pg_dhparam.c
/optee_os/core/lib/libtomcrypt/src/pk/dh/dh_shared_secret.c
/optee_os/core/lib/libtomcrypt/src/pk/dh/sub.mk
/optee_os/core/lib/libtomcrypt/src/pk/dsa/dsa_decrypt_key.c
/optee_os/core/lib/libtomcrypt/src/pk/dsa/dsa_encrypt_key.c
/optee_os/core/lib/libtomcrypt/src/pk/dsa/dsa_export.c
/optee_os/core/lib/libtomcrypt/src/pk/dsa/dsa_free.c
/optee_os/core/lib/libtomcrypt/src/pk/dsa/dsa_generate_key.c
/optee_os/core/lib/libtomcrypt/src/pk/dsa/dsa_generate_pqg.c
/optee_os/core/lib/libtomcrypt/src/pk/dsa/dsa_import.c
/optee_os/core/lib/libtomcrypt/src/pk/dsa/dsa_make_key.c
/optee_os/core/lib/libtomcrypt/src/pk/dsa/dsa_set.c
/optee_os/core/lib/libtomcrypt/src/pk/dsa/dsa_set_pqg_dsaparam.c
/optee_os/core/lib/libtomcrypt/src/pk/dsa/dsa_shared_secret.c
/optee_os/core/lib/libtomcrypt/src/pk/dsa/dsa_sign_hash.c
/optee_os/core/lib/libtomcrypt/src/pk/dsa/dsa_verify_hash.c
/optee_os/core/lib/libtomcrypt/src/pk/dsa/dsa_verify_key.c
/optee_os/core/lib/libtomcrypt/src/pk/dsa/sub.mk
/optee_os/core/lib/libtomcrypt/src/pk/ec25519/ec25519_export.c
/optee_os/core/lib/libtomcrypt/src/pk/ec25519/ec25519_import_pkcs8.c
/optee_os/core/lib/libtomcrypt/src/pk/ec25519/tweetnacl.c
/optee_os/core/lib/libtomcrypt/src/pk/ecc/ecc.c
/optee_os/core/lib/libtomcrypt/src/pk/ecc/ecc_ansi_x963_export.c
/optee_os/core/lib/libtomcrypt/src/pk/ecc/ecc_ansi_x963_import.c
/optee_os/core/lib/libtomcrypt/src/pk/ecc/ecc_decrypt_key.c
/optee_os/core/lib/libtomcrypt/src/pk/ecc/ecc_encrypt_key.c
/optee_os/core/lib/libtomcrypt/src/pk/ecc/ecc_export.c
/optee_os/core/lib/libtomcrypt/src/pk/ecc/ecc_export_openssl.c
/optee_os/core/lib/libtomcrypt/src/pk/ecc/ecc_find_curve.c
/optee_os/core/lib/libtomcrypt/src/pk/ecc/ecc_free.c
/optee_os/core/lib/libtomcrypt/src/pk/ecc/ecc_get_key.c
/optee_os/core/lib/libtomcrypt/src/pk/ecc/ecc_get_oid_str.c
/optee_os/core/lib/libtomcrypt/src/pk/ecc/ecc_get_size.c
/optee_os/core/lib/libtomcrypt/src/pk/ecc/ecc_import.c
/optee_os/core/lib/libtomcrypt/src/pk/ecc/ecc_import_openssl.c
/optee_os/core/lib/libtomcrypt/src/pk/ecc/ecc_import_pkcs8.c
/optee_os/core/lib/libtomcrypt/src/pk/ecc/ecc_import_x509.c
/optee_os/core/lib/libtomcrypt/src/pk/ecc/ecc_make_key.c
/optee_os/core/lib/libtomcrypt/src/pk/ecc/ecc_recover_key.c
/optee_os/core/lib/libtomcrypt/src/pk/ecc/ecc_set_curve.c
/optee_os/core/lib/libtomcrypt/src/pk/ecc/ecc_set_curve_internal.c
/optee_os/core/lib/libtomcrypt/src/pk/ecc/ecc_set_key.c
/optee_os/core/lib/libtomcrypt/src/pk/ecc/ecc_shared_secret.c
/optee_os/core/lib/libtomcrypt/src/pk/ecc/ecc_sign_hash.c
/optee_os/core/lib/libtomcrypt/src/pk/ecc/ecc_sizes.c
/optee_os/core/lib/libtomcrypt/src/pk/ecc/ecc_ssh_ecdsa_encode_name.c
/optee_os/core/lib/libtomcrypt/src/pk/ecc/ecc_verify_hash.c
/optee_os/core/lib/libtomcrypt/src/pk/ecc/ltc_ecc_export_point.c
/optee_os/core/lib/libtomcrypt/src/pk/ecc/ltc_ecc_import_point.c
/optee_os/core/lib/libtomcrypt/src/pk/ecc/ltc_ecc_is_point.c
/optee_os/core/lib/libtomcrypt/src/pk/ecc/ltc_ecc_is_point_at_infinity.c
/optee_os/core/lib/libtomcrypt/src/pk/ecc/ltc_ecc_map.c
/optee_os/core/lib/libtomcrypt/src/pk/ecc/ltc_ecc_mul2add.c
/optee_os/core/lib/libtomcrypt/src/pk/ecc/ltc_ecc_mulmod.c
/optee_os/core/lib/libtomcrypt/src/pk/ecc/ltc_ecc_mulmod_timing.c
/optee_os/core/lib/libtomcrypt/src/pk/ecc/ltc_ecc_points.c
/optee_os/core/lib/libtomcrypt/src/pk/ecc/ltc_ecc_projective_add_point.c
/optee_os/core/lib/libtomcrypt/src/pk/ecc/ltc_ecc_projective_dbl_point.c
/optee_os/core/lib/libtomcrypt/src/pk/ecc/ltc_ecc_verify_key.c
/optee_os/core/lib/libtomcrypt/src/pk/ecc/sub.mk
/optee_os/core/lib/libtomcrypt/src/pk/ed25519/ed25519_export.c
/optee_os/core/lib/libtomcrypt/src/pk/ed25519/ed25519_import.c
/optee_os/core/lib/libtomcrypt/src/pk/ed25519/ed25519_import_pkcs8.c
/optee_os/core/lib/libtomcrypt/src/pk/ed25519/ed25519_import_x509.c
/optee_os/core/lib/libtomcrypt/src/pk/ed25519/ed25519_make_key.c
/optee_os/core/lib/libtomcrypt/src/pk/ed25519/ed25519_set_key.c
/optee_os/core/lib/libtomcrypt/src/pk/ed25519/ed25519_sign.c
/optee_os/core/lib/libtomcrypt/src/pk/ed25519/ed25519_verify.c
/optee_os/core/lib/libtomcrypt/src/pk/pkcs1/pkcs_1_i2osp.c
/optee_os/core/lib/libtomcrypt/src/pk/pkcs1/pkcs_1_mgf1.c
/optee_os/core/lib/libtomcrypt/src/pk/pkcs1/pkcs_1_oaep_decode.c
/optee_os/core/lib/libtomcrypt/src/pk/pkcs1/pkcs_1_oaep_encode.c
/optee_os/core/lib/libtomcrypt/src/pk/pkcs1/pkcs_1_os2ip.c
/optee_os/core/lib/libtomcrypt/src/pk/pkcs1/pkcs_1_pss_decode.c
/optee_os/core/lib/libtomcrypt/src/pk/pkcs1/pkcs_1_pss_encode.c
/optee_os/core/lib/libtomcrypt/src/pk/pkcs1/pkcs_1_v1_5_decode.c
/optee_os/core/lib/libtomcrypt/src/pk/pkcs1/pkcs_1_v1_5_encode.c
/optee_os/core/lib/libtomcrypt/src/pk/rsa/rsa_decrypt_key.c
/optee_os/core/lib/libtomcrypt/src/pk/rsa/rsa_encrypt_key.c
/optee_os/core/lib/libtomcrypt/src/pk/rsa/rsa_export.c
/optee_os/core/lib/libtomcrypt/src/pk/rsa/rsa_exptmod.c
/optee_os/core/lib/libtomcrypt/src/pk/rsa/rsa_free.c
/optee_os/core/lib/libtomcrypt/src/pk/rsa/rsa_get_size.c
/optee_os/core/lib/libtomcrypt/src/pk/rsa/rsa_import.c
/optee_os/core/lib/libtomcrypt/src/pk/rsa/rsa_import_pkcs8.c
/optee_os/core/lib/libtomcrypt/src/pk/rsa/rsa_import_x509.c
/optee_os/core/lib/libtomcrypt/src/pk/rsa/rsa_make_key.c
/optee_os/core/lib/libtomcrypt/src/pk/rsa/rsa_set.c
/optee_os/core/lib/libtomcrypt/src/pk/rsa/rsa_sign_hash.c
/optee_os/core/lib/libtomcrypt/src/pk/rsa/rsa_sign_saltlen_get.c
/optee_os/core/lib/libtomcrypt/src/pk/rsa/rsa_verify_hash.c
/optee_os/core/lib/libtomcrypt/src/pk/x25519/x25519_export.c
/optee_os/core/lib/libtomcrypt/src/pk/x25519/x25519_import.c
/optee_os/core/lib/libtomcrypt/src/pk/x25519/x25519_import_pkcs8.c
/optee_os/core/lib/libtomcrypt/src/pk/x25519/x25519_import_x509.c
/optee_os/core/lib/libtomcrypt/src/pk/x25519/x25519_make_key.c
/optee_os/core/lib/libtomcrypt/src/pk/x25519/x25519_set_key.c
/optee_os/core/lib/libtomcrypt/src/pk/x25519/x25519_shared_secret.c
/optee_os/core/lib/libtomcrypt/src/prngs/chacha20.c
/optee_os/core/lib/libtomcrypt/src/prngs/fortuna.c
/optee_os/core/lib/libtomcrypt/src/prngs/rc4.c
/optee_os/core/lib/libtomcrypt/src/prngs/rng_get_bytes.c
/optee_os/core/lib/libtomcrypt/src/prngs/rng_make_prng.c
/optee_os/core/lib/libtomcrypt/src/prngs/sober128.c
/optee_os/core/lib/libtomcrypt/src/prngs/sprng.c
/optee_os/core/lib/libtomcrypt/src/prngs/yarrow.c
/optee_os/core/lib/libtomcrypt/src/stream/chacha/chacha_crypt.c
/optee_os/core/lib/libtomcrypt/src/stream/chacha/chacha_done.c
/optee_os/core/lib/libtomcrypt/src/stream/chacha/chacha_ivctr32.c
/optee_os/core/lib/libtomcrypt/src/stream/chacha/chacha_ivctr64.c
/optee_os/core/lib/libtomcrypt/src/stream/chacha/chacha_keystream.c
/optee_os/core/lib/libtomcrypt/src/stream/chacha/chacha_memory.c
/optee_os/core/lib/libtomcrypt/src/stream/chacha/chacha_setup.c
/optee_os/core/lib/libtomcrypt/src/stream/chacha/chacha_test.c
/optee_os/core/lib/libtomcrypt/src/stream/rabbit/rabbit.c
/optee_os/core/lib/libtomcrypt/src/stream/rabbit/rabbit_memory.c
/optee_os/core/lib/libtomcrypt/src/stream/rc4/rc4_stream.c
/optee_os/core/lib/libtomcrypt/src/stream/rc4/rc4_stream_memory.c
/optee_os/core/lib/libtomcrypt/src/stream/rc4/rc4_test.c
/optee_os/core/lib/libtomcrypt/src/stream/salsa20/salsa20_crypt.c
/optee_os/core/lib/libtomcrypt/src/stream/salsa20/salsa20_done.c
/optee_os/core/lib/libtomcrypt/src/stream/salsa20/salsa20_ivctr64.c
/optee_os/core/lib/libtomcrypt/src/stream/salsa20/salsa20_keystream.c
/optee_os/core/lib/libtomcrypt/src/stream/salsa20/salsa20_memory.c
/optee_os/core/lib/libtomcrypt/src/stream/salsa20/salsa20_setup.c
/optee_os/core/lib/libtomcrypt/src/stream/salsa20/salsa20_test.c
/optee_os/core/lib/libtomcrypt/src/stream/salsa20/xsalsa20_memory.c
/optee_os/core/lib/libtomcrypt/src/stream/salsa20/xsalsa20_setup.c
/optee_os/core/lib/libtomcrypt/src/stream/salsa20/xsalsa20_test.c
/optee_os/core/lib/libtomcrypt/src/stream/sober128/sober128_stream.c
/optee_os/core/lib/libtomcrypt/src/stream/sober128/sober128_stream_memory.c
/optee_os/core/lib/libtomcrypt/src/stream/sober128/sober128_test.c
/optee_os/core/lib/libtomcrypt/src/stream/sober128/sober128tab.c
/optee_os/core/lib/libtomcrypt/src/stream/sosemanuk/sosemanuk.c
/optee_os/core/lib/libtomcrypt/src/stream/sosemanuk/sosemanuk_memory.c
/optee_os/core/lib/libtomcrypt/src/stream/sosemanuk/sosemanuk_test.c
/optee_os/core/lib/libtomcrypt/sub.mk
/optee_os/core/lib/libtomcrypt/tomcrypt.c
/optee_os/core/lib/libtomcrypt/xts.c
/optee_os/core/pta/benchmark.c
/optee_os/core/pta/device.c
/optee_os/core/pta/gprof.c
/optee_os/core/pta/sdp.c
/optee_os/core/pta/secstor_ta_mgmt.c
/optee_os/core/pta/stats.c
/optee_os/core/pta/sub.mk
/optee_os/core/pta/system.c
/optee_os/core/pta/tests/fs_htree.c
/optee_os/core/pta/tests/interrupt.c
/optee_os/core/pta/tests/invoke.c
/optee_os/core/pta/tests/lockdep.c
/optee_os/core/pta/tests/misc.c
/optee_os/core/pta/tests/misc.h
/optee_os/core/pta/tests/mutex.c
/optee_os/core/pta/tests/sub.mk
/optee_os/core/sub.mk
socket.c
sub.mk
/optee_os/ldelf/dl.c
/optee_os/ldelf/dl.h
/optee_os/ldelf/ftrace.c
/optee_os/ldelf/ftrace.h
/optee_os/ldelf/include/elf_common.h
/optee_os/ldelf/include/ldelf.h
/optee_os/ldelf/ldelf.ld.S
/optee_os/ldelf/ldelf.mk
/optee_os/ldelf/link.mk
/optee_os/ldelf/main.c
/optee_os/ldelf/sub.mk
/optee_os/ldelf/ta_elf.c
/optee_os/ldelf/ta_elf.h
/optee_os/ldelf/ta_elf_rel.c
/optee_os/lib/libdl/dlfcn.c
/optee_os/lib/libdl/include/dlfcn.h
/optee_os/lib/libdl/sub.mk
/optee_os/lib/libmbedtls/core/sub.mk
/optee_os/lib/libutee/arch/arm/arm32_user_sysreg.txt
/optee_os/lib/libutee/arch/arm/ftrace/ftrace.c
/optee_os/lib/libutee/arch/arm/utee_syscalls_a32.S
/optee_os/lib/libutee/arch/arm/utee_syscalls_a64.S
/optee_os/lib/libutee/include/arm64_user_sysreg.h
/optee_os/lib/libutee/include/arm_user_sysreg.h
/optee_os/lib/libutee/include/pta_system.h
/optee_os/lib/libutee/include/tee_internal_api_extensions.h
/optee_os/lib/libutee/include/user_ta_header.h
/optee_os/lib/libutee/sub.mk
/optee_os/lib/libutee/tee_api_objects.c
/optee_os/lib/libutee/tee_uuid_from_str.c
/optee_os/lib/libutils/ext/include/compiler.h
/optee_os/lib/libutils/ext/include/util.h
/optee_os/lib/libutils/isoc/bget_malloc.c
/optee_os/lib/libutils/isoc/include/stdint.h
/optee_os/mk/compile.mk
/optee_os/mk/config.mk
/optee_os/mk/lib.mk
/optee_os/scripts/arm32_sysreg.py
/optee_os/scripts/checkpatch_inc.sh
/optee_os/scripts/get_maintainer.py
/optee_os/scripts/sign.py
/optee_os/ta/arch/arm/link.mk
/optee_os/ta/mk/ta_dev_kit.mk
/optee_os/ta/ta.mk
fcd00cea24-Jun-2019 Victor Chong <victor.chong@linaro.org>

rpmb: fix parsing of op_result

From the eMMC spec, the "Operation result" (Table 19) -- 7 bit quantity
-- is the LSB of "Operation Results data structure" -- 16-bit quantity
-- minus the high order

rpmb: fix parsing of op_result

From the eMMC spec, the "Operation result" (Table 19) -- 7 bit quantity
-- is the LSB of "Operation Results data structure" -- 16-bit quantity
-- minus the high order bit. In other words it is
'rpmb_data_frame::op_result[1] & 0x7F' which is probably what we should
be doing here instead of bytes_to_u16().

Signed-off-by: Victor Chong <victor.chong@linaro.org>
Reviewed-by: Jerome Forissier <jerome.forissier@linaro.org>

show more ...

c3d1e00524-Jun-2019 Victor Chong <victor.chong@linaro.org>

rpmb: Convert comment about error into EMSG

This will give users more details without having to sift through the
code.

Signed-off-by: Victor Chong <victor.chong@linaro.org>
Reviewed-by: Jerome Fori

rpmb: Convert comment about error into EMSG

This will give users more details without having to sift through the
code.

Signed-off-by: Victor Chong <victor.chong@linaro.org>
Reviewed-by: Jerome Forissier <jerome.forissier@linaro.org>

show more ...

c192a4a121-Jun-2019 Victor Chong <victor.chong@linaro.org>

rpmb: verify key: change DMSG to EMSG

Rather than printing all results with DMSG, it's more suitable to
print only errors with EMSG.

Signed-off-by: Victor Chong <victor.chong@linaro.org>
Reviewed-b

rpmb: verify key: change DMSG to EMSG

Rather than printing all results with DMSG, it's more suitable to
print only errors with EMSG.

Signed-off-by: Victor Chong <victor.chong@linaro.org>
Reviewed-by: Jerome Forissier <jerome.forissier@linaro.org>

show more ...

ce92580921-Jun-2019 Victor Chong <victor.chong@linaro.org>

rpmb: print error if derive key fails

Let users know if an RPMB key fails to be generated during RPMB
initializations instead of just exiting the function quietly.

Signed-off-by: Victor Chong <vict

rpmb: print error if derive key fails

Let users know if an RPMB key fails to be generated during RPMB
initializations instead of just exiting the function quietly.

Signed-off-by: Victor Chong <victor.chong@linaro.org>
Reviewed-by: Jerome Forissier <jerome.forissier@linaro.org>

show more ...

e9ae33c421-Jun-2019 Victor Chong <victor.chong@linaro.org>

rpmb: dump key if CFG_RPMB_WRITE_KEY=y

If we want to write key, then we'd want to write it down as well, so
print it for records.

Note that the key is printed with severity TRACE_DEBUG hence a rele

rpmb: dump key if CFG_RPMB_WRITE_KEY=y

If we want to write key, then we'd want to write it down as well, so
print it for records.

Note that the key is printed with severity TRACE_DEBUG hence a release
build will not leak it.

Signed-off-by: Victor Chong <victor.chong@linaro.org>
Reviewed-by: Jerome Forissier <jerome.forissier@linaro.org>

show more ...

c340ba4b14-Jun-2019 Victor Chong <victor.chong@linaro.org>

rpmb: write key only if not yet programmed

An RPMB key should only be written if the device returns
RPMB_RESULT_AUTH_KEY_NOT_PROGRAMMED, not on any RPMB_RESULT* that is
not RPMB_RESULT_OK.

Signed-o

rpmb: write key only if not yet programmed

An RPMB key should only be written if the device returns
RPMB_RESULT_AUTH_KEY_NOT_PROGRAMMED, not on any RPMB_RESULT* that is
not RPMB_RESULT_OK.

Signed-off-by: Victor Chong <victor.chong@linaro.org>
Reviewed-by: Jerome Forissier <jerome.forissier@linaro.org>

show more ...


/optee_os/.shippable.yml
/optee_os/MAINTAINERS
/optee_os/core/arch/arm/include/kernel/user_ta.h
/optee_os/core/arch/arm/include/mm/mobj.h
/optee_os/core/arch/arm/kernel/user_ta.c
/optee_os/core/arch/arm/mm/core_mmu.c
/optee_os/core/arch/arm/mm/mobj.c
/optee_os/core/arch/arm/mm/tee_mmu.c
/optee_os/core/arch/arm/mm/tee_pager.c
/optee_os/core/arch/arm/plat-imx/conf.mk
/optee_os/core/arch/arm/plat-imx/config/imx6qdlsolo.h
/optee_os/core/arch/arm/plat-imx/config/imx6sl.h
/optee_os/core/arch/arm/plat-imx/config/imx6sll.h
/optee_os/core/arch/arm/plat-imx/config/imx6sx.h
/optee_os/core/arch/arm/plat-imx/drivers/imx_caam.c
/optee_os/core/arch/arm/plat-imx/drivers/imx_caam.h
/optee_os/core/arch/arm/plat-imx/drivers/imx_csu.c
/optee_os/core/arch/arm/plat-imx/drivers/imx_scu.c
/optee_os/core/arch/arm/plat-imx/drivers/sub.mk
/optee_os/core/arch/arm/plat-imx/imx-common.c
/optee_os/core/arch/arm/plat-imx/imx-regs.h
/optee_os/core/arch/arm/plat-imx/imx.h
/optee_os/core/arch/arm/plat-imx/imx_src.c
/optee_os/core/arch/arm/plat-imx/main.c
/optee_os/core/arch/arm/plat-imx/platform_config.h
/optee_os/core/arch/arm/plat-imx/registers/imx6.h
/optee_os/core/arch/arm/plat-imx/registers/imx7.h
/optee_os/core/arch/arm/plat-imx/registers/imx8m.h
/optee_os/core/arch/arm/plat-imx/sub.mk
/optee_os/core/arch/arm/plat-ls/conf.mk
/optee_os/core/arch/arm/plat-ls/platform_config.h
/optee_os/core/arch/arm/pta/system.c
/optee_os/core/include/mm/tee_mmu.h
/optee_os/core/include/mm/tee_mmu_types.h
tee_rpmb_fs.c
/optee_os/ldelf/main.c
/optee_os/ldelf/ta_elf.c
/optee_os/ldelf/ta_elf.h
/optee_os/lib/libutils/isoc/arch/arm/arm32_aeabi_divmod.c
/optee_os/scripts/gen_ldelf_hex.py
/optee_os/scripts/sign.py
/optee_os/scripts/ta_bin_to_c.py
/optee_os/ta/arch/arm/link.mk
/optee_os/ta/arch/arm/link_shlib.mk
/optee_os/ta/mk/build-user-ta.mk
/optee_os/ta/ta.mk
667b10f624-Jul-2019 Fangsuo Wu <fangsuowu@asrmicro.com>

tee_ree_fs: create dirfile only when it's not found

Currently there's no check of return value of tee_fs_dirfile_open,
it's reasonable to do this when dir file truely doesn't exist.
However, if tee_

tee_ree_fs: create dirfile only when it's not found

Currently there's no check of return value of tee_fs_dirfile_open,
it's reasonable to do this when dir file truely doesn't exist.
However, if tee_fs_dirfile_open fails with other reason, calling
tee_fs_dirfile_open(true..) will overlap the old dir file, thus
file access in the future will fail.

Signed-off-by: Fangsuo Wu <fangsuowu@asrmicro.com>
Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org>

show more ...


/optee_os/.shippable.yml
/optee_os/CHANGELOG.md
/optee_os/MAINTAINERS
/optee_os/Makefile
/optee_os/core/arch/arm/arm.mk
/optee_os/core/arch/arm/dts/stm32mp157a-dk1.dts
/optee_os/core/arch/arm/dts/stm32mp157c-ed1.dts
/optee_os/core/arch/arm/include/arm.h
/optee_os/core/arch/arm/include/arm32.h
/optee_os/core/arch/arm/include/arm64.h
/optee_os/core/arch/arm/include/kernel/cache_helpers.h
/optee_os/core/arch/arm/include/kernel/tlb_helpers.h
/optee_os/core/arch/arm/include/kernel/unwind.h
/optee_os/core/arch/arm/include/kernel/user_ta.h
/optee_os/core/arch/arm/include/sm/optee_smc.h
/optee_os/core/arch/arm/kernel/abort.c
/optee_os/core/arch/arm/kernel/cache_helpers_a32.S
/optee_os/core/arch/arm/kernel/cache_helpers_a64.S
/optee_os/core/arch/arm/kernel/generic_boot.c
/optee_os/core/arch/arm/kernel/generic_entry_a32.S
/optee_os/core/arch/arm/kernel/generic_entry_a64.S
/optee_os/core/arch/arm/kernel/link.mk
/optee_os/core/arch/arm/kernel/misc_a32.S
/optee_os/core/arch/arm/kernel/misc_a64.S
/optee_os/core/arch/arm/kernel/mutex.c
/optee_os/core/arch/arm/kernel/mutex_lockdep.c
/optee_os/core/arch/arm/kernel/mutex_lockdep.h
/optee_os/core/arch/arm/kernel/sub.mk
/optee_os/core/arch/arm/kernel/thread.c
/optee_os/core/arch/arm/kernel/thread_a32.S
/optee_os/core/arch/arm/kernel/thread_a64.S
/optee_os/core/arch/arm/kernel/tlb_helpers_a32.S
/optee_os/core/arch/arm/kernel/unwind_arm32.c
/optee_os/core/arch/arm/kernel/unwind_arm64.c
/optee_os/core/arch/arm/kernel/user_ta.c
/optee_os/core/arch/arm/kernel/vfp_a64.S
/optee_os/core/arch/arm/mm/core_mmu.c
/optee_os/core/arch/arm/mm/tee_mmu.c
/optee_os/core/arch/arm/mm/tee_pager.c
/optee_os/core/arch/arm/plat-k3/platform_config.h
/optee_os/core/arch/arm/plat-stm32mp1/drivers/stm32mp1_clk.c
/optee_os/core/arch/arm/plat-stm32mp1/main.c
/optee_os/core/arch/arm/plat-stm32mp1/shared_resources.c
/optee_os/core/arch/arm/plat-stm32mp1/stm32_util.h
/optee_os/core/arch/arm/pta/core_lockdep_tests.c
/optee_os/core/arch/arm/pta/sub.mk
/optee_os/core/arch/arm/pta/system.c
/optee_os/core/arch/arm/sm/sm_a32.S
/optee_os/core/arch/arm/tee/arch_svc_a32.S
/optee_os/core/arch/arm/tee/arch_svc_a64.S
/optee_os/core/arch/arm/tee/entry_fast.c
/optee_os/core/core.mk
/optee_os/core/include/console.h
/optee_os/core/include/gen-asm-defines.h
/optee_os/core/include/kernel/lockdep.h
/optee_os/core/include/kernel/tee_ta_manager.h
/optee_os/core/include/mm/file.h
/optee_os/core/include/mm/tee_mmu.h
/optee_os/core/include/mm/tee_mmu_types.h
/optee_os/core/kernel/console.c
/optee_os/core/kernel/lockdep.c
/optee_os/core/kernel/tee_ta_manager.c
/optee_os/core/lib/libtomcrypt/src/math/rand_bn.c
/optee_os/core/lib/libtomcrypt/src/misc/burn_stack.c
/optee_os/core/lib/libtomcrypt/src/misc/zeromem.c
/optee_os/core/lib/libtomcrypt/src/pk/ecc/ecc_sign_hash.c
/optee_os/core/mm/file.c
/optee_os/core/sub.mk
tee_ree_fs.c
/optee_os/ldelf/ftrace.c
/optee_os/ldelf/ftrace.h
/optee_os/ldelf/include/elf32.h
/optee_os/ldelf/include/elf64.h
/optee_os/ldelf/include/elf_common.h
/optee_os/ldelf/include/ldelf.h
/optee_os/ldelf/ldelf.ld.S
/optee_os/ldelf/ldelf.mk
/optee_os/ldelf/link.mk
/optee_os/ldelf/main.c
/optee_os/ldelf/start_a32.S
/optee_os/ldelf/start_a64.S
/optee_os/ldelf/sub.mk
/optee_os/ldelf/sys.c
/optee_os/ldelf/sys.h
/optee_os/ldelf/ta_elf.c
/optee_os/ldelf/ta_elf.h
/optee_os/ldelf/ta_elf_rel.c
/optee_os/ldelf/unwind.h
/optee_os/ldelf/unwind_arm32.c
/optee_os/ldelf/unwind_arm64.c
/optee_os/lib/libutee/arch/arm/sub.mk
/optee_os/lib/libutee/arch/arm/user_ta_entry.c
/optee_os/lib/libutee/arch/arm/utee_mcount_a32.S
/optee_os/lib/libutee/include/pta_system.h
/optee_os/lib/libutee/include/tee_internal_api_extensions.h
/optee_os/lib/libutee/include/user_ta_header.h
/optee_os/lib/libutee/sub.mk
/optee_os/lib/libutee/tee_api.c
/optee_os/lib/libutee/tee_api_private.h
/optee_os/lib/libutee/tee_system_pta.c
/optee_os/lib/libutils/ext/include/asm.S
/optee_os/lib/libutils/ext/include/trace.h
/optee_os/lib/libutils/ext/trace.c
/optee_os/lib/libutils/isoc/arch/arm/setjmp_a32.S
/optee_os/lib/libutils/isoc/arch/arm/sub.mk
/optee_os/lib/libutils/isoc/include/ctype.h
/optee_os/lib/libutils/isoc/include/setjmp.h
/optee_os/lib/libutils/isoc/include/strings.h
/optee_os/lib/libutils/isoc/include/sys/queue.h
/optee_os/lib/libutils/isoc/isalnum.c
/optee_os/lib/libutils/isoc/isalpha.c
/optee_os/lib/libutils/isoc/iscntrl.c
/optee_os/lib/libutils/isoc/isdigit.c
/optee_os/lib/libutils/isoc/isgraph.c
/optee_os/lib/libutils/isoc/islower.c
/optee_os/lib/libutils/isoc/isprint.c
/optee_os/lib/libutils/isoc/ispunct.c
/optee_os/lib/libutils/isoc/isspace.c
/optee_os/lib/libutils/isoc/isupper.c
/optee_os/lib/libutils/isoc/isxdigit.c
/optee_os/lib/libutils/isoc/newlib/bcmp.c
/optee_os/lib/libutils/isoc/newlib/sub.mk
/optee_os/lib/libutils/isoc/tolower.c
/optee_os/lib/libutils/isoc/toupper.c
/optee_os/mk/compile.mk
/optee_os/mk/config.mk
/optee_os/mk/lib.mk
/optee_os/scripts/gen_ldelf_hex.py
/optee_os/scripts/pem_to_pub_c.py
/optee_os/scripts/symbolize.py
/optee_os/ta/arch/arm/ta.ld.S
/optee_os/ta/arch/arm/ta_entry_a32.S
/optee_os/ta/arch/arm/user_ta_header.c
/optee_os/ta/mk/build-user-ta.mk
/optee_os/ta/mk/ta_dev_kit.mk
/optee_os/ta/ta.mk
/optee_os/typedefs.checkpatch
be847add19-Jun-2019 Joakim Bech <joakim.bech@linaro.org>

core: fix enum restart with syscall_storage_start_enum()

According to the GlobalPlatform specification it should be possible to
call TEE_StartPersistentObjectEnumerator(..) on an enumerator that
alr

core: fix enum restart with syscall_storage_start_enum()

According to the GlobalPlatform specification it should be possible to
call TEE_StartPersistentObjectEnumerator(..) on an enumerator that
already has been started. When doing that we trigged an assert and ended
up with a panic. This patch fixes that issue by ensuring that we are
closing the currently open directory before re-opening or opening
another directory in those cases where
TEE_StartPersistentObjectEnumerator(..) are called again and again with
no reset done in-between.

Fixes: https://github.com/OP-TEE/optee_os/issues/3093

Signed-off-by: Joakim Bech <joakim.bech@linaro.org>
Reported-by: Daniel McIlvaney <damcilva@microsoft.com>
Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org>
Reviewed-by: Jerome Forissier <jerome.forissier@linaro.org>
Tested-by: Jerome Forissier <jerome.forissier@linaro.org> (QEMU, GP)

show more ...


/optee_os/.github/issue_template.md
/optee_os/.github/pull_request_template.md
/optee_os/.shippable.yml
/optee_os/MAINTAINERS
/optee_os/core/arch/arm/dts/stm32mp157-pinctrl.dtsi
/optee_os/core/arch/arm/dts/stm32mp157a-dk1.dts
/optee_os/core/arch/arm/dts/stm32mp157c-dk2.dts
/optee_os/core/arch/arm/dts/stm32mp157c-ed1.dts
/optee_os/core/arch/arm/dts/stm32mp157c-ev1.dts
/optee_os/core/arch/arm/dts/stm32mp157c.dtsi
/optee_os/core/arch/arm/include/kernel/abort.h
/optee_os/core/arch/arm/include/kernel/ftrace.h
/optee_os/core/arch/arm/include/kernel/misc.h
/optee_os/core/arch/arm/include/kernel/thread.h
/optee_os/core/arch/arm/include/sm/sm.h
/optee_os/core/arch/arm/kernel/abort.c
/optee_os/core/arch/arm/kernel/early_ta.c
/optee_os/core/arch/arm/kernel/elf_load.h
/optee_os/core/arch/arm/kernel/ftrace.c
/optee_os/core/arch/arm/kernel/generic_boot.c
/optee_os/core/arch/arm/kernel/kern.ld.S
/optee_os/core/arch/arm/kernel/pseudo_ta.c
/optee_os/core/arch/arm/kernel/ree_fs_ta.c
/optee_os/core/arch/arm/kernel/secstor_ta.c
/optee_os/core/arch/arm/kernel/sub.mk
/optee_os/core/arch/arm/kernel/unwind_arm64.c
/optee_os/core/arch/arm/kernel/user_ta.c
/optee_os/core/arch/arm/mm/mobj.c
/optee_os/core/arch/arm/mm/tee_mmu.c
/optee_os/core/arch/arm/mm/tee_pager.c
/optee_os/core/arch/arm/plat-hikey/main.c
/optee_os/core/arch/arm/plat-hikey/platform_config.h
/optee_os/core/arch/arm/plat-imx/conf.mk
/optee_os/core/arch/arm/plat-imx/imx6.c
/optee_os/core/arch/arm/plat-imx/imx6ul.c
/optee_os/core/arch/arm/plat-imx/imx7.c
/optee_os/core/arch/arm/plat-imx/imx_caam.c
/optee_os/core/arch/arm/plat-imx/imx_caam.h
/optee_os/core/arch/arm/plat-imx/sm_platform_handler.c
/optee_os/core/arch/arm/plat-imx/sub.mk
/optee_os/core/arch/arm/plat-stm32mp1/main.c
/optee_os/core/arch/arm/plat-stm32mp1/shared_resources.c
/optee_os/core/arch/arm/plat-ti/sm_platform_handler_a15.c
/optee_os/core/arch/arm/plat-ti/sm_platform_handler_a9.c
/optee_os/core/arch/arm/pta/system.c
/optee_os/core/arch/arm/sm/sm.c
/optee_os/core/arch/arm/sm/sm_a32.S
/optee_os/core/arch/arm/sm/sm_private.h
/optee_os/core/arch/arm/tee/arch_svc.c
/optee_os/core/arch/arm/tee/entry_fast.c
/optee_os/core/drivers/stm32_gpio.c
/optee_os/core/drivers/stm32_i2c.c
/optee_os/core/drivers/stpmic1.c
/optee_os/core/drivers/sub.mk
/optee_os/core/include/console.h
/optee_os/core/include/drivers/stm32_gpio.h
/optee_os/core/include/drivers/stm32_i2c.h
/optee_os/core/include/drivers/stpmic1.h
/optee_os/core/include/dt-bindings/mfd/st,stpmic1.h
/optee_os/core/include/kernel/dt.h
/optee_os/core/include/kernel/handle.h
/optee_os/core/include/kernel/huk_subkey.h
/optee_os/core/include/kernel/tee_ta_manager.h
/optee_os/core/include/kernel/user_ta_store.h
/optee_os/core/include/optee_rpc_cmd.h
/optee_os/core/kernel/console.c
/optee_os/core/kernel/handle.c
/optee_os/core/kernel/tee_ta_manager.c
tee_svc_storage.c
/optee_os/lib/libmbedtls/mbedtls/library/bignum.c
/optee_os/lib/libutee/arch/arm/ftrace/ftrace.c
/optee_os/lib/libutee/arch/arm/ftrace/ftrace.h
/optee_os/lib/libutee/arch/arm/ftrace/sub.mk
/optee_os/lib/libutee/arch/arm/gprof/sub.mk
/optee_os/lib/libutee/arch/arm/sub.mk
/optee_os/lib/libutee/arch/arm/user_ta_entry.c
/optee_os/lib/libutee/arch/arm/utee_mcount_a32.S
/optee_os/lib/libutee/arch/arm/utee_mcount_a64.S
/optee_os/lib/libutee/include/pta_system.h
/optee_os/lib/libutee/include/user_ta_header.h
/optee_os/lib/libutee/tee_api_arith_mpi.c
/optee_os/lib/libutee/tee_api_private.h
/optee_os/lib/libutils/ext/include/util.h
/optee_os/lib/libutils/isoc/arch/arm/setjmp_a64.S
/optee_os/lib/libutils/isoc/include/setjmp.h
/optee_os/mk/cleandirs.mk
/optee_os/mk/config.mk
/optee_os/mk/lib.mk
/optee_os/scripts/symbolize.py
/optee_os/ta/arch/arm/link.mk
/optee_os/ta/arch/arm/link_shlib.mk
/optee_os/ta/arch/arm/ta.ld.S
/optee_os/ta/arch/arm/user_ta_header.c
/optee_os/ta/mk/ta_dev_kit.mk
/optee_os/ta/ta.mk
02d869c915-May-2019 Jens Wiklander <jens.wiklander@linaro.org>

core: REE FS: use mempool_default for temp alloc

Uses mempool_default for temporary block allocation.

This fixes one out of memory error when loading multiple TAs in
parallel.

Acked-by: Jerome For

core: REE FS: use mempool_default for temp alloc

Uses mempool_default for temporary block allocation.

This fixes one out of memory error when loading multiple TAs in
parallel.

Acked-by: Jerome Forissier <jerome.forissier@linaro.org>
Reviewed-by: Etienne Carriere <etienne.carriere@linaro.org>
Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org>

show more ...

420ca51616-May-2019 Jerome Forissier <jerome.forissier@linaro.org>

core: RPMB FS: fix panic when RPMB partition size is 16 MiB

The overflow check used when computing the number of the last block in
the RPMB parition is incorrect. It causes an overflow when
rpmb_siz

core: RPMB FS: fix panic when RPMB partition size is 16 MiB

The overflow check used when computing the number of the last block in
the RPMB parition is incorrect. It causes an overflow when
rpmb_size_mult is 128, that is, when the partition size is 16 MiB.
Indeed, max_blk_idx is a uint16_t and we are trying to store 65536
(= 128 * (128 * 1024) / 256).

Fix this by using a 32-bit temporary variable to hold the result of the
multiplication (the number of blocks), then subtract 1 to get the last
block number using SUB_OVERFLOW().

Fixes: ea81076f7896 ("core: RPMB FS: check for potential overflows")
Fixes: https://github.com/OP-TEE/optee_os/issues/3012
Signed-off-by: Jerome Forissier <jerome.forissier@linaro.org>
Reported-by: Pengguang Zhu <zpghao@163.com>
Suggested-by: Jens Wiklander <jens.wiklander@linaro.org>
Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org>

show more ...

3728743914-May-2019 Sahil Malhotra <sahil.malhotra@nxp.com>

core:tee: remove redundant tee_obj_attr_to_binary() calls

A couple of tee_obj_attr_to_binary() calls are useless,
remove them.

Signed-off-by: Sahil Malhotra <sahil.malhotra@nxp.com>
Fixes: https://

core:tee: remove redundant tee_obj_attr_to_binary() calls

A couple of tee_obj_attr_to_binary() calls are useless,
remove them.

Signed-off-by: Sahil Malhotra <sahil.malhotra@nxp.com>
Fixes: https://github.com/OP-TEE/optee_os/issues/3004
Reviewed-by: Jerome Forissier <jerome.forissier@linaro.org>
Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org>
Tested-by: Jerome Forissier <jerome.forissier@linaro.org> (QEMU, GP)

show more ...

ced8449a12-Mar-2019 Bastien Simondi <bsimondi@netflix.com>

core: storage: add some overflow checks

Adds overflow checks to the secure storage code.

Signed-off-by: Bastien Simondi <bsimondi@netflix.com>
[jf: Fix test in syscall_storage_obj_seek() case TEE_D

core: storage: add some overflow checks

Adds overflow checks to the secure storage code.

Signed-off-by: Bastien Simondi <bsimondi@netflix.com>
[jf: Fix test in syscall_storage_obj_seek() case TEE_DATA_SEEK_END]
[jf: Get rid of { } block, initialize new local variables]
[jf: Do not fail on (data && !len) in syscall_storage_obj_create()]
Signed-off-by: Jerome Forissier <jerome.forissier@linaro.org>
Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org>
Reviewed-by: Joakim Bech <joakim.bech@linaro.org>

show more ...

a401bcfb12-Mar-2019 Bastien Simondi <bsimondi@netflix.com>

core: check allocated size of temporary secure memory

When servicing syscall_invoke_ta_command(), the invoked TA could modify
the .size field. Make sure the allocated buffer is not overwritten on
re

core: check allocated size of temporary secure memory

When servicing syscall_invoke_ta_command(), the invoked TA could modify
the .size field. Make sure the allocated buffer is not overwritten on
return.

Signed-off-by: Bastien Simondi <bsimondi@netflix.com>
[jf: fix multi-line comment, replace '= { 0 };' with '= { };']
[jf: add commit description]
Signed-off-by: Jerome Forissier <jerome.forissier@linaro.org>
Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org>
Reviewed-by: Joakim Bech <joakim.bech@linaro.org>

show more ...

3ca4a1ca25-Feb-2019 Jerome Forissier <jerome.forissier@linaro.org>

core: FS: wipe sensitive data after use

The secure storage code makes use of various cryptographic data (keys
and IVs). Make sure the buffers are wiped after use to minimize the
risks that sensitive

core: FS: wipe sensitive data after use

The secure storage code makes use of various cryptographic data (keys
and IVs). Make sure the buffers are wiped after use to minimize the
risks that sensitive data may be leaked to an attacker who would have
gained some access to the secure memory.

Signed-off-by: Jerome Forissier <jerome.forissier@linaro.org>
Reported-by: Bastien Simondi <bsimondi@netflix.com>
Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org>
Reviewed-by: Joakim Bech <joakim.bech@linaro.org>

show more ...

9348854930-Jan-2019 Jerome Forissier <jerome.forissier@linaro.org>

core: scrub user-tainted memory returned by alloc_temp_sec_mem()

This is a security fix for TA-to-TA calls.

In syscall_open_ta_session() and syscall_invoke_ta_command(), caller TA
can reference som

core: scrub user-tainted memory returned by alloc_temp_sec_mem()

This is a security fix for TA-to-TA calls.

In syscall_open_ta_session() and syscall_invoke_ta_command(), caller TA
can reference some private memory, in which case the kernel makes a
temporary copy. Unfortunately, memory allocated through
alloc_temp_sec_mem() is not cleared when returned. One could leverage
this to copy arbitrary data into this secure memory pool or to snoop
former data from a previous call done by another TA (e.g., using
TEE_PARAM_TYPE_MEMREF_OUTPUT allows to map the data while not overwriting
it, hence accessing to what is already there).

This patch introduces mobj_free_wipe() to clear and free an mobj.

Signed-off-by: Jerome Forissier <jerome.forissier@linaro.org>
Reported-by: Bastien Simondi <bsimondi@netflix.com> [1.5]
Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org>
Reviewed-by: Joakim Bech <joakim.bech@linaro.org>

show more ...

70b6131029-Jan-2019 Jerome Forissier <jerome.forissier@linaro.org>

core: scrub user-tainted kernel heap memory before freeing it

Some syscalls can be used to poison kernel heap memory. Data copied from
userland is not wiped when the syscall returns. For instance, w

core: scrub user-tainted kernel heap memory before freeing it

Some syscalls can be used to poison kernel heap memory. Data copied from
userland is not wiped when the syscall returns. For instance, when doing
syscall_log() one can copy arbitrary data of variable length onto kernel
memory. When free() is called, the block is returned to the memory pool,
tainted with that userland data. This might be used in combination with
some other vulnerability to produce an exploit.

This patch uses free_wipe() to clear the buffers that have been used to
store user-provided data before returning them to the heap.

Signed-off-by: Jerome Forissier <jerome.forissier@linaro.org>
Reported-by: Bastien Simondi <bsimondi@netflix.com> [1.4]
Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org>
Reviewed-by: Joakim Bech <joakim.bech@linaro.org>
Acked-by: Etienne Carriere <etienne.carriere@linaro.org>

show more ...

fead551107-Feb-2019 Jens Wiklander <jens.wiklander@linaro.org>

core: add get_tag() to struct user_ta_store_ops

Adds get_tag() method to struct user_ta_store_ops.

Reviewed-by: Etienne Carriere <etienne.carriere@linaro.org>
Signed-off-by: Jens Wiklander <jens.wi

core: add get_tag() to struct user_ta_store_ops

Adds get_tag() method to struct user_ta_store_ops.

Reviewed-by: Etienne Carriere <etienne.carriere@linaro.org>
Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org>

show more ...

0b345c6c07-Feb-2019 Jens Wiklander <jens.wiklander@linaro.org>

core: add tee_tadb_get_tag()

Adds the function tee_tadb_get_tag() which returns a tag that uniquely
identifies a TA.

Reviewed-by: Etienne Carriere <etienne.carriere@linaro.org>
Signed-off-by: Jens

core: add tee_tadb_get_tag()

Adds the function tee_tadb_get_tag() which returns a tag that uniquely
identifies a TA.

Reviewed-by: Etienne Carriere <etienne.carriere@linaro.org>
Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org>

show more ...

7513149e07-Feb-2019 Jens Wiklander <jens.wiklander@linaro.org>

core: remove flags argument from tee_pager_alloc()

Removes the flags argument from tee_pager_alloc() since it's only used
with TEE_MATTR_LOCKED. The exception is the bignum pool, but since it
still

core: remove flags argument from tee_pager_alloc()

Removes the flags argument from tee_pager_alloc() since it's only used
with TEE_MATTR_LOCKED. The exception is the bignum pool, but since it
still releases all locked pages each time the pool becomes unused it's
efficient usage of memory.

Reviewed-by: Etienne Carriere <etienne.carriere@linaro.org>
Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org>

show more ...

12345678910>>...24