cryptographic_message_syntax

Struct SignedDataBuilder

Source
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 signing_time(self, time: UtcTime) -> Self

Specify the signing time to use in signatures.

If not called, current time at struct construction will be used.

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> !Freeze for SignedDataBuilder<'a>

§

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 T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. 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> 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 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> 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> 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> 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