Edwards-curve Digital Signature Algorithm (EdDSA) is a digital signature scheme using twisted Edwards curves. The EdDSA algorithm is described in RFC 8032 - Edwards-Curve Digital Signature Algorithm (EdDSA) .
This module provides support for EdDSA (Edwards-curve Digital Signature Algorithm) using SHA-512 and Ed25519. EdDSA is available in the API as a separate curve type. To use EdDSA, variable g_nrf_crypto_ecc_ed25519_curve_info must be passed to key creation functions.
For information about public-private key management and general concepts regarding ECC, see ECC - Elliptic Curve Cryptography .
For detailed API documentation of this module, see Edwards-curve Digital Signature Algorithm (EdDSA) .
EdDSA frontend API
The library provides the following functions to perform EdDSA:
For examples of both functions, see the EdDSA usage section.
This library represents a signature as an array of bytes that contains two big integers in little-endian order. If big-endian order is required, use nrf_crypto_ecc_byte_order_invert .
- Note
- Unlike ECDSA, the EdDSA sign and verify functions require the full plain text message as input for the signature, not the hash of the message.
Available backends
The following backends can be used for EdDSA:
- CryptoCell CC310
- Oberon crypto library
For information on configuring the backends, see Configuring nrf_crypto frontend and backends .
EdDSA usage
This section contains examples of the EdDSA procedure, both for signing and verification.