Auto merge of #4682 - str4d:rust-crate-updates, r=str4d
Rust crate updates
This commit is contained in:
commit
494f0341a8
File diff suppressed because it is too large
Load Diff
14
Cargo.toml
14
Cargo.toml
|
@ -20,20 +20,20 @@ path = "src/rust/src/rustzcash.rs"
|
|||
crate-type = ["staticlib"]
|
||||
|
||||
[dependencies]
|
||||
bellman = "0.6"
|
||||
blake2b_simd = "0.5"
|
||||
bellman = "0.7"
|
||||
blake2s_simd = "0.5"
|
||||
ff = "0.6"
|
||||
bls12_381 = "0.2"
|
||||
group = "0.7"
|
||||
libc = "0.2"
|
||||
pairing = "0.16"
|
||||
lazy_static = "1"
|
||||
jubjub = "0.4"
|
||||
subtle = "2.2"
|
||||
rand_core = "0.5.1"
|
||||
tracing = "0.1"
|
||||
tracing-core = "0.1"
|
||||
tracing-appender = "0.1"
|
||||
zcash_history = "0.2"
|
||||
zcash_primitives = "0.2"
|
||||
zcash_proofs = "0.2"
|
||||
zcash_primitives = "0.3"
|
||||
zcash_proofs = "0.3"
|
||||
ed25519-zebra = "2.0.0"
|
||||
|
||||
[dependencies.tracing-subscriber]
|
||||
|
|
|
@ -1,9 +1,9 @@
|
|||
package=crate_nodrop
|
||||
$(package)_crate_name=nodrop
|
||||
$(package)_version=0.1.13
|
||||
package=crate_addchain
|
||||
$(package)_crate_name=addchain
|
||||
$(package)_version=0.2.0
|
||||
$(package)_download_path=https://static.crates.io/crates/$($(package)_crate_name)
|
||||
$(package)_file_name=$($(package)_crate_name)-$($(package)_version).crate
|
||||
$(package)_sha256_hash=2f9667ddcc6cc8a43afc9b7917599d7216aa09c463919ea32c59ed6cac8bc945
|
||||
$(package)_sha256_hash=3b2e69442aa5628ea6951fa33e24efe8313f4321a91bd729fc2f75bdfc858570
|
||||
$(package)_crate_versioned_name=$($(package)_crate_name)
|
||||
|
||||
define $(package)_preprocess_cmds
|
|
@ -1,9 +1,9 @@
|
|||
package=crate_aes
|
||||
$(package)_crate_name=aes
|
||||
$(package)_version=0.3.2
|
||||
$(package)_version=0.5.0
|
||||
$(package)_download_path=https://static.crates.io/crates/$($(package)_crate_name)
|
||||
$(package)_file_name=$($(package)_crate_name)-$($(package)_version).crate
|
||||
$(package)_sha256_hash=54eb1d8fe354e5fc611daf4f2ea97dd45a765f4f1e4512306ec183ae2e8f20c9
|
||||
$(package)_sha256_hash=dd2bc6d3f370b5666245ff421e231cba4353df936e26986d2918e61a8fd6aef6
|
||||
$(package)_crate_versioned_name=$($(package)_crate_name)
|
||||
|
||||
define $(package)_preprocess_cmds
|
||||
|
|
|
@ -1,9 +1,9 @@
|
|||
package=crate_aes_soft
|
||||
$(package)_crate_name=aes-soft
|
||||
$(package)_version=0.3.3
|
||||
$(package)_version=0.5.0
|
||||
$(package)_download_path=https://static.crates.io/crates/$($(package)_crate_name)
|
||||
$(package)_file_name=$($(package)_crate_name)-$($(package)_version).crate
|
||||
$(package)_sha256_hash=cfd7e7ae3f9a1fb5c03b389fc6bb9a51400d0c13053f0dca698c832bfd893a0d
|
||||
$(package)_sha256_hash=63dd91889c49327ad7ef3b500fd1109dbd3c509a03db0d4a9ce413b79f575cb6
|
||||
$(package)_crate_versioned_name=$($(package)_crate_name)
|
||||
|
||||
define $(package)_preprocess_cmds
|
||||
|
|
|
@ -1,9 +1,9 @@
|
|||
package=crate_aesni
|
||||
$(package)_crate_name=aesni
|
||||
$(package)_version=0.6.0
|
||||
$(package)_version=0.8.0
|
||||
$(package)_download_path=https://static.crates.io/crates/$($(package)_crate_name)
|
||||
$(package)_file_name=$($(package)_crate_name)-$($(package)_version).crate
|
||||
$(package)_sha256_hash=2f70a6b5f971e473091ab7cfb5ffac6cde81666c4556751d8d5620ead8abf100
|
||||
$(package)_sha256_hash=0a6fe808308bb07d393e2ea47780043ec47683fcf19cf5efc8ca51c50cc8c68a
|
||||
$(package)_crate_versioned_name=$($(package)_crate_name)
|
||||
|
||||
define $(package)_preprocess_cmds
|
||||
|
|
|
@ -1,9 +1,9 @@
|
|||
package=crate_arrayref
|
||||
$(package)_crate_name=arrayref
|
||||
$(package)_version=0.3.5
|
||||
$(package)_version=0.3.6
|
||||
$(package)_download_path=https://static.crates.io/crates/$($(package)_crate_name)
|
||||
$(package)_file_name=$($(package)_crate_name)-$($(package)_version).crate
|
||||
$(package)_sha256_hash=0d382e583f07208808f6b1249e60848879ba3543f57c32277bf52d69c2f0f0ee
|
||||
$(package)_sha256_hash=a4c527152e37cf757a3f78aae5a06fbeefdb07ccc535c980a3208ee3060dd544
|
||||
$(package)_crate_versioned_name=$($(package)_crate_name)
|
||||
|
||||
define $(package)_preprocess_cmds
|
||||
|
|
|
@ -1,9 +1,9 @@
|
|||
package=crate_arrayvec
|
||||
$(package)_crate_name=arrayvec
|
||||
$(package)_version=0.4.11
|
||||
$(package)_version=0.5.1
|
||||
$(package)_download_path=https://static.crates.io/crates/$($(package)_crate_name)
|
||||
$(package)_file_name=$($(package)_crate_name)-$($(package)_version).crate
|
||||
$(package)_sha256_hash=b8d73f9beda665eaa98ab9e4f7442bd4e7de6652587de55b2525e52e29c1b0ba
|
||||
$(package)_sha256_hash=cff77d8686867eceff3105329d4698d96c2391c176d5d03adc90c7389162b5b8
|
||||
$(package)_crate_versioned_name=$($(package)_crate_name)
|
||||
|
||||
define $(package)_preprocess_cmds
|
||||
|
|
|
@ -1,9 +1,9 @@
|
|||
package=crate_autocfg
|
||||
$(package)_crate_name=autocfg
|
||||
$(package)_version=1.0.0
|
||||
$(package)_version=1.0.1
|
||||
$(package)_download_path=https://static.crates.io/crates/$($(package)_crate_name)
|
||||
$(package)_file_name=$($(package)_crate_name)-$($(package)_version).crate
|
||||
$(package)_sha256_hash=f8aac770f1885fd7e387acedd76065302551364496e46b3dd00860b2f8359b9d
|
||||
$(package)_sha256_hash=cdb031dd78e28731d87d56cc8ffef4a8f36ca26c38fe2de700543e627f8a464a
|
||||
$(package)_crate_versioned_name=$($(package)_crate_name)
|
||||
|
||||
define $(package)_preprocess_cmds
|
||||
|
|
|
@ -1,15 +0,0 @@
|
|||
package=crate_autocfg
|
||||
$(package)_crate_name=autocfg
|
||||
$(package)_version=0.1.6
|
||||
$(package)_download_path=https://static.crates.io/crates/$($(package)_crate_name)
|
||||
$(package)_file_name=$($(package)_crate_name)-$($(package)_version).crate
|
||||
$(package)_sha256_hash=b671c8fb71b457dd4ae18c4ba1e59aa81793daacc361d82fcd410cef0d491875
|
||||
$(package)_crate_versioned_name=$($(package)_crate_name)-$($(package)_version)
|
||||
|
||||
define $(package)_preprocess_cmds
|
||||
$(call generate_crate_checksum,$(package))
|
||||
endef
|
||||
|
||||
define $(package)_stage_cmds
|
||||
$(call vendor_crate_source,$(package))
|
||||
endef
|
|
@ -1,9 +1,9 @@
|
|||
package=crate_semver
|
||||
$(package)_crate_name=semver
|
||||
$(package)_version=0.9.0
|
||||
package=crate_base64
|
||||
$(package)_crate_name=base64
|
||||
$(package)_version=0.11.0
|
||||
$(package)_download_path=https://static.crates.io/crates/$($(package)_crate_name)
|
||||
$(package)_file_name=$($(package)_crate_name)-$($(package)_version).crate
|
||||
$(package)_sha256_hash=1d7eb9ef2c18661902cc47e535f9bc51b78acd254da71d375c2f6720d9a40403
|
||||
$(package)_sha256_hash=b41b7ea54a0c9d92199de89e20e58d49f02f8e699814ef3fdf266f6f748d15c7
|
||||
$(package)_crate_versioned_name=$($(package)_crate_name)
|
||||
|
||||
define $(package)_preprocess_cmds
|
|
@ -1,9 +1,9 @@
|
|||
package=crate_bellman
|
||||
$(package)_crate_name=bellman
|
||||
$(package)_version=0.6.0
|
||||
$(package)_version=0.7.0
|
||||
$(package)_download_path=https://static.crates.io/crates/$($(package)_crate_name)
|
||||
$(package)_file_name=$($(package)_crate_name)-$($(package)_version).crate
|
||||
$(package)_sha256_hash=2be536193834affcd8a6d362963e66dec8c6bca4d2009f5bac55ec9002776ff2
|
||||
$(package)_sha256_hash=5768c9425f64656561f5cf2442df39f808cb762dfdc73d8f0647122d33e2c340
|
||||
$(package)_crate_versioned_name=$($(package)_crate_name)
|
||||
|
||||
define $(package)_preprocess_cmds
|
||||
|
|
|
@ -1,9 +1,9 @@
|
|||
package=crate_bigint
|
||||
$(package)_crate_name=bigint
|
||||
$(package)_version=4.4.1
|
||||
$(package)_version=4.4.3
|
||||
$(package)_download_path=https://static.crates.io/crates/$($(package)_crate_name)
|
||||
$(package)_file_name=$($(package)_crate_name)-$($(package)_version).crate
|
||||
$(package)_sha256_hash=ebecac13b3c745150d7b6c3ea7572d372f09d627c2077e893bf26c5c7f70d282
|
||||
$(package)_sha256_hash=c0e8c8a600052b52482eff2cf4d810e462fdff1f656ac1ecb6232132a1ed7def
|
||||
$(package)_crate_versioned_name=$($(package)_crate_name)
|
||||
|
||||
define $(package)_preprocess_cmds
|
||||
|
|
|
@ -1,9 +1,9 @@
|
|||
package=crate_bit_vec
|
||||
$(package)_crate_name=bit-vec
|
||||
$(package)_version=0.4.4
|
||||
$(package)_version=0.6.2
|
||||
$(package)_download_path=https://static.crates.io/crates/$($(package)_crate_name)
|
||||
$(package)_file_name=$($(package)_crate_name)-$($(package)_version).crate
|
||||
$(package)_sha256_hash=02b4ff8b16e6076c3e14220b39fbc1fabb6737522281a388998046859400895f
|
||||
$(package)_sha256_hash=5f0dc55f2d8a1a85650ac47858bb001b4c0dd73d79e3c455a842925e68d29cd3
|
||||
$(package)_crate_versioned_name=$($(package)_crate_name)
|
||||
|
||||
define $(package)_preprocess_cmds
|
||||
|
|
|
@ -1,9 +1,9 @@
|
|||
package=crate_blake2b_simd
|
||||
$(package)_crate_name=blake2b_simd
|
||||
$(package)_version=0.5.8
|
||||
$(package)_version=0.5.10
|
||||
$(package)_download_path=https://static.crates.io/crates/$($(package)_crate_name)
|
||||
$(package)_file_name=$($(package)_crate_name)-$($(package)_version).crate
|
||||
$(package)_sha256_hash=5850aeee1552f495dd0250014cf64b82b7c8879a89d83b33bbdace2cc4f63182
|
||||
$(package)_sha256_hash=d8fb2d74254a3a0b5cac33ac9f8ed0e44aa50378d9dbb2e5d83bd21ed1dc2c8a
|
||||
$(package)_crate_versioned_name=$($(package)_crate_name)
|
||||
|
||||
define $(package)_preprocess_cmds
|
||||
|
|
|
@ -1,9 +1,9 @@
|
|||
package=crate_blake2s_simd
|
||||
$(package)_crate_name=blake2s_simd
|
||||
$(package)_version=0.5.8
|
||||
$(package)_version=0.5.10
|
||||
$(package)_download_path=https://static.crates.io/crates/$($(package)_crate_name)
|
||||
$(package)_file_name=$($(package)_crate_name)-$($(package)_version).crate
|
||||
$(package)_sha256_hash=979da0ce13c897d6be19e005ea77ac12b0fea0157aeeee7feb8c49f91386f0ea
|
||||
$(package)_sha256_hash=ab9e07352b829279624ceb7c64adb4f585dacdb81d35cafae81139ccd617cf44
|
||||
$(package)_crate_versioned_name=$($(package)_crate_name)
|
||||
|
||||
define $(package)_preprocess_cmds
|
||||
|
|
|
@ -1,9 +1,9 @@
|
|||
package=crate_block_buffer
|
||||
$(package)_crate_name=block-buffer
|
||||
$(package)_version=0.7.3
|
||||
$(package)_version=0.9.0
|
||||
$(package)_download_path=https://static.crates.io/crates/$($(package)_crate_name)
|
||||
$(package)_file_name=$($(package)_crate_name)-$($(package)_version).crate
|
||||
$(package)_sha256_hash=c0940dc441f31689269e10ac70eb1002a3a1d3ad1390e030043662eb7fe4688b
|
||||
$(package)_sha256_hash=4152116fd6e9dadb291ae18fc1ec3575ed6d84c29642d97890f4b4a3417297e4
|
||||
$(package)_crate_versioned_name=$($(package)_crate_name)
|
||||
|
||||
define $(package)_preprocess_cmds
|
||||
|
|
|
@ -0,0 +1,15 @@
|
|||
package=crate_block_cipher
|
||||
$(package)_crate_name=block-cipher
|
||||
$(package)_version=0.8.0
|
||||
$(package)_download_path=https://static.crates.io/crates/$($(package)_crate_name)
|
||||
$(package)_file_name=$($(package)_crate_name)-$($(package)_version).crate
|
||||
$(package)_sha256_hash=f337a3e6da609650eb74e02bc9fac7b735049f7623ab12f2e4c719316fcc7e80
|
||||
$(package)_crate_versioned_name=$($(package)_crate_name)
|
||||
|
||||
define $(package)_preprocess_cmds
|
||||
$(call generate_crate_checksum,$(package))
|
||||
endef
|
||||
|
||||
define $(package)_stage_cmds
|
||||
$(call vendor_crate_source,$(package))
|
||||
endef
|
|
@ -1,15 +0,0 @@
|
|||
package=crate_block_cipher_trait
|
||||
$(package)_crate_name=block-cipher-trait
|
||||
$(package)_version=0.6.2
|
||||
$(package)_download_path=https://static.crates.io/crates/$($(package)_crate_name)
|
||||
$(package)_file_name=$($(package)_crate_name)-$($(package)_version).crate
|
||||
$(package)_sha256_hash=1c924d49bd09e7c06003acda26cd9742e796e34282ec6c1189404dee0c1f4774
|
||||
$(package)_crate_versioned_name=$($(package)_crate_name)
|
||||
|
||||
define $(package)_preprocess_cmds
|
||||
$(call generate_crate_checksum,$(package))
|
||||
endef
|
||||
|
||||
define $(package)_stage_cmds
|
||||
$(call vendor_crate_source,$(package))
|
||||
endef
|
|
@ -0,0 +1,15 @@
|
|||
package=crate_block_modes
|
||||
$(package)_crate_name=block-modes
|
||||
$(package)_version=0.6.1
|
||||
$(package)_download_path=https://static.crates.io/crates/$($(package)_crate_name)
|
||||
$(package)_file_name=$($(package)_crate_name)-$($(package)_version).crate
|
||||
$(package)_sha256_hash=0c9b14fd8a4739e6548d4b6018696cf991dcf8c6effd9ef9eb33b29b8a650972
|
||||
$(package)_crate_versioned_name=$($(package)_crate_name)
|
||||
|
||||
define $(package)_preprocess_cmds
|
||||
$(call generate_crate_checksum,$(package))
|
||||
endef
|
||||
|
||||
define $(package)_stage_cmds
|
||||
$(call vendor_crate_source,$(package))
|
||||
endef
|
|
@ -1,9 +1,9 @@
|
|||
package=crate_block_padding
|
||||
$(package)_crate_name=block-padding
|
||||
$(package)_version=0.1.4
|
||||
$(package)_version=0.2.1
|
||||
$(package)_download_path=https://static.crates.io/crates/$($(package)_crate_name)
|
||||
$(package)_file_name=$($(package)_crate_name)-$($(package)_version).crate
|
||||
$(package)_sha256_hash=6d4dc3af3ee2e12f3e5d224e5e1e3d73668abbeb69e566d361f7d5563a4fdf09
|
||||
$(package)_sha256_hash=8d696c370c750c948ada61c69a0ee2cbbb9c50b1019ddb86d9317157a99c2cae
|
||||
$(package)_crate_versioned_name=$($(package)_crate_name)
|
||||
|
||||
define $(package)_preprocess_cmds
|
||||
|
|
|
@ -1,9 +1,9 @@
|
|||
package=crate_c2_chacha
|
||||
$(package)_crate_name=c2-chacha
|
||||
$(package)_version=0.2.2
|
||||
package=crate_bls12_381
|
||||
$(package)_crate_name=bls12_381
|
||||
$(package)_version=0.2.0
|
||||
$(package)_download_path=https://static.crates.io/crates/$($(package)_crate_name)
|
||||
$(package)_file_name=$($(package)_crate_name)-$($(package)_version).crate
|
||||
$(package)_sha256_hash=7d64d04786e0f528460fc884753cf8dddcc466be308f6026f8e355c41a0e4101
|
||||
$(package)_sha256_hash=d4bb0547678ace536b8bd0cb9c033cffd6a8a660b70cbe0da3bb44a1dbda8ad0
|
||||
$(package)_crate_versioned_name=$($(package)_crate_name)
|
||||
|
||||
define $(package)_preprocess_cmds
|
|
@ -1,9 +1,9 @@
|
|||
package=crate_byteorder
|
||||
$(package)_crate_name=byteorder
|
||||
$(package)_version=1.3.2
|
||||
$(package)_version=1.3.4
|
||||
$(package)_download_path=https://static.crates.io/crates/$($(package)_crate_name)
|
||||
$(package)_file_name=$($(package)_crate_name)-$($(package)_version).crate
|
||||
$(package)_sha256_hash=a7c3dd8985a7111efc5c80b44e23ecdd8c007de8ade3b96595387e812b957cf5
|
||||
$(package)_sha256_hash=08c48aae112d48ed9f069b33538ea9e3e90aa263cfa3d1c24309612b1f7472de
|
||||
$(package)_crate_versioned_name=$($(package)_crate_name)
|
||||
|
||||
define $(package)_preprocess_cmds
|
||||
|
|
|
@ -1,9 +1,9 @@
|
|||
package=crate_chrono
|
||||
$(package)_crate_name=chrono
|
||||
$(package)_version=0.4.13
|
||||
$(package)_version=0.4.15
|
||||
$(package)_download_path=https://static.crates.io/crates/$($(package)_crate_name)
|
||||
$(package)_file_name=$($(package)_crate_name)-$($(package)_version).crate
|
||||
$(package)_sha256_hash=c74d84029116787153e02106bf53e66828452a4b325cc8652b788b5967c0a0b6
|
||||
$(package)_sha256_hash=942f72db697d8767c22d46a598e01f2d3b475501ea43d0db4f16d90259182d0b
|
||||
$(package)_crate_versioned_name=$($(package)_crate_name)
|
||||
|
||||
define $(package)_preprocess_cmds
|
||||
|
|
|
@ -1,9 +1,9 @@
|
|||
package=crate_constant_time_eq
|
||||
$(package)_crate_name=constant_time_eq
|
||||
$(package)_version=0.1.4
|
||||
$(package)_version=0.1.5
|
||||
$(package)_download_path=https://static.crates.io/crates/$($(package)_crate_name)
|
||||
$(package)_file_name=$($(package)_crate_name)-$($(package)_version).crate
|
||||
$(package)_sha256_hash=995a44c877f9212528ccc74b21a232f66ad69001e40ede5bcee2ac9ef2657120
|
||||
$(package)_sha256_hash=245097e9a4535ee1e3e3931fcfcd55a796a44c643e8596ff6566d68f09b87bbc
|
||||
$(package)_crate_versioned_name=$($(package)_crate_name)
|
||||
|
||||
define $(package)_preprocess_cmds
|
||||
|
|
|
@ -1,9 +1,9 @@
|
|||
package=crate_fake_simd
|
||||
$(package)_crate_name=fake-simd
|
||||
package=crate_cpuid_bool
|
||||
$(package)_crate_name=cpuid-bool
|
||||
$(package)_version=0.1.2
|
||||
$(package)_download_path=https://static.crates.io/crates/$($(package)_crate_name)
|
||||
$(package)_file_name=$($(package)_crate_name)-$($(package)_version).crate
|
||||
$(package)_sha256_hash=e88a8acf291dafb59c2d96e8f59828f3838bb1a70398823ade51a84de6a6deed
|
||||
$(package)_sha256_hash=8aebca1129a03dc6dc2b127edd729435bbc4a37e1d5f4d7513165089ceb02634
|
||||
$(package)_crate_versioned_name=$($(package)_crate_name)
|
||||
|
||||
define $(package)_preprocess_cmds
|
|
@ -1,9 +1,9 @@
|
|||
package=crate_crossbeam
|
||||
$(package)_crate_name=crossbeam
|
||||
$(package)_version=0.7.2
|
||||
$(package)_version=0.7.3
|
||||
$(package)_download_path=https://static.crates.io/crates/$($(package)_crate_name)
|
||||
$(package)_file_name=$($(package)_crate_name)-$($(package)_version).crate
|
||||
$(package)_sha256_hash=2d818a4990769aac0c7ff1360e233ef3a41adcb009ebb2036bf6915eb0f6b23c
|
||||
$(package)_sha256_hash=69323bff1fb41c635347b8ead484a5ca6c3f11914d784170b158d8449ab07f8e
|
||||
$(package)_crate_versioned_name=$($(package)_crate_name)
|
||||
|
||||
define $(package)_preprocess_cmds
|
||||
|
|
|
@ -1,15 +0,0 @@
|
|||
package=crate_crossbeam_channel
|
||||
$(package)_crate_name=crossbeam-channel
|
||||
$(package)_version=0.3.9
|
||||
$(package)_download_path=https://static.crates.io/crates/$($(package)_crate_name)
|
||||
$(package)_file_name=$($(package)_crate_name)-$($(package)_version).crate
|
||||
$(package)_sha256_hash=c8ec7fcd21571dc78f96cc96243cab8d8f035247c3efd16c687be154c3fa9efa
|
||||
$(package)_crate_versioned_name=$($(package)_crate_name)-$($(package)_version)
|
||||
|
||||
define $(package)_preprocess_cmds
|
||||
$(call generate_crate_checksum,$(package))
|
||||
endef
|
||||
|
||||
define $(package)_stage_cmds
|
||||
$(call vendor_crate_source,$(package))
|
||||
endef
|
|
@ -1,9 +1,9 @@
|
|||
package=crate_crossbeam_deque
|
||||
$(package)_crate_name=crossbeam-deque
|
||||
$(package)_version=0.7.1
|
||||
$(package)_version=0.7.3
|
||||
$(package)_download_path=https://static.crates.io/crates/$($(package)_crate_name)
|
||||
$(package)_file_name=$($(package)_crate_name)-$($(package)_version).crate
|
||||
$(package)_sha256_hash=b18cd2e169ad86297e6bc0ad9aa679aee9daa4f19e8163860faf7c164e4f5a71
|
||||
$(package)_sha256_hash=9f02af974daeee82218205558e51ec8768b48cf524bd01d550abe5573a608285
|
||||
$(package)_crate_versioned_name=$($(package)_crate_name)
|
||||
|
||||
define $(package)_preprocess_cmds
|
||||
|
|
|
@ -1,9 +1,9 @@
|
|||
package=crate_crossbeam_epoch
|
||||
$(package)_crate_name=crossbeam-epoch
|
||||
$(package)_version=0.7.2
|
||||
$(package)_version=0.8.2
|
||||
$(package)_download_path=https://static.crates.io/crates/$($(package)_crate_name)
|
||||
$(package)_file_name=$($(package)_crate_name)-$($(package)_version).crate
|
||||
$(package)_sha256_hash=fedcd6772e37f3da2a9af9bf12ebe046c0dfe657992377b4df982a2b54cd37a9
|
||||
$(package)_sha256_hash=058ed274caafc1f60c4997b5fc07bf7dc7cca454af7c6e81edffe5f33f70dace
|
||||
$(package)_crate_versioned_name=$($(package)_crate_name)
|
||||
|
||||
define $(package)_preprocess_cmds
|
||||
|
|
|
@ -1,9 +1,9 @@
|
|||
package=crate_crossbeam_queue
|
||||
$(package)_crate_name=crossbeam-queue
|
||||
$(package)_version=0.1.2
|
||||
$(package)_version=0.2.3
|
||||
$(package)_download_path=https://static.crates.io/crates/$($(package)_crate_name)
|
||||
$(package)_file_name=$($(package)_crate_name)-$($(package)_version).crate
|
||||
$(package)_sha256_hash=7c979cd6cfe72335896575c6b5688da489e420d36a27a0b9eb0c73db574b4a4b
|
||||
$(package)_sha256_hash=774ba60a54c213d409d5353bda12d49cd68d14e45036a285234c8d6f91f92570
|
||||
$(package)_crate_versioned_name=$($(package)_crate_name)
|
||||
|
||||
define $(package)_preprocess_cmds
|
||||
|
|
|
@ -1,15 +0,0 @@
|
|||
package=crate_crossbeam_utils
|
||||
$(package)_crate_name=crossbeam-utils
|
||||
$(package)_version=0.6.6
|
||||
$(package)_download_path=https://static.crates.io/crates/$($(package)_crate_name)
|
||||
$(package)_file_name=$($(package)_crate_name)-$($(package)_version).crate
|
||||
$(package)_sha256_hash=04973fa96e96579258a5091af6003abde64af786b860f18622b82e026cca60e6
|
||||
$(package)_crate_versioned_name=$($(package)_crate_name)-$($(package)_version)
|
||||
|
||||
define $(package)_preprocess_cmds
|
||||
$(call generate_crate_checksum,$(package))
|
||||
endef
|
||||
|
||||
define $(package)_stage_cmds
|
||||
$(call vendor_crate_source,$(package))
|
||||
endef
|
|
@ -1,9 +1,9 @@
|
|||
package=crate_crypto_api_chachapoly
|
||||
$(package)_crate_name=crypto_api_chachapoly
|
||||
$(package)_version=0.2.2
|
||||
$(package)_version=0.4.3
|
||||
$(package)_download_path=https://static.crates.io/crates/$($(package)_crate_name)
|
||||
$(package)_file_name=$($(package)_crate_name)-$($(package)_version).crate
|
||||
$(package)_sha256_hash=95b2ad7cab08fd71addba81df5077c49df208effdfb3118a1519f9cdeac5aaf2
|
||||
$(package)_sha256_hash=d930b6a026ce9d358a17f9c9046c55d90b14bb847f36b6ebb6b19365d4feffb8
|
||||
$(package)_crate_versioned_name=$($(package)_crate_name)
|
||||
|
||||
define $(package)_preprocess_cmds
|
||||
|
|
|
@ -1,9 +1,9 @@
|
|||
package=crate_curve25519_dalek
|
||||
$(package)_crate_name=curve25519-dalek
|
||||
$(package)_version=2.1.0
|
||||
$(package)_version=3.0.0
|
||||
$(package)_download_path=https://static.crates.io/crates/$($(package)_crate_name)
|
||||
$(package)_file_name=$($(package)_crate_name)-$($(package)_version).crate
|
||||
$(package)_sha256_hash=5d85653f070353a16313d0046f173f70d1aadd5b42600a14de626f0dfb3473a5
|
||||
$(package)_sha256_hash=c8492de420e9e60bc9a1d66e2dbb91825390b738a388606600663fc529b4b307
|
||||
$(package)_crate_versioned_name=$($(package)_crate_name)
|
||||
|
||||
define $(package)_preprocess_cmds
|
||||
|
|
|
@ -1,9 +1,9 @@
|
|||
package=crate_digest
|
||||
$(package)_crate_name=digest
|
||||
$(package)_version=0.8.1
|
||||
$(package)_version=0.9.0
|
||||
$(package)_download_path=https://static.crates.io/crates/$($(package)_crate_name)
|
||||
$(package)_file_name=$($(package)_crate_name)-$($(package)_version).crate
|
||||
$(package)_sha256_hash=f3d0c8c8752312f9713efd397ff63acb9f85585afbf179282e720e7704954dd5
|
||||
$(package)_sha256_hash=d3dd60d1080a57a05ab032377049e0591415d2b31afd7028356dbf3cc6dcb066
|
||||
$(package)_crate_versioned_name=$($(package)_crate_name)
|
||||
|
||||
define $(package)_preprocess_cmds
|
||||
|
|
|
@ -1,9 +1,9 @@
|
|||
package=crate_directories
|
||||
$(package)_crate_name=directories
|
||||
$(package)_version=1.0.2
|
||||
$(package)_version=3.0.1
|
||||
$(package)_download_path=https://static.crates.io/crates/$($(package)_crate_name)
|
||||
$(package)_file_name=$($(package)_crate_name)-$($(package)_version).crate
|
||||
$(package)_sha256_hash=72d337a64190607d4fcca2cb78982c5dd57f4916e19696b48a575fa746b6cb0f
|
||||
$(package)_sha256_hash=f8fed639d60b58d0f53498ab13d26f621fd77569cc6edb031f4cc36a2ad9da0f
|
||||
$(package)_crate_versioned_name=$($(package)_crate_name)
|
||||
|
||||
define $(package)_preprocess_cmds
|
||||
|
|
|
@ -0,0 +1,15 @@
|
|||
package=crate_dirs_sys
|
||||
$(package)_crate_name=dirs-sys
|
||||
$(package)_version=0.3.5
|
||||
$(package)_download_path=https://static.crates.io/crates/$($(package)_crate_name)
|
||||
$(package)_file_name=$($(package)_crate_name)-$($(package)_version).crate
|
||||
$(package)_sha256_hash=8e93d7f5705de3e49895a2b5e0b8855a1c27f080192ae9c32a6432d50741a57a
|
||||
$(package)_crate_versioned_name=$($(package)_crate_name)
|
||||
|
||||
define $(package)_preprocess_cmds
|
||||
$(call generate_crate_checksum,$(package))
|
||||
endef
|
||||
|
||||
define $(package)_stage_cmds
|
||||
$(call vendor_crate_source,$(package))
|
||||
endef
|
|
@ -1,9 +1,9 @@
|
|||
package=crate_ed25519_zebra
|
||||
$(package)_crate_name=ed25519-zebra
|
||||
$(package)_version=2.0.0
|
||||
$(package)_version=2.1.2
|
||||
$(package)_download_path=https://static.crates.io/crates/$($(package)_crate_name)
|
||||
$(package)_file_name=$($(package)_crate_name)-$($(package)_version).crate
|
||||
$(package)_sha256_hash=beeba2b02b91dc7cc2d1f42c96b9e82db4cd20ad1c326f1dbf64ac8943c7bf32
|
||||
$(package)_sha256_hash=fc69a9bf9de8ad6cfa9c32db73dbe06ace3eb9a50a2f8c8520d8f453e13ae32a
|
||||
$(package)_crate_versioned_name=$($(package)_crate_name)
|
||||
|
||||
define $(package)_preprocess_cmds
|
||||
|
|
|
@ -0,0 +1,15 @@
|
|||
package=crate_equihash
|
||||
$(package)_crate_name=equihash
|
||||
$(package)_version=0.1.0
|
||||
$(package)_download_path=https://static.crates.io/crates/$($(package)_crate_name)
|
||||
$(package)_file_name=$($(package)_crate_name)-$($(package)_version).crate
|
||||
$(package)_sha256_hash=4127688f6177e3f57521881cb1cfd90d1228214f9dc43b8efe6f6c6948cd8280
|
||||
$(package)_crate_versioned_name=$($(package)_crate_name)
|
||||
|
||||
define $(package)_preprocess_cmds
|
||||
$(call generate_crate_checksum,$(package))
|
||||
endef
|
||||
|
||||
define $(package)_stage_cmds
|
||||
$(call vendor_crate_source,$(package))
|
||||
endef
|
|
@ -1,9 +1,9 @@
|
|||
package=crate_ff
|
||||
$(package)_crate_name=ff
|
||||
$(package)_version=0.6.0
|
||||
$(package)_version=0.7.0
|
||||
$(package)_download_path=https://static.crates.io/crates/$($(package)_crate_name)
|
||||
$(package)_file_name=$($(package)_crate_name)-$($(package)_version).crate
|
||||
$(package)_sha256_hash=c4b967a3ee6ae993f0094174257d404a5818f58be79d67a1aea1ec8996d28906
|
||||
$(package)_sha256_hash=01d11efdc125f2647dde5a0f5f88010a5b0f89b700f86052afa1d148c4696047
|
||||
$(package)_crate_versioned_name=$($(package)_crate_name)
|
||||
|
||||
define $(package)_preprocess_cmds
|
||||
|
|
|
@ -1,9 +1,9 @@
|
|||
package=crate_ff_derive
|
||||
$(package)_crate_name=ff_derive
|
||||
$(package)_version=0.6.0
|
||||
$(package)_version=0.7.0
|
||||
$(package)_download_path=https://static.crates.io/crates/$($(package)_crate_name)
|
||||
$(package)_file_name=$($(package)_crate_name)-$($(package)_version).crate
|
||||
$(package)_sha256_hash=a3776aaf60a45037a9c3cabdd8542b38693acaa3e241ff957181b72579d29feb
|
||||
$(package)_sha256_hash=6876796d97d4a5e7f1c4a1645c5111f3acb2fc924172b78d949b8a89eb970d6a
|
||||
$(package)_crate_versioned_name=$($(package)_crate_name)
|
||||
|
||||
define $(package)_preprocess_cmds
|
||||
|
|
|
@ -1,9 +1,9 @@
|
|||
package=crate_fpe
|
||||
$(package)_crate_name=fpe
|
||||
$(package)_version=0.2.0
|
||||
$(package)_version=0.3.1
|
||||
$(package)_download_path=https://static.crates.io/crates/$($(package)_crate_name)
|
||||
$(package)_file_name=$($(package)_crate_name)-$($(package)_version).crate
|
||||
$(package)_sha256_hash=21988a326139165b75e3196bc6962ca638e5fb0c95102fbf152a3743174b01e4
|
||||
$(package)_sha256_hash=ef2196a22f6d98bbde79ae510eb4f397bd446cfbd6c26425e25ec81442a31bab
|
||||
$(package)_crate_versioned_name=$($(package)_crate_name)
|
||||
|
||||
define $(package)_preprocess_cmds
|
||||
|
|
|
@ -1,9 +1,9 @@
|
|||
package=crate_generic_array
|
||||
$(package)_crate_name=generic-array
|
||||
$(package)_version=0.12.3
|
||||
$(package)_version=0.14.4
|
||||
$(package)_download_path=https://static.crates.io/crates/$($(package)_crate_name)
|
||||
$(package)_file_name=$($(package)_crate_name)-$($(package)_version).crate
|
||||
$(package)_sha256_hash=c68f0274ae0e023facc3c97b2e00f076be70e254bc851d972503b328db79b2ec
|
||||
$(package)_sha256_hash=501466ecc8a30d1d3b7fc9229b122b2ce8ed6e9d9223f1138d4babb253e51817
|
||||
$(package)_crate_versioned_name=$($(package)_crate_name)
|
||||
|
||||
define $(package)_preprocess_cmds
|
||||
|
|
|
@ -1,9 +1,9 @@
|
|||
package=crate_getrandom
|
||||
$(package)_crate_name=getrandom
|
||||
$(package)_version=0.1.12
|
||||
$(package)_version=0.1.14
|
||||
$(package)_download_path=https://static.crates.io/crates/$($(package)_crate_name)
|
||||
$(package)_file_name=$($(package)_crate_name)-$($(package)_version).crate
|
||||
$(package)_sha256_hash=473a1265acc8ff1e808cd0a1af8cee3c2ee5200916058a2ca113c29f2d903571
|
||||
$(package)_sha256_hash=7abc8dd8451921606d809ba32e95b6111925cd2906060d2dcc29c070220503eb
|
||||
$(package)_crate_versioned_name=$($(package)_crate_name)
|
||||
|
||||
define $(package)_preprocess_cmds
|
||||
|
|
|
@ -1,9 +1,9 @@
|
|||
package=crate_group
|
||||
$(package)_crate_name=group
|
||||
$(package)_version=0.6.0
|
||||
$(package)_version=0.7.0
|
||||
$(package)_download_path=https://static.crates.io/crates/$($(package)_crate_name)
|
||||
$(package)_file_name=$($(package)_crate_name)-$($(package)_version).crate
|
||||
$(package)_sha256_hash=f15be54742789e36f03307c8fdf0621201e1345e94f1387282024178b5e9ec8c
|
||||
$(package)_sha256_hash=a7010d72d6222af90b421f4dbc9c1f05a6d658cce9ed35d441c3dda0ede59fee
|
||||
$(package)_crate_versioned_name=$($(package)_crate_name)
|
||||
|
||||
define $(package)_preprocess_cmds
|
||||
|
|
|
@ -1,9 +1,9 @@
|
|||
package=crate_byte_tools
|
||||
$(package)_crate_name=byte-tools
|
||||
$(package)_version=0.3.1
|
||||
package=crate_hermit_abi
|
||||
$(package)_crate_name=hermit-abi
|
||||
$(package)_version=0.1.15
|
||||
$(package)_download_path=https://static.crates.io/crates/$($(package)_crate_name)
|
||||
$(package)_file_name=$($(package)_crate_name)-$($(package)_version).crate
|
||||
$(package)_sha256_hash=e3b5ca7a04898ad4bcd41c90c5285445ff5b791899bb1b0abdd2a2aa791211d7
|
||||
$(package)_sha256_hash=3deed196b6e7f9e44a2ae8d94225d80302d81208b1bb673fd21fe634645c85a9
|
||||
$(package)_crate_versioned_name=$($(package)_crate_name)
|
||||
|
||||
define $(package)_preprocess_cmds
|
|
@ -1,10 +1,10 @@
|
|||
package=crate_hex
|
||||
$(package)_crate_name=hex
|
||||
$(package)_version=0.3.2
|
||||
$(package)_version=0.4.2
|
||||
$(package)_download_path=https://static.crates.io/crates/$($(package)_crate_name)
|
||||
$(package)_file_name=$($(package)_crate_name)-$($(package)_version).crate
|
||||
$(package)_sha256_hash=805026a5d0141ffc30abb3be3173848ad46a1b1664fe632428479619a3644d77
|
||||
$(package)_crate_versioned_name="$($(package)_crate_name) 0.3.2"
|
||||
$(package)_sha256_hash=644f9158b2f133fd50f5fb3242878846d9eb792e445c893805ff0e3824006e35
|
||||
$(package)_crate_versioned_name=$($(package)_crate_name)
|
||||
|
||||
define $(package)_preprocess_cmds
|
||||
$(call generate_crate_checksum,$(package))
|
||||
|
|
|
@ -1,15 +0,0 @@
|
|||
package=crate_hex2
|
||||
$(package)_crate_name=hex
|
||||
$(package)_version=0.4.2
|
||||
$(package)_download_path=https://static.crates.io/crates/$($(package)_crate_name)
|
||||
$(package)_file_name=$($(package)_crate_name)-$($(package)_version).crate
|
||||
$(package)_sha256_hash=644f9158b2f133fd50f5fb3242878846d9eb792e445c893805ff0e3824006e35
|
||||
$(package)_crate_versioned_name="$($(package)_crate_name) 0.4.2"
|
||||
|
||||
define $(package)_preprocess_cmds
|
||||
$(call generate_crate_checksum,$(package))
|
||||
endef
|
||||
|
||||
define $(package)_stage_cmds
|
||||
$(call vendor_crate_source,$(package))
|
||||
endef
|
|
@ -1,9 +1,9 @@
|
|||
package=crate_memchr
|
||||
$(package)_crate_name=memchr
|
||||
$(package)_version=2.3.3
|
||||
package=crate_jubjub
|
||||
$(package)_crate_name=jubjub
|
||||
$(package)_version=0.4.0
|
||||
$(package)_download_path=https://static.crates.io/crates/$($(package)_crate_name)
|
||||
$(package)_file_name=$($(package)_crate_name)-$($(package)_version).crate
|
||||
$(package)_sha256_hash=3728d817d99e5ac407411fa471ff9800a778d88a24685968b36824eaf4bee400
|
||||
$(package)_sha256_hash=c3b0d7e8d9439803f270fbeb2285f2818dfa989ecf47465fa4c87a59ea9c90e6
|
||||
$(package)_crate_versioned_name=$($(package)_crate_name)
|
||||
|
||||
define $(package)_preprocess_cmds
|
|
@ -1,9 +1,9 @@
|
|||
package=crate_libc
|
||||
$(package)_crate_name=libc
|
||||
$(package)_version=0.2.72
|
||||
$(package)_version=0.2.76
|
||||
$(package)_download_path=https://static.crates.io/crates/$($(package)_crate_name)
|
||||
$(package)_file_name=$($(package)_crate_name)-$($(package)_version).crate
|
||||
$(package)_sha256_hash=a9f8082297d534141b30c8d39e9b1773713ab50fdbe4ff30f750d063b3bfd701
|
||||
$(package)_sha256_hash=755456fae044e6fa1ebbbd1b3e902ae19e73097ed4ed87bb79934a867c007bc3
|
||||
$(package)_crate_versioned_name=$($(package)_crate_name)
|
||||
|
||||
define $(package)_preprocess_cmds
|
||||
|
|
|
@ -1,9 +1,9 @@
|
|||
package=crate_log
|
||||
$(package)_crate_name=log
|
||||
$(package)_version=0.4.8
|
||||
$(package)_version=0.4.11
|
||||
$(package)_download_path=https://static.crates.io/crates/$($(package)_crate_name)
|
||||
$(package)_file_name=$($(package)_crate_name)-$($(package)_version).crate
|
||||
$(package)_sha256_hash=14b6052be84e6b71ab17edffc2eeabf5c2c3ae1fdb464aae35ac50c67a44e1f7
|
||||
$(package)_sha256_hash=4fabed175da42fed1fa0746b0ea71f412aa9d35e76e95e59b192c64b9dc2bf8b
|
||||
$(package)_crate_versioned_name=$($(package)_crate_name)
|
||||
|
||||
define $(package)_preprocess_cmds
|
||||
|
|
|
@ -0,0 +1,15 @@
|
|||
package=crate_maybe_uninit
|
||||
$(package)_crate_name=maybe-uninit
|
||||
$(package)_version=2.0.0
|
||||
$(package)_download_path=https://static.crates.io/crates/$($(package)_crate_name)
|
||||
$(package)_file_name=$($(package)_crate_name)-$($(package)_version).crate
|
||||
$(package)_sha256_hash=60302e4db3a61da70c0cb7991976248362f30319e88850c487b9b95bbf059e00
|
||||
$(package)_crate_versioned_name=$($(package)_crate_name)
|
||||
|
||||
define $(package)_preprocess_cmds
|
||||
$(call generate_crate_checksum,$(package))
|
||||
endef
|
||||
|
||||
define $(package)_stage_cmds
|
||||
$(call vendor_crate_source,$(package))
|
||||
endef
|
|
@ -1,9 +1,9 @@
|
|||
package=crate_memoffset
|
||||
$(package)_crate_name=memoffset
|
||||
$(package)_version=0.5.1
|
||||
$(package)_version=0.5.5
|
||||
$(package)_download_path=https://static.crates.io/crates/$($(package)_crate_name)
|
||||
$(package)_file_name=$($(package)_crate_name)-$($(package)_version).crate
|
||||
$(package)_sha256_hash=ce6075db033bbbb7ee5a0bbd3a3186bbae616f57fb001c485c7ff77955f8177f
|
||||
$(package)_sha256_hash=c198b026e1bbf08a937e94c6c60f9ec4a2267f5b0d2eec9c1b21b061ce2be55f
|
||||
$(package)_crate_versioned_name=$($(package)_crate_name)
|
||||
|
||||
define $(package)_preprocess_cmds
|
||||
|
|
|
@ -1,9 +1,9 @@
|
|||
package=crate_num_bigint
|
||||
$(package)_crate_name=num-bigint
|
||||
$(package)_version=0.2.3
|
||||
$(package)_version=0.3.0
|
||||
$(package)_download_path=https://static.crates.io/crates/$($(package)_crate_name)
|
||||
$(package)_file_name=$($(package)_crate_name)-$($(package)_version).crate
|
||||
$(package)_sha256_hash=f9c3f34cdd24f334cb265d9bf8bfa8a241920d026916785747a92f0e55541a1a
|
||||
$(package)_sha256_hash=b7f3fc75e3697059fb1bc465e3d8cca6cf92f56854f201158b3f9c77d5a3cfa0
|
||||
$(package)_crate_versioned_name=$($(package)_crate_name)
|
||||
|
||||
define $(package)_preprocess_cmds
|
||||
|
|
|
@ -1,9 +1,9 @@
|
|||
package=crate_num_cpus
|
||||
$(package)_crate_name=num_cpus
|
||||
$(package)_version=1.10.1
|
||||
$(package)_version=1.13.0
|
||||
$(package)_download_path=https://static.crates.io/crates/$($(package)_crate_name)
|
||||
$(package)_file_name=$($(package)_crate_name)-$($(package)_version).crate
|
||||
$(package)_sha256_hash=bcef43580c035376c0705c42792c294b66974abbfd2789b511784023f71f3273
|
||||
$(package)_sha256_hash=05499f3756671c15885fee9034446956fff3f243d6077b91e5767df161f766b3
|
||||
$(package)_crate_versioned_name=$($(package)_crate_name)
|
||||
|
||||
define $(package)_preprocess_cmds
|
||||
|
|
|
@ -1,9 +1,9 @@
|
|||
package=crate_num_integer
|
||||
$(package)_crate_name=num-integer
|
||||
$(package)_version=0.1.41
|
||||
$(package)_version=0.1.43
|
||||
$(package)_download_path=https://static.crates.io/crates/$($(package)_crate_name)
|
||||
$(package)_file_name=$($(package)_crate_name)-$($(package)_version).crate
|
||||
$(package)_sha256_hash=b85e541ef8255f6cf42bbfe4ef361305c6c135d10919ecc26126c4e5ae94bc09
|
||||
$(package)_sha256_hash=8d59457e662d541ba17869cf51cf177c0b5f0cbf476c66bdc90bf1edac4f875b
|
||||
$(package)_crate_versioned_name=$($(package)_crate_name)
|
||||
|
||||
define $(package)_preprocess_cmds
|
||||
|
|
|
@ -1,9 +1,9 @@
|
|||
package=crate_num_traits
|
||||
$(package)_crate_name=num-traits
|
||||
$(package)_version=0.2.8
|
||||
$(package)_version=0.2.12
|
||||
$(package)_download_path=https://static.crates.io/crates/$($(package)_crate_name)
|
||||
$(package)_file_name=$($(package)_crate_name)-$($(package)_version).crate
|
||||
$(package)_sha256_hash=6ba9a427cfca2be13aa6f6403b0b7e7368fe982bfa16fccc450ce74c46cd9b32
|
||||
$(package)_sha256_hash=ac267bcc07f48ee5f8935ab0d24f316fb722d7a1292e2913f0cc196b29ffd611
|
||||
$(package)_crate_versioned_name=$($(package)_crate_name)
|
||||
|
||||
define $(package)_preprocess_cmds
|
||||
|
|
|
@ -1,9 +1,9 @@
|
|||
package=crate_opaque_debug
|
||||
$(package)_crate_name=opaque-debug
|
||||
$(package)_version=0.2.3
|
||||
$(package)_version=0.3.0
|
||||
$(package)_download_path=https://static.crates.io/crates/$($(package)_crate_name)
|
||||
$(package)_file_name=$($(package)_crate_name)-$($(package)_version).crate
|
||||
$(package)_sha256_hash=2839e79665f131bdb5782e51f2c6c9599c133c6098982a54c794358bf432529c
|
||||
$(package)_sha256_hash=624a8340c38c1b80fd549087862da4ba43e08858af025b236e509b6649fc13d5
|
||||
$(package)_crate_versioned_name=$($(package)_crate_name)
|
||||
|
||||
define $(package)_preprocess_cmds
|
||||
|
|
|
@ -1,9 +1,9 @@
|
|||
package=crate_pairing
|
||||
$(package)_crate_name=pairing
|
||||
$(package)_version=0.16.0
|
||||
$(package)_version=0.17.0
|
||||
$(package)_download_path=https://static.crates.io/crates/$($(package)_crate_name)
|
||||
$(package)_file_name=$($(package)_crate_name)-$($(package)_version).crate
|
||||
$(package)_sha256_hash=b8290dea210a712682cd65031dc2b34fd132cf2729def3df7ee08f0737ff5ed6
|
||||
$(package)_sha256_hash=8b6f13c321bf1105ef510ced10d0bc84ff9be6e8f593dd635af7a797b0335b91
|
||||
$(package)_crate_versioned_name=$($(package)_crate_name)
|
||||
|
||||
define $(package)_preprocess_cmds
|
||||
|
|
|
@ -1,9 +1,9 @@
|
|||
package=crate_ppv_lite86
|
||||
$(package)_crate_name=ppv-lite86
|
||||
$(package)_version=0.2.5
|
||||
$(package)_version=0.2.9
|
||||
$(package)_download_path=https://static.crates.io/crates/$($(package)_crate_name)
|
||||
$(package)_file_name=$($(package)_crate_name)-$($(package)_version).crate
|
||||
$(package)_sha256_hash=e3cbf9f658cdb5000fcf6f362b8ea2ba154b9f146a61c7a20d647034c6b6561b
|
||||
$(package)_sha256_hash=c36fa947111f5c62a733b652544dd0016a43ce89619538a8ef92724a6f501a20
|
||||
$(package)_crate_versioned_name=$($(package)_crate_name)
|
||||
|
||||
define $(package)_preprocess_cmds
|
||||
|
|
|
@ -1,9 +1,9 @@
|
|||
package=crate_proc_macro2
|
||||
$(package)_crate_name=proc-macro2
|
||||
$(package)_version=1.0.3
|
||||
$(package)_version=1.0.19
|
||||
$(package)_download_path=https://static.crates.io/crates/$($(package)_crate_name)
|
||||
$(package)_file_name=$($(package)_crate_name)-$($(package)_version).crate
|
||||
$(package)_sha256_hash=e98a83a9f9b331f54b924e68a66acb1bb35cb01fb0a23645139967abefb697e8
|
||||
$(package)_sha256_hash=04f5f085b5d71e2188cb8271e5da0161ad52c3f227a661a3c135fdf28e258b12
|
||||
$(package)_crate_versioned_name=$($(package)_crate_name)
|
||||
|
||||
define $(package)_preprocess_cmds
|
||||
|
|
|
@ -1,9 +1,9 @@
|
|||
package=crate_quote
|
||||
$(package)_crate_name=quote
|
||||
$(package)_version=1.0.2
|
||||
$(package)_version=1.0.7
|
||||
$(package)_download_path=https://static.crates.io/crates/$($(package)_crate_name)
|
||||
$(package)_file_name=$($(package)_crate_name)-$($(package)_version).crate
|
||||
$(package)_sha256_hash=053a8c8bcc71fcce321828dc897a98ab9760bef03a4fc36693c231e5b3216cfe
|
||||
$(package)_sha256_hash=aa563d17ecb180e500da1cfd2b028310ac758de548efdd203e18f283af693f37
|
||||
$(package)_crate_versioned_name=$($(package)_crate_name)
|
||||
|
||||
define $(package)_preprocess_cmds
|
||||
|
|
|
@ -1,9 +1,9 @@
|
|||
package=crate_rand
|
||||
$(package)_crate_name=rand
|
||||
$(package)_version=0.7.0
|
||||
$(package)_version=0.7.3
|
||||
$(package)_download_path=https://static.crates.io/crates/$($(package)_crate_name)
|
||||
$(package)_file_name=$($(package)_crate_name)-$($(package)_version).crate
|
||||
$(package)_sha256_hash=d47eab0e83d9693d40f825f86948aa16eff6750ead4bdffc4ab95b8b3a7f052c
|
||||
$(package)_sha256_hash=6a6b1679d49b24bbfe0c803429aa1874472f50d9b363131f0e89fc356b544d03
|
||||
$(package)_crate_versioned_name=$($(package)_crate_name)
|
||||
|
||||
define $(package)_preprocess_cmds
|
||||
|
|
|
@ -1,9 +1,9 @@
|
|||
package=crate_rand_chacha
|
||||
$(package)_crate_name=rand_chacha
|
||||
$(package)_version=0.2.1
|
||||
$(package)_version=0.2.2
|
||||
$(package)_download_path=https://static.crates.io/crates/$($(package)_crate_name)
|
||||
$(package)_file_name=$($(package)_crate_name)-$($(package)_version).crate
|
||||
$(package)_sha256_hash=03a2a90da8c7523f554344f921aa97283eadf6ac484a6d2a7d0212fa7f8d6853
|
||||
$(package)_sha256_hash=f4c8ed856279c9737206bf725bf36935d8666ead7aa69b52be55af369d193402
|
||||
$(package)_crate_versioned_name=$($(package)_crate_name)
|
||||
|
||||
define $(package)_preprocess_cmds
|
||||
|
|
|
@ -0,0 +1,15 @@
|
|||
package=crate_redox_syscall
|
||||
$(package)_crate_name=redox_syscall
|
||||
$(package)_version=0.1.57
|
||||
$(package)_download_path=https://static.crates.io/crates/$($(package)_crate_name)
|
||||
$(package)_file_name=$($(package)_crate_name)-$($(package)_version).crate
|
||||
$(package)_sha256_hash=41cc0f7e4d5d4544e8861606a285bb08d3e70712ccc7d2b84d7c0ccfaf4b05ce
|
||||
$(package)_crate_versioned_name=$($(package)_crate_name)
|
||||
|
||||
define $(package)_preprocess_cmds
|
||||
$(call generate_crate_checksum,$(package))
|
||||
endef
|
||||
|
||||
define $(package)_stage_cmds
|
||||
$(call vendor_crate_source,$(package))
|
||||
endef
|
|
@ -0,0 +1,15 @@
|
|||
package=crate_redox_users
|
||||
$(package)_crate_name=redox_users
|
||||
$(package)_version=0.3.4
|
||||
$(package)_download_path=https://static.crates.io/crates/$($(package)_crate_name)
|
||||
$(package)_file_name=$($(package)_crate_name)-$($(package)_version).crate
|
||||
$(package)_sha256_hash=09b23093265f8d200fa7b4c2c76297f47e681c655f6f1285a8780d6a022f7431
|
||||
$(package)_crate_versioned_name=$($(package)_crate_name)
|
||||
|
||||
define $(package)_preprocess_cmds
|
||||
$(call generate_crate_checksum,$(package))
|
||||
endef
|
||||
|
||||
define $(package)_stage_cmds
|
||||
$(call vendor_crate_source,$(package))
|
||||
endef
|
|
@ -1,9 +1,9 @@
|
|||
package=crate_semver_parser
|
||||
$(package)_crate_name=semver-parser
|
||||
package=crate_rust_argon2
|
||||
$(package)_crate_name=rust-argon2
|
||||
$(package)_version=0.7.0
|
||||
$(package)_download_path=https://static.crates.io/crates/$($(package)_crate_name)
|
||||
$(package)_file_name=$($(package)_crate_name)-$($(package)_version).crate
|
||||
$(package)_sha256_hash=388a1df253eca08550bef6c72392cfe7c30914bf41df5269b68cbd6ff8f570a3
|
||||
$(package)_sha256_hash=2bc8af4bda8e1ff4932523b94d3dd20ee30a87232323eda55903ffd71d2fb017
|
||||
$(package)_crate_versioned_name=$($(package)_crate_name)
|
||||
|
||||
define $(package)_preprocess_cmds
|
|
@ -1,15 +0,0 @@
|
|||
package=crate_rustc_version
|
||||
$(package)_crate_name=rustc_version
|
||||
$(package)_version=0.2.3
|
||||
$(package)_download_path=https://static.crates.io/crates/$($(package)_crate_name)
|
||||
$(package)_file_name=$($(package)_crate_name)-$($(package)_version).crate
|
||||
$(package)_sha256_hash=138e3e0acb6c9fb258b19b67cb8abd63c00679d2851805ea151465464fe9030a
|
||||
$(package)_crate_versioned_name=$($(package)_crate_name)
|
||||
|
||||
define $(package)_preprocess_cmds
|
||||
$(call generate_crate_checksum,$(package))
|
||||
endef
|
||||
|
||||
define $(package)_stage_cmds
|
||||
$(call vendor_crate_source,$(package))
|
||||
endef
|
|
@ -1,9 +1,9 @@
|
|||
package=crate_scopeguard
|
||||
$(package)_crate_name=scopeguard
|
||||
$(package)_version=1.0.0
|
||||
$(package)_version=1.1.0
|
||||
$(package)_download_path=https://static.crates.io/crates/$($(package)_crate_name)
|
||||
$(package)_file_name=$($(package)_crate_name)-$($(package)_version).crate
|
||||
$(package)_sha256_hash=b42e15e59b18a828bbf5c58ea01debb36b9b096346de35d941dcb89009f24a0d
|
||||
$(package)_sha256_hash=d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd
|
||||
$(package)_crate_versioned_name=$($(package)_crate_name)
|
||||
|
||||
define $(package)_preprocess_cmds
|
||||
|
|
|
@ -1,9 +1,9 @@
|
|||
package=crate_serde
|
||||
$(package)_crate_name=serde
|
||||
$(package)_version=1.0.113
|
||||
$(package)_version=1.0.115
|
||||
$(package)_download_path=https://static.crates.io/crates/$($(package)_crate_name)
|
||||
$(package)_file_name=$($(package)_crate_name)-$($(package)_version).crate
|
||||
$(package)_sha256_hash=6135c78461981c79497158ef777264c51d9d0f4f3fc3a4d22b915900e42dac6a
|
||||
$(package)_sha256_hash=e54c9a88f2da7238af84b5101443f0c0d0a3bbdc455e34a5c9497b1903ed55d5
|
||||
$(package)_crate_versioned_name=$($(package)_crate_name)
|
||||
|
||||
define $(package)_preprocess_cmds
|
||||
|
|
|
@ -1,9 +1,9 @@
|
|||
package=crate_serde_derive
|
||||
$(package)_crate_name=serde_derive
|
||||
$(package)_version=1.0.113
|
||||
$(package)_version=1.0.115
|
||||
$(package)_download_path=https://static.crates.io/crates/$($(package)_crate_name)
|
||||
$(package)_file_name=$($(package)_crate_name)-$($(package)_version).crate
|
||||
$(package)_sha256_hash=93c5eaa17d0954cb481cdcfffe9d84fcfa7a1a9f2349271e678677be4c26ae31
|
||||
$(package)_sha256_hash=609feed1d0a73cc36a0182a840a9b37b4a82f0b1150369f0536a9e3f2a31dc48
|
||||
$(package)_crate_versioned_name=$($(package)_crate_name)
|
||||
|
||||
define $(package)_preprocess_cmds
|
||||
|
|
|
@ -1,9 +1,9 @@
|
|||
package=crate_sha2
|
||||
$(package)_crate_name=sha2
|
||||
$(package)_version=0.8.0
|
||||
$(package)_version=0.9.1
|
||||
$(package)_download_path=https://static.crates.io/crates/$($(package)_crate_name)
|
||||
$(package)_file_name=$($(package)_crate_name)-$($(package)_version).crate
|
||||
$(package)_sha256_hash=7b4d8bfd0e469f417657573d8451fb33d16cfe0989359b93baf3a1ffc639543d
|
||||
$(package)_sha256_hash=2933378ddfeda7ea26f48c555bdad8bb446bf8a3d17832dc83e380d444cfb8c1
|
||||
$(package)_crate_versioned_name=$($(package)_crate_name)
|
||||
|
||||
define $(package)_preprocess_cmds
|
||||
|
|
|
@ -1,9 +1,9 @@
|
|||
package=crate_syn
|
||||
$(package)_crate_name=syn
|
||||
$(package)_version=1.0.11
|
||||
$(package)_version=1.0.39
|
||||
$(package)_download_path=https://static.crates.io/crates/$($(package)_crate_name)
|
||||
$(package)_file_name=$($(package)_crate_name)-$($(package)_version).crate
|
||||
$(package)_sha256_hash=dff0acdb207ae2fe6d5976617f887eb1e35a2ba52c13c7234c790960cdad9238
|
||||
$(package)_sha256_hash=891d8d6567fe7c7f8835a3a98af4208f3846fba258c1bc3c31d6e506239f11f9
|
||||
$(package)_crate_versioned_name=$($(package)_crate_name)
|
||||
|
||||
define $(package)_preprocess_cmds
|
||||
|
|
|
@ -1,9 +1,9 @@
|
|||
package=crate_tracing
|
||||
$(package)_crate_name=tracing
|
||||
$(package)_version=0.1.18
|
||||
$(package)_version=0.1.19
|
||||
$(package)_download_path=https://static.crates.io/crates/$($(package)_crate_name)
|
||||
$(package)_file_name=$($(package)_crate_name)-$($(package)_version).crate
|
||||
$(package)_sha256_hash=f0aae59226cf195d8e74d4b34beae1859257efb4e5fed3f147d2dc2c7d372178
|
||||
$(package)_sha256_hash=6d79ca061b032d6ce30c660fded31189ca0b9922bf483cd70759f13a2d86786c
|
||||
$(package)_crate_versioned_name=$($(package)_crate_name)
|
||||
|
||||
define $(package)_preprocess_cmds
|
||||
|
|
|
@ -1,9 +1,9 @@
|
|||
package=crate_tracing_attributes
|
||||
$(package)_crate_name=tracing-attributes
|
||||
$(package)_version=0.1.9
|
||||
$(package)_version=0.1.11
|
||||
$(package)_download_path=https://static.crates.io/crates/$($(package)_crate_name)
|
||||
$(package)_file_name=$($(package)_crate_name)-$($(package)_version).crate
|
||||
$(package)_sha256_hash=f0693bf8d6f2bf22c690fc61a9d21ac69efdbb894a17ed596b9af0f01e64b84b
|
||||
$(package)_sha256_hash=80e0ccfc3378da0cce270c946b676a376943f5cd16aeba64568e7939806f4ada
|
||||
$(package)_crate_versioned_name=$($(package)_crate_name)
|
||||
|
||||
define $(package)_preprocess_cmds
|
||||
|
|
|
@ -1,9 +1,9 @@
|
|||
package=crate_tracing_core
|
||||
$(package)_crate_name=tracing-core
|
||||
$(package)_version=0.1.13
|
||||
$(package)_version=0.1.15
|
||||
$(package)_download_path=https://static.crates.io/crates/$($(package)_crate_name)
|
||||
$(package)_file_name=$($(package)_crate_name)-$($(package)_version).crate
|
||||
$(package)_sha256_hash=d593f98af59ebc017c0648f0117525db358745a8894a8d684e185ba3f45954f9
|
||||
$(package)_sha256_hash=4f0e00789804e99b20f12bc7003ca416309d28a6f495d6af58d1e2c2842461b5
|
||||
$(package)_crate_versioned_name=$($(package)_crate_name)
|
||||
|
||||
define $(package)_preprocess_cmds
|
||||
|
|
|
@ -1,9 +1,9 @@
|
|||
package=crate_tracing_subscriber
|
||||
$(package)_crate_name=tracing-subscriber
|
||||
$(package)_version=0.2.10
|
||||
$(package)_version=0.2.11
|
||||
$(package)_download_path=https://static.crates.io/crates/$($(package)_crate_name)
|
||||
$(package)_file_name=$($(package)_crate_name)-$($(package)_version).crate
|
||||
$(package)_sha256_hash=f7b33f8b2ef2ab0c3778c12646d9c42a24f7772bee4cdafc72199644a9f58fdc
|
||||
$(package)_sha256_hash=abd165311cc4d7a555ad11cc77a37756df836182db0d81aac908c8184c584f40
|
||||
$(package)_crate_versioned_name=$($(package)_crate_name)
|
||||
|
||||
define $(package)_preprocess_cmds
|
||||
|
|
|
@ -1,9 +1,9 @@
|
|||
package=crate_typenum
|
||||
$(package)_crate_name=typenum
|
||||
$(package)_version=1.11.2
|
||||
$(package)_version=1.12.0
|
||||
$(package)_download_path=https://static.crates.io/crates/$($(package)_crate_name)
|
||||
$(package)_file_name=$($(package)_crate_name)-$($(package)_version).crate
|
||||
$(package)_sha256_hash=6d2783fe2d6b8c1101136184eb41be8b1ad379e4657050b8aaff0c79ee7575f9
|
||||
$(package)_sha256_hash=373c8a200f9e67a0c95e62a4f52fbf80c23b4381c05a17845531982fa99e6b33
|
||||
$(package)_crate_versioned_name=$($(package)_crate_name)
|
||||
|
||||
define $(package)_preprocess_cmds
|
||||
|
|
|
@ -1,9 +1,9 @@
|
|||
package=crate_unicode_xid
|
||||
$(package)_crate_name=unicode-xid
|
||||
$(package)_version=0.2.0
|
||||
$(package)_version=0.2.1
|
||||
$(package)_download_path=https://static.crates.io/crates/$($(package)_crate_name)
|
||||
$(package)_file_name=$($(package)_crate_name)-$($(package)_version).crate
|
||||
$(package)_sha256_hash=826e7639553986605ec5979c7dd957c7895e93eabed50ab2ffa7f6128a75097c
|
||||
$(package)_sha256_hash=f7fe0bb3479651439c9112f72b6c505038574c9fbb575ed1bf3b797fa39dd564
|
||||
$(package)_crate_versioned_name=$($(package)_crate_name)
|
||||
|
||||
define $(package)_preprocess_cmds
|
||||
|
|
|
@ -1,9 +1,9 @@
|
|||
package=crate_aho_corasick
|
||||
$(package)_crate_name=aho-corasick
|
||||
$(package)_version=0.7.13
|
||||
package=crate_version_check
|
||||
$(package)_crate_name=version_check
|
||||
$(package)_version=0.9.2
|
||||
$(package)_download_path=https://static.crates.io/crates/$($(package)_crate_name)
|
||||
$(package)_file_name=$($(package)_crate_name)-$($(package)_version).crate
|
||||
$(package)_sha256_hash=043164d8ba5c4c3035fec9bbee8647c0261d788f3474306f93bb65901cae0e86
|
||||
$(package)_sha256_hash=b5a972e5669d67ba988ce3dc826706fb0a8b01471c088cb0b6110b805cc36aed
|
||||
$(package)_crate_versioned_name=$($(package)_crate_name)
|
||||
|
||||
define $(package)_preprocess_cmds
|
|
@ -1,9 +1,9 @@
|
|||
package=crate_wasi
|
||||
$(package)_crate_name=wasi
|
||||
$(package)_version=0.7.0
|
||||
$(package)_version=0.9.0+wasi-snapshot-preview1
|
||||
$(package)_download_path=https://static.crates.io/crates/$($(package)_crate_name)
|
||||
$(package)_file_name=$($(package)_crate_name)-$($(package)_version).crate
|
||||
$(package)_sha256_hash=b89c3ce4ce14bdc6fb6beaf9ec7928ca331de5df7e5ea278375642a2f478570d
|
||||
$(package)_sha256_hash=cccddf32554fecc6acb585f82a32a72e28b48f8c4c1883ddfeeeaa96f7d8e519
|
||||
$(package)_crate_versioned_name=$($(package)_crate_name)
|
||||
|
||||
define $(package)_preprocess_cmds
|
||||
|
|
|
@ -1,9 +1,9 @@
|
|||
package=crate_winapi
|
||||
$(package)_crate_name=winapi
|
||||
$(package)_version=0.3.8
|
||||
$(package)_version=0.3.9
|
||||
$(package)_download_path=https://static.crates.io/crates/$($(package)_crate_name)
|
||||
$(package)_file_name=$($(package)_crate_name)-$($(package)_version).crate
|
||||
$(package)_sha256_hash=8093091eeb260906a183e6ae1abdba2ef5ef2257a21801128899c3fc699229c6
|
||||
$(package)_sha256_hash=5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419
|
||||
$(package)_crate_versioned_name=$($(package)_crate_name)
|
||||
|
||||
define $(package)_preprocess_cmds
|
||||
|
|
|
@ -1,9 +1,9 @@
|
|||
package=crate_zcash_primitives
|
||||
$(package)_crate_name=zcash_primitives
|
||||
$(package)_version=0.2.0
|
||||
$(package)_version=0.3.0
|
||||
$(package)_download_path=https://static.crates.io/crates/$($(package)_crate_name)
|
||||
$(package)_file_name=$($(package)_crate_name)-$($(package)_version).crate
|
||||
$(package)_sha256_hash=8f33b9e4f3b4db97234fc79ea67b12f2d5778bde8f3eab6dbba52eb54c596585
|
||||
$(package)_sha256_hash=c00f10013279ae11155d41b29a0d366012d4ed8c1a1886d72c247b244eb2adbc
|
||||
$(package)_crate_versioned_name=$($(package)_crate_name)
|
||||
|
||||
define $(package)_preprocess_cmds
|
||||
|
|
|
@ -1,9 +1,9 @@
|
|||
package=crate_zcash_proofs
|
||||
$(package)_crate_name=zcash_proofs
|
||||
$(package)_version=0.2.0
|
||||
$(package)_version=0.3.0
|
||||
$(package)_download_path=https://static.crates.io/crates/$($(package)_crate_name)
|
||||
$(package)_file_name=$($(package)_crate_name)-$($(package)_version).crate
|
||||
$(package)_sha256_hash=2011f78f14d5121248d3b4f921434207b1d870fb3bf2efc7d784cae79b19bfbc
|
||||
$(package)_sha256_hash=a72603377d95702e4d5ed6146135d55cb38057f9e021c19a3247e109ecdf620d
|
||||
$(package)_crate_versioned_name=$($(package)_crate_name)
|
||||
|
||||
define $(package)_preprocess_cmds
|
||||
|
|
|
@ -1,33 +1,32 @@
|
|||
rust_crates := \
|
||||
crate_addchain \
|
||||
crate_aes \
|
||||
crate_aesni \
|
||||
crate_aes_soft \
|
||||
crate_aho_corasick \
|
||||
crate_ansi_term \
|
||||
crate_arrayref \
|
||||
crate_arrayvec \
|
||||
crate_autocfg_0.1 \
|
||||
crate_autocfg \
|
||||
crate_base64 \
|
||||
crate_bellman \
|
||||
crate_bigint \
|
||||
crate_bit_vec \
|
||||
crate_blake2b_simd \
|
||||
crate_blake2s_simd \
|
||||
crate_block_buffer \
|
||||
crate_block_cipher_trait \
|
||||
crate_block_cipher \
|
||||
crate_block_modes \
|
||||
crate_block_padding \
|
||||
crate_byte_tools \
|
||||
crate_bls12_381 \
|
||||
crate_byteorder \
|
||||
crate_c2_chacha \
|
||||
crate_cfg_if \
|
||||
crate_chrono \
|
||||
crate_constant_time_eq \
|
||||
crate_crossbeam_channel_0.3 \
|
||||
crate_cpuid_bool \
|
||||
crate_crossbeam_channel \
|
||||
crate_crossbeam_deque \
|
||||
crate_crossbeam_epoch \
|
||||
crate_crossbeam_queue \
|
||||
crate_crossbeam_utils_0.6 \
|
||||
crate_crossbeam_utils \
|
||||
crate_crossbeam \
|
||||
crate_crunchy \
|
||||
|
@ -36,8 +35,9 @@ rust_crates := \
|
|||
crate_curve25519_dalek \
|
||||
crate_digest \
|
||||
crate_directories \
|
||||
crate_dirs_sys \
|
||||
crate_ed25519_zebra \
|
||||
crate_fake_simd \
|
||||
crate_equihash \
|
||||
crate_ff_derive \
|
||||
crate_ff \
|
||||
crate_fpe \
|
||||
|
@ -46,15 +46,15 @@ rust_crates := \
|
|||
crate_generic_array \
|
||||
crate_getrandom \
|
||||
crate_group \
|
||||
crate_hermit_abi \
|
||||
crate_hex \
|
||||
crate_hex2 \
|
||||
crate_jubjub \
|
||||
crate_lazy_static \
|
||||
crate_libc \
|
||||
crate_log \
|
||||
crate_matchers \
|
||||
crate_memchr \
|
||||
crate_maybe_uninit \
|
||||
crate_memoffset \
|
||||
crate_nodrop \
|
||||
crate_num_bigint \
|
||||
crate_num_cpus \
|
||||
crate_num_integer \
|
||||
|
@ -69,13 +69,13 @@ rust_crates := \
|
|||
crate_rand_hc \
|
||||
crate_rand_xorshift \
|
||||
crate_rand \
|
||||
crate_redox_syscall \
|
||||
crate_redox_users \
|
||||
crate_regex_automata \
|
||||
crate_regex_syntax \
|
||||
crate_regex \
|
||||
crate_rustc_version \
|
||||
crate_rust_argon2 \
|
||||
crate_scopeguard \
|
||||
crate_semver_parser \
|
||||
crate_semver \
|
||||
crate_serde \
|
||||
crate_serde_derive \
|
||||
crate_sha2 \
|
||||
|
@ -93,6 +93,7 @@ rust_crates := \
|
|||
crate_tracing \
|
||||
crate_typenum \
|
||||
crate_unicode_xid \
|
||||
crate_version_check \
|
||||
crate_wasi \
|
||||
crate_winapi_i686_pc_windows_gnu \
|
||||
crate_winapi \
|
||||
|
|
|
@ -50,203 +50,20 @@ zeromq 4.3.2 2020-10-01
|
|||
leveldb 1.19 2020-10-01
|
||||
leveldb 1.20 2020-10-01
|
||||
utfcpp 3.1.1 2020-10-01
|
||||
crate_aes 0.4.0 2020-10-01
|
||||
crate_aesni 0.7.0 2020-10-01
|
||||
crate_aes_soft 0.4.0 2020-10-01
|
||||
crate_arrayvec 0.4.12 2020-10-01
|
||||
crate_arrayvec 0.5.0 2020-10-01
|
||||
crate_arrayvec 0.5.1 2020-10-01
|
||||
crate_arrayref 0.3.6 2020-10-01
|
||||
crate_autocfg_0.1 0.1.7 2020-10-01
|
||||
crate_autocfg_0.1 1.0.0 2020-10-01
|
||||
crate_bigint 4.4.2 2020-10-01
|
||||
crate_bigint 4.4.3 2020-10-01
|
||||
crate_blake2b_simd 0.5.9 2020-10-01
|
||||
crate_blake2b_simd 0.5.10 2020-10-01
|
||||
crate_blake2s_simd 0.5.9 2020-10-01
|
||||
crate_blake2s_simd 0.5.10 2020-10-01
|
||||
crate_bit_vec 0.5.0 2020-10-01
|
||||
crate_bit_vec 0.5.1 2020-10-01
|
||||
crate_bit_vec 0.6.0 2020-10-01
|
||||
crate_bit_vec 0.6.1 2020-10-01
|
||||
crate_bit_vec 0.6.2 2020-10-01
|
||||
crate_block_cipher_trait 0.7.0 2020-10-01
|
||||
crate_byteorder 1.3.3 2020-10-01
|
||||
crate_byteorder 1.3.4 2020-10-01
|
||||
crate_block_buffer 0.8.0 2020-10-01
|
||||
crate_block_buffer 0.9.0 2020-10-01
|
||||
crate_block_padding 0.1.5 2020-10-01
|
||||
crate_block_padding 0.2.0 2020-10-01
|
||||
crate_c2_chacha 0.2.3 2020-10-01
|
||||
crate_c2_chacha 0.2.4 2020-10-01
|
||||
crate_cfg_if 0.1.10 2020-10-01
|
||||
crate_crunchy 0.2.1 2020-10-01
|
||||
crate_crunchy 0.2.2 2020-10-01
|
||||
crate_constant_time_eq 0.1.5 2020-10-01
|
||||
crate_crossbeam 0.7.3 2020-10-01
|
||||
crate_digest 0.9.0 2020-10-01
|
||||
crate_crossbeam_channel_0.3 0.4.0 2020-10-01
|
||||
crate_crossbeam_channel_0.3 0.4.1 2020-10-01
|
||||
crate_crossbeam_channel_0.3 0.4.2 2020-10-01
|
||||
crate_crossbeam_deque 0.7.2 2020-10-01
|
||||
crate_crossbeam_deque 0.7.3 2020-10-01
|
||||
crate_crossbeam_epoch 0.8.0 2020-10-01
|
||||
crate_crossbeam_epoch 0.8.1 2020-10-01
|
||||
crate_crossbeam_epoch 0.8.2 2020-10-01
|
||||
crate_crossbeam_utils_0.6 0.7.0 2020-10-01
|
||||
crate_crossbeam_utils_0.6 0.7.1 2020-10-01
|
||||
crate_crossbeam_utils_0.6 0.7.2 2020-10-01
|
||||
crate_crossbeam_queue 0.2.0 2020-10-01
|
||||
crate_crossbeam_queue 0.2.1 2020-10-01
|
||||
crate_crossbeam_queue 0.2.2 2020-10-01
|
||||
crate_crossbeam_queue 0.2.3 2020-10-01
|
||||
crate_crypto_api_chachapoly 0.3.0 2020-10-01
|
||||
crate_crypto_api_chachapoly 0.4.0 2020-10-01
|
||||
crate_crypto_api_chachapoly 0.4.1 2020-10-01
|
||||
crate_crypto_api_chachapoly 0.4.2 2020-10-01
|
||||
crate_directories 2.0.0 2020-10-01
|
||||
crate_directories 2.0.1 2020-10-01
|
||||
crate_directories 2.0.2 2020-10-01
|
||||
crate_directories 3.0.0 2020-10-01
|
||||
crate_getrandom 0.1.13 2020-10-01
|
||||
crate_getrandom 0.1.14 2020-10-01
|
||||
crate_hex 0.4.0 2020-10-01
|
||||
crate_hex 0.4.1 2020-10-01
|
||||
crate_hex 0.4.2 2020-10-01
|
||||
crate_log 0.4.9 2020-10-01
|
||||
crate_log 0.4.10 2020-10-01
|
||||
crate_futures 0.2.0 2020-10-01
|
||||
crate_futures 0.2.1 2020-10-01
|
||||
crate_futures 0.3.0 2020-10-01
|
||||
crate_futures 0.3.1 2020-10-01
|
||||
crate_futures 0.3.2 2020-10-01
|
||||
crate_futures 0.3.3 2020-10-01
|
||||
crate_futures 0.3.4 2020-10-01
|
||||
crate_futures 0.3.5 2020-10-01
|
||||
crate_generic_array 0.13.0 2020-10-01
|
||||
crate_generic_array 0.13.1 2020-10-01
|
||||
crate_generic_array 0.13.2 2020-10-01
|
||||
crate_generic_array 0.14.0 2020-10-01
|
||||
crate_generic_array 0.14.1 2020-10-01
|
||||
crate_generic_array 0.14.2 2020-10-01
|
||||
crate_libc 0.2.63 2020-10-01
|
||||
crate_libc 0.2.64 2020-10-01
|
||||
crate_libc 0.2.65 2020-10-01
|
||||
crate_libc 0.2.66 2020-10-01
|
||||
crate_libc 0.2.67 2020-10-01
|
||||
crate_libc 0.2.68 2020-10-01
|
||||
crate_libc 0.2.69 2020-10-01
|
||||
crate_libc 0.2.70 2020-10-01
|
||||
crate_libc 0.2.71 2020-10-01
|
||||
crate_nodrop 0.1.14 2020-10-01
|
||||
crate_num_bigint 0.2.4 2020-10-01
|
||||
crate_num_bigint 0.2.5 2020-10-01
|
||||
crate_num_bigint 0.2.6 2020-10-01
|
||||
crate_num_bigint 0.3.0 2020-10-01
|
||||
crate_memoffset 0.5.2 2020-10-01
|
||||
crate_memoffset 0.5.3 2020-10-01
|
||||
crate_memoffset 0.5.4 2020-10-01
|
||||
crate_ppv_lite86 0.2.6 2020-10-01
|
||||
crate_ppv_lite86 0.2.7 2020-10-01
|
||||
crate_ppv_lite86 0.2.8 2020-10-01
|
||||
crate_proc_macro2 1.0.4 2020-10-01
|
||||
crate_proc_macro2 1.0.5 2020-10-01
|
||||
crate_proc_macro2 1.0.6 2020-10-01
|
||||
crate_proc_macro2 1.0.7 2020-10-01
|
||||
crate_proc_macro2 1.0.8 2020-10-01
|
||||
crate_proc_macro2 1.0.9 2020-10-01
|
||||
crate_proc_macro2 1.0.10 2020-10-01
|
||||
crate_proc_macro2 1.0.11 2020-10-01
|
||||
crate_proc_macro2 1.0.12 2020-10-01
|
||||
crate_proc_macro2 1.0.13 2020-10-01
|
||||
crate_proc_macro2 1.0.14 2020-10-01
|
||||
crate_proc_macro2 1.0.15 2020-10-01
|
||||
crate_proc_macro2 1.0.16 2020-10-01
|
||||
crate_proc_macro2 1.0.17 2020-10-01
|
||||
crate_proc_macro2 1.0.18 2020-10-01
|
||||
crate_quote 1.0.3 2020-10-01
|
||||
crate_quote 1.0.4 2020-10-01
|
||||
crate_quote 1.0.5 2020-10-01
|
||||
crate_quote 1.0.6 2020-10-01
|
||||
crate_quote 1.0.7 2020-10-01
|
||||
crate_num_cpus 1.11.0 2020-10-01
|
||||
crate_num_cpus 1.11.1 2020-10-01
|
||||
crate_num_cpus 1.12.0 2020-10-01
|
||||
crate_num_cpus 1.13.0 2020-10-01
|
||||
crate_num_integer 0.1.42 2020-10-01
|
||||
crate_num_integer 0.1.43 2020-10-01
|
||||
crate_num_traits 0.2.9 2020-10-01
|
||||
crate_num_traits 0.2.10 2020-10-01
|
||||
crate_num_traits 0.2.11 2020-10-01
|
||||
crate_num_traits 0.2.12 2020-10-01
|
||||
crate_opaque_debug 0.3.0 2020-10-01
|
||||
crate_rand 0.7.1 2020-10-01
|
||||
crate_rand 0.7.2 2020-10-01
|
||||
crate_rand 0.7.3 2020-10-01
|
||||
crate_typenum 1.12.0 2020-10-01
|
||||
crate_rand_chacha 0.2.2 2020-10-01
|
||||
crate_scopeguard 1.1.0 2020-10-01
|
||||
crate_semver 0.10.0 2020-10-01
|
||||
crate_semver_parser 0.9.0 2020-10-01
|
||||
crate_sha2 0.8.1 2020-10-01
|
||||
crate_sha2 0.8.2 2020-10-01
|
||||
crate_sha2 0.9.0 2020-10-01
|
||||
crate_sha2 0.9.1 2020-10-01
|
||||
crate_syn 1.0.6 2020-10-01
|
||||
crate_syn 1.0.7 2020-10-01
|
||||
crate_syn 1.0.8 2020-10-01
|
||||
crate_syn 1.0.9 2020-10-01
|
||||
crate_syn 1.0.10 2020-10-01
|
||||
crate_syn 1.0.11 2020-10-01
|
||||
crate_syn 1.0.12 2020-10-01
|
||||
crate_syn 1.0.13 2020-10-01
|
||||
crate_syn 1.0.14 2020-10-01
|
||||
crate_syn 1.0.15 2020-10-01
|
||||
crate_syn 1.0.16 2020-10-01
|
||||
crate_syn 1.0.17 2020-10-01
|
||||
crate_syn 1.0.18 2020-10-01
|
||||
crate_syn 1.0.19 2020-10-01
|
||||
crate_syn 1.0.20 2020-10-01
|
||||
crate_syn 1.0.21 2020-10-01
|
||||
crate_syn 1.0.22 2020-10-01
|
||||
crate_syn 1.0.23 2020-10-01
|
||||
crate_syn 1.0.24 2020-10-01
|
||||
crate_syn 1.0.25 2020-10-01
|
||||
crate_syn 1.0.26 2020-10-01
|
||||
crate_syn 1.0.27 2020-10-01
|
||||
crate_syn 1.0.28 2020-10-01
|
||||
crate_syn 1.0.29 2020-10-01
|
||||
crate_syn 1.0.30 2020-10-01
|
||||
crate_syn 1.0.31 2020-10-01
|
||||
crate_syn 1.0.32 2020-10-01
|
||||
crate_syn 1.0.33 2020-10-01
|
||||
crate_unicode_xid 0.2.1 2020-10-01
|
||||
|
||||
libevent 2.1.12 2020-10-01
|
||||
native_ccache 3.7.11 2020-10-01
|
||||
crate_crossbeam_channel 0.4.3 2020-10-01
|
||||
crate_crypto_api_chachapoly 0.4.3 2020-10-01
|
||||
crate_directories 3.0.1 2020-10-01
|
||||
crate_ed25519_zebra 2.1.0 2020-10-01
|
||||
crate_ed25519_zebra 2.1.1 2020-10-01
|
||||
crate_log 0.4.11 2020-10-01
|
||||
crate_generic_array 0.14.3 2020-10-01
|
||||
crate_libc 0.2.72 2020-10-01
|
||||
crate_libc 0.2.73 2020-10-01
|
||||
crate_libc 0.2.74 2020-10-01
|
||||
crate_memoffset 0.5.5 2020-10-01
|
||||
crate_proc_macro2 1.0.19 2020-10-01
|
||||
crate_serde 1.0.114 2020-10-01
|
||||
crate_serde_derive 1.0.114 2020-10-01
|
||||
crate_syn 1.0.34 2020-10-01
|
||||
crate_syn 1.0.35 2020-10-01
|
||||
crate_syn 1.0.36 2020-10-01
|
||||
crate_syn 1.0.37 2020-10-01
|
||||
crate_winapi 0.3.9 2020-10-01
|
||||
rust 1.45.0 2020-10-01
|
||||
rust 1.45.1 2020-10-01
|
||||
rust 1.45.2 2020-10-01
|
||||
|
||||
# The aes crate depends on "aesni ^0.8"
|
||||
crate_aesni 0.9.0 2020-11-01
|
||||
|
||||
# The bigint crate depends on "crunchy ^0.1.5"
|
||||
crate_crunchy 0.2.1 2020-11-01
|
||||
crate_crunchy 0.2.2 2020-11-01
|
||||
|
||||
# The chrono crate depends on "time ^0.1.43", and is highly unlikely to
|
||||
# upgrade to v0.2: https://github.com/chronotope/chrono/issues/400
|
||||
crate_time 0.2.0 2021-02-01
|
||||
|
@ -266,3 +83,30 @@ crate_time 0.2.13 2021-02-01
|
|||
crate_time 0.2.14 2021-02-01
|
||||
crate_time 0.2.15 2021-02-01
|
||||
crate_time 0.2.16 2021-02-01
|
||||
|
||||
# The futures-cpupool crate depends on "futures ^0.1", which was last
|
||||
# updated 3 years ago. We plan to move away from it when we refactor
|
||||
# bellman's multicore support.
|
||||
crate_futures 0.2.0 2021-02-01
|
||||
crate_futures 0.2.1 2021-02-01
|
||||
crate_futures 0.3.0 2021-02-01
|
||||
crate_futures 0.3.1 2021-02-01
|
||||
crate_futures 0.3.2 2021-02-01
|
||||
crate_futures 0.3.3 2021-02-01
|
||||
crate_futures 0.3.4 2021-02-01
|
||||
crate_futures 0.3.5 2021-02-01
|
||||
|
||||
# The redox_users crate depends on:
|
||||
# - "redox_syscall ^0.1"
|
||||
# - "rust-argon2 ^0.7", which in turn depends on "base64 ^0.11"
|
||||
crate_base64 0.12.0 2020-11-01
|
||||
crate_base64 0.12.1 2020-11-01
|
||||
crate_base64 0.12.2 2020-11-01
|
||||
crate_base64 0.12.3 2020-11-01
|
||||
crate_redox_syscall 0.2.0 2020-11-01
|
||||
crate_rust_argon2 0.8.0 2020-11-01
|
||||
crate_rust_argon2 0.8.1 2020-11-01
|
||||
crate_rust_argon2 0.8.2 2020-11-01
|
||||
|
||||
# tracing 0.1.20 was yanked.
|
||||
crate_tracing 0.1.20 9999-12-31
|
||||
|
|
|
@ -97,28 +97,32 @@ def get_dependency_list():
|
|||
|
||||
# Rust crates (filename portion: depends/packages/crate_<NAME>.mk).
|
||||
crates = [
|
||||
"aes", "aesni", "aes_soft", "aho_corasick", "ansi_term",
|
||||
"arrayvec", "arrayref", "autocfg", "autocfg_0.1",
|
||||
"bellman", "bigint", "blake2b_simd", "blake2s_simd", "bit_vec",
|
||||
"block_cipher_trait", "byteorder", "byte_tools", "block_buffer",
|
||||
"block_padding", "c2_chacha", "cfg_if", "chrono", "crunchy",
|
||||
"curve25519_dalek", "constant_time_eq", "crossbeam", "digest", "fpe",
|
||||
"crossbeam_channel_0.3", "crossbeam_utils_0.6",
|
||||
"addchain", "aes", "aesni", "aes_soft", "ansi_term",
|
||||
"arrayvec", "arrayref", "autocfg",
|
||||
"base64", "bellman", "bigint", "bit_vec", "blake2b_simd", "blake2s_simd",
|
||||
"block_buffer", "block_cipher", "block_modes", "block_padding",
|
||||
"bls12_381", "byteorder",
|
||||
"cfg_if", "chrono", "constant_time_eq", "cpuid_bool",
|
||||
"crossbeam_channel", "crossbeam_deque", "crossbeam_epoch",
|
||||
"crossbeam_utils", "crossbeam_queue", "crypto_api",
|
||||
"crypto_api_chachapoly", "directories", "ed25519_zebra", "fake_simd",
|
||||
"ff", "ff_derive", "getrandom", "hex", "hex2", "log",
|
||||
"futures_cpupool", "futures", "generic_array", "group",
|
||||
"lazy_static", "libc", "matchers", "memchr", "memoffset", "nodrop", "num_bigint",
|
||||
"ppv_lite86", "proc_macro2", "quote", "num_cpus", "num_integer",
|
||||
"num_traits", "opaque_debug", "pairing", "rand", "typenum",
|
||||
"crossbeam_utils", "crossbeam_queue", "crossbeam",
|
||||
"crunchy", "crypto_api", "crypto_api_chachapoly", "curve25519_dalek",
|
||||
"directories", "dirs_sys", "digest",
|
||||
"ed25519_zebra", "equihash",
|
||||
"ff", "ff_derive", "fpe", "futures_cpupool", "futures",
|
||||
"generic_array", "getrandom", "group",
|
||||
"hermit_abi", "hex", "jubjub", "log",
|
||||
"lazy_static", "libc", "matchers", "maybe_uninit", "memoffset",
|
||||
"num_bigint", "num_cpus", "num_integer", "num_traits",
|
||||
"ppv_lite86", "proc_macro2", "quote",
|
||||
"opaque_debug", "pairing", "rand", "typenum",
|
||||
"rand_chacha", "rand_core", "rand_hc", "rand_xorshift",
|
||||
"regex", "regex_automata", "regex_syntax",
|
||||
"rustc_version", "scopeguard", "semver", "semver_parser", "serde",
|
||||
"redox_syscall", "redox_users",
|
||||
"regex", "regex_automata", "regex_syntax", "rust_argon2",
|
||||
"scopeguard", "serde",
|
||||
"serde_derive", "sha2", "sharded_slab", "subtle", "syn", "thiserror",
|
||||
"thiserror_impl", "thread_local", "time", "tracing", "tracing_appender",
|
||||
"tracing_attributes", "tracing_core", "tracing_subscriber",
|
||||
"unicode_xid", "wasi",
|
||||
"unicode_xid", "version_check", "wasi",
|
||||
"winapi_i686_pc_windows_gnu", "winapi",
|
||||
"winapi_x86_64_pc_windows_gnu", "zcash_history", "zcash_primitives",
|
||||
"zcash_proofs", "zeroize"
|
||||
|
@ -127,10 +131,6 @@ def get_dependency_list():
|
|||
# Sometimes we need multiple versions of a crate, in which case there can't
|
||||
# be a direct mapping between the filename portion and the crate name.
|
||||
crate_name_exceptions = {
|
||||
"autocfg_0.1": "autocfg",
|
||||
"crossbeam_channel_0.3": "crossbeam_channel",
|
||||
"crossbeam_utils_0.6": "crossbeam_utils",
|
||||
"hex2": "hex"
|
||||
}
|
||||
|
||||
for crate in crates:
|
||||
|
@ -299,7 +299,9 @@ class DependsVersionGetter:
|
|||
"package\)_version=(\d+)\.(\d+)\.(\d+)$",
|
||||
"package\)_version=(\d+)\.(\d+)$",
|
||||
"package\)_version=(\d+)_(\d+)_(\d+)$",
|
||||
"package\)_version=(\d+)\.(\d+)\.(\d+)([a-z])$"
|
||||
"package\)_version=(\d+)\.(\d+)\.(\d+)([a-z])$",
|
||||
# Workaround for wasi 0.9.0 preview
|
||||
"package\)_version=(\d+)\.(\d+)\.(\d+)\+wasi-snapshot-preview1$",
|
||||
]
|
||||
|
||||
current_version = None
|
||||
|
|
|
@ -34,13 +34,10 @@ main(int argc, char** argv)
|
|||
librustzcash_init_zksnark_params(
|
||||
reinterpret_cast<const codeunit*>(sapling_spend_str.c_str()),
|
||||
sapling_spend_str.length(),
|
||||
"8270785a1a0d0bc77196f000ee6d221c9c9894f55307bd9357c3f0105d31ca63991ab91324160d8f53e2bbd3c2633a6eb8bdf5205d822e7f3f73edac51b2b70c",
|
||||
reinterpret_cast<const codeunit*>(sapling_output_str.c_str()),
|
||||
sapling_output_str.length(),
|
||||
"657e3d38dbb5cb5e7dd2970e8b03d69b4787dd907285b5a7f0790dcc8072f60bf593b32cc2d1c030e00ff5ae64bf84c5c3beb84ddc841d48264b4a171744d028",
|
||||
reinterpret_cast<const codeunit*>(sprout_groth16_str.c_str()),
|
||||
sprout_groth16_str.length(),
|
||||
"e9b238411bd6c0ec4791e9d04245ec350c9c5744f5610dfcce4365d5ca49dfefd5054e371842b3f88fa1b9d7e8e075249b3ebabd167fa8b0f3161292d36c180a"
|
||||
sprout_groth16_str.length()
|
||||
);
|
||||
|
||||
benchmark::BenchRunner::RunAll();
|
||||
|
|
|
@ -31,13 +31,10 @@ int main(int argc, char **argv) {
|
|||
librustzcash_init_zksnark_params(
|
||||
reinterpret_cast<const codeunit*>(sapling_spend_str.c_str()),
|
||||
sapling_spend_str.length(),
|
||||
"8270785a1a0d0bc77196f000ee6d221c9c9894f55307bd9357c3f0105d31ca63991ab91324160d8f53e2bbd3c2633a6eb8bdf5205d822e7f3f73edac51b2b70c",
|
||||
reinterpret_cast<const codeunit*>(sapling_output_str.c_str()),
|
||||
sapling_output_str.length(),
|
||||
"657e3d38dbb5cb5e7dd2970e8b03d69b4787dd907285b5a7f0790dcc8072f60bf593b32cc2d1c030e00ff5ae64bf84c5c3beb84ddc841d48264b4a171744d028",
|
||||
reinterpret_cast<const codeunit*>(sprout_groth16_str.c_str()),
|
||||
sprout_groth16_str.length(),
|
||||
"e9b238411bd6c0ec4791e9d04245ec350c9c5744f5610dfcce4365d5ca49dfefd5054e371842b3f88fa1b9d7e8e075249b3ebabd167fa8b0f3161292d36c180a"
|
||||
sprout_groth16_str.length()
|
||||
);
|
||||
|
||||
testing::InitGoogleMock(&argc, argv);
|
||||
|
|
|
@ -714,13 +714,10 @@ static void ZC_LoadParams(
|
|||
librustzcash_init_zksnark_params(
|
||||
reinterpret_cast<const codeunit*>(sapling_spend_str.c_str()),
|
||||
sapling_spend_str.length(),
|
||||
"8270785a1a0d0bc77196f000ee6d221c9c9894f55307bd9357c3f0105d31ca63991ab91324160d8f53e2bbd3c2633a6eb8bdf5205d822e7f3f73edac51b2b70c",
|
||||
reinterpret_cast<const codeunit*>(sapling_output_str.c_str()),
|
||||
sapling_output_str.length(),
|
||||
"657e3d38dbb5cb5e7dd2970e8b03d69b4787dd907285b5a7f0790dcc8072f60bf593b32cc2d1c030e00ff5ae64bf84c5c3beb84ddc841d48264b4a171744d028",
|
||||
reinterpret_cast<const codeunit*>(sprout_groth16_str.c_str()),
|
||||
sprout_groth16_str.length(),
|
||||
"e9b238411bd6c0ec4791e9d04245ec350c9c5744f5610dfcce4365d5ca49dfefd5054e371842b3f88fa1b9d7e8e075249b3ebabd167fa8b0f3161292d36c180a"
|
||||
sprout_groth16_str.length()
|
||||
);
|
||||
|
||||
gettimeofday(&tv_end, 0);
|
||||
|
|
|
@ -51,13 +51,10 @@ extern "C" {
|
|||
void librustzcash_init_zksnark_params(
|
||||
const codeunit* spend_path,
|
||||
size_t spend_path_len,
|
||||
const char* spend_hash,
|
||||
const codeunit* output_path,
|
||||
size_t output_path_len,
|
||||
const char* output_hash,
|
||||
const codeunit* sprout_path,
|
||||
size_t sprout_path_len,
|
||||
const char* sprout_hash
|
||||
size_t sprout_path_len
|
||||
);
|
||||
|
||||
/// Validates the provided Equihash solution against
|
||||
|
@ -207,7 +204,7 @@ extern "C" {
|
|||
const unsigned char *diversifier,
|
||||
const unsigned char *pk_d,
|
||||
const uint64_t value,
|
||||
const unsigned char *r,
|
||||
const unsigned char *rcm,
|
||||
const unsigned char *ak,
|
||||
const unsigned char *nk,
|
||||
const uint64_t position,
|
||||
|
@ -220,11 +217,11 @@ extern "C" {
|
|||
/// The `pk_d` and `r` parameters must be of length 32.
|
||||
/// The result is also of length 32 and placed in `result`.
|
||||
/// Returns false if the diversifier or pk_d is not valid
|
||||
bool librustzcash_sapling_compute_cm(
|
||||
bool librustzcash_sapling_compute_cmu(
|
||||
const unsigned char *diversifier,
|
||||
const unsigned char *pk_d,
|
||||
const uint64_t value,
|
||||
const unsigned char *r,
|
||||
const unsigned char *rcm,
|
||||
unsigned char *result
|
||||
);
|
||||
|
||||
|
|
|
@ -21,16 +21,15 @@
|
|||
|
||||
use bellman::groth16::{Parameters, PreparedVerifyingKey, Proof};
|
||||
use blake2s_simd::Params as Blake2sParams;
|
||||
use ff::{PrimeField, PrimeFieldRepr};
|
||||
use lazy_static;
|
||||
use libc::{c_char, c_uchar, size_t};
|
||||
use pairing::bls12_381::{Bls12, Fr, FrRepr};
|
||||
use bls12_381::Bls12;
|
||||
use group::{cofactor::CofactorGroup, GroupEncoding};
|
||||
use libc::{c_uchar, size_t};
|
||||
use rand_core::{OsRng, RngCore};
|
||||
use std::ffi::CStr;
|
||||
use std::fs::File;
|
||||
use std::io::BufReader;
|
||||
use std::path::{Path, PathBuf};
|
||||
use std::slice;
|
||||
use subtle::CtOption;
|
||||
|
||||
#[cfg(not(target_os = "windows"))]
|
||||
use std::ffi::OsStr;
|
||||
|
@ -44,19 +43,14 @@ use std::os::windows::ffi::OsStringExt;
|
|||
|
||||
use zcash_primitives::{
|
||||
block::equihash,
|
||||
constants::CRH_IVK_PERSONALIZATION,
|
||||
jubjub::{
|
||||
edwards,
|
||||
fs::{Fs, FsRepr},
|
||||
FixedGenerators, JubjubEngine, JubjubParams, PrimeOrder, ToUniform, Unknown,
|
||||
},
|
||||
constants::{CRH_IVK_PERSONALIZATION, PROOF_GENERATION_KEY_GENERATOR, SPENDING_KEY_GENERATOR},
|
||||
merkle_tree::MerklePath,
|
||||
note_encryption::sapling_ka_agree,
|
||||
primitives::{Diversifier, Note, PaymentAddress, ProofGenerationKey, ViewingKey},
|
||||
primitives::{Diversifier, Note, PaymentAddress, ProofGenerationKey, Rseed, ViewingKey},
|
||||
redjubjub::{self, Signature},
|
||||
sapling::{merkle_hash, spend_sig},
|
||||
transaction::components::Amount,
|
||||
zip32, JUBJUB,
|
||||
zip32,
|
||||
};
|
||||
use zcash_proofs::{
|
||||
circuit::sapling::TREE_DEPTH as SAPLING_TREE_DEPTH,
|
||||
|
@ -81,26 +75,22 @@ static mut SAPLING_SPEND_PARAMS: Option<Parameters<Bls12>> = None;
|
|||
static mut SAPLING_OUTPUT_PARAMS: Option<Parameters<Bls12>> = None;
|
||||
static mut SPROUT_GROTH16_PARAMS_PATH: Option<PathBuf> = None;
|
||||
|
||||
/// Reads an FrRepr from a [u8; 32].
|
||||
fn read_fr(from: &[u8; 32]) -> FrRepr {
|
||||
let mut f = FrRepr::default();
|
||||
f.read_le(&from[..]).expect("length is 32 bytes");
|
||||
f
|
||||
}
|
||||
|
||||
/// Reads an FsRepr from a [u8; 32].
|
||||
fn read_fs(from: &[u8; 32]) -> FsRepr {
|
||||
let mut f = <<Bls12 as JubjubEngine>::Fs as PrimeField>::Repr::default();
|
||||
f.read_le(&from[..]).expect("length is 32 bytes");
|
||||
f
|
||||
/// Converts CtOption<t> into Option<T>
|
||||
fn de_ct<T>(ct: CtOption<T>) -> Option<T> {
|
||||
if ct.is_some().into() {
|
||||
Some(ct.unwrap())
|
||||
} else {
|
||||
None
|
||||
}
|
||||
}
|
||||
|
||||
/// Reads an FsRepr from a [u8; 32]
|
||||
/// and multiplies it by the given base.
|
||||
fn fixed_scalar_mult(from: &[u8; 32], p_g: FixedGenerators) -> edwards::Point<Bls12, PrimeOrder> {
|
||||
let f = read_fs(from);
|
||||
fn fixed_scalar_mult(from: &[u8; 32], p_g: &jubjub::SubgroupPoint) -> jubjub::SubgroupPoint {
|
||||
// We only call this with `from` being a valid jubjub::Scalar.
|
||||
let f = jubjub::Scalar::from_bytes(from).unwrap();
|
||||
|
||||
JUBJUB.generator(p_g).mul(f, &JUBJUB)
|
||||
p_g * f
|
||||
}
|
||||
|
||||
/// Loads the zk-SNARK parameters into memory and saves paths as necessary.
|
||||
|
@ -110,13 +100,10 @@ fn fixed_scalar_mult(from: &[u8; 32], p_g: FixedGenerators) -> edwards::Point<Bl
|
|||
pub extern "C" fn librustzcash_init_zksnark_params(
|
||||
spend_path: *const u8,
|
||||
spend_path_len: usize,
|
||||
spend_hash: *const c_char,
|
||||
output_path: *const u8,
|
||||
output_path_len: usize,
|
||||
output_hash: *const c_char,
|
||||
sprout_path: *const u8,
|
||||
sprout_path_len: usize,
|
||||
sprout_hash: *const c_char,
|
||||
) {
|
||||
let spend_path = Path::new(OsStr::from_bytes(unsafe {
|
||||
slice::from_raw_parts(spend_path, spend_path_len)
|
||||
|
@ -132,14 +119,7 @@ pub extern "C" fn librustzcash_init_zksnark_params(
|
|||
})))
|
||||
};
|
||||
|
||||
init_zksnark_params(
|
||||
spend_path,
|
||||
spend_hash,
|
||||
output_path,
|
||||
output_hash,
|
||||
sprout_path,
|
||||
sprout_hash,
|
||||
)
|
||||
init_zksnark_params(spend_path, output_path, sprout_path)
|
||||
}
|
||||
|
||||
/// Loads the zk-SNARK parameters into memory and saves paths as necessary.
|
||||
|
@ -149,13 +129,10 @@ pub extern "C" fn librustzcash_init_zksnark_params(
|
|||
pub extern "C" fn librustzcash_init_zksnark_params(
|
||||
spend_path: *const u16,
|
||||
spend_path_len: usize,
|
||||
spend_hash: *const c_char,
|
||||
output_path: *const u16,
|
||||
output_path_len: usize,
|
||||
output_hash: *const c_char,
|
||||
sprout_path: *const u16,
|
||||
sprout_path_len: usize,
|
||||
sprout_hash: *const c_char,
|
||||
) {
|
||||
let spend_path =
|
||||
OsString::from_wide(unsafe { slice::from_raw_parts(spend_path, spend_path_len) });
|
||||
|
@ -171,52 +148,15 @@ pub extern "C" fn librustzcash_init_zksnark_params(
|
|||
|
||||
init_zksnark_params(
|
||||
Path::new(&spend_path),
|
||||
spend_hash,
|
||||
Path::new(&output_path),
|
||||
output_hash,
|
||||
sprout_path.as_ref().map(|p| Path::new(p)),
|
||||
sprout_hash,
|
||||
)
|
||||
}
|
||||
|
||||
fn init_zksnark_params(
|
||||
spend_path: &Path,
|
||||
spend_hash: *const c_char,
|
||||
output_path: &Path,
|
||||
output_hash: *const c_char,
|
||||
sprout_path: Option<&Path>,
|
||||
sprout_hash: *const c_char,
|
||||
) {
|
||||
// Initialize jubjub parameters here
|
||||
lazy_static::initialize(&JUBJUB);
|
||||
|
||||
let spend_hash = unsafe { CStr::from_ptr(spend_hash) }
|
||||
.to_str()
|
||||
.expect("hash should be a valid string");
|
||||
|
||||
let output_hash = unsafe { CStr::from_ptr(output_hash) }
|
||||
.to_str()
|
||||
.expect("hash should be a valid string");
|
||||
|
||||
let sprout_hash = if sprout_path.is_none() {
|
||||
None
|
||||
} else {
|
||||
Some(
|
||||
unsafe { CStr::from_ptr(sprout_hash) }
|
||||
.to_str()
|
||||
.expect("hash should be a valid string"),
|
||||
)
|
||||
};
|
||||
|
||||
fn init_zksnark_params(spend_path: &Path, output_path: &Path, sprout_path: Option<&Path>) {
|
||||
// Load params
|
||||
let (spend_params, spend_vk, output_params, output_vk, sprout_vk) = load_parameters(
|
||||
spend_path,
|
||||
spend_hash,
|
||||
output_path,
|
||||
output_hash,
|
||||
sprout_path,
|
||||
sprout_hash,
|
||||
);
|
||||
let (spend_params, spend_vk, output_params, output_vk, sprout_vk) =
|
||||
load_parameters(spend_path, output_path, sprout_path);
|
||||
|
||||
// Caller is responsible for calling this function once, so
|
||||
// these global mutations are safe.
|
||||
|
@ -236,12 +176,12 @@ fn init_zksnark_params(
|
|||
/// `result` must be a valid pointer to 32 bytes which will be written.
|
||||
#[no_mangle]
|
||||
pub extern "C" fn librustzcash_tree_uncommitted(result: *mut [c_uchar; 32]) {
|
||||
let tmp = Note::<Bls12>::uncommitted().into_repr();
|
||||
let tmp = Note::uncommitted().to_bytes();
|
||||
|
||||
// Should be okay, caller is responsible for ensuring the pointer
|
||||
// is a valid pointer to 32 bytes that can be mutated.
|
||||
let result = unsafe { &mut *result };
|
||||
tmp.write_le(&mut result[..]).expect("length is 32 bytes");
|
||||
*result = tmp;
|
||||
}
|
||||
|
||||
/// Computes a merkle tree hash for a given depth. The `depth` parameter should
|
||||
|
@ -259,21 +199,13 @@ pub extern "C" fn librustzcash_merkle_hash(
|
|||
result: *mut [c_uchar; 32],
|
||||
) {
|
||||
// Should be okay, because caller is responsible for ensuring
|
||||
// the pointer is a valid pointer to 32 bytes, and that is the
|
||||
// size of the representation
|
||||
let a_repr = read_fr(unsafe { &*a });
|
||||
|
||||
// Should be okay, because caller is responsible for ensuring
|
||||
// the pointer is a valid pointer to 32 bytes, and that is the
|
||||
// size of the representation
|
||||
let b_repr = read_fr(unsafe { &*b });
|
||||
|
||||
let tmp = merkle_hash(depth, &a_repr, &b_repr);
|
||||
// the pointers are valid pointers to 32 bytes.
|
||||
let tmp = merkle_hash(depth, unsafe { &*a }, unsafe { &*b });
|
||||
|
||||
// Should be okay, caller is responsible for ensuring the pointer
|
||||
// is a valid pointer to 32 bytes that can be mutated.
|
||||
let result = unsafe { &mut *result };
|
||||
tmp.write_le(&mut result[..]).expect("length is 32 bytes");
|
||||
*result = tmp;
|
||||
}
|
||||
|
||||
#[no_mangle] // ToScalar
|
||||
|
@ -281,33 +213,31 @@ pub extern "C" fn librustzcash_to_scalar(input: *const [c_uchar; 64], result: *m
|
|||
// Should be okay, because caller is responsible for ensuring
|
||||
// the pointer is a valid pointer to 32 bytes, and that is the
|
||||
// size of the representation
|
||||
let scalar = <Bls12 as JubjubEngine>::Fs::to_uniform(unsafe { &(&*input)[..] }).into_repr();
|
||||
let scalar = jubjub::Scalar::from_bytes_wide(unsafe { &*input });
|
||||
|
||||
let result = unsafe { &mut *result };
|
||||
|
||||
scalar
|
||||
.write_le(&mut result[..])
|
||||
.expect("length is 32 bytes");
|
||||
*result = scalar.to_bytes();
|
||||
}
|
||||
|
||||
#[no_mangle]
|
||||
pub extern "C" fn librustzcash_ask_to_ak(ask: *const [c_uchar; 32], result: *mut [c_uchar; 32]) {
|
||||
let ask = unsafe { &*ask };
|
||||
let ak = fixed_scalar_mult(ask, FixedGenerators::SpendingKeyGenerator);
|
||||
let ak = fixed_scalar_mult(ask, &SPENDING_KEY_GENERATOR);
|
||||
|
||||
let result = unsafe { &mut *result };
|
||||
|
||||
ak.write(&mut result[..]).expect("length is 32 bytes");
|
||||
*result = ak.to_bytes();
|
||||
}
|
||||
|
||||
#[no_mangle]
|
||||
pub extern "C" fn librustzcash_nsk_to_nk(nsk: *const [c_uchar; 32], result: *mut [c_uchar; 32]) {
|
||||
let nsk = unsafe { &*nsk };
|
||||
let nk = fixed_scalar_mult(nsk, FixedGenerators::ProofGenerationKey);
|
||||
let nk = fixed_scalar_mult(nsk, &PROOF_GENERATION_KEY_GENERATOR);
|
||||
|
||||
let result = unsafe { &mut *result };
|
||||
|
||||
nk.write(&mut result[..]).expect("length is 32 bytes");
|
||||
*result = nk.to_bytes();
|
||||
}
|
||||
|
||||
#[no_mangle]
|
||||
|
@ -338,7 +268,7 @@ pub extern "C" fn librustzcash_crh_ivk(
|
|||
#[no_mangle]
|
||||
pub extern "C" fn librustzcash_check_diversifier(diversifier: *const [c_uchar; 11]) -> bool {
|
||||
let diversifier = Diversifier(unsafe { *diversifier });
|
||||
diversifier.g_d::<Bls12>(&JUBJUB).is_some()
|
||||
diversifier.g_d().is_some()
|
||||
}
|
||||
|
||||
#[no_mangle]
|
||||
|
@ -347,14 +277,14 @@ pub extern "C" fn librustzcash_ivk_to_pkd(
|
|||
diversifier: *const [c_uchar; 11],
|
||||
result: *mut [c_uchar; 32],
|
||||
) -> bool {
|
||||
let ivk = read_fs(unsafe { &*ivk });
|
||||
let ivk = de_ct(jubjub::Scalar::from_bytes(unsafe { &*ivk }));
|
||||
let diversifier = Diversifier(unsafe { *diversifier });
|
||||
if let Some(g_d) = diversifier.g_d::<Bls12>(&JUBJUB) {
|
||||
let pk_d = g_d.mul(ivk, &JUBJUB);
|
||||
if let (Some(ivk), Some(g_d)) = (ivk, diversifier.g_d()) {
|
||||
let pk_d = g_d * ivk;
|
||||
|
||||
let result = unsafe { &mut *result };
|
||||
|
||||
pk_d.write(&mut result[..]).expect("length is 32 bytes");
|
||||
*result = pk_d.to_bytes();
|
||||
|
||||
true
|
||||
} else {
|
||||
|
@ -374,11 +304,8 @@ fn test_gen_r() {
|
|||
assert_ne!(r1, r2);
|
||||
|
||||
// Verify r values are valid in the field
|
||||
let mut repr = FsRepr::default();
|
||||
repr.read_le(&r1[..]).expect("length is not 32 bytes");
|
||||
let _ = Fs::from_repr(repr).unwrap();
|
||||
repr.read_le(&r2[..]).expect("length is not 32 bytes");
|
||||
let _ = Fs::from_repr(repr).unwrap();
|
||||
let _ = jubjub::Scalar::from_bytes(&r1).unwrap();
|
||||
let _ = jubjub::Scalar::from_bytes(&r2).unwrap();
|
||||
}
|
||||
|
||||
/// Generate uniformly random scalar in Jubjub. The result is of length 32.
|
||||
|
@ -390,11 +317,9 @@ pub extern "C" fn librustzcash_sapling_generate_r(result: *mut [c_uchar; 32]) {
|
|||
rng.fill_bytes(&mut buffer);
|
||||
|
||||
// reduce to uniform value
|
||||
let r = <Bls12 as JubjubEngine>::Fs::to_uniform(&buffer[..]);
|
||||
let r = jubjub::Scalar::from_bytes_wide(&buffer);
|
||||
let result = unsafe { &mut *result };
|
||||
r.into_repr()
|
||||
.write_le(&mut result[..])
|
||||
.expect("result must be 32 bytes");
|
||||
*result = r.to_bytes();
|
||||
}
|
||||
|
||||
// Private utility function to get Note from C parameters
|
||||
|
@ -402,24 +327,25 @@ fn priv_get_note(
|
|||
diversifier: *const [c_uchar; 11],
|
||||
pk_d: *const [c_uchar; 32],
|
||||
value: u64,
|
||||
r: *const [c_uchar; 32],
|
||||
) -> Result<Note<Bls12>, ()> {
|
||||
rcm: *const [c_uchar; 32],
|
||||
) -> Result<Note, ()> {
|
||||
let diversifier = Diversifier(unsafe { *diversifier });
|
||||
let g_d = diversifier.g_d::<Bls12>(&JUBJUB).ok_or(())?;
|
||||
let g_d = diversifier.g_d().ok_or(())?;
|
||||
|
||||
let pk_d = edwards::Point::<Bls12, Unknown>::read(&(unsafe { &*pk_d })[..], &JUBJUB)
|
||||
.map_err(|_| ())?;
|
||||
let pk_d = de_ct(jubjub::ExtendedPoint::from_bytes(unsafe { &*pk_d })).ok_or(())?;
|
||||
|
||||
let pk_d = pk_d.as_prime_order(&JUBJUB).ok_or(())?;
|
||||
let pk_d = de_ct(pk_d.into_subgroup()).ok_or(())?;
|
||||
|
||||
// Deserialize randomness
|
||||
let r = Fs::from_repr(read_fs(unsafe { &*r })).map_err(|_| ())?;
|
||||
// If this is after ZIP 212, the caller has calculated rcm, and we don't need to call
|
||||
// Note::derive_esk, so we just pretend the note was using this rcm all along.
|
||||
let rseed = Rseed::BeforeZip212(de_ct(jubjub::Scalar::from_bytes(unsafe { &*rcm })).ok_or(())?);
|
||||
|
||||
let note = Note {
|
||||
value,
|
||||
g_d,
|
||||
pk_d,
|
||||
r,
|
||||
rseed,
|
||||
};
|
||||
|
||||
Ok(note)
|
||||
|
@ -436,39 +362,39 @@ pub extern "C" fn librustzcash_sapling_compute_nf(
|
|||
diversifier: *const [c_uchar; 11],
|
||||
pk_d: *const [c_uchar; 32],
|
||||
value: u64,
|
||||
r: *const [c_uchar; 32],
|
||||
rcm: *const [c_uchar; 32],
|
||||
ak: *const [c_uchar; 32],
|
||||
nk: *const [c_uchar; 32],
|
||||
position: u64,
|
||||
result: *mut [c_uchar; 32],
|
||||
) -> bool {
|
||||
let note = match priv_get_note(diversifier, pk_d, value, r) {
|
||||
let note = match priv_get_note(diversifier, pk_d, value, rcm) {
|
||||
Ok(p) => p,
|
||||
Err(_) => return false,
|
||||
};
|
||||
|
||||
let ak = match edwards::Point::<Bls12, Unknown>::read(&(unsafe { &*ak })[..], &JUBJUB) {
|
||||
Ok(p) => p,
|
||||
Err(_) => return false,
|
||||
let ak = match de_ct(jubjub::ExtendedPoint::from_bytes(unsafe { &*ak })) {
|
||||
Some(p) => p,
|
||||
None => return false,
|
||||
};
|
||||
|
||||
let ak = match ak.as_prime_order(&JUBJUB) {
|
||||
let ak = match de_ct(ak.into_subgroup()) {
|
||||
Some(ak) => ak,
|
||||
None => return false,
|
||||
};
|
||||
|
||||
let nk = match edwards::Point::<Bls12, Unknown>::read(&(unsafe { &*nk })[..], &JUBJUB) {
|
||||
Ok(p) => p,
|
||||
Err(_) => return false,
|
||||
let nk = match de_ct(jubjub::ExtendedPoint::from_bytes(unsafe { &*nk })) {
|
||||
Some(p) => p,
|
||||
None => return false,
|
||||
};
|
||||
|
||||
let nk = match nk.as_prime_order(&JUBJUB) {
|
||||
let nk = match de_ct(nk.into_subgroup()) {
|
||||
Some(nk) => nk,
|
||||
None => return false,
|
||||
};
|
||||
|
||||
let vk = ViewingKey { ak, nk };
|
||||
let nf = note.nf(&vk, position, &JUBJUB);
|
||||
let nf = note.nf(&vk, position);
|
||||
let result = unsafe { &mut *result };
|
||||
result.copy_from_slice(&nf);
|
||||
|
||||
|
@ -482,23 +408,20 @@ pub extern "C" fn librustzcash_sapling_compute_nf(
|
|||
/// The result is also of length 32 and placed in `result`.
|
||||
/// Returns false if `diversifier` or `pk_d` is not valid.
|
||||
#[no_mangle]
|
||||
pub extern "C" fn librustzcash_sapling_compute_cm(
|
||||
pub extern "C" fn librustzcash_sapling_compute_cmu(
|
||||
diversifier: *const [c_uchar; 11],
|
||||
pk_d: *const [c_uchar; 32],
|
||||
value: u64,
|
||||
r: *const [c_uchar; 32],
|
||||
rcm: *const [c_uchar; 32],
|
||||
result: *mut [c_uchar; 32],
|
||||
) -> bool {
|
||||
let note = match priv_get_note(diversifier, pk_d, value, r) {
|
||||
let note = match priv_get_note(diversifier, pk_d, value, rcm) {
|
||||
Ok(p) => p,
|
||||
Err(_) => return false,
|
||||
};
|
||||
|
||||
let result = unsafe { &mut *result };
|
||||
note.cm(&JUBJUB)
|
||||
.into_repr()
|
||||
.write_le(&mut result[..])
|
||||
.expect("length is 32 bytes");
|
||||
*result = note.cmu().to_bytes();
|
||||
|
||||
true
|
||||
}
|
||||
|
@ -514,15 +437,15 @@ pub extern "C" fn librustzcash_sapling_ka_agree(
|
|||
result: *mut [c_uchar; 32],
|
||||
) -> bool {
|
||||
// Deserialize p
|
||||
let p = match edwards::Point::<Bls12, Unknown>::read(&(unsafe { &*p })[..], &JUBJUB) {
|
||||
Ok(p) => p,
|
||||
Err(_) => return false,
|
||||
let p = match de_ct(jubjub::ExtendedPoint::from_bytes(unsafe { &*p })) {
|
||||
Some(p) => p,
|
||||
None => return false,
|
||||
};
|
||||
|
||||
// Deserialize sk
|
||||
let sk = match Fs::from_repr(read_fs(unsafe { &*sk })) {
|
||||
Ok(p) => p,
|
||||
Err(_) => return false,
|
||||
let sk = match de_ct(jubjub::Scalar::from_bytes(unsafe { &*sk })) {
|
||||
Some(p) => p,
|
||||
None => return false,
|
||||
};
|
||||
|
||||
// Compute key agreement
|
||||
|
@ -530,7 +453,7 @@ pub extern "C" fn librustzcash_sapling_ka_agree(
|
|||
|
||||
// Produce result
|
||||
let result = unsafe { &mut *result };
|
||||
ka.write(&mut result[..]).expect("length is not 32 bytes");
|
||||
*result = ka.to_bytes();
|
||||
|
||||
true
|
||||
}
|
||||
|
@ -547,21 +470,21 @@ pub extern "C" fn librustzcash_sapling_ka_derivepublic(
|
|||
let diversifier = Diversifier(unsafe { *diversifier });
|
||||
|
||||
// Compute g_d from the diversifier
|
||||
let g_d = match diversifier.g_d::<Bls12>(&JUBJUB) {
|
||||
let g_d = match diversifier.g_d() {
|
||||
Some(g) => g,
|
||||
None => return false,
|
||||
};
|
||||
|
||||
// Deserialize esk
|
||||
let esk = match Fs::from_repr(read_fs(unsafe { &*esk })) {
|
||||
Ok(p) => p,
|
||||
Err(_) => return false,
|
||||
let esk = match de_ct(jubjub::Scalar::from_bytes(unsafe { &*esk })) {
|
||||
Some(p) => p,
|
||||
None => return false,
|
||||
};
|
||||
|
||||
let p = g_d.mul(esk, &JUBJUB);
|
||||
let p = g_d * esk;
|
||||
|
||||
let result = unsafe { &mut *result };
|
||||
p.write(&mut result[..]).expect("length is not 32 bytes");
|
||||
*result = p.to_bytes();
|
||||
|
||||
true
|
||||
}
|
||||
|
@ -585,7 +508,7 @@ pub extern "C" fn librustzcash_eh_isvalid(
|
|||
let rs_input = unsafe { slice::from_raw_parts(input, input_len) };
|
||||
let rs_nonce = unsafe { slice::from_raw_parts(nonce, nonce_len) };
|
||||
let rs_soln = unsafe { slice::from_raw_parts(soln, soln_len) };
|
||||
equihash::is_valid_solution(n, k, rs_input, rs_nonce, rs_soln)
|
||||
equihash::is_valid_solution(n, k, rs_input, rs_nonce, rs_soln).is_ok()
|
||||
}
|
||||
|
||||
/// Creates a Sapling verification context. Please free this when you're done.
|
||||
|
@ -621,20 +544,20 @@ pub extern "C" fn librustzcash_sapling_check_spend(
|
|||
sighash_value: *const [c_uchar; 32],
|
||||
) -> bool {
|
||||
// Deserialize the value commitment
|
||||
let cv = match edwards::Point::<Bls12, Unknown>::read(&(unsafe { &*cv })[..], &JUBJUB) {
|
||||
Ok(p) => p,
|
||||
Err(_) => return false,
|
||||
let cv = match de_ct(jubjub::ExtendedPoint::from_bytes(unsafe { &*cv })) {
|
||||
Some(p) => p,
|
||||
None => return false,
|
||||
};
|
||||
|
||||
// Deserialize the anchor, which should be an element
|
||||
// of Fr.
|
||||
let anchor = match Fr::from_repr(read_fr(unsafe { &*anchor })) {
|
||||
Ok(a) => a,
|
||||
Err(_) => return false,
|
||||
let anchor = match de_ct(bls12_381::Scalar::from_bytes(unsafe { &*anchor })) {
|
||||
Some(a) => a,
|
||||
None => return false,
|
||||
};
|
||||
|
||||
// Deserialize rk
|
||||
let rk = match redjubjub::PublicKey::<Bls12>::read(&(unsafe { &*rk })[..], &JUBJUB) {
|
||||
let rk = match redjubjub::PublicKey::read(&(unsafe { &*rk })[..]) {
|
||||
Ok(p) => p,
|
||||
Err(_) => return false,
|
||||
};
|
||||
|
@ -646,7 +569,7 @@ pub extern "C" fn librustzcash_sapling_check_spend(
|
|||
};
|
||||
|
||||
// Deserialize the proof
|
||||
let zkproof = match Proof::<Bls12>::read(&(unsafe { &*zkproof })[..]) {
|
||||
let zkproof = match Proof::read(&(unsafe { &*zkproof })[..]) {
|
||||
Ok(p) => p,
|
||||
Err(_) => return false,
|
||||
};
|
||||
|
@ -660,7 +583,6 @@ pub extern "C" fn librustzcash_sapling_check_spend(
|
|||
spend_auth_sig,
|
||||
zkproof,
|
||||
unsafe { SAPLING_SPEND_VK.as_ref() }.unwrap(),
|
||||
&JUBJUB,
|
||||
)
|
||||
}
|
||||
|
||||
|
@ -675,26 +597,26 @@ pub extern "C" fn librustzcash_sapling_check_output(
|
|||
zkproof: *const [c_uchar; GROTH_PROOF_SIZE],
|
||||
) -> bool {
|
||||
// Deserialize the value commitment
|
||||
let cv = match edwards::Point::<Bls12, Unknown>::read(&(unsafe { &*cv })[..], &JUBJUB) {
|
||||
Ok(p) => p,
|
||||
Err(_) => return false,
|
||||
let cv = match de_ct(jubjub::ExtendedPoint::from_bytes(unsafe { &*cv })) {
|
||||
Some(p) => p,
|
||||
None => return false,
|
||||
};
|
||||
|
||||
// Deserialize the commitment, which should be an element
|
||||
// of Fr.
|
||||
let cm = match Fr::from_repr(read_fr(unsafe { &*cm })) {
|
||||
Ok(a) => a,
|
||||
Err(_) => return false,
|
||||
let cm = match de_ct(bls12_381::Scalar::from_bytes(unsafe { &*cm })) {
|
||||
Some(a) => a,
|
||||
None => return false,
|
||||
};
|
||||
|
||||
// Deserialize the ephemeral key
|
||||
let epk = match edwards::Point::<Bls12, Unknown>::read(&(unsafe { &*epk })[..], &JUBJUB) {
|
||||
Ok(p) => p,
|
||||
Err(_) => return false,
|
||||
let epk = match de_ct(jubjub::ExtendedPoint::from_bytes(unsafe { &*epk })) {
|
||||
Some(p) => p,
|
||||
None => return false,
|
||||
};
|
||||
|
||||
// Deserialize the proof
|
||||
let zkproof = match Proof::<Bls12>::read(&(unsafe { &*zkproof })[..]) {
|
||||
let zkproof = match Proof::read(&(unsafe { &*zkproof })[..]) {
|
||||
Ok(p) => p,
|
||||
Err(_) => return false,
|
||||
};
|
||||
|
@ -705,7 +627,6 @@ pub extern "C" fn librustzcash_sapling_check_output(
|
|||
epk,
|
||||
zkproof,
|
||||
unsafe { SAPLING_OUTPUT_VK.as_ref() }.unwrap(),
|
||||
&JUBJUB,
|
||||
)
|
||||
}
|
||||
|
||||
|
@ -729,12 +650,7 @@ pub extern "C" fn librustzcash_sapling_final_check(
|
|||
Err(_) => return false,
|
||||
};
|
||||
|
||||
unsafe { &*ctx }.final_check(
|
||||
value_balance,
|
||||
unsafe { &*sighash_value },
|
||||
binding_sig,
|
||||
&JUBJUB,
|
||||
)
|
||||
unsafe { &*ctx }.final_check(value_balance, unsafe { &*sighash_value }, binding_sig)
|
||||
}
|
||||
|
||||
/// Sprout JoinSplit proof generation.
|
||||
|
@ -784,7 +700,7 @@ pub extern "C" fn librustzcash_sprout_prove(
|
|||
|
||||
let mut sprout_fs = BufReader::with_capacity(1024 * 1024, sprout_fs);
|
||||
|
||||
let params = Parameters::<Bls12>::read(&mut sprout_fs, false)
|
||||
let params = Parameters::read(&mut sprout_fs, false)
|
||||
.expect("couldn't deserialize Sprout JoinSplit parameters file");
|
||||
|
||||
drop(sprout_fs);
|
||||
|
@ -863,22 +779,21 @@ pub extern "C" fn librustzcash_sapling_output_proof(
|
|||
zkproof: *mut [c_uchar; GROTH_PROOF_SIZE],
|
||||
) -> bool {
|
||||
// Grab `esk`, which the caller should have constructed for the DH key exchange.
|
||||
let esk = match Fs::from_repr(read_fs(unsafe { &*esk })) {
|
||||
Ok(p) => p,
|
||||
Err(_) => return false,
|
||||
let esk = match de_ct(jubjub::Scalar::from_bytes(unsafe { &*esk })) {
|
||||
Some(p) => p,
|
||||
None => return false,
|
||||
};
|
||||
|
||||
// Grab the payment address from the caller
|
||||
let payment_address =
|
||||
match PaymentAddress::<Bls12>::from_bytes(unsafe { &*payment_address }, &JUBJUB) {
|
||||
Some(pa) => pa,
|
||||
None => return false,
|
||||
};
|
||||
let payment_address = match PaymentAddress::from_bytes(unsafe { &*payment_address }) {
|
||||
Some(pa) => pa,
|
||||
None => return false,
|
||||
};
|
||||
|
||||
// The caller provides the commitment randomness for the output note
|
||||
let rcm = match Fs::from_repr(read_fs(unsafe { &*rcm })) {
|
||||
Ok(p) => p,
|
||||
Err(_) => return false,
|
||||
let rcm = match de_ct(jubjub::Scalar::from_bytes(unsafe { &*rcm })) {
|
||||
Some(p) => p,
|
||||
None => return false,
|
||||
};
|
||||
|
||||
// Create proof
|
||||
|
@ -888,7 +803,6 @@ pub extern "C" fn librustzcash_sapling_output_proof(
|
|||
rcm,
|
||||
value,
|
||||
unsafe { SAPLING_OUTPUT_PARAMS.as_ref() }.unwrap(),
|
||||
&JUBJUB,
|
||||
);
|
||||
|
||||
// Write the proof out to the caller
|
||||
|
@ -897,9 +811,7 @@ pub extern "C" fn librustzcash_sapling_output_proof(
|
|||
.expect("should be able to serialize a proof");
|
||||
|
||||
// Write the value commitment to the caller
|
||||
value_commitment
|
||||
.write(&mut (unsafe { &mut *cv })[..])
|
||||
.expect("should be able to serialize rcv");
|
||||
*unsafe { &mut *cv } = value_commitment.to_bytes();
|
||||
|
||||
true
|
||||
}
|
||||
|
@ -917,13 +829,13 @@ pub extern "C" fn librustzcash_sapling_spend_sig(
|
|||
result: *mut [c_uchar; 64],
|
||||
) -> bool {
|
||||
// The caller provides the re-randomization of `ak`.
|
||||
let ar = match Fs::from_repr(read_fs(unsafe { &*ar })) {
|
||||
Ok(p) => p,
|
||||
Err(_) => return false,
|
||||
let ar = match de_ct(jubjub::Scalar::from_bytes(unsafe { &*ar })) {
|
||||
Some(p) => p,
|
||||
None => return false,
|
||||
};
|
||||
|
||||
// The caller provides `ask`, the spend authorizing key.
|
||||
let ask = match redjubjub::PrivateKey::<Bls12>::read(&(unsafe { &*ask })[..]) {
|
||||
let ask = match redjubjub::PrivateKey::read(&(unsafe { &*ask })[..]) {
|
||||
Ok(p) => p,
|
||||
Err(_) => return false,
|
||||
};
|
||||
|
@ -932,7 +844,7 @@ pub extern "C" fn librustzcash_sapling_spend_sig(
|
|||
let mut rng = OsRng;
|
||||
|
||||
// Do the signing
|
||||
let sig = spend_sig(ask, ar, unsafe { &*sighash }, &mut rng, &JUBJUB);
|
||||
let sig = spend_sig(ask, ar, unsafe { &*sighash }, &mut rng);
|
||||
|
||||
// Write out the signature
|
||||
sig.write(&mut (unsafe { &mut *result })[..])
|
||||
|
@ -958,7 +870,7 @@ pub extern "C" fn librustzcash_sapling_binding_sig(
|
|||
};
|
||||
|
||||
// Sign
|
||||
let sig = match unsafe { &*ctx }.binding_sig(value_balance, unsafe { &*sighash }, &JUBJUB) {
|
||||
let sig = match unsafe { &*ctx }.binding_sig(value_balance, unsafe { &*sighash }) {
|
||||
Ok(s) => s,
|
||||
Err(_) => return false,
|
||||
};
|
||||
|
@ -989,21 +901,21 @@ pub extern "C" fn librustzcash_sapling_spend_proof(
|
|||
zkproof: *mut [c_uchar; GROTH_PROOF_SIZE],
|
||||
) -> bool {
|
||||
// Grab `ak` from the caller, which should be a point.
|
||||
let ak = match edwards::Point::<Bls12, Unknown>::read(&(unsafe { &*ak })[..], &JUBJUB) {
|
||||
Ok(p) => p,
|
||||
Err(_) => return false,
|
||||
let ak = match de_ct(jubjub::ExtendedPoint::from_bytes(unsafe { &*ak })) {
|
||||
Some(p) => p,
|
||||
None => return false,
|
||||
};
|
||||
|
||||
// `ak` should be prime order.
|
||||
let ak = match ak.as_prime_order(&JUBJUB) {
|
||||
let ak = match de_ct(ak.into_subgroup()) {
|
||||
Some(p) => p,
|
||||
None => return false,
|
||||
};
|
||||
|
||||
// Grab `nsk` from the caller
|
||||
let nsk = match Fs::from_repr(read_fs(unsafe { &*nsk })) {
|
||||
Ok(p) => p,
|
||||
Err(_) => return false,
|
||||
let nsk = match de_ct(jubjub::Scalar::from_bytes(unsafe { &*nsk })) {
|
||||
Some(p) => p,
|
||||
None => return false,
|
||||
};
|
||||
|
||||
// Construct the proof generation key
|
||||
|
@ -1016,21 +928,23 @@ pub extern "C" fn librustzcash_sapling_spend_proof(
|
|||
let diversifier = Diversifier(unsafe { *diversifier });
|
||||
|
||||
// The caller chooses the note randomness
|
||||
let rcm = match Fs::from_repr(read_fs(unsafe { &*rcm })) {
|
||||
Ok(p) => p,
|
||||
Err(_) => return false,
|
||||
// If this is after ZIP 212, the caller has calculated rcm, and we don't need to call
|
||||
// Note::derive_esk, so we just pretend the note was using this rcm all along.
|
||||
let rseed = match de_ct(jubjub::Scalar::from_bytes(unsafe { &*rcm })) {
|
||||
Some(p) => Rseed::BeforeZip212(p),
|
||||
None => return false,
|
||||
};
|
||||
|
||||
// The caller also chooses the re-randomization of ak
|
||||
let ar = match Fs::from_repr(read_fs(unsafe { &*ar })) {
|
||||
Ok(p) => p,
|
||||
Err(_) => return false,
|
||||
let ar = match de_ct(jubjub::Scalar::from_bytes(unsafe { &*ar })) {
|
||||
Some(p) => p,
|
||||
None => return false,
|
||||
};
|
||||
|
||||
// We need to compute the anchor of the Spend.
|
||||
let anchor = match Fr::from_repr(read_fr(unsafe { &*anchor })) {
|
||||
Ok(p) => p,
|
||||
Err(_) => return false,
|
||||
let anchor = match de_ct(bls12_381::Scalar::from_bytes(unsafe { &*anchor })) {
|
||||
Some(p) => p,
|
||||
None => return false,
|
||||
};
|
||||
|
||||
// Parse the Merkle path from the caller
|
||||
|
@ -1044,21 +958,18 @@ pub extern "C" fn librustzcash_sapling_spend_proof(
|
|||
.spend_proof(
|
||||
proof_generation_key,
|
||||
diversifier,
|
||||
rcm,
|
||||
rseed,
|
||||
ar,
|
||||
value,
|
||||
anchor,
|
||||
merkle_path,
|
||||
unsafe { SAPLING_SPEND_PARAMS.as_ref() }.unwrap(),
|
||||
unsafe { SAPLING_SPEND_VK.as_ref() }.unwrap(),
|
||||
&JUBJUB,
|
||||
)
|
||||
.expect("proving should not fail");
|
||||
|
||||
// Write value commitment to caller
|
||||
value_commitment
|
||||
.write(&mut unsafe { &mut *cv }[..])
|
||||
.expect("should be able to serialize cv");
|
||||
*unsafe { &mut *cv } = value_commitment.to_bytes();
|
||||
|
||||
// Write proof out to caller
|
||||
proof
|
||||
|
|
|
@ -1,7 +1,5 @@
|
|||
use ff::{PrimeField, PrimeFieldRepr};
|
||||
use pairing::bls12_381::Bls12;
|
||||
use group::{Group, GroupEncoding};
|
||||
use rand_core::{OsRng, RngCore};
|
||||
use zcash_primitives::jubjub::{edwards, JubjubBls12};
|
||||
use zcash_primitives::primitives::{Diversifier, ViewingKey};
|
||||
|
||||
use crate::{
|
||||
|
@ -11,20 +9,19 @@ use crate::{
|
|||
|
||||
#[test]
|
||||
fn test_key_agreement() {
|
||||
let params = JubjubBls12::new();
|
||||
let mut rng = OsRng;
|
||||
|
||||
// Create random viewing key
|
||||
let vk = ViewingKey::<Bls12> {
|
||||
ak: edwards::Point::rand(&mut rng, ¶ms).mul_by_cofactor(¶ms),
|
||||
nk: edwards::Point::rand(&mut rng, ¶ms).mul_by_cofactor(¶ms),
|
||||
let vk = ViewingKey {
|
||||
ak: jubjub::SubgroupPoint::random(&mut rng),
|
||||
nk: jubjub::SubgroupPoint::random(&mut rng),
|
||||
};
|
||||
|
||||
// Create a random address with the viewing key
|
||||
let addr = loop {
|
||||
let mut d = [0; 11];
|
||||
rng.fill_bytes(&mut d);
|
||||
match vk.to_payment_address(Diversifier(d), ¶ms) {
|
||||
match vk.to_payment_address(Diversifier(d)) {
|
||||
Some(a) => break a,
|
||||
None => {}
|
||||
}
|
||||
|
@ -32,8 +29,7 @@ fn test_key_agreement() {
|
|||
|
||||
// Grab ivk from our viewing key in serialized form
|
||||
let ivk = vk.ivk();
|
||||
let mut ivk_serialized = [0u8; 32];
|
||||
ivk.into_repr().write_le(&mut ivk_serialized[..]).unwrap();
|
||||
let ivk_serialized = ivk.to_bytes();
|
||||
|
||||
// Create random esk
|
||||
let mut esk = [0u8; 32];
|
||||
|
@ -45,8 +41,7 @@ fn test_key_agreement() {
|
|||
let mut shared_secret_sender = [0u8; 32];
|
||||
|
||||
// Serialize pk_d for the call to librustzcash_sapling_ka_agree
|
||||
let mut addr_pk_d = [0u8; 32];
|
||||
addr.pk_d().write(&mut addr_pk_d[..]).unwrap();
|
||||
let addr_pk_d = addr.pk_d().to_bytes();
|
||||
|
||||
assert!(librustzcash_sapling_ka_agree(
|
||||
&addr_pk_d,
|
||||
|
|
|
@ -1,12 +1,9 @@
|
|||
use ff::{PrimeField, PrimeFieldRepr};
|
||||
use pairing::bls12_381::Bls12;
|
||||
use group::GroupEncoding;
|
||||
use zcash_primitives::{
|
||||
jubjub::{fs::FsRepr, FixedGenerators, JubjubEngine, JubjubParams},
|
||||
primitives::{Diversifier, ProofGenerationKey},
|
||||
constants::SPENDING_KEY_GENERATOR,
|
||||
primitives::{Diversifier, ProofGenerationKey, Rseed},
|
||||
};
|
||||
|
||||
use super::JUBJUB;
|
||||
|
||||
use crate::{
|
||||
librustzcash_ask_to_ak, librustzcash_check_diversifier, librustzcash_crh_ivk,
|
||||
librustzcash_ivk_to_pkd, librustzcash_nsk_to_nk,
|
||||
|
@ -657,20 +654,11 @@ fn key_components() {
|
|||
];
|
||||
|
||||
for tv in test_vectors {
|
||||
let mut ask_repr = FsRepr::default();
|
||||
let mut nsk_repr = FsRepr::default();
|
||||
ask_repr.read_le(&tv.ask[..]).unwrap();
|
||||
nsk_repr.read_le(&tv.nsk[..]).unwrap();
|
||||
let nsk = <Bls12 as JubjubEngine>::Fs::from_repr(nsk_repr).unwrap();
|
||||
let ask = jubjub::Scalar::from_bytes(&tv.ask).unwrap();
|
||||
let nsk = jubjub::Scalar::from_bytes(&tv.nsk).unwrap();
|
||||
|
||||
let ak = JUBJUB
|
||||
.generator(FixedGenerators::SpendingKeyGenerator)
|
||||
.mul(ask_repr.clone(), &JUBJUB);
|
||||
{
|
||||
let mut vec = Vec::new();
|
||||
ak.write(&mut vec).unwrap();
|
||||
assert_eq!(&vec, &tv.ak);
|
||||
}
|
||||
let ak = SPENDING_KEY_GENERATOR * ask;
|
||||
assert_eq!(&ak.to_bytes(), &tv.ak);
|
||||
{
|
||||
let mut ak = [0u8; 32];
|
||||
librustzcash_ask_to_ak(&tv.ask, &mut ak);
|
||||
|
@ -678,23 +666,15 @@ fn key_components() {
|
|||
}
|
||||
|
||||
let pgk = ProofGenerationKey { ak, nsk };
|
||||
let fvk = pgk.to_viewing_key(&JUBJUB);
|
||||
{
|
||||
let mut vec = Vec::new();
|
||||
fvk.nk.write(&mut vec).unwrap();
|
||||
assert_eq!(&vec, &tv.nk);
|
||||
}
|
||||
let fvk = pgk.to_viewing_key();
|
||||
assert_eq!(&fvk.nk.to_bytes(), &tv.nk);
|
||||
{
|
||||
let mut nk = [0u8; 32];
|
||||
librustzcash_nsk_to_nk(&tv.nsk, &mut nk);
|
||||
assert_eq!(&nk, &tv.nk);
|
||||
}
|
||||
|
||||
{
|
||||
let mut vec = Vec::new();
|
||||
fvk.ivk().into_repr().write_le(&mut vec).unwrap();
|
||||
assert_eq!(&vec, &tv.ivk);
|
||||
}
|
||||
assert_eq!(&fvk.ivk().to_bytes(), &tv.ivk);
|
||||
{
|
||||
let mut ivk = [0u8; 32];
|
||||
librustzcash_crh_ivk(&tv.ak, &tv.nk, &mut ivk);
|
||||
|
@ -704,28 +684,20 @@ fn key_components() {
|
|||
let diversifier = Diversifier(tv.default_d);
|
||||
assert!(librustzcash_check_diversifier(&tv.default_d));
|
||||
|
||||
let addr = fvk.to_payment_address(diversifier, &JUBJUB).unwrap();
|
||||
{
|
||||
let mut vec = Vec::new();
|
||||
addr.pk_d().write(&mut vec).unwrap();
|
||||
assert_eq!(&vec, &tv.default_pk_d);
|
||||
}
|
||||
let addr = fvk.to_payment_address(diversifier).unwrap();
|
||||
assert_eq!(&addr.pk_d().to_bytes(), &tv.default_pk_d);
|
||||
{
|
||||
let mut default_pk_d = [0u8; 32];
|
||||
librustzcash_ivk_to_pkd(&tv.ivk, &tv.default_d, &mut default_pk_d);
|
||||
assert_eq!(&default_pk_d, &tv.default_pk_d);
|
||||
}
|
||||
|
||||
let mut note_r_repr = FsRepr::default();
|
||||
note_r_repr.read_le(&tv.note_r[..]).unwrap();
|
||||
let note_r = <Bls12 as JubjubEngine>::Fs::from_repr(note_r_repr).unwrap();
|
||||
let note = addr.create_note(tv.note_v, note_r, &JUBJUB).unwrap();
|
||||
{
|
||||
let mut vec = Vec::new();
|
||||
note.cm(&JUBJUB).into_repr().write_le(&mut vec).unwrap();
|
||||
assert_eq!(&vec, &tv.note_cm);
|
||||
}
|
||||
let note_r = jubjub::Scalar::from_bytes(&tv.note_r).unwrap();
|
||||
let note = addr
|
||||
.create_note(tv.note_v, Rseed::BeforeZip212(note_r))
|
||||
.unwrap();
|
||||
assert_eq!(¬e.cmu().to_bytes(), &tv.note_cm);
|
||||
|
||||
assert_eq!(note.nf(&fvk, tv.note_pos, &JUBJUB), tv.note_nf);
|
||||
assert_eq!(note.nf(&fvk, tv.note_pos), tv.note_nf);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,6 +1,9 @@
|
|||
use zcash_primitives::jubjub::{FixedGenerators, JubjubParams};
|
||||
|
||||
use super::JUBJUB;
|
||||
use group::GroupEncoding;
|
||||
use zcash_primitives::constants::{
|
||||
NOTE_COMMITMENT_RANDOMNESS_GENERATOR, NULLIFIER_POSITION_GENERATOR,
|
||||
PROOF_GENERATION_KEY_GENERATOR, SPENDING_KEY_GENERATOR, VALUE_COMMITMENT_RANDOMNESS_GENERATOR,
|
||||
VALUE_COMMITMENT_VALUE_GENERATOR,
|
||||
};
|
||||
|
||||
mod key_agreement;
|
||||
mod key_components;
|
||||
|
@ -53,45 +56,25 @@ fn sapling_generators() {
|
|||
],
|
||||
};
|
||||
|
||||
{
|
||||
let mut vec = Vec::new();
|
||||
let p = JUBJUB.generator(FixedGenerators::SpendingKeyGenerator);
|
||||
p.write(&mut vec).unwrap();
|
||||
assert_eq!(&vec, &sapling_generators.skb);
|
||||
}
|
||||
|
||||
{
|
||||
let mut vec = Vec::new();
|
||||
let p = JUBJUB.generator(FixedGenerators::ProofGenerationKey);
|
||||
p.write(&mut vec).unwrap();
|
||||
assert_eq!(&vec, &sapling_generators.pkb);
|
||||
}
|
||||
|
||||
{
|
||||
let mut vec = Vec::new();
|
||||
let p = JUBJUB.generator(FixedGenerators::NullifierPosition);
|
||||
p.write(&mut vec).unwrap();
|
||||
assert_eq!(&vec, &sapling_generators.npb);
|
||||
}
|
||||
|
||||
{
|
||||
let mut vec = Vec::new();
|
||||
let p = JUBJUB.generator(FixedGenerators::NoteCommitmentRandomness);
|
||||
p.write(&mut vec).unwrap();
|
||||
assert_eq!(&vec, &sapling_generators.wprb);
|
||||
}
|
||||
|
||||
{
|
||||
let mut vec = Vec::new();
|
||||
let p = JUBJUB.generator(FixedGenerators::ValueCommitmentValue);
|
||||
p.write(&mut vec).unwrap();
|
||||
assert_eq!(&vec, &sapling_generators.vcvb);
|
||||
}
|
||||
|
||||
{
|
||||
let mut vec = Vec::new();
|
||||
let p = JUBJUB.generator(FixedGenerators::ValueCommitmentRandomness);
|
||||
p.write(&mut vec).unwrap();
|
||||
assert_eq!(&vec, &sapling_generators.vcrb);
|
||||
}
|
||||
assert_eq!(&SPENDING_KEY_GENERATOR.to_bytes(), &sapling_generators.skb);
|
||||
assert_eq!(
|
||||
&PROOF_GENERATION_KEY_GENERATOR.to_bytes(),
|
||||
&sapling_generators.pkb
|
||||
);
|
||||
assert_eq!(
|
||||
&NULLIFIER_POSITION_GENERATOR.to_bytes(),
|
||||
&sapling_generators.npb
|
||||
);
|
||||
assert_eq!(
|
||||
&NOTE_COMMITMENT_RANDOMNESS_GENERATOR.to_bytes(),
|
||||
&sapling_generators.wprb
|
||||
);
|
||||
assert_eq!(
|
||||
&VALUE_COMMITMENT_VALUE_GENERATOR.to_bytes(),
|
||||
&sapling_generators.vcvb
|
||||
);
|
||||
assert_eq!(
|
||||
&VALUE_COMMITMENT_RANDOMNESS_GENERATOR.to_bytes(),
|
||||
&sapling_generators.vcrb
|
||||
);
|
||||
}
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
use crate::librustzcash_sapling_compute_cm;
|
||||
use crate::librustzcash_sapling_compute_cmu;
|
||||
use crate::librustzcash_sapling_compute_nf;
|
||||
|
||||
#[test]
|
||||
|
@ -648,7 +648,7 @@ fn notes() {
|
|||
for tv in test_vectors {
|
||||
// Compute commitment and compare with test vector
|
||||
let mut result = [0u8; 32];
|
||||
assert!(librustzcash_sapling_compute_cm(
|
||||
assert!(librustzcash_sapling_compute_cmu(
|
||||
&tv.default_d,
|
||||
&tv.default_pk_d,
|
||||
tv.note_v,
|
||||
|
|
|
@ -1,9 +1,7 @@
|
|||
use ff::{PrimeField, PrimeFieldRepr};
|
||||
use pairing::bls12_381::Bls12;
|
||||
use zcash_primitives::jubjub::{FixedGenerators, JubjubEngine};
|
||||
use zcash_primitives::redjubjub::{PrivateKey, PublicKey, Signature};
|
||||
|
||||
use super::JUBJUB;
|
||||
use zcash_primitives::{
|
||||
constants::SPENDING_KEY_GENERATOR,
|
||||
redjubjub::{PrivateKey, PublicKey, Signature},
|
||||
};
|
||||
|
||||
#[test]
|
||||
fn redjubjub_signatures() {
|
||||
|
@ -483,15 +481,13 @@ fn redjubjub_signatures() {
|
|||
];
|
||||
|
||||
for tv in test_vectors {
|
||||
let sk = PrivateKey::<Bls12>::read(&tv.sk[..]).unwrap();
|
||||
let vk = PublicKey::<Bls12>::read(&tv.vk[..], &JUBJUB).unwrap();
|
||||
let rvk = PublicKey::<Bls12>::read(&tv.rvk[..], &JUBJUB).unwrap();
|
||||
let sk = PrivateKey::read(&tv.sk[..]).unwrap();
|
||||
let vk = PublicKey::read(&tv.vk[..]).unwrap();
|
||||
let rvk = PublicKey::read(&tv.rvk[..]).unwrap();
|
||||
let sig = Signature::read(&tv.sig[..]).unwrap();
|
||||
let rsig = Signature::read(&tv.rsig[..]).unwrap();
|
||||
|
||||
let mut alpha_repr = <<Bls12 as JubjubEngine>::Fs as PrimeField>::Repr::default();
|
||||
alpha_repr.read_le(&tv.alpha[..]).unwrap();
|
||||
let alpha = <Bls12 as JubjubEngine>::Fs::from_repr(alpha_repr).unwrap();
|
||||
let alpha = jubjub::Scalar::from_bytes(&tv.alpha).unwrap();
|
||||
|
||||
{
|
||||
let mut vec = Vec::new();
|
||||
|
@ -500,15 +496,15 @@ fn redjubjub_signatures() {
|
|||
}
|
||||
{
|
||||
let mut vec = Vec::new();
|
||||
vk.randomize(alpha, FixedGenerators::SpendingKeyGenerator, &JUBJUB)
|
||||
vk.randomize(alpha, SPENDING_KEY_GENERATOR)
|
||||
.write(&mut vec)
|
||||
.unwrap();
|
||||
assert_eq!(&vec, &tv.rvk);
|
||||
}
|
||||
|
||||
assert!(vk.verify(&tv.m, &sig, FixedGenerators::SpendingKeyGenerator, &JUBJUB));
|
||||
assert!(rvk.verify(&tv.m, &rsig, FixedGenerators::SpendingKeyGenerator, &JUBJUB));
|
||||
assert!(!vk.verify(&tv.m, &rsig, FixedGenerators::SpendingKeyGenerator, &JUBJUB));
|
||||
assert!(!rvk.verify(&tv.m, &sig, FixedGenerators::SpendingKeyGenerator, &JUBJUB));
|
||||
assert!(vk.verify(&tv.m, &sig, SPENDING_KEY_GENERATOR));
|
||||
assert!(rvk.verify(&tv.m, &rsig, SPENDING_KEY_GENERATOR));
|
||||
assert!(!vk.verify(&tv.m, &rsig, SPENDING_KEY_GENERATOR));
|
||||
assert!(!rvk.verify(&tv.m, &sig, SPENDING_KEY_GENERATOR));
|
||||
}
|
||||
}
|
||||
|
|
|
@ -55,13 +55,10 @@ JoinSplitTestingSetup::JoinSplitTestingSetup(const std::string& chainName) : Bas
|
|||
librustzcash_init_zksnark_params(
|
||||
reinterpret_cast<const codeunit*>(sapling_spend_str.c_str()),
|
||||
sapling_spend_str.length(),
|
||||
"8270785a1a0d0bc77196f000ee6d221c9c9894f55307bd9357c3f0105d31ca63991ab91324160d8f53e2bbd3c2633a6eb8bdf5205d822e7f3f73edac51b2b70c",
|
||||
reinterpret_cast<const codeunit*>(sapling_output_str.c_str()),
|
||||
sapling_output_str.length(),
|
||||
"657e3d38dbb5cb5e7dd2970e8b03d69b4787dd907285b5a7f0790dcc8072f60bf593b32cc2d1c030e00ff5ae64bf84c5c3beb84ddc841d48264b4a171744d028",
|
||||
reinterpret_cast<const codeunit*>(sprout_groth16_str.c_str()),
|
||||
sprout_groth16_str.length(),
|
||||
"e9b238411bd6c0ec4791e9d04245ec350c9c5744f5610dfcce4365d5ca49dfefd5054e371842b3f88fa1b9d7e8e075249b3ebabd167fa8b0f3161292d36c180a"
|
||||
sprout_groth16_str.length()
|
||||
);
|
||||
}
|
||||
|
||||
|
|
|
@ -62,7 +62,7 @@ SaplingNote::SaplingNote(
|
|||
boost::optional<uint256> SaplingNote::cmu() const {
|
||||
uint256 result;
|
||||
uint256 rcm_tmp = rcm();
|
||||
if (!librustzcash_sapling_compute_cm(
|
||||
if (!librustzcash_sapling_compute_cmu(
|
||||
d.data(),
|
||||
pk_d.begin(),
|
||||
value(),
|
||||
|
@ -277,7 +277,7 @@ boost::optional<SaplingNotePlaintext> SaplingNotePlaintext::plaintext_checks_wit
|
|||
|
||||
uint256 cmu_expected;
|
||||
uint256 rcm = plaintext.rcm();
|
||||
if (!librustzcash_sapling_compute_cm(
|
||||
if (!librustzcash_sapling_compute_cmu(
|
||||
plaintext.d.data(),
|
||||
pk_d.begin(),
|
||||
plaintext.value(),
|
||||
|
@ -392,7 +392,7 @@ boost::optional<SaplingNotePlaintext> SaplingNotePlaintext::plaintext_checks_wit
|
|||
|
||||
uint256 cmu_expected;
|
||||
uint256 rcm = plaintext.rcm();
|
||||
if (!librustzcash_sapling_compute_cm(
|
||||
if (!librustzcash_sapling_compute_cmu(
|
||||
plaintext.d.data(),
|
||||
pk_d.begin(),
|
||||
plaintext.value(),
|
||||
|
|
Loading…
Reference in New Issue