History log of /optee_os/core/tee/ (Results 526 – 550 of 584)
Revision Date Author Comments
(<<< Hide modified files)
(Show modified files >>>)
ab35d7ad28-Apr-2015 Cedric Chaumont <cedric.chaumont@st.com>

GP Internal Core API v1.1 : TEE configuration properties

Signed-off-by: Cedric Chaumont <cedric.chaumont@st.com>
Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org>
Reviewed-by: Jerome Forissier

GP Internal Core API v1.1 : TEE configuration properties

Signed-off-by: Cedric Chaumont <cedric.chaumont@st.com>
Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org>
Reviewed-by: Jerome Forissier <jerome.forissier@linaro.org>
Reviewed-by: Pascal Brand <pascal.brand@linaro.org>
Tested-by: Cedric Chaumont <cedric.chaumont@linaro.org> (STM boards)
Tested-by: Cedric Chaumont <cedric.chaumont@linaro.org> (ARM Juno board)

show more ...


/optee_os/.travis.yml
/optee_os/README.md
/optee_os/core/arch/arm/arm.mk
/optee_os/core/arch/arm/include/kernel/generic_boot.h
/optee_os/core/arch/arm/include/mm/tee_mm_def.h
/optee_os/core/arch/arm/kernel/generic_boot.c
/optee_os/core/arch/arm/kernel/generic_core_bootcfg.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/kern.ld.S
/optee_os/core/arch/arm/kernel/link.mk
/optee_os/core/arch/arm/kernel/sub.mk
/optee_os/core/arch/arm/kernel/tee_ta_manager.c
/optee_os/core/arch/arm/kernel/thread.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/plat-hikey/conf.mk
/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-hikey/platform_flags.mk
/optee_os/core/arch/arm/plat-mediatek/conf.mk
/optee_os/core/arch/arm/plat-mediatek/kern.ld.S
/optee_os/core/arch/arm/plat-mediatek/link.mk
/optee_os/core/arch/arm/plat-mediatek/main.c
/optee_os/core/arch/arm/plat-mediatek/mt8173_core_pos_a32.S
/optee_os/core/arch/arm/plat-mediatek/mt8173_core_pos_a64.S
/optee_os/core/arch/arm/plat-mediatek/platform_config.h
/optee_os/core/arch/arm/plat-mediatek/platform_flags.mk
/optee_os/core/arch/arm/plat-mediatek/sub.mk
/optee_os/core/arch/arm/plat-stm/conf.mk
/optee_os/core/arch/arm/plat-stm/core_bootcfg.c
/optee_os/core/arch/arm/plat-stm/kern.ld.S
/optee_os/core/arch/arm/plat-stm/link.mk
/optee_os/core/arch/arm/plat-stm/main.c
/optee_os/core/arch/arm/plat-stm/platform_config.h
/optee_os/core/arch/arm/plat-stm/sub.mk
/optee_os/core/arch/arm/plat-stm/system_config.mk
/optee_os/core/arch/arm/plat-stm/tz_sinit.S
/optee_os/core/arch/arm/plat-sunxi/conf.mk
/optee_os/core/arch/arm/plat-sunxi/console.c
/optee_os/core/arch/arm/plat-sunxi/kern.ld.S
/optee_os/core/arch/arm/plat-sunxi/main.c
/optee_os/core/arch/arm/plat-sunxi/platform_config.h
/optee_os/core/arch/arm/plat-sunxi/sub.mk
/optee_os/core/arch/arm/plat-vexpress/conf.mk
/optee_os/core/arch/arm/plat-vexpress/main.c
/optee_os/core/arch/arm/plat-vexpress/platform_config.h
/optee_os/core/arch/arm/plat-vexpress/sub.mk
/optee_os/core/arch/arm/sta/core_self_tests.c
/optee_os/core/arch/arm/sta/sub.mk
/optee_os/core/arch/arm/tee/entry.c
/optee_os/core/drivers/serial8250_uart.c
/optee_os/core/drivers/sub.mk
/optee_os/core/include/console.h
/optee_os/core/include/drivers/serial8250_uart.h
/optee_os/core/include/kernel/tee_common_otp.h
/optee_os/core/include/kernel/tee_common_unpg.h
/optee_os/core/include/kernel/tee_dispatch.h
/optee_os/core/include/kernel/tee_rpc_types.h
/optee_os/core/include/kernel/tee_ta_manager_unpg.h
tee_svc.c
/optee_os/lib/libutee/include/tee_api_defines.h
/optee_os/lib/libutee/include/user_ta_header.h
/optee_os/lib/libutee/include/utee_defines.h
/optee_os/lib/libutee/include/utee_types.h
/optee_os/lib/libutee/tee_api.c
/optee_os/lib/libutee/tee_api_objects.c
/optee_os/lib/libutee/tee_api_property.c
/optee_os/lib/libutee/tee_user_mem.c
/optee_os/lib/libutee/tee_user_mem.h
/optee_os/lib/libutils/ext/include/util.h
/optee_os/mk/compile.mk
/optee_os/mk/config.mk
/optee_os/scripts/gen_hashed_bin.py
/optee_os/scripts/setup_mtk_optee.sh
/optee_os/ta/arch/arm/arm.mk
/optee_os/ta/arch/arm/user_ta_header.c
855171e104-May-2015 Jerome Forissier <jerome.forissier@linaro.org>

crypto: initialize with service_init()

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

crypto: initialize with service_init()

Signed-off-by: Jerome Forissier <jerome.forissier@linaro.org>
Reviewed-by: Joakim Bech <joakim.bech@linaro.org>
Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org>
Reviewed-by: Pascal Brand <pascal.brand@linaro.org>

show more ...


