History log of /optee_os/core/tee/ (Results 551 – 575 of 584)
Revision Date Author Comments
(<<< Hide modified files)
(Show modified files >>>)
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 ...

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

Fix #6686: Support passing Public Exponent when generating RSA key pair

Global Platform Internal API 1.0 is not accurate when describing
RSA key pair generation. It only indicates
No parameter i

Fix #6686: Support passing Public Exponent when generating RSA key pair

Global Platform Internal API 1.0 is not accurate when describing
RSA key pair generation. It only indicates
No parameter is required
This is why RSA key pair generation was always using 65537
as the public exponent.

Version 1.1 of the API is much more precise:
No parameter is required.
The TEE_ATTR_RSA_PUBLIC_EXPONENT attribute may be
specified; if omitted, the default value is 65537.

This patch implements this requirement.

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)
Reviewed-by: Laurent GERARD <laurent.gerard@st.com>
Reviewed-by: Jean-Michel DELORME <jean-michel.delorme@st.com>
Signed-off-by: Pascal Brand <pascal.brand@st.com>

show more ...


/optee_os/.travis.yml
/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-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/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_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
tee_svc_cryp.c
/optee_os/documentation/build_system.md
/optee_os/documentation/optee_design.md
/optee_os/lib/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
508697b210-Dec-2014 Jerome Forissier <jerome.forissier@linaro.org>

libtomcrypt: the len parameter of hash.final() is the max size

To be consistent with the behavior of crypto_ops.mac.final(), do not fail if
the length passed to crypto_ops.hash.final() is larger tha

libtomcrypt: the len parameter of hash.final() is the max size

To be consistent with the behavior of crypto_ops.mac.final(), do not fail if
the length passed to crypto_ops.hash.final() is larger than the hash size.

Also, use TEE_MAX_HASH_SIZE instead of defining another macro (MAX_DIGEST).

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

show more ...

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

Fix memory leak in tee_svc_cryp_derive_key()

Signed-off-by: Jerome Forissier <jerome.forissier@linaro.org>
Tested-by: Jerome Forissier <jerome.forissier@linaro.org> (QEMU virt)
Reviewed-by: Jens Wik

Fix memory leak in tee_svc_cryp_derive_key()

Signed-off-by: Jerome Forissier <jerome.forissier@linaro.org>
Tested-by: Jerome Forissier <jerome.forissier@linaro.org> (QEMU virt)
Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org>
Reviewed-by: Pascal Brand <pascal.brand@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/kernel/misc.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_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-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/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
tee_svc.c
/optee_os/documentation/build_system.md
/optee_os/lib/libutee/arch/arm32/utee_syscalls_asm.S
/optee_os/lib/libutee/include/tee_syscall_numbers.h
/optee_os/mk/checkconf.mk
d8e06e1224-Nov-2014 Pascal Brand <pascal.brand@st.com>

MAC operations now supports NULL arguments

MAC algorithms support NULL arguments and zero length strings.

Note that the fix consists in a change of API in the internal crypto
interface. This change

MAC operations now supports NULL arguments

MAC algorithms support NULL arguments and zero length strings.

Note that the fix consists in a change of API in the internal crypto
interface. This change make hash_ops and mac_ops look the same in terms of
update and final step

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

show more ...

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

Make function tee_cryp_init() generic

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

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

Fix memory leak in tee_svc_cryp_obj_copy()

The following Trusted App would lead to a memory leak in the TEE core:

