pub(crate) trait ServerHandshake {
type KeyType;
type KeyGen;
type ClientAuxData: ?Sized;
type ServerAuxData;
// Required method
fn server<R: Rng + CryptoRng, REPLY: AuxDataReply<Self>, T: AsRef<[u8]>>(
rng: &mut R,
reply_fn: &mut REPLY,
key: &[Self::KeyType],
msg: T,
) -> Result<(Self::KeyGen, Vec<u8>), RelayHandshakeError>;
}Expand description
A ServerHandshake is used to handle a client onionskin and generate a server onionskin.
Required Associated Types§
Sourcetype ClientAuxData: ?Sized
type ClientAuxData: ?Sized
Type of extra data sent from client (without forward secrecy).
Sourcetype ServerAuxData
type ServerAuxData
Type of extra data returned by server (without forward secrecy).
Required Methods§
Sourcefn server<R: Rng + CryptoRng, REPLY: AuxDataReply<Self>, T: AsRef<[u8]>>(
rng: &mut R,
reply_fn: &mut REPLY,
key: &[Self::KeyType],
msg: T,
) -> Result<(Self::KeyGen, Vec<u8>), RelayHandshakeError>
fn server<R: Rng + CryptoRng, REPLY: AuxDataReply<Self>, T: AsRef<[u8]>>( rng: &mut R, reply_fn: &mut REPLY, key: &[Self::KeyType], msg: T, ) -> Result<(Self::KeyGen, Vec<u8>), RelayHandshakeError>
Perform the server handshake. Take as input a strong PRNG in rng, a
function for processing requested extensions, a slice of all our private
onion keys, and the client’s message.
On success, return a key generator and a server handshake message to send in reply.
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".