pub struct SURB<S: SphinxSuite, H: SphinxHeaderSpec> {
pub first_relayer: H::KeyId,
pub alpha: GenericArray<u8, <S::G as GroupElement<S::E>>::AlphaLen>,
pub header: RoutingInfo<H>,
pub sender_key: SecretKey16,
pub additional_data_receiver: H::SurbReceiverData,
}Expand description
Single Use Reply Block
This is delivered to the recipient, so they are able to send reply messages back anonymously (via the return path inside that SURB).
SURB is always created in a pair with ReplyOpener, so that the sending
party knows how to decrypt the data.
The SURB sent to the receiving party must be accompanied
by a Pseudonym, and once the receiving party uses that SURB to send a reply, it
must be accompanied by the same Pseudonym.
Upon receiving such a reply, the reply recipient (= sender of the SURB)
uses the Pseudonym to find the ReplyOpener created with the SURB to read the reply.
Always use create_surb to create the SURB and ReplyOpener pair.
Fields§
§first_relayer: H::KeyIdID of the first relayer.
alpha: GenericArray<u8, <S::G as GroupElement<S::E>>::AlphaLen>Alpha value for the header.
header: RoutingInfo<H>Sphinx routing header.
sender_key: SecretKey16Encryption key to use to encrypt the data for the SURB’s creator.
additional_data_receiver: H::SurbReceiverDataAdditional data for the SURB receiver.