pub struct SignedDataBuilder<'a> { /* private fields */ }
Expand description

Entity for incrementally deriving a SignedData primitive.

Use this type for generating an RFC 5652 payload for signed data.

By default, the encapsulated content to sign is empty. Call Self::content_inline() or Self::content_external() to define encapsulated content.

Implementations§

source§

impl<'a> SignedDataBuilder<'a>

source

pub fn content_inline(self, content: Vec<u8>) -> Self

Define encapsulated content that will be stored inline in the produced signature.

source

pub fn content_external(self, content: Vec<u8>) -> Self

Define encapsulated content that won’t be present in the produced signature.

The content will be digested and that digest conveyed in the built signature. But the content itself won’t be present in the signature. RFC 5652 refers to this as an external signature.

source

pub fn signer(self, signer: SignerBuilder<'a>) -> Self

Add a signer.

The signer is the thing generating the cryptographic signature over data to be signed.

source

pub fn certificate(self, cert: CapturedX509Certificate) -> Self

Add a certificate defined by our crate’s Certificate type.

source

pub fn certificates( self, certs: impl Iterator<Item = CapturedX509Certificate> ) -> Self

Add multiple certificates to the certificates chain.

source

pub fn content_type(self, oid: Oid) -> Self

Force the OID for the ContentInfo.contentType field.

source

pub fn build_signed_data(&self) -> Result<SignedData, CmsError>

Construct a SignedData object from the parameters received so far.

source

pub fn build_der(&self) -> Result<Vec<u8>, CmsError>

Construct a DER-encoded ASN.1 document containing a SignedData object.

RFC 5652 says SignedData is BER encoded. However, DER is a stricter subset of BER. DER encodings are valid BER. So producing DER encoded data is perfectly valid. We choose to go with the more well-defined encoding format.

Trait Implementations§

source§

impl<'a> Default for SignedDataBuilder<'a>

source§

fn default() -> Self

Returns the “default value” for a type. Read more

Auto Trait Implementations§

§

impl<'a> !RefUnwindSafe for SignedDataBuilder<'a>

§

impl<'a> !Send for SignedDataBuilder<'a>

§

impl<'a> !Sync for SignedDataBuilder<'a>

§

impl<'a> Unpin for SignedDataBuilder<'a>

§

impl<'a> !UnwindSafe for SignedDataBuilder<'a>

Blanket Implementations§

source§

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

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

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

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

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

source§

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

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T> Instrument for T

source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
source§

impl<T, U> Into<U> for Twhere 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> TryFrom<U> for Twhere U: Into<T>,

§

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> TryInto<U> for Twhere U: TryFrom<T>,

§

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> WithSubscriber for T

source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more