pub enum AnySuite {
RsaSignature2018,
Ed25519Signature2018,
Ed25519Signature2020,
EdDsa2022,
EdDsaRdfc2022,
EcdsaSecp256k1Signature2019,
EcdsaSecp256r1Signature2019,
EcdsaRdfc2019,
EcdsaSd2023,
JsonWebSignature2020,
Unknown(UnknownSuite),
}Expand description
Built-in Data Integrity cryptographic suites.
Variants§
RsaSignature2018
W3C RSA Signature Suite 2018.
Ed25519Signature2018
W3C Ed25519 Signature 2018.
Ed25519Signature2020
W3C Ed25519 Signature 2020.
See: https://w3c.github.io/vc-di-eddsa/#the-ed25519signature2020-suite
EdDsa2022
W3C eddsa-2022 cryptosuite, a draft version of the eddsa-rdfc-2022
cryptosuite.
See: https://www.w3.org/TR/2023/WD-vc-di-eddsa-20230714/#eddsa-2022
EdDsaRdfc2022
W3C eddsa-rdfc-2022 cryptosuite.
EcdsaSecp256k1Signature2019
W3C Ecdsa Secp256k1 Signature 2019.
EcdsaSecp256r1Signature2019
W3C Ecdsa Secp256r1 Signature 2019.
EcdsaRdfc2019
EcdsaSd2023
JsonWebSignature2020
W3C JSON Web Signature 2020.
Unknown(UnknownSuite)
Unknown cryptographic suite.
This variant exists to ensure that it will always be possible
to parse a verifiable credential or presentation secured with
AnySuite, even if the suite is not supported by this
library.
Implementations§
Trait Implementations§
Source§impl ConfigurationAlgorithm<AnySuite> for AnyConfigurationAlgorithm
impl ConfigurationAlgorithm<AnySuite> for AnyConfigurationAlgorithm
Source§type InputVerificationMethod = AnyMethod
type InputVerificationMethod = AnyMethod
Input type for the verification method.
Source§type InputSuiteOptions = AnyInputSuiteOptions
type InputSuiteOptions = AnyInputSuiteOptions
Input suite-specific proof options. Read more
Source§type InputSignatureOptions = AnySignatureOptions
type InputSignatureOptions = AnySignatureOptions
Input suite-specific signature options. Read more
Source§type InputVerificationOptions = ()
type InputVerificationOptions = ()
Input suite-specific verification options. Read more
Source§type TransformationOptions = AnyTransformationOptions
type TransformationOptions = AnyTransformationOptions
Document transformation options.
fn configure_signature( suite: &AnySuite, options: InputProofOptions<AnySuite>, signature_options: AnySignatureOptions, ) -> Result<(ProofConfiguration<AnySuite>, AnyTransformationOptions), ConfigurationError>
fn configure_verification( suite: &AnySuite, verification_options: &(), ) -> Result<AnyTransformationOptions, ConfigurationError>
Source§impl CryptographicSuite for AnySuite
impl CryptographicSuite for AnySuite
Source§type Configuration = AnyConfigurationAlgorithm
type Configuration = AnyConfigurationAlgorithm
Configuration algorithm, used to generate the proof configuration from
the input options. Read more
Source§type PreparedClaims = AnyPreparedClaims
type PreparedClaims = AnyPreparedClaims
How prepared claims are stored. Read more
Source§type VerificationMethod = AnySuiteVerificationMethod
type VerificationMethod = AnySuiteVerificationMethod
Verification method.
Source§type Signature = AnySignature
type Signature = AnySignature
Signature type. Read more
Source§type ProofOptions = AnyProofOptions
type ProofOptions = AnyProofOptions
Suite-specific proof options used to generate the proof.
Source§fn configure_signature(
&self,
proof_options: ProofOptions<<Self::Configuration as ConfigurationAlgorithm<Self>>::InputVerificationMethod, <Self::Configuration as ConfigurationAlgorithm<Self>>::InputSuiteOptions>,
signature_options: <Self::Configuration as ConfigurationAlgorithm<Self>>::InputSignatureOptions,
) -> Result<(ProofConfiguration<Self>, <Self::Configuration as ConfigurationAlgorithm<Self>>::TransformationOptions), ConfigurationError>
fn configure_signature( &self, proof_options: ProofOptions<<Self::Configuration as ConfigurationAlgorithm<Self>>::InputVerificationMethod, <Self::Configuration as ConfigurationAlgorithm<Self>>::InputSuiteOptions>, signature_options: <Self::Configuration as ConfigurationAlgorithm<Self>>::InputSignatureOptions, ) -> Result<(ProofConfiguration<Self>, <Self::Configuration as ConfigurationAlgorithm<Self>>::TransformationOptions), ConfigurationError>
Generates a proof configuration from input options.
Source§fn configure_verification(
&self,
verification_options: &<Self::Configuration as ConfigurationAlgorithm<Self>>::InputVerificationOptions,
) -> Result<<Self::Configuration as ConfigurationAlgorithm<Self>>::TransformationOptions, ConfigurationError>
fn configure_verification( &self, verification_options: &<Self::Configuration as ConfigurationAlgorithm<Self>>::InputVerificationOptions, ) -> Result<<Self::Configuration as ConfigurationAlgorithm<Self>>::TransformationOptions, ConfigurationError>
Generates a proof configuration from input options.
Source§async fn sign_with<T, C, R, S>(
&self,
context: C,
unsecured_document: T,
resolver: R,
signer: S,
proof_options: ProofOptions<<Self::Configuration as ConfigurationAlgorithm<Self>>::InputVerificationMethod, <Self::Configuration as ConfigurationAlgorithm<Self>>::InputSuiteOptions>,
signature_options: <Self::Configuration as ConfigurationAlgorithm<Self>>::InputSignatureOptions,
) -> Result<DataIntegrity<T, Self>, SignatureError>where
Self: CryptographicSuiteSigning<T, C, R, S>,
async fn sign_with<T, C, R, S>(
&self,
context: C,
unsecured_document: T,
resolver: R,
signer: S,
proof_options: ProofOptions<<Self::Configuration as ConfigurationAlgorithm<Self>>::InputVerificationMethod, <Self::Configuration as ConfigurationAlgorithm<Self>>::InputSuiteOptions>,
signature_options: <Self::Configuration as ConfigurationAlgorithm<Self>>::InputSignatureOptions,
) -> Result<DataIntegrity<T, Self>, SignatureError>where
Self: CryptographicSuiteSigning<T, C, R, S>,
Generates a verifiable document secured with this cryptographic suite.
Source§async fn sign<T, R, S>(
&self,
unsecured_document: T,
resolver: R,
signer: S,
proof_options: ProofOptions<<Self::Configuration as ConfigurationAlgorithm<Self>>::InputVerificationMethod, <Self::Configuration as ConfigurationAlgorithm<Self>>::InputSuiteOptions>,
) -> Result<DataIntegrity<T, Self>, SignatureError>where
Self: CryptographicSuiteSigning<T, SignatureEnvironment, R, S>,
<Self::Configuration as ConfigurationAlgorithm<Self>>::InputSignatureOptions: Default,
async fn sign<T, R, S>(
&self,
unsecured_document: T,
resolver: R,
signer: S,
proof_options: ProofOptions<<Self::Configuration as ConfigurationAlgorithm<Self>>::InputVerificationMethod, <Self::Configuration as ConfigurationAlgorithm<Self>>::InputSuiteOptions>,
) -> Result<DataIntegrity<T, Self>, SignatureError>where
Self: CryptographicSuiteSigning<T, SignatureEnvironment, R, S>,
<Self::Configuration as ConfigurationAlgorithm<Self>>::InputSignatureOptions: Default,
Generates a verifiable document secured with this cryptographic suite.
Source§impl<T, P> CryptographicSuiteSelect<T, P> for AnySuitewhere
T: Serialize + JsonLdNodeObject + Expandable,
T::Expanded<LexicalInterpretation, ()>: Into<ExpandedDocument>,
P: JsonLdLoaderProvider + ResolverProvider,
P::Resolver: VerificationMethodResolver<Method = AnyMethod>,
impl<T, P> CryptographicSuiteSelect<T, P> for AnySuitewhere
T: Serialize + JsonLdNodeObject + Expandable,
T::Expanded<LexicalInterpretation, ()>: Into<ExpandedDocument>,
P: JsonLdLoaderProvider + ResolverProvider,
P::Resolver: VerificationMethodResolver<Method = AnyMethod>,
Source§async fn select(
&self,
unsecured_document: &T,
proof: ProofRef<'_, Self>,
params: P,
options: Self::SelectionOptions,
) -> Result<DataIntegrity<Object, Self>, SelectionError>
async fn select( &self, unsecured_document: &T, proof: ProofRef<'_, Self>, params: P, options: Self::SelectionOptions, ) -> Result<DataIntegrity<Object, Self>, SelectionError>
Select a subset of claims to disclose.
Source§impl<T, C, R, S> CryptographicSuiteSigning<T, C, R, S> for AnySuitewhere
C: JsonLdLoaderProvider + Eip712TypesLoaderProvider,
T: Serialize + Expandable + JsonLdNodeObject,
T::Expanded<LexicalInterpretation, ()>: Into<ExpandedDocument>,
R: VerificationMethodResolver<Method = AnyMethod>,
S: Signer<AnyMethod>,
S::MessageSigner: MessageSigner<AnySignatureAlgorithm>,
impl<T, C, R, S> CryptographicSuiteSigning<T, C, R, S> for AnySuitewhere
C: JsonLdLoaderProvider + Eip712TypesLoaderProvider,
T: Serialize + Expandable + JsonLdNodeObject,
T::Expanded<LexicalInterpretation, ()>: Into<ExpandedDocument>,
R: VerificationMethodResolver<Method = AnyMethod>,
S: Signer<AnyMethod>,
S::MessageSigner: MessageSigner<AnySignatureAlgorithm>,
async fn generate_signature( &self, context: &C, resolver: R, signer: S, claims: &T, proof_configuration: ProofConfigurationRef<'_, Self>, transformation_options: AnyTransformationOptions, ) -> Result<Self::Signature, SignatureError>
Source§impl<T, V> CryptographicSuiteVerification<T, V> for AnySuitewhere
T: Serialize + Expandable + JsonLdNodeObject,
T::Expanded<LexicalInterpretation, ()>: Into<ExpandedDocument>,
V: ResolverProvider + JsonLdLoaderProvider + Eip712TypesLoaderProvider,
V::Resolver: VerificationMethodResolver<Method = AnyMethod>,
impl<T, V> CryptographicSuiteVerification<T, V> for AnySuitewhere
T: Serialize + Expandable + JsonLdNodeObject,
T::Expanded<LexicalInterpretation, ()>: Into<ExpandedDocument>,
V: ResolverProvider + JsonLdLoaderProvider + Eip712TypesLoaderProvider,
V::Resolver: VerificationMethodResolver<Method = AnyMethod>,
async fn verify_proof( &self, verifier: &V, claims: &T, proof: ProofRef<'_, Self>, transformation_options: AnyTransformationOptions, ) -> Result<ProofValidity, ProofValidationError>
Source§impl<'de> DeserializeTyped<'de, AnySuite> for AnyProofOptions
impl<'de> DeserializeTyped<'de, AnySuite> for AnyProofOptions
fn deserialize_typed<D>(
suite: &AnySuite,
deserializer: D,
) -> Result<Self, D::Error>where
D: Deserializer<'de>,
Source§impl<'de> DeserializeTyped<'de, AnySuite> for AnySignature
impl<'de> DeserializeTyped<'de, AnySuite> for AnySignature
fn deserialize_typed<D>(
suite: &AnySuite,
deserializer: D,
) -> Result<Self, D::Error>where
D: Deserializer<'de>,
Source§impl<'de> DeserializeTyped<'de, AnySuite> for AnySuiteVerificationMethod
impl<'de> DeserializeTyped<'de, AnySuite> for AnySuiteVerificationMethod
fn deserialize_typed<D>(
suite: &AnySuite,
deserializer: D,
) -> Result<Self, D::Error>where
D: Deserializer<'de>,
Source§impl Ord for AnySuite
impl Ord for AnySuite
Source§impl PartialOrd for AnySuite
impl PartialOrd for AnySuite
Source§impl SelectiveCryptographicSuite for AnySuite
impl SelectiveCryptographicSuite for AnySuite
Source§type SelectionOptions = AnySelectionOptions
type SelectionOptions = AnySelectionOptions
Options specifying what claims to select and how.
impl Eq for AnySuite
impl StructuralPartialEq for AnySuite
Auto Trait Implementations§
impl Freeze for AnySuite
impl RefUnwindSafe for AnySuite
impl Send for AnySuite
impl Sync for AnySuite
impl Unpin for AnySuite
impl UnwindSafe for AnySuite
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> BorrowUnordered for T
impl<T> BorrowUnordered for T
fn as_unordered(&self) -> &Unordered<T>
Source§impl<T> CallHasher for T
impl<T> CallHasher for T
Source§impl<S> CloneCryptographicSuite for Swhere
S: CryptographicSuite,
<S as CryptographicSuite>::PreparedClaims: Clone,
<S as CryptographicSuite>::VerificationMethod: Clone,
<S as CryptographicSuite>::ProofOptions: Clone,
<S as CryptographicSuite>::Signature: Clone,
impl<S> CloneCryptographicSuite for Swhere
S: CryptographicSuite,
<S as CryptographicSuite>::PreparedClaims: Clone,
<S as CryptographicSuite>::VerificationMethod: Clone,
<S as CryptographicSuite>::ProofOptions: Clone,
<S as CryptographicSuite>::Signature: Clone,
fn clone_prepared_claims( claims: &<S as CryptographicSuite>::PreparedClaims, ) -> <S as CryptographicSuite>::PreparedClaims
fn clone_verification_method( verification_method: &<S as CryptographicSuite>::VerificationMethod, ) -> <S as CryptographicSuite>::VerificationMethod
fn clone_verification_method_ref( verification_method: &ReferenceOrOwned<<S as CryptographicSuite>::VerificationMethod>, ) -> ReferenceOrOwned<<S as CryptographicSuite>::VerificationMethod>
fn clone_verification_method_ref_ref( verification_method: ReferenceOrOwnedRef<'_, <S as CryptographicSuite>::VerificationMethod>, ) -> ReferenceOrOwned<<S as CryptographicSuite>::VerificationMethod>
fn clone_proof_options( options: &<S as CryptographicSuite>::ProofOptions, ) -> <S as CryptographicSuite>::ProofOptions
fn clone_signature( signature: &<S as CryptographicSuite>::Signature, ) -> <S as CryptographicSuite>::Signature
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<Q, K> Comparable<K> for Q
impl<Q, K> Comparable<K> for Q
Source§impl<S> DebugCryptographicSuite for Swhere
S: CryptographicSuite + Debug,
<S as CryptographicSuite>::PreparedClaims: Debug,
<S as CryptographicSuite>::VerificationMethod: Debug,
<S as CryptographicSuite>::ProofOptions: Debug,
<S as CryptographicSuite>::Signature: Debug,
impl<S> DebugCryptographicSuite for Swhere
S: CryptographicSuite + Debug,
<S as CryptographicSuite>::PreparedClaims: Debug,
<S as CryptographicSuite>::VerificationMethod: Debug,
<S as CryptographicSuite>::ProofOptions: Debug,
<S as CryptographicSuite>::Signature: Debug,
fn fmt_prepared_claims( claims: &<S as CryptographicSuite>::PreparedClaims, f: &mut Formatter<'_>, ) -> Result<(), Error>
fn fmt_verification_method( verification_method: &<S as CryptographicSuite>::VerificationMethod, f: &mut Formatter<'_>, ) -> Result<(), Error>
fn fmt_verification_method_ref( verification_method: &ReferenceOrOwnedRef<'_, <S as CryptographicSuite>::VerificationMethod>, f: &mut Formatter<'_>, ) -> Result<(), Error>
fn fmt_proof_options( options: &<S as CryptographicSuite>::ProofOptions, f: &mut Formatter<'_>, ) -> Result<(), Error>
fn fmt_signature( signature: &<S as CryptographicSuite>::Signature, f: &mut Formatter<'_>, ) -> Result<(), Error>
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.Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
fn equivalent(&self, key: &K) -> bool
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<T, U, C> IntoWithContext<U, C> for Twhere
U: FromWithContext<T, C>,
impl<T, U, C> IntoWithContext<U, C> for Twhere
U: FromWithContext<T, C>,
Source§impl<T> ResourceProvider<()> for T
impl<T> ResourceProvider<()> for T
Source§fn get_resource(&self) -> &()
fn get_resource(&self) -> &()
Returns a reference to the resource of type
T.