pub enum HhppSignatureScheme {
Ed25519,
HybridInterim,
HybridStandard,
}Expand description
Which signature scheme the hub expects on its HashedHubPseudonymPackage (HHPP), and thus
which key PHC signs it with.
Hubs predating the hybrid post-quantum migration verify a classical ed25519 (EdDSA) signature
against the constellation’s phc_jwt_key; newer hubs verify the hybrid composite signature
against phc_verifying_key. The hub advertises its choice via hub::EnterStartResp, the
global client relays it to phc::user::HhppEP, and PHC signs accordingly.
Absent on the wire ⇒ Ed25519, so hubs and global clients predating this field
keep getting a signature they can verify. Each variant’s wire value is the JWS alg the HHPP
will carry.
Variants§
Ed25519
Classical ed25519 (EdDSA), verifiable by pre-hybrid hubs. The default.
HybridInterim
PubHubs’ interim, non-conformant hybrid composite (empty ML-DSA context) — the only hybrid
PHC currently signs with. Its wire value matches crate::common::dsa::ALG.
HybridStandard
The conformant LAMPS-standard composite. Not yet implemented: PHC rejects requests for
it until aws_lc_rs exposes an ML-DSA context (see crate::common::dsa). Reserved here
so the wire protocol already carries its identifier.
Implementations§
Source§impl HhppSignatureScheme
impl HhppSignatureScheme
Sourcepub fn is_default(&self) -> bool
pub fn is_default(&self) -> bool
true for the default (Ed25519). Used with skip_serializing_if to omit
the field from the wire when it is the default, so peers predating it — which
deny_unknown_fields — still accept the message (e.g. a PHC that hasn’t learned the field).
Trait Implementations§
Source§impl Clone for HhppSignatureScheme
impl Clone for HhppSignatureScheme
Source§fn clone(&self) -> HhppSignatureScheme
fn clone(&self) -> HhppSignatureScheme
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for HhppSignatureScheme
impl Debug for HhppSignatureScheme
Source§impl Default for HhppSignatureScheme
impl Default for HhppSignatureScheme
Source§fn default() -> HhppSignatureScheme
fn default() -> HhppSignatureScheme
Source§impl<'de> Deserialize<'de> for HhppSignatureScheme
impl<'de> Deserialize<'de> for HhppSignatureScheme
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Source§impl PartialEq for HhppSignatureScheme
impl PartialEq for HhppSignatureScheme
Source§impl Serialize for HhppSignatureScheme
impl Serialize for HhppSignatureScheme
impl Copy for HhppSignatureScheme
impl Eq for HhppSignatureScheme
impl StructuralPartialEq for HhppSignatureScheme
Auto Trait Implementations§
impl Freeze for HhppSignatureScheme
impl RefUnwindSafe for HhppSignatureScheme
impl Send for HhppSignatureScheme
impl Sync for HhppSignatureScheme
impl Unpin for HhppSignatureScheme
impl UnsafeUnpin for HhppSignatureScheme
impl UnwindSafe for HhppSignatureScheme
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§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>
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>
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