Skip to main content

KeyTransportKey

Trait KeyTransportKey 

Source
pub trait KeyTransportKey: Send + Sync {
    // Required methods
    fn rsa_modulus(&self) -> Cow<'_, [u8]>;
    fn rsa_exponent(&self) -> Cow<'_, [u8]>;
    fn transport_with_provider(
        &self,
        provider: &dyn CryptoProvider,
        parameters: &RsaOaepParameters,
        plaintext: &[u8],
    ) -> Result<Vec<u8>, ProviderError>;
}
Expand description

Opaque public-key handle used for asymmetric key transport.

Implementations own their key material and operation. The orchestration layer can inspect only public RSA components needed for policy validation and output framing; it cannot recover a backend-specific key object.

Required Methods§

Source

fn rsa_modulus(&self) -> Cow<'_, [u8]>

RSA modulus bytes without redundant leading zero octets.

These components must identify the exact key used by Self::transport_with_provider; returning metadata for another key would violate the policy boundary.

Source

fn rsa_exponent(&self) -> Cow<'_, [u8]>

RSA public exponent bytes without redundant leading zero octets.

Source

fn transport_with_provider( &self, provider: &dyn CryptoProvider, parameters: &RsaOaepParameters, plaintext: &[u8], ) -> Result<Vec<u8>, ProviderError>

Execute OAEP key transport using the selected provider’s randomness.

Dyn Compatibility§

This trait is dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementations on Foreign Types§

Source§

impl KeyTransportKey for RsaPublicKey

Available on crate feature xmlenc only.
Source§

fn rsa_modulus(&self) -> Cow<'_, [u8]>

Source§

fn rsa_exponent(&self) -> Cow<'_, [u8]>

Source§

fn transport_with_provider( &self, provider: &dyn CryptoProvider, parameters: &RsaOaepParameters, plaintext: &[u8], ) -> Result<Vec<u8>, ProviderError>

Implementors§

Source§

impl KeyTransportKey for RustCryptoRsaPublicKey

Available on crate feature xmlenc only.