INNER CODE UNIT · Rust
generate_challenge
tangle-network/blueprint · crates/auth/src/lib.rs:136
pub fn generate_challenge<R: Rng + CryptoRng>(rng: &mut R) -> [u8; 32] {
let mut challenge = [0u8; 32];
rng.fill(&mut challenge);
challenge
}
/// Verifies the challenge solution sent from the client.
pub fn verify_challenge(
challenge: &[u8; 32],
signature: &[u8],
pub_key: &[u8],
key_type: types::KeyType,
) -> Result<bool, Error> {
match key_type {
types::KeyType::Unknown => Err(Error::UnknownKeyType),
types::KeyType::Ecdsa => verify_challenge_ecdsa(challenge, signature, pub_key),
types::KeyType::Sr25519 => verify_challenge_sr25519(challenge, signature, pub_key),
types::KeyType::Bn254Bls => verify_challenge_bn254_bls(challenge, signature, pub_key),