Struct DataIntegrity

Source
pub struct DataIntegrity<T, S: CryptographicSuite> {
    pub claims: T,
    pub proofs: Proofs<S>,
}
Expand description

Data-Integrity-secured document.

Fields§

§claims: T§proofs: Proofs<S>

Implementations§

Source§

impl<T, S: CryptographicSuite> DataIntegrity<T, S>

Source

pub fn new(claims: T, proofs: Proofs<S>) -> Self

Create new Data-Integrity-secured claims by providing the proofs.

Source

pub async fn verify<P>( &self, params: P, ) -> Result<Verification, ProofValidationError>
where T: ValidateClaims<P, Proofs<S>>, Proofs<S>: ValidateProof<P, T>,

Verify the claims and proofs.

The params argument provides all the verification parameters required to validate the claims and proof.

§What verification parameters should I use?

It really depends on the claims type T and cryptosuite type S, but the ssi::claims::VerificationParameters type is a good starting point that should work most of the time.

§Passing the parameters by reference

If the validation traits are implemented for P, they will be implemented for &P as well. This means the parameters can be passed by move or by reference.

Source

pub async fn select<P>( &self, params: P, options: S::SelectionOptions, ) -> Result<DataIntegrity<Object, S>, SelectionError>
where S: CryptographicSuiteSelect<T, P>,

Select a subset of claims to disclose.

The params argument is similar to the verification parameters of the verify function. It must provides resources necessary to the selection of claims. This depends on the cryptosuite type S, but probably includes a verification method resolver. Using ssi::claims::VerificationParameters will work in most cases.

Source

pub fn map<U>(self, f: impl FnOnce(T) -> U) -> DataIntegrity<U, S>

Trait Implementations§

Source§

impl<T, S> Clone for DataIntegrity<T, S>

Source§

fn clone(&self) -> Self

Returns a duplicate of the value. Read more
Source§

fn clone_from(&mut self, _source: &Self)

Performs copy-assignment from source. Read more
Source§

impl<T, S> Debug for DataIntegrity<T, S>

Source§

fn fmt(&self, formatter: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl<T, S: CryptographicSuite> Deref for DataIntegrity<T, S>

Source§

type Target = T

The resulting type after dereferencing.
Source§

fn deref(&self) -> &Self::Target

Dereferences the value.
Source§

impl<T, S: CryptographicSuite> DerefMut for DataIntegrity<T, S>

Source§

fn deref_mut(&mut self) -> &mut Self::Target

Mutably dereferences the value.
Source§

impl<'de, T, S> Deserialize<'de> for DataIntegrity<T, S>

Source§

fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
where D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
Source§

impl<T, S> Serialize for DataIntegrity<T, S>

Source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. Read more
Source§

impl<T, S: CryptographicSuite> VerifiableClaims for DataIntegrity<T, S>

Source§

type Claims = T

Claims type.
Source§

type Proof = Proofs<S>

Proof type.
Source§

fn claims(&self) -> &Self::Claims

The claims.
Source§

fn proof(&self) -> &Self::Proof

The proof.
Source§

async fn verify<P>( &self, params: P, ) -> Result<Result<(), Invalid>, ProofValidationError>
where Self::Claims: ValidateClaims<P, Self::Proof>, Self::Proof: ValidateProof<P, Self::Claims>,

Validates the claims and proof. Read more

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> At for T

Source§

fn at<M>(self, metadata: M) -> Meta<T, M>

Wraps self inside a Meta<Self, M> using the given metadata. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> BorrowStripped for T

Source§

fn stripped(&self) -> &Stripped<T>

Source§

impl<T> BorrowUnordered for T

Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<'de, T, C> DeserializeTyped<'de, C> for T
where T: Deserialize<'de>,

Source§

fn deserialize_typed<S>( _: &C, deserializer: S, ) -> Result<T, <S as Deserializer<'de>>::Error>
where S: Deserializer<'de>,

Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, C> FromWithContext<T, C> for T

Source§

fn from_with(value: T, _context: &C) -> T

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T, U, C> IntoWithContext<U, C> for T
where U: FromWithContext<T, C>,

Source§

fn into_with(self, context: &C) -> U

Source§

impl<P, T> Receiver for P
where P: Deref<Target = T> + ?Sized, T: ?Sized,

Source§

type Target = T

🔬This is a nightly-only experimental API. (arbitrary_self_types)
The target type on which the method may be called.
Source§

impl<T> ResourceProvider<()> for T

Source§

fn get_resource(&self) -> &()

Returns a reference to the resource of type T.
Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T> ToOwned for T

Source§

type Owned = T

Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U, C> TryFromWithContext<U, C> for T
where U: IntoWithContext<T, C>,

Source§

type Error = Infallible

Source§

fn try_from_with( value: U, context: &C, ) -> Result<T, <T as TryFromWithContext<U, C>>::Error>

Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<T, U, C> TryIntoWithContext<U, C> for T
where U: TryFromWithContext<T, C>,

Source§

type Error = <U as TryFromWithContext<T, C>>::Error

Source§

fn try_into_with( self, context: &C, ) -> Result<U, <T as TryIntoWithContext<U, C>>::Error>

Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V

Source§

impl<T> WithContext for T
where T: ?Sized,

Source§

fn with<C>(&self, context: C) -> Contextual<&T, C>

Source§

fn into_with<C>(self, context: C) -> Contextual<T, C>

Source§

impl<T> DeserializeOwned for T
where T: for<'de> Deserialize<'de>,

Source§

impl<T, U> DeserializeTypedOwned<T> for U
where U: for<'de> DeserializeTyped<'de, T>,