diff --git a/Cargo.lock b/Cargo.lock index 670966e5e..ef4f552fe 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -57,7 +57,7 @@ name = "bellman" version = "0.1.0" dependencies = [ "bit-vec 0.4.4 (registry+https://github.com/rust-lang/crates.io-index)", - "blake2s_simd 0.5.5 (registry+https://github.com/rust-lang/crates.io-index)", + "blake2s_simd 0.5.6 (registry+https://github.com/rust-lang/crates.io-index)", "byteorder 1.3.2 (registry+https://github.com/rust-lang/crates.io-index)", "crossbeam 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)", "ff 0.4.0", @@ -313,7 +313,6 @@ dependencies = [ "pairing 0.14.2", "rand_core 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)", "rand_os 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", - "sapling-crypto 0.0.1", "zcash_primitives 0.0.0", "zcash_proofs 0.0.0", ] @@ -536,7 +535,6 @@ dependencies = [ "pairing 0.14.2", "rand_core 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)", "rand_xorshift 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", - "sapling-crypto 0.0.1", "zcash_primitives 0.0.0", ] @@ -546,18 +544,19 @@ version = "0.0.0" dependencies = [ "aes 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)", "blake2b_simd 0.5.6 (registry+https://github.com/rust-lang/crates.io-index)", + "blake2s_simd 0.5.6 (registry+https://github.com/rust-lang/crates.io-index)", "byteorder 1.3.2 (registry+https://github.com/rust-lang/crates.io-index)", "crypto_api_chachapoly 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", "ff 0.4.0", "fpe 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "hex 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)", + "hex-literal 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)", "lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)", "pairing 0.14.2", "rand 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", "rand_core 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)", "rand_os 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", "rand_xorshift 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", - "sapling-crypto 0.0.1", "sha2 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -574,7 +573,6 @@ dependencies = [ "rand_core 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)", "rand_os 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", "rand_xorshift 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", - "sapling-crypto 0.0.1", "zcash_primitives 0.0.0", ] diff --git a/librustzcash/Cargo.toml b/librustzcash/Cargo.toml index ffc38fa47..3256d14a2 100644 --- a/librustzcash/Cargo.toml +++ b/librustzcash/Cargo.toml @@ -24,6 +24,5 @@ lazy_static = "1" byteorder = "1" rand_core = "0.5" rand_os = "0.2" -sapling-crypto = { path = "../sapling-crypto" } zcash_primitives = { path = "../zcash_primitives" } zcash_proofs = { path = "../zcash_proofs" } diff --git a/librustzcash/src/rustzcash.rs b/librustzcash/src/rustzcash.rs index a05d8efe8..b1e0a30e9 100644 --- a/librustzcash/src/rustzcash.rs +++ b/librustzcash/src/rustzcash.rs @@ -7,7 +7,6 @@ extern crate libc; extern crate pairing; extern crate rand_core; extern crate rand_os; -extern crate sapling_crypto; extern crate zcash_primitives; extern crate zcash_proofs; @@ -16,7 +15,7 @@ extern crate lazy_static; use ff::{PrimeField, PrimeFieldRepr}; use pairing::bls12_381::{Bls12, Fr, FrRepr}; -use sapling_crypto::{ +use zcash_primitives::{ constants::CRH_IVK_PERSONALIZATION, jubjub::{ edwards, @@ -57,10 +56,12 @@ use std::ffi::OsString; #[cfg(target_os = "windows")] use std::os::windows::ffi::OsStringExt; -use sapling_crypto::primitives::{ProofGenerationKey, ViewingKey}; use zcash_primitives::{ merkle_tree::CommitmentTreeWitness, note_encryption::sapling_ka_agree, + primitives::{ + Diversifier, Note, PaymentAddress, ProofGenerationKey, ViewingKey, + }, redjubjub::{self, Signature}, sapling::{merkle_hash, spend_sig}, transaction::components::Amount, @@ -236,7 +237,7 @@ fn init_zksnark_params( #[no_mangle] pub extern "system" fn librustzcash_tree_uncommitted(result: *mut [c_uchar; 32]) { - let tmp = sapling_crypto::primitives::Note::::uncommitted().into_repr(); + let tmp = Note::::uncommitted().into_repr(); // Should be okay, caller is responsible for ensuring the pointer // is a valid pointer to 32 bytes that can be mutated. @@ -341,7 +342,7 @@ pub extern "system" fn librustzcash_crh_ivk( #[no_mangle] pub extern "system" fn librustzcash_check_diversifier(diversifier: *const [c_uchar; 11]) -> bool { - let diversifier = sapling_crypto::primitives::Diversifier(unsafe { *diversifier }); + let diversifier = Diversifier(unsafe { *diversifier }); diversifier.g_d::(&JUBJUB).is_some() } @@ -352,7 +353,7 @@ pub extern "system" fn librustzcash_ivk_to_pkd( result: *mut [c_uchar; 32], ) -> bool { let ivk = read_fs(unsafe { &*ivk }); - let diversifier = sapling_crypto::primitives::Diversifier(unsafe { *diversifier }); + let diversifier = Diversifier(unsafe { *diversifier }); if let Some(g_d) = diversifier.g_d::(&JUBJUB) { let pk_d = g_d.mul(ivk, &JUBJUB); @@ -407,8 +408,8 @@ fn priv_get_note( pk_d: *const [c_uchar; 32], value: u64, r: *const [c_uchar; 32], -) -> Result, ()> { - let diversifier = sapling_crypto::primitives::Diversifier(unsafe { *diversifier }); +) -> Result, ()> { + let diversifier = Diversifier(unsafe { *diversifier }); let g_d = match diversifier.g_d::(&JUBJUB) { Some(g_d) => g_d, None => return Err(()), @@ -430,7 +431,7 @@ fn priv_get_note( Err(_) => return Err(()), }; - let note = sapling_crypto::primitives::Note { + let note = Note { value, g_d, pk_d, @@ -539,7 +540,7 @@ pub extern "system" fn librustzcash_sapling_ka_derivepublic( esk: *const [c_uchar; 32], result: *mut [c_uchar; 32], ) -> bool { - let diversifier = sapling_crypto::primitives::Diversifier(unsafe { *diversifier }); + let diversifier = Diversifier(unsafe { *diversifier }); // Compute g_d from the diversifier let g_d = match diversifier.g_d::(&JUBJUB) { @@ -940,7 +941,7 @@ pub extern "system" fn librustzcash_sapling_output_proof( }; // Grab the diversifier from the caller. - let diversifier = sapling_crypto::primitives::Diversifier(unsafe { *diversifier }); + let diversifier = Diversifier(unsafe { *diversifier }); // Grab pk_d from the caller. let pk_d = match edwards::Point::::read(&(unsafe { &*pk_d })[..], &JUBJUB) { @@ -955,7 +956,7 @@ pub extern "system" fn librustzcash_sapling_output_proof( }; // Construct a payment address - let payment_address = sapling_crypto::primitives::PaymentAddress { + let payment_address = PaymentAddress { pk_d: pk_d, diversifier: diversifier, }; @@ -1086,7 +1087,7 @@ pub extern "system" fn librustzcash_sapling_spend_proof( }; // Grab the diversifier from the caller - let diversifier = sapling_crypto::primitives::Diversifier(unsafe { *diversifier }); + let diversifier = Diversifier(unsafe { *diversifier }); // The caller chooses the note randomness let rcm = match Fs::from_repr(read_fs(&(unsafe { &*rcm })[..])) { diff --git a/librustzcash/src/tests/key_agreement.rs b/librustzcash/src/tests/key_agreement.rs index 412ecc3e1..ab1cc8414 100644 --- a/librustzcash/src/tests/key_agreement.rs +++ b/librustzcash/src/tests/key_agreement.rs @@ -2,8 +2,8 @@ use ff::{PrimeField, PrimeFieldRepr}; use pairing::bls12_381::Bls12; use rand_core::RngCore; use rand_os::OsRng; -use sapling_crypto::jubjub::{edwards, JubjubBls12}; -use sapling_crypto::primitives::{Diversifier, ViewingKey}; +use zcash_primitives::jubjub::{edwards, JubjubBls12}; +use zcash_primitives::primitives::{Diversifier, ViewingKey}; use { librustzcash_sapling_generate_r, librustzcash_sapling_ka_agree, diff --git a/librustzcash/src/tests/key_components.rs b/librustzcash/src/tests/key_components.rs index 5f332e99e..99d3f524c 100644 --- a/librustzcash/src/tests/key_components.rs +++ b/librustzcash/src/tests/key_components.rs @@ -1,6 +1,6 @@ use ff::{PrimeField, PrimeFieldRepr}; use pairing::bls12_381::Bls12; -use sapling_crypto::{ +use zcash_primitives::{ jubjub::{fs::FsRepr, FixedGenerators, JubjubEngine, JubjubParams}, primitives::{Diversifier, ProofGenerationKey}, }; diff --git a/librustzcash/src/tests/mod.rs b/librustzcash/src/tests/mod.rs index a8cdcb794..dba738767 100644 --- a/librustzcash/src/tests/mod.rs +++ b/librustzcash/src/tests/mod.rs @@ -1,4 +1,4 @@ -use sapling_crypto::jubjub::{FixedGenerators, JubjubParams}; +use zcash_primitives::jubjub::{FixedGenerators, JubjubParams}; use super::JUBJUB; diff --git a/librustzcash/src/tests/signatures.rs b/librustzcash/src/tests/signatures.rs index 034b05a2a..68ac7997c 100644 --- a/librustzcash/src/tests/signatures.rs +++ b/librustzcash/src/tests/signatures.rs @@ -1,6 +1,6 @@ use ff::{PrimeField, PrimeFieldRepr}; use pairing::bls12_381::Bls12; -use sapling_crypto::jubjub::{FixedGenerators, JubjubEngine}; +use zcash_primitives::jubjub::{FixedGenerators, JubjubEngine}; use zcash_primitives::redjubjub::{PrivateKey, PublicKey, Signature}; use super::JUBJUB; diff --git a/sapling-crypto/src/lib.rs b/sapling-crypto/src/lib.rs index 4e944e098..af5dbb145 100644 --- a/sapling-crypto/src/lib.rs +++ b/sapling-crypto/src/lib.rs @@ -16,9 +16,3 @@ extern crate rand_xorshift; #[cfg(test)] extern crate sha2; - -pub mod jubjub; -pub mod group_hash; -pub mod pedersen_hash; -pub mod primitives; -pub mod constants; diff --git a/zcash_client_backend/Cargo.toml b/zcash_client_backend/Cargo.toml index 31fba497c..9996a4711 100644 --- a/zcash_client_backend/Cargo.toml +++ b/zcash_client_backend/Cargo.toml @@ -9,7 +9,6 @@ edition = "2018" [dependencies] bech32 = "0.7" pairing = { path = "../pairing" } -sapling-crypto = { path = "../sapling-crypto" } zcash_primitives = { path = "../zcash_primitives" } [dev-dependencies] diff --git a/zcash_client_backend/src/encoding.rs b/zcash_client_backend/src/encoding.rs index 0c0a50bcb..e84defa29 100644 --- a/zcash_client_backend/src/encoding.rs +++ b/zcash_client_backend/src/encoding.rs @@ -5,7 +5,7 @@ use bech32::{self, Error, FromBase32, ToBase32}; use pairing::bls12_381::Bls12; -use sapling_crypto::{ +use zcash_primitives::{ jubjub::edwards, primitives::{Diversifier, PaymentAddress}, }; @@ -98,15 +98,15 @@ pub fn decode_extended_full_viewing_key( /// use pairing::bls12_381::Bls12; /// use rand_core::SeedableRng; /// use rand_xorshift::XorShiftRng; -/// use sapling_crypto::{ -/// jubjub::edwards, -/// primitives::{Diversifier, PaymentAddress}, -/// }; /// use zcash_client_backend::{ /// constants::testnet::HRP_SAPLING_PAYMENT_ADDRESS, /// encoding::encode_payment_address, /// }; -/// use zcash_primitives::JUBJUB; +/// use zcash_primitives::{ +/// jubjub::edwards, +/// primitives::{Diversifier, PaymentAddress}, +/// JUBJUB, +/// }; /// /// let rng = &mut XorShiftRng::from_seed([ /// 0x59, 0x62, 0xbe, 0x3d, 0x76, 0x3d, 0x31, 0x8d, 0x17, 0xdb, 0x37, 0x32, 0x54, 0x06, @@ -138,15 +138,15 @@ pub fn encode_payment_address(hrp: &str, addr: &PaymentAddress) -> String /// use pairing::bls12_381::Bls12; /// use rand_core::SeedableRng; /// use rand_xorshift::XorShiftRng; -/// use sapling_crypto::{ -/// jubjub::edwards, -/// primitives::{Diversifier, PaymentAddress}, -/// }; /// use zcash_client_backend::{ /// constants::testnet::HRP_SAPLING_PAYMENT_ADDRESS, /// encoding::decode_payment_address, /// }; -/// use zcash_primitives::JUBJUB; +/// use zcash_primitives::{ +/// jubjub::edwards, +/// primitives::{Diversifier, PaymentAddress}, +/// JUBJUB, +/// }; /// /// let rng = &mut XorShiftRng::from_seed([ /// 0x59, 0x62, 0xbe, 0x3d, 0x76, 0x3d, 0x31, 0x8d, 0x17, 0xdb, 0x37, 0x32, 0x54, 0x06, @@ -187,7 +187,7 @@ mod tests { use pairing::bls12_381::Bls12; use rand_core::SeedableRng; use rand_xorshift::XorShiftRng; - use sapling_crypto::{ + use zcash_primitives::{ jubjub::edwards, primitives::{Diversifier, PaymentAddress}, }; diff --git a/zcash_primitives/Cargo.toml b/zcash_primitives/Cargo.toml index 49b1b7dde..b3173b7d2 100644 --- a/zcash_primitives/Cargo.toml +++ b/zcash_primitives/Cargo.toml @@ -8,6 +8,7 @@ authors = [ [dependencies] aes = "0.3" blake2b_simd = "0.5" +blake2s_simd = "0.5" byteorder = "1" crypto_api_chachapoly = "0.2.1" ff = { path = "../ff" } @@ -18,8 +19,8 @@ pairing = { path = "../pairing" } rand = "0.7" rand_core = "0.5" rand_os = "0.2" -sapling-crypto = { path = "../sapling-crypto" } sha2 = "0.8" [dev-dependencies] +hex-literal = "0.1" rand_xorshift = "0.2" diff --git a/sapling-crypto/benches/pedersen_hash.rs b/zcash_primitives/benches/pedersen_hash.rs similarity index 50% rename from sapling-crypto/benches/pedersen_hash.rs rename to zcash_primitives/benches/pedersen_hash.rs index c5968dec4..a8f944e26 100644 --- a/sapling-crypto/benches/pedersen_hash.rs +++ b/zcash_primitives/benches/pedersen_hash.rs @@ -1,20 +1,22 @@ #![feature(test)] -extern crate rand; +extern crate rand_core; +extern crate rand_os; extern crate test; extern crate pairing; -extern crate sapling_crypto; +extern crate zcash_primitives; -use rand::{Rand, thread_rng}; +use rand_core::RngCore; +use rand_os::OsRng; use pairing::bls12_381::Bls12; -use sapling_crypto::jubjub::JubjubBls12; -use sapling_crypto::pedersen_hash::{pedersen_hash, Personalization}; +use zcash_primitives::jubjub::JubjubBls12; +use zcash_primitives::pedersen_hash::{pedersen_hash, Personalization}; #[bench] fn bench_pedersen_hash(b: &mut test::Bencher) { let params = JubjubBls12::new(); - let rng = &mut thread_rng(); - let bits = (0..510).map(|_| bool::rand(rng)).collect::>(); + let rng = &mut OsRng; + let bits = (0..510).map(|_| (rng.next_u32() % 2) != 0).collect::>(); let personalization = Personalization::MerkleTree(31); b.iter(|| { diff --git a/sapling-crypto/src/constants.rs b/zcash_primitives/src/constants.rs similarity index 100% rename from sapling-crypto/src/constants.rs rename to zcash_primitives/src/constants.rs diff --git a/sapling-crypto/src/group_hash.rs b/zcash_primitives/src/group_hash.rs similarity index 100% rename from sapling-crypto/src/group_hash.rs rename to zcash_primitives/src/group_hash.rs diff --git a/sapling-crypto/src/jubjub/edwards.rs b/zcash_primitives/src/jubjub/edwards.rs similarity index 100% rename from sapling-crypto/src/jubjub/edwards.rs rename to zcash_primitives/src/jubjub/edwards.rs diff --git a/sapling-crypto/src/jubjub/fs.rs b/zcash_primitives/src/jubjub/fs.rs similarity index 100% rename from sapling-crypto/src/jubjub/fs.rs rename to zcash_primitives/src/jubjub/fs.rs diff --git a/sapling-crypto/src/jubjub/mod.rs b/zcash_primitives/src/jubjub/mod.rs similarity index 100% rename from sapling-crypto/src/jubjub/mod.rs rename to zcash_primitives/src/jubjub/mod.rs diff --git a/sapling-crypto/src/jubjub/montgomery.rs b/zcash_primitives/src/jubjub/montgomery.rs similarity index 100% rename from sapling-crypto/src/jubjub/montgomery.rs rename to zcash_primitives/src/jubjub/montgomery.rs diff --git a/sapling-crypto/src/jubjub/tests.rs b/zcash_primitives/src/jubjub/tests.rs similarity index 100% rename from sapling-crypto/src/jubjub/tests.rs rename to zcash_primitives/src/jubjub/tests.rs diff --git a/zcash_primitives/src/keys.rs b/zcash_primitives/src/keys.rs index fca31ed24..ae2c77afc 100644 --- a/zcash_primitives/src/keys.rs +++ b/zcash_primitives/src/keys.rs @@ -4,7 +4,7 @@ use blake2b_simd::{Hash as Blake2bHash, Params as Blake2bParams}; use ff::{PrimeField, PrimeFieldRepr}; -use sapling_crypto::{ +use crate::{ jubjub::{edwards, FixedGenerators, JubjubEngine, JubjubParams, ToUniform, Unknown}, primitives::{ProofGenerationKey, ViewingKey}, }; @@ -188,7 +188,7 @@ impl FullViewingKey { #[cfg(test)] mod tests { use pairing::bls12_381::Bls12; - use sapling_crypto::jubjub::{edwards, FixedGenerators, JubjubParams, PrimeOrder}; + use crate::jubjub::{edwards, FixedGenerators, JubjubParams, PrimeOrder}; use std::error::Error; use super::FullViewingKey; diff --git a/zcash_primitives/src/lib.rs b/zcash_primitives/src/lib.rs index 771f13d9a..1d4806ebe 100644 --- a/zcash_primitives/src/lib.rs +++ b/zcash_primitives/src/lib.rs @@ -3,6 +3,7 @@ extern crate lazy_static; extern crate aes; extern crate blake2b_simd; +extern crate blake2s_simd; extern crate byteorder; extern crate crypto_api_chachapoly; extern crate ff; @@ -12,19 +13,25 @@ extern crate pairing; extern crate rand; extern crate rand_core; extern crate rand_os; -extern crate sapling_crypto; extern crate sha2; +#[cfg(test)] +#[macro_use] +extern crate hex_literal; + #[cfg(test)] extern crate rand_xorshift; -use sapling_crypto::jubjub::JubjubBls12; - pub mod block; +pub mod constants; +pub mod group_hash; +pub mod jubjub; pub mod keys; pub mod legacy; pub mod merkle_tree; pub mod note_encryption; +pub mod pedersen_hash; +pub mod primitives; pub mod prover; pub mod redjubjub; pub mod sapling; @@ -36,6 +43,8 @@ pub mod zip32; #[cfg(test)] mod test_vectors; +use jubjub::JubjubBls12; + lazy_static! { pub static ref JUBJUB: JubjubBls12 = { JubjubBls12::new() }; } diff --git a/zcash_primitives/src/note_encryption.rs b/zcash_primitives/src/note_encryption.rs index d6b66ce8a..e6804cf66 100644 --- a/zcash_primitives/src/note_encryption.rs +++ b/zcash_primitives/src/note_encryption.rs @@ -6,7 +6,7 @@ use crypto_api_chachapoly::{ChaCha20Ietf, ChachaPolyIetf}; use ff::{PrimeField, PrimeFieldRepr}; use pairing::bls12_381::{Bls12, Fr}; use rand_core::{CryptoRng, RngCore}; -use sapling_crypto::{ +use crate::{ jubjub::{ edwards, fs::{Fs, FsRepr}, @@ -211,18 +211,16 @@ fn prf_ock( /// extern crate ff; /// extern crate pairing; /// extern crate rand_os; -/// extern crate sapling_crypto; +/// extern crate zcash_primitives; /// /// use ff::Field; /// use pairing::bls12_381::Bls12; /// use rand_os::OsRng; -/// use sapling_crypto::{ -/// jubjub::fs::Fs, -/// primitives::{Diversifier, PaymentAddress, ValueCommitment}, -/// }; /// use zcash_primitives::{ +/// jubjub::fs::Fs, /// keys::OutgoingViewingKey, /// note_encryption::{Memo, SaplingNoteEncryption}, +/// primitives::{Diversifier, PaymentAddress, ValueCommitment}, /// JUBJUB, /// }; /// @@ -551,7 +549,7 @@ mod tests { use pairing::bls12_381::{Bls12, Fr, FrRepr}; use rand_core::{CryptoRng, RngCore}; use rand_os::OsRng; - use sapling_crypto::{ + use crate::{ jubjub::{ edwards, fs::{Fs, FsRepr}, diff --git a/sapling-crypto/src/pedersen_hash.rs b/zcash_primitives/src/pedersen_hash.rs similarity index 100% rename from sapling-crypto/src/pedersen_hash.rs rename to zcash_primitives/src/pedersen_hash.rs diff --git a/sapling-crypto/src/primitives/mod.rs b/zcash_primitives/src/primitives.rs similarity index 100% rename from sapling-crypto/src/primitives/mod.rs rename to zcash_primitives/src/primitives.rs diff --git a/zcash_primitives/src/prover.rs b/zcash_primitives/src/prover.rs index a4af8d4d5..a434b4ea0 100644 --- a/zcash_primitives/src/prover.rs +++ b/zcash_primitives/src/prover.rs @@ -1,7 +1,7 @@ //! Abstractions over the proving system and parameters. use pairing::bls12_381::{Bls12, Fr}; -use sapling_crypto::{ +use crate::{ jubjub::{edwards, fs::Fs, Unknown}, primitives::{Diversifier, PaymentAddress, ProofGenerationKey}, }; @@ -75,7 +75,8 @@ pub(crate) mod mock { use ff::Field; use pairing::bls12_381::{Bls12, Fr}; use rand_os::OsRng; - use sapling_crypto::{ + + use crate::{ jubjub::{edwards, fs::Fs, FixedGenerators, Unknown}, primitives::{Diversifier, PaymentAddress, ProofGenerationKey, ValueCommitment}, }; diff --git a/zcash_primitives/src/redjubjub.rs b/zcash_primitives/src/redjubjub.rs index 955c7e39a..b7094191a 100644 --- a/zcash_primitives/src/redjubjub.rs +++ b/zcash_primitives/src/redjubjub.rs @@ -3,7 +3,7 @@ use ff::{Field, PrimeField, PrimeFieldRepr}; use rand_core::RngCore; -use sapling_crypto::jubjub::{ +use crate::jubjub::{ edwards::Point, FixedGenerators, JubjubEngine, JubjubParams, Unknown, }; use std::io::{self, Read, Write}; @@ -210,7 +210,8 @@ mod tests { use pairing::bls12_381::Bls12; use rand_core::SeedableRng; use rand_xorshift::XorShiftRng; - use sapling_crypto::jubjub::{edwards, fs::Fs, JubjubBls12}; + + use crate::jubjub::{edwards, fs::Fs, JubjubBls12}; use super::*; diff --git a/zcash_primitives/src/sapling.rs b/zcash_primitives/src/sapling.rs index 0b94e4ecb..4590c79b2 100644 --- a/zcash_primitives/src/sapling.rs +++ b/zcash_primitives/src/sapling.rs @@ -3,7 +3,7 @@ use ff::{BitIterator, PrimeField, PrimeFieldRepr}; use pairing::bls12_381::{Bls12, Fr, FrRepr}; use rand_core::{CryptoRng, RngCore}; -use sapling_crypto::{ +use crate::{ jubjub::{fs::Fs, FixedGenerators, JubjubBls12}, pedersen_hash::{pedersen_hash, Personalization}, primitives::Note, diff --git a/zcash_primitives/src/transaction/builder.rs b/zcash_primitives/src/transaction/builder.rs index 792582d06..f32af7a14 100644 --- a/zcash_primitives/src/transaction/builder.rs +++ b/zcash_primitives/src/transaction/builder.rs @@ -3,7 +3,7 @@ use ff::Field; use pairing::bls12_381::{Bls12, Fr}; use rand::{rngs::OsRng, seq::SliceRandom, CryptoRng, RngCore}; -use sapling_crypto::{ +use crate::{ jubjub::fs::Fs, primitives::{Diversifier, Note, PaymentAddress}, }; @@ -534,7 +534,8 @@ impl Builder { mod tests { use ff::{Field, PrimeField}; use rand::rngs::OsRng; - use sapling_crypto::jubjub::fs::Fs; + + use crate::jubjub::fs::Fs; use super::{Builder, Error}; use crate::{ diff --git a/zcash_primitives/src/transaction/components.rs b/zcash_primitives/src/transaction/components.rs index 178534456..c8cfadc08 100644 --- a/zcash_primitives/src/transaction/components.rs +++ b/zcash_primitives/src/transaction/components.rs @@ -1,7 +1,7 @@ use byteorder::{LittleEndian, ReadBytesExt, WriteBytesExt}; use ff::{PrimeField, PrimeFieldRepr}; use pairing::bls12_381::{Bls12, Fr, FrRepr}; -use sapling_crypto::jubjub::{edwards, Unknown}; +use crate::jubjub::{edwards, Unknown}; use std::io::{self, Read, Write}; use legacy::Script; diff --git a/zcash_primitives/src/transaction/tests.rs b/zcash_primitives/src/transaction/tests.rs index 041ac219a..7c770c593 100644 --- a/zcash_primitives/src/transaction/tests.rs +++ b/zcash_primitives/src/transaction/tests.rs @@ -1,7 +1,8 @@ use ff::Field; use pairing::bls12_381::Bls12; use rand_os::OsRng; -use sapling_crypto::jubjub::{fs::Fs, FixedGenerators}; + +use crate::jubjub::{fs::Fs, FixedGenerators}; use super::{components::Amount, sighash::signature_hash, Transaction, TransactionData}; use legacy::Script; diff --git a/zcash_primitives/src/util.rs b/zcash_primitives/src/util.rs index f46e0a21c..1fdcde750 100644 --- a/zcash_primitives/src/util.rs +++ b/zcash_primitives/src/util.rs @@ -1,5 +1,6 @@ use blake2b_simd::Params; -use sapling_crypto::jubjub::{JubjubEngine, ToUniform}; + +use crate::jubjub::{JubjubEngine, ToUniform}; pub fn hash_to_scalar(persona: &[u8], a: &[u8], b: &[u8]) -> E::Fs { let mut hasher = Params::new().hash_length(64).personal(persona).to_state(); diff --git a/zcash_primitives/src/zip32.rs b/zcash_primitives/src/zip32.rs index 0c60cf238..44b55f569 100644 --- a/zcash_primitives/src/zip32.rs +++ b/zcash_primitives/src/zip32.rs @@ -4,7 +4,8 @@ use byteorder::{ByteOrder, LittleEndian, ReadBytesExt, WriteBytesExt}; use ff::Field; use fpe::ff1::{BinaryNumeralString, FF1}; use pairing::bls12_381::Bls12; -use sapling_crypto::{ + +use crate::{ jubjub::{fs::Fs, FixedGenerators, JubjubEngine, JubjubParams, ToUniform}, primitives::{Diversifier, PaymentAddress, ViewingKey}, }; diff --git a/zcash_proofs/Cargo.toml b/zcash_proofs/Cargo.toml index fdb0bf8e6..b7fa65995 100644 --- a/zcash_proofs/Cargo.toml +++ b/zcash_proofs/Cargo.toml @@ -13,7 +13,6 @@ directories = { version = "1", optional = true } ff = { path = "../ff" } pairing = { path = "../pairing" } rand_os = "0.2" -sapling-crypto = { path = "../sapling-crypto" } zcash_primitives = { path = "../zcash_primitives" } [dev-dependencies] diff --git a/zcash_proofs/examples/bench.rs b/zcash_proofs/examples/bench.rs index 9adf028de..a187ec680 100644 --- a/zcash_proofs/examples/bench.rs +++ b/zcash_proofs/examples/bench.rs @@ -1,14 +1,14 @@ extern crate ff; -extern crate sapling_crypto; extern crate bellman; extern crate pairing; extern crate rand_core; extern crate rand_xorshift; +extern crate zcash_primitives; extern crate zcash_proofs; use ff::Field; use std::time::{Duration, Instant}; -use sapling_crypto::jubjub::{ +use zcash_primitives::jubjub::{ JubjubBls12, edwards, fs, @@ -16,7 +16,7 @@ use sapling_crypto::jubjub::{ use zcash_proofs::circuit::sapling::{ Spend }; -use sapling_crypto::primitives::{ +use zcash_primitives::primitives::{ Diversifier, ProofGenerationKey, ValueCommitment diff --git a/zcash_proofs/src/circuit/ecc.rs b/zcash_proofs/src/circuit/ecc.rs index cb11eb6c9..593c57d24 100644 --- a/zcash_proofs/src/circuit/ecc.rs +++ b/zcash_proofs/src/circuit/ecc.rs @@ -15,7 +15,7 @@ use bellman::gadgets::num::{ Num }; -use sapling_crypto::jubjub::{ +use zcash_primitives::jubjub::{ edwards, JubjubEngine, JubjubParams, @@ -754,14 +754,14 @@ mod test { use rand_xorshift::XorShiftRng; use bellman::gadgets::test::*; - use sapling_crypto::jubjub::{ + use zcash_primitives::jubjub::{ montgomery, edwards, JubjubBls12, JubjubParams, FixedGenerators }; - use sapling_crypto::jubjub::fs::Fs; + use zcash_primitives::jubjub::fs::Fs; use super::{ MontgomeryPoint, diff --git a/zcash_proofs/src/circuit/pedersen_hash.rs b/zcash_proofs/src/circuit/pedersen_hash.rs index 30a948f44..0b6759719 100644 --- a/zcash_proofs/src/circuit/pedersen_hash.rs +++ b/zcash_proofs/src/circuit/pedersen_hash.rs @@ -3,12 +3,12 @@ use super::ecc::{ EdwardsPoint }; use bellman::gadgets::boolean::Boolean; -use sapling_crypto::jubjub::*; +use zcash_primitives::jubjub::*; use bellman::{ ConstraintSystem, SynthesisError }; use bellman::gadgets::lookup::*; -pub use sapling_crypto::pedersen_hash::Personalization; +pub use zcash_primitives::pedersen_hash::Personalization; fn get_constant_bools(person: &Personalization) -> Vec { person.get_bits() @@ -112,7 +112,7 @@ mod test { use super::*; use bellman::gadgets::test::*; use bellman::gadgets::boolean::{Boolean, AllocatedBit}; - use sapling_crypto::pedersen_hash; + use zcash_primitives::pedersen_hash; use ff::PrimeField; use pairing::bls12_381::{Bls12, Fr}; use rand_core::{RngCore, SeedableRng}; diff --git a/zcash_proofs/src/circuit/sapling.rs b/zcash_proofs/src/circuit/sapling.rs index e38124091..1349c8cf8 100644 --- a/zcash_proofs/src/circuit/sapling.rs +++ b/zcash_proofs/src/circuit/sapling.rs @@ -6,14 +6,14 @@ use bellman::{ Circuit }; -use sapling_crypto::jubjub::{ +use zcash_primitives::jubjub::{ JubjubEngine, FixedGenerators }; -use sapling_crypto::constants; +use zcash_primitives::constants; -use sapling_crypto::primitives::{ +use zcash_primitives::primitives::{ ValueCommitment, ProofGenerationKey, PaymentAddress @@ -603,7 +603,7 @@ fn test_input_circuit_with_bls12_381() { use pairing::bls12_381::*; use rand_core::{RngCore, SeedableRng}; use rand_xorshift::XorShiftRng; - use sapling_crypto::{ + use zcash_primitives::{ jubjub::{JubjubBls12, fs, edwards}, pedersen_hash, primitives::{Diversifier, Note, ProofGenerationKey}, @@ -747,7 +747,7 @@ fn test_output_circuit_with_bls12_381() { use pairing::bls12_381::*; use rand_core::{RngCore, SeedableRng}; use rand_xorshift::XorShiftRng; - use sapling_crypto::{ + use zcash_primitives::{ jubjub::{JubjubBls12, fs, edwards}, primitives::{Diversifier, ProofGenerationKey}, }; diff --git a/zcash_proofs/src/lib.rs b/zcash_proofs/src/lib.rs index 2a3c8f291..385148184 100644 --- a/zcash_proofs/src/lib.rs +++ b/zcash_proofs/src/lib.rs @@ -4,7 +4,6 @@ extern crate byteorder; extern crate ff; extern crate pairing; extern crate rand_os; -extern crate sapling_crypto; extern crate zcash_primitives; #[cfg(feature = "local-prover")] diff --git a/zcash_proofs/src/prover.rs b/zcash_proofs/src/prover.rs index c59ba621a..1c1a972cb 100644 --- a/zcash_proofs/src/prover.rs +++ b/zcash_proofs/src/prover.rs @@ -3,7 +3,7 @@ use bellman::groth16::{Parameters, PreparedVerifyingKey}; use directories::BaseDirs; use pairing::bls12_381::{Bls12, Fr}; -use sapling_crypto::{ +use zcash_primitives::{ jubjub::{edwards, fs::Fs, Unknown}, primitives::{Diversifier, PaymentAddress, ProofGenerationKey}, }; diff --git a/zcash_proofs/src/sapling/mod.rs b/zcash_proofs/src/sapling/mod.rs index 98c4ba3e6..9aa62f14c 100644 --- a/zcash_proofs/src/sapling/mod.rs +++ b/zcash_proofs/src/sapling/mod.rs @@ -1,5 +1,5 @@ use pairing::bls12_381::Bls12; -use sapling_crypto::jubjub::{ +use zcash_primitives::jubjub::{ edwards, fs::FsRepr, FixedGenerators, JubjubBls12, JubjubParams, Unknown, }; use zcash_primitives::transaction::components::Amount; diff --git a/zcash_proofs/src/sapling/prover.rs b/zcash_proofs/src/sapling/prover.rs index 7ca8bcede..e91417157 100644 --- a/zcash_proofs/src/sapling/prover.rs +++ b/zcash_proofs/src/sapling/prover.rs @@ -7,7 +7,7 @@ use bellman::{ use ff::Field; use pairing::bls12_381::{Bls12, Fr}; use rand_os::OsRng; -use sapling_crypto::{ +use zcash_primitives::{ jubjub::{edwards, fs::Fs, FixedGenerators, JubjubBls12, Unknown}, primitives::{Diversifier, Note, PaymentAddress, ProofGenerationKey, ValueCommitment}, }; diff --git a/zcash_proofs/src/sapling/verifier.rs b/zcash_proofs/src/sapling/verifier.rs index 01cba0c53..080102302 100644 --- a/zcash_proofs/src/sapling/verifier.rs +++ b/zcash_proofs/src/sapling/verifier.rs @@ -4,7 +4,7 @@ use bellman::{ }; use ff::Field; use pairing::bls12_381::{Bls12, Fr}; -use sapling_crypto::jubjub::{edwards, FixedGenerators, JubjubBls12, Unknown}; +use zcash_primitives::jubjub::{edwards, FixedGenerators, JubjubBls12, Unknown}; use zcash_primitives::{ redjubjub::{PublicKey, Signature}, transaction::components::Amount,