/optee_os/.travis.yml
/optee_os/Makefile
/optee_os/README.md
/optee_os/core/arch/arm/include/arm.h
/optee_os/core/arch/arm/include/arm64.h
/optee_os/core/arch/arm/include/arm64_macros.S
/optee_os/core/arch/arm/include/kernel/generic_boot.h
/optee_os/core/arch/arm/include/kernel/misc.h
/optee_os/core/arch/arm/include/kernel/pm_stubs.h
/optee_os/core/arch/arm/include/kernel/tee_l2cc_mutex.h
/optee_os/core/arch/arm/include/kernel/thread.h
/optee_os/core/arch/arm/include/kernel/tz_ssvce.h
/optee_os/core/arch/arm/include/mm/core_mmu.h
/optee_os/core/arch/arm/include/tee/arch_svc.h
/optee_os/core/arch/arm/include/tee/entry.h
/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_core_bootcfg.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/kern.ld.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/pm_stubs.c
/optee_os/core/arch/arm/kernel/proc_a64.S
/optee_os/core/arch/arm/kernel/spin_lock_a64.S
/optee_os/core/arch/arm/kernel/ssvce_a64.S
/optee_os/core/arch/arm/kernel/sub.mk
/optee_os/core/arch/arm/kernel/tee_l2cc_mutex.c
/optee_os/core/arch/arm/kernel/tee_ta_manager.c
/optee_os/core/arch/arm/kernel/thread.c
/optee_os/core/arch/arm/kernel/thread_a64.S
/optee_os/core/arch/arm/kernel/thread_private.h
/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/tee_mm_unpg.c
/optee_os/core/arch/arm/mm/tee_pager.c
/optee_os/core/arch/arm/plat-hikey/conf.mk
/optee_os/core/arch/arm/plat-hikey/kern.ld.S
/optee_os/core/arch/arm/plat-hikey/link.mk
/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-hikey/platform_flags.mk
/optee_os/core/arch/arm/plat-hikey/sub.mk
/optee_os/core/arch/arm/plat-stm/conf.mk
/optee_os/core/arch/arm/plat-stm/link.mk
/optee_os/core/arch/arm/plat-stm/main.c
/optee_os/core/arch/arm/plat-stm/sub.mk
/optee_os/core/arch/arm/plat-sunxi/conf.mk
/optee_os/core/arch/arm/plat-sunxi/link.mk
/optee_os/core/arch/arm/plat-sunxi/main.c
/optee_os/core/arch/arm/plat-sunxi/sub.mk
/optee_os/core/arch/arm/plat-vexpress/conf.mk
/optee_os/core/arch/arm/plat-vexpress/juno_core_pos_a64.S
/optee_os/core/arch/arm/plat-vexpress/kern.ld.S
/optee_os/core/arch/arm/plat-vexpress/link.mk
/optee_os/core/arch/arm/plat-vexpress/main.c
/optee_os/core/arch/arm/plat-vexpress/platform_config.h
/optee_os/core/arch/arm/plat-vexpress/sub.mk
/optee_os/core/arch/arm/sta/sta_self_tests.c
/optee_os/core/arch/arm/tee/arch_svc.c
/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.c
/optee_os/core/arch/arm/tee/init.c
/optee_os/core/arch/arm/tee/sub.mk
/optee_os/core/core.mk
/optee_os/core/include/kernel/tee_common_otp.h
/optee_os/core/include/kernel/tee_common_unpg.h
/optee_os/core/include/kernel/tee_dispatch.h
/optee_os/core/include/kernel/tee_ta_manager_unpg.h
/optee_os/core/include/kernel/trace_ta.h
/optee_os/core/include/tee/tee_cryp_provider.h
/optee_os/core/kernel/assert.c
/optee_os/core/lib/libtomcrypt/src/pk/dh/dh.c
tee_cryp_utl.c
/optee_os/documentation/debug.md
/optee_os/lib/libutee/tee_api.c
/optee_os/lib/libutee/tee_api_operations.c
/optee_os/lib/libutee/tee_api_property.c
/optee_os/lib/libutils/isoc/bget_malloc.c
/optee_os/mk/checkconf.mk
/optee_os/mk/compile.mk
/optee_os/mk/config.mk
/optee_os/mk/lib.mk
/optee_os/scripts/config.linux-linaro-tracking.a226b22057c22b433caafc58eeae6e9b13ac6c8d.patch
/optee_os/scripts/juno.dts.linux-linaro-tracking.a226b22057c22b433caafc58eeae6e9b13ac6c8d.patch
/optee_os/scripts/setup_juno_optee.sh
/optee_os/ta/arch/arm/link.mk
/optee_os/ta/mk/ta_dev_kit.mk
/optee_os/ta/ta.mk
7583c59e27-Mar-2015 Cedric Chaumont <cedric.chaumont@st.com>

GP Internal Core API v1.1 : add new functions, panicked IDs

- Add new functions (that will replace deprecated functions)
TEE_GetObjectInfo1, TEE_RestrictObjectUsage1,
TEE_CopyObjectAttributes1, TEE_

GP Internal Core API v1.1 : add new functions, panicked IDs

- Add new functions (that will replace deprecated functions)
TEE_GetObjectInfo1, TEE_RestrictObjectUsage1,
TEE_CopyObjectAttributes1, TEE_CloseAndDeletePersistentObject1

- Support of deprecated functions available (will be removed in future release).
Note: TEE_ERROR_STORAGE_NOT_AVAILABLE case not implemented in OP-TEE core
(e.g. media removal)

- Add panicked functions identifiers (debug purpose)

Signed-off-by: Cedric Chaumont <cedric.chaumont@st.com>
Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org>
Tested-by: Cedric Chaumont <cedric.chaumont@linaro.org> (STM boards)
Tested-by: Cedric Chaumont <cedric.chaumont@linaro.org> (ARM Juno board)

show more ...

c9b9148913-Mar-2015 Pascal Brand <pascal.brand@st.com>

Fix RSA key pair generation when public exponent is provided

Reviewed-by: Jerome Forissier <jerome.forissier@linaro.org>
Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org>
Tested-by: Pascal Bra

Fix RSA key pair generation when public exponent is provided

Reviewed-by: Jerome Forissier <jerome.forissier@linaro.org>
Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org>
Tested-by: Pascal Brand <pascal.brand@linaro.org> (STM platform)
Signed-off-by: Pascal Brand <pascal.brand@st.com>

show more ...


