History log of /optee_os/lib/libutee/ (Results 151 – 175 of 443)
Revision Date Author Comments
(<<< Hide modified files)
(Show modified files >>>)
b0a1c25005-Apr-2021 Etienne Carriere <etienne.carriere@linaro.org>

core: pta: scmi: new interface to REE SCMI agent

Adds a PTA interface to REE SCMI agents to get SCMI message communication
channel for processing in OP-TEE SCMI server.

Currently implement supports

core: pta: scmi: new interface to REE SCMI agent

Adds a PTA interface to REE SCMI agents to get SCMI message communication
channel for processing in OP-TEE SCMI server.

Currently implement supports for a SCMI server built with
CFG_SCMI_MSG_SMT=y. The implementation is made so that an alternate
SCMI server implementation can added.

Client gets SCMI channel capabilities with PTA_SCMI_CMD_CAPABILITIES.
Client gets a handle for an SCMI channel with command
PTA_SCMI_CMD_GET_CHANNEL_HANDLE.
Client pushes SCMI messages with command PTA_SCMI_CMD_PROCESS_SMT_CHANNEL
or PTA_SCMI_CMD_PROCESS_SMT_CHANNEL_MESSAGE.

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

show more ...

c31a368d26-Mar-2021 Marouene Boubakri <marouene.boubakri@nxp.com>

libutee: include: fix typo in pta_invoke_tests.h

In PTA "invoke test", the AES performance test command takes
as argument key size value as bits instead of bytes.
Fix typo in comment.

Signed-off-by

libutee: include: fix typo in pta_invoke_tests.h

In PTA "invoke test", the AES performance test command takes
as argument key size value as bits instead of bytes.
Fix typo in comment.

Signed-off-by: Marouene Boubakri <marouene.boubakri@nxp.com>
Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org>

show more ...


/optee_os/.azure-pipelines.yml
/optee_os/core/arch/arm/include/kernel/abort.h
/optee_os/core/arch/arm/include/kernel/secure_partition.h
/optee_os/core/arch/arm/include/kernel/stmm_sp.h
/optee_os/core/arch/arm/include/kernel/thread_spmc.h
/optee_os/core/arch/arm/include/mm/core_mmu.h
/optee_os/core/arch/arm/include/mm/tee_pager.h
/optee_os/core/arch/arm/kernel/abort.c
/optee_os/core/arch/arm/kernel/entry_a32.S
/optee_os/core/arch/arm/kernel/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/spmc_sp_handler.c
/optee_os/core/arch/arm/kernel/stmm_sp.c
/optee_os/core/arch/arm/kernel/sub.mk
/optee_os/core/arch/arm/kernel/thread.c
/optee_os/core/arch/arm/kernel/thread_spmc.c
/optee_os/core/arch/arm/kernel/unwind_arm64.c
/optee_os/core/arch/arm/mm/core_mmu.c
/optee_os/core/arch/arm/mm/core_mmu_lpae.c
/optee_os/core/arch/arm/mm/core_mmu_v7.c
/optee_os/core/arch/arm/mm/sub.mk
/optee_os/core/arch/arm/mm/tee_pager.c
/optee_os/core/arch/arm/plat-imx/crypto_conf.mk
/optee_os/core/arch/arm/plat-imx/drivers/imx_csu.c
/optee_os/core/arch/arm/plat-ls/conf.mk
/optee_os/core/arch/arm/plat-ls/crypto_conf.mk
/optee_os/core/arch/arm/plat-ls/main.c
/optee_os/core/arch/arm/plat-ls/platform_config.h
/optee_os/core/arch/arm/plat-ls/sub.mk
/optee_os/core/arch/arm/plat-mediatek/conf.mk
/optee_os/core/arch/arm/plat-mediatek/platform_config.h
/optee_os/core/arch/arm/plat-rcar/link.mk
/optee_os/core/arch/arm/plat-rockchip/conf.mk
/optee_os/core/arch/arm/plat-stm32mp1/conf.mk
/optee_os/core/arch/arm/plat-stm32mp1/drivers/stm32mp1_clk.c
/optee_os/core/arch/arm/plat-stm32mp1/nsec-service/stm32mp1_svc_setup.c
/optee_os/core/arch/arm/plat-stm32mp1/scmi_server.c
/optee_os/core/arch/arm/plat-stm32mp1/sub.mk
/optee_os/core/arch/arm/tee/sub.mk
/optee_os/core/drivers/bcm_sotp.c
/optee_os/core/drivers/crypto/caam/acipher/caam_ecc.c
/optee_os/core/drivers/crypto/caam/acipher/caam_math.c
/optee_os/core/drivers/crypto/caam/acipher/caam_prime.c
/optee_os/core/drivers/crypto/caam/acipher/caam_rsa.c
/optee_os/core/drivers/crypto/caam/acipher/sub.mk
/optee_os/core/drivers/crypto/caam/caam_ctrl.c
/optee_os/core/drivers/crypto/caam/caam_desc.c
/optee_os/core/drivers/crypto/caam/cipher/caam_cipher.c
/optee_os/core/drivers/crypto/caam/cipher/caam_cipher_mac.c
/optee_os/core/drivers/crypto/caam/cipher/caam_cipher_xts.c
/optee_os/core/drivers/crypto/caam/cipher/local.h
/optee_os/core/drivers/crypto/caam/hal/common/hal_cfg_dt.c
/optee_os/core/drivers/crypto/caam/hal/ls/registers/ctrl_regs.h
/optee_os/core/drivers/crypto/caam/hash/caam_hash.c
/optee_os/core/drivers/crypto/caam/hash/caam_hash_mac.c
/optee_os/core/drivers/crypto/caam/hash/local.h
/optee_os/core/drivers/crypto/caam/include/caam_acipher.h
/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_io.h
/optee_os/core/drivers/crypto/caam/include/caam_jr_status.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_types.h
/optee_os/core/drivers/crypto/caam/include/caam_utils_dmaobj.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/utils/sub.mk
/optee_os/core/drivers/crypto/caam/utils/utils_dmaobj.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_sgt_v1.c
/optee_os/core/drivers/crypto/caam/utils/utils_sgt_v2.c
/optee_os/core/drivers/crypto/caam/utils/utils_status.c
/optee_os/core/drivers/crypto/se050/core/cipher.c
/optee_os/core/drivers/gic.c
/optee_os/core/drivers/scmi-msg/base.c
/optee_os/core/drivers/scmi-msg/clock.c
/optee_os/core/drivers/scmi-msg/common.h
/optee_os/core/drivers/scmi-msg/entry.c
/optee_os/core/drivers/scmi-msg/reset_domain.c
/optee_os/core/drivers/scmi-msg/smt.c
/optee_os/core/drivers/scmi-msg/voltage_domain.c
/optee_os/core/drivers/sp805_wdt.c
/optee_os/core/include/drivers/scmi-msg.h
/optee_os/core/include/kernel/dt.h
/optee_os/core/include/kernel/early_ta.h
/optee_os/core/include/kernel/embedded_ts.h
/optee_os/core/include/kernel/interrupt.h
/optee_os/core/include/kernel/tee_ta_manager.h
/optee_os/core/include/mm/fobj.h
/optee_os/core/include/mm/mobj.h
/optee_os/core/include/mm/vm.h
/optee_os/core/include/tee/entry_std.h
/optee_os/core/include/tee/tee_fs_rpc.h
/optee_os/core/kernel/dt.c
/optee_os/core/kernel/early_ta.c
/optee_os/core/kernel/embedded_ts.c
/optee_os/core/kernel/interrupt.c
/optee_os/core/kernel/pseudo_ta.c
/optee_os/core/kernel/ree_fs_ta.c
/optee_os/core/kernel/secstor_ta.c
/optee_os/core/kernel/sub.mk
/optee_os/core/kernel/tee_ta_manager.c
/optee_os/core/kernel/user_ta.c
/optee_os/core/mm/fobj.c
/optee_os/core/mm/mobj.c
/optee_os/core/mm/sub.mk
/optee_os/core/mm/vm.c
/optee_os/core/sub.mk
/optee_os/core/tee/entry_std.c
/optee_os/core/tee/sub.mk
/optee_os/core/tee/tee_fs_rpc.c
/optee_os/core/tee/tee_pobj.c
/optee_os/core/tee/tee_svc_cryp.c
/optee_os/lib/libmbedtls/mbedtls/library/md2.c
/optee_os/lib/libmbedtls/mbedtls/library/md4.c
/optee_os/lib/libmbedtls/mbedtls/library/md5.c
/optee_os/lib/libmbedtls/mbedtls/library/ripemd160.c
/optee_os/lib/libmbedtls/mbedtls/library/sha512.c
/optee_os/lib/libmbedtls/sub.mk
include/pta_invoke_tests.h
/optee_os/lib/libutils/ext/include/asm.S
/optee_os/mk/compile.mk
/optee_os/mk/config.mk
/optee_os/ta/pkcs11/src/object.c
/optee_os/ta/pkcs11/src/pkcs11_attributes.c
/optee_os/ta/pkcs11/src/sanitize_object.c
/optee_os/ta/pkcs11/src/token_capabilities.c
1321805901-Mar-2021 Matthieu BERTIN <matthieu.bertin@viaccess-orca.com>

