From 09a20aacfe9f937f81b4b3389ff929367a76c1d6 Mon Sep 17 00:00:00 2001 From: Jack Grigg Date: Fri, 14 Sep 2018 09:00:27 +0100 Subject: [PATCH] Make zcash_primitives::JUBJUB the canonical instantiation of JubjubBls12 --- Cargo.lock | 2 +- librustzcash/src/rustzcash.rs | 9 ++------- zcash_primitives/src/lib.rs | 2 +- zip32/Cargo.toml | 2 +- zip32/src/lib.rs | 12 +++--------- 5 files changed, 8 insertions(+), 19 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 3870758..e6214b0 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -466,9 +466,9 @@ dependencies = [ "byteorder 1.2.2 (registry+https://github.com/rust-lang/crates.io-index)", "ff 0.4.0", "fpe 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", - "lazy_static 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)", "pairing 0.14.2", "sapling-crypto 0.0.1", + "zcash_primitives 0.0.0", ] [metadata] diff --git a/librustzcash/src/rustzcash.rs b/librustzcash/src/rustzcash.rs index 29df19f..e889a4b 100644 --- a/librustzcash/src/rustzcash.rs +++ b/librustzcash/src/rustzcash.rs @@ -12,7 +12,6 @@ extern crate zip32; mod hashreader; -#[macro_use] extern crate lazy_static; use ff::{BitIterator, PrimeField, PrimeFieldRepr}; @@ -24,7 +23,7 @@ use sapling_crypto::{ jubjub::{ edwards, fs::{Fs, FsRepr}, - FixedGenerators, JubjubBls12, JubjubEngine, JubjubParams, PrimeOrder, ToUniform, Unknown, + FixedGenerators, JubjubEngine, JubjubParams, PrimeOrder, ToUniform, Unknown, }, pedersen_hash::{pedersen_hash, Personalization}, redjubjub::{self, Signature}, @@ -62,7 +61,7 @@ use std::ffi::OsString; use std::os::windows::ffi::OsStringExt; use sapling_crypto::primitives::{ProofGenerationKey, ViewingKey}; -use zcash_primitives::sapling::spend_sig; +use zcash_primitives::{sapling::spend_sig, JUBJUB}; use zcash_proofs::sapling::{ CommitmentTreeWitness, SaplingProvingContext, SaplingVerificationContext, }; @@ -72,10 +71,6 @@ pub mod equihash; #[cfg(test)] mod tests; -lazy_static! { - static ref JUBJUB: JubjubBls12 = { JubjubBls12::new() }; -} - static mut SAPLING_SPEND_VK: Option> = None; static mut SAPLING_OUTPUT_VK: Option> = None; static mut SPROUT_GROTH16_VK: Option> = None; diff --git a/zcash_primitives/src/lib.rs b/zcash_primitives/src/lib.rs index e053e50..2475209 100644 --- a/zcash_primitives/src/lib.rs +++ b/zcash_primitives/src/lib.rs @@ -15,5 +15,5 @@ mod serialize; pub mod transaction; lazy_static! { - static ref JUBJUB: JubjubBls12 = { JubjubBls12::new() }; + pub static ref JUBJUB: JubjubBls12 = { JubjubBls12::new() }; } diff --git a/zip32/Cargo.toml b/zip32/Cargo.toml index 0cee23d..05923c8 100644 --- a/zip32/Cargo.toml +++ b/zip32/Cargo.toml @@ -16,9 +16,9 @@ aes = "0.2" byteorder = "1" ff = { path = "../ff" } fpe = "0.1" -lazy_static = "1.0" pairing = { path = "../pairing" } sapling-crypto = { path = "../sapling-crypto" } +zcash_primitives = { path = "../zcash_primitives" } [dependencies.blake2-rfc] git = "https://github.com/gtank/blake2-rfc" diff --git a/zip32/src/lib.rs b/zip32/src/lib.rs index f26ccad..1543e62 100644 --- a/zip32/src/lib.rs +++ b/zip32/src/lib.rs @@ -3,10 +3,9 @@ extern crate blake2_rfc; extern crate byteorder; extern crate ff; extern crate fpe; -#[macro_use] -extern crate lazy_static; extern crate pairing; extern crate sapling_crypto; +extern crate zcash_primitives; use aes::Aes256; use blake2_rfc::blake2b::{Blake2b, Blake2bResult}; @@ -15,16 +14,11 @@ use ff::{Field, PrimeField, PrimeFieldRepr}; use fpe::ff1::{BinaryNumeralString, FF1}; use pairing::bls12_381::Bls12; use sapling_crypto::{ - jubjub::{ - edwards, FixedGenerators, JubjubBls12, JubjubEngine, JubjubParams, ToUniform, Unknown, - }, + jubjub::{edwards, FixedGenerators, JubjubEngine, JubjubParams, ToUniform, Unknown}, primitives::{Diversifier, PaymentAddress, ViewingKey}, }; use std::io::{self, Read, Write}; - -lazy_static! { - static ref JUBJUB: JubjubBls12 = { JubjubBls12::new() }; -} +use zcash_primitives::JUBJUB; pub const PRF_EXPAND_PERSONALIZATION: &'static [u8; 16] = b"Zcash_ExpandSeed"; pub const ZIP32_SAPLING_MASTER_PERSONALIZATION: &'static [u8; 16] = b"ZcashIP32Sapling";