/optee_os/Makefile
/optee_os/core/arch/arm/arm.mk
/optee_os/core/arch/arm/include/arm.h
/optee_os/core/arch/arm/include/arm32.h
/optee_os/core/arch/arm/include/arm32_macros.S
/optee_os/core/arch/arm/include/kernel/kta_types.h
/optee_os/core/arch/arm/include/kernel/misc.h
/optee_os/core/arch/arm/include/kernel/mutex.h
/optee_os/core/arch/arm/include/kernel/tee_l2cc_mutex.h
/optee_os/core/arch/arm/include/kernel/thread.h
/optee_os/core/arch/arm/include/kernel/thread_defs.h
/optee_os/core/arch/arm/include/kernel/time_source.h
/optee_os/core/arch/arm/include/kernel/tz_proc.h
/optee_os/core/arch/arm/include/kernel/tz_proc_def.h
/optee_os/core/arch/arm/include/kernel/tz_ssvce.h
/optee_os/core/arch/arm/include/kernel/tz_ssvce_def.h
/optee_os/core/arch/arm/include/kernel/tz_ssvce_pl310.h
/optee_os/core/arch/arm/include/kernel/vfp.h
/optee_os/core/arch/arm/include/mm/core_memprot.h
/optee_os/core/arch/arm/include/mm/core_mmu.h
/optee_os/core/arch/arm/include/mm/tee_mm_def.h
/optee_os/core/arch/arm/include/mm/tee_mmu_defs.h
/optee_os/core/arch/arm/include/mm/tee_pager.h
/optee_os/core/arch/arm/include/sm/sm.h
/optee_os/core/arch/arm/include/sm/sm_defs.h
/optee_os/core/arch/arm/include/sm/tee_mon.h
/optee_os/core/arch/arm/include/sm/teesmc.h
/optee_os/core/arch/arm/include/sm/teesmc_optee.h
/optee_os/core/arch/arm/include/sm/teesmc_opteed.h
/optee_os/core/arch/arm/include/sm/teesmc_opteed_macros.h
/optee_os/core/arch/arm/include/tee/arch_svc.h
/optee_os/core/arch/arm/include/tee/entry.h
/optee_os/core/arch/arm/kernel/misc_a32.S
/optee_os/core/arch/arm/kernel/mutex.c
/optee_os/core/arch/arm/kernel/proc_a32.S
/optee_os/core/arch/arm/kernel/ssvce_a32.S
/optee_os/core/arch/arm/kernel/sub.mk
/optee_os/core/arch/arm/kernel/tee_l2cc_mutex.c
/optee_os/core/arch/arm/kernel/tee_ta_manager.c
/optee_os/core/arch/arm/kernel/tee_time.c
/optee_os/core/arch/arm/kernel/tee_time_arm_cntpct.c
/optee_os/core/arch/arm/kernel/tee_time_ree.c
/optee_os/core/arch/arm/kernel/tee_time_rtt.c
/optee_os/core/arch/arm/kernel/tee_time_unpg.c
/optee_os/core/arch/arm/kernel/thread.c
/optee_os/core/arch/arm/kernel/thread_a32.S
/optee_os/core/arch/arm/kernel/thread_private.h
/optee_os/core/arch/arm/kernel/trace_ext.c
/optee_os/core/arch/arm/kernel/tz_ssvce_pl310_a32.S
/optee_os/core/arch/arm/kernel/vfp.c
/optee_os/core/arch/arm/kernel/vfp_a32.S
/optee_os/core/arch/arm/kernel/vfp_private.h
/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_private.h
/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_mm.c
/optee_os/core/arch/arm/mm/tee_mm_unpg.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-stm/.gitignore
/optee_os/core/arch/arm/plat-stm/asc.S
/optee_os/core/arch/arm/plat-stm/asc.h
/optee_os/core/arch/arm/plat-stm/cache_maintenance.c
/optee_os/core/arch/arm/plat-stm/conf.mk
/optee_os/core/arch/arm/plat-stm/core_bootcfg.c
/optee_os/core/arch/arm/plat-stm/core_chip_cannes.c
/optee_os/core/arch/arm/plat-stm/core_chip_orly2.c
/optee_os/core/arch/arm/plat-stm/link.mk
/optee_os/core/arch/arm/plat-stm/main.c
/optee_os/core/arch/arm/plat-stm/platform_config.h
/optee_os/core/arch/arm/plat-stm/platform_flags.mk
/optee_os/core/arch/arm/plat-stm/rng_support.c
/optee_os/core/arch/arm/plat-stm/sub.mk
/optee_os/core/arch/arm/plat-stm/system_config.in
/optee_os/core/arch/arm/plat-stm/tee_common_otp.c
/optee_os/core/arch/arm/plat-stm/tz-template.lds
/optee_os/core/arch/arm/plat-stm/tz_a9init.S
/optee_os/core/arch/arm/plat-stm/tz_sinit.S
/optee_os/core/arch/arm/plat-sunxi/conf.mk
/optee_os/core/arch/arm/plat-sunxi/console.c
/optee_os/core/arch/arm/plat-sunxi/core_bootcfg.c
/optee_os/core/arch/arm/plat-sunxi/core_chip.c
/optee_os/core/arch/arm/plat-sunxi/entry.S
/optee_os/core/arch/arm/plat-sunxi/head.c
/optee_os/core/arch/arm/plat-sunxi/kern.ld.S
/optee_os/core/arch/arm/plat-sunxi/link.mk
/optee_os/core/arch/arm/plat-sunxi/main.c
/optee_os/core/arch/arm/plat-sunxi/platform.c
/optee_os/core/arch/arm/plat-sunxi/platform.h
/optee_os/core/arch/arm/plat-sunxi/platform_config.h
/optee_os/core/arch/arm/plat-sunxi/platform_flags.mk
/optee_os/core/arch/arm/plat-sunxi/rng_support.c
/optee_os/core/arch/arm/plat-sunxi/smp_boot.S
/optee_os/core/arch/arm/plat-sunxi/smp_fixup.S
/optee_os/core/arch/arm/plat-sunxi/sub.mk
/optee_os/core/arch/arm/plat-sunxi/tee_common_otp.c
/optee_os/core/arch/arm/plat-vexpress/conf.mk
/optee_os/core/arch/arm/plat-vexpress/core_bootcfg.c
/optee_os/core/arch/arm/plat-vexpress/core_chip.c
/optee_os/core/arch/arm/plat-vexpress/entry_a32.S
/optee_os/core/arch/arm/plat-vexpress/juno_core_pos_a32.S
/optee_os/core/arch/arm/plat-vexpress/kern.ld.S
/optee_os/core/arch/arm/plat-vexpress/link.mk
/optee_os/core/arch/arm/plat-vexpress/main.c
/optee_os/core/arch/arm/plat-vexpress/plat_tee_func.c
/optee_os/core/arch/arm/plat-vexpress/plat_tee_func.h
/optee_os/core/arch/arm/plat-vexpress/platform_config.h
/optee_os/core/arch/arm/plat-vexpress/platform_flags.mk
/optee_os/core/arch/arm/plat-vexpress/pm_debug.h
/optee_os/core/arch/arm/plat-vexpress/sub.mk
/optee_os/core/arch/arm/plat-vexpress/tee_common_otp.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/sm/sub.mk
/optee_os/core/arch/arm/sta/core_self_tests.c
/optee_os/core/arch/arm/sta/core_self_tests.h
/optee_os/core/arch/arm/sta/se_api_self_tests.c
/optee_os/core/arch/arm/sta/sta_self_tests.c
/optee_os/core/arch/arm/sta/sub.mk
/optee_os/core/arch/arm/tee/arch_svc.c
/optee_os/core/arch/arm/tee/arch_svc_a32.S
/optee_os/core/arch/arm/tee/arch_svc_private.h
/optee_os/core/arch/arm/tee/arch_tee_fs.c
/optee_os/core/arch/arm/tee/entry.c
/optee_os/core/arch/arm/tee/init.c
/optee_os/core/arch/arm/tee/sub.mk
/optee_os/core/arch/arm/tee/tee_rpmb.c
/optee_os/core/lib/libtomcrypt/src/hashes/sha1_arm32_ce_a32.S
/optee_os/core/lib/libtomcrypt/src/hashes/sha2/sha256_arm32_ce_a32.S
/optee_os/core/lib/libtomcrypt/src/hashes/sha2/sub.mk
/optee_os/core/lib/libtomcrypt/src/hashes/sub.mk
tee_svc_cryp.c
/optee_os/documentation/build_system.md
/optee_os/documentation/crypto.md
/optee_os/documentation/file_structure.md
/optee_os/documentation/optee_design.md
/optee_os/lib/libmpa/arch/arm/mpa_a32.S
/optee_os/lib/libmpa/arch/arm/sub.mk
/optee_os/lib/libmpa/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_misc.c
/optee_os/lib/libutee/arch/arm/utee_syscalls_asm.S
/optee_os/lib/libutee/tee_user_mem.c
/optee_os/lib/libutils/isoc/arch/arm/arm32_aeabi_divmod.c
/optee_os/lib/libutils/isoc/arch/arm/arm32_aeabi_divmod_a32.S
/optee_os/lib/libutils/isoc/arch/arm/arm32_aeabi_ldivmod.c
/optee_os/lib/libutils/isoc/arch/arm/arm32_aeabi_ldivmod_a32.S
/optee_os/lib/libutils/isoc/arch/arm/sub.mk
/optee_os/lib/libutils/isoc/bget_malloc.c
/optee_os/lib/libutils/isoc/sub.mk
/optee_os/scripts/setup_fvp_optee.sh
/optee_os/scripts/setup_qemu_optee.sh
/optee_os/ta/arch/arm/arm.mk
/optee_os/ta/arch/arm/fix_ta_binary
/optee_os/ta/arch/arm/link.mk
/optee_os/ta/arch/arm/user_ta_elf_arm.lds
/optee_os/ta/arch/arm/user_ta_header.c
/optee_os/ta/mk/ta_dev_kit.mk
61ea19fd19-Mar-2015 Jens Wiklander <jens.wiklander@linaro.org>

arm32: update types to be 64bit ready

Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org>
Reviewed-by: Pascal Brand <pascal.brand@linaro.org>

851aa85819-Mar-2015 Jens Wiklander <jens.wiklander@linaro.org>

Fix some 64bit printf warnings

Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org>
Reviewed-by: Pascal Brand <pascal.brand@linaro.org>

7f74c64a01-Apr-2015 Pascal Brand <pascal.brand@st.com>

