use zeroize::Zeroizing;
use crate::multikey;
use crate::registry;
use crate::AlgorithmError;
use crypto_core::Algorithm;
pub struct GeneratedKeypair {
pub public_key: Vec<u8>,
pub secret_key: Zeroizing<Vec<u8>>,
pub public_key_multikey: String,
}
pub fn generate_multikey_keypair(alg: Algorithm) -> Result<GeneratedKeypair, AlgorithmError> {
let (public, secret) = registry::generate_keypair(alg)?;
let multikey = multikey::public_key_to_multikey(alg, &public)?;
Ok(GeneratedKeypair {
public_key: public,
secret_key: secret,
public_key_multikey: multikey,
})
}