pub fn agree_ephemeral<B: AsRef<[u8]>, R>(
my_private_key: EphemeralPrivateKey,
peer_public_key: &UnparsedPublicKey<B>,
kdf: impl FnOnce(&[u8]) -> R,
) -> Result<R, Unspecified>Expand description
Performs a key agreement with an ephemeral private key and the given public key.
my_private_key is the ephemeral private key to use. Since it is moved, it
will not be usable after calling agree_ephemeral, thus guaranteeing that
the key is used for only one key agreement.
peer_public_key is the peer’s public key. agree_ephemeral will return
Err(error_value) if it does not match my_private_key's algorithm/curve.
agree_ephemeral verifies that it is encoded in the standard form for the
algorithm and that the key is valid; see the algorithm’s documentation for
details on how keys are to be encoded and what constitutes a valid key for
that algorithm.
After the key agreement is done, agree_ephemeral calls kdf with the raw
key material from the key agreement operation and then returns what kdf
returns.