History log of /optee_os/lib/libutee/tee_api_objects.c (Results 1 – 25 of 43)
Revision Date Author Comments
# 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>


12