History log of /optee_os/lib/ (Results 826 – 850 of 877)
Revision Date Author Comments
(<<< Hide modified files)
(Show modified files >>>)
6db75bd201-Apr-2015 Pascal Brand <pascal.brand@st.com>

Remove __noreturn from TEE_Panic prototype

According to the Global Plaform Internal Core API v1.1, the prototype
of the function TEE_Panic must be
void TEE_Panic(TEE_Result panicCode);

Reviewed

Remove __noreturn from TEE_Panic prototype

According to the Global Plaform Internal Core API v1.1, the prototype
of the function TEE_Panic must be
void TEE_Panic(TEE_Result panicCode);

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

1f60363a19-Mar-2015 Jens Wiklander <jens.wiklander@linaro.org>

select base types based on ILP32 and LP64 defines

* Selects base types base on the __ILP32__ and __LP64__ defines
* Fixes warnings from change of base types

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

select base types based on ILP32 and LP64 defines

* Selects base types base on the __ILP32__ and __LP64__ defines
* Fixes warnings from change of base types

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

show more ...

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/platform_flags.mk
/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/platform_flags.mk
/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
/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
/optee_os/core/tee/tee_cryp_utl.c
/optee_os/core/tee/tee_svc.c
libutee/tee_user_mem.c
libutee/trace_ext.c
libutils/ext/include/trace.h
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
cf458f1319-Mar-2015 Jens Wiklander <jens.wiklander@linaro.org>

libutils: rename aeabi files

Renames aeabi files to reflect the processor mode (ARM32) and instruction
set used in assembly files (A32).

Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org>
Te

libutils: rename aeabi files

Renames aeabi files to reflect the processor mode (ARM32) and instruction
set used in assembly files (A32).

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

show more ...

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

79a3c60113-Mar-2015 Cedric Chaumont <cedric.chaumont@st.com>

GP Internal Core API v1.1 : add defines, update type

Note: TEE_DATA_FLAG_OVERWRITE not supported

Signed-off-by: Cedric Chaumont <cedric.chaumont@st.com>
Reviewed-by: Pascal Brand <pascal.brand@lina

GP Internal Core API v1.1 : add defines, update type

Note: TEE_DATA_FLAG_OVERWRITE not supported

Signed-off-by: Cedric Chaumont <cedric.chaumont@st.com>
Reviewed-by: Pascal Brand <pascal.brand@linaro.org>
Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org>
Reviewed-by: James Kung <james.kung@linaro.org>
Tested-by: Pascal Brand <pascal.brand@linaro.org> (QEMU platform)
Tested-by: Cedric Chaumont <cedric.chaumont@linaro.org> (STM Cannes)
Tested-by: Cedric Chaumont <cedric.chaumont@linaro.org> (FVP)

show more ...

c3e4035913-Mar-2015 Etienne Carriere <etienne.carriere@st.com>

Handle "keep alive" TA property

At session open, if a TA instance is found, single session TAs are
busy only if context already handle a session.

At session closure, KeepAlive TA must close all pen

Handle "keep alive" TA property

At session open, if a TA instance is found, single session TAs are
busy only if context already handle a session.

At session closure, KeepAlive TA must close all pending session
but not free remaining allocations nor free its context.

From user TA entry code, remove useless "ta_dead" field and insure
heap and math support is only initialized once (for KeepAlive TA not
to re-init these libs).

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

5ee223c504-Feb-2015 Jens Wiklander <jens.wiklander@linaro.org>

types_ext.h: add PRI* macros

* Adds PRIxVA and PRIxPA macros to types.h.
* Includes inttypes.h instead of stdint.h to make all PRI* macros
available when including this file.

Signed-off-by: Jens

types_ext.h: add PRI* macros

