| af78e1b1 | 24-Oct-2022 |
Imre Kis <imre.kis@arm.com> |
ldelf: Provide access to TS load address
Propagate ELF load address from ldelf to user mode context as a preparation for load address relative memory regions.
Signed-off-by: Imre Kis <imre.kis@arm.
ldelf: Provide access to TS load address
Propagate ELF load address from ldelf to user mode context as a preparation for load address relative memory regions.
Signed-off-by: Imre Kis <imre.kis@arm.com> Acked-by: Jens Wiklander <jens.wiklander@linaro.org>
show more ...
|
| 2fe8f2a0 | 25-Oct-2022 |
Imre Kis <imre.kis@arm.com> |
core: spmc: Differentiate return values of SP manifest helpers
Distinguish between non-existing properties and invalid property lengths in manifest helper functions to allow having optional properti
core: spmc: Differentiate return values of SP manifest helpers
Distinguish between non-existing properties and invalid property lengths in manifest helper functions to allow having optional properties.
Signed-off-by: Imre Kis <imre.kis@arm.com> Acked-by: Jens Wiklander <jens.wiklander@linaro.org>
show more ...
|
| 2234f3c9 | 26-Jan-2023 |
Jorge Ramirez-Ortiz <jorge@foundries.io> |
versal: enable the crypto driver
The crypto driver API provides an extra indirection level to enable different ciphers.
Since Versal ACAP supports acipher and authenc, enable them.
Falling-back to
versal: enable the crypto driver
The crypto driver API provides an extra indirection level to enable different ciphers.
Since Versal ACAP supports acipher and authenc, enable them.
Falling-back to software operations (RSA sign/verify) triggers a fault detection; we will disable this config while a solution is found.
Signed-off-by: Jorge Ramirez-Ortiz <jorge@foundries.io> Acked-by: Jerome Forissier <jerome.forissier@linaro.org> Acked-by: Etienne Carriere <etienne.carriere@linaro.org>
show more ...
|
| 26653d8f | 26-Jan-2023 |
Jorge Ramirez-Ortiz <jorge@foundries.io> |
versal: increase CFG_CORE_HEAP_SIZE
Empirically incrementing limit to avoid OOM when executing xtests.
Signed-off-by: Jorge Ramirez-Ortiz <jorge@foundries.io> Acked-by: Jerome Forissier <jerome.for
versal: increase CFG_CORE_HEAP_SIZE
Empirically incrementing limit to avoid OOM when executing xtests.
Signed-off-by: Jorge Ramirez-Ortiz <jorge@foundries.io> Acked-by: Jerome Forissier <jerome.forissier@linaro.org> Acked-by: Etienne Carriere <etienne.carriere@linaro.org>
show more ...
|
| 2b83a595 | 01-Feb-2023 |
Jorge Ramirez-Ortiz <jorge@foundries.io> |
crypto: versal: rsa: only support sign/verify operations
RSA encryption/decryption is not supported (the PLM does not return the size of the encrypted/decrypted buffers).
Signed-off-by: Jorge Ramir
crypto: versal: rsa: only support sign/verify operations
RSA encryption/decryption is not supported (the PLM does not return the size of the encrypted/decrypted buffers).
Signed-off-by: Jorge Ramirez-Ortiz <jorge@foundries.io> Acked-by: Etienne Carriere <etienne.carriere@linaro.org>
show more ...
|
| e8bbd0e0 | 30-Jan-2023 |
Jorge Ramirez-Ortiz <jorge@foundries.io> |
crypto: versal: ecc: sign/verify fix
Both the message (hash) and the generated signatures must be swapped.
The following custom tests were executed for P384 (prime384v1) and P521 (nistp521) curves.
crypto: versal: ecc: sign/verify fix
Both the message (hash) and the generated signatures must be swapped.
The following custom tests were executed for P384 (prime384v1) and P521 (nistp521) curves.
Signing and verifying using pkcs#11 alone (ie like done in xtest) was not sufficient to capture this bug.
PTOOL='pkcs11-tool --module /usr/lib/libckteec.so.0.1.0' SO_PIN=55555555 PIN=44444444 FILE=hello
printf "OP-TEE: create key pair" $PTOOL --id 01 --label ldts --token-label fio --pin $PIN \ --keypairgen \ --key-type EC:prime384v1
printf "OP-TEE: read the public key" $PTOOL -l --pin $PIN --id 01 \ --read-object --type pubkey --output-file pubkey.spki
printf "Openssl: export key to PEM" openssl ec -inform DER -outform PEM -in pubkey.spki -pubin > pubkey.pub
printf "Create file to sign" echo "hello world" > $FILE
printf "OpenSSL: create the file sha384" openssl dgst -binary -sha384 $FILE > $FILE.hash
printf "OP-TEE: generate signature " $PTOOL --pin $PIN --id 01 --label ldts --token-label fio \ --sign --input-file $FILE.hash --output-file $FILE.sig --mechanism ECDSA -f openssl
printf "OpenSSL: verify signature" openssl dgst -sha384 -verify pubkey.pub -signature "$FILE".sig "$FILE"
printf "OP-TEE: verify signature" $PTOOL --pin $PIN --id 01 --label ldts --token-label fio \ --verify \ --input-file $FILE.hash \ --signature-format openssl \ --signature-file $FILE.sig \ --mechanism ECDSA
Signed-off-by: Jorge Ramirez-Ortiz <jorge@foundries.io> Acked-by: Jerome Forissier <jerome.forissier@linaro.org> Acked-by: Etienne Carriere <etienne.carriere@linaro.org>
show more ...
|
| 450963c2 | 01-Feb-2023 |
Jerome Forissier <jerome.forissier@linaro.org> |
ci: disable QEMUv8_check_rust job
Since the GlobalPlatrform 1.3.1 update, the check-rust job is failing because some Rust interface needs to be updated [1]. In the meantime, disable the CI job.
Lin
ci: disable QEMUv8_check_rust job
Since the GlobalPlatrform 1.3.1 update, the check-rust job is failing because some Rust interface needs to be updated [1]. In the meantime, disable the CI job.
Link: [1] https://github.com/OP-TEE/optee_os/pull/5688#issuecomment-1370608865 Signed-off-by: Jerome Forissier <jerome.forissier@linaro.org> Acked-by: Jens Wiklander <jens.wiklander@linaro.org> Acked-by: Etienne Carriere <etienne.carriere@linaro.org>
show more ...
|
| 5f1d31ff | 01-Feb-2023 |
Jerome Forissier <jerome.forissier@linaro.org> |
ci: QEMuv8_check*: do not run as root
Now that the Docker image doesn't come with pre-cloned source files owned by root, there is no need to use sudo to run commands. Check out the build tree as the
ci: QEMuv8_check*: do not run as root
Now that the Docker image doesn't come with pre-cloned source files owned by root, there is no need to use sudo to run commands. Check out the build tree as the CI user, one level higher than the optee_os checkout created for the current CI run.
Signed-off-by: Jerome Forissier <jerome.forissier@linaro.org> Acked-by: Jens Wiklander <jens.wiklander@linaro.org> Acked-by: Etienne Carriere <etienne.carriere@linaro.org>
show more ...
|
| 29711e3b | 27-Jan-2023 |
Jerome Forissier <jerome.forissier@linaro.org> |
ci: add job with BTI, MTE and PAC enabled
Add a new job to test OP-TEE with Branch Target Identification, Memory Tagging Extension and Pointer Authentication Codes enabled. BTI requires special supp
ci: add job with BTI, MTE and PAC enabled
Add a new job to test OP-TEE with Branch Target Identification, Memory Tagging Extension and Pointer Authentication Codes enabled. BTI requires special support in the toolchain (libgcc) so use a custom cross-compiler (aarch64-unknown-linux-uclibc-gcc) which is installed in the Docker image.
Signed-off-by: Jerome Forissier <jerome.forissier@linaro.org> Acked-by: Etienne Carriere <etienne.carriere@linaro.org> Acked-by: Jens Wiklander <jens.wiklander@linaro.org>
show more ...
|
| 32fe7da6 | 26-Jan-2023 |
Jerome Forissier <jerome.forissier@linaro.org> |
ci: make QEMUv8 jobs download source tree from scratch
Update the QEMUv8 jobs to user a new Docker image: jforissier/optee_os_ci:qemuv8_check2 [2]. The main differences with the previous one (:qemuv
ci: make QEMUv8 jobs download source tree from scratch
Update the QEMUv8 jobs to user a new Docker image: jforissier/optee_os_ci:qemuv8_check2 [2]. The main differences with the previous one (:qemuv8_check [1]) are: - The OP-TEE development tree is not included. Instead a script is used to download the source trees via repo init, repo sync etc. (/root/get_optee_qemuv8.sh). - The new image contains a toolchain with full BTI support.
Several reasons for that: - The Gits in the older Docker image can be outdated. Doing "repo sync" then rebuilding without "make clean" often works in practice but it can also cause problems when external components are updated. For example we may run out of disk space when Buildroot is updated and brings many new packages. It can also happen that new sources are not properly rebuilt. - The Docker image is much bigger if it contains a pre-built OP-TEE tree, that means longer download times but more importantly much slower upload times when it needs updating, which is all the more often if it contains the non OP-TEE software. - Caching (ccache) is enabled and saved/restored by GitHub cache actions so build time should not suffer too much.
Link: [1] https://github.com/jforissier/docker_optee_os_ci/tree/qemuv8_check Link: [2] https://github.com/jforissier/docker_optee_os_ci/tree/qemuv8_check2 Signed-off-by: Jerome Forissier <jerome.forissier@linaro.org> Acked-by: Etienne Carriere <etienne.carriere@linaro.org> Acked-by: Jens Wiklander <jens.wiklander@linaro.org>
show more ...
|
| baa05d63 | 27-Jan-2023 |
Jerome Forissier <jerome.forissier@linaro.org> |
ci: use set -v consistently
Use "set -v" in all jobs to display the commands before they are executed.
Signed-off-by: Jerome Forissier <jerome.forissier@linaro.org> Acked-by: Etienne Carriere <etie
ci: use set -v consistently
Use "set -v" in all jobs to display the commands before they are executed.
Signed-off-by: Jerome Forissier <jerome.forissier@linaro.org> Acked-by: Etienne Carriere <etienne.carriere@linaro.org> Acked-by: Jens Wiklander <jens.wiklander@linaro.org>
show more ...
|
| f8ea228a | 26-Jan-2023 |
Jerome Forissier <jerome.forissier@linaro.org> |
ci: configure ccache for jobs that use Buildroot
The jobs that use Buildroot are not configured properly to benefit from ccache when compiling the Builroot packages. Therefore set BR2_CCACHE_DIR to
ci: configure ccache for jobs that use Buildroot
The jobs that use Buildroot are not configured properly to benefit from ccache when compiling the Builroot packages. Therefore set BR2_CCACHE_DIR to point to the location that is cached by the CI environment.
The QEMUv8_check_rust job also needs a cache action and should not change HOME to /root because ccache would default to /root/.cache instead of /github/home/.cache.
Signed-off-by: Jerome Forissier <jerome.forissier@linaro.org> Acked-by: Etienne Carriere <etienne.carriere@linaro.org> Acked-by: Jens Wiklander <jens.wiklander@linaro.org>
show more ...
|
| 11af44c2 | 26-Jan-2023 |
Jerome Forissier <jerome.forissier@linaro.org> |
ci: move Xen checks to a separate job
Move the Xen tests out of the QEMUv8_check job into their own job: QEMUv8_Xen_check. This allows parallel execution which should reduce the overall CI time. It
ci: move Xen checks to a separate job
Move the Xen tests out of the QEMUv8_check job into their own job: QEMUv8_Xen_check. This allows parallel execution which should reduce the overall CI time. It is easier to see what fails from the main CI report as well.
Signed-off-by: Jerome Forissier <jerome.forissier@linaro.org> Acked-by: Etienne Carriere <etienne.carriere@linaro.org> Acked-by: Jens Wiklander <jens.wiklander@linaro.org>
show more ...
|
| 74f6dd9b | 01-Feb-2023 |
Marouene Boubakri <marouene.boubakri@nxp.com> |
core, ldelf: add support for RISC-V
RISC-V support of argument for ldelf dump state.
Signed-off-by: Marouene Boubakri <marouene.boubakri@nxp.com> Reviewed-by: Jerome Forissier <jerome.forissier@lin
core, ldelf: add support for RISC-V
RISC-V support of argument for ldelf dump state.
Signed-off-by: Marouene Boubakri <marouene.boubakri@nxp.com> Reviewed-by: Jerome Forissier <jerome.forissier@linaro.org>
show more ...
|
| cb5f271c | 01-Feb-2023 |
Marouene Boubakri <marouene.boubakri@nxp.com> |
core, ldelf: replace is_arm32 with is_32bit
To refer to 32-bit mode, this commit replace is_arm32 with is_32bit in the following files: - core/kernel/ldelf_loader.c - ldelf/include/ldelf.h - ldelf/m
core, ldelf: replace is_arm32 with is_32bit
To refer to 32-bit mode, this commit replace is_arm32 with is_32bit in the following files: - core/kernel/ldelf_loader.c - ldelf/include/ldelf.h - ldelf/main.c
Signed-off-by: Marouene Boubakri <marouene.boubakri@nxp.com> Reviewed-by: Jerome Forissier <jerome.forissier@linaro.org>
show more ...
|
| d8e4ae07 | 01-Feb-2023 |
Marouene Boubakri <marouene.boubakri@nxp.com> |
core: kernel: move ldelf_loader.c to core/kernel
Make other architecture implementations benefit from ldelf_loader.c, therefore move it from core/arch/arm/kernel to core/kernel. The header file is a
core: kernel: move ldelf_loader.c to core/kernel
Make other architecture implementations benefit from ldelf_loader.c, therefore move it from core/arch/arm/kernel to core/kernel. The header file is already located outside the arch folder.
Signed-off-by: Marouene Boubakri <marouene.boubakri@nxp.com> Reviewed-by: Jerome Forissier <jerome.forissier@linaro.org>
show more ...
|
| 3b439c8f | 26-Jan-2023 |
Jens Wiklander <jens.wiklander@linaro.org> |
GP131: Fix the TEE_ALG_SM2_PKE define
The define TEE_ALG_SM2_PKE was introduced with the value 0x80000045 in the v1.2 specification and later changed to 0x80000046 in v1.3. At this point we try to b
GP131: Fix the TEE_ALG_SM2_PKE define
The define TEE_ALG_SM2_PKE was introduced with the value 0x80000045 in the v1.2 specification and later changed to 0x80000046 in v1.3. At this point we try to be compatible with v1.3.1 so update the value to match that version of the GlobalPlatform specification.
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 ...
|
| b9263ec2 | 25-Jan-2023 |
Jens Wiklander <jens.wiklander@linaro.org> |
GP131: tee_api_defines.h: remove obsolete comments
Removes the obsolete comments "/* vx.y.z spec */" from attributes, type, and algorithm defines. The defines are all now up to date with GP v1.3.1.
GP131: tee_api_defines.h: remove obsolete comments
Removes the obsolete comments "/* vx.y.z spec */" from attributes, type, and algorithm defines. The defines are all now up to date with GP v1.3.1.
Acked-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 ...
|
| 138c5102 | 14-Dec-2022 |
Jens Wiklander <jens.wiklander@linaro.org> |
GP131: Add TA property gpd.ta.doesNotCloseHandleOnCorruptObject
Adds the TA property gpd.ta.doesNotCloseHandleOnCorruptObject.
All syscalls operating on an object handle and can return TEE_ERROR_CO
GP131: Add TA property gpd.ta.doesNotCloseHandleOnCorruptObject
Adds the TA property gpd.ta.doesNotCloseHandleOnCorruptObject.
All syscalls operating on an object handle and can return TEE_ERROR_CORRUPT_OBJECT must also do special treatment when TEE_ERROR_CORRUPT_OBJECT is returned. Prior to gpd.ta.doesNotCloseHandleOnCorruptObject this meant removing the object and closing the object handle. With the gpd.ta.doesNotCloseHandleOnCorruptObject property the object handle shouldn't be close if this the current TA has the property set to true.
Reviewed-by: Etienne Carriere <etienne.carriere@linaro.org> Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org>
show more ...
|
| 1bc176d8 | 16-Dec-2022 |
Jens Wiklander <jens.wiklander@linaro.org> |
GP131: TEE_Asymmetric{En,De}crypt() add return codes
Adds TEE_ERROR_CIPHERTEXT_INVALID and TEE_ERROR_NOT_SUPPORTED to the list of supported return code for TEE_AsymmetricEncrypt() and TEE_Asymmetric
GP131: TEE_Asymmetric{En,De}crypt() add return codes
Adds TEE_ERROR_CIPHERTEXT_INVALID and TEE_ERROR_NOT_SUPPORTED to the list of supported return code for TEE_AsymmetricEncrypt() and TEE_AsymmetricDecrypt().
Reviewed-by: Etienne Carriere <etienne.carriere@linaro.org> Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org>
show more ...
|
| 6214424f | 15-Dec-2022 |
Jens Wiklander <jens.wiklander@linaro.org> |
GP131: add TEE_BigIntExpMod()
Adds the function TEE_BigIntExpMod() introduced in TEE Internal Core API v1.2.
Reviewed-by: Etienne Carriere <etienne.carriere@linaro.org> Signed-off-by: Jens Wiklande
GP131: add TEE_BigIntExpMod()
Adds the function TEE_BigIntExpMod() introduced in TEE Internal Core API v1.2.
Reviewed-by: Etienne Carriere <etienne.carriere@linaro.org> Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org>
show more ...
|
| 3be980f7 | 15-Dec-2022 |
Jens Wiklander <jens.wiklander@linaro.org> |
GP131: add TEE_BigIntAbs()
Adds the function TEE_BigIntAbs() introduced in TEE Internal Core API v1.2.
Reviewed-by: Etienne Carriere <etienne.carriere@linaro.org> Signed-off-by: Jens Wiklander <jen
GP131: add TEE_BigIntAbs()
Adds the function TEE_BigIntAbs() introduced in TEE Internal Core API v1.2.
Reviewed-by: Etienne Carriere <etienne.carriere@linaro.org> Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org>
show more ...
|
| 42023295 | 15-Dec-2022 |
Jens Wiklander <jens.wiklander@linaro.org> |
GP131: add TEE_BigIntSetBit()
Adds the function TEE_BigIntSetBit() introduced in TEE Internal Core API v1.2.
Reviewed-by: Etienne Carriere <etienne.carriere@linaro.org> Signed-off-by: Jens Wiklande
GP131: add TEE_BigIntSetBit()
Adds the function TEE_BigIntSetBit() introduced in TEE Internal Core API v1.2.
Reviewed-by: Etienne Carriere <etienne.carriere@linaro.org> Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org>
show more ...
|
| af4bcf34 | 15-Dec-2022 |
Jens Wiklander <jens.wiklander@linaro.org> |
GP131: add TEE_BigIntAssign()
Adds the function TEE_BigIntAssign() introduced in TEE Internal Core API v1.2.
Reviewed-by: Etienne Carriere <etienne.carriere@linaro.org> Signed-off-by: Jens Wiklande
GP131: add TEE_BigIntAssign()
Adds the function TEE_BigIntAssign() introduced in TEE Internal Core API v1.2.
Reviewed-by: Etienne Carriere <etienne.carriere@linaro.org> Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org>
show more ...
|
| 287a6182 | 15-Dec-2022 |
Jens Wiklander <jens.wiklander@linaro.org> |
GP131: Update TEE_SetOperationKey*()
Update TEE_SetOperationKey() and TEE_SetOperationKey2() according to TEE Internal Core API version 1.3.1.
Compatibility functions for v1.1 are added due an inco
GP131: Update TEE_SetOperationKey*()
Update TEE_SetOperationKey() and TEE_SetOperationKey2() according to TEE Internal Core API version 1.3.1.
Compatibility functions for v1.1 are added due an incompatible change highlighted by the GP compliance test suite. Prior to 1.3 the functions where should panic if operation state isn't "initial", in 1.3 they are instead required to always reset the operation state to "initial".
Reviewed-by: Etienne Carriere <etienne.carriere@linaro.org> Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org>
show more ...
|