pub struct EmptyMarkerOwnershipProof;Expand description
Empty-marker ownership proof, shared by transports that don’t (and can’t) cryptographically
model address ownership: the in-memory test transport and the plain-TCP transport used for
local-LAN / private-network deployments. Both ends agree on the empty byte string as the
“I’m a trusted-network peer” token. An HTTPS-shaped proof byte blob sent to one of these
servers fails the is_empty() check; conversely an empty-marker proof sent to an HTTPS
server fails its postcard decode (or is_cert_valid on an empty chain). Cross-transport
announces fall through naturally without a discriminator field on the wire.
Trait Implementations§
Source§impl TransportOwnershipProof for EmptyMarkerOwnershipProof
impl TransportOwnershipProof for EmptyMarkerOwnershipProof
Source§fn make_ownership_proof_payload(&self) -> Option<Bytes>
fn make_ownership_proof_payload(&self) -> Option<Bytes>
Announce-out: produce the proof bytes for our own announce. Returns
None if we
can’t currently prove ownership — e.g. an HTTPS server that hasn’t completed its
first ACME issuance yet. Callers (maintain_kademlia) treat None as “skip this
announce tick, try again next interval”. Read moreSource§fn prove(&self, _peer: &Peer, proof_payload: &[u8], _now: TimeMillis) -> bool
fn prove(&self, _peer: &Peer, proof_payload: &[u8], _now: TimeMillis) -> bool
Announce-in: validate
proof_payload (bytes pulled out of an inbound AnnounceV2)
against peer. Returns false if the bytes can’t be deserialised by this impl
(wrong transport / corrupt blob) or if the proof fails verification (expired cert,
wrong-IP SAN, …). Read moreAuto Trait Implementations§
impl Freeze for EmptyMarkerOwnershipProof
impl RefUnwindSafe for EmptyMarkerOwnershipProof
impl Send for EmptyMarkerOwnershipProof
impl Sync for EmptyMarkerOwnershipProof
impl Unpin for EmptyMarkerOwnershipProof
impl UnsafeUnpin for EmptyMarkerOwnershipProof
impl UnwindSafe for EmptyMarkerOwnershipProof
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
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more