use crate::error::PakeError;
use alloc::vec::Vec;
use rand_core::CryptoRng;
use zeroize::Zeroizing;
pub trait DhGroup {
fn diffie_hellman(sk: &[u8], pk: &[u8]) -> Result<Zeroizing<Vec<u8>>, PakeError>;
fn derive_keypair(seed: &[u8]) -> Result<(Zeroizing<Vec<u8>>, Vec<u8>), PakeError>;
fn generate_keypair(
rng: &mut impl CryptoRng,
) -> Result<(Zeroizing<Vec<u8>>, Vec<u8>), PakeError>;
fn public_key_from_private(sk: &[u8]) -> Result<Vec<u8>, PakeError>;
}