TEE_ObjectHandle o1, o2;
TEE_AllocateTransientObject(TEE_TYPE_RSA_KEYPAIR, 256,

Fix memory leak in tee_svc_cryp_obj_copy()

The following Trusted App would lead to a memory leak in the TEE core:

TEE_ObjectHandle o1, o2;
TEE_AllocateTransientObject(TEE_TYPE_RSA_KEYPAIR, 256, &o1);
TEE_GenerateKey(o1, 256, NULL, 0);
TEE_AllocateTransientObject(TEE_TYPE_RSA_KEYPAIR, 256, &o2);
TEE_CopyObjectAttributes(o2, o1);
TEE_FreeTransientObject(o1);
TEE_FreeTransientObject(o2);

The leak was introduced by commit ffe040395b13 ("Add crypto provider internal
API").

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>
Tested-by: Pascal Brand <pascal.brand@linaro.org> (STM platform)

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
tee_fs.c
tee_obj.c
tee_pobj.c
tee_svc.c
tee_svc_cryp.c
tee_svc_storage.c
tee_time_generic.c
/optee_os/lib/libutee/arch/arm32/user_ta_entry.c
/optee_os/lib/libutee/include/tee_internal_api_extensions.h
/optee_os/lib/libutee/include/utee_syscalls.h
/optee_os/lib/libutee/sub.mk
/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/include/trace_levels.h
/optee_os/lib/libutils/ext/sub.mk
/optee_os/lib/libutils/ext/trace.c
/optee_os/lib/libutils/isoc/dlmalloc.c
/optee_os/lib/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 ...

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

core_tlb_maintenance(TLBINV_BY_ASID) is on

It also contains code style cleanup

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

core_tlb_maintenance(TLBINV_BY_ASID) is on

It also contains code style cleanup

Signed-off-by: Pascal Brand <pascal.brand@st.com>
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 ...

ffe0403920-Aug-2014 Jerome Forissier <jerome.forissier@linaro.org>

Add crypto provider internal API

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

Add crypto provider internal API

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>
Tested-by: Pascal Brand <pascal.brand@linaro.org> (STM platform)

show more ...

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

9e9234fc21-Oct-2014 Thierry BINIGUER <thierry.biniguer@st.com>

Fix to finalize mac compute when there is not a last message chunk.

Code implemented in TAs may need to call TEE_MACComputeFinal,
without last message chunk.

Reviewed-by: Jens Wiklander <jens.wikla

Fix to finalize mac compute when there is not a last message chunk.

Code implemented in TAs may need to call TEE_MACComputeFinal,
without last message chunk.

Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org>
Reviewed-by: Jerome Forissier <jerome.forissier@linaro.org>
Tested-by: Pascal Brand <pascal.brand@linaro.org> (STM platform)
Tested-by: Thierry BINIGUER <thierry.biniguer@st.com>
Reviewed-by: Pascal BRAND <pascal.brand@st.com>
Tested-by: Etienne CARRIERE <etienne.carriere@st.com>
Reviewed-by: Etienne CARRIERE <etienne.carriere@st.com>
Signed-off-by: Pascal Brand <pascal.brand@st.com>

show more ...

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

core: generic buffer inside/outside/intersect routine

Remove multiple implementation of "is buffer inside a buffer" and
friends and rely on a generic core_is_buffer_inside/outside/intersect().

Revi

core: generic buffer inside/outside/intersect routine

Remove multiple implementation of "is buffer inside a buffer" and
friends and rely on a generic core_is_buffer_inside/outside/intersect().

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

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

Cleanup

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

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

Fix wrong parameter in GCM authentication

Signed-off-by: Pascal Brand <pascal.brand@st.com>
Reviewed-by: Jerome Forissier <jerome.forissier@linaro.org>
Tested-by: Pascal Brand <pascal.brand@linaro.o

Fix wrong parameter in GCM authentication

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

show more ...

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

Remove unused function tee_pobj_init

Reviewed-by: Pascal Brand <pascal.brand@linaro.org>

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

CCM Authentication optimization

CCM is now optimized. Instead of being computed twice,
libtomcrypt code has been optimized so that classical ccm_init, ccm_process,...
can be used incrementally (wh

CCM Authentication optimization

CCM is now optimized. Instead of being computed twice,
libtomcrypt code has been optimized so that classical ccm_init, ccm_process,...
can be used incrementally (when the whole stream is not available when
starting the authentication).
CCM way of proceeding is now very closed to GCM authentication.

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

show more ...


/optee_os/.travis.yml
/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/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_ta_manager.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/kta_table_unpg_asm.S
/optee_os/core/arch/arm32/mm/tee_mmu.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_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/main.c
/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/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
tee_authenc.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


/optee_os/.travis.yml
/optee_os/Makefile
/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/kernel/mutex.c
/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_l2cc_mutex.c
/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/tz_ssvce_pl310.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/plat-vexpress/kern.ld.S
/optee_os/core/arch/arm32/plat-vexpress/link.mk
/optee_os/core/arch/arm32/sta/core_dirty_tests.c
/optee_os/core/arch/arm32/sta/core_dirty_tests.h
/optee_os/core/arch/arm32/sta/sta_helloworld.c
/optee_os/core/arch/arm32/tee/arch_tee_fs.c
/optee_os/core/arch/arm32/tee/entry.c
/optee_os/core/arch/arm32/tee/sub.mk
/optee_os/core/arch/arm32/tee/tee_rpmb.c
/optee_os/core/arch/arm32/tee/tee_svc_asm.S
/optee_os/core/include/kernel/tee_core_trace.h
/optee_os/core/include/kernel/tee_kta_trace.h
/optee_os/core/include/mm/tee_mmu.h
/optee_os/core/lib/libtomcrypt/src/sub.mk
/optee_os/core/lib/libtomcrypt/src/tee_ltc_wrapper.c
sub.mk
tee_acipher.c
tee_authenc.c
tee_mac.c
tee_svc.c
tee_svc_cryp.c
/optee_os/lib/libmpa/mpa_init.c
/optee_os/lib/libmpa/mpa_montgomery.c
/optee_os/lib/libmpa/sub.mk
/optee_os/lib/libutee/include/tee_api_defines.h
/optee_os/lib/libutee/include/tee_trace.h
/optee_os/lib/libutee/include/tee_trace_levels.h
/optee_os/lib/libutee/sub.mk
/optee_os/lib/libutee/tee_api_arith.c
/optee_os/lib/libutils/isoc/malloc_wrapper.c
/optee_os/mk/compile.mk
/optee_os/scripts/mem_usage.awk
e4120a1a16-Sep-2014 Pascal Brand <pascal.brand@st.com>

XTS implementation

Fix libtomcrypt XTS: when applying XTS
encryption / decryption, onto partial buffers,
the tweak is now updated.

Signed-off-by: Pascal Brand <pascal.brand@st.com>

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

9c3040ee11-Sep-2014 Pascal Brand <pascal.brand@st.com>

Fix GCM Authentication

Authentication tag length, given during the enc_final(),
was wrong. It was the max of the tag buffer, instead of the
value provided during the init.

Other cleanup also takes

Fix GCM Authentication

Authentication tag length, given during the enc_final(),
was wrong. It was the max of the tag buffer, instead of the
value provided during the init.

Other cleanup also takes place to simplify CCM authentication.

Change-Id: I14c02b2a39a51fb485b0ff04707895f91fcc73a3
Reviewed-on: https://gerrit.st.com/12369
Tested-by: Pascal BRAND <pascal.brand@st.com>
Tested-by: Jean-Michel DELORME <jean-michel.delorme@st.com>
Reviewed-by: Jean-Michel DELORME <jean-michel.delorme@st.com>
Signed-off-by: Pascal Brand <pascal.brand@st.com>

show more ...

d1aea08f10-Sep-2014 SY Chiu <sy.chiu@linaro.org>

Implemented wait in normal world

Instead of busy waiting in secure world, it is more efficient to wait
in normal world such that HLOS can schedule another task to execute
while waiting

- Added a ne

Implemented wait in normal world

Instead of busy waiting in secure world, it is more efficient to wait
in normal world such that HLOS can schedule another task to execute
while waiting

- Added a new RPC command to wait in linux driver
- Remove wait_specific() hook in time_source, it seems can be a generic
function.
- This patch depends on "Implemented wait in normal world" in
optee_linuxdrver

show more ...

1...<<21222324