pub struct PrivateKeyDecryptor { /* private fields */ }Expand description
Resolver backed by an RSA private key for OAEP-wrapped session keys.
Implementations§
Source§impl PrivateKeyDecryptor
impl PrivateKeyDecryptor
Sourcepub fn new(key: RsaPrivateKey) -> Self
pub fn new(key: RsaPrivateKey) -> Self
Create a resolver from an already-parsed RSA private key.
Sourcepub fn provider_key(key: Arc<dyn KeyRecoveryKey>) -> Self
pub fn provider_key(key: Arc<dyn KeyRecoveryKey>) -> Self
Create a resolver from an opaque provider-owned recovery key.
Source§impl PrivateKeyDecryptor
impl PrivateKeyDecryptor
Sourcepub fn resolve_key_with_policy(
&self,
provider: &dyn CryptoProvider,
algorithm: DataEncryptionAlgorithm,
encrypted_key: Option<&EncryptedKey>,
policy: &DecryptionPolicy,
) -> Result<RecoveredContentKey, XmlEncError>
pub fn resolve_key_with_policy( &self, provider: &dyn CryptoProvider, algorithm: DataEncryptionAlgorithm, encrypted_key: Option<&EncryptedKey>, policy: &DecryptionPolicy, ) -> Result<RecoveredContentKey, XmlEncError>
Recover one session key using the exact operation policy. This avoids a temporary candidate collection when composing ordered RSA key rings.
Trait Implementations§
Source§impl Clone for PrivateKeyDecryptor
impl Clone for PrivateKeyDecryptor
Source§impl DecryptionKeyResolver for PrivateKeyDecryptor
impl DecryptionKeyResolver for PrivateKeyDecryptor
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
Auto Trait Implementations§
impl !RefUnwindSafe for PrivateKeyDecryptor
impl !UnwindSafe for PrivateKeyDecryptor
impl Freeze for PrivateKeyDecryptor
impl Send for PrivateKeyDecryptor
impl Sync for PrivateKeyDecryptor
impl Unpin for PrivateKeyDecryptor
impl UnsafeUnpin for PrivateKeyDecryptor
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