Update ABI-32bits and v1.1 uint32_t changes

Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org>
Tested-by: Pascal Brand <pascal.brand@linaro.org> (STM platform)
Signed-off-by: Pascal Brand <pasc

Update ABI-32bits and v1.1 uint32_t changes

Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org>
Tested-by: Pascal Brand <pascal.brand@linaro.org> (STM platform)
Signed-off-by: Pascal Brand <pascal.brand@st.com>

show more ...


/optee_os/core/arch/arm32/include/kernel/thread.h
/optee_os/core/arch/arm32/include/tee/arch_svc.h
/optee_os/core/arch/arm32/kernel/sub.mk
/optee_os/core/arch/arm32/kernel/tee_ta_manager.c
/optee_os/core/arch/arm32/kernel/tee_time_arm_cntpct.c
/optee_os/core/arch/arm32/kernel/thread.c
/optee_os/core/arch/arm32/kernel/thread_a32.S
/optee_os/core/arch/arm32/mm/core_mmu_lpae.c
/optee_os/core/arch/arm32/mm/core_mmu_v7.c
/optee_os/core/arch/arm32/mm/tee_mmu.c
/optee_os/core/arch/arm32/mm/tee_pager.c
/optee_os/core/arch/arm32/plat-stm/conf.mk
/optee_os/core/arch/arm32/plat-sunxi/conf.mk
/optee_os/core/arch/arm32/plat-sunxi/main.c
/optee_os/core/arch/arm32/plat-vexpress/conf.mk
/optee_os/core/arch/arm32/plat-vexpress/main.c
/optee_os/core/arch/arm32/tee/arch_svc.c
/optee_os/core/arch/arm32/tee/arch_svc_a32.S
/optee_os/core/core.mk
/optee_os/core/drivers/gic.c
/optee_os/core/drivers/sub.mk
/optee_os/core/include/mm/tee_mmu.h
/optee_os/core/include/tee/tee_svc_storage.h
tee_svc_storage.c
/optee_os/lib/libutee/abort.c
/optee_os/lib/libutee/assert.c
/optee_os/lib/libutee/include/tee_api.h
/optee_os/lib/libutee/include/utee_syscalls.h
/optee_os/lib/libutee/tee_api.c
/optee_os/lib/libutee/tee_api_arith.c
/optee_os/lib/libutee/tee_api_objects.c
/optee_os/lib/libutee/tee_api_operations.c
/optee_os/lib/libutee/tee_api_property.c
/optee_os/lib/libutils/isoc/include/inttypes.h
/optee_os/lib/libutils/isoc/include/stdint.h
/optee_os/mk/config.mk
/optee_os/ta/arch/arm32/fix_ta_binary
/optee_os/ta/arch/arm32/link.mk
/optee_os/ta/mk/ta_dev_kit.mk
8a1e7b8930-Mar-2015 Jerome Forissier <jerome.forissier@linaro.org>

Rename CFG_TRACE_LEVEL to TRACE_LEVEL

The trace level macro is not meant to be configured directly, it takes its
value from CFG_TEE_CORE_LOG_LEVEL (when the TEE core is compiled) or from
CFG_TEE_TA_

Rename CFG_TRACE_LEVEL to TRACE_LEVEL

The trace level macro is not meant to be configured directly, it takes its
value from CFG_TEE_CORE_LOG_LEVEL (when the TEE core is compiled) or from
CFG_TEE_TA_LOG_LEVEL (when user libraries are compiled). Therefore it should
not have a CFG_ prefix.

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

show more ...


/optee_os/core/arch/arm32/arm32.mk
/optee_os/core/arch/arm32/include/arm.h
/optee_os/core/arch/arm32/include/arm32.h
/optee_os/core/arch/arm32/include/kernel/thread.h
/optee_os/core/arch/arm32/kernel/misc_a32.S
/optee_os/core/arch/arm32/kernel/mutex.c
/optee_os/core/arch/arm32/kernel/proc_a32.S
/optee_os/core/arch/arm32/kernel/ssvce_a32.S
/optee_os/core/arch/arm32/kernel/tee_time_arm_cntpct.c
/optee_os/core/arch/arm32/kernel/thread.c
/optee_os/core/arch/arm32/kernel/thread_a32.S
/optee_os/core/arch/arm32/kernel/trace_ext.c
/optee_os/core/arch/arm32/kernel/vfp.c
/optee_os/core/arch/arm32/mm/core_mmu_lpae.c
/optee_os/core/arch/arm32/mm/core_mmu_v7.c
/optee_os/core/arch/arm32/mm/tee_mmu.c
/optee_os/core/arch/arm32/mm/tee_pager.c
/optee_os/core/arch/arm32/plat-stm/asc.h
/optee_os/core/arch/arm32/plat-stm/cache_maintenance.c
/optee_os/core/arch/arm32/plat-stm/main.c
/optee_os/core/arch/arm32/plat-stm/tz_sinit.S
/optee_os/core/arch/arm32/plat-sunxi/conf.mk
/optee_os/core/arch/arm32/plat-sunxi/console.c
/optee_os/core/arch/arm32/plat-sunxi/entry.S
/optee_os/core/arch/arm32/plat-sunxi/main.c
/optee_os/core/arch/arm32/plat-sunxi/platform.c
/optee_os/core/arch/arm32/plat-sunxi/smp_boot.S
/optee_os/core/arch/arm32/plat-vexpress/conf.mk
/optee_os/core/arch/arm32/plat-vexpress/entry_a32.S
/optee_os/core/arch/arm32/plat-vexpress/juno_core_pos_a32.S
/optee_os/core/arch/arm32/plat-vexpress/main.c
/optee_os/core/arch/arm32/plat-vexpress/platform_flags.mk
/optee_os/core/arch/arm32/sm/sm.c
/optee_os/core/arch/arm32/sm/sm_a32.S
/optee_os/core/arch/arm32/tee/arch_svc.c
/optee_os/core/arch/arm32/tee/arch_svc_a32.S
/optee_os/core/arch/arm32/tee/init.c
/optee_os/core/core.mk
/optee_os/core/drivers/pl011.c
/optee_os/core/drivers/sub.mk
/optee_os/core/drivers/sunxi_uart.c
/optee_os/core/include/console.h
/optee_os/core/include/drivers/pl011.h
/optee_os/core/include/drivers/sunxi_uart.h
tee_svc.c
/optee_os/lib/libutee/tee_user_mem.c
/optee_os/lib/libutee/trace_ext.c
/optee_os/lib/libutils/ext/include/trace.h
/optee_os/lib/libutils/ext/trace.c
/optee_os/ta/arch/arm32/arm32.mk
/optee_os/ta/arch/arm32/user_ta_header.c
/optee_os/ta/mk/ta_dev_kit.mk
/optee_os/ta/ta.mk
86ffc42017-Mar-2015 SY Chiu <sy.chiu@linaro.org>

Added new interface in PRNG Hal to inject entropy

- Added add_entropy interface in crypto_ops.prng, and expose
new interface tee_prng_add_entropy() for platform vendor to
inject entropy.
- Injec

Added new interface in PRNG Hal to inject entropy

- Added add_entropy interface in crypto_ops.prng, and expose
new interface tee_prng_add_entropy() for platform vendor to
inject entropy.
- Inject entropy using current timestamp every time
when a session is opened or closed.

Signed-off-by: SY Chiu <sy.chiu@linaro.org>
Reviewed-by: Joakim Bech <joakim.bech@linaro.org>
Reviewed-by: Pascal Brand <pascal.brand@linaro.org>
Tested-by: SY Chiu <sy.chiu@linaro.org> (FVP,QEMU)
Tested-by: Pascal Brand <pascal.brand@linaro.org> (QEMU)

