| #
81d5a9d5 |
| 26-Aug-2024 |
Jens Wiklander <jens.wiklander@linaro.org> |
Move base64.{c,h} from libutee to libutils
Make the base64 routines publicly available by moving them from libutee to libutils. The _ prefix is removed from the public functions since they aren't in
Move base64.{c,h} from libutee to libutils
Make the base64 routines publicly available by moving them from libutee to libutils. The _ prefix is removed from the public functions since they aren't internal to libutee any longer.
Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org> Reviewed-by: Jerome Forissier <jerome.forissier@linaro.org>
show more ...
|
| #
4d6266da |
| 22-Aug-2023 |
Clement Faure <clement.faure@nxp.com> |
lib: libutee: initialize variables in TEE_GetPropertyAsString()
Initialize local variables at declaration as specified by the coding guidelines.
Signed-off-by: Clement Faure <clement.faure@nxp.com>
lib: libutee: initialize variables in TEE_GetPropertyAsString()
Initialize local variables at declaration as specified by the coding guidelines.
Signed-off-by: Clement Faure <clement.faure@nxp.com> Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org>
show more ...
|
| #
a1f2c430 |
| 24-Jul-2023 |
Clement Faure <clement.faure@nxp.com> |
lib: libutee: initialize TA property type
TA property type `type` is declared without being initialized and might be used in the if statement uninitialized.
Signed-off-by: Clement Faure <clement.fa
lib: libutee: initialize TA property type
TA property type `type` is declared without being initialized and might be used in the if statement uninitialized.
Signed-off-by: Clement Faure <clement.faure@nxp.com> Reviewed-by: Jerome Forissier <jerome.forissier@linaro.org> Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org>
show more ...
|
| #
094120ad |
| 23-Nov-2022 |
Jens Wiklander <jens.wiklander@linaro.org> |
GP131: add ta property gpd.tee.internalCore.version
Adds the new property "gpd.tee.internalCore.version" to report the TEE Internal Core API Specification version number used.
Reviewed-by: Jerome F
GP131: add ta property gpd.tee.internalCore.version
Adds the new property "gpd.tee.internalCore.version" to report the TEE Internal Core API Specification version number used.
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 ...
|
| #
6551d565 |
| 30-Nov-2022 |
Jens Wiklander <jens.wiklander@linaro.org> |
GP131: Update TEE_GetProperty*() functions
Update the TEE_GetProperty*() functions to according to TEE Internal Core API version 1.3.1. A new function TEE_GetPropertyAsU64() is added and size_t poin
GP131: Update TEE_GetProperty*() functions
Update the TEE_GetProperty*() functions to according to TEE Internal Core API version 1.3.1. A new function TEE_GetPropertyAsU64() is added and size_t pointer are used instead of uint32_t pointers for the length of buffers.
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 ...
|
| #
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 ...
|
| #
97b8ba50 |
| 23-Jun-2020 |
Jerome Forissier <jerome@forissier.org> |
libutee: add leading underscore to base64 functions
Add a leading underscore to global functions: base64_dec(), base64_enc(), base64_enc_len() to avoid the risk of conflicts with user programs.
Sig
libutee: add leading underscore to base64 functions
Add a leading underscore to global functions: base64_dec(), base64_enc(), base64_enc_len() to avoid the risk of conflicts with user programs.
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 ...
|
| #
ec930cae |
| 23-Jun-2020 |
Jerome Forissier <jerome@forissier.org> |
libutee: remove unnecessary parentheses
checkpatch warns about unnecessary parentheses, remove them.
Signed-off-by: Jerome Forissier <jerome@forissier.org> Acked-by: Jens Wiklander <jens.wiklander@
libutee: remove unnecessary parentheses
checkpatch warns about unnecessary parentheses, remove them.
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 ...
|
| #
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 ...
|
| #
614e8b8a |
| 26-May-2020 |
Etienne Carriere <etienne.carriere@linaro.org> |
libutee: fix size query for property as binary block
Fix TEE_GetPropertyAsBinaryBlock() to allow caller to query property size by providing a NULL output buffer reference.
Fixes: https://github.com
libutee: fix size query for property as binary block
Fix TEE_GetPropertyAsBinaryBlock() to allow caller to query property size by providing a NULL output buffer reference.
Fixes: https://github.com/OP-TEE/optee_os/issues/3876 Signed-off-by: Etienne Carriere <etienne.carriere@linaro.org> Reviewed-by: Jens Wiklander <jens.wiklander@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 ...
|
| #
e3458e03 |
| 26-Mar-2018 |
Jerome Forissier <jerome.forissier@linaro.org> |
libutee: introduce CFG_TA_BIGNUM_MAX_BITS
Make the size of big numbers in libutee configurable. This controls the size of the big numbers that can be manipulated through the TEE Internal Core API (A
libutee: introduce CFG_TA_BIGNUM_MAX_BITS
Make the size of big numbers in libutee configurable. This controls the size of the big numbers that can be manipulated through the TEE Internal Core API (Arithmetical functions).
Signed-off-by: Jerome Forissier <jerome.forissier@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 ...
|
| #
d5d50c3c |
| 27-Dec-2017 |
Jens Wiklander <jens.wiklander@linaro.org> |
Fix USER_TA_PROP_TYPE_BOOL handling
In 'ta_props' in ta/arch/arm/user_ta_header.c properties tagged as USER_TA_PROP_TYPE_BOOL are assigned a pointer to a bool, but is in the rest of the code handled
Fix USER_TA_PROP_TYPE_BOOL handling
In 'ta_props' in ta/arch/arm/user_ta_header.c properties tagged as USER_TA_PROP_TYPE_BOOL are assigned a pointer to a bool, but is in the rest of the code handled as if it was a pointer to a uint32_t. This works as long as a bool is four bytes, with certain compilers the size of a `bool` is 1 instead leading to errors.
TA properties can be supplied via the define TA_CURRENT_TA_EXT_PROPERTIES. The pattern used in ta/arch/arm/user_ta_header.c is likely copied when assigning properties via TA_CURRENT_TA_EXT_PROPERTIES.
This patch is fixing the assumption that the size of a `bool` is the same as the size of a `uint32_t` by changing all handling of USER_TA_PROP_TYPE_BOOL to base it on the type `bool` instead of `uint32_t`.
Reviewed-by: Jianhui Li <airbak.li@hisilicon.com> Tested by: Jianhui Li <airbak.li@hisilicon.com> Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org>
show more ...
|
| #
a32a96ed |
| 13-Dec-2016 |
Jens Wiklander <jens.wiklander@linaro.org> |
libutee: add TEE iSocket interface and implementation
Adds TEE iSocket interface and corresponding user space implementation for TCP and UDP. A pseudo TA is defined for interaction with OP-TEE Core.
libutee: add TEE iSocket interface and implementation
Adds TEE iSocket interface and corresponding user space implementation for TCP and UDP. A pseudo TA is defined for interaction with OP-TEE Core.
Acked-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 ...
|
| #
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 ...
|
| #
254e1d58 |
| 18-Feb-2016 |
Pascal Brand <pascal.brand@st.com> |
Properties: fix required buffer len for USER_TA_PROP_TYPE_BINARY_BLOCK
In case of USER_TA_PROP_TYPE_BINARY_BLOCK that is get by a string, a short buffer can be obtained from getting the binary block
Properties: fix required buffer len for USER_TA_PROP_TYPE_BINARY_BLOCK
In case of USER_TA_PROP_TYPE_BINARY_BLOCK that is get by a string, a short buffer can be obtained from getting the binary block itself, which requires a given th, and then from the base64 encoding of the buffer, which requires a longer buffer.
This fix check both required length, to return the second one in case of a short buffer
Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org> Signed-off-by: Pascal Brand <pascal.brand@st.com>
show more ...
|
| #
0dd3f3a4 |
| 15-Feb-2016 |
Pascal Brand <pascal.brand@st.com> |
Properties: coding style
Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org> Tested-by: Pascal Brand <pascal.brand@linaro.org> (QEMU) Signed-off-by: Pascal Brand <pascal.brand@st.com>
|
| #
ff857a3a |
| 15-Feb-2016 |
Pascal Brand <pascal.brand@st.com> |
Properties: fix in case of TEE_ERROR_SHORT_BUFFER
* TEE_ERROR_SHORT_BUFFER errors are better handled in case of of properties inside the Core. * String and Binary Block were contraints to have a l
Properties: fix in case of TEE_ERROR_SHORT_BUFFER
* TEE_ERROR_SHORT_BUFFER errors are better handled in case of of properties inside the Core. * String and Binary Block were contraints to have a length lower than 80 bytes due to the use of an internal structure. This is removed
Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org> Signed-off-by: Pascal Brand <pascal.brand@st.com>
show more ...
|
| #
64a5011e |
| 10-Feb-2016 |
Pascal Brand <pascal.brand@st.com> |
Properties in kernel side
In order to ease the inclusion of vendor-specific properties, properties are now mostly described in the kernel. This allows a lower synchronization between user-side and k
Properties in kernel side
In order to ease the inclusion of vendor-specific properties, properties are now mostly described in the kernel. This allows a lower synchronization between user-side and kernel-side.
The only properties now handled at user-side are TA properties (apart from "gpd.ta.appID") as well as the TEE property "gpd.tee.arith.maxBigIntSize"
Early discussion can be found at https://github.com/OP-TEE/optee_os/pull/460 and https://github.com/OP-TEE/optee_os/pull/482
Suggested-by: Paul Swan <paswan@microsoft.com> 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>
show more ...
|
| #
ab35d7ad |
| 28-Apr-2015 |
Cedric Chaumont <cedric.chaumont@st.com> |
GP Internal Core API v1.1 : TEE configuration properties
Signed-off-by: Cedric Chaumont <cedric.chaumont@st.com> Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org> Reviewed-by: Jerome Forissier
GP Internal Core API v1.1 : TEE configuration properties
Signed-off-by: Cedric Chaumont <cedric.chaumont@st.com> Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org> Reviewed-by: Jerome Forissier <jerome.forissier@linaro.org> Reviewed-by: Pascal Brand <pascal.brand@linaro.org> Tested-by: Cedric Chaumont <cedric.chaumont@linaro.org> (STM boards) Tested-by: Cedric Chaumont <cedric.chaumont@linaro.org> (ARM Juno board)
show more ...
|
| #
ba675d69 |
| 15-Apr-2015 |
Cedric Chaumont <cedric.chaumont@st.com> |
GP Internal Core API v1.1 : review property access functions
update panic reasons, functions input parameters check
Signed-off-by: Cedric Chaumont <cedric.chaumont@st.com> Reviewed-by: Jens Wikland
GP Internal Core API v1.1 : review property access functions
update panic reasons, functions input parameters check
Signed-off-by: Cedric Chaumont <cedric.chaumont@st.com> Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org> Reviewed-by: Pascal Brand <pascal.brand@linaro.org> Tested-by: Cedric Chaumont <cedric.chaumont@linaro.org> (STM boards) Tested-by: Cedric Chaumont <cedric.chaumont@linaro.org> (ARM Juno board)
show more ...
|
| #
7f74c64a |
| 01-Apr-2015 |
Pascal Brand <pascal.brand@st.com> |
Update ABI-32bits and v1.1 uint32_t changes
Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org> Tested-by: Pascal Brand <pascal.brand@linaro.org> (STM platform) Signed-off-by: Pascal Brand <pasc
Update ABI-32bits and v1.1 uint32_t changes
Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org> Tested-by: Pascal Brand <pascal.brand@linaro.org> (STM platform) Signed-off-by: Pascal Brand <pascal.brand@st.com>
show more ...
|
| #
79a3c601 |
| 13-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 ...
|
| #
647f9c76 |
| 21-Aug-2014 |
Jerome Forissier <jerome.forissier@linaro.org> |
Get value of gpd.tee.arith.maxBigIntSize from libutee
The property gpd.tee.arith.maxBigIntSize was implemented in TEE core by tee_svc_sys_get_property() which was returning a constant taken from the
Get value of gpd.tee.arith.maxBigIntSize from libutee
The property gpd.tee.arith.maxBigIntSize was implemented in TEE core by tee_svc_sys_get_property() which was returning a constant taken from the crypto module (LTC_MAX_BITS_PER_VARIABLE / 2). The correct value is TEE_MAX_NUMBER_OF_SUPPORTED_BITS from libutee. This commit makes libutee return the appropriate value directly (without calling the TEE core) and deletes the property from the syscall. Additionally, this removes the unjustified dependency of tee_svc.c on <tee_ltc_wrapper.h>.
show more ...
|