diff options
author | Jorge Ramirez-Ortiz <jorge@foundries.io> | 2020-12-15 18:58:53 +0100 |
---|---|---|
committer | Jérôme Forissier <jerome@forissier.org> | 2021-01-05 12:31:29 +0100 |
commit | d419b2b23d8e3ff143693519429fb528d951b276 (patch) | |
tree | 43218ba392fd6333aec0ecbe7dd935e0ff1327a2 /core/drivers/crypto/se050/adaptors/utils/utils.c | |
parent | fab914923b94fccbb1e77538a355a8cdcad6b9a4 (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.c | 15 |
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); |