reduce deps by not using rand pkg in secp256k1

This commit is contained in:
J. Ayo Akinyele 2019-12-06 22:46:45 -05:00
parent 70865a9f69
commit dd529f9871
5 changed files with 31 additions and 17 deletions

View File

@ -10,8 +10,7 @@ repository = "https://github.com/ZcashFoundation/libbolt"
license = "MIT License"
[dependencies]
rand = "0.6"
rand_core = "0.4.0"
rand = "0.7"
ff_bl = { git = "https://github.com/boltlabs-inc/ff", branch = "master" }
pairing_bl = { git = "https://github.com/boltlabs-inc/pairing", branch = "master", features = ["serde"] }
libc = "*"
@ -20,7 +19,7 @@ serde_json = "1.0"
serde_with = "1.0"
serde_bytes = "0.11.2"
time = "*"
secp256k1 = { version = "0.16.0", features = ["rand", "serde"] }
secp256k1 = { version = "0.16.0", features = ["serde"] }
sha2 = { version = "0.8", default-features = false }
hex = "0.3.2"

View File

@ -1,5 +1,4 @@
extern crate rand;
extern crate rand_core;
extern crate bolt;
extern crate ff_bl as ff;
extern crate pairing_bl as pairing;

View File

@ -1,5 +1,4 @@
extern crate rand;
extern crate rand_core;
extern crate bolt;
extern crate ff_bl as ff;
extern crate pairing_bl as pairing;

View File

@ -210,13 +210,20 @@ impl<E: Engine> CustomerState<E> {
<E as pairing::Engine>::G2: serde::Serialize,
<E as ff::ScalarEngine>::Fr: serde::Serialize
{
let mut kp = secp256k1::Secp256k1::new();
kp.randomize(csprng);
let secp = secp256k1::Secp256k1::new();
// generate the keypair for the channel
let (sk_c, pk_c) = kp.generate_keypair(csprng);
let mut seckey = [0u8; 32];
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
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
let wpk_h = hash_pubkey_to_fr::<E>(&wpk);
channel_token.set_customer_pk(&pk_c);
@ -333,9 +340,14 @@ impl<E: Engine> CustomerState<E> {
// 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>) {
// 1 - chooose new wpk/wsk pair
let mut kp = secp256k1::Secp256k1::new();
kp.randomize(csprng);
let (new_wsk, new_wpk) = kp.generate_keypair(csprng);
let secp = secp256k1::Secp256k1::new();
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);
// 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>) {
let l = 5;
// generate keys here
let mut tx_kp = secp256k1::Secp256k1::new();
tx_kp.randomize(csprng);
let (wsk, wpk) = tx_kp.generate_keypair(csprng);
let secp = secp256k1::Secp256k1::new();
// tx_kp.randomize(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 nizkParams = NIZKSecretParams::<E>::setup(csprng, l);
ch.cp = Some(ChannelParams::<E> { pub_params: nizkParams.pubParams.clone(), l, extra_verify: true });

View File

@ -21,7 +21,7 @@ extern crate test;
extern crate ff_bl as ff;
extern crate pairing_bl as pairing;
extern crate rand;
extern crate rand_core;
// extern crate rand_core;
extern crate secp256k1;
extern crate time;