History log of /optee_os/lib/ (Results 851 – 875 of 883)
Revision Date Author Comments
(<<< Hide modified files)
(Show modified files >>>)
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 ...

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

Add Concat KDF (Concatenation Key Derivation Function, NIST SP 800-56A R1)

Concat KDF is a key derivation algorithm defined in section 5.8.1 of
the NIST Special Publication 800-56A Revision 1, "Reco

Add Concat KDF (Concatenation Key Derivation Function, NIST SP 800-56A R1)

Concat KDF is a key derivation algorithm defined in section 5.8.1 of
the NIST Special Publication 800-56A Revision 1, "Recommendation for Pair-Wise
Key Establishment Schemes Using Discrete Logarithm Cryptography"
(http://csrc.nist.gov/publications/nistpubs/800-56A/SP800-56A_Revision1_Mar08-2007.pdf)

This is a TEE implementation of the function, which supports the following
hash algorithms: SHA-1, SHA-224, SHA-256, SHA-384 and SHA-512.
The actual key derivation is implemented in TEE_DeriveKey() thanks to
custom extensions to the GlobalPlatform API v1.0. Please refer to
documentation/extensions/crypto_concat_kdf.md for details.

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


/optee_os/.travis.yml
/optee_os/README.md
/optee_os/core/arch/arm32/include/arm32.h
/optee_os/core/arch/arm32/include/arm32_macros.S
/optee_os/core/arch/arm32/include/kernel/thread.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/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/tz_ssvce.S
/optee_os/core/arch/arm32/mm/core_mmu.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/conf.mk
/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/platform_flags.mk
/optee_os/core/arch/arm32/plat-stm/system_config.in
/optee_os/core/arch/arm32/plat-stm/tz-template.lds
/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/core_bootcfg.c
/optee_os/core/arch/arm32/plat-sunxi/core_chip.c
/optee_os/core/arch/arm32/plat-sunxi/entry.S
/optee_os/core/arch/arm32/plat-sunxi/head.c
/optee_os/core/arch/arm32/plat-sunxi/kern.ld.S
/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.c
/optee_os/core/arch/arm32/plat-sunxi/platform.h
/optee_os/core/arch/arm32/plat-sunxi/platform_config.h
/optee_os/core/arch/arm32/plat-sunxi/platform_flags.mk
/optee_os/core/arch/arm32/plat-sunxi/rng_support.c
/optee_os/core/arch/arm32/plat-sunxi/smp_boot.S
/optee_os/core/arch/arm32/plat-sunxi/smp_fixup.S
/optee_os/core/arch/arm32/plat-sunxi/sub.mk
/optee_os/core/arch/arm32/plat-sunxi/tee_common_otp.c
/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/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/plat_tee_func.c
/optee_os/core/arch/arm32/plat-vexpress/plat_tee_func.h
/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/plat-vexpress/sub.mk
/optee_os/core/arch/arm32/sm/sm_asm.S
/optee_os/core/arch/arm32/sta/core_self_tests.c
/optee_os/core/arch/arm32/tee/arch_svc_asm.S
/optee_os/core/arch/arm32/tee/init.c
/optee_os/core/core.mk
/optee_os/core/drivers/gic.c
/optee_os/core/drivers/sub.mk
/optee_os/core/drivers/sunxi_uart.c
/optee_os/core/include/drivers/gic.h
/optee_os/core/include/drivers/sunxi_uart.h
/optee_os/core/include/kernel/tee_common.h
/optee_os/core/include/kernel/tee_common_unpg.h
/optee_os/core/include/mm/tee_mm_unpg.h
/optee_os/core/include/tee/tee_cryp_concat_kdf.h
/optee_os/core/include/tee/tee_cryp_provider.h
/optee_os/core/kernel/tee_ta_manager_unpg.c
/optee_os/core/lib/libtomcrypt/include/tomcrypt_custom.h
/optee_os/core/lib/libtomcrypt/src/tee_ltc_provider.c
/optee_os/core/lib/libtomcrypt/sub.mk
/optee_os/core/tee/sub.mk
/optee_os/core/tee/tee_cryp_concat_kdf.c
/optee_os/core/tee/tee_svc_cryp.c
/optee_os/documentation/build_system.md
/optee_os/documentation/extensions/crypto_concat_kdf.md
/optee_os/documentation/optee_design.md
libutee/include/tee_api_defines_extensions.h
libutee/include/utee_defines.h
libutee/tee_api_operations.c
/optee_os/mk/compile.mk
/optee_os/scripts/gen_hashed_bin.py
/optee_os/scripts/gen_ld_rodata_sects.awk
/optee_os/scripts/gen_ld_text_sects.awk
/optee_os/scripts/setup_fvp_optee.sh
/optee_os/scripts/setup_qemu_optee.sh
/optee_os/ta/mk/ta_dev_kit.mk
/optee_os/ta/ta.mk
58df51c310-Dec-2014 Jerome Forissier <jerome.forissier@linaro.org>

TEE_DeriveKey(): remove redundant parameter check

paramCount and params are checked by the system service
tee_svc_cryp_derive_key() so they do not need to be checked in libutee.

Signed-off-by: Jero

TEE_DeriveKey(): remove redundant parameter check

paramCount and params are checked by the system service
tee_svc_cryp_derive_key() so they do not need to be checked in libutee.

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

show more ...

d60c680303-Dec-2014 Pascal Brand <pascal.brand@st.com>

Cosmetics fixes

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

e5dc28cc28-Nov-2014 Pascal Brand <pascal.brand@st.com>

Keep binary compatilities TEECore <--> TA

In case the core is compiled with
CFG_TEE_TA_LOG_LEVEL=0
then TA cannot be compiled with CFG_TEE_TA_LOG_LEVEL!=0 because of the trace
function.

This pa

Keep binary compatilities TEECore <--> TA

In case the core is compiled with
CFG_TEE_TA_LOG_LEVEL=0
then TA cannot be compiled with CFG_TEE_TA_LOG_LEVEL!=0 because of the trace
function.

This patch implements stub trace functions in case of unsufficient trace level.
It also check
- TRACE_LEVEL < 0 instead of TRACE_LEVEL == 0
- TRACE_LEVEL >= 0 instead of TRACE_LEVEL != 0
to take into account negative trae levels

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

show more ...

44202a4826-Nov-2014 Pascal Brand <pascal.brand@st.com>

Add MSG() macro for traces

MSG() and MSG_RAW() macros are added.
They are the same as xMSG() and xMSG_RAW() existing macros, but are not
subject to dynamic trace level

Note that when the core trace

Add MSG() macro for traces

MSG() and MSG_RAW() macros are added.
They are the same as xMSG() and xMSG_RAW() existing macros, but are not
subject to dynamic trace level

Note that when the core trace level is 0, these macros are void.

This patch also fixes an issue with "printf" level.

Change-Id: Ibff6058d7e35d728a46878b345b6e0833c18aec1
Reviewed-on: https://gerrit.st.com/18102
Reviewed-by: Emmanuel MICHEL <emmanuel.michel@st.com>
Signed-off-by: Pascal Brand <pascal.brand@st.com>
Reviewed-by: Jerome Forissier <jerome.forissier@linaro.org>
Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org>

show more ...

a7ec939b03-Nov-2014 Jens Wiklander <jens.wiklander@linaro.org>

Clean syscall handling

* Implements a svc handler suitable to supply as a handler for
thread_svc_handler.
* Removes hardcoded call to tee_svc_sycall in
thread_svc_handler.
* Removes duplicated c

Clean syscall handling

* Implements a svc handler suitable to supply as a handler for
thread_svc_handler.
* Removes hardcoded call to tee_svc_sycall in
thread_svc_handler.
* Removes duplicated code for unwinding of stack after
tee_svc_enter_user_mode() replacing it with a single
tee_svc_unwind_enter_user_mode()

Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org>
Tested-by: Jens Wiklander <jens.wiklander@linaro.org> (QEMU virt and FVP)
Reviewed-by: Etienne Carriere <etienne.carriere@st.com>
Reviewed-by: Pascal Brand <pascal.brand@linaro.org>
Tested-by: Pascal Brand <pascal.brand@linaro.org> (STM platform)

show more ...


/optee_os/.travis.yml
/optee_os/core/arch/arm32/include/arm32.h
/optee_os/core/arch/arm32/include/arm32_macros.S
/optee_os/core/arch/arm32/include/kernel/misc.h
/optee_os/core/arch/arm32/include/kernel/tee_l2cc_mutex.h
/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/misc.S
/optee_os/core/arch/arm32/kernel/tee_l2cc_mutex.c
/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/mm/tee_pager_unpg.c
/optee_os/core/arch/arm32/plat-stm/conf.mk
/optee_os/core/arch/arm32/plat-stm/main.c
/optee_os/core/arch/arm32/plat-stm/tz-template.lds
/optee_os/core/arch/arm32/plat-stm/tz_a9init.S
/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_asm.S
/optee_os/core/arch/arm32/tee/arch_svc_private.h
/optee_os/core/arch/arm32/tee/sub.mk
/optee_os/core/include/core_serviceid.h
/optee_os/core/include/tee/tee_cryp_provider.h
/optee_os/core/include/tee/tee_svc.h
/optee_os/core/lib/libtomcrypt/include/tomcrypt_cipher.h
/optee_os/core/lib/libtomcrypt/include/tomcrypt_custom.h
/optee_os/core/lib/libtomcrypt/src/ciphers/sub.mk
/optee_os/core/lib/libtomcrypt/src/encauth/sub.mk
/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/mac/sub.mk
/optee_os/core/lib/libtomcrypt/src/modes/sub.mk
/optee_os/core/lib/libtomcrypt/src/pk/sub.mk
/optee_os/core/lib/libtomcrypt/src/sub.mk
/optee_os/core/lib/libtomcrypt/src/tee_ltc_provider.c
/optee_os/core/lib/libtomcrypt/sub.mk
/optee_os/core/tee/tee_svc.c
/optee_os/core/tee/tee_svc_cryp.c
/optee_os/documentation/build_system.md
libutee/arch/arm32/utee_syscalls_asm.S
libutee/include/tee_syscall_numbers.h
/optee_os/mk/checkconf.mk
074ba9b209-Oct-2014 Jens Wiklander <jens.wiklander@linaro.org>

Move bget to libutils replacing dlmalloc

* Moves bget to libutils replacing dlmalloc as kernel memory allocator
* Restores the code formatting of bget.{c,h} to the original state as
parts of the c

Move bget to libutils replacing dlmalloc

* Moves bget to libutils replacing dlmalloc as kernel memory allocator
* Restores the code formatting of bget.{c,h} to the original state as
parts of the current code was unreadable
* Adds malloc_add_pool() to make use of previously unused memory
* Moves call to malloc_init() into platform specific code
* Restores MDBG into working condition
* Adds memalign function to bget.

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

show more ...

b796ebf313-Nov-2014 Jerome Forissier <jerome.forissier@linaro.org>

TEE_MACCompareFinal(): use buf_compare_ct(), don't clear stack on exit

Signed-off-by: Jerome Forissier <jerome.forissier@linaro.org>
Tested-by: Jerome Forissier <jerome.forissier@linaro.org> (QEMU v

TEE_MACCompareFinal(): use buf_compare_ct(), don't clear stack on exit

Signed-off-by: Jerome Forissier <jerome.forissier@linaro.org>
Tested-by: Jerome Forissier <jerome.forissier@linaro.org> (QEMU virt platform)
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 ...

4de4bebc20-Oct-2014 Jens Wiklander <jens.wiklander@linaro.org>

Merge tee_{core,uta}_trace.h into libutil

Merges tee_core_trace.h and tee_uta_trace.h into a common trace.h
in libutil. Since the trace functions now resides libutil they have
to rely on core and li

Merge tee_{core,uta}_trace.h into libutil

Merges tee_core_trace.h and tee_uta_trace.h into a common trace.h
in libutil. Since the trace functions now resides libutil they have
to rely on core and libutee to provide functions to print to the
log device.

* Keeps compatible interface from tee_kta_trace.h
* Adds TAMSG() and TAMSG_RAW() to log TA related events
* Removes the TRACE_ALWAYS level

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

show more ...


/optee_os/core/arch/arm32/include/kernel/tee_kta_trace.h
/optee_os/core/arch/arm32/include/kernel/trace_ta.h
/optee_os/core/arch/arm32/kernel/mutex.c
/optee_os/core/arch/arm32/kernel/sub.mk
/optee_os/core/arch/arm32/kernel/tee_l2cc_mutex.c
/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/mm/core_mmu.c
/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/mm/tee_pager_unpg.c
/optee_os/core/arch/arm32/plat-stm/core_bootcfg.c
/optee_os/core/arch/arm32/plat-stm/core_chip_cannes.c
/optee_os/core/arch/arm32/plat-stm/core_chip_orly2.c
/optee_os/core/arch/arm32/plat-stm/main.c
/optee_os/core/arch/arm32/plat-stm/rng_support.c
/optee_os/core/arch/arm32/plat-stm/tee_common_otp.c
/optee_os/core/arch/arm32/plat-vexpress/core_bootcfg.c
/optee_os/core/arch/arm32/plat-vexpress/main.c
/optee_os/core/arch/arm32/plat-vexpress/rng_support.c
/optee_os/core/arch/arm32/plat-vexpress/tee_common_otp.c
/optee_os/core/arch/arm32/sta/core_self_tests.c
/optee_os/core/arch/arm32/sta/sta_self_tests.c
/optee_os/core/arch/arm32/tee/init.c
/optee_os/core/arch/arm32/tee/tee_rpmb.c
/optee_os/core/arch/arm32/tee/tee_svc_asm.S
/optee_os/core/core.mk
/optee_os/core/drivers/gic.c
/optee_os/core/include/console.h
/optee_os/core/include/kernel/tee_dispatch.h
/optee_os/core/include/kernel/tee_ta_manager.h
/optee_os/core/include/kernel/tee_ta_manager_unpg.h
/optee_os/core/include/tee/tee_svc.h
/optee_os/core/kernel/assert.c
/optee_os/core/kernel/panic.c
/optee_os/core/kernel/sub.mk
/optee_os/core/kernel/tee_misc.c
/optee_os/core/kernel/tee_ta_manager_unpg.c
/optee_os/core/kernel/trace_ext.c
/optee_os/core/lib/libtomcrypt/src/tee_ltc_provider.c
/optee_os/core/tee/tee_fs.c
/optee_os/core/tee/tee_obj.c
/optee_os/core/tee/tee_pobj.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/core/tee/tee_time_generic.c
libutee/arch/arm32/user_ta_entry.c
libutee/include/tee_internal_api_extensions.h
libutee/include/utee_syscalls.h
libutee/sub.mk
libutee/tee_user_mem.c
libutee/trace_ext.c
libutils/ext/include/trace.h
libutils/ext/include/trace_levels.h
libutils/ext/sub.mk
libutils/ext/trace.c
libutils/isoc/dlmalloc.c
libutils/isoc/malloc_wrapper.c
/optee_os/ta/arch/arm32/user_ta_header.c
/optee_os/ta/ta.mk
2eb765fc03-Oct-2014 Jens Wiklander <jens.wiklander@linaro.org>

Move util.h from core into libutil

Moves util.h from core into libutil to make it available anywhere.

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

Move util.h from core into libutil

Moves util.h from core into libutil to make it available anywhere.

Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org>
Reviewed-by: Pascal Brand <pascal.brand@linaro.org>
Reviewed-by: Etienne Carriere <etienne.carriere@st.com>

show more ...

4e77495e03-Oct-2014 Jens Wiklander <jens.wiklander@linaro.org>

Rename and move TEE_COMPILE_TIME_ASSERT

Renames TEE_COMPILE_TIME_ASSERT to COMPILE_TIME_ASSERT, the
macro is also moved to assert.h to be available anywhere.

Signed-off-by: Jens Wiklander <jens.wik

Rename and move TEE_COMPILE_TIME_ASSERT

Renames TEE_COMPILE_TIME_ASSERT to COMPILE_TIME_ASSERT, the
macro is also moved to assert.h to be available anywhere.

Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org>
Reviewed-by: Pascal Brand <pascal.brand@linaro.org>
Reviewed-by: Etienne Carriere <etienne.carriere@st.com>

show more ...


/optee_os/.travis.yml
/optee_os/Makefile
/optee_os/core/arch/arm32/include/arm32.h
/optee_os/core/arch/arm32/include/arm32_macros.S
/optee_os/core/arch/arm32/include/kernel/thread.h
/optee_os/core/arch/arm32/include/sm/teesmc_optee.h
/optee_os/core/arch/arm32/kernel/misc.S
/optee_os/core/arch/arm32/kernel/tee_ta_manager.c
/optee_os/core/arch/arm32/kernel/tee_time.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/mm/core_mmu.c
/optee_os/core/arch/arm32/mm/tee_mmu.c
/optee_os/core/arch/arm32/mm/tee_mmu_unpg.c
/optee_os/core/arch/arm32/mm/tee_pager_unpg.c
/optee_os/core/arch/arm32/plat-stm/main.c
/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/juno_core_pos.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/sub.mk
/optee_os/core/arch/arm32/tee/arch_tee_fs.c
/optee_os/core/arch/arm32/tee/entry.c
/optee_os/core/arch/arm32/tee/init.c
/optee_os/core/arch/arm32/tee/tee_rpmb.c
/optee_os/core/core.mk
/optee_os/core/drivers/uart.c
/optee_os/core/include/drivers/uart.h
/optee_os/core/include/kernel/tee_common_unpg.h
/optee_os/core/include/kernel/tee_rpc.h
/optee_os/core/include/tee/tee_cryp_provider.h
/optee_os/core/include/tee/tee_cryp_utl.h
/optee_os/core/include/tee/tee_obj.h
/optee_os/core/include/tee/tee_pobj.h
/optee_os/core/include/tee/tee_svc_cryp.h
/optee_os/core/kernel/tee_misc.c
/optee_os/core/kernel/tee_ta_manager_unpg.c
/optee_os/core/lib/libtomcrypt/src/sub.mk
/optee_os/core/lib/libtomcrypt/src/tee_ltc_provider.c
/optee_os/core/tee/sub.mk
/optee_os/core/tee/tee_cryp_utl.c
/optee_os/core/tee/tee_obj.c
/optee_os/core/tee/tee_svc.c
/optee_os/core/tee/tee_svc_cryp.c
/optee_os/documentation/github.md
libutils/isoc/include/assert.h
/optee_os/mk/checkconf.mk
/optee_os/mk/cleanvars.mk
/optee_os/mk/compile.mk
/optee_os/mk/config.mk
/optee_os/mk/lib.mk
/optee_os/mk/subdir.mk
/optee_os/scripts/setup_qemu_optee.sh
73d6c3ba27-Oct-2014 Joakim Bech <joakim.bech@linaro.org>

Digest operations now supports NULL arguments

Hash algorithms should support NULL arguments and zero length strings.
Following changes will make is possible to call TEE_DigestUpdate and
TEE_DigestDo

Digest operations now supports NULL arguments

Hash algorithms should support NULL arguments and zero length strings.
Following changes will make is possible to call TEE_DigestUpdate and
TEE_DigestDoFinal interchangeably.

Following combinations are now working.
----------------------------------------
| TEE_DigestUpdate | TEE_DigestDoFinal |
----------------------------------------
| NULL | NULL |
| NULL | MESSAGE |
| MESSAGE | NULL |
| MESSAGE | MESSAGE |
| N/A | NULL |
| N/A | MESSAGE |
----------------------------------------

Signed-off-by: Joakim Bech <joakim.bech@linaro.org>
Tested-by: Joakim Bech <joakim.bech@linaro.org> (FVP)
Reviewed-by: Pascal Brand <pascal.brand@linaro.org>
Tested-by: Pascal Brand <pascal.brand@linaro.org> (STM platform)

show more ...

d49a58db20-Oct-2014 Jens Wiklander <jens.wiklander@linaro.org>

libmpa: remove floating point calculations

Removes floating point calculations in libmap. The floating point
calculations was unused but caused compile error when compiled
with DEBUG=1.

Signed-off-

libmpa: remove floating point calculations

Removes floating point calculations in libmap. The floating point
calculations was unused but caused compile error when compiled
with DEBUG=1.

Signed-off-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: Pascal Brand <pascal.brand@linaro.org> (STM platform)
Tested-by: Jens Wiklander <jens.wiklander@linaro.org> (QEMU virt platform)

show more ...

d9d2e32716-Oct-2014 Pascal Brand <pascal.brand@st.com>

Fix TEE_BigIntMulMod

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


/optee_os/.travis.yml
/optee_os/core/arch/arm32/include/arm32.h
/optee_os/core/arch/arm32/include/arm32_macros.S
/optee_os/core/arch/arm32/include/kernel/tz_proc.h
/optee_os/core/arch/arm32/include/mm/core_mmu.h
/optee_os/core/arch/arm32/include/mm/tee_mmu_defs.h
/optee_os/core/arch/arm32/include/mm/tee_pager_unpg.h
/optee_os/core/arch/arm32/include/sm/teesmc.h
/optee_os/core/arch/arm32/include/sm/teesmc_opteed.h
/optee_os/core/arch/arm32/include/sm/teesmc_opteed_macros.h
/optee_os/core/arch/arm32/kernel/sub.mk
/optee_os/core/arch/arm32/kernel/tee_core_trace.c
/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/tz_proc.S
/optee_os/core/arch/arm32/kernel/tz_ssvce.S
/optee_os/core/arch/arm32/mm/core_mmu.c
/optee_os/core/arch/arm32/mm/sub.mk
/optee_os/core/arch/arm32/mm/tee_mmu.c
/optee_os/core/arch/arm32/mm/tee_mmu_unpg.c
/optee_os/core/arch/arm32/mm/tee_pager_unpg.c
/optee_os/core/arch/arm32/plat-stm/conf.mk
/optee_os/core/arch/arm32/plat-stm/main.c
/optee_os/core/arch/arm32/plat-stm/rng_support.c
/optee_os/core/arch/arm32/plat-stm/system_config.in
/optee_os/core/arch/arm32/plat-stm/tz-template.lds
/optee_os/core/arch/arm32/plat-stm/tz_sinit.S
/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/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/platform_config.h
/optee_os/core/arch/arm32/sm/sm.c
/optee_os/core/arch/arm32/sta/core_self_tests.c
/optee_os/core/arch/arm32/sta/core_self_tests.h
/optee_os/core/arch/arm32/sta/sta_self_tests.c
/optee_os/core/arch/arm32/sta/sub.mk
/optee_os/core/arch/arm32/tee/init.c
/optee_os/core/drivers/gic.c
/optee_os/core/drivers/sub.mk
/optee_os/core/drivers/uart.c
/optee_os/core/include/mm/tee_mmu.h
/optee_os/core/include/mm/tee_mmu_unpg.h
/optee_os/core/lib/libtomcrypt/include/tomcrypt_mac.h
/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_process.c
/optee_os/core/lib/libtomcrypt/src/encauth/ccm/ccm_reset.c
/optee_os/core/lib/libtomcrypt/src/encauth/ccm/sub.mk
/optee_os/core/tee/tee_authenc.c
libutee/tee_api_arith.c
/optee_os/scripts/setup_fvp_optee.sh
cebdec5118-Sep-2014 Jens Wiklander <jens.wiklander@linaro.org>

Reenable warnings for all non-3rd party code

* Reenables warnings for all non-3rd party code
* Renames dprintf macro to dprintf_level

0e692b7829-Aug-2014 Jens Wiklander <jens.wiklander@linaro.org>

Fix strict-aliasing for DEBUG=0

fb4a92f108-Oct-2014 Pascal Brand <pascal.brand@st.com>

Minor updates and cleanup

5262835417-Sep-2014 Jerome Forissier <jerome.forissier@linaro.org>

Trace syscall entry when CFG_TEE_CORE_LOG_LEVEL == TRACE_FLOW (5)

b8976a6015-Sep-2014 Jerome Forissier <jerome.forissier@linaro.org>

plat-vexpress: fix non-debug build

Fixes a number of build errors when 'PLATFORM=vexpress' and 'DEBUG=':
- '<var> may be used uninitialized'
- 'dereferencing type-punned pointer will break strict-al

plat-vexpress: fix non-debug build

Fixes a number of build errors when 'PLATFORM=vexpress' and 'DEBUG=':
- '<var> may be used uninitialized'
- 'dereferencing type-punned pointer will break strict-aliasing rules'
This one is addressed by adding -fno-strict-aliasing to the cflags for the
problematic files, which is a temporary solution.
- 'inlining failed'

Also, make sure tee_svc_syscall_table is aligned on a 32-bit boundary.
Otherwise, an alignment fault might occur:
ERR [0x0] TEE-CORE:tee_pager_print_error_abort:101: data-abort at 0x602f16b
FSR 0x1 PC 0x6007bd4 TTBR0 0x603804A CONTEXIDR 0x1
CPUID 0x80000001 DBGPCSR 0x0 CPSR 0x80000013 (read from SPSR)
ERR [0x0] TEE-CORE:tee_pager_handle_abort:164: [TEE_PAGER] alignement fault! (trap CPU)

Note: on Foundation_v8, I measured a ~3x speedup between debug and non-debug
builds for asymmetric crypto tests.

show more ...

2c276d6808-Sep-2014 Pascal Brand <pascal.brand@st.com>

"Core Status" service on malloc

- Gets teecore heap info.
- Enabled only on CFG_TEE_FW_DEBUG != 0.
- Update dirty tests
- Reset max allocated size after malloc dirty tests.

8844ebfc02-Sep-2014 Pascal Brand <pascal.brand@st.com>

Fix #6323: A failing RSA decode leads to panic

Change-Id: Ia4762f076922338f280d431f104b653e731bf64f
Reviewed-on: https://gerrit.st.com/11598
Reviewed-by: Jean-Michel DELORME <jean-michel.delorme@st.

Fix #6323: A failing RSA decode leads to panic

Change-Id: Ia4762f076922338f280d431f104b653e731bf64f
Reviewed-on: https://gerrit.st.com/11598
Reviewed-by: Jean-Michel DELORME <jean-michel.delorme@st.com>
Tested-by: Jean-Michel DELORME <jean-michel.delorme@st.com>
Tested-by: Jocelyn RICARD <jocelyn.ricard@st.com>
Reviewed-by: Pascal BRAND <pascal.brand@st.com>

Update wrt comments from review

Fix returned error when the mode is not ok

show more ...


/optee_os/Makefile
/optee_os/README.md
/optee_os/core/arch/arm32/include/arm32_macros.S
/optee_os/core/arch/arm32/include/kernel/thread.h
/optee_os/core/arch/arm32/include/sm/teesmc_opteed.h
/optee_os/core/arch/arm32/kernel/thread.c
/optee_os/core/arch/arm32/kernel/thread_asm.S
/optee_os/core/arch/arm32/mm/tee_mmu_unpg_asm.S
/optee_os/core/arch/arm32/plat-stm/.gitignore
/optee_os/core/arch/arm32/plat-stm/asc.S
/optee_os/core/arch/arm32/plat-stm/cache_maintenance.c
/optee_os/core/arch/arm32/plat-stm/conf.mk
/optee_os/core/arch/arm32/plat-stm/core_bootcfg.c
/optee_os/core/arch/arm32/plat-stm/core_chip_cannes.c
/optee_os/core/arch/arm32/plat-stm/core_chip_orly2.c
/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-stm/rng_support.c
/optee_os/core/arch/arm32/plat-stm/sub.mk
/optee_os/core/arch/arm32/plat-stm/system_config.in
/optee_os/core/arch/arm32/plat-stm/tee_common_otp.c
/optee_os/core/arch/arm32/plat-stm/tz-template.lds
/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-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/sm/sm.c
/optee_os/core/arch/arm32/sm/sm_asm.S
/optee_os/core/tee/tee_acipher.c
/optee_os/core/tee/tee_svc_cryp.c
/optee_os/documentation/arm_trusted_firmware.md
libutee/tee_api_operations.c
/optee_os/mk/compile.mk
/optee_os/mk/lib.mk
/optee_os/mk/subdir.mk
/optee_os/ta/arch/arm32/link.mk
/optee_os/ta/mk/ta_dev_kit.mk
/optee_os/ta/ta.mk
f1c74b4b20-Aug-2014 Jens Wiklander <jens.wiklander@linaro.org>

Reentrancy fixes

Before this patch: The normal world was only allowed to enter
secure world with one thread at a time.

After this patch: The normal world may try to enter secure world
with as many

Reentrancy fixes

Before this patch: The normal world was only allowed to enter
secure world with one thread at a time.

After this patch: The normal world may try to enter secure world
with as many threads as it likes, secure world will return busy
when no more threads can be allowed. Secure world still only allows
one active thread at a time, but during RPC another thread may enter
and do some work. This is needed for cancellation to work.

* Adds a mutex that waits in normal world if busy
* Adds a new RPC service to wait in normal world
* Imports bitstring.h from FreeBSD to aid mutex implementation
* Adds a critical section in tee_ta_init_session
* Unmaps TA before RPC exit and maps it again on return to handle
rescheduling of threads during RPC
* Doesn't clear a1-a3 when returning busy
* Bugfixes vector_std_smc_entry

This patch depends on the "Allow parallel entries to secure world"
patch in optee_linuxdriver.

show more ...

2ff3fdbb29-Aug-2014 Pascal Brand <pascal.brand@st.com>

TEE_ROUNDxxx renamed in ROUNDxxx in libutee

This change is to have the same macro names in core
part and libutee part


/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/core_memprot.h
/optee_os/core/arch/arm32/include/mm/core_mmu.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/tz_ssvce.S
/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_mmu.c
/optee_os/core/arch/arm32/plat-cannes/.gitignore
/optee_os/core/arch/arm32/plat-cannes/asc.S
/optee_os/core/arch/arm32/plat-cannes/cache_maintenance.c
/optee_os/core/arch/arm32/plat-cannes/conf.mk
/optee_os/core/arch/arm32/plat-cannes/core_bootcfg.c
/optee_os/core/arch/arm32/plat-cannes/core_chip.c
/optee_os/core/arch/arm32/plat-cannes/link.mk
/optee_os/core/arch/arm32/plat-cannes/main.c
/optee_os/core/arch/arm32/plat-cannes/platform_config.h
/optee_os/core/arch/arm32/plat-cannes/rng_support.c
/optee_os/core/arch/arm32/plat-cannes/sub.mk
/optee_os/core/arch/arm32/plat-cannes/system_config.in
/optee_os/core/arch/arm32/plat-cannes/tee_common_otp.c
/optee_os/core/arch/arm32/plat-cannes/tz-template.lds
/optee_os/core/arch/arm32/plat-cannes/tz_a9init.S
/optee_os/core/arch/arm32/plat-cannes/tz_sinit.S
/optee_os/core/arch/arm32/plat-orly2/asc.S
/optee_os/core/arch/arm32/plat-orly2/cache_maintenance.c
/optee_os/core/arch/arm32/plat-orly2/conf.mk
/optee_os/core/arch/arm32/plat-orly2/main.c
/optee_os/core/arch/arm32/plat-orly2/platform_config.h
/optee_os/core/arch/arm32/plat-orly2/sub.mk
/optee_os/core/arch/arm32/plat-vexpress/main.c
/optee_os/core/arch/arm32/tee/arch_tee_fs.c
/optee_os/core/arch/arm32/tee/tee_rpmb.c
/optee_os/core/include/core_serviceid.h
/optee_os/core/include/kernel/tee_common_unpg.h
/optee_os/core/include/kernel/util.h
/optee_os/core/kernel/tee_ta_manager_unpg.c
/optee_os/core/tee/tee_acipher.c
/optee_os/core/tee/tee_svc.c
libutee/include/utee_defines.h
libutee/tee_api_operations.c
55d3ebe922-Aug-2014 Pascal Brand <pascal.brand@st.com>

Cleanup

1...<<313233343536