pub struct KeyExchange { /* private fields */ }Expand description
Ephemerales DH-Schluesselpaar fuer einen einzelnen Handshake.
Nach derive_shared_secret ist die Instance verbraucht — das
EphemeralPrivateKey erlaubt nach API-Design von ring nur einen
agree_ephemeral-Call, was PFS (Perfect Forward Secrecy) erzwingt.
Implementations§
Source§impl KeyExchange
impl KeyExchange
Sourcepub fn new() -> SecurityResult<Self>
pub fn new() -> SecurityResult<Self>
Erzeugt ein frisches X25519-Schluesselpaar (Default).
§Errors
CryptoFailed wenn die System-RNG nicht verfuegbar ist (z.B.
kein /dev/urandom in einem broken-Sandbox-Szenario).
Sourcepub fn with_suite(suite: KxSuite) -> SecurityResult<Self>
pub fn with_suite(suite: KxSuite) -> SecurityResult<Self>
Sourcepub fn public_key(&self) -> &[u8] ⓘ
pub fn public_key(&self) -> &[u8] ⓘ
Liefert den lokalen Public-Key als Byte-Slice. Laenge ist
suite-abhaengig (siehe KxSuite::public_key_len).
Leitet das SharedSecret aus dem Remote-Public-Key ab. Verbraucht das lokale ephemerale Key.
§Errors
BadArgumentwennremote_public_key.len() != suite.public_key_len().CryptoFailedwennringdas Agreement ablehnt (z.B. kleiner-Untergruppen-Angriff, Identity-Punkt, Off-Curve-Point).
Auto Trait Implementations§
impl Freeze for KeyExchange
impl RefUnwindSafe for KeyExchange
impl Send for KeyExchange
impl Sync for KeyExchange
impl Unpin for KeyExchange
impl UnsafeUnpin for KeyExchange
impl UnwindSafe for KeyExchange
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more