Ian Goldberg пре 3 месеци
родитељ
комит
f24966344f
1 измењених фајлова са 26 додато и 0 уклоњено
  1. 26 0
      src/arctic.rs

+ 26 - 0
src/arctic.rs

@@ -155,3 +155,29 @@ pub fn verify(pk: &PubKey, msg: &[u8], sig: &Signature) -> bool {
     let c = hash2(&sig.0, pk, msg);
     shine::commit(&sig.1) == sig.0 + c * pk
 }
+
+#[test]
+pub fn test_arctic() {
+    let n = 7u32;
+    let t = 4u32;
+
+    let (pubkey, seckeys) = keygen(n, t);
+
+    let coalition = (1..=n).collect::<Vec<u32>>();
+
+    let msg = b"A message to be signed";
+
+    let commits: Vec<RistrettoPoint> = seckeys
+        .iter()
+        .map(|key| sign1(&pubkey, key, &coalition, msg))
+        .collect();
+
+    let sigshares: Vec<Scalar> = seckeys
+        .iter()
+        .map(|key| sign2(&pubkey, key, &coalition, msg, &commits).unwrap())
+        .collect();
+
+    let sig = combine(&pubkey, t, &coalition, msg, &commits, &sigshares).unwrap();
+
+    assert!(verify(&pubkey, msg, &sig));
+}