show more ...


/optee_os/core/arch/arm32/include/mm/tee_pager.h
/optee_os/core/arch/arm32/kernel/misc_a32.S
/optee_os/core/arch/arm32/kernel/proc_a32.S
/optee_os/core/arch/arm32/kernel/ssvce_a32.S
/optee_os/core/arch/arm32/kernel/sub.mk
/optee_os/core/arch/arm32/kernel/thread_a32.S
/optee_os/core/arch/arm32/kernel/tz_ssvce_pl310_a32.S
/optee_os/core/arch/arm32/kernel/vfp_a32.S
/optee_os/core/arch/arm32/mm/tee_pager.c
/optee_os/core/arch/arm32/plat-stm/conf.mk
/optee_os/core/arch/arm32/plat-stm/platform_flags.mk
/optee_os/core/arch/arm32/plat-sunxi/conf.mk
/optee_os/core/arch/arm32/plat-sunxi/platform_flags.mk
/optee_os/core/arch/arm32/plat-vexpress/entry_a32.S
/optee_os/core/arch/arm32/plat-vexpress/juno_core_pos_a32.S
/optee_os/core/arch/arm32/plat-vexpress/kern.ld.S
/optee_os/core/arch/arm32/plat-vexpress/link.mk
/optee_os/core/arch/arm32/plat-vexpress/main.c
/optee_os/core/arch/arm32/plat-vexpress/sub.mk
/optee_os/core/arch/arm32/sm/sm_a32.S
/optee_os/core/arch/arm32/sm/sub.mk
/optee_os/core/arch/arm32/tee/arch_svc_a32.S
/optee_os/core/arch/arm32/tee/sub.mk
/optee_os/core/include/tee/tee_cryp_provider.h
/optee_os/core/include/tee/tee_cryp_utl.h
/optee_os/core/kernel/tee_dispatch.c
/optee_os/core/lib/libtomcrypt/src/tee_ltc_provider.c
tee_cryp_utl.c
/optee_os/documentation/optee_design.md
/optee_os/lib/libutils/isoc/arch/arm32/arm32_aeabi_divmod.c
/optee_os/lib/libutils/isoc/arch/arm32/arm32_aeabi_divmod_a32.S
/optee_os/lib/libutils/isoc/arch/arm32/arm32_aeabi_ldivmod.c
/optee_os/lib/libutils/isoc/arch/arm32/arm32_aeabi_ldivmod_a32.S
/optee_os/lib/libutils/isoc/arch/arm32/sub.mk
/optee_os/scripts/gen_hashed_bin.py
177603c706-Mar-2015 Jens Wiklander <jens.wiklander@linaro.org>

Define 32-bit ABI

Defines 32-bit ABI for various types passed by reference. Either by an
explicit conversion to/from TEE_Param and TEE_Attribute or by changing
size_t to uint32_t. Affected interface

Define 32-bit ABI

Defines 32-bit ABI for various types passed by reference. Either by an
explicit conversion to/from TEE_Param and TEE_Attribute or by changing
size_t to uint32_t. Affected interfaces are SVC interface and parameters
passed to user TA inside tee_user_ta_enter().

Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org>
Tested-by: Jens Wiklander <jens.wiklander@linaro.org> (QEMU, FVP)
Reviewed-by: Pascal Brand <pascal.brand@linaro.org>
Reviewed-by: Joakim Bech <joakim.bech@linaro.org>

show more ...


/optee_os/.travis.yml
/optee_os/core/arch/arm32/include/kernel/thread.h
/optee_os/core/arch/arm32/kernel/tee_ta_manager.c
/optee_os/core/arch/arm32/kernel/thread.c
/optee_os/core/arch/arm32/kernel/thread_asm.S
/optee_os/core/arch/arm32/kernel/thread_private.h
/optee_os/core/arch/arm32/plat-stm/conf.mk
/optee_os/core/arch/arm32/plat-stm/link.mk
/optee_os/core/arch/arm32/plat-stm/main.c
/optee_os/core/arch/arm32/plat-stm/platform_config.h
/optee_os/core/arch/arm32/plat-sunxi/conf.mk
/optee_os/core/arch/arm32/plat-sunxi/link.mk
/optee_os/core/arch/arm32/plat-sunxi/main.c
/optee_os/core/arch/arm32/plat-sunxi/platform_config.h
/optee_os/core/arch/arm32/plat-vexpress/conf.mk
/optee_os/core/arch/arm32/plat-vexpress/entry.S
/optee_os/core/arch/arm32/plat-vexpress/link.mk
/optee_os/core/arch/arm32/plat-vexpress/main.c
/optee_os/core/arch/arm32/plat-vexpress/platform_config.h
/optee_os/core/arch/arm32/plat-vexpress/platform_flags.mk
/optee_os/core/core.mk
/optee_os/core/include/tee/abi.h
/optee_os/core/include/tee/tee_svc.h
/optee_os/core/include/tee/tee_svc_cryp.h
/optee_os/core/kernel/tee_dispatch.c
abi.c
sub.mk
tee_svc.c
tee_svc_cryp.c
/optee_os/documentation/build_system.md
/optee_os/lib/libutee/arch/arm32/user_ta_entry.c
/optee_os/lib/libutee/include/tee_api.h
/optee_os/lib/libutee/include/tee_api_defines.h
/optee_os/lib/libutee/include/tee_api_types.h
/optee_os/lib/libutee/tee_api.c
/optee_os/lib/libutee/tee_api_arith.c
/optee_os/lib/libutee/tee_api_objects.c
/optee_os/lib/libutee/tee_api_operations.c
/optee_os/lib/libutee/tee_api_property.c
/optee_os/mk/compile.mk
/optee_os/mk/gcc.mk
/optee_os/mk/lib.mk
/optee_os/ta/ta.mk
6069995709-Mar-2015 Pascal Brand <pascal.brand@st.com>

Check of the identity of the TA invoking a TA operation

On the following operations
invoke command
close
cancel
the one that is at the origin of the operations is checked. It could
be a

Check of the identity of the TA invoking a TA operation

On the following operations
invoke command
close
cancel
the one that is at the origin of the operations is checked. It could
be a TA or the core. In case of a TA, this is checked that it is the
same as the one that opened the session.

Reviewed-by: Jerome Forissier <jerome.forissier@linaro.org>
Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org>
Tested-by: Pascal Brand <pascal.brand@linaro.org> (QEMU)
Signed-off-by: Pascal Brand <pascal.brand@st.com>

show more ...

7018ae0104-Mar-2015 SY Chiu <sy.chiu@linaro.org>

Added Abstract Layer for PRNG

- Extended crypto_ops with a new prng_ops which handles prng operations.
- Replace calls to get_rng_array() with crypto_ops.prng.read(), this
enforces PRNG operations

Added Abstract Layer for PRNG

- Extended crypto_ops with a new prng_ops which handles prng operations.
- Replace calls to get_rng_array() with crypto_ops.prng.read(), this
enforces PRNG operations go through PRNG HAL, instead of invoking
platform-dependent PRNG implementation directly.
- Create a new mpa_set_random_generator() interface for mpa user to register
a callback to generate random number, instead of expecting the user to provide
a get_rng_array(). This enables libmpa uses crypto_ops.prng.read().
- Added a new configuration CFG_WITH_PRNG_SOFTWARE to toggle SW/HW-dependent
PRNG implementation.
- The SW PRNG implementation is supplied by backed cryto library(libtomcrypt).
- Added a new SW PRNG 'Fortuna' to libtomcrypt.
- Added a new SW PRNG 'RC4' to libtomcrypt, when Fortuna is not available due
to AES and SHA256 not available, fallback to RC4.
- Get rid of bad implemented SW PRNG in plat_vexpress(rng_support.c).
- If CFG_WITH_PRNG_SOFTWARE is not enabled, the platform needs to supply
hw_get_random_byte().

