win_crypto_ng::asymmetric

Trait Export

Source
pub trait Export<A: Algorithm, P: Parts>: Borrow<AsymmetricKey<A, P>> {
    type Blob: KeyBlob + BlobLayout;

    // Provided method
    fn export(&self) -> Result<Box<Blob<Self::Blob>>> { ... }
}
Expand description

Export asymmetric key to the raw key data format.

§Example

use win_crypto_ng::asymmetric::{AsymmetricAlgorithm, AsymmetricAlgorithmId};
use win_crypto_ng::asymmetric::{Algorithm, Rsa, Private, AsymmetricKey};
use win_crypto_ng::asymmetric::Export;

let pair = AsymmetricKey::builder(Rsa).key_bits(1024).build().unwrap();
let blob = pair.as_public().export().unwrap();
dbg!(blob.as_bytes());

let public = blob;
let pub_exp = public.pub_exp();
let modulus = public.modulus();

let private = pair.export().unwrap();
assert_eq!(pub_exp, private.pub_exp());
assert_eq!(modulus, private.modulus());

Required Associated Types§

Provided Methods§

Source

fn export(&self) -> Result<Box<Blob<Self::Blob>>>

Implementors§

Source§

impl<'a> Export<AsymmetricAlgorithmId, Private> for AsymmetricKey<AsymmetricAlgorithmId, Private>

Source§

impl<'a> Export<AsymmetricAlgorithmId, Public> for AsymmetricKey<AsymmetricAlgorithmId, Public>

Source§

impl<'a> Export<Dh, Private> for AsymmetricKey<Dh, Private>

Source§

impl<'a> Export<Dh, Public> for AsymmetricKey<Dh, Public>

Source§

impl<'a> Export<Dsa, Private> for AsymmetricKey<Dsa, Private>

Source§

impl<'a> Export<Dsa, Public> for AsymmetricKey<Dsa, Public>

Source§

impl<'a> Export<Ecdh<Curve25519>, Private> for AsymmetricKey<Ecdh<Curve25519>, Private>

Source§

impl<'a> Export<Ecdh<Curve25519>, Public> for AsymmetricKey<Ecdh<Curve25519>, Public>

Source§

impl<'a> Export<Ecdh<NistP256>, Private> for AsymmetricKey<Ecdh<NistP256>, Private>

Source§

impl<'a> Export<Ecdh<NistP256>, Public> for AsymmetricKey<Ecdh<NistP256>, Public>

Source§

impl<'a> Export<Ecdh<NistP384>, Private> for AsymmetricKey<Ecdh<NistP384>, Private>

Source§

impl<'a> Export<Ecdh<NistP384>, Public> for AsymmetricKey<Ecdh<NistP384>, Public>

Source§

impl<'a> Export<Ecdh<NistP521>, Private> for AsymmetricKey<Ecdh<NistP521>, Private>

Source§

impl<'a> Export<Ecdh<NistP521>, Public> for AsymmetricKey<Ecdh<NistP521>, Public>

Source§

impl<'a> Export<Ecdsa<NistP256>, Private> for AsymmetricKey<Ecdsa<NistP256>, Private>

Source§

impl<'a> Export<Ecdsa<NistP256>, Public> for AsymmetricKey<Ecdsa<NistP256>, Public>

Source§

impl<'a> Export<Ecdsa<NistP384>, Private> for AsymmetricKey<Ecdsa<NistP384>, Private>

Source§

impl<'a> Export<Ecdsa<NistP384>, Public> for AsymmetricKey<Ecdsa<NistP384>, Public>

Source§

impl<'a> Export<Ecdsa<NistP521>, Private> for AsymmetricKey<Ecdsa<NistP521>, Private>

Source§

impl<'a> Export<Ecdsa<NistP521>, Public> for AsymmetricKey<Ecdsa<NistP521>, Public>

Source§

impl<'a> Export<Rsa, Private> for AsymmetricKey<Rsa, Private>

Source§

impl<'a> Export<Rsa, Public> for AsymmetricKey<Rsa, Public>