summaryrefslogtreecommitdiff
path: root/core/drivers/crypto/se050/adaptors/utils/utils.c
diff options
context:
space:
mode:
authorJorge Ramirez-Ortiz <jorge@foundries.io>2020-12-15 18:58:53 +0100
committerJérôme Forissier <jerome@forissier.org>2021-01-05 12:31:29 +0100
commitd419b2b23d8e3ff143693519429fb528d951b276 (patch)
tree43218ba392fd6333aec0ecbe7dd935e0ff1327a2 /core/drivers/crypto/se050/adaptors/utils/utils.c
parentfab914923b94fccbb1e77538a355a8cdcad6b9a4 (diff)
crypto: se050: adaptors: elliptic curve
APDU and utility functions required to support elliptic curve cryptography. 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>
Diffstat (limited to 'core/drivers/crypto/se050/adaptors/utils/utils.c')
-rw-r--r--core/drivers/crypto/se050/adaptors/utils/utils.c15
1 files changed, 15 insertions, 0 deletions
diff --git a/core/drivers/crypto/se050/adaptors/utils/utils.c b/core/drivers/crypto/se050/adaptors/utils/utils.c
index 34dbdd05..83edf944 100644
--- a/core/drivers/crypto/se050/adaptors/utils/utils.c
+++ b/core/drivers/crypto/se050/adaptors/utils/utils.c
@@ -134,6 +134,21 @@ uint32_t se050_rsa_keypair_from_nvm(struct rsa_keypair *key)
return se050_key(key_id);
}
+uint32_t se050_ecc_keypair_from_nvm(struct ecc_keypair *key)
+{
+ uint64_t key_id = 0;
+
+ if (!key)
+ return 0;
+
+ if (crypto_bignum_num_bytes(key->d) != sizeof(uint64_t))
+ return 0;
+
+ crypto_bignum_bn2bin(key->d, (uint8_t *)&key_id);
+
+ return se050_key(key_id);
+}
+
uint64_t se050_generate_private_key(uint32_t oid)
{
return WATERMARKED(oid);