reduce deps by not using rand pkg in secp256k1
This commit is contained in:
parent
70865a9f69
commit
dd529f9871
|
@ -10,8 +10,7 @@ repository = "https://github.com/ZcashFoundation/libbolt"
|
||||||
license = "MIT License"
|
license = "MIT License"
|
||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
rand = "0.6"
|
rand = "0.7"
|
||||||
rand_core = "0.4.0"
|
|
||||||
ff_bl = { git = "https://github.com/boltlabs-inc/ff", branch = "master" }
|
ff_bl = { git = "https://github.com/boltlabs-inc/ff", branch = "master" }
|
||||||
pairing_bl = { git = "https://github.com/boltlabs-inc/pairing", branch = "master", features = ["serde"] }
|
pairing_bl = { git = "https://github.com/boltlabs-inc/pairing", branch = "master", features = ["serde"] }
|
||||||
libc = "*"
|
libc = "*"
|
||||||
|
@ -20,7 +19,7 @@ serde_json = "1.0"
|
||||||
serde_with = "1.0"
|
serde_with = "1.0"
|
||||||
serde_bytes = "0.11.2"
|
serde_bytes = "0.11.2"
|
||||||
time = "*"
|
time = "*"
|
||||||
secp256k1 = { version = "0.16.0", features = ["rand", "serde"] }
|
secp256k1 = { version = "0.16.0", features = ["serde"] }
|
||||||
sha2 = { version = "0.8", default-features = false }
|
sha2 = { version = "0.8", default-features = false }
|
||||||
hex = "0.3.2"
|
hex = "0.3.2"
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,4 @@
|
||||||
extern crate rand;
|
extern crate rand;
|
||||||
extern crate rand_core;
|
|
||||||
extern crate bolt;
|
extern crate bolt;
|
||||||
extern crate ff_bl as ff;
|
extern crate ff_bl as ff;
|
||||||
extern crate pairing_bl as pairing;
|
extern crate pairing_bl as pairing;
|
||||||
|
|
|
@ -1,5 +1,4 @@
|
||||||
extern crate rand;
|
extern crate rand;
|
||||||
extern crate rand_core;
|
|
||||||
extern crate bolt;
|
extern crate bolt;
|
||||||
extern crate ff_bl as ff;
|
extern crate ff_bl as ff;
|
||||||
extern crate pairing_bl as pairing;
|
extern crate pairing_bl as pairing;
|
||||||
|
|
|
@ -210,13 +210,20 @@ impl<E: Engine> CustomerState<E> {
|
||||||
<E as pairing::Engine>::G2: serde::Serialize,
|
<E as pairing::Engine>::G2: serde::Serialize,
|
||||||
<E as ff::ScalarEngine>::Fr: serde::Serialize
|
<E as ff::ScalarEngine>::Fr: serde::Serialize
|
||||||
{
|
{
|
||||||
let mut kp = secp256k1::Secp256k1::new();
|
let secp = secp256k1::Secp256k1::new();
|
||||||
kp.randomize(csprng);
|
|
||||||
|
|
||||||
// generate the keypair for the channel
|
let mut seckey = [0u8; 32];
|
||||||
let (sk_c, pk_c) = kp.generate_keypair(csprng);
|
csprng.fill_bytes(&mut seckey);
|
||||||
|
|
||||||
|
// generate the signing keypair for the channel
|
||||||
|
let sk_c = secp256k1::SecretKey::from_slice(&seckey).unwrap();
|
||||||
|
let pk_c = secp256k1::PublicKey::from_secret_key(&secp, &sk_c);
|
||||||
|
|
||||||
|
let mut seckey1 = [0u8; 32];
|
||||||
|
csprng.fill_bytes(&mut seckey1);
|
||||||
// generate the keypair for the initial wallet
|
// generate the keypair for the initial wallet
|
||||||
let (wsk, wpk) = kp.generate_keypair(csprng);
|
let wsk = secp256k1::SecretKey::from_slice(&seckey1).unwrap();
|
||||||
|
let wpk = secp256k1::PublicKey::from_secret_key(&secp, &wsk);
|
||||||
// hash the wallet pub key
|
// hash the wallet pub key
|
||||||
let wpk_h = hash_pubkey_to_fr::<E>(&wpk);
|
let wpk_h = hash_pubkey_to_fr::<E>(&wpk);
|
||||||
channel_token.set_customer_pk(&pk_c);
|
channel_token.set_customer_pk(&pk_c);
|
||||||
|
@ -333,9 +340,14 @@ impl<E: Engine> CustomerState<E> {
|
||||||
// for channel pay
|
// for channel pay
|
||||||
pub fn generate_payment<R: Rng>(&self, csprng: &mut R, channel: &ChannelState<E>, amount: i64) -> (NIZKProof<E>, Commitment<E>, secp256k1::PublicKey, CustomerState<E>) {
|
pub fn generate_payment<R: Rng>(&self, csprng: &mut R, channel: &ChannelState<E>, amount: i64) -> (NIZKProof<E>, Commitment<E>, secp256k1::PublicKey, CustomerState<E>) {
|
||||||
// 1 - chooose new wpk/wsk pair
|
// 1 - chooose new wpk/wsk pair
|
||||||
let mut kp = secp256k1::Secp256k1::new();
|
let secp = secp256k1::Secp256k1::new();
|
||||||
kp.randomize(csprng);
|
|
||||||
let (new_wsk, new_wpk) = kp.generate_keypair(csprng);
|
let mut seckey = [0u8; 32];
|
||||||
|
csprng.fill_bytes(&mut seckey);
|
||||||
|
|
||||||
|
let new_wsk = secp256k1::SecretKey::from_slice(&seckey).unwrap();
|
||||||
|
let new_wpk = secp256k1::PublicKey::from_secret_key(&secp, &new_wsk);
|
||||||
|
// compute hash of the pubkey
|
||||||
let wpk_h = hash_pubkey_to_fr::<E>(&new_wpk);
|
let wpk_h = hash_pubkey_to_fr::<E>(&new_wpk);
|
||||||
|
|
||||||
// 2 - form new wallet and commitment
|
// 2 - form new wallet and commitment
|
||||||
|
@ -476,9 +488,14 @@ impl<E: Engine> MerchantState<E> {
|
||||||
pub fn new<R: Rng>(csprng: &mut R, channel: &mut ChannelState<E>, id: String) -> (Self, ChannelState<E>) {
|
pub fn new<R: Rng>(csprng: &mut R, channel: &mut ChannelState<E>, id: String) -> (Self, ChannelState<E>) {
|
||||||
let l = 5;
|
let l = 5;
|
||||||
// generate keys here
|
// generate keys here
|
||||||
let mut tx_kp = secp256k1::Secp256k1::new();
|
let secp = secp256k1::Secp256k1::new();
|
||||||
tx_kp.randomize(csprng);
|
// tx_kp.randomize(csprng);
|
||||||
let (wsk, wpk) = tx_kp.generate_keypair(csprng);
|
// let (wsk, wpk) = tx_kp.generate_keypair(csprng);
|
||||||
|
let mut seckey = [0u8; 32];
|
||||||
|
csprng.fill_bytes(&mut seckey);
|
||||||
|
let wsk = secp256k1::SecretKey::from_slice(&seckey).unwrap();
|
||||||
|
let wpk = secp256k1::PublicKey::from_secret_key(&secp, &wsk);
|
||||||
|
|
||||||
let mut ch = channel.clone();
|
let mut ch = channel.clone();
|
||||||
let nizkParams = NIZKSecretParams::<E>::setup(csprng, l);
|
let nizkParams = NIZKSecretParams::<E>::setup(csprng, l);
|
||||||
ch.cp = Some(ChannelParams::<E> { pub_params: nizkParams.pubParams.clone(), l, extra_verify: true });
|
ch.cp = Some(ChannelParams::<E> { pub_params: nizkParams.pubParams.clone(), l, extra_verify: true });
|
||||||
|
|
|
@ -21,7 +21,7 @@ extern crate test;
|
||||||
extern crate ff_bl as ff;
|
extern crate ff_bl as ff;
|
||||||
extern crate pairing_bl as pairing;
|
extern crate pairing_bl as pairing;
|
||||||
extern crate rand;
|
extern crate rand;
|
||||||
extern crate rand_core;
|
// extern crate rand_core;
|
||||||
|
|
||||||
extern crate secp256k1;
|
extern crate secp256k1;
|
||||||
extern crate time;
|
extern crate time;
|
||||||
|
|
Loading…
Reference in New Issue