pub struct Credential {Show 14 fields
pub context: Contexts,
pub id: Option<StringOrURI>,
pub type_: OneOrMany<String>,
pub credential_subject: OneOrMany<CredentialSubject>,
pub issuer: Option<Issuer>,
pub issuance_date: Option<VCDateTime>,
pub proof: Option<OneOrMany<Proof>>,
pub expiration_date: Option<VCDateTime>,
pub credential_status: Option<Status>,
pub terms_of_use: Option<Vec<TermsOfUse>>,
pub evidence: Option<OneOrMany<Evidence>>,
pub credential_schema: Option<OneOrMany<Schema>>,
pub refresh_service: Option<OneOrMany<RefreshService>>,
pub property_set: Option<HashMap<String, Value>>,
}
Fields§
§context: Contexts
§id: Option<StringOrURI>
§type_: OneOrMany<String>
§credential_subject: OneOrMany<CredentialSubject>
§issuer: Option<Issuer>
§issuance_date: Option<VCDateTime>
§proof: Option<OneOrMany<Proof>>
§expiration_date: Option<VCDateTime>
§credential_status: Option<Status>
§terms_of_use: Option<Vec<TermsOfUse>>
§evidence: Option<OneOrMany<Evidence>>
§credential_schema: Option<OneOrMany<Schema>>
§refresh_service: Option<OneOrMany<RefreshService>>
§property_set: Option<HashMap<String, Value>>
Implementations§
Source§impl Credential
impl Credential
pub fn from_json(s: &str) -> Result<Credential, Error>
pub fn from_json_unsigned(s: &str) -> Result<Credential, Error>
pub fn from_jwt_keys(jwt: &str, keys: &JWTKeys) -> Result<Credential, Error>
👎Deprecated: Use decode_verify_jwt
pub fn from_jwt(jwt: &str, key: &JWK) -> Result<Credential, Error>
pub fn from_jwt_unsigned(jwt: &str) -> Result<Credential, Error>
pub fn from_jwt_claims(claims: JWTClaims) -> Result<Credential, Error>
pub fn to_jwt_claims(&self) -> Result<JWTClaims, Error>
pub fn encode_jwt_unsigned(&self, aud: &str) -> Result<String, Error>
👎Deprecated: Use generate_jwt
pub fn encode_sign_jwt( &self, keys: &JWTKeys, aud: &str, ) -> Result<String, Error>
👎Deprecated: Use generate_jwt
Sourcepub async fn generate_jwt(
&self,
jwk: Option<&JWK>,
options: &LinkedDataProofOptions,
resolver: &dyn DIDResolver,
) -> Result<String, Error>
pub async fn generate_jwt( &self, jwk: Option<&JWK>, options: &LinkedDataProofOptions, resolver: &dyn DIDResolver, ) -> Result<String, Error>
Encode the Verifiable Credential as JWT. If JWK is passed, sign it, otherwise it is unsigned. Linked data proof options are translated into JWT claims if possible.
pub async fn verify_jwt( jwt: &str, options_opt: Option<LinkedDataProofOptions>, resolver: &dyn DIDResolver, context_loader: &mut ContextLoader, ) -> VerificationResult
pub async fn decode_verify_jwt( jwt: &str, options_opt: Option<LinkedDataProofOptions>, resolver: &dyn DIDResolver, context_loader: &mut ContextLoader, ) -> (Option<Credential>, VerificationResult)
pub fn validate_unsigned(&self) -> Result<(), Error>
pub fn is_zkp(&self) -> bool
pub fn validate(&self) -> Result<(), Error>
pub async fn verify( &self, options: Option<LinkedDataProofOptions>, resolver: &dyn DIDResolver, context_loader: &mut ContextLoader, ) -> VerificationResult
pub async fn generate_proof( &self, jwk: &JWK, options: &LinkedDataProofOptions, resolver: &dyn DIDResolver, context_loader: &mut ContextLoader, ) -> Result<Proof, Error>
Sourcepub async fn prepare_proof(
&self,
public_key: &JWK,
options: &LinkedDataProofOptions,
resolver: &dyn DIDResolver,
context_loader: &mut ContextLoader,
) -> Result<ProofPreparation, Error>
pub async fn prepare_proof( &self, public_key: &JWK, options: &LinkedDataProofOptions, resolver: &dyn DIDResolver, context_loader: &mut ContextLoader, ) -> Result<ProofPreparation, Error>
Prepare to generate a linked data proof. Returns the signing input for the caller to sign
and then pass to [ProofPreparation::complete
] to complete the proof.
pub fn add_proof(&mut self, proof: Proof)
Sourcepub async fn check_status(
&self,
resolver: &dyn DIDResolver,
context_loader: &mut ContextLoader,
) -> VerificationResult
pub async fn check_status( &self, resolver: &dyn DIDResolver, context_loader: &mut ContextLoader, ) -> VerificationResult
Check the credentials status
Trait Implementations§
Source§impl Clone for Credential
impl Clone for Credential
Source§fn clone(&self) -> Credential
fn clone(&self) -> Credential
Returns a duplicate of the value. Read more
1.0.0 · 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 Credential
impl Debug for Credential
Source§impl<'de> Deserialize<'de> for Credential
impl<'de> Deserialize<'de> for Credential
Source§fn deserialize<__D>(
__deserializer: __D,
) -> Result<Credential, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(
__deserializer: __D,
) -> Result<Credential, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
Source§impl LinkedDataDocument for Credential
impl LinkedDataDocument for Credential
fn get_contexts(&self) -> Result<Option<String>, Error>
fn to_dataset_for_signing<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
parent: Option<&'life1 (dyn LinkedDataDocument + Sync)>,
context_loader: &'life2 mut ContextLoader,
) -> Pin<Box<dyn Future<Output = Result<HashDataset<Subject, IriBuf, Term>, Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Credential: 'async_trait,
fn to_value(&self) -> Result<Value, Error>
fn get_issuer(&self) -> Option<&str>
fn get_default_proof_purpose(&self) -> Option<VerificationRelationship>
Source§impl PartialEq for Credential
impl PartialEq for Credential
Source§impl Serialize for Credential
impl Serialize for Credential
Source§fn serialize<__S>(
&self,
__serializer: __S,
) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>where
__S: Serializer,
fn serialize<__S>(
&self,
__serializer: __S,
) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>where
__S: Serializer,
Serialize this value into the given Serde serializer. Read more
Source§impl TryFrom<RevocationList2020Credential> for Credential
impl TryFrom<RevocationList2020Credential> for Credential
Source§type Error = CredentialConversionError
type Error = CredentialConversionError
The type returned in the event of a conversion error.
Source§fn try_from(
credential: RevocationList2020Credential,
) -> Result<Credential, <Credential as TryFrom<RevocationList2020Credential>>::Error>
fn try_from( credential: RevocationList2020Credential, ) -> Result<Credential, <Credential as TryFrom<RevocationList2020Credential>>::Error>
Performs the conversion.
Source§impl TryFrom<StatusList2021Credential> for Credential
impl TryFrom<StatusList2021Credential> for Credential
Source§type Error = CredentialConversionError
type Error = CredentialConversionError
The type returned in the event of a conversion error.
Source§fn try_from(
credential: StatusList2021Credential,
) -> Result<Credential, <Credential as TryFrom<StatusList2021Credential>>::Error>
fn try_from( credential: StatusList2021Credential, ) -> Result<Credential, <Credential as TryFrom<StatusList2021Credential>>::Error>
Performs the conversion.
impl StructuralPartialEq for Credential
Auto Trait Implementations§
impl Freeze for Credential
impl RefUnwindSafe for Credential
impl Send for Credential
impl Sync for Credential
impl Unpin for Credential
impl UnwindSafe for Credential
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<T> FmtForward for T
impl<T> FmtForward for T
Source§fn fmt_binary(self) -> FmtBinary<Self>where
Self: Binary,
fn fmt_binary(self) -> FmtBinary<Self>where
Self: Binary,
Causes
self
to use its Binary
implementation when Debug
-formatted.Source§fn fmt_display(self) -> FmtDisplay<Self>where
Self: Display,
fn fmt_display(self) -> FmtDisplay<Self>where
Self: Display,
Causes
self
to use its Display
implementation when
Debug
-formatted.Source§fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
Self: LowerExp,
fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
Self: LowerExp,
Causes
self
to use its LowerExp
implementation when
Debug
-formatted.Source§fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
Self: LowerHex,
fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
Self: LowerHex,
Causes
self
to use its LowerHex
implementation when
Debug
-formatted.Source§fn fmt_octal(self) -> FmtOctal<Self>where
Self: Octal,
fn fmt_octal(self) -> FmtOctal<Self>where
Self: Octal,
Causes
self
to use its Octal
implementation when Debug
-formatted.Source§fn fmt_pointer(self) -> FmtPointer<Self>where
Self: Pointer,
fn fmt_pointer(self) -> FmtPointer<Self>where
Self: Pointer,
Causes
self
to use its Pointer
implementation when
Debug
-formatted.Source§fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
Self: UpperExp,
fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
Self: UpperExp,
Causes
self
to use its UpperExp
implementation when
Debug
-formatted.Source§fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
Self: UpperHex,
fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
Self: UpperHex,
Causes
self
to use its UpperHex
implementation when
Debug
-formatted.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>
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 moreSource§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> Pipe for Twhere
T: ?Sized,
impl<T> Pipe for Twhere
T: ?Sized,
Source§fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
Pipes by value. This is generally the method you want to use. Read more
Source§fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
R: 'a,
fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
R: 'a,
Borrows
self
and passes that borrow into the pipe function. Read moreSource§fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
R: 'a,
fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
R: 'a,
Mutably borrows
self
and passes that borrow into the pipe function. Read moreSource§fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
Source§fn pipe_borrow_mut<'a, B, R>(
&'a mut self,
func: impl FnOnce(&'a mut B) -> R,
) -> R
fn pipe_borrow_mut<'a, B, R>( &'a mut self, func: impl FnOnce(&'a mut B) -> R, ) -> R
Source§fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
Borrows
self
, then passes self.as_ref()
into the pipe function.Source§fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
Mutably borrows
self
, then passes self.as_mut()
into the pipe
function.Source§fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
Borrows
self
, then passes self.deref()
into the pipe function.Source§impl<T> PipeAsRef for T
impl<T> PipeAsRef for T
Source§impl<T> PipeBorrow for T
impl<T> PipeBorrow for T
Source§impl<T> PipeDeref for T
impl<T> PipeDeref for T
Source§impl<T> PipeRef for T
impl<T> PipeRef for T
Source§impl<T> References<RawCodec> for T
impl<T> References<RawCodec> for T
Source§impl<T> Tap for T
impl<T> Tap for T
Source§fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
Immutable access to the
Borrow<B>
of a value. Read moreSource§fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
Mutable access to the
BorrowMut<B>
of a value. Read moreSource§fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
Immutable access to the
AsRef<R>
view of a value. Read moreSource§fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
Mutable access to the
AsMut<R>
view of a value. Read moreSource§fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
Immutable access to the
Deref::Target
of a value. Read moreSource§fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
Mutable access to the
Deref::Target
of a value. Read moreSource§fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
Calls
.tap()
only in debug builds, and is erased in release builds.Source§fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
Calls
.tap_mut()
only in debug builds, and is erased in release
builds.Source§fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
Calls
.tap_borrow()
only in debug builds, and is erased in release
builds.Source§fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
Calls
.tap_borrow_mut()
only in debug builds, and is erased in release
builds.Source§fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
Calls
.tap_ref()
only in debug builds, and is erased in release
builds.Source§fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
Calls
.tap_ref_mut()
only in debug builds, and is erased in release
builds.Source§fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
Calls
.tap_deref()
only in debug builds, and is erased in release
builds.Source§impl<T> Tap for T
impl<T> Tap for T
Source§fn tap<F, R>(self, func: F) -> Selfwhere
F: FnOnce(&Self) -> R,
fn tap<F, R>(self, func: F) -> Selfwhere
F: FnOnce(&Self) -> R,
Provides immutable access for inspection. Read more
Source§fn tap_dbg<F, R>(self, func: F) -> Selfwhere
F: FnOnce(&Self) -> R,
fn tap_dbg<F, R>(self, func: F) -> Selfwhere
F: FnOnce(&Self) -> R,
Calls
tap
in debug builds, and does nothing in release builds.Source§fn tap_mut<F, R>(self, func: F) -> Selfwhere
F: FnOnce(&mut Self) -> R,
fn tap_mut<F, R>(self, func: F) -> Selfwhere
F: FnOnce(&mut Self) -> R,
Provides mutable access for modification. Read more
Source§fn tap_mut_dbg<F, R>(self, func: F) -> Selfwhere
F: FnOnce(&mut Self) -> R,
fn tap_mut_dbg<F, R>(self, func: F) -> Selfwhere
F: FnOnce(&mut Self) -> R,
Calls
tap_mut
in debug builds, and does nothing in release builds.Source§impl<T, U> TapAsRef<U> for Twhere
U: ?Sized,
impl<T, U> TapAsRef<U> for Twhere
U: ?Sized,
Source§fn tap_ref<F, R>(self, func: F) -> Self
fn tap_ref<F, R>(self, func: F) -> Self
Provides immutable access to the reference for inspection.
Source§fn tap_ref_dbg<F, R>(self, func: F) -> Self
fn tap_ref_dbg<F, R>(self, func: F) -> Self
Calls
tap_ref
in debug builds, and does nothing in release builds.Source§fn tap_ref_mut<F, R>(self, func: F) -> Self
fn tap_ref_mut<F, R>(self, func: F) -> Self
Provides mutable access to the reference for modification.
Source§impl<T, U> TapBorrow<U> for Twhere
U: ?Sized,
impl<T, U> TapBorrow<U> for Twhere
U: ?Sized,
Source§fn tap_borrow<F, R>(self, func: F) -> Self
fn tap_borrow<F, R>(self, func: F) -> Self
Provides immutable access to the borrow for inspection. Read more
Source§fn tap_borrow_dbg<F, R>(self, func: F) -> Self
fn tap_borrow_dbg<F, R>(self, func: F) -> Self
Calls
tap_borrow
in debug builds, and does nothing in release builds.Source§fn tap_borrow_mut<F, R>(self, func: F) -> Self
fn tap_borrow_mut<F, R>(self, func: F) -> Self
Provides mutable access to the borrow for modification.
Source§impl<T> TapDeref for T
impl<T> TapDeref for T
Source§fn tap_deref_dbg<F, R>(self, func: F) -> Self
fn tap_deref_dbg<F, R>(self, func: F) -> Self
Calls
tap_deref
in debug builds, and does nothing in release builds.Source§fn tap_deref_mut<F, R>(self, func: F) -> Self
fn tap_deref_mut<F, R>(self, func: F) -> Self
Mutably dereferences
self
for modification.