Expand description
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.
Modules§
- hpke
- Hybrid Public Key Encryption (HPKE) — RFC 9180.
Structs§
- Ecdh
P256 - ECDH key agreement over NIST P-256 (secp256r1).
- Ecdh
P384 - ECDH key agreement over NIST P-384 (secp384r1).
- Ecdh
P521 - ECDH key agreement over NIST P-521 (secp521r1).
- X448
- X448 Diffie-Hellman key agreement (RFC 7748 §5).
- X448
Public Key - A type-safe 56-byte X448 public key.
- X25519
- X25519 Diffie-Hellman key agreement.
- X25519
Public Key - A type-safe 32-byte X25519 public key.
Functions§
- ecdh_
p256_ generate_ keypair - Generate an ECDH P-256 key pair.
- ecdh_
p384_ generate_ keypair - Generate an ECDH P-384 key pair.
- ecdh_
p521_ generate_ keypair - Generate an ECDH P-521 key pair.
- x448_
generate_ keypair - Generate an X448 key pair from raw random bytes.
- x25519_
generate_ keypair - Generate an X25519 key pair.