pub enum ChainAlgorithmCompatibility {
Uniform(SignatureAlgorithm),
MixedClassicalToHybrid {
classical_depth: usize,
hybrid_algorithm: SignatureAlgorithm,
},
}Expand description
Describes the signature algorithm consistency of a DyoloChain.
A chain is algorithm-compatible when:
- All certs report the same
SignatureAlgorithm(Uniform), OR - The chain is undergoing a classical → hybrid migration, where earlier certs (closer to the root) use Ed25519 and later certs use a hybrid scheme. The transition must be monotonic — no hybrid cert may appear before a classical one in the chain.
Variants§
Uniform(SignatureAlgorithm)
All certs use the same algorithm.
MixedClassicalToHybrid
The chain is transitioning from classical Ed25519 to a hybrid scheme.
classical_depth is the number of leading Ed25519 certs. All certs
at positions ≥ classical_depth use hybrid_algorithm.
Implementations§
Source§impl ChainAlgorithmCompatibility
impl ChainAlgorithmCompatibility
Sourcepub fn from_algorithms(algs: &[SignatureAlgorithm]) -> Result<Self, A1Error>
pub fn from_algorithms(algs: &[SignatureAlgorithm]) -> Result<Self, A1Error>
Derive the compatibility descriptor from an ordered list of algorithm tags.
Returns Err if:
- A hybrid cert appears before a classical cert (non-monotonic).
- Multiple distinct hybrid algorithms are present in a single chain.
Trait Implementations§
Source§impl Clone for ChainAlgorithmCompatibility
impl Clone for ChainAlgorithmCompatibility
Source§fn clone(&self) -> ChainAlgorithmCompatibility
fn clone(&self) -> ChainAlgorithmCompatibility
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for ChainAlgorithmCompatibility
impl Debug for ChainAlgorithmCompatibility
Source§impl PartialEq for ChainAlgorithmCompatibility
impl PartialEq for ChainAlgorithmCompatibility
Source§fn eq(&self, other: &ChainAlgorithmCompatibility) -> bool
fn eq(&self, other: &ChainAlgorithmCompatibility) -> bool
Tests for
self and other values to be equal, and is used by ==.impl Eq for ChainAlgorithmCompatibility
impl StructuralPartialEq for ChainAlgorithmCompatibility
Auto Trait Implementations§
impl Freeze for ChainAlgorithmCompatibility
impl RefUnwindSafe for ChainAlgorithmCompatibility
impl Send for ChainAlgorithmCompatibility
impl Sync for ChainAlgorithmCompatibility
impl Unpin for ChainAlgorithmCompatibility
impl UnsafeUnpin for ChainAlgorithmCompatibility
impl UnwindSafe for ChainAlgorithmCompatibility
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
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
Compare self to
key and return true if they are equal.