libutee: fix memory leak in bigint_binary_mod()

The modulus variable (mpi_n) in bigint_binary_mod() is never released,
causing a memory leak in TEE_BigIntAddMod(), TEE_BigIntSubMod(),
TEE_BigIntMulM

libutee: fix memory leak in bigint_binary_mod()

The modulus variable (mpi_n) in bigint_binary_mod() is never released,
causing a memory leak in TEE_BigIntAddMod(), TEE_BigIntSubMod(),
TEE_BigIntMulMod() and TEE_BigIntSquareMod(). Add the missing call.

Signed-off-by: Matthieu BERTIN <matthieu.bertin@viaccess-orca.com>
Reviewed-by: Jerome Forissier <jerome@forissier.org>

show more ...

2138a6f803-Mar-2021 Stefan Schmidt <snst@meek.de>

libutee: add NULL pointer check in TEE_OpenPersistentObject()

Fix missing test on user object handle output reference in
TEE_OpenPersistentObject().

Signed-off-by: Stefan Schmidt <snst@meek.de>
Rev

libutee: add NULL pointer check in TEE_OpenPersistentObject()

Fix missing test on user object handle output reference in
TEE_OpenPersistentObject().

Signed-off-by: Stefan Schmidt <snst@meek.de>
Reviewed-by: Etienne Carriere <etienne.carriere@linaro.org>
Reviewed-by: Jerome Forissier <jerome@forissier.org>

show more ...


