You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

67 lines
1.9 KiB

use babyjubjub_ark::{new_key, verify, Fq, Fr, Point, PrivateKey, Signature};
mod utils;
use wasm_bindgen::prelude::*;
// When the `wee_alloc` feature is enabled, use `wee_alloc` as the global
// allocator.
#[cfg(feature = "wee_alloc")]
#[global_allocator]
static ALLOC: wee_alloc::WeeAlloc = wee_alloc::WeeAlloc::INIT;
#[wasm_bindgen]
extern "C" {
fn alert(s: &str);
}
#[wasm_bindgen]
pub fn greet() {
alert("PROVAAAAA Hello, wasm-bindings!");
}
#[wasm_bindgen]
pub fn check_eddsa_bbjj_sig() {
let mut rng = ark_std::test_rng();
// alert("gen new key");
let sk = new_key(&mut rng);
// // let sk = PrivateKey::import(
// // hex::decode("0001020304050607080900010203040506070809000102030405060708090001").unwrap(),
// // )
// // .unwrap();
//
let pk = sk.public();
alert(&format!("pk: x={}, y={}", pk.x, pk.y));
let msg = Fq::from(5_u32);
alert(&format!("msg: {:?}", msg.to_string()));
let sig = sk.sign(msg.clone()).unwrap();
alert(&format!(
"signature:\ns:{}, r.x: {}, r.y: {}",
sig.s, sig.r_b8.x, sig.r_b8.x
));
let v = verify(pk.clone(), sig.clone(), msg.clone());
assert_eq!(v, true);
alert(&format!("signature verification: {}", v));
}
#[test]
fn test_compat() {
let mut rng = ark_std::test_rng();
let sk = new_key(&mut rng);
// // let sk = PrivateKey::import(
// // hex::decode("0001020304050607080900010203040506070809000102030405060708090001").unwrap(),
// // )
// // .unwrap();
//
let pk = sk.public();
println!("pk: x={}, y={}", pk.x, pk.y);
let msg = Fq::from(5_u32);
println!("msg: {:?}", msg.to_string());
let sig = sk.sign(msg.clone()).unwrap();
println!(
"signature:\ns:{}, r.x: {}, r.y: {}",
sig.s, sig.r_b8.x, sig.r_b8.x
);
let v = verify(pk.clone(), sig.clone(), msg.clone());
assert_eq!(v, true);
}