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::{keypair_opt_using, SignatureScheme, EncapsulationScheme};
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());