/// An ed25519 keypair. #[derive(Debug, Default)]// we derive Default in order to use the clear() method in Drop pubstructKeypair { /// The secret half of this keypair. pub secret: SecretKey, /// The public half of this keypair. pub public: PublicKey, } implKeyPair { pubfngenerate<R>(csprng: &mut R) -> Keypair where R: CryptoRng + RngCore, { letsk: SecretKey = SecretKey::generate(csprng); letpk: PublicKey = (&sk).into();
Keypair{ public: pk, secret: sk } } }
/// An EdDSA secret key. #[derive(Default)]// we derive Default in order to use the clear() method in Drop pubstructSecretKey(pub(crate) [u8; SECRET_KEY_LENGTH]);