pub struct KekDecryptor<'a> { /* private fields */ }Expand description
Resolver backed by a pre-shared, algorithm-family-bound key-encryption key. Owned material is zeroized on drop; borrowed material remains caller-owned.
Implementations§
Source§impl KekDecryptor<'static>
impl KekDecryptor<'static>
Source§impl<'a> KekDecryptor<'a>
impl<'a> KekDecryptor<'a>
Sourcepub fn borrowed(kek: &'a [u8]) -> Self
pub fn borrowed(kek: &'a [u8]) -> Self
Borrow a KEK for operation-scoped recovery without copying secret material.
Sourcepub fn borrowed_with_kind(kek: &'a [u8], kind: SymmetricKeyKind) -> Self
pub fn borrowed_with_kind(kek: &'a [u8], kind: SymmetricKeyKind) -> Self
Borrow key material while retaining its caller-declared algorithm family.
Trait Implementations§
Source§impl<'a> Clone for KekDecryptor<'a>
impl<'a> Clone for KekDecryptor<'a>
Source§impl Debug for KekDecryptor<'_>
impl Debug for KekDecryptor<'_>
Source§impl DecryptionKeyResolver for KekDecryptor<'_>
impl DecryptionKeyResolver for KekDecryptor<'_>
Source§fn resolve_key_encryption_keys_with_policy(
&self,
provider: &dyn CryptoProvider,
algorithm: KeyWrapAlgorithm,
source: KeyEncryptionKeySource<'_>,
policy: &DecryptionPolicy,
budget: &mut KeyCandidateBudget,
) -> Result<Vec<RecoveredContentKey>, XmlEncError>
fn resolve_key_encryption_keys_with_policy( &self, provider: &dyn CryptoProvider, algorithm: KeyWrapAlgorithm, source: KeyEncryptionKeySource<'_>, policy: &DecryptionPolicy, budget: &mut KeyCandidateBudget, ) -> Result<Vec<RecoveredContentKey>, XmlEncError>
Resolve an actual KEK purpose; default refusal prevents incorrectly
adapting a content algorithm merely because its key width happens to fit.
Source§fn resolve_content_keys_with_policy(
&self,
provider: &dyn CryptoProvider,
algorithm: DataEncryptionAlgorithm,
encrypted_key: Option<&EncryptedKey>,
policy: &DecryptionPolicy,
budget: &mut KeyCandidateBudget,
) -> Result<Vec<RecoveredContentKey>, XmlEncError>
fn resolve_content_keys_with_policy( &self, provider: &dyn CryptoProvider, algorithm: DataEncryptionAlgorithm, encrypted_key: Option<&EncryptedKey>, policy: &DecryptionPolicy, budget: &mut KeyCandidateBudget, ) -> Result<Vec<RecoveredContentKey>, XmlEncError>
Resolve operation candidates without dropping implicit-rejection state.
Wrappers around recipient resolvers must forward this method; converting
recovered candidates to raw bytes loses the final content acceptance gate.
Source§fn resolve_key_candidates_with_policy(
&self,
provider: &dyn CryptoProvider,
algorithm: DataEncryptionAlgorithm,
encrypted_key: Option<&EncryptedKey>,
policy: &DecryptionPolicy,
budget: &mut KeyCandidateBudget,
) -> Result<Vec<Vec<u8>>, XmlEncError>
fn resolve_key_candidates_with_policy( &self, provider: &dyn CryptoProvider, algorithm: DataEncryptionAlgorithm, encrypted_key: Option<&EncryptedKey>, policy: &DecryptionPolicy, budget: &mut KeyCandidateBudget, ) -> Result<Vec<Vec<u8>>, XmlEncError>
Resolve under the operation’s immutable snapshot. RSA resolvers enforce
rsa_keys before provider recovery; wrappers must forward this snapshot. Read moreSource§fn resolve_key(
&self,
provider: &dyn CryptoProvider,
algorithm: DataEncryptionAlgorithm,
encrypted_key: Option<&EncryptedKey>,
) -> Result<Vec<u8>, XmlEncError>
fn resolve_key( &self, provider: &dyn CryptoProvider, algorithm: DataEncryptionAlgorithm, encrypted_key: Option<&EncryptedKey>, ) -> Result<Vec<u8>, XmlEncError>
Resolve the symmetric key for
algorithm, optionally unwrapping encrypted_key.Source§fn resolve_encapsulation_content_keys_with_policy(
&self,
_provider: &dyn CryptoProvider,
_algorithm: DataEncryptionAlgorithm,
_descriptor: &EncapsulationMechanism,
_policy: &DecryptionPolicy,
_budget: &mut KeyCandidateBudget,
) -> Result<Vec<RecoveredContentKey>, XmlEncError>
fn resolve_encapsulation_content_keys_with_policy( &self, _provider: &dyn CryptoProvider, _algorithm: DataEncryptionAlgorithm, _descriptor: &EncapsulationMechanism, _policy: &DecryptionPolicy, _budget: &mut KeyCandidateBudget, ) -> Result<Vec<RecoveredContentKey>, XmlEncError>
Resolve an experimental KEM source under the operation snapshot. Raw
content-key resolvers refuse by default rather than bypassing the KEM.
Source§fn resolve_agreement_content_keys_with_policy(
&self,
_provider: &dyn CryptoProvider,
_algorithm: DataEncryptionAlgorithm,
_descriptor: &AgreementMethod,
_policy: &DecryptionPolicy,
_budget: &mut KeyCandidateBudget,
) -> Result<Vec<RecoveredContentKey>, XmlEncError>
fn resolve_agreement_content_keys_with_policy( &self, _provider: &dyn CryptoProvider, _algorithm: DataEncryptionAlgorithm, _descriptor: &AgreementMethod, _policy: &DecryptionPolicy, _budget: &mut KeyCandidateBudget, ) -> Result<Vec<RecoveredContentKey>, XmlEncError>
Resolve an agreement under the operation snapshot and shared allowance.
Default refusal prevents a raw content key from bypassing AgreementMethod.
Source§fn resolve_derived_content_keys_with_policy(
&self,
_provider: &dyn CryptoProvider,
_algorithm: DataEncryptionAlgorithm,
_descriptor: &DerivedKey,
_policy: &DecryptionPolicy,
_budget: &mut KeyCandidateBudget,
) -> Result<Vec<RecoveredContentKey>, XmlEncError>
fn resolve_derived_content_keys_with_policy( &self, _provider: &dyn CryptoProvider, _algorithm: DataEncryptionAlgorithm, _descriptor: &DerivedKey, _policy: &DecryptionPolicy, _budget: &mut KeyCandidateBudget, ) -> Result<Vec<RecoveredContentKey>, XmlEncError>
Resolve a transported derivation descriptor using the same immutable
operation policy and cumulative candidate/KDF allowance. The default
refuses it; a raw content-key resolver must not bypass derivation.
Source§fn resolve_key_candidates(
&self,
provider: &dyn CryptoProvider,
algorithm: DataEncryptionAlgorithm,
encrypted_key: Option<&EncryptedKey>,
budget: &mut KeyCandidateBudget,
) -> Result<Vec<Vec<u8>>, XmlEncError>
fn resolve_key_candidates( &self, provider: &dyn CryptoProvider, algorithm: DataEncryptionAlgorithm, encrypted_key: Option<&EncryptedKey>, budget: &mut KeyCandidateBudget, ) -> Result<Vec<Vec<u8>>, XmlEncError>
Resolve ordered candidate keys for one prepared decryption operation. Read more
Source§impl Drop for KekDecryptor<'_>
impl Drop for KekDecryptor<'_>
Source§impl Zeroize for KekDecryptor<'_>
impl Zeroize for KekDecryptor<'_>
impl ZeroizeOnDrop for KekDecryptor<'_>
Auto Trait Implementations§
impl<'a> Freeze for KekDecryptor<'a>
impl<'a> RefUnwindSafe for KekDecryptor<'a>
impl<'a> Send for KekDecryptor<'a>
impl<'a> Sync for KekDecryptor<'a>
impl<'a> Unpin for KekDecryptor<'a>
impl<'a> UnsafeUnpin for KekDecryptor<'a>
impl<'a> UnwindSafe for KekDecryptor<'a>
Blanket Implementations§
Source§impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
Source§impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more