Signed-off-by: SY Chiu <sy.chiu@linaro.org>
Reviewed-by: Pascal Brand <pascal.brand@linaro.org>
Reviewed-by: Joakim Bech <joakim.bech@linaro.org>
Reviewed-by: Jerome Forissier <jerome.forissier@linaro.org>
Tested-by: Pascal Brand <pascal.brand@linaro.org> (STM platform)
Tested-by: SY Chiu <sy.chiu@linaro.org> (QEMU)

show more ...

1fd927eb11-Mar-2015 James Kung <james.kung@linaro.org>

TEE Core File Operation Abstraction Layer

Tested-by: James Kung <james.kung@linaro.org> (QEMU platform)
Signed-off-by: James Kung <james.kung@linaro.org>
Reviewed-by: Jerome Forissier <jerome.foriss

TEE Core File Operation Abstraction Layer

Tested-by: James Kung <james.kung@linaro.org> (QEMU platform)
Signed-off-by: James Kung <james.kung@linaro.org>
Reviewed-by: Jerome Forissier <jerome.forissier@linaro.org>
Reviewed-by: Joakim Bech <joakim.bech@linaro.org>
Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org>

show more ...

7c876f1202-Mar-2015 Pascal Brand <pascal.brand@st.com>

CFG_TEE_CORE_TA_TRACE to disable TA traces

In order to disable TA traces, whatever the compilation options of the
TAs, CFG_TEE_CORE_TA_TRACE can be defined to n

Reviewed-by: Jerome Forissier <jerom

CFG_TEE_CORE_TA_TRACE to disable TA traces

In order to disable TA traces, whatever the compilation options of the
TAs, CFG_TEE_CORE_TA_TRACE can be defined to n

Reviewed-by: Jerome Forissier <jerome.forissier@linaro.org>
Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org>
Tested-by: Pascal Brand <pascal.brand@linaro.org> (STM platform)
Signed-off-by: Pascal Brand <pascal.brand@st.com>

show more ...


/optee_os/core/arch/arm32/include/arm32.h
/optee_os/core/arch/arm32/include/mm/core_mmu.h
/optee_os/core/arch/arm32/include/mm/tee_mm_def.h
/optee_os/core/arch/arm32/include/mm/tee_mmu_defs.h
/optee_os/core/arch/arm32/include/mm/tee_pager.h
/optee_os/core/arch/arm32/kernel/tee_ta_manager.c
/optee_os/core/arch/arm32/kernel/tee_time_arm_cntpct.c
/optee_os/core/arch/arm32/kernel/thread.c
/optee_os/core/arch/arm32/kernel/thread_private.h
/optee_os/core/arch/arm32/mm/core_mmu.c
/optee_os/core/arch/arm32/mm/core_mmu_lpae.c
/optee_os/core/arch/arm32/mm/core_mmu_private.h
/optee_os/core/arch/arm32/mm/core_mmu_v7.c
/optee_os/core/arch/arm32/mm/sub.mk
/optee_os/core/arch/arm32/mm/tee_mm.c
/optee_os/core/arch/arm32/mm/tee_mmu.c
/optee_os/core/arch/arm32/mm/tee_pager.c
/optee_os/core/arch/arm32/plat-stm/core_bootcfg.c
/optee_os/core/arch/arm32/plat-stm/main.c
/optee_os/core/arch/arm32/plat-stm/platform_config.h
/optee_os/core/arch/arm32/plat-stm/tz_a9init.S
/optee_os/core/arch/arm32/plat-stm/tz_sinit.S
/optee_os/core/arch/arm32/plat-sunxi/core_bootcfg.c
/optee_os/core/arch/arm32/plat-sunxi/entry.S
/optee_os/core/arch/arm32/plat-sunxi/main.c
/optee_os/core/arch/arm32/plat-sunxi/platform_config.h
/optee_os/core/arch/arm32/plat-vexpress/conf.mk
/optee_os/core/arch/arm32/plat-vexpress/core_bootcfg.c
/optee_os/core/arch/arm32/plat-vexpress/entry.S
/optee_os/core/arch/arm32/plat-vexpress/main.c
/optee_os/core/arch/arm32/plat-vexpress/platform_config.h
/optee_os/core/arch/arm32/tee/arch_svc.c
/optee_os/core/include/kernel/tee_ta_manager_unpg.h
/optee_os/core/include/mm/tee_mmu.h
/optee_os/core/include/mm/tee_mmu_types.h
/optee_os/core/lib/libtomcrypt/include/tomcrypt_custom.h
/optee_os/core/lib/libtomcrypt/src/misc/sub.mk
/optee_os/core/lib/libtomcrypt/src/pk/pkcs1/pkcs_1_oaep_decode.c
/optee_os/core/lib/libtomcrypt/src/pk/pkcs1/pkcs_1_pss_decode.c
tee_svc.c
/optee_os/lib/libutee/tee_api_operations.c
/optee_os/lib/libutils/ext/include/types_ext.h
/optee_os/mk/config.mk
/optee_os/scripts/setup_qemu_optee.sh
abd4a75012-Feb-2015 Pascal Brand <pascal.brand@st.com>

Persistent Object Sharing Rules adjust with respect to GP v1.1

This patch implements this part of the GlobalPlatform Internal Core API v1.1

Multiple handles may be opened on the same object simulta

Persistent Object Sharing Rules adjust with respect to GP v1.1

This patch implements this part of the GlobalPlatform Internal Core API v1.1

Multiple handles may be opened on the same object simultaneously using
the functions TEE_OpenPersistentObject or TEE_CreatePersistentObject,
but sharing MUST be explicitly allowed. More precisely, at any one
time the following constraints apply: If more than one handle is opened
on the same object, and if any of these object handles was opened with
the flag TEE_DATA_FLAG_ACCESS_READ, then all the object handles MUST have
been opened with the flag TEE_DATA_FLAG_SHARE_READ. There is a corresponding
constraint with the flags TEE_DATA_FLAG_ACCESS_WRITE and
TEE_DATA_FLAG_SHARE_WRITE. Accessing an object with write-meta rights is
exclusive and can never be shared.

When one of the functions TEE_OpenPersistentObject or
TEE_CreatePersistentObject is called and if opening the object would violate
these constraints, then the function returns the return code
TEE_ERROR_ACCESS_CONFLICT.

Fix #174

Reviewed-by: Jerome Forissier <jerome.forissier@linaro.org>
Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org>
Suggested-by: xlyu <jpmhesheit@gmail.com>
Tested-by: Pascal Brand <pascal.brand@linaro.org> (QEMU)
Signed-off-by: Pascal Brand <pascal.brand@st.com>

show more ...

c2e1a05319-Dec-2014 Jerome Forissier <jerome.forissier@linaro.org>

crypto API: make sure TEE_Attribute parameters are readable

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

Services that take a TEE_Attribute array for input must check that the
memory is rea

crypto API: make sure TEE_Attribute parameters are readable

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

Services that take a TEE_Attribute array for input must check that the
memory is readable before using it. This is accomplished by
check_attr_read_access(), which is either called directly by the system
service or by tee_svc_cryp_check_attr(). Buffers pointed to by 'reference'
attributes are also validated.
Then, it is no longer necessary to check accessibility in other
functions such as tee_svc_cryp_obj_store_attr_raw().

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

