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
sourceimpl<'a> SignedDataBuilder<'a>
impl<'a> SignedDataBuilder<'a>
sourcepub fn content_inline(self, content: Vec<u8>) -> Self
pub fn content_inline(self, content: Vec<u8>) -> Self
Define encapsulated content that will be stored inline in the produced signature.
sourcepub fn content_external(self, content: Vec<u8>) -> Self
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.
sourcepub fn signer(self, signer: SignerBuilder<'a>) -> Self
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.
sourcepub fn certificate(self, cert: CapturedX509Certificate) -> Self
pub fn certificate(self, cert: CapturedX509Certificate) -> Self
Add a certificate defined by our crate’s Certificate type.
sourcepub fn certificates(
self,
certs: impl Iterator<Item = CapturedX509Certificate>
) -> Self
pub fn certificates(
self,
certs: impl Iterator<Item = CapturedX509Certificate>
) -> Self
Add multiple certificates to the certificates chain.
sourcepub fn content_type(self, oid: Oid) -> Self
pub fn content_type(self, oid: Oid) -> Self
Force the OID for the ContentInfo.contentType field.
sourcepub fn build_der(&self) -> Result<Vec<u8>, CmsError>
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
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
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
sourceimpl<T> Instrument for T
impl<T> Instrument for T
sourcefn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
sourcefn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
sourceimpl<T> WithSubscriber for T
impl<T> WithSubscriber for T
sourcefn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> where
S: Into<Dispatch>,
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
sourcefn with_current_subscriber(self) -> WithDispatch<Self>
fn with_current_subscriber(self) -> WithDispatch<Self>
Attaches the current default Subscriber to this type, returning a
WithDispatch wrapper. Read more