Pure Rust key-exchange implementations for the OxiCrypto stack.
Provides a [KeyAgreement]-trait wrapper for X25519 Diffie-Hellman,
X448 Diffie-Hellman, ECDH over NIST P-256, P-384, and P-521, plus key
generation helpers.
Key generation
All generate_keypair functions accept any RNG implementing
[rand_core::TryCryptoRng] (rand_core 0.10+).
Shared-secret rejection
Every agree() implementation rejects all-zero shared secrets via
constant-time comparison. An all-zero output indicates a low-order
(small subgroup) public key attack; callers will receive
[CryptoError::Kex] in that case.