Skip to main content

EncryptedDataBuilder

Struct EncryptedDataBuilder 

Source
pub struct EncryptedDataBuilder { /* private fields */ }
Expand description

Builder for complete EncryptedData fragments and document replacement.

Implementations§

Source§

impl EncryptedDataBuilder

Source

pub fn new(algorithm: DataEncryptionAlgorithm) -> Self

Create a builder for a content-encryption algorithm.

Source

pub fn policy(self, policy: EncryptionPolicy) -> Self

Replace the complete immutable encryption policy snapshot.

Source

pub fn chacha_parameters(self, parameters: ChaChaParameters) -> Self

Supply ChaCha wire parameters, not a policy exception. Omit the nonce to generate a fresh one through the selected provider. An explicit nonce must never be reused with the same key across encryption calls.

Source

pub fn provider(self, provider: Arc<dyn CryptoProvider>) -> Self

Select the cryptographic provider for this operation context.

Source

pub fn xml_backend(self, backend: XmlBackend) -> Self

Select the compiled XML parser backend for encryption document work.

Source

pub fn encryption_type(self, encrypted_type: EncryptedDataType) -> Self

Set whether XML encryption covers one element or its child content.

Source

pub fn id(self, id: impl Into<String>) -> Self

Set the generated EncryptedData identifier.

Source

pub fn direct_key(self, key: impl Into<Vec<u8>>) -> Self

Use a caller-managed content key instead of generating and wrapping one.

Source

pub fn encapsulation_key(self, key: Arc<dyn KeyEncapsulationKey>) -> Self

Generate the content key through an experimental KEM recipient handle. The final immutable policy must explicitly permit its parameter set.

Source

pub fn derived_key( self, method: KeyDerivationMethod, secret: impl Into<Vec<u8>>, ) -> Self

Derive the direct content key inside the operation’s key-resolution gate. Parameters and secret are explicit request inputs; the final builder policy controls execution, not the policy used to parse parameters.

Source

pub fn agreement_key( self, method: KeyDerivationMethod, key: Box<dyn KeyAgreementKey>, algorithm: KeyAgreementAlgorithm, peer_public_key: impl Into<Vec<u8>>, ) -> Self

Establish the direct content key through an opaque private-key handle.

The peer is an explicit request input. Agreement and derivation execute through the selected provider only after the final policy has permitted both mechanisms and reserved their operation-wide workspace. For ECDH-ES, supply a freshly generated sender pair. The owned key is consumed at most once, including across builder clones and failed agreement attempts. Export its public role before transferring ownership.

Source

pub fn direct_key_name(self, key_name: impl Into<String>) -> Self

Emit a direct KeyName hint for a caller-managed content key. This names the content key, never an encapsulation recipient key.

Source

pub fn add_recipient(self, recipient: EncryptionRecipient) -> Self

Add one independently wrapped recipient of the generated content key.

Source

pub fn recipient_rsa_oaep(self, public_key: RsaPublicKey) -> Self

Add an RSA-OAEP recipient using secure XMLEnc 1.1 defaults.

Source

pub fn recipient_key_transport( self, public_key: Arc<dyn KeyTransportKey>, ) -> Self

Add an RSA-OAEP recipient backed by an opaque provider key handle.

Source

pub fn recipient_aes_kw( self, kek: impl Into<Vec<u8>>, algorithm: KeyWrapAlgorithm, ) -> Self

Add an AES Key Wrap recipient.

Source

pub fn encrypt_xml(&self, xml: &str) -> Result<EncryptionResult, XmlEncError>

Encrypt one complete XML element or an XML content fragment.

Source

pub fn encrypt_binary( &self, data: &[u8], ) -> Result<EncryptionResult, XmlEncError>

Encrypt opaque bytes, preserving a configured non-XML Type hint.

Element and Content are XML replacement semantics and are omitted from binary output. Any other URI remains application metadata.

Source

pub fn encrypt_document( &self, xml: &str, options: DocumentEncryptionOptions<'_>, ) -> Result<String, XmlEncError>

Encrypt and replace the document root or one element selected by XML ID.

Source

pub fn encrypt_owned_document( &self, document: &mut XmlDocument, options: DocumentEncryptionOptions<'_>, ) -> Result<(), XmlEncError>

Encrypt and replace a node in a reusable owned XML document.

Successful mutation advances the document generation and invalidates identities captured before this call.

Trait Implementations§

Source§

impl Clone for EncryptedDataBuilder

Source§

fn clone(&self) -> Self

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

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

Performs copy-assignment from source. Read more
Source§

impl Debug for EncryptedDataBuilder

Source§

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

Formats the value using the given formatter. 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<'a, T, E> AsTaggedExplicit<'a, E> for T
where T: 'a,

Source§

fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

Source§

impl<'a, T, E> AsTaggedImplicit<'a, E> for T
where T: 'a,

Source§

fn implicit( self, class: Class, constructed: bool, tag: u32, ) -> TaggedParser<'a, Implicit, Self, E>

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

Source§

fn from(t: T) -> T

Returns the argument unchanged.

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

Source§

type Error = !

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

fn try_from(value: U) -> Result<T, !>

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.