| #
d99b271a |
| 13-Feb-2024 |
Jorge Ramirez-Ortiz <jorge@foundries.io> |
drivers: se050: fix default configuration for the SE applet
Invalid character was merged in the fixed commit.
Fixes: fb559031c25f ("drivers: se050: allow configuring the Secure Element applet") Sig
drivers: se050: fix default configuration for the SE applet
Invalid character was merged in the fixed commit.
Fixes: fb559031c25f ("drivers: se050: allow configuring the Secure Element applet") Signed-off-by: Jorge Ramirez-Ortiz <jorge@foundries.io> Reviewed-by: Jerome Forissier <jerome.forissier@linaro.org>
show more ...
|
| #
fb559031 |
| 31-Mar-2023 |
Jorge Ramirez-Ortiz <jorge@foundries.io> |
drivers: se050: allow configuring the Secure Element applet
Add CFG_CORE_SE05X_VER to allow configuring the desirable applet version. This enables making the driver compatible with newer elements.
drivers: se050: allow configuring the Secure Element applet
Add CFG_CORE_SE05X_VER to allow configuring the desirable applet version. This enables making the driver compatible with newer elements.
Signed-off-by: Jorge Ramirez-Ortiz <jorge@foundries.io> Acked-by: Jerome Forissier <jerome.forissier@linaro.org> Acked-by: Jens Wiklander <jens.wiklander@linaro.org>
show more ...
|
| #
d8eed0c1 |
| 08-Dec-2022 |
Jorge Ramirez-Ortiz <jorge@foundries.io> |
crypto: drivers: se050: ecc: fallback to softw-ops
Operations that require a public key might fallback to a software based implementation.
Operations that require a private key might fallback to a
crypto: drivers: se050: ecc: fallback to softw-ops
Operations that require a public key might fallback to a software based implementation.
Operations that require a private key might fallback to a software based implementation as long as the private key is not in the secure element.
Use CFG_NXP_SE05X_ECC_DRV_FALLBACK to enable this feature.
Signed-off-by: Jorge Ramirez-Ortiz <jorge@foundries.io> Acked-by: Jerome Forissier <jerome.forissier@linaro.org> Reviewed-by: Etienne Carriere <etienne.carriere@linaro.org>
show more ...
|
| #
a40be7eb |
| 08-Dec-2022 |
Jorge Ramirez-Ortiz <jorge@foundries.io> |
crypto: drivers: se050: rsa: fallback to softw-ops
Operations that require a public key might fallback to a software based implementation.
Operations that require a private key might fallback to a
crypto: drivers: se050: rsa: fallback to softw-ops
Operations that require a public key might fallback to a software based implementation.
Operations that require a private key might fallback to a software based implementation as long as the private key is not in the secure element.
Use CFG_NXP_SE05X_RSA_DRV_FALLBACK to enable this feature.
Signed-off-by: Jorge Ramirez-Ortiz <jorge@foundries.io> Reviewed-by: Etienne Carriere <etienne.carriere@linaro.org>
show more ...
|
| #
e41e74a8 |
| 10-Nov-2022 |
Jorge Ramirez-Ortiz <jorge@foundries.io> |
crypto: se050: provision SCP03 keys on SCP03 enablement.
Rotate the SCP03 keys as soon as the SCP03 communication channel is established.
This can happen during boot or at a later time via normal w
crypto: se050: provision SCP03 keys on SCP03 enablement.
Rotate the SCP03 keys as soon as the SCP03 communication channel is established.
This can happen during boot or at a later time via normal world request [1].
The rotation configuration that can be built-in in the driver allows the algorithm to rotate to a HUK based secret key or back to the factory based keys.
[1] https://u-boot.readthedocs.io/en/latest/usage/cmd/scp03.html
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 ...
|
| #
d5050d09 |
| 10-Nov-2022 |
Jorge Ramirez-Ortiz <jorge@foundries.io> |
crypto: se050: reword configuration options
Reword and add caution clauses to some of the critical configuration options in the driver.
Signed-off-by: Jorge Ramirez-Ortiz <jorge@foundries.io> Acked
crypto: se050: reword configuration options
Reword and add caution clauses to some of the critical configuration options in the driver.
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 ...
|
| #
5ddb11a1 |
| 04-Nov-2022 |
Jorge Ramirez-Ortiz <jorge@foundries.io> |
crypto: se050: provision SCP03 keys back factory keys
This commit allows a user who might have rotated the device's SCP03 keys to reset them back to their factory settings (public).
Signed-off-by:
crypto: se050: provision SCP03 keys back factory keys
This commit allows a user who might have rotated the device's SCP03 keys to reset them back to their factory settings (public).
Signed-off-by: Jorge Ramirez-Ortiz <jorge@foundries.io> Acked-by: Jens Wiklander <jens.wiklander@linaro.org>
show more ...
|
| #
1fecc0af |
| 26-Oct-2022 |
Jorge Ramirez-Ortiz <jorge@foundries.io> |
crypto: se050: SCP03 enabled only session.
The SE050F FIPS 140-2 certified device makes SCP03 mandatory from boot.
To support this use case, we introduce CFG_CORE_SCP03_ONLY. Its functionality is d
crypto: se050: SCP03 enabled only session.
The SE050F FIPS 140-2 certified device makes SCP03 mandatory from boot.
To support this use case, we introduce CFG_CORE_SCP03_ONLY. Its functionality is described in crypto.mk.
Some information regarding the SE050F device below [1]
[1] https://www.nxp.com/docs/en/application-note/AN12436.pdf
Signed-off-by: Jorge Ramirez-Ortiz <jorge@foundries.io> Acked-by: Jerome Forissier <jerome.forissier@linaro.org>
show more ...
|
| #
6301ca1c |
| 24-Sep-2022 |
Jorge Ramirez-Ortiz <jorge@foundries.io> |
crypto: se050: updates to the crypto object deletion interface
Keys created on the Secure Element NVM via the PKCS#11 TA are removed by scanning the data buffer holding the reference to the key duri
crypto: se050: updates to the crypto object deletion interface
Keys created on the Secure Element NVM via the PKCS#11 TA are removed by scanning the data buffer holding the reference to the key during the release of the object.
The storage allocated to hold those keys (ECC/RSA) is always below the page size length which seems like a reasonable figure to use for future extensions.
- This commit avoids scanning objects larger than that length.
This commit also updates the interface to delegate the actual handling of the object to the crypto driver instead of passing just the raw data contained in the object.
The cryptographic layer is also being allowed to block the deletion of the object. This is to cover the scenario where the I2C device is not accessible while a reference to the key is being removed from the secure storage in the filesystem.
Incidentally also fixes regression 6018: this test releases an object of size 0xA0000 which can't be scanned due to this part of the code hitting an Out of Memory condition.
Signed-off-by: Jorge Ramirez-Ortiz <jorge@foundries.io> Acked-by: Etienne Carriere <etienne.carriere@linaro.org> Acked-by: Jens Wiklander <jens.wiklander@linaro.org>
show more ...
|
| #
613c6309 |
| 13-Aug-2022 |
Jorge Ramirez-Ortiz <jorge@foundries.io> |
drivers: se050: optional I2C access via trampoline
Platforms with secure I2C buses (i.e: STM32MP1) or those with only a secure element on the bus might prefer not to delegate the I2C traffic to the
drivers: se050: optional I2C access via trampoline
Platforms with secure I2C buses (i.e: STM32MP1) or those with only a secure element on the bus might prefer not to delegate the I2C traffic to the REE.
Signed-off-by: Jorge Ramirez-Ortiz <jorge@foundries.io> Reviewed-by: Jerome Forissier <jerome.forissier@linaro.org>
show more ...
|
| #
86010d2a |
| 18-Jan-2022 |
Jorge Ramirez-Ortiz <jorge@foundries.io> |
drivers: crypto: se050: build Plug-and-Trust using the TEE makefiles
Building the Plug-and-Trust library required building OP-TEE first in order to get some architecture specific definitions. This m
drivers: crypto: se050: build Plug-and-Trust using the TEE makefiles
Building the Plug-and-Trust library required building OP-TEE first in order to get some architecture specific definitions. This makes the integration with yocto metas unnecessarily complex.
The following commit simplifies the build sequence: the user would need to clone the Plug-and-Trust tree [1] to an accessible location in the filesystem and then build OP-TEE as usual passing the path to the Plug-and-Trust tree in CFG_NXP_SE05X_PLUG_AND_TRUST.
[1] https://github.com/foundriesio/plug-and-trust.git
Signed-off-by: Jorge Ramirez-Ortiz <jorge@foundries.io> Reviewed-by: Jerome Forissier <jerome@forissier.org>
show more ...
|
| #
fcff2a5f |
| 12-Dec-2021 |
Jorge Ramirez-Ortiz <jorge@foundries.io> |
crypto: drivers: se050: OEFID runtime detection
The CFG_CORE_SE05X_OEFID definition is not required as the SE05X OEFID can be read during early init - before the SCP03 session has been established.
crypto: drivers: se050: OEFID runtime detection
The CFG_CORE_SE05X_OEFID definition is not required as the SE05X OEFID can be read during early init - before the SCP03 session has been established.
The user we can continue to define its value so that the OP-TEE driver only works when such OEFID is available.
Signed-off-by: Jorge Ramirez-Ortiz <jorge@foundries.io> Acked-by: Jerome Forissier <jerome@forissier.org>
show more ...
|
| #
32ddbffb |
| 13-Nov-2021 |
Jorge Ramirez-Ortiz <jorge@foundries.io> |
crypto: se050: APDU driver
This driver allows trusted applications to send raw APDU frames to the SE050 device. The Plug-and-Trust subsystem will route the frames back to OP-TEE for SCP03 encryption
crypto: se050: APDU driver
This driver allows trusted applications to send raw APDU frames to the SE050 device. The Plug-and-Trust subsystem will route the frames back to OP-TEE for SCP03 encryption and I2C transmission to the bus.
Signed-off-by: Jorge Ramirez-Ortiz <jorge@foundries.io> Acked-by: Jerome Forissier <jerome@forissier.org> Reviewed-by: Etienne Carriere <etienne.carriere@linaro.org>
show more ...
|
| #
ff0c5d42 |
| 13-Nov-2021 |
Jorge Ramirez-Ortiz <jorge@foundries.io> |
core: crypto: Secure Element cryptographic interface
Extract cryptographic operations specific to Secure Elements from the more generic cryptographic interface.
Also, the Secure Channel Protocol03
core: crypto: Secure Element cryptographic interface
Extract cryptographic operations specific to Secure Elements from the more generic cryptographic interface.
Also, the Secure Channel Protocol03 is a global protocol supported by most SEs and not NXP SE05X specific. Use this commit to reflect this fact.
Signed-off-by: Jorge Ramirez-Ortiz <jorge@foundries.io> Reviewed-by: Etienne Carriere <etienne.carriere@linaro.org>
show more ...
|
| #
5411b322 |
| 11-Nov-2021 |
Jorge Ramirez-Ortiz <jorge@foundries.io> |
crypto: se050: rename huk driver to die_id
The current HUK driver is not providing the platform Hardware Unique Key but the DIE_ID.
This can logically be a source of confusion (and bugs) for many u
crypto: se050: rename huk driver to die_id
The current HUK driver is not providing the platform Hardware Unique Key but the DIE_ID.
This can logically be a source of confusion (and bugs) for many users not enabling this option.
This commit renames the huk.c file to die_id.c and replaces the previous configuration option with another one that is semantically accurate.
CFG_NXP_SE05X_HUK_DRV --> CFG_NXP_SE05X_DIEID_DRV
Signed-off-by: Jorge Ramirez-Ortiz <jorge@foundries.io> Acked-by: Etienne Carriere <etienne.carriere@linaro.org> Acked-by: Jerome Forissier <jerome@forissier.org>
show more ...
|
| #
4c69b1f1 |
| 15-Dec-2020 |
Jorge Ramirez-Ortiz <jorge@foundries.io> |
crypto: se050: build: elliptic curve
Makefile changes to compile-in and enable elliptic curve support.
Signed-off-by: Jorge Ramirez-Ortiz <jorge@foundries.io> Acked-by: Jens Wiklander <jens.wikland
crypto: se050: build: elliptic curve
Makefile changes to compile-in and enable elliptic curve support.
Signed-off-by: Jorge Ramirez-Ortiz <jorge@foundries.io> Acked-by: Jens Wiklander <jens.wiklander@linaro.org> Acked-by: Etienne Carriere <etienne.carriere@linaro.org>
show more ...
|
| #
3f667706 |
| 13-Dec-2020 |
Jorge Ramirez-Ortiz <jorge@foundries.io> |
drivers: crypto: se050: strip spaces from crypto.mk
Some versions of the force function used in the makefile might produce incorrect results when spaces are included in the parameter field.
In gene
drivers: crypto: se050: strip spaces from crypto.mk
Some versions of the force function used in the makefile might produce incorrect results when spaces are included in the parameter field.
In general is a better practice to strip spaces when invoking this sort of functions.
To prevent issues (ie: in case of backport) make sure that the SE050 driver is not affected by that variability.
Signed-off-by: Jorge Ramirez-Ortiz <jorge@foundries.io> Acked-by: Jerome Forissier <jerome@forissier.org>
show more ...
|
| #
60c2d1df |
| 24-Sep-2020 |
Jorge Ramirez-Ortiz <jorge@foundries.io> |
core: build: se050 driver
Core work to support building the platform independent se050 crypto driver.
Signed-off-by: Jorge Ramirez-Ortiz <jorge@foundries.io> Acked-by: Jerome Forissier <jerome@fori
core: build: se050 driver
Core work to support building the platform independent se050 crypto driver.
Signed-off-by: Jorge Ramirez-Ortiz <jorge@foundries.io> Acked-by: Jerome Forissier <jerome@forissier.org>
show more ...
|