show more ...

fa53082803-Feb-2015 Pascal Brand <pascal.brand@st.com>

Internal API extension on Cache Operations

Following extensions are introduced:
- TEE_CacheClean()
- TEE_CacheFlush()
- TEE_CacheInvalidate()

Reviewed-by: Jerome Forissier <jerome.foris

Internal API extension on Cache Operations

Following extensions are introduced:
- TEE_CacheClean()
- TEE_CacheFlush()
- TEE_CacheInvalidate()

Reviewed-by: Jerome Forissier <jerome.forissier@linaro.org>
Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org>
Tested-by: Pascal Brand <pascal.brand@linaro.org> (STM platform)
Signed-off-by: Pascal Brand <pascal.brand@st.com>

show more ...

db5f4ae421-Jan-2015 Joakim Bech <joakim.bech@linaro.org>

Fix information leakage in key generator

When generating keys we are using the RNG available for the particular
platform in use. For some reason we always or'ed a bit in the last byte,
which means t

Fix information leakage in key generator

When generating keys we are using the RNG available for the particular
platform in use. For some reason we always or'ed a bit in the last byte,
which means that we leak information. Leaking information like this is
considered as a security flaw and therefore we have removed the line
setting this bit.

Fix #178

Signed-off-by: Joakim Bech <joakim.bech@linaro.org>
Tested-by: Joakim Bech <joakim.bech@linaro.org> (QEMU)
Reviewed-by: Jerome Forissier <jerome.forissier@linaro.org>
Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org>
Reviewed-by: Pascal Brand <pascal.brand@linaro.org>

show more ...


/optee_os/CHANGELOG.md
/optee_os/README.md
/optee_os/core/arch/arm32/include/arm32.h
/optee_os/core/arch/arm32/include/kernel/tz_ssvce_def.h
/optee_os/core/arch/arm32/include/kernel/tz_ssvce_pl310.h
/optee_os/core/arch/arm32/include/mm/tee_pager.h
/optee_os/core/arch/arm32/kernel/trace_ext.c
/optee_os/core/arch/arm32/kernel/tz_ssvce_pl310.S
/optee_os/core/arch/arm32/mm/core_mmu.c
/optee_os/core/arch/arm32/mm/tee_pager.c
/optee_os/core/arch/arm32/plat-stm/cache_maintenance.c
/optee_os/core/arch/arm32/plat-stm/system_config.in
/optee_os/core/arch/arm32/plat-stm/tz_sinit.S
/optee_os/core/arch/arm32/plat-sunxi/link.mk
/optee_os/core/arch/arm32/plat-vexpress/link.mk
/optee_os/core/lib/libtomcrypt/include/tomcrypt_misc.h
/optee_os/core/lib/libtomcrypt/src/misc/mem_neq.c
/optee_os/core/lib/libtomcrypt/src/misc/sub.mk
/optee_os/core/lib/libtomcrypt/src/pk/pkcs1/pkcs_1_oaep_decode.c
/optee_os/core/lib/libtomcrypt/src/pk/pkcs1/pkcs_1_pss_decode.c
/optee_os/core/lib/libtomcrypt/src/pk/pkcs1/pkcs_1_v1_5_decode.c
tee_svc_cryp.c
/optee_os/lib/libutee/include/utee_defines.h
/optee_os/lib/libutee/tee_api_operations.c
/optee_os/lib/libutee/tee_user_mem.c
/optee_os/lib/libutee/trace_ext.c
/optee_os/lib/libutils/ext/include/compiler.h
/optee_os/lib/libutils/ext/include/trace.h
/optee_os/lib/libutils/ext/include/util.h
/optee_os/lib/libutils/ext/trace.c
/optee_os/lib/libutils/isoc/arch/arm32/aeabi_ldivmod.c
/optee_os/lib/libutils/isoc/arch/arm32/aeabi_ldivmod_asm.S
/optee_os/lib/libutils/isoc/arch/arm32/sub.mk
/optee_os/lib/libutils/isoc/snprintf.c
/optee_os/mk/compile.mk
/optee_os/scripts/setup_fvp_optee.sh
/optee_os/scripts/setup_qemu_optee.sh
/optee_os/ta/arch/arm32/user_ta_header.c
/optee_os/ta/ta.mk
d9428c3c20-Jan-2015 SY Chiu <sy.chiu@linaro.org>

SE API: Change configuration to be prefixed with CFG_*

Signed-off-by: SY Chiu <sy.chiu@linaro.org>
Tested-by: SY Chiu <sy.chiu@linaro.org> (Modified QEMU + jcardsim)

e4d3a4a616-Dec-2014 SY Chiu <sy.chiu@linaro.org>

SE API: hide private interfaces

- Split each headers into module.h and module_priv.h, move the methods that
is only used internally by SE implementation to module_priv.h, and export
module_priv.

SE API: hide private interfaces

- Split each headers into module.h and module_priv.h, move the methods that
is only used internally by SE implementation to module_priv.h, and export
module_priv.h to rest of TEE Core
- Added new include path to se_api_self_tests.c for which needs to include
private headers
- Split aid.c and apdu.c from iso7816.c. Originally they have to be wriiten in
the same file since they share some private data structures. Now, the
private data structure can be shared via private headers.
- Split reader.c from manager.c for the same reason above.

Signed-off-by: SY Chiu <sy.chiu@linaro.org>
Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org>
Reviewed-by: Joakim Bech <joakim.bech@linaro.org>
Tested-by: SY Chiu <sy.chiu@linaro.org> (Modified QEMU + jcardsim)

show more ...

197d17e712-Dec-2014 SY Chiu <sy.chiu@linaro.org>

SE API: implment lubutee and svc handler

- Implemented tee_se_service
- Rename tee_se_reader_handle to tee_se_reader_proxy
to avoid confuse with libutee
- Implemented SE API(tee_internal_se_api.h)

SE API: implment lubutee and svc handler

- Implemented tee_se_service
- Rename tee_se_reader_handle to tee_se_reader_proxy
to avoid confuse with libutee
- Implemented SE API(tee_internal_se_api.h) in libutee
- Implemented svc handler for SE API
- rename protocol.[ch] to iso7816.[ch]
- prefix aid_* with "tee_se_"
- add an option to enable/disable se_api_self_tests

Signed-off-by: SY Chiu <sy.chiu@linaro.org>
Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org>
Reviewed-by: Joakim Bech <joakim.bech@linaro.org>
Tested-by: SY Chiu <sy.chiu@linaro.org> (Modified QEMU + jcardsim)

show more ...

e022f12125-Nov-2014 SY Chiu <sy.chiu@linaro.org>

SE API: Session, Protocol and Channel implementation

- Implement Session which maintains the connection between TA and a
specific SE Reader
- Implement ISO7816 transport layer protocol, and Channe

SE API: Session, Protocol and Channel implementation

- Implement Session which maintains the connection between TA and a
specific SE Reader
- Implement ISO7816 transport layer protocol, and Channel management
- Implement Utilities to handle AID(ISO7816-3) and APDU(ISO7816-4)
- Brunch of self tests to velidate functionality of each module

Signed-off-by: SY Chiu <sy.chiu@linaro.org>
Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org>
Reviewed-by: Joakim Bech <joakim.bech@linaro.org>
Tested-by: SY Chiu <sy.chiu@linaro.org> (Modified QEMU + jcardsim)

show more ...

f362e77725-Nov-2014 SY Chiu <sy.chiu@linaro.org>

