X448
Curve448 key agreement (RFC 7748). Header: pkc/x448/noxtls_x448.h.
Algorithm overview
X448 is the higher-security sibling of X25519 for elliptic-curve Diffie-Hellman key agreement. It works similarly (public key exchange + shared secret derivation), but on Curve448 for a larger security margin.
Pros and cons
Pros
- Higher security margin than X25519 (roughly ~224-bit class).
- Strong choice for long-lived systems with conservative cryptographic policy.
- Also defined in RFC 7748 with straightforward API model.
Cons
- Slower than X25519 and uses larger keys.
- Less broadly deployed/interoperable in common protocol stacks.
- Still key-agreement only; authentication and KDF are required around it.
When to use
- Use when policy requires stronger-than-X25519 margins.
- Useful for high-assurance environments where performance is secondary.
- For broad interoperability, X25519 is usually the first choice.
Constants
NOXTLS_X448_KEY_SIZE= 56
API
noxtls_x448_clamp_scalar
void noxtls_x448_clamp_scalar(uint8_t k[56]);
Clamp X448 private scalar in place.
noxtls_x448_public_key
noxtls_return_t noxtls_x448_public_key(const uint8_t private_key[56], uint8_t public_key[56]);
Derive public key from private key.
noxtls_x448_shared_secret
noxtls_return_t noxtls_x448_shared_secret(const uint8_t private_key[56],
const uint8_t peer_public_key[56],
uint8_t shared_secret[56]);
Compute shared secret with peer public key.
noxtls_x448_generate_key
noxtls_return_t noxtls_x448_generate_key(uint8_t private_key[56], uint8_t public_key[56]);
Generate X448 private/public key pair.