| #
6a2e0a9f |
| 14-Sep-2018 |
Gabor Szekely <szvgabor@gmail.com> |
utee: support prehashed RSA sign/ver without ASN.1
Add TEE Core Internal API extension TEE_ALG_RSASSA_PKCS1_V1_5 to sign/verify pre-hashed PKCS#1 v1.5 EMSA without ASN.1 around the hash. This relies
utee: support prehashed RSA sign/ver without ASN.1
Add TEE Core Internal API extension TEE_ALG_RSASSA_PKCS1_V1_5 to sign/verify pre-hashed PKCS#1 v1.5 EMSA without ASN.1 around the hash. This relies on libtomcrypt LTC_PKCS_1_V1_5_NA1. The extension can be turned on with CFG_CRYPTO_RSASSA_NA1.
Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org> Signed-off-by: Gabor Szekely <szvgabor@gmail.com>
show more ...
|
| #
433c4257 |
| 07-May-2018 |
Jens Wiklander <jens.wiklander@linaro.org> |
Add rand() for TA usage
Adds rand() by declaring it in stdlib.h where it's expected to be found. Implementation is provided in libutee since it depends on TEE_GenerateRandom().
Reviewed-by: Joakim
Add rand() for TA usage
Adds rand() by declaring it in stdlib.h where it's expected to be found. Implementation is provided in libutee since it depends on TEE_GenerateRandom().
Reviewed-by: Joakim Bech <joakim.bech@linaro.org> Acked-by: Etienne Carriere <etienne.carriere@linaro.org> Signed-off-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 ...
|
| #
2733280a |
| 06-Apr-2018 |
Etienne Carriere <etienne.carriere@linaro.org> |
libutee: out and tag buffers can be too short in TEE_AEEncryptFinal
With this change, a single call to TEE_AEEncryptFinal() checks both the output data buffer size and the tag buffer size and return
libutee: out and tag buffers can be too short in TEE_AEEncryptFinal
With this change, a single call to TEE_AEEncryptFinal() checks both the output data buffer size and the tag buffer size and return TEE_ERROR_SHORT_BUFFER with both expected size if at least one of the provided buffer is too short.
Before this change caller may need to call twice TEE_AEEncryptFinal() in the right order to get the output buffers sizes, first for the output data size then for the tag data size.
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 ...
|
| #
57aabac5 |
| 02-Jun-2017 |
Bogdan Liulko <bogdan.liulko@globallogic.com> |
Remove buffering for AES CTR
CTR mode of AES algorithm turns block cipher into stream cipher. It means that input data can has any size independent from block size. It must be processed and result c
Remove buffering for AES CTR
CTR mode of AES algorithm turns block cipher into stream cipher. It means that input data can has any size independent from block size. It must be processed and result ciphertext must be generated after each TEE_CipherUpdate function call. That is why it is incorrect to apply for AES CTR the input buffering on TEE_CipherUpdate call when size is not multiple of block size.
Signed-off-by: Bogdan Liulko <bogdan.liulko@globallogic.com> Tested-by: Jerome Forissier <jerome.forissier@linaro.org> (HiKey) Tested-by: Bogdan Liulko <bogdan.liulko@globallogic.com> (R-Car) Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org>
show more ...
|
| #
afc0c182 |
| 31-May-2017 |
Bogdan Liulko <bogdan.liulko@globallogic.com> |
libutee: Remove buffering for AES GCM
GCM mode of AES algorithm is essentially a stream cipher. It means that there is no requirements for input data size related to block size. And every time when
libutee: Remove buffering for AES GCM
GCM mode of AES algorithm is essentially a stream cipher. It means that there is no requirements for input data size related to block size. And every time when AEUpdate is called input data must be processed and output immediately generated. That is why it is incorrect to apply for AES GCM the input buffering on AEUpdate call when size is not multiple of block size.
Signed-off-by: Bogdan Liulko <bogdan.liulko@globallogic.com> Tested-by: Jerome Forissier <jerome.forissier@linaro.org> (HiKey) Tested-by: Bogdan Liulko <bogdan.liulko@globallogic.com> (R-Car) Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org> Reviewed-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 ...
|
| #
bf7a587f |
| 25-Jan-2017 |
Jerome Forissier <jerome.forissier@linaro.org> |
libutee: AES CTS fix
Ad-hoc fix for regressions introduced by [1]. Tested on HiKey using latest optee_test including GlobalPlatform tests (32/64-bit TEE core, 32/64-bit libutee, with/without ARMv8 C
libutee: AES CTS fix
Ad-hoc fix for regressions introduced by [1]. Tested on HiKey using latest optee_test including GlobalPlatform tests (32/64-bit TEE core, 32/64-bit libutee, with/without ARMv8 CE acceleration).
Fixes: b1ecda78bab4 ("libutee: fix off-by-one error in tee_buffer_update()") [1] Fixes: https://github.com/OP-TEE/optee_os/issues/1305 Signed-off-by: Jerome Forissier <jerome.forissier@linaro.org> Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org>
show more ...
|
| #
b1ecda78 |
| 20-Jan-2017 |
Jerome Forissier <jerome.forissier@linaro.org> |
libutee: fix off-by-one error in tee_buffer_update()
Makes the ROUNDUP() call in the "feeding from src" case consistent with the "feeding from buffer" case a few lines earlier. Without this fix, AES
libutee: fix off-by-one error in tee_buffer_update()
Makes the ROUNDUP() call in the "feeding from src" case consistent with the "feeding from buffer" case a few lines earlier. Without this fix, AES CTR encryption or decryption could fail because update would feed blocks too soon, leaving less than two blocks in the internal buffer thus causing utee_cipher_final() (called from TEE_CipherDoFinal()) to fail and panic the TA.
Fixes: https://github.com/OP-TEE/optee_os/issues/1203 Signed-off-by: Jerome Forissier <jerome.forissier@linaro.org> Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org>
show more ...
|
| #
090268f5 |
| 05-Dec-2016 |
Jens Wiklander <jens.wiklander@linaro.org> |
libutee: bugfix srcData == NULL cases
Fixes faulty treatment of srcData == NULL in TEE_CipherUpdate(), TEE_AEUpdate(), TEE_AEEncryptFinal(), TEE_AEDecryptFinal().
Reviewed-by: Jerome Forissier <jer
libutee: bugfix srcData == NULL cases
Fixes faulty treatment of srcData == NULL in TEE_CipherUpdate(), TEE_AEUpdate(), TEE_AEEncryptFinal(), TEE_AEDecryptFinal().
Reviewed-by: Jerome Forissier <jerome.forissier@linaro.org> Reviewed-by: Guanchao Liang <liang.guanchao@linaro.org> Tested-by: Jens Wiklander <jens.wiklander@linaro.org> (QEMU) Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org> [Rebase on top of master] Signed-off-by: Jerome Forissier <jerome.forissier@linaro.org>
show more ...
|
| #
827308b8 |
| 25-Nov-2016 |
Jerome Forissier <jerome.forissier@linaro.org> |
libutee: TEE_AEUpdate(): do nothing when (!srcData && !srcLen)
Fixes: Coverity CID:1378615 Signed-off-by: Jerome Forissier <jerome.forissier@linaro.org> Reviewed-by: Jens Wiklander <jens.wiklander@l
libutee: TEE_AEUpdate(): do nothing when (!srcData && !srcLen)
Fixes: Coverity CID:1378615 Signed-off-by: Jerome Forissier <jerome.forissier@linaro.org> Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org>
show more ...
|
| #
a9f92a95 |
| 25-Nov-2016 |
Jerome Forissier <jerome.forissier@linaro.org> |
libutee: TEE_AEEncryptFinal(): do nothing when (!srcData && !srcLen)
Fixes: Coverity CID:1378616 Signed-off-by: Jerome Forissier <jerome.forissier@linaro.org> Reviewed-by: Jens Wiklander <jens.wikla
libutee: TEE_AEEncryptFinal(): do nothing when (!srcData && !srcLen)
Fixes: Coverity CID:1378616 Signed-off-by: Jerome Forissier <jerome.forissier@linaro.org> Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org>
show more ...
|
| #
2fda30ff |
| 25-Nov-2016 |
Jerome Forissier <jerome.forissier@linaro.org> |
libutee: TEE_AEDecryptFinal(): do nothing when (!srcData && !srcLen)
Fixes: Coverity CID:1378617 Signed-off-by: Jerome Forissier <jerome.forissier@linaro.org> Reviewed-by: Jens Wiklander <jens.wikla
libutee: TEE_AEDecryptFinal(): do nothing when (!srcData && !srcLen)
Fixes: Coverity CID:1378617 Signed-off-by: Jerome Forissier <jerome.forissier@linaro.org> Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org>
show more ...
|
| #
4bd53c54 |
| 24-Nov-2016 |
Jerome Forissier <jerome.forissier@linaro.org> |
libutee: TEE_AllocateOperation(): rewrite FALLTHROUGH comment
Fixes: Coverity CID:1378629 Signed-off-by: Jerome Forissier <jerome.forissier@linaro.org> Reviewed-by: Jens Wiklander <jens.wiklander@li
libutee: TEE_AllocateOperation(): rewrite FALLTHROUGH comment
Fixes: Coverity CID:1378629 Signed-off-by: Jerome Forissier <jerome.forissier@linaro.org> Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org>
show more ...
|
| #
f21873cd |
| 24-Nov-2016 |
Jerome Forissier <jerome.forissier@linaro.org> |
libutee: TEE_CipherDoFinal(): do nothing when (!srcData && !srcLen)
Fixes: Coverity CID:1378631 Signed-off-by: Jerome Forissier <jerome.forissier@linaro.org> Reviewed-by: Jens Wiklander <jens.wiklan
libutee: TEE_CipherDoFinal(): do nothing when (!srcData && !srcLen)
Fixes: Coverity CID:1378631 Signed-off-by: Jerome Forissier <jerome.forissier@linaro.org> Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org>
show more ...
|
| #
e32c5ddf |
| 24-Nov-2016 |
Jerome Forissier <jerome.forissier@linaro.org> |
libutee: TEE_CipherUpdate(): do nothing when (!srcData && !srcLen)
Fixes: Coverity CID:1378632 Signed-off-by: Jerome Forissier <jerome.forissier@linaro.org> Reviewed-by: Jens Wiklander <jens.wikland
libutee: TEE_CipherUpdate(): do nothing when (!srcData && !srcLen)
Fixes: Coverity CID:1378632 Signed-off-by: Jerome Forissier <jerome.forissier@linaro.org> Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org>
show more ...
|
| #
e86f1266 |
| 05-Nov-2015 |
Jens Wiklander <jens.wiklander@linaro.org> |
Make TEE Core TA interaction 64-bit compatible
* Updates TA entry * Update ta_head * Updates the syscall interface * Adds functions to make a short pointer (32-bit uref) from a kernel pointer and
Make TEE Core TA interaction 64-bit compatible
* Updates TA entry * Update ta_head * Updates the syscall interface * Adds functions to make a short pointer (32-bit uref) from a kernel pointer and vice versa
Note that this change is not backwards compatible, TAs needs to be recompiled.
Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org> Reviewed-by: Joakim Bech <joakim.bech@linaro.org> Reviewed-by: Pascal Brand <pascal.brand@linaro.org>
show more ...
|
| #
b66f219b |
| 26-Oct-2015 |
Jens Wiklander <jens.wiklander@linaro.org> |
libutee: fix cleanup in TEE_AllocateOperation()
Fixes error handling in TEE_AllocateOperation()
Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org> Tested-by: Jens Wiklander <jens.wiklander@l
libutee: fix cleanup in TEE_AllocateOperation()
Fixes error handling in TEE_AllocateOperation()
Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org> Tested-by: Jens Wiklander <jens.wiklander@linaro.org> (QEMU) Reviewed-by: Jerome Forissier <jerome.forissier@linaro.org> Reviewed-by: Pascal Brand <pascal.brand@linaro.org>
show more ...
|
| #
642a1607 |
| 24-Jul-2015 |
Cedric Chaumont <cedric.chaumont@st.com> |
GP11 : operation state handling
Change-Id: I136443ef2f137b2e12902324d724fff7ce7c590e Signed-off-by: Cedric Chaumont <cedric.chaumont@st.com> Reviewed-by: Jerome Forisssier <jerome.forissier@linaro.o
GP11 : operation state handling
Change-Id: I136443ef2f137b2e12902324d724fff7ce7c590e Signed-off-by: Cedric Chaumont <cedric.chaumont@st.com> Reviewed-by: Jerome Forisssier <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 ...
|
| #
325a2155 |
| 16-Jun-2015 |
Pascal Brand <pascal.brand@st.com> |
Remove useless src alignment check in TEE_UpdateXXX
Tested-by: Pascal BRAND <pascal.brand@st.com> Reviewed-by: Jean-Michel DELORME <jean-michel.delorme@st.com> Reviewed-by: Etienne CARRIERE <etienne
Remove useless src alignment check in TEE_UpdateXXX
Tested-by: Pascal BRAND <pascal.brand@st.com> Reviewed-by: Jean-Michel DELORME <jean-michel.delorme@st.com> Reviewed-by: Etienne CARRIERE <etienne.carriere@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> Tested-by: Pascal Brand <pascal.brand@linaro.org> (STM platform)
show more ...
|
| #
6d15db08 |
| 29-Jul-2015 |
Jerome Forissier <jerome.forissier@linaro.org> |
libutee: reset state after TEE_DigestDoFinal()
As per GlobalPlatform Internal API Specifications v1.0 and v1.1, section 6.3.2 TEE_DigestDoFinal: "Afterwards the Message Digest operation is reset [to
libutee: reset state after TEE_DigestDoFinal()
As per GlobalPlatform Internal API Specifications v1.0 and v1.1, section 6.3.2 TEE_DigestDoFinal: "Afterwards the Message Digest operation is reset [to initial state] and can be reused" (the words in square brackets are in v1.1 only).
Note that other TEE_xxxFinal() functions are not modified because the specifications state that the application shall panic if "the operation has not been started yet with TEE_[xxx]Init() or has already been finalized."
Signed-off-by: Jerome Forissier <jerome.forissier@linaro.org> Reviewed-by: Pascal Brand <pascal.brand@linaro.org>
show more ...
|
| #
05304565 |
| 06-Jul-2015 |
Cedric Chaumont <cedric.chaumont@st.com> |
GP11 : TEE_GetOperationInfoMultiple
Signed-off-by: Cedric Chaumont <cedric.chaumont@st.com> Reviewed-by: Pascal Brand <pascal.brand@linaro.org> Tested-by: Cedric Chaumont <cedric.chaumont@linaro.org
GP11 : TEE_GetOperationInfoMultiple
Signed-off-by: Cedric Chaumont <cedric.chaumont@st.com> 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 ...
|
| #
84fa9467 |
| 02-Jul-2015 |
Cedric Chaumont <cedric.chaumont@st.com> |
GP11 : Key derivation function fix
Signed-off-by: Cedric Chaumont <cedric.chaumont@st.com> Reviewed-by: Joakim Bech <joakim.bech@linaro.org> Tested-by: Cedric Chaumont <cedric.chaumont@linaro.org> (
GP11 : Key derivation function fix
Signed-off-by: Cedric Chaumont <cedric.chaumont@st.com> Reviewed-by: Joakim Bech <joakim.bech@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 ...
|