SE API: SE Manager and Reader implementation

- Introduce an interface for developers to write reader driver
(core/include/tee/se/reader/interface.h)
- A sample reader driver implementation: PC/SC

SE API: SE Manager and Reader implementation

- Introduce an interface for developers to write reader driver
(core/include/tee/se/reader/interface.h)
- A sample reader driver implementation: PC/SC passthru reader
(core/tee/se/reader/passthru_reader)
- Currently supported machine is qemu-virt (compile with --with-pcsc-passthru)
- A selftest STA is included to test the functionality of SE Reader
(core/arch/arm32/sta/se_api_self_tests.c)
- To enable SE API, add "WITH_SE_API := y" in your platform config

Signed-off-by: SY Chiu <sy.chiu@linaro.org>
Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org>
Reviewed-by: Joakim Bech <joakim.bech@linaro.org>
Tested-by: SY Chiu <sy.chiu@linaro.org> (Modified QEMU + jcardsim)

show more ...


/optee_os/core/arch/arm32/include/arm32.h
/optee_os/core/arch/arm32/include/kernel/thread.h
/optee_os/core/arch/arm32/include/kernel/vfp.h
/optee_os/core/arch/arm32/kernel/sub.mk
/optee_os/core/arch/arm32/kernel/thread.c
/optee_os/core/arch/arm32/kernel/thread_asm.S
/optee_os/core/arch/arm32/kernel/thread_private.h
/optee_os/core/arch/arm32/kernel/vfp.c
/optee_os/core/arch/arm32/kernel/vfp_asm.S
/optee_os/core/arch/arm32/kernel/vfp_private.h
/optee_os/core/arch/arm32/plat-stm/tz-template.lds
/optee_os/core/arch/arm32/plat-sunxi/kern.ld.S
/optee_os/core/arch/arm32/plat-vexpress/conf.mk
/optee_os/core/arch/arm32/plat-vexpress/core_bootcfg.c
/optee_os/core/arch/arm32/plat-vexpress/kern.ld.S
/optee_os/core/arch/arm32/plat-vexpress/main.c
/optee_os/core/arch/arm32/plat-vexpress/platform_config.h
/optee_os/core/arch/arm32/plat-vexpress/platform_flags.mk
/optee_os/core/arch/arm32/sta/se_api_self_tests.c
/optee_os/core/arch/arm32/sta/sub.mk
/optee_os/core/arch/arm32/tee/init.c
/optee_os/core/include/initcall.h
/optee_os/core/include/tee/se/manager.h
/optee_os/core/include/tee/se/reader.h
/optee_os/core/include/tee/se/reader/interface.h
/optee_os/core/include/tee/se/util.h
/optee_os/core/lib/libtomcrypt/include/tomcrypt_arm_neon.h
/optee_os/core/lib/libtomcrypt/include/tomcrypt_custom.h
/optee_os/core/lib/libtomcrypt/include/tomcrypt_hash.h
/optee_os/core/lib/libtomcrypt/src/hashes/sha1_arm32_ce.c
/optee_os/core/lib/libtomcrypt/src/hashes/sha1_arm32_ce_asm.S
/optee_os/core/lib/libtomcrypt/src/hashes/sha2/sha256_arm32_ce.c
/optee_os/core/lib/libtomcrypt/src/hashes/sha2/sha256_arm32_ce_asm.S
/optee_os/core/lib/libtomcrypt/src/hashes/sha2/sub.mk
/optee_os/core/lib/libtomcrypt/src/hashes/sub.mk
/optee_os/core/lib/libtomcrypt/src/tee_ltc_provider.c
/optee_os/core/lib/libtomcrypt/sub.mk
se/manager.c
se/reader/passthru_reader/driver.c
se/reader/passthru_reader/pcsc.h
se/reader/passthru_reader/reader.c
se/reader/passthru_reader/reader.h
se/reader/passthru_reader/sub.mk
se/reader/sub.mk
se/sub.mk
se/util.c
sub.mk
/optee_os/lib/libutee/include/tee_api_types.h
0f2293b711-Dec-2014 Jerome Forissier <jerome.forissier@linaro.org>

Add PKCS #5 v2.0 key derivation function 2 (PBKDF2)

This commit implements a crypto extension to support the key derivation
function defined in section 5.2 of RFC 2898
(https://www.ietf.org/rfc/rfc2

Add PKCS #5 v2.0 key derivation function 2 (PBKDF2)

This commit implements a crypto extension to support the key derivation
function defined in section 5.2 of RFC 2898
(https://www.ietf.org/rfc/rfc2898.txt), which is a re-publish of PKCS #5 v2.0.
The underlying pseudorandom function is HMAC-SHA1, which is the default PRF
specified in the RFC. It would be trivial to support the other HMAC functions
already implemented in OP-TEE.

See documentation/extensions/crypto_pbkdf2.md for details.

Tested on PLATFORM=vexpress-qemu_virt with the test vectors from RFC 6070
(https://www.ietf.org/rfc/rfc6070.txt).

Signed-off-by: Jerome Forissier <jerome.forissier@linaro.org>
Signed-off-by: Xiaoqiang Du <xiaoqiang.du@linaro.org>
Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org>
Reviewed-by: Pascal Brand <pascal.brand@linaro.org>
Tested-by: Pascal Brand <pascal.brand@linaro.org> (STM platform)

show more ...

cdb198a704-Dec-2014 Jerome Forissier <jerome.forissier@linaro.org>

Add HMAC-based extract-and-expand key derivation function (HKDF)

HKDF (http://tools.ietf.org/html/rfc5869) is a key derivation algorithm.
As per the RFC:

A key derivation function (KDF) is a bas

Add HMAC-based extract-and-expand key derivation function (HKDF)

HKDF (http://tools.ietf.org/html/rfc5869) is a key derivation algorithm.
As per the RFC:

A key derivation function (KDF) is a basic and essential component of
cryptographic systems. Its goal is to take some source of initial
keying material and derive from it one or more cryptographically
strong secret keys.
[...]
HKDF follows the "extract-then-expand" paradigm, where the KDF
logically consists of two modules.
[...]
The goal of the "extract" stage is to "concentrate" the possibly
dispersed entropy of the input keying material into a short, but
cryptographically strong, pseudorandom key.
[...]
The second stage "expands" the pseudorandom key to the desired
length; the number and lengths of the output keys depend on the
specific cryptographic algorithms for which the keys are needed.

Since HKDF is not covered by the GlobalPlatform Internal API specification
v1.0/v1.1, this commit introduces extensions to the specification.
More specifically: it defines new algorithms, a new object type and new
object attributes. This implementation supports all the usual hash
functions (MD5, SHA-1, SHA-224, SHA-256, SHA-384, SHA-512) and may
produce output keys of length up to 4096 bits (currently limited only by
the maximum size allowed for an object of type TEE_TYPE_GENERIC_SECRET).
Aside from minor updates to object manipulation functions to support
the new data, the function TEE_DeriveKey() is mostly impacted.

The file documentation/extensions/crypto_hkdf.md contains the modifications
to the GP Internal API v1.0 spec in order to support HKDF.

Signed-off-by: Jerome Forissier <jerome.forissier@linaro.org>
Signed-off-by: Xiaoqiang Du <xiaoqiang.du@linaro.org>
Reviewed-by: Pascal Brand <pascal.brand@linaro.org>
Tested-by: Pascal Brand <pascal.brand@linaro.org> (STM platform)
Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org>
Reviewed-by: Joakim Bech <joakim.bech@linaro.org>

show more ...

1...<<21222324