pub fn keypair_opt_using(
signature_scheme: SignatureScheme,
encapsulation_scheme: EncapsulationScheme,
rng: &mut impl RandomNumberGenerator,
) -> Result<(PrivateKeys, PublicKeys)>Expand description
Generates a key pair with specified schemes using a custom random number generator.
This function provides the most control over key pair generation by allowing custom specification of both cryptographic schemes and the random number generator.
§Parameters
signature_scheme- The signature scheme to useencapsulation_scheme- The key encapsulation scheme to userng- A mutable reference to a random number generator
§Returns
A Result containing a tuple with PrivateKeys and PublicKeys if
successful, or an error if key generation fails.
§Errors
Returns an error if either the signature or encapsulation key generation fails.
§Example
ⓘ
use bc_components::{
EncapsulationScheme, SignatureScheme, keypair_opt_using,
};
use bc_rand::SecureRandomNumberGenerator;
// Create a random number generator
let mut rng = SecureRandomNumberGenerator;
// Generate a specific key pair deterministically
let result = keypair_opt_using(
SignatureScheme::Ecdsa,
EncapsulationScheme::X25519,
&mut rng,
);
assert!(result.is_ok());