1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
use {PrivateKey, PublicKey}; impl PrivateKey { /// Return public key for this private key pub fn public_key(&self) -> PublicKey { match self { &PrivateKey::Ed25519(data) => { let mut ar = [0u8; 32]; ar.copy_from_slice(&data[32..]); PublicKey::Ed25519(ar) } &PrivateKey::Rsa { ref e, ref n, .. } => { PublicKey::Rsa { exponent: e.clone(), modulus: n.clone() } } } } }