/optee_os/.azure-pipelines.yml
/optee_os/.shippable.yml
/optee_os/MAINTAINERS
/optee_os/core/arch/arm/include/ffa.h
/optee_os/core/arch/arm/include/kernel/abort.h
/optee_os/core/arch/arm/include/kernel/secure_partition.h
/optee_os/core/arch/arm/include/kernel/spmc_sp_handler.h
/optee_os/core/arch/arm/include/kernel/thread.h
/optee_os/core/arch/arm/include/kernel/thread_spmc.h
/optee_os/core/arch/arm/include/kernel/tlb_helpers.h
/optee_os/core/arch/arm/include/mm/core_mmu.h
/optee_os/core/arch/arm/include/mm/pgt_cache.h
/optee_os/core/arch/arm/kernel/abort.c
/optee_os/core/arch/arm/kernel/boot.c
/optee_os/core/arch/arm/kernel/ldelf_loader.c
/optee_os/core/arch/arm/kernel/otp_stubs.c
/optee_os/core/arch/arm/kernel/secure_partition.c
/optee_os/core/arch/arm/kernel/spmc_sp_handler.c
/optee_os/core/arch/arm/kernel/stmm_sp.c
/optee_os/core/arch/arm/kernel/sub.mk
/optee_os/core/arch/arm/kernel/thread.c
/optee_os/core/arch/arm/kernel/thread_private.h
/optee_os/core/arch/arm/kernel/thread_spmc.c
/optee_os/core/arch/arm/kernel/thread_spmc_a64.S
/optee_os/core/arch/arm/kernel/user_ta.c
/optee_os/core/arch/arm/mm/core_mmu.c
/optee_os/core/arch/arm/mm/pgt_cache.c
/optee_os/core/arch/arm/plat-hikey/spi_test.c
/optee_os/core/arch/arm/plat-imx/conf.mk
/optee_os/core/arch/arm/plat-imx/registers/imx8m.h
/optee_os/core/arch/arm/plat-ls/conf.mk
/optee_os/core/drivers/bcm_gpio.c
/optee_os/core/drivers/ls_dspi.c
/optee_os/core/drivers/ls_gpio.c
/optee_os/core/drivers/pl022_spi.c
/optee_os/core/drivers/pl061_gpio.c
/optee_os/core/drivers/sub.mk
/optee_os/core/include/drivers/ls_dspi.h
/optee_os/core/include/drivers/ls_gpio.h
/optee_os/core/include/gpio.h
/optee_os/core/include/kernel/ldelf_loader.h
/optee_os/core/include/kernel/linker.h
/optee_os/core/include/kernel/mutex.h
/optee_os/core/include/kernel/pseudo_ta.h
/optee_os/core/include/kernel/time_source.h
/optee_os/core/include/kernel/timer.h
/optee_os/core/include/kernel/unwind.h
/optee_os/core/include/kernel/user_mode_ctx.h
/optee_os/core/include/kernel/user_ta.h
/optee_os/core/include/kernel/wait_queue.h
/optee_os/core/kernel/ldelf_syscalls.c
/optee_os/core/kernel/mutex.c
/optee_os/core/kernel/mutex_lockdep.c
/optee_os/core/kernel/mutex_lockdep.h
/optee_os/core/kernel/sub.mk
/optee_os/core/kernel/user_access.c
/optee_os/core/kernel/wait_queue.c
/optee_os/core/mm/vm.c
/optee_os/core/pta/bcm/gpio.c
/optee_os/core/tee/sub.mk
/optee_os/ldelf/main.c
tee_api_objects.c
/optee_os/ta/pkcs11/include/pkcs11_ta.h
/optee_os/ta/pkcs11/src/entry.c
/optee_os/ta/pkcs11/src/object.c
/optee_os/ta/pkcs11/src/object.h
/optee_os/ta/pkcs11/src/persistent_token.c
/optee_os/ta/pkcs11/src/pkcs11_attributes.c
/optee_os/ta/pkcs11/src/pkcs11_attributes.h
/optee_os/ta/pkcs11/src/pkcs11_helpers.c
/optee_os/ta/pkcs11/src/pkcs11_token.c
/optee_os/ta/pkcs11/src/pkcs11_token.h
/optee_os/ta/pkcs11/src/processing.c
/optee_os/ta/pkcs11/src/processing.h
/optee_os/ta/pkcs11/src/processing_symm.c
/optee_os/ta/pkcs11/src/sanitize_object.c
/optee_os/ta/trusted_keys/entry.c
dea9063e19-Feb-2021 Jens Wiklander <jens.wiklander@linaro.org>

libutee: check srcLen in TEE_CipherDoFinal()

Adds another check of srcLen in TEE_CipherDoFinal() before calling
tee_buffer_update() to make sure that we don't dereference destLen when
it's NULL.

Th

libutee: check srcLen in TEE_CipherDoFinal()

Adds another check of srcLen in TEE_CipherDoFinal() before calling
tee_buffer_update() to make sure that we don't dereference destLen when
it's NULL.

