pub trait ConnectionIdGenerator: Send + Sync {
// Required methods
fn generate_cid(&mut self) -> ConnectionId;
fn cid_len(&self) -> usize;
fn cid_lifetime(&self) -> Option<Duration>;
// Provided method
fn validate(&self, _cid: &ConnectionId) -> Result<(), InvalidCid> { ... }
}
Expand description
Generates connection IDs for incoming connections
Required Methods§
Sourcefn generate_cid(&mut self) -> ConnectionId
fn generate_cid(&mut self) -> ConnectionId
Generates a new CID
Connection IDs MUST NOT contain any information that can be used by an external observer (that is, one that does not cooperate with the issuer) to correlate them with other connection IDs for the same connection. They MUST have high entropy, e.g. due to encrypted data or cryptographic-grade random data.
Sourcefn cid_len(&self) -> usize
fn cid_len(&self) -> usize
Returns the length of a CID for connections created by this generator
Sourcefn cid_lifetime(&self) -> Option<Duration>
fn cid_lifetime(&self) -> Option<Duration>
Returns the lifetime of generated Connection IDs
Connection IDs will be retired after the returned Duration
, if any. Assumed to be constant.
Provided Methods§
Sourcefn validate(&self, _cid: &ConnectionId) -> Result<(), InvalidCid>
fn validate(&self, _cid: &ConnectionId) -> Result<(), InvalidCid>
Quickly determine whether cid
could have been generated by this generator
False positives are permitted, but increase the cost of handling invalid packets.