| #
8a72cdae |
| 02-Dec-2022 |
Jens Wiklander <jens.wiklander@linaro.org> |
GP131: Update TEE_SeekObjectData()
Update TEE_SeekObjectData() according to TEE Internal Core API version 1.3.1. The offset parameter is changed to use intmax_t instead of int32_t.
Reviewed-by: Jer
GP131: Update TEE_SeekObjectData()
Update TEE_SeekObjectData() according to TEE Internal Core API version 1.3.1. The offset parameter is changed to use intmax_t instead of int32_t.
Reviewed-by: Jerome Forissier <jerome.forissier@linaro.org> Reviewed-by: Etienne Carriere <etienne.carriere@linaro.org> Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org>
show more ...
|
| #
f29aa79c |
| 02-Dec-2022 |
Jens Wiklander <jens.wiklander@linaro.org> |
GP131: Update TEE_TruncateObjectData()
Update TEE_TruncateObjectData() according to TEE Internal Core API version 1.3.1. The size parameter is changed to use size_t instead of uint32_t.
Reviewed-by
GP131: Update TEE_TruncateObjectData()
Update TEE_TruncateObjectData() according to TEE Internal Core API version 1.3.1. The size parameter is changed to use size_t instead of uint32_t.
Reviewed-by: Jerome Forissier <jerome.forissier@linaro.org> Reviewed-by: Etienne Carriere <etienne.carriere@linaro.org> Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org>
show more ...
|
| #
41af5286 |
| 02-Dec-2022 |
Jens Wiklander <jens.wiklander@linaro.org> |
GP131: Update TEE_ReadObjectData() and TEE_WriteObjectData()
Updates TEE_ReadObjectData() and TEE_WriteObjectData() according to TEE Internal Core API version 1.3.1. The size and count parameters ar
GP131: Update TEE_ReadObjectData() and TEE_WriteObjectData()
Updates TEE_ReadObjectData() and TEE_WriteObjectData() according to TEE Internal Core API version 1.3.1. The size and count parameters are changed to use size_t instead of uint32_t.
Reviewed-by: Jerome Forissier <jerome.forissier@linaro.org> Reviewed-by: Etienne Carriere <etienne.carriere@linaro.org> Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org>
show more ...
|
| #
1c12923f |
| 02-Dec-2022 |
Jens Wiklander <jens.wiklander@linaro.org> |
GP131: Update TEE_RenamePersistentObject() and TEE_GetNextPersistentObject()
Update TEE_RenamePersistentObject() and TEE_GetNextPersistentObject() according to TEE Internal Core API version 1.3.1. T
GP131: Update TEE_RenamePersistentObject() and TEE_GetNextPersistentObject()
Update TEE_RenamePersistentObject() and TEE_GetNextPersistentObject() according to TEE Internal Core API version 1.3.1. The size parameter is changed to use size_t instead of uint32_t
Reviewed-by: Jerome Forissier <jerome.forissier@linaro.org> Reviewed-by: Etienne Carriere <etienne.carriere@linaro.org> Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org>
show more ...
|
| #
f22e1655 |
| 01-Dec-2022 |
Jens Wiklander <jens.wiklander@linaro.org> |
GP131: Update TEE_CreatePersistentObject()
Update TEE_CreatePersistentObject() according to TEE Internal Core API version 1.3.1. The objectIDLen parameter is changed to use size_t instead of uint32_
GP131: Update TEE_CreatePersistentObject()
Update TEE_CreatePersistentObject() according to TEE Internal Core API version 1.3.1. The objectIDLen parameter is changed to use size_t instead of uint32_t.
The object parameter is now an optional pointer to a handle. When NULL the standard says: If attributes is a handle on an initialized transient object, the initialized transient object SHALL be transformed to a persistent object. So syscall_storage_obj_create() is also updated accordingly.
Reviewed-by: Jerome Forissier <jerome.forissier@linaro.org> Reviewed-by: Etienne Carriere <etienne.carriere@linaro.org> Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org>
show more ...
|
| #
64a530f9 |
| 01-Dec-2022 |
Jens Wiklander <jens.wiklander@linaro.org> |
GP131: Update TEE_OpenPersistentObject()
Update TEE_OpenPersistentObject() according to TEE Internal Core API version 1.3.1. The objectIDLen parameter is changed to use size_t instead of uint32_t.
GP131: Update TEE_OpenPersistentObject()
Update TEE_OpenPersistentObject() according to TEE Internal Core API version 1.3.1. The objectIDLen parameter is changed to use size_t instead of uint32_t.
Reviewed-by: Jerome Forissier <jerome.forissier@linaro.org> Reviewed-by: Etienne Carriere <etienne.carriere@linaro.org> Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org>
show more ...
|
| #
a62171f8 |
| 01-Dec-2022 |
Jens Wiklander <jens.wiklander@linaro.org> |
GP131: Update TEE_InitRefAttribute()
Update TEE_InitRefAttribute() according to TEE Internal Core API version 1.3.1. The size parameter is changed to use size_t instead of uint32_t.
Reviewed-by: Je
GP131: Update TEE_InitRefAttribute()
Update TEE_InitRefAttribute() according to TEE Internal Core API version 1.3.1. The size parameter is changed to use size_t instead of uint32_t.
Reviewed-by: Jerome Forissier <jerome.forissier@linaro.org> Reviewed-by: Etienne Carriere <etienne.carriere@linaro.org> Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org>
show more ...
|
| #
edc817ba |
| 01-Dec-2022 |
Jens Wiklander <jens.wiklander@linaro.org> |
GP131: Update TEE_AllocateTransientObject()
Update TEE_AllocateTransientObject() according to TEE Internal Core API version 1.3.1.
It's not permitted to use TEE_AllocateTransientObject() to allocat
GP131: Update TEE_AllocateTransientObject()
Update TEE_AllocateTransientObject() according to TEE Internal Core API version 1.3.1.
It's not permitted to use TEE_AllocateTransientObject() to allocate objects with the type TEE_TYPE_DATA any longer.
Reviewed-by: Jerome Forissier <jerome.forissier@linaro.org> Reviewed-by: Etienne Carriere <etienne.carriere@linaro.org> Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org>
show more ...
|
| #
91c84248 |
| 01-Dec-2022 |
Jens Wiklander <jens.wiklander@linaro.org> |
GP131: Update TEE_GetObjectBufferAttribute()
Update TEE_GetObjectBufferAttribute() according to TEE Internal Core API version 1.3.1. The size parameter is changed to use size_t instead of uint32_t.
GP131: Update TEE_GetObjectBufferAttribute()
Update TEE_GetObjectBufferAttribute() according to TEE Internal Core API version 1.3.1. The size parameter is changed to use size_t instead of uint32_t.
Reviewed-by: Jerome Forissier <jerome.forissier@linaro.org> Reviewed-by: Etienne Carriere <etienne.carriere@linaro.org> Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org>
show more ...
|
| #
4f4374c8 |
| 29-Nov-2022 |
Jens Wiklander <jens.wiklander@linaro.org> |
GP131: Update TEE_Attribute
Updates TEE_Attribute according to TEE Internal Core API version 1.3.1.
A compatibility type with a __GP11_ prefix is added for compatibility with version 1.1. The follo
GP131: Update TEE_Attribute
Updates TEE_Attribute according to TEE Internal Core API version 1.3.1.
A compatibility type with a __GP11_ prefix is added for compatibility with version 1.1. The following API functions: - TEE_AsymmetricDecrypt() - TEE_AsymmetricEncrypt() - TEE_AsymmetricSignDigest() - TEE_AsymmetricVerifyDigest() - TEE_DeriveKey() - TEE_GenerateKey() - TEE_InitRefAttribute() - TEE_InitValueAttribute() - TEE_PopulateTransientObject() are updated in a similar manner
Reviewed-by: Etienne Carriere <etienne.carriere@linaro.org> Reviewed-by: Jerome Forissier <jerome.forissier@linaro.org> Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org>
show more ...
|
| #
d372a47c |
| 29-Nov-2022 |
Jens Wiklander <jens.wiklander@linaro.org> |
GP131: Update TEE_ObjectInfo
Updates TEE_ObjectInfo according to TEE Internal Core API version 1.3.1.
A compatibility type with a __GP11_ prefix is added for compatibility with version 1.1. A few A
GP131: Update TEE_ObjectInfo
Updates TEE_ObjectInfo according to TEE Internal Core API version 1.3.1.
A compatibility type with a __GP11_ prefix is added for compatibility with version 1.1. A few API functions (TEE_GetObjectInfo(), TEE_GetObjectInfo1, and TEE_GetNextPersistentObject()) are updated in a similar manner.
Reviewed-by: Jerome Forissier <jerome.forissier@linaro.org> Reviewed-by: Etienne Carriere <etienne.carriere@linaro.org> Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org>
show more ...
|
| #
75d6a373 |
| 28-Nov-2022 |
Jens Wiklander <jens.wiklander@linaro.org> |
Use struct utee_object_info in TA syscall abi
TEE_ObjectInfo was until now used in the syscall ABI provided to TAs. TEE_ObjectInfo changes in later versions of the TEE Internal Core API so add an in
Use struct utee_object_info in TA syscall abi
TEE_ObjectInfo was until now used in the syscall ABI provided to TAs. TEE_ObjectInfo changes in later versions of the TEE Internal Core API so add an independent definition with struct utee_object_info in order to preserve a stable ABI.
Acked-by: Jerome Forissier <jerome.forissier@linaro.org> Acked-by: Etienne Carriere <etienne.carriere@linaro.org> Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org>
show more ...
|
| #
9da55c8d |
| 23-Feb-2022 |
Jerome Forissier <jerome@forissier.org> |
libutee: TEE_{Create,Open}PersistentObject() should accept NULL object ID
Passing a NULL objectId to TEE_CreatePersistentObject() or TEE_OpenPersistentObject() should be allowed as long as objectIdL
libutee: TEE_{Create,Open}PersistentObject() should accept NULL object ID
Passing a NULL objectId to TEE_CreatePersistentObject() or TEE_OpenPersistentObject() should be allowed as long as objectIdLen is zero. Indeed, a zero-size object identifier is valid as per the description of TEE_RenamePersistentObject(). In addition, "a Trusted Application SHALL NOT pass the NULL pointer in an [in] parameter, except perhaps if the buffer size is zero". Thus (NULL, 0) is valid.
Signed-off-by: Jerome Forissier <jerome@forissier.org> Reviewed-by: Etienne Carriere <etienne.carriere@linaro.org> Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org>
show more ...
|
| #
2138a6f8 |
| 03-Mar-2021 |
Stefan Schmidt <snst@meek.de> |
libutee: add NULL pointer check in TEE_OpenPersistentObject()
Fix missing test on user object handle output reference in TEE_OpenPersistentObject().
Signed-off-by: Stefan Schmidt <snst@meek.de> Rev
libutee: add NULL pointer check in TEE_OpenPersistentObject()
Fix missing test on user object handle output reference in TEE_OpenPersistentObject().
Signed-off-by: Stefan Schmidt <snst@meek.de> Reviewed-by: Etienne Carriere <etienne.carriere@linaro.org> Reviewed-by: Jerome Forissier <jerome@forissier.org>
show more ...
|
| #
b9416909 |
| 24-Sep-2020 |
Jens Wiklander <jens.wiklander@linaro.org> |
Provide TEE_ATTR_FLAG_VALUE and TEE_ATTR_FLAG_PUBLIC
Provides TEE_ATTR_FLAG_VALUE and TEE_ATTR_FLAG_PUBLIC which are defined already in GP v1.0 [1] and also expected in GP v1.1 [2]. The old TEE_ATTR
Provide TEE_ATTR_FLAG_VALUE and TEE_ATTR_FLAG_PUBLIC
Provides TEE_ATTR_FLAG_VALUE and TEE_ATTR_FLAG_PUBLIC which are defined already in GP v1.0 [1] and also expected in GP v1.1 [2]. The old TEE_ATTR_BIT_VALUE and TEE_ATTR_BIT_PROTECTED are kept for backwards compatibility for now.
[1]: GlobalPlatform TEE Internal API Specification v1.0 [2]: GlobalPlatform TEE Internal Core API Specification v1.1
Reviewed-by: Jerome Forissier <jerome@forissier.org> Acked-by: Etienne Carriere <etienne.carriere@linaro.org> Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org>
show more ...
|
| #
46cfd17c |
| 13-Aug-2020 |
Jens Wiklander <jens.wiklander@linaro.org> |
libutee: fix TEE_CloseAndDeletePersistentObject1() with TEE_HANDLE_NULL
Fixing TEE_CloseAndDeletePersistentObject1() to return TEE_SUCCESS if called with TEE_HANDLE_NULL as required in the v1.1 spec
libutee: fix TEE_CloseAndDeletePersistentObject1() with TEE_HANDLE_NULL
Fixing TEE_CloseAndDeletePersistentObject1() to return TEE_SUCCESS if called with TEE_HANDLE_NULL as required in the v1.1 specification [1] where the function was introduced.
[1]: GlobalPlatform TEE Internal Core API Specification v1.1 Acked-by: Etienne Carriere <etienne.carriere@linaro.org> Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org>
show more ...
|
| #
6915bbbb |
| 18-Jun-2020 |
Jens Wiklander <jens.wiklander@linaro.org> |
GP 1.1: Check parameters annotated in the specification
Checks that all the function parameters which are annotated in the specification [1] are compliant with regards to memory access and memory lo
GP 1.1: Check parameters annotated in the specification
Checks that all the function parameters which are annotated in the specification [1] are compliant with regards to memory access and memory location. In case the check fails the TA panics to help debugging. The more precise and expensive checks can be disabled with CFG_TA_STRICT_ANNOTATION_CHECKS=n.
TEE_Realloc(), TEE_MemMove(), TEE_MemCompare(), TEE_MemFill() are skipped for performance reasons. The TA will instead die with a fatal exception if buffers supplied to these functions do not follow the annotation rules.
[1]: GlobalPlatform TEE Internal Core API Specification v1.1
Reviewed-by: Jerome Forissier <jerome@forissier.org> Reviewed-by: Etienne Carriere <etienne.carriere@linaro.org> Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org>
show more ...
|
| #
2c028fde |
| 23-Jun-2020 |
Jerome Forissier <jerome@forissier.org> |
libutee, ldelf: add leading underscore to syscall wrappers
libutee defines assembler wrapper functions for each OP-TEE system call. These wrappers have a utee_ prefix. This commit adds a leading und
libutee, ldelf: add leading underscore to syscall wrappers
libutee defines assembler wrapper functions for each OP-TEE system call. These wrappers have a utee_ prefix. This commit adds a leading underscore so that the names cannot clash with user-defined symbols. Doing so is common practice for "system" libraries, as defined by the C standard in a set of requirements that can be summarized as follows (excerpt from the GNU libc documentation [1]):
[R]eserved names include all external identifiers (global functions and variables) that begin with an underscore (‘_’) and all identifiers regardless of use that begin with either two underscores or an underscore followed by a capital letter are reserved names. This is so that the library and header files can define functions, variables, and macros for internal purposes without risk of conflict with names in user programs.
The utee_*() wrappers are internal to OP-TEE and are not supposed to be called directly by TAs so this should not have any user-visible impact.
Link: [1] https://www.gnu.org/software/libc/manual/html_node/Reserved-Names.html Signed-off-by: Jerome Forissier <jerome@forissier.org> Acked-by: Jens Wiklander <jens.wiklander@linaro.org> Reviewed-by: Etienne Carriere <etienne.carriere@linaro.org>
show more ...
|
| #
172d637b |
| 11-Sep-2019 |
Cedric Auger <cauger@provenrun.com> |
libutee: panic on null pointer on object opening
Change TEE_CreatePersistentObject() and TEE_OpenPersistentObject() to panic when passed an null reference pointer.
According to the TEE Internal Cor
libutee: panic on null pointer on object opening
Change TEE_CreatePersistentObject() and TEE_OpenPersistentObject() to panic when passed an null reference pointer.
According to the TEE Internal Core API Specification 1.1 and 1.2, sections 5.7.1 and 5.7.2, passing NULL for object pointer should panic, and not return an error.
Some harmonization has also been done in these two functions to use the same conventions as surrounding code.
Signed-off-by: Cedric Auger <cauger@provenrun.com> Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org> Reviewed-by: Jerome Forissier <jerome@forissier.org> Reviewed-by: Etienne Carriere <etienne.carriere@linaro.org>
show more ...
|
| #
69a3d6be |
| 18-Feb-2019 |
Daniel Glöckner <dg@emlix.com> |
libutee: fix TEE_OpenPersistentObject() error behavior
The TEE spec says about TEE_OpenPersistentObject(): "If this function fails for any reason, the value pointed to by object is set to TEE_HANDLE
libutee: fix TEE_OpenPersistentObject() error behavior
The TEE spec says about TEE_OpenPersistentObject(): "If this function fails for any reason, the value pointed to by object is set to TEE_HANDLE_NULL."
Signed-off-by: Daniel Glöckner <dg@emlix.com> Reviewed-by: Jerome Forissier <jerome.forissier@linaro.org>
show more ...
|
| #
dc0f4ec2 |
| 16-May-2018 |
Etienne Carriere <etienne.carriere@st.com> |
Remove license notice from STMicroelectronics files
Since a while the source files license info are defined by SPDX identifiers. We can safely remove the verbose license text from the files that are
Remove license notice from STMicroelectronics files
Since a while the source files license info are defined by SPDX identifiers. We can safely remove the verbose license text from the files that are owned by either only STMicroelectronics or only both Linaro and STMicroelectronics.
Signed-off-by: Etienne Carriere <etienne.carriere@st.com> Signed-off-by: Etienne Carriere <etienne.carriere@linaro.org> Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org>
show more ...
|
| #
1bb92983 |
| 15-Dec-2017 |
Jerome Forissier <jerome.forissier@linaro.org> |
Add SPDX license identifiers
Adds one SPDX-License-Identifier line [1] to each source files that contains license text.
Generated by [2]: spdxify.py --add-spdx optee_os/
The scancode tool [3] wa
Add SPDX license identifiers
Adds one SPDX-License-Identifier line [1] to each source files that contains license text.
Generated by [2]: spdxify.py --add-spdx optee_os/
The scancode tool [3] was used to double check the license matching code in the Python script. All the licenses detected by scancode are either detected by spdxify.py, or have no SPDX identifier, or are false matches.
Link: [1] https://spdx.org/licenses/ Link: [2] https://github.com/jforissier/misc/blob/f7b56c8/spdxify.py Link: [3] https://github.com/nexB/scancode-toolkit Signed-off-by: Jerome Forissier <jerome.forissier@linaro.org> Acked-by: Joakim Bech <joakim.bech@linaro.org>
show more ...
|
| #
8f07fe6f |
| 30-Jan-2017 |
Jerome Forissier <jerome.forissier@linaro.org> |
libutee: API: add 'const' qualifiers
As per the GlobalPlatform Internal Core API Specification v1.1, section 3.4 Parameter Annotations: "[...] the [in], [inbuf], [instring], [instringopt], and [ctx]
libutee: API: add 'const' qualifiers
As per the GlobalPlatform Internal Core API Specification v1.1, section 3.4 Parameter Annotations: "[...] the [in], [inbuf], [instring], [instringopt], and [ctx] annotations can make use of the const C keyword [...] the C header file of a compliant Implementation SHOULD use the const keyword when these annotations appear."
Note that the TA entry points: TA_OpenSessionEntryPoint(), TA_CloseSessionEntryPoint() and TA_InvokeCommandEntryPoint() are unchanged to avoid breaking existing code (not worth it).
Signed-off-by: Jerome Forissier <jerome.forissier@linaro.org> Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org> Reviewed-by: Etienne Carriere <etienne.carriere@linaro.org>
show more ...
|
| #
b36311ad |
| 30-Jan-2017 |
Jerome Forissier <jerome.forissier@linaro.org> |
libutee: preserve error code when calling TEE_Panic()
On many occasions, libutee calls TEE_Panic(0) to kill a TA. When an error status from a lower layer is available, it is much more helpful to pas
libutee: preserve error code when calling TEE_Panic()
On many occasions, libutee calls TEE_Panic(0) to kill a TA. When an error status from a lower layer is available, it is much more helpful to pass it instead of zero, because the code is shown in the debug traces.
Signed-off-by: Jerome Forissier <jerome.forissier@linaro.org> Reviewed-by: Etienne Carriere <etienne.carriere@linaro.org> Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org>
show more ...
|
| #
b9d8f134 |
| 24-Nov-2016 |
Jerome Forissier <jerome.forissier@linaro.org> |
libutee: TEE_GetObjectValueAttribute(): 'a' and 'b' may be NULL
Signed-off-by: Jerome Forissier <jerome.forissier@linaro.org> Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org>
|