This fixes coverity scan:
CID 1501811 (#1 of 1): Dereference after null check (FORWARD_NULL)

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

show more ...

b6fa905f19-Feb-2021 Jens Wiklander <jens.wiklander@linaro.org>

libutee: remove redundant NULL check in TEE_BigIntComputeExtendedGcd()

The gcd parameter passed to TEE_BigIntComputeExtendedGcd() must not
be NULL so skip the unnecessary NULL check.

This fixes cov

libutee: remove redundant NULL check in TEE_BigIntComputeExtendedGcd()

The gcd parameter passed to TEE_BigIntComputeExtendedGcd() must not
be NULL so skip the unnecessary NULL check.

This fixes coverity scan:
CID 1501842 (#1 of 1): Dereference after null check (FORWARD_NULL)

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

show more ...

b68bcfeb19-Feb-2021 Jens Wiklander <jens.wiklander@linaro.org>

libutee: add coverity note to TEE_Panic()

Coverity scans emits false positive "Dereference after null check"
errors because it doesn't understand that TEE_Panic() doesn't return.
Fix this by adding

libutee: add coverity note to TEE_Panic()

Coverity scans emits false positive "Dereference after null check"
errors because it doesn't understand that TEE_Panic() doesn't return.
Fix this by adding a __coverity_panic__() at the end of the function.

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

show more ...

eee637e710-Feb-2021 Alexander Zakharov <uglym8@gmail.com>

Add 3DES CMAC implementation

CMAC is a Cipher-Based MAC that improves some of the security deficiencies
found in CBC-MAC. It is described in NIST SP800-38B as a mode of operation
for approved symmet

Add 3DES CMAC implementation

CMAC is a Cipher-Based MAC that improves some of the security deficiencies
found in CBC-MAC. It is described in NIST SP800-38B as a mode of operation
for approved symmetric block chipers, namely AES and TDEA.

CMAC has similar use cases and security guarantees as HMAC, with the
difference that it uses a different primitive (symmetric cipher instead
of hash function).
CMAC may be appropriate for information systems in which an approved block
cipher is more readily available than an approved hash function.

Commonly it is used for symmetric key diversification (ASC X9 TR 31-2018),
data integrity assurance (ICV).

CMAC is public domain.

OP-TEE core already supports for AES CMAC, but not TDEA CMAC. This commit
adds TDEA CMAC support.

Signed-off-by: Alexander Zakharov <uglym8@gmail.com>
Reviewed-by: Jerome Forissier <jerome@forissier.org>
Acked-by: Etienne Carriere <etienne.carriere@linaro.org>
[jf: wrap commit description at 75 characters]
Signed-off-by: Jerome Forissier <jerome@forissier.org>

show more ...


/optee_os/.shippable.yml
/optee_os/MAINTAINERS
/optee_os/core/arch/arm/dts/fsl-lx2160a-qds.dts
/optee_os/core/arch/arm/dts/fsl-lx2160a-rdb.dts
/optee_os/core/arch/arm/dts/fsl-lx2160a.dtsi
/optee_os/core/arch/arm/include/arm64.h
/optee_os/core/arch/arm/include/kernel/cache_helpers.h
/optee_os/core/arch/arm/include/mm/core_mmu.h
/optee_os/core/arch/arm/kernel/thread_a32.S
/optee_os/core/arch/arm/mm/core_mmu.c
/optee_os/core/arch/arm/plat-imx/conf.mk
/optee_os/core/arch/arm/plat-imx/drivers/imx_csu.c
/optee_os/core/arch/arm/plat-imx/registers/imx6-dcp.h
/optee_os/core/arch/arm/plat-imx/registers/imx6.h
/optee_os/core/arch/arm/plat-ls/conf.mk
/optee_os/core/arch/arm/plat-ls/main.c
/optee_os/core/arch/arm/plat-ls/platform_config.h
/optee_os/core/crypto.mk
/optee_os/core/crypto/crypto.c
/optee_os/core/crypto/sm2-kdf.c
/optee_os/core/crypto/sub.mk
/optee_os/core/drivers/crypto/se050/adaptors/apis/sss.c
/optee_os/core/drivers/crypto/se050/adaptors/include/se050_utils.h
/optee_os/core/drivers/crypto/se050/adaptors/utils/scp_config.c
/optee_os/core/drivers/crypto/se050/session.c
/optee_os/core/drivers/imx/dcp/dcp.c
/optee_os/core/drivers/imx/dcp/dcp_huk.c
/optee_os/core/drivers/imx/dcp/dcp_utils.c
/optee_os/core/drivers/imx/dcp/include/dcp_utils.h
/optee_os/core/drivers/imx/dcp/include/local.h
/optee_os/core/drivers/imx/dcp/sub.mk
/optee_os/core/drivers/imx/sub.mk
/optee_os/core/drivers/sub.mk
/optee_os/core/include/crypto/crypto_impl.h
/optee_os/core/include/crypto/sm2-kdf.h
/optee_os/core/include/drivers/imx/dcp.h
/optee_os/core/include/kernel/huk_subkey.h
/optee_os/core/lib/libtomcrypt/acipher_helpers.h
/optee_os/core/lib/libtomcrypt/cmac.c
/optee_os/core/lib/libtomcrypt/sm2-kep.c
/optee_os/core/lib/libtomcrypt/sm2-pke.c
/optee_os/core/lib/libtomcrypt/sub.mk
/optee_os/core/tee/tee_cryp_utl.c
/optee_os/core/tee/tee_svc_cryp.c
/optee_os/lib/libmbedtls/core/des3_cmac.c
/optee_os/lib/libmbedtls/core/ecc.c
/optee_os/lib/libmbedtls/core/mbed_helpers.c
/optee_os/lib/libmbedtls/core/mbed_helpers.h
/optee_os/lib/libmbedtls/core/sm2-dsa.c
/optee_os/lib/libmbedtls/core/sm2-dsa.h
/optee_os/lib/libmbedtls/core/sm2-kep.c
/optee_os/lib/libmbedtls/core/sm2-pke.c
/optee_os/lib/libmbedtls/core/sm2-pke.h
/optee_os/lib/libmbedtls/core/sub.mk
/optee_os/lib/libmbedtls/include/mbedtls_config_kernel.h
/optee_os/lib/libmbedtls/mbedtls/include/mbedtls/ecp.h
/optee_os/lib/libmbedtls/mbedtls/library/ecp.c
/optee_os/lib/libmbedtls/mbedtls/library/ecp_curves.c
include/tee_api_defines_extensions.h
include/utee_defines.h
tee_api_operations.c
/optee_os/ta/pkcs11/include/pkcs11_ta.h
/optee_os/ta/pkcs11/src/attributes.c
/optee_os/ta/pkcs11/src/attributes.h
/optee_os/ta/pkcs11/src/entry.c
/optee_os/ta/pkcs11/src/object.c
/optee_os/ta/pkcs11/src/object.h
/optee_os/ta/pkcs11/src/pkcs11_attributes.c
/optee_os/ta/pkcs11/src/pkcs11_attributes.h
/optee_os/ta/pkcs11/src/pkcs11_helpers.c
/optee_os/ta/pkcs11/src/pkcs11_token.c
a1d0f5d202-Feb-2021 Jerome Forissier <jerome@forissier.org>

libutee: sockets: drop useless & before function names

There is no need to use & on a function name to obtain the function
address. Drop the useless & characters.

Signed-off-by: Jerome Forissier <j

libutee: sockets: drop useless & before function names

There is no need to use & on a function name to obtain the function
address. Drop the useless & characters.

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

show more ...

e4ad5ccd08-Dec-2020 Aleksandr Anisimov <a.anisimov@omprussia.ru>

libutee: add a new API to interact with plugins from TA

This patch adds a new API to libutee to interact
with tee-supplicant plugins from TEE userspace.

Every user TA can use 'tee_invoke_supp_plugi

libutee: add a new API to interact with plugins from TA

This patch adds a new API to libutee to interact
with tee-supplicant plugins from TEE userspace.

Every user TA can use 'tee_invoke_supp_plugin()' to send any commands
to a plugin. The commands are predefined by the plugin developer.

See the https://github.com/linaro-swg/optee_examples
repo for an example of using plugins.

Signed-off-by: Aleksandr Anisimov <a.anisimov@omprussia.ru>
Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org>

show more ...

14d7988708-Jan-2021 Igor Opaniuk <igor.opaniuk@gmail.com>

core: pta: drop SDP PTA

Drop SDP PTA as it is not used anywhere and looks like isn't
maintained. When is CFG_SDP_PTA=y the build fails with
compile errors:

error: implicit declaration of function ‘

core: pta: drop SDP PTA

Drop SDP PTA as it is not used anywhere and looks like isn't
maintained. When is CFG_SDP_PTA=y the build fails with
compile errors:

error: implicit declaration of function ‘tee_ta_get_calling_session’;
did you mean ‘ts_get_calling_session’?
[-Werror=implicit-function-declaration]
...
error: ‘struct tee_ta_session’ has no member named ‘ctx’

Signed-off-by: Igor Opaniuk <igor.opaniuk@gmail.com>
Reviewed-by: Etienne Carriere <etienne.carriere@linaro.org>

show more ...

17c32c0513-Jan-2021 Jerome Forissier <jerome@forissier.org>

ta: fix processing of DT_FINI_ARRAY

The code that is supposed to invoke the finalization functions in the
DT_FINI_ARRAY of a TA is broken. It mixes DT_INIT_ARRAY with
DT_FINI_ARRAYSZ. As a result, t

ta: fix processing of DT_FINI_ARRAY

The code that is supposed to invoke the finalization functions in the
DT_FINI_ARRAY of a TA is broken. It mixes DT_INIT_ARRAY with
DT_FINI_ARRAYSZ. As a result, the finalization functions are never
called and the TA may even crash on exit.

Fix the issue by replacing the erroneous DT_INIT_ARRAY with
DT_FINI_ARRAY.

Fixes: dd655cb9906c ("ldelf, ta: add support for DT_INIT_ARRAY and DT_FINI_ARRAY")
Reported-by: JY Ho <JY.Ho@mediatek.com>
Signed-off-by: Jerome Forissier <jerome@forissier.org>
Acked-by: Etienne Carriere <etienne.carriere@linaro.org>
Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org>

show more ...

baa5161d11-Dec-2020 Balint Dobszay <balint.dobszay@arm.com>

core: ldelf: implement separate syscalls for ldelf

Implements a separate syscall handler for ldelf to decouple it from user
TAs and enable using it for all TSs. The calling convention is the same
as

core: ldelf: implement separate syscalls for ldelf

Implements a separate syscall handler for ldelf to decouple it from user
TAs and enable using it for all TSs. The calling convention is the same
as for utee_* syscalls. To distinguish between the different SVCs, the
syscall handler pointer is updated before entering ldelf and restored
after returning. The step of opening a system PTA session and invoking
the commands there is eliminated, the necessary functionality is
implemented in the ldelf syscall functions.

Acked-by: Etienne Carriere <etienne.carriere@linaro.org>
Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org>
Signed-off-by: Balint Dobszay <balint.dobszay@arm.com>

show more ...


/optee_os/.shippable.yml
/optee_os/core/arch/arm/include/kernel/delay.h
/optee_os/core/arch/arm/include/kernel/ldelf_loader.h
/optee_os/core/arch/arm/include/tee/arch_svc.h
/optee_os/core/arch/arm/kernel/ldelf_loader.c
/optee_os/core/arch/arm/kernel/pseudo_ta.c
/optee_os/core/arch/arm/kernel/stmm_sp.c
/optee_os/core/arch/arm/kernel/tee_time_arm_cntpct.c
/optee_os/core/arch/arm/kernel/thread.c
/optee_os/core/arch/arm/kernel/user_ta.c
/optee_os/core/arch/arm/plat-vexpress/platform_config.h
/optee_os/core/arch/arm/tee/arch_svc.c
/optee_os/core/drivers/crypto/se050/adaptors/apis/apdu.c
/optee_os/core/drivers/crypto/se050/adaptors/include/se050_apdu_apis.h
/optee_os/core/drivers/crypto/se050/adaptors/include/se050_utils.h
/optee_os/core/drivers/crypto/se050/adaptors/utils/utils.c
/optee_os/core/drivers/crypto/se050/core/ecc.c
/optee_os/core/drivers/crypto/se050/core/rsa.c
/optee_os/core/drivers/crypto/se050/core/sub.mk
/optee_os/core/drivers/crypto/se050/crypto.mk
/optee_os/core/include/kernel/handle.h
/optee_os/core/include/kernel/ldelf_syscalls.h
/optee_os/core/include/kernel/tee_ta_manager.h
/optee_os/core/include/kernel/ts_manager.h
/optee_os/core/kernel/handle.c
/optee_os/core/kernel/ldelf_syscalls.c
/optee_os/core/kernel/sub.mk
/optee_os/core/kernel/tee_ta_manager.c
/optee_os/core/pta/system.c
/optee_os/core/pta/tests/misc.c
/optee_os/core/tee/tee_rpmb_fs.c
/optee_os/ldelf/include/ldelf.h
/optee_os/ldelf/include/ldelf_syscalls.h
/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/syscalls_a32.S
/optee_os/ldelf/syscalls_a64.S
/optee_os/ldelf/syscalls_asm.S
/optee_os/ldelf/ta_elf.c
trace_ext.c
/optee_os/lib/libutils/ext/ftrace/ftrace.c
/optee_os/lib/libutils/isoc/bget.c
/optee_os/lib/libutils/isoc/bget.h
/optee_os/lib/libutils/isoc/bget_malloc.c
/optee_os/lib/libutils/isoc/include/malloc.h
/optee_os/mk/compile.mk
/optee_os/mk/config.mk
/optee_os/ta/pkcs11/include/pkcs11_ta.h
/optee_os/ta/pkcs11/src/attributes.c
/optee_os/ta/pkcs11/src/attributes.h
/optee_os/ta/pkcs11/src/entry.c
/optee_os/ta/pkcs11/src/object.c
/optee_os/ta/pkcs11/src/pkcs11_attributes.c
/optee_os/ta/pkcs11/src/pkcs11_attributes.h
/optee_os/ta/pkcs11/src/pkcs11_helpers.c
/optee_os/ta/pkcs11/src/pkcs11_token.c
/optee_os/ta/pkcs11/src/processing.c
/optee_os/ta/pkcs11/src/processing.h
/optee_os/ta/pkcs11/src/sanitize_object.c
/optee_os/ta/pkcs11/src/sanitize_object.h
/optee_os/ta/pkcs11/src/token_capabilities.c
/optee_os/ta/ta.mk
739fd3ab15-Dec-2020 Jens Wiklander <jens.wiklander@linaro.org>

libutee: add isb() and barrier_read_cntpct()

Adds isb() and barrier_read_cntpct() to arm_user_sysreg.h, the latter to be
used as a helper when reading CNTPCT.

Reviewed-by: Jerome Forissier <jerome@

libutee: add isb() and barrier_read_cntpct()

Adds isb() and barrier_read_cntpct() to arm_user_sysreg.h, the latter to be
used as a helper when reading CNTPCT.

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

show more ...

e6e7781f14-Dec-2020 Jens Wiklander <jens.wiklander@linaro.org>

libutee: fix TEE_BigIntInit() memset()

The TEE_BigIntInit() supplied length is the number of words allocated
for the bigint, including headers. Prior to this patch it seems it was
assumed that lengt

libutee: fix TEE_BigIntInit() memset()

The TEE_BigIntInit() supplied length is the number of words allocated
for the bigint, including headers. Prior to this patch it seems it was
assumed that length was number of bits given the call to
TEE_BigIntSizeInU32(). With this patch correct this by removing the
TEE_BigIntSizeInU32() call.

Fixes: 062e3d01c039 ("ta: switch to to mbedtls for bignum")
Reviewed-by: Etienne Carriere <etienne.carriere@linaro.org>
Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org>

show more ...

8e07702e15-Dec-2020 Jens Wiklander <jens.wiklander@linaro.org>

libutee: TEE_CopyOperation() copy info.digestLength

When copying an operation include info.digestLength in the copied fields
which is needed for the authenticated encryption algorithms AES-GCM and
A

libutee: TEE_CopyOperation() copy info.digestLength

When copying an operation include info.digestLength in the copied fields
which is needed for the authenticated encryption algorithms AES-GCM and
AES-CCM.

Acked-by: Etienne Carriere <etienne.carriere@linaro.org>
Acked-by: Jerome Forissier <jerome@forissier.org>
Suggested-by: Tony He <tony.he@armchina.com>
Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org>

show more ...

8734de3014-Dec-2020 Jens Wiklander <jens.wiklander@linaro.org>

libutee: TEE_CopyOperation() check operation mode

Adds a check in TEE_CopyOperation() to panic if operation mode doesn't
match in the source and destination operations.

Reviewed-by: Jerome Forissie

libutee: TEE_CopyOperation() check operation mode

Adds a check in TEE_CopyOperation() to panic if operation mode doesn't
match in the source and destination operations.

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

show more ...

cd0b577e07-Dec-2020 Jerome Forissier <jerome@forissier.org>

libutee: user_ta_header.h: remove unused struct ta_func_head

struct ta_func_head is unused, remove it.

Signed-off-by: Jerome Forissier <jerome@forissier.org>
Reviewed-by: Etienne Carriere <etienne.

libutee: user_ta_header.h: remove unused struct ta_func_head

struct ta_func_head is unused, remove it.

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 ...

fac2889807-Dec-2020 Jerome Forissier <jerome@forissier.org>

libutee: user_ta_header.h: remove unused property strings

user_ta_header.h defines a few macros with property names that are not
used anywhere and are not part of any specification. Remove them.

Si

libutee: user_ta_header.h: remove unused property strings

user_ta_header.h defines a few macros with property names that are not
used anywhere and are not part of any specification. Remove them.

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 ...

376db81e07-Dec-2020 Jerome Forissier <jerome@forissier.org>

libutee: user_ta_header.h: remove unused enum user_ta_core_service_id

enum user_ta_core_service_id is unused, remove it.

Signed-off-by: Jerome Forissier <jerome@forissier.org>
Reviewed-by: Etienne

libutee: user_ta_header.h: remove unused enum user_ta_core_service_id

enum user_ta_core_service_id is unused, remove it.

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 ...

9bf34bd704-Dec-2020 Jerome Forissier <jerome@forissier.org>

Remove unused file lib/libutee/errno.c

lib/libutee/errno.c is not built or used in any way so remove it.

Signed-off-by: Jerome Forissier <jerome@forissier.org>
Acked-by: Jens Wiklander <jens.wiklan

Remove unused file lib/libutee/errno.c

lib/libutee/errno.c is not built or used in any way so remove it.

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

show more ...

cb1b1ecd25-Aug-2020 Jorge Ramirez-Ortiz <jorge@foundries.io>

core: pta: SCP03 pseudo trusted application

Implement GlobalPlatform Secure Channel Protocol 3 control from
REE. Secure boot requires that SCP03 is enabled as soon as secure
storage is available (ie

core: pta: SCP03 pseudo trusted application

Implement GlobalPlatform Secure Channel Protocol 3 control from
REE. Secure boot requires that SCP03 is enabled as soon as secure
storage is available (ie RPMB).

Host side example:
github.com/foundriesio/optee-scp03

Signed-off-by: Jorge Ramirez-Ortiz <jorge@foundries.io>
Acked-by: Etienne Carriere <etienne.carriere@linaro.org>

show more ...


/optee_os/.checkpatch.conf
/optee_os/.shippable.yml
/optee_os/.travis.yml
/optee_os/CHANGELOG.md
/optee_os/MAINTAINERS
/optee_os/core/arch/arm/arm.mk
/optee_os/core/arch/arm/include/kernel/abort.h
/optee_os/core/arch/arm/include/kernel/early_ta.h
/optee_os/core/arch/arm/include/kernel/embedded_ts.h
/optee_os/core/arch/arm/include/kernel/ldelf_loader.h
/optee_os/core/arch/arm/include/kernel/linker.h
/optee_os/core/arch/arm/include/kernel/pseudo_ta.h
/optee_os/core/arch/arm/include/kernel/secure_partition.h
/optee_os/core/arch/arm/include/kernel/stmm_sp.h
/optee_os/core/arch/arm/include/kernel/thread.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/mm/pgt_cache.h
/optee_os/core/arch/arm/kernel/abort.c
/optee_os/core/arch/arm/kernel/boot.c
/optee_os/core/arch/arm/kernel/early_ta.c
/optee_os/core/arch/arm/kernel/embedded_ts.c
/optee_os/core/arch/arm/kernel/kern.ld.S
/optee_os/core/arch/arm/kernel/ldelf_loader.c
/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/secure_partition.c
/optee_os/core/arch/arm/kernel/stmm_sp.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/user_ta.c
/optee_os/core/arch/arm/mm/core_mmu.c
/optee_os/core/arch/arm/mm/core_mmu_lpae.c
/optee_os/core/arch/arm/mm/core_mmu_v7.c
/optee_os/core/arch/arm/mm/mobj.c
/optee_os/core/arch/arm/mm/mobj_dyn_shm.c
/optee_os/core/arch/arm/mm/pgt_cache.c
/optee_os/core/arch/arm/mm/sub.mk
/optee_os/core/arch/arm/mm/tee_pager.c
/optee_os/core/arch/arm/plat-hikey/conf.mk
/optee_os/core/arch/arm/plat-imx/registers/imx6.h
/optee_os/core/arch/arm/plat-imx/registers/imx8m-crm.h
/optee_os/core/arch/arm/plat-imx/registers/imx8m.h
/optee_os/core/arch/arm/plat-mediatek/conf.mk
/optee_os/core/arch/arm/plat-mediatek/platform_config.h
/optee_os/core/arch/arm/plat-stm32mp1/conf.mk
/optee_os/core/arch/arm/plat-stm32mp1/drivers/stm32mp1_clk.c
/optee_os/core/arch/arm/plat-stm32mp1/drivers/stm32mp1_pmic.c
/optee_os/core/arch/arm/plat-stm32mp1/drivers/stm32mp1_pwr.c
/optee_os/core/arch/arm/plat-stm32mp1/drivers/stm32mp1_pwr.h
/optee_os/core/arch/arm/plat-stm32mp1/drivers/stm32mp1_rcc.c
/optee_os/core/arch/arm/plat-stm32mp1/drivers/stm32mp1_rcc.h
/optee_os/core/arch/arm/plat-stm32mp1/pm/psci.c
/optee_os/core/arch/arm/plat-stm32mp1/scmi_server.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/plat-vexpress/vendor_props.c
/optee_os/core/arch/arm/plat-zynqmp/conf.mk
/optee_os/core/arch/arm/plat-zynqmp/platform_config.h
/optee_os/core/arch/arm/sm/sm_a32.S
/optee_os/core/arch/arm/tee/arch_svc.c
/optee_os/core/arch/arm/tee/svc_cache.c
/optee_os/core/crypto/crypto.c
/optee_os/core/drivers/crypto/caam/acipher/caam_rsa.c
/optee_os/core/drivers/crypto/caam/utils/utils_mem.c
/optee_os/core/drivers/crypto/crypto_api/acipher/ecc.c
/optee_os/core/drivers/crypto/crypto_api/acipher/sub.mk
/optee_os/core/drivers/crypto/crypto_api/include/drvcrypt.h
/optee_os/core/drivers/crypto/crypto_api/include/drvcrypt_acipher.h
/optee_os/core/drivers/crypto/se050/adaptors/apis/apdu.c
/optee_os/core/drivers/crypto/se050/adaptors/apis/sss.c
/optee_os/core/drivers/crypto/se050/adaptors/apis/user.c
/optee_os/core/drivers/crypto/se050/adaptors/include/se050.h
/optee_os/core/drivers/crypto/se050/adaptors/include/se050_apdu_apis.h
/optee_os/core/drivers/crypto/se050/adaptors/include/se050_sss_apis.h
/optee_os/core/drivers/crypto/se050/adaptors/include/se050_user_apis.h
/optee_os/core/drivers/crypto/se050/adaptors/include/se050_utils.h
/optee_os/core/drivers/crypto/se050/adaptors/sub.mk
/optee_os/core/drivers/crypto/se050/adaptors/utils/info.c
/optee_os/core/drivers/crypto/se050/adaptors/utils/scp_config.c
/optee_os/core/drivers/crypto/se050/adaptors/utils/utils.c
/optee_os/core/drivers/crypto/se050/core/cipher.c
/optee_os/core/drivers/crypto/se050/core/ctr.c
/optee_os/core/drivers/crypto/se050/core/huk.c
/optee_os/core/drivers/crypto/se050/core/include/se050_cipher_algorithms.h
/optee_os/core/drivers/crypto/se050/core/rng.c
/optee_os/core/drivers/crypto/se050/core/rsa.c
/optee_os/core/drivers/crypto/se050/core/scp03.c
/optee_os/core/drivers/crypto/se050/core/storage.c
/optee_os/core/drivers/crypto/se050/core/sub.mk
/optee_os/core/drivers/crypto/se050/session.c
/optee_os/core/drivers/crypto/se050/sub.mk
/optee_os/core/drivers/crypto/sub.mk
/optee_os/core/drivers/imx_i2c.c
/optee_os/core/drivers/scmi-msg/base.c
/optee_os/core/drivers/scmi-msg/base.h
/optee_os/core/drivers/scmi-msg/clock.c
/optee_os/core/drivers/scmi-msg/clock.h
/optee_os/core/drivers/scmi-msg/common.h
/optee_os/core/drivers/scmi-msg/entry.c
/optee_os/core/drivers/scmi-msg/reset_domain.c
/optee_os/core/drivers/scmi-msg/reset_domain.h
/optee_os/core/drivers/scmi-msg/sub.mk
/optee_os/core/drivers/scmi-msg/voltage_domain.c
/optee_os/core/drivers/scmi-msg/voltage_domain.h
/optee_os/core/drivers/stm32_bsec.c
/optee_os/core/drivers/stm32_gpio.c
/optee_os/core/drivers/stpmic1.c
/optee_os/core/include/crypto/crypto.h
/optee_os/core/include/crypto/crypto_impl.h
/optee_os/core/include/drivers/scmi-msg.h
/optee_os/core/include/drivers/scmi.h
/optee_os/core/include/drivers/stpmic1.h
/optee_os/core/include/dt-bindings/regulator/st,stm32mp15-regulator.h
/optee_os/core/include/dt-bindings/reset/stm32mp1-resets.h
/optee_os/core/include/kernel/tee_ta_manager.h
/optee_os/core/include/kernel/ts_manager.h
/optee_os/core/include/kernel/ts_store.h
/optee_os/core/include/kernel/user_mode_ctx.h
/optee_os/core/include/kernel/user_mode_ctx_struct.h
/optee_os/core/include/mm/vm.h
/optee_os/core/include/tee/tee_obj.h
/optee_os/core/include/tee/tee_svc.h
/optee_os/core/kernel/sub.mk
/optee_os/core/kernel/tee_ta_manager.c
/optee_os/core/kernel/ts_manager.c
/optee_os/core/kernel/user_access.c
/optee_os/core/lib/libtomcrypt/acipher_helpers.h
/optee_os/core/lib/libtomcrypt/ecc.c
/optee_os/core/lib/libtomcrypt/rsa.c
/optee_os/core/lib/libtomcrypt/sm2-dsa.c
/optee_os/core/lib/libtomcrypt/sm2-pke.c
/optee_os/core/lib/libtomcrypt/src/pk/dh/dh_make_key.c
/optee_os/core/mm/sub.mk
/optee_os/core/mm/vm.c
/optee_os/core/pta/benchmark.c
/optee_os/core/pta/device.c
/optee_os/core/pta/gprof.c
/optee_os/core/pta/scp03.c
/optee_os/core/pta/sdp.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/invoke.c
/optee_os/core/sub.mk
/optee_os/core/tee/socket.c
/optee_os/core/tee/tee_obj.c
/optee_os/core/tee/tee_rpmb_fs.c
/optee_os/core/tee/tee_svc.c
/optee_os/core/tee/tee_svc_cryp.c
/optee_os/core/tee/tee_svc_storage.c
/optee_os/lib/libmbedtls/core/ecc.c
/optee_os/lib/libmbedtls/core/rsa.c
include/scp03_pta.h
/optee_os/lib/libutils/ext/arch/arm/auxval.c
/optee_os/lib/libutils/ext/arch/arm/mcount_a32.S
/optee_os/lib/libutils/ext/arch/arm/sub.mk
/optee_os/lib/libutils/ext/ftrace/ftrace.c
/optee_os/lib/libutils/ext/include/asm.S
/optee_os/lib/libutils/isoc/newlib/strtoul.c
/optee_os/mk/cc-option.mk
/optee_os/mk/config.mk
/optee_os/scripts/pem_to_pub_c.py
/optee_os/scripts/sign_encrypt.py
/optee_os/scripts/ts_bin_to_c.py
/optee_os/ta/arch/arm/link.mk
/optee_os/ta/mk/ta_dev_kit.mk
/optee_os/ta/pkcs11/src/pkcs11_attributes.c
/optee_os/ta/pkcs11/src/pkcs11_helpers.c
919a5a6806-Oct-2020 Jerome Forissier <jerome@forissier.org>

Use fallthrough pseudo-keyword in switch/case statements

Use fallthrough; in switch/case statements. Imported libraries
(libtomcrypt, libmbedtls) are not modified to minimize differences with
upstre

Use fallthrough pseudo-keyword in switch/case statements

Use fallthrough; in switch/case statements. Imported libraries
(libtomcrypt, libmbedtls) are not modified to minimize differences with
upstream.

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

show more ...

b941690924-Sep-2020 Jens Wiklander <jens.wiklander@linaro.org>

Provide TEE_ATTR_FLAG_VALUE and TEE_ATTR_FLAG_PUBLIC

Provides TEE_ATTR_FLAG_VALUE and TEE_ATTR_FLAG_PUBLIC which are defined
already in GP v1.0 [1] and also expected in GP v1.1 [2]. The old
TEE_ATTR

Provide TEE_ATTR_FLAG_VALUE and TEE_ATTR_FLAG_PUBLIC

Provides TEE_ATTR_FLAG_VALUE and TEE_ATTR_FLAG_PUBLIC which are defined
already in GP v1.0 [1] and also expected in GP v1.1 [2]. The old
TEE_ATTR_BIT_VALUE and TEE_ATTR_BIT_PROTECTED are kept for backwards
compatibility for now.

[1]: GlobalPlatform TEE Internal API Specification v1.0
[2]: GlobalPlatform TEE Internal Core API Specification v1.1

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

show more ...

ee2f75af09-Sep-2020 Jens Wiklander <jens.wiklander@linaro.org>

libutee: fix TEE_GetOperationInfoMultiple()

The size parameter passed to TEE_GetOperationInfoMultiple() tells the
size of the op_info buffer. The maximum number of keys which can be
contained in the

libutee: fix TEE_GetOperationInfoMultiple()

The size parameter passed to TEE_GetOperationInfoMultiple() tells the
size of the op_info buffer. The maximum number of keys which can be
contained in the struct can be calculated from this size parameter.

Prior to this patch is was assumed that the caller by this specified the
exact number of keys to report. This is not correct as the size
parameter is only the upper limit. Fix this by instead figuring out how
many keys (one or two) needs to be returned and after that check if the
buffer is large enough.

Fixes: 05304565f188 ("GP11 : TEE_GetOperationInfoMultiple")
Acked-by: Etienne Carriere <etienne.carriere@linaro.org>
Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org>

show more ...

12345678910>>...18