* Adds PRIxVA and PRIxPA macros to types.h.
* Includes inttypes.h instead of stdint.h to make all PRI* macros
available when including this file.

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>

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/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/include/kernel/tee_ta_manager_unpg.h
/optee_os/core/include/mm/tee_mmu.h
/optee_os/core/include/mm/tee_mmu_types.h
libutils/ext/include/types_ext.h
/optee_os/scripts/setup_qemu_optee.sh
d358880223-Dec-2014 Pascal Brand <pascal.brand@st.com>

libutee: AES buffer not processed when size=16

In TEE_CipherUpdate, buffers must be processed when
the size of the input buffer is exactly the right minimum size.
As an example, in AES128, 16 bytes

libutee: AES buffer not processed when size=16

In TEE_CipherUpdate, buffers must be processed when
the size of the input buffer is exactly the right minimum size.
As an example, in AES128, 16 bytes output must be given
every 16 bytes input.

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)
Tested-by: Jeremy PLANEIX <jeremy.planeix@st.com>
Signed-off-by: Pascal Brand <pascal.brand@st.com>

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

0e91d79730-Jan-2015 Jean-Michel Delorme <jean-michel.delorme@st.com>

Fix user TA trace issue

Definition of the global "trace_level" variable has been
moved from the libutil to a TA file (user_ta_header.c).
This allows to initialize it with the correct value/level
CFG

Fix user TA trace issue

Definition of the global "trace_level" variable has been
moved from the libutil to a TA file (user_ta_header.c).
This allows to initialize it with the correct value/level
CFG_TEE_TA_LOG_LEVEL when the TA code is compiled.
Same trace level is now applied at all TA code and associated
libraries: libutee/libutils/libmpa.

Change-Id: Id6bda7f0611f78fe7ad3ee6b61193f4b80aba94d
Signed-off-by: Jean-Michel Delorme <jean-michel.delorme@st.com>
Reviewed-on: https://gerrit.st.com/22472
Reviewed-by: Emmanuel MICHEL <emmanuel.michel@st.com>
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)

show more ...

fc26c92a16-Jan-2015 Jens Wiklander <jens.wiklander@linaro.org>

util.h: add parentheses in ROUND{UP,DOWN} macros

Adds parentheses in ROUND{UP,DOWN} macros in util.h and removes
ROUND{UP,DOWN} and MIN/MAX macros from utee_defines.h as they are
redundant.

Signed-

util.h: add parentheses in ROUND{UP,DOWN} macros

Adds parentheses in ROUND{UP,DOWN} macros in util.h and removes
ROUND{UP,DOWN} and MIN/MAX macros from utee_defines.h as they are
redundant.

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>

show more ...

d851620202-Jan-2015 Jens Wiklander <jens.wiklander@linaro.org>

snprintf: add 64bit support

* Adds AEABI support for 64-bit division
* Updates snprintf.c from a more resent version of subr_prf.c from
NetBSD

Signed-off-by: Jens Wiklander <jens.wiklander@linaro

snprintf: add 64bit support

* Adds AEABI support for 64-bit division
* Updates snprintf.c from a more resent version of subr_prf.c from
NetBSD

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>

show more ...

e997afab13-Jan-2015 Jens Wiklander <jens.wiklander@linaro.org>

compiler.h: add section macros

Adds convenience macros to supply the section attribute.

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

compiler.h: add section macros

Adds convenience macros to supply the section attribute.

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>

show more ...

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

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
/optee_os/core/tee/se/manager.c
/optee_os/core/tee/se/reader/passthru_reader/driver.c
/optee_os/core/tee/se/reader/passthru_reader/pcsc.h
/optee_os/core/tee/se/reader/passthru_reader/reader.c
/optee_os/core/tee/se/reader/passthru_reader/reader.h
/optee_os/core/tee/se/reader/passthru_reader/sub.mk
/optee_os/core/tee/se/reader/sub.mk
/optee_os/core/tee/se/sub.mk
/optee_os/core/tee/se/util.c
/optee_os/core/tee/sub.mk
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 ...

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

1...<<313233343536