2023-04-10 06:05:17 -04:00
|
|
|
use rand_core::OsRng;
|
|
|
|
|
|
2025-09-15 23:16:11 -04:00
|
|
|
use ciphersuite::group::GroupEncoding;
|
2023-04-10 06:05:17 -04:00
|
|
|
use frost::{
|
|
|
|
|
Participant,
|
|
|
|
|
tests::{key_gen, algorithm_machines, sign},
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
use schnorrkel::{keys::PublicKey, context::SigningContext};
|
|
|
|
|
|
|
|
|
|
use crate::Schnorrkel;
|
|
|
|
|
|
|
|
|
|
#[test]
|
|
|
|
|
fn test() {
|
|
|
|
|
const CONTEXT: &[u8] = b"FROST Schnorrkel Test";
|
|
|
|
|
const MSG: &[u8] = b"Hello, World!";
|
|
|
|
|
|
|
|
|
|
let keys = key_gen(&mut OsRng);
|
|
|
|
|
let key = keys[&Participant::new(1).unwrap()].group_key();
|
2023-12-17 00:01:41 -05:00
|
|
|
let algorithm = Schnorrkel::new(CONTEXT);
|
|
|
|
|
let machines = algorithm_machines(&mut OsRng, &algorithm, &keys);
|
|
|
|
|
let signature = sign(&mut OsRng, &algorithm, keys, machines, MSG);
|
2023-04-10 06:05:17 -04:00
|
|
|
|
|
|
|
|
let key = PublicKey::from_bytes(key.to_bytes().as_ref()).unwrap();
|
|
|
|
|
key.verify(&mut SigningContext::new(CONTEXT).bytes(MSG), &signature).unwrap()
|
|
|
|
|
}
|