Ed25519
Ed25519 digital signatures (RFC 8032). Header: pkc/ed25519/noxtls_ed25519.h.
Algorithm overview
Ed25519 is an EdDSA signature scheme over Curve25519. It is designed for high speed, deterministic signing, and strong security properties with compact keys/signatures.
Pros and cons
Pros
- Very fast verification/signing with small keys and signatures.
- Deterministic signing avoids many nonce-generation failure classes.
- Widely adopted across modern protocols and tooling.
Cons
- Signature algorithm only (not key agreement).
- Compatibility with legacy RSA/ECDSA-only systems can be limited.
- Requires careful domain separation/protocol framing, like all signature schemes.
When to use
- Strong default for modern software signing and identity/authentication.
- Good choice when performance and compact signatures matter.
- Prefer when interoperability targets support Ed25519 natively.
Constants
NOXTLS_ED25519_PRIVATE_KEY_SIZE= 32NOXTLS_ED25519_PUBLIC_KEY_SIZE= 32NOXTLS_ED25519_SIGNATURE_SIZE= 64
API
noxtls_ed25519_generate_key
noxtls_return_t noxtls_ed25519_generate_key(uint8_t private_key[32], uint8_t public_key[32]);
Generate private/public key pair.
noxtls_ed25519_public_key
noxtls_return_t noxtls_ed25519_public_key(const uint8_t private_key[32], uint8_t public_key[32]);
Derive public key from private key seed.
noxtls_ed25519_sign
noxtls_return_t noxtls_ed25519_sign(const uint8_t private_key[32],
const uint8_t *message,
uint32_t message_len,
uint8_t signature[64]);
Sign message with Ed25519.
noxtls_ed25519_verify
noxtls_return_t noxtls_ed25519_verify(const uint8_t public_key[32],
const uint8_t *message,
uint32_t message_len,
const uint8_t signature[64]);
Verify Ed25519 signature.