From 774b1371bc374fc8113aa5cabb37ed81b1d24b35 Mon Sep 17 00:00:00 2001 From: Tony Arcieri Date: Thu, 7 Feb 2019 10:47:13 -0800 Subject: [PATCH 1/2] Update all `signatory` dependencies to v0.11 (and 2018 edition fixups) https://github.com/tendermint/signatory/pull/139 Additionally it looks like there were various parts of the 2018 edition upgrade which were incomplete, and in order to get everything to build this completes that upgrade. This unfortunately makes it a bit of a mega-commit. --- Cargo.lock | 521 ++++++++++--------- Cargo.toml | 11 +- src/commands/yubihsm/detect.rs | 2 +- src/commands/yubihsm/keys/generate.rs | 2 +- src/commands/yubihsm/keys/import.rs | 17 +- src/commands/yubihsm/keys/list.rs | 2 +- src/commands/yubihsm/keys/mod.rs | 2 +- src/keyring/ed25519/yubihsm.rs | 2 +- src/yubihsm.rs | 17 +- tendermint-rs/Cargo.toml | 11 +- tendermint-rs/src/amino_types/ed25519.rs | 3 +- tendermint-rs/src/amino_types/proposal.rs | 23 +- tendermint-rs/src/amino_types/signature.rs | 12 +- tendermint-rs/src/amino_types/time.rs | 4 +- tendermint-rs/src/amino_types/vote.rs | 21 +- tendermint-rs/src/block/height.rs | 6 +- tendermint-rs/src/chain/id.rs | 3 +- tendermint-rs/src/error.rs | 2 +- tendermint-rs/src/hash.rs | 9 +- tendermint-rs/src/lib.rs | 21 - tendermint-rs/src/public_keys.rs | 12 +- tendermint-rs/src/secret_connection/kdf.rs | 2 +- tendermint-rs/src/secret_connection/mod.rs | 113 ++-- tendermint-rs/src/secret_connection/nonce.rs | 7 + tendermint-rs/src/timestamp.rs | 10 +- tests/integration.rs | 37 +- 26 files changed, 415 insertions(+), 457 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index d4ec554..4e830c5 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -6,16 +6,16 @@ dependencies = [ "abscissa_derive 0.0.2 (registry+https://github.com/rust-lang/crates.io-index)", "canonical-path 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", "chrono 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", - "failure 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", - "failure_derive 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", + "failure 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", + "failure_derive 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", "isatty 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)", "lazy_static 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", "semver 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)", - "serde 1.0.80 (registry+https://github.com/rust-lang/crates.io-index)", + "serde 1.0.87 (registry+https://github.com/rust-lang/crates.io-index)", "simplelog 0.5.3 (registry+https://github.com/rust-lang/crates.io-index)", "term 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)", - "toml 0.4.9 (registry+https://github.com/rust-lang/crates.io-index)", + "toml 0.4.10 (registry+https://github.com/rust-lang/crates.io-index)", "zeroize 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -24,8 +24,8 @@ name = "abscissa_derive" version = "0.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "proc-macro2 0.4.24 (registry+https://github.com/rust-lang/crates.io-index)", - "quote 0.6.10 (registry+https://github.com/rust-lang/crates.io-index)", + "proc-macro2 0.4.27 (registry+https://github.com/rust-lang/crates.io-index)", + "quote 0.6.11 (registry+https://github.com/rust-lang/crates.io-index)", "syn 0.14.9 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -34,19 +34,19 @@ name = "aes" version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "aes-soft 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)", + "aes-soft 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)", "aesni 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)", "block-cipher-trait 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "aes-soft" -version = "0.3.2" +version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "block-cipher-trait 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)", - "byteorder 1.2.7 (registry+https://github.com/rust-lang/crates.io-index)", - "opaque-debug 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", + "byteorder 1.3.1 (registry+https://github.com/rust-lang/crates.io-index)", + "opaque-debug 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -55,7 +55,7 @@ version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "block-cipher-trait 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)", - "opaque-debug 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", + "opaque-debug 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -68,25 +68,31 @@ name = "arrayref" version = "0.3.5" source = "registry+https://github.com/rust-lang/crates.io-index" +[[package]] +name = "autocfg" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" + [[package]] name = "backtrace" -version = "0.3.9" +version = "0.3.13" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "backtrace-sys 0.1.24 (registry+https://github.com/rust-lang/crates.io-index)", + "autocfg 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", + "backtrace-sys 0.1.28 (registry+https://github.com/rust-lang/crates.io-index)", "cfg-if 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.44 (registry+https://github.com/rust-lang/crates.io-index)", - "rustc-demangle 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.48 (registry+https://github.com/rust-lang/crates.io-index)", + "rustc-demangle 0.1.13 (registry+https://github.com/rust-lang/crates.io-index)", "winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "backtrace-sys" -version = "0.1.24" +version = "0.1.28" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "cc 1.0.25 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.44 (registry+https://github.com/rust-lang/crates.io-index)", + "cc 1.0.29 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.48 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -94,7 +100,7 @@ name = "base64" version = "0.9.3" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "byteorder 1.2.7 (registry+https://github.com/rust-lang/crates.io-index)", + "byteorder 1.3.1 (registry+https://github.com/rust-lang/crates.io-index)", "safemem 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -130,9 +136,9 @@ name = "block-buffer" version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "block-padding 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", - "byte-tools 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", - "byteorder 1.2.7 (registry+https://github.com/rust-lang/crates.io-index)", + "block-padding 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", + "byte-tools 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", + "byteorder 1.3.1 (registry+https://github.com/rust-lang/crates.io-index)", "generic-array 0.12.0 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -150,15 +156,15 @@ version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "block-cipher-trait 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)", - "block-padding 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", + "block-padding 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "block-padding" -version = "0.1.2" +version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "byte-tools 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", + "byte-tools 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -168,12 +174,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "byte-tools" -version = "0.3.0" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "byteorder" -version = "1.2.7" +version = "1.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] @@ -181,7 +187,7 @@ name = "bytes" version = "0.4.11" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "byteorder 1.2.7 (registry+https://github.com/rust-lang/crates.io-index)", + "byteorder 1.3.1 (registry+https://github.com/rust-lang/crates.io-index)", "iovec 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -192,7 +198,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "cc" -version = "1.0.25" +version = "1.0.29" source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] @@ -207,8 +213,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "num-integer 0.1.39 (registry+https://github.com/rust-lang/crates.io-index)", "num-traits 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)", - "serde 1.0.80 (registry+https://github.com/rust-lang/crates.io-index)", - "time 0.1.40 (registry+https://github.com/rust-lang/crates.io-index)", + "serde 1.0.87 (registry+https://github.com/rust-lang/crates.io-index)", + "time 0.1.42 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -216,7 +222,7 @@ name = "clear_on_drop" version = "0.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "cc 1.0.25 (registry+https://github.com/rust-lang/crates.io-index)", + "cc 1.0.29 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -234,7 +240,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "block-cipher-trait 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)", "crypto-mac 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", - "dbl 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", + "dbl 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -248,32 +254,19 @@ dependencies = [ [[package]] name = "curve25519-dalek" -version = "0.20.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "byteorder 1.2.7 (registry+https://github.com/rust-lang/crates.io-index)", - "clear_on_drop 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)", - "digest 0.7.6 (registry+https://github.com/rust-lang/crates.io-index)", - "generic-array 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)", - "rand 0.5.5 (registry+https://github.com/rust-lang/crates.io-index)", - "subtle 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)", -] - -[[package]] -name = "curve25519-dalek" -version = "1.0.2" +version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "byteorder 1.2.7 (registry+https://github.com/rust-lang/crates.io-index)", + "byteorder 1.3.1 (registry+https://github.com/rust-lang/crates.io-index)", "clear_on_drop 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)", "digest 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)", - "rand 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)", + "rand 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)", "subtle 2.0.0 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "dbl" -version = "0.2.0" +version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "generic-array 0.12.0 (registry+https://github.com/rust-lang/crates.io-index)", @@ -297,15 +290,14 @@ dependencies = [ [[package]] name = "ed25519-dalek" -version = "0.8.1" +version = "1.0.0-pre.1" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "clear_on_drop 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)", - "curve25519-dalek 0.20.0 (registry+https://github.com/rust-lang/crates.io-index)", - "digest 0.7.6 (registry+https://github.com/rust-lang/crates.io-index)", - "failure 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", - "generic-array 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)", - "rand 0.5.5 (registry+https://github.com/rust-lang/crates.io-index)", + "curve25519-dalek 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)", + "failure 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", + "rand 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)", + "sha2 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -315,21 +307,21 @@ source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "failure" -version = "0.1.3" +version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "backtrace 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)", - "failure_derive 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", + "backtrace 0.3.13 (registry+https://github.com/rust-lang/crates.io-index)", + "failure_derive 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "failure_derive" -version = "0.1.3" +version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "proc-macro2 0.4.24 (registry+https://github.com/rust-lang/crates.io-index)", - "quote 0.6.10 (registry+https://github.com/rust-lang/crates.io-index)", - "syn 0.15.22 (registry+https://github.com/rust-lang/crates.io-index)", + "proc-macro2 0.4.27 (registry+https://github.com/rust-lang/crates.io-index)", + "quote 0.6.11 (registry+https://github.com/rust-lang/crates.io-index)", + "syn 0.15.26 (registry+https://github.com/rust-lang/crates.io-index)", "synstructure 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -339,17 +331,8 @@ version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] -name = "fuchsia-zircon" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "bitflags 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)", - "fuchsia-zircon-sys 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)", -] - -[[package]] -name = "fuchsia-zircon-sys" -version = "0.3.3" +name = "fuchsia-cprng" +version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] @@ -357,8 +340,8 @@ name = "gaunt" version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "failure 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", - "failure_derive 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", + "failure 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", + "failure_derive 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -400,7 +383,7 @@ name = "iovec" version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "libc 0.2.44 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.48 (registry+https://github.com/rust-lang/crates.io-index)", "winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -410,8 +393,8 @@ version = "0.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "cfg-if 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.44 (registry+https://github.com/rust-lang/crates.io-index)", - "redox_syscall 0.1.43 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.48 (registry+https://github.com/rust-lang/crates.io-index)", + "redox_syscall 0.1.51 (registry+https://github.com/rust-lang/crates.io-index)", "winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -435,7 +418,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "libc" -version = "0.2.44" +version = "0.2.48" source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] @@ -444,7 +427,7 @@ version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "bit-set 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.44 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.48 (registry+https://github.com/rust-lang/crates.io-index)", "libusb-sys 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -453,7 +436,7 @@ name = "libusb-sys" version = "0.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "libc 0.2.44 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.48 (registry+https://github.com/rust-lang/crates.io-index)", "pkg-config 0.3.14 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -480,7 +463,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "opaque-debug" -version = "0.2.1" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] @@ -489,10 +472,10 @@ version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "base64 0.9.3 (registry+https://github.com/rust-lang/crates.io-index)", - "byteorder 1.2.7 (registry+https://github.com/rust-lang/crates.io-index)", + "byteorder 1.3.1 (registry+https://github.com/rust-lang/crates.io-index)", "crypto-mac 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", "hmac 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", - "rand 0.5.5 (registry+https://github.com/rust-lang/crates.io-index)", + "rand 0.5.6 (registry+https://github.com/rust-lang/crates.io-index)", "sha2 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)", "subtle 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -504,7 +487,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "proc-macro2" -version = "0.4.24" +version = "0.4.27" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "unicode-xid 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", @@ -515,7 +498,7 @@ name = "prost-amino" version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "byteorder 1.2.7 (registry+https://github.com/rust-lang/crates.io-index)", + "byteorder 1.3.1 (registry+https://github.com/rust-lang/crates.io-index)", "bytes 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -525,72 +508,72 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "digest 0.7.6 (registry+https://github.com/rust-lang/crates.io-index)", - "failure 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", + "failure 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", "itertools 0.7.11 (registry+https://github.com/rust-lang/crates.io-index)", - "proc-macro2 0.4.24 (registry+https://github.com/rust-lang/crates.io-index)", - "quote 0.6.10 (registry+https://github.com/rust-lang/crates.io-index)", + "proc-macro2 0.4.27 (registry+https://github.com/rust-lang/crates.io-index)", + "quote 0.6.11 (registry+https://github.com/rust-lang/crates.io-index)", "sha2 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)", "syn 0.14.9 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "quote" -version = "0.6.10" +version = "0.6.11" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "proc-macro2 0.4.24 (registry+https://github.com/rust-lang/crates.io-index)", + "proc-macro2 0.4.27 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "rand" -version = "0.5.5" +version = "0.5.6" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "cloudabi 0.0.3 (registry+https://github.com/rust-lang/crates.io-index)", - "fuchsia-zircon 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.44 (registry+https://github.com/rust-lang/crates.io-index)", - "rand_core 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", + "fuchsia-cprng 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.48 (registry+https://github.com/rust-lang/crates.io-index)", + "rand_core 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", "winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "rand" -version = "0.6.1" +version = "0.6.5" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "cloudabi 0.0.3 (registry+https://github.com/rust-lang/crates.io-index)", - "fuchsia-zircon 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.44 (registry+https://github.com/rust-lang/crates.io-index)", - "rand_chacha 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", - "rand_core 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", + "autocfg 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.48 (registry+https://github.com/rust-lang/crates.io-index)", + "rand_chacha 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", + "rand_core 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", "rand_hc 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "rand_isaac 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", + "rand_jitter 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", + "rand_os 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", "rand_pcg 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", - "rand_xorshift 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", - "rustc_version 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)", + "rand_xorshift 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", "winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "rand_chacha" -version = "0.1.0" +version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "rand_core 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", - "rustc_version 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)", + "autocfg 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", + "rand_core 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "rand_core" -version = "0.2.2" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "rand_core 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", + "rand_core 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "rand_core" -version = "0.3.0" +version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] @@ -598,7 +581,7 @@ name = "rand_hc" version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "rand_core 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", + "rand_core 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -606,7 +589,30 @@ name = "rand_isaac" version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "rand_core 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", + "rand_core 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] +name = "rand_jitter" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "libc 0.2.48 (registry+https://github.com/rust-lang/crates.io-index)", + "rand_core 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", + "winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] +name = "rand_os" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "cloudabi 0.0.3 (registry+https://github.com/rust-lang/crates.io-index)", + "fuchsia-cprng 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.48 (registry+https://github.com/rust-lang/crates.io-index)", + "rand_core 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", + "rdrand 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", + "winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -614,21 +620,29 @@ name = "rand_pcg" version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "rand_core 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", + "rand_core 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", "rustc_version 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "rand_xorshift" -version = "0.1.0" +version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "rand_core 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", + "rand_core 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] +name = "rdrand" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "rand_core 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "redox_syscall" -version = "0.1.43" +version = "0.1.51" source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] @@ -641,18 +655,20 @@ dependencies = [ [[package]] name = "ring" -version = "0.13.5" +version = "0.14.6" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "cc 1.0.25 (registry+https://github.com/rust-lang/crates.io-index)", + "cc 1.0.29 (registry+https://github.com/rust-lang/crates.io-index)", "lazy_static 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.44 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.48 (registry+https://github.com/rust-lang/crates.io-index)", + "spin 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)", "untrusted 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)", + "winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "rustc-demangle" -version = "0.1.9" +version = "0.1.13" source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] @@ -688,27 +704,27 @@ source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "serde" -version = "1.0.80" +version = "1.0.87" source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "serde_derive" -version = "1.0.80" +version = "1.0.87" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "proc-macro2 0.4.24 (registry+https://github.com/rust-lang/crates.io-index)", - "quote 0.6.10 (registry+https://github.com/rust-lang/crates.io-index)", - "syn 0.15.22 (registry+https://github.com/rust-lang/crates.io-index)", + "proc-macro2 0.4.27 (registry+https://github.com/rust-lang/crates.io-index)", + "quote 0.6.11 (registry+https://github.com/rust-lang/crates.io-index)", + "syn 0.15.26 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "serde_json" -version = "1.0.33" +version = "1.0.38" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "itoa 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)", "ryu 0.2.7 (registry+https://github.com/rust-lang/crates.io-index)", - "serde 1.0.80 (registry+https://github.com/rust-lang/crates.io-index)", + "serde 1.0.87 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -730,7 +746,7 @@ dependencies = [ "block-buffer 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", "digest 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)", "fake-simd 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", - "opaque-debug 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", + "opaque-debug 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -739,41 +755,40 @@ version = "0.1.7" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "arc-swap 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.44 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.48 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "signatory" -version = "0.10.1" +version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "digest 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)", "generic-array 0.12.0 (registry+https://github.com/rust-lang/crates.io-index)", - "rand 0.5.5 (registry+https://github.com/rust-lang/crates.io-index)", + "rand_os 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", "sha2 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)", - "subtle-encoding 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", - "zeroize 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)", + "subtle-encoding 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)", + "zeroize 0.5.2 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "signatory-dalek" -version = "0.10.0" +version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "digest 0.7.6 (registry+https://github.com/rust-lang/crates.io-index)", - "ed25519-dalek 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)", - "sha2 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)", - "signatory 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)", + "digest 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)", + "ed25519-dalek 1.0.0-pre.1 (registry+https://github.com/rust-lang/crates.io-index)", + "sha2 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)", + "signatory 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "signatory-yubihsm" -version = "0.10.0" +version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "lazy_static 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)", - "signatory 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)", - "yubihsm 0.19.2 (registry+https://github.com/rust-lang/crates.io-index)", + "signatory 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)", + "yubihsm 0.20.0 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -786,6 +801,11 @@ dependencies = [ "term 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)", ] +[[package]] +name = "spin" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" + [[package]] name = "subtle" version = "1.0.0" @@ -798,12 +818,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "subtle-encoding" -version = "0.3.0" +version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "failure 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", - "failure_derive 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", - "zeroize 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)", + "failure 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", + "failure_derive 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", + "zeroize 0.5.2 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -811,18 +831,18 @@ name = "syn" version = "0.14.9" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "proc-macro2 0.4.24 (registry+https://github.com/rust-lang/crates.io-index)", - "quote 0.6.10 (registry+https://github.com/rust-lang/crates.io-index)", + "proc-macro2 0.4.27 (registry+https://github.com/rust-lang/crates.io-index)", + "quote 0.6.11 (registry+https://github.com/rust-lang/crates.io-index)", "unicode-xid 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "syn" -version = "0.15.22" +version = "0.15.26" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "proc-macro2 0.4.24 (registry+https://github.com/rust-lang/crates.io-index)", - "quote 0.6.10 (registry+https://github.com/rust-lang/crates.io-index)", + "proc-macro2 0.4.27 (registry+https://github.com/rust-lang/crates.io-index)", + "quote 0.6.11 (registry+https://github.com/rust-lang/crates.io-index)", "unicode-xid 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -831,9 +851,9 @@ name = "synstructure" version = "0.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "proc-macro2 0.4.24 (registry+https://github.com/rust-lang/crates.io-index)", - "quote 0.6.10 (registry+https://github.com/rust-lang/crates.io-index)", - "syn 0.15.22 (registry+https://github.com/rust-lang/crates.io-index)", + "proc-macro2 0.4.27 (registry+https://github.com/rust-lang/crates.io-index)", + "quote 0.6.11 (registry+https://github.com/rust-lang/crates.io-index)", + "syn 0.15.26 (registry+https://github.com/rust-lang/crates.io-index)", "unicode-xid 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -842,19 +862,19 @@ name = "tai64" version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "byteorder 1.2.7 (registry+https://github.com/rust-lang/crates.io-index)", + "byteorder 1.3.1 (registry+https://github.com/rust-lang/crates.io-index)", "chrono 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "tempfile" -version = "3.0.5" +version = "3.0.6" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "cfg-if 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.44 (registry+https://github.com/rust-lang/crates.io-index)", - "rand 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)", - "redox_syscall 0.1.43 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.48 (registry+https://github.com/rust-lang/crates.io-index)", + "rand 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)", + "redox_syscall 0.1.51 (registry+https://github.com/rust-lang/crates.io-index)", "remove_dir_all 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)", "winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -863,25 +883,25 @@ dependencies = [ name = "tendermint" version = "0.2.0" dependencies = [ - "byteorder 1.2.7 (registry+https://github.com/rust-lang/crates.io-index)", + "byteorder 1.3.1 (registry+https://github.com/rust-lang/crates.io-index)", "bytes 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)", "chrono 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", "digest 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)", - "failure 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", - "failure_derive 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", + "failure 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", + "failure_derive 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", "hkdf 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", "prost-amino 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", "prost-amino-derive 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", - "rand 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)", - "ring 0.13.5 (registry+https://github.com/rust-lang/crates.io-index)", - "serde 1.0.80 (registry+https://github.com/rust-lang/crates.io-index)", - "serde_derive 1.0.80 (registry+https://github.com/rust-lang/crates.io-index)", + "rand_os 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", + "ring 0.14.6 (registry+https://github.com/rust-lang/crates.io-index)", + "serde 1.0.87 (registry+https://github.com/rust-lang/crates.io-index)", + "serde_derive 1.0.87 (registry+https://github.com/rust-lang/crates.io-index)", "sha2 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)", - "signatory 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)", - "signatory-dalek 0.10.0 (registry+https://github.com/rust-lang/crates.io-index)", - "subtle-encoding 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", + "signatory 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)", + "signatory-dalek 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)", + "subtle-encoding 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)", "tai64 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)", - "x25519-dalek 0.4.4 (registry+https://github.com/rust-lang/crates.io-index)", + "x25519-dalek 0.4.5 (registry+https://github.com/rust-lang/crates.io-index)", "zeroize 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -890,17 +910,17 @@ name = "term" version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "byteorder 1.2.7 (registry+https://github.com/rust-lang/crates.io-index)", + "byteorder 1.3.1 (registry+https://github.com/rust-lang/crates.io-index)", "winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "time" -version = "0.1.40" +version = "0.1.42" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "libc 0.2.44 (registry+https://github.com/rust-lang/crates.io-index)", - "redox_syscall 0.1.43 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.48 (registry+https://github.com/rust-lang/crates.io-index)", + "redox_syscall 0.1.51 (registry+https://github.com/rust-lang/crates.io-index)", "winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -910,34 +930,34 @@ version = "0.3.0" dependencies = [ "abscissa 0.0.6 (registry+https://github.com/rust-lang/crates.io-index)", "abscissa_derive 0.0.2 (registry+https://github.com/rust-lang/crates.io-index)", - "byteorder 1.2.7 (registry+https://github.com/rust-lang/crates.io-index)", + "byteorder 1.3.1 (registry+https://github.com/rust-lang/crates.io-index)", "bytes 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)", "chrono 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", - "failure 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", - "failure_derive 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", + "failure 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", + "failure_derive 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", "lazy_static 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "prost-amino 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", "prost-amino-derive 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", - "rand 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)", - "serde 1.0.80 (registry+https://github.com/rust-lang/crates.io-index)", - "serde_derive 1.0.80 (registry+https://github.com/rust-lang/crates.io-index)", - "serde_json 1.0.33 (registry+https://github.com/rust-lang/crates.io-index)", + "rand 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)", + "serde 1.0.87 (registry+https://github.com/rust-lang/crates.io-index)", + "serde_derive 1.0.87 (registry+https://github.com/rust-lang/crates.io-index)", + "serde_json 1.0.38 (registry+https://github.com/rust-lang/crates.io-index)", "sha2 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)", "signal-hook 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)", - "signatory 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)", - "signatory-dalek 0.10.0 (registry+https://github.com/rust-lang/crates.io-index)", - "signatory-yubihsm 0.10.0 (registry+https://github.com/rust-lang/crates.io-index)", - "subtle-encoding 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", - "tempfile 3.0.5 (registry+https://github.com/rust-lang/crates.io-index)", + "signatory 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)", + "signatory-dalek 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)", + "signatory-yubihsm 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)", + "subtle-encoding 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)", + "tempfile 3.0.6 (registry+https://github.com/rust-lang/crates.io-index)", "tendermint 0.2.0", ] [[package]] name = "toml" -version = "0.4.9" +version = "0.4.10" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "serde 1.0.80 (registry+https://github.com/rust-lang/crates.io-index)", + "serde 1.0.87 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -957,10 +977,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "uuid" -version = "0.7.1" +version = "0.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "rand 0.5.5 (registry+https://github.com/rust-lang/crates.io-index)", + "rand 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -989,40 +1009,40 @@ source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "x25519-dalek" -version = "0.4.4" +version = "0.4.5" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "clear_on_drop 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)", - "curve25519-dalek 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)", - "rand_core 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", + "curve25519-dalek 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)", + "rand_core 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "yubihsm" -version = "0.19.2" +version = "0.20.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "aes 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)", "bitflags 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)", "block-modes 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", - "byteorder 1.2.7 (registry+https://github.com/rust-lang/crates.io-index)", + "byteorder 1.3.1 (registry+https://github.com/rust-lang/crates.io-index)", "cmac 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", - "failure 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", - "failure_derive 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", + "failure 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", + "failure_derive 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", "gaunt 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "hmac 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", "lazy_static 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "libusb 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", "pbkdf2 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", - "rand 0.5.5 (registry+https://github.com/rust-lang/crates.io-index)", - "ring 0.13.5 (registry+https://github.com/rust-lang/crates.io-index)", - "serde 1.0.80 (registry+https://github.com/rust-lang/crates.io-index)", - "serde_derive 1.0.80 (registry+https://github.com/rust-lang/crates.io-index)", + "rand_os 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", + "ring 0.14.6 (registry+https://github.com/rust-lang/crates.io-index)", + "serde 1.0.87 (registry+https://github.com/rust-lang/crates.io-index)", + "serde_derive 1.0.87 (registry+https://github.com/rust-lang/crates.io-index)", "sha2 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)", - "subtle 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)", + "subtle 2.0.0 (registry+https://github.com/rust-lang/crates.io-index)", "untrusted 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)", - "uuid 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)", + "uuid 0.7.2 (registry+https://github.com/rust-lang/crates.io-index)", "zeroize 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -1031,20 +1051,26 @@ name = "zeroize" version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "cc 1.0.25 (registry+https://github.com/rust-lang/crates.io-index)", + "cc 1.0.29 (registry+https://github.com/rust-lang/crates.io-index)", "semver 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)", ] +[[package]] +name = "zeroize" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" + [metadata] "checksum abscissa 0.0.6 (registry+https://github.com/rust-lang/crates.io-index)" = "159a56ddefc6675d47b8063aada781ca621be8c7ac3adfc6520647024fd3461b" "checksum abscissa_derive 0.0.2 (registry+https://github.com/rust-lang/crates.io-index)" = "ef4cd3ff1140f337a6d49256197c1455e2fb97ed76b2f220606809974f128814" "checksum aes 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)" = "54eb1d8fe354e5fc611daf4f2ea97dd45a765f4f1e4512306ec183ae2e8f20c9" -"checksum aes-soft 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)" = "acdc19c789666840bb86d1df8ee1f458418f74a6b9c8f10538fb700de5829cb8" +"checksum aes-soft 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "cfd7e7ae3f9a1fb5c03b389fc6bb9a51400d0c13053f0dca698c832bfd893a0d" "checksum aesni 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)" = "2f70a6b5f971e473091ab7cfb5ffac6cde81666c4556751d8d5620ead8abf100" "checksum arc-swap 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)" = "1025aeae2b664ca0ea726a89d574fe8f4e77dd712d443236ad1de00379450cf6" "checksum arrayref 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)" = "0d382e583f07208808f6b1249e60848879ba3543f57c32277bf52d69c2f0f0ee" -"checksum backtrace 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)" = "89a47830402e9981c5c41223151efcced65a0510c13097c769cede7efb34782a" -"checksum backtrace-sys 0.1.24 (registry+https://github.com/rust-lang/crates.io-index)" = "c66d56ac8dabd07f6aacdaf633f4b8262f5b3601a810a0dcddffd5c22c69daa0" +"checksum autocfg 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "a6d640bee2da49f60a4068a7fae53acde8982514ab7bae8b8cea9e88cbcfd799" +"checksum backtrace 0.3.13 (registry+https://github.com/rust-lang/crates.io-index)" = "b5b493b66e03090ebc4343eb02f94ff944e0cbc9ac6571491d170ba026741eb5" +"checksum backtrace-sys 0.1.28 (registry+https://github.com/rust-lang/crates.io-index)" = "797c830ac25ccc92a7f8a7b9862bde440715531514594a6154e3d4a54dd769b6" "checksum base64 0.9.3 (registry+https://github.com/rust-lang/crates.io-index)" = "489d6c0ed21b11d038c31b6ceccca973e65d73ba3bd8ecb9a2babf5546164643" "checksum bit-set 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "e6e1e6fb1c9e3d6fcdec57216a74eaa03e41f52a22f13a16438251d8e88b89da" "checksum bit-vec 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)" = "4440d5cb623bb7390ae27fec0bb6c61111969860f8e3ae198bfa0663645e67cf" @@ -1053,31 +1079,29 @@ dependencies = [ "checksum block-buffer 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "49665c62e0e700857531fa5d3763e91b539ff1abeebd56808d378b495870d60d" "checksum block-cipher-trait 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)" = "1c924d49bd09e7c06003acda26cd9742e796e34282ec6c1189404dee0c1f4774" "checksum block-modes 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "283fa06a14026feac8912bf35328fc074f5d68907fd4b9cccad5658a3fc62a30" -"checksum block-padding 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "4fc4358306e344bf9775d0197fd00d2603e5afb0771bb353538630f022068ea3" +"checksum block-padding 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "d75255892aeb580d3c566f213a2b6fdc1c66667839f45719ee1d30ebf2aea591" "checksum byte-tools 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "560c32574a12a89ecd91f5e742165893f86e3ab98d21f8ea548658eb9eef5f40" -"checksum byte-tools 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "980479e6fde23246dfb54d47580d66b4e99202e7579c5eaa9fe10ecb5ebd2182" -"checksum byteorder 1.2.7 (registry+https://github.com/rust-lang/crates.io-index)" = "94f88df23a25417badc922ab0f5716cc1330e87f71ddd9203b3a3ccd9cedf75d" +"checksum byte-tools 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "e3b5ca7a04898ad4bcd41c90c5285445ff5b791899bb1b0abdd2a2aa791211d7" +"checksum byteorder 1.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "a019b10a2a7cdeb292db131fc8113e57ea2a908f6e7894b0c3c671893b65dbeb" "checksum bytes 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)" = "40ade3d27603c2cb345eb0912aec461a6dec7e06a4ae48589904e808335c7afa" "checksum canonical-path 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "9aa83b9f518bd3943b6757de8489c7756566df78026771955b90ecb87295a5dc" -"checksum cc 1.0.25 (registry+https://github.com/rust-lang/crates.io-index)" = "f159dfd43363c4d08055a07703eb7a3406b0dac4d0584d96965a3262db3c9d16" +"checksum cc 1.0.29 (registry+https://github.com/rust-lang/crates.io-index)" = "4390a3b5f4f6bce9c1d0c00128379df433e53777fdd30e92f16a529332baec4e" "checksum cfg-if 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)" = "082bb9b28e00d3c9d39cc03e64ce4cea0f1bb9b3fde493f0cbc008472d22bdf4" "checksum chrono 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)" = "45912881121cb26fad7c38c17ba7daa18764771836b34fab7d3fbd93ed633878" "checksum clear_on_drop 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)" = "97276801e127ffb46b66ce23f35cc96bd454fa311294bced4bbace7baa8b1d17" "checksum cloudabi 0.0.3 (registry+https://github.com/rust-lang/crates.io-index)" = "ddfc5b9aa5d4507acaf872de71051dfd0e309860e88966e1051e462a077aac4f" "checksum cmac 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "6f4a435124bcc292eba031f1f725d7abacdaf13cbf9f935450e8c45aa9e96cad" "checksum crypto-mac 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "4434400df11d95d556bac068ddfedd482915eb18fe8bea89bc80b6e4b1c179e5" -"checksum curve25519-dalek 0.20.0 (registry+https://github.com/rust-lang/crates.io-index)" = "3eacf6ff1b911e3170a8c400b402e10c86dc3cb166bd69034ebbc2b785fea4c2" -"checksum curve25519-dalek 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)" = "8461b0d2aa8e8a6e374074e82f95b053f4f9f87206441ee6c4bb00ae94c47e78" -"checksum dbl 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "6c40b13b561e11560d7b12785e74113a3163df617e2fbce60ce1764e0b270eaa" +"checksum curve25519-dalek 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)" = "dae47cc3529cdab597dbc8b606e565707209b506e55848f3c15679214a56c956" +"checksum dbl 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "28dc203b75decc900220c4d9838e738d08413e663c26826ba92b669bed1d0795" "checksum digest 0.7.6 (registry+https://github.com/rust-lang/crates.io-index)" = "03b072242a8cbaf9c145665af9d250c59af3b958f83ed6824e13533cf76d5b90" "checksum digest 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)" = "05f47366984d3ad862010e22c7ce81a7dbcaebbdfb37241a620f8b6596ee135c" -"checksum ed25519-dalek 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)" = "cd66d8a16ef71c23cf5eeb2140d8d3cd293457c6c7fd6804b593397a933fcf1e" +"checksum ed25519-dalek 1.0.0-pre.1 (registry+https://github.com/rust-lang/crates.io-index)" = "81956bcf7ef761fb4e1d88de3fa181358a0d26cbcb9755b587a08f9119824b86" "checksum either 1.5.0 (registry+https://github.com/rust-lang/crates.io-index)" = "3be565ca5c557d7f59e7cfcf1844f9e3033650c929c6566f511e8005f205c1d0" -"checksum failure 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "6dd377bcc1b1b7ce911967e3ec24fa19c3224394ec05b54aa7b083d498341ac7" -"checksum failure_derive 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "64c2d913fe8ed3b6c6518eedf4538255b989945c14c2a7d5cbff62a5e2120596" +"checksum failure 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "795bd83d3abeb9220f257e597aa0080a508b27533824adf336529648f6abf7e2" +"checksum failure_derive 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "ea1063915fd7ef4309e222a5a07cf9c319fb9c7836b1f89b85458672dbb127e1" "checksum fake-simd 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "e88a8acf291dafb59c2d96e8f59828f3838bb1a70398823ade51a84de6a6deed" -"checksum fuchsia-zircon 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "2e9763c69ebaae630ba35f74888db465e49e259ba1bc0eda7d06f4a067615d82" -"checksum fuchsia-zircon-sys 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "3dcaa9ae7725d12cdb85b3ad99a434db70b468c09ded17e012d86b5c1010f7a7" +"checksum fuchsia-cprng 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "a06f77d526c1a601b7c4cdd98f54b5eaabffc14d5f2f0296febdc7f357c6d3ba" "checksum gaunt 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "0348d3b5fbd30311ea16ce573f137c689e5a3fb2d7b037eefe0a6384143298b6" "checksum generic-array 0.12.0 (registry+https://github.com/rust-lang/crates.io-index)" = "3c0f28c2f5bfb5960175af447a2da7c18900693738343dc896ffbcabd9839592" "checksum generic-array 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ef25c5683767570c2bbd7deba372926a55eaae9982d7726ee2a1050239d45b9d" @@ -1088,66 +1112,71 @@ dependencies = [ "checksum itertools 0.7.11 (registry+https://github.com/rust-lang/crates.io-index)" = "0d47946d458e94a1b7bcabbf6521ea7c037062c81f534615abcad76e84d4970d" "checksum itoa 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)" = "1306f3464951f30e30d12373d31c79fbd52d236e5e896fd92f96ec7babbbe60b" "checksum lazy_static 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "a374c89b9db55895453a74c1e38861d9deec0b01b405a82516e9d5de4820dea1" -"checksum libc 0.2.44 (registry+https://github.com/rust-lang/crates.io-index)" = "10923947f84a519a45c8fefb7dd1b3e8c08747993381adee176d7a82b4195311" +"checksum libc 0.2.48 (registry+https://github.com/rust-lang/crates.io-index)" = "e962c7641008ac010fa60a7dfdc1712449f29c44ef2d4702394aea943ee75047" "checksum libusb 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "5f990ddd929cbe53de4ecd6cf26e1f4e0c5b9796e4c629d9046570b03738aa53" "checksum libusb-sys 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)" = "4c53b6582563d64ad3e692f54ef95239c3ea8069e82c9eb70ca948869a7ad767" "checksum log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)" = "c84ec4b527950aa83a329754b01dbe3f58361d1c5efacd1f6d68c494d08a17c6" "checksum num-integer 0.1.39 (registry+https://github.com/rust-lang/crates.io-index)" = "e83d528d2677f0518c570baf2b7abdcf0cd2d248860b68507bdcb3e91d4c0cea" "checksum num-traits 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)" = "0b3a5d7cc97d6d30d8b9bc8fa19bf45349ffe46241e8816f50f62f6d6aaabee1" -"checksum opaque-debug 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "51ecbcb821e1bd256d456fe858aaa7f380b63863eab2eb86eee1bd9f33dd6682" +"checksum opaque-debug 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "93f5bb2e8e8dec81642920ccff6b61f1eb94fa3020c5a325c9851ff604152409" "checksum pbkdf2 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "006c038a43a45995a9670da19e67600114740e8511d4333bf97a56e66a7542d9" "checksum pkg-config 0.3.14 (registry+https://github.com/rust-lang/crates.io-index)" = "676e8eb2b1b4c9043511a9b7bea0915320d7e502b0a079fb03f9635a5252b18c" -"checksum proc-macro2 0.4.24 (registry+https://github.com/rust-lang/crates.io-index)" = "77619697826f31a02ae974457af0b29b723e5619e113e9397b8b82c6bd253f09" +"checksum proc-macro2 0.4.27 (registry+https://github.com/rust-lang/crates.io-index)" = "4d317f9caece796be1980837fd5cb3dfec5613ebdb04ad0956deea83ce168915" "checksum prost-amino 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "04c5c4189b6c3e054c064a0c88d51f9379db268d5f8f6ea6afffd3849aeca1a7" "checksum prost-amino-derive 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "6376b995db84c9791ab5d3f7bc3e315f8bc1a55fe139a0a2da24aa24e27de809" -"checksum quote 0.6.10 (registry+https://github.com/rust-lang/crates.io-index)" = "53fa22a1994bd0f9372d7a816207d8a2677ad0325b073f5c5332760f0fb62b5c" -"checksum rand 0.5.5 (registry+https://github.com/rust-lang/crates.io-index)" = "e464cd887e869cddcae8792a4ee31d23c7edd516700695608f5b98c67ee0131c" -"checksum rand 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)" = "ae9d223d52ae411a33cf7e54ec6034ec165df296ccd23533d671a28252b6f66a" -"checksum rand_chacha 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "771b009e3a508cb67e8823dda454aaa5368c7bc1c16829fb77d3e980440dd34a" -"checksum rand_core 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "1961a422c4d189dfb50ffa9320bf1f2a9bd54ecb92792fb9477f99a1045f3372" -"checksum rand_core 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "0905b6b7079ec73b314d4c748701f6931eb79fd97c668caa3f1899b22b32c6db" +"checksum quote 0.6.11 (registry+https://github.com/rust-lang/crates.io-index)" = "cdd8e04bd9c52e0342b406469d494fcb033be4bdbe5c606016defbb1681411e1" +"checksum rand 0.5.6 (registry+https://github.com/rust-lang/crates.io-index)" = "c618c47cd3ebd209790115ab837de41425723956ad3ce2e6a7f09890947cacb9" +"checksum rand 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)" = "6d71dacdc3c88c1fde3885a3be3fbab9f35724e6ce99467f7d9c5026132184ca" +"checksum rand_chacha 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "556d3a1ca6600bfcbab7c7c91ccb085ac7fbbcd70e008a98742e7847f4f7bcef" +"checksum rand_core 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "7a6fdeb83b075e8266dcc8762c22776f6877a63111121f5f8c7411e5be7eed4b" +"checksum rand_core 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "d0e7a549d590831370895ab7ba4ea0c1b6b011d106b5ff2da6eee112615e6dc0" "checksum rand_hc 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "7b40677c7be09ae76218dc623efbf7b18e34bced3f38883af07bb75630a21bc4" "checksum rand_isaac 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "ded997c9d5f13925be2a6fd7e66bf1872597f759fd9dd93513dd7e92e5a5ee08" +"checksum rand_jitter 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "7b9ea758282efe12823e0d952ddb269d2e1897227e464919a554f2a03ef1b832" +"checksum rand_os 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "b7c690732391ae0abafced5015ffb53656abfaec61b342290e5eb56b286a679d" "checksum rand_pcg 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "086bd09a33c7044e56bb44d5bdde5a60e7f119a9e95b0775f545de759a32fe05" -"checksum rand_xorshift 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "effa3fcaa47e18db002bdde6060944b6d2f9cfd8db471c30e873448ad9187be3" -"checksum redox_syscall 0.1.43 (registry+https://github.com/rust-lang/crates.io-index)" = "679da7508e9a6390aeaf7fbd02a800fdc64b73fe2204dd2c8ae66d22d9d5ad5d" +"checksum rand_xorshift 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "cbf7e9e623549b0e21f6e97cf8ecf247c1a8fd2e8a992ae265314300b2455d5c" +"checksum rdrand 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "678054eb77286b51581ba43620cc911abf02758c91f93f479767aed0f90458b2" +"checksum redox_syscall 0.1.51 (registry+https://github.com/rust-lang/crates.io-index)" = "423e376fffca3dfa06c9e9790a9ccd282fafb3cc6e6397d01dbf64f9bacc6b85" "checksum remove_dir_all 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)" = "3488ba1b9a2084d38645c4c08276a1752dcbf2c7130d74f1569681ad5d2799c5" -"checksum ring 0.13.5 (registry+https://github.com/rust-lang/crates.io-index)" = "2c4db68a2e35f3497146b7e4563df7d4773a2433230c5e4b448328e31740458a" -"checksum rustc-demangle 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)" = "bcfe5b13211b4d78e5c2cadfebd7769197d95c639c35a50057eb4c05de811395" +"checksum ring 0.14.6 (registry+https://github.com/rust-lang/crates.io-index)" = "426bc186e3e95cac1e4a4be125a4aca7e84c2d616ffc02244eef36e2a60a093c" +"checksum rustc-demangle 0.1.13 (registry+https://github.com/rust-lang/crates.io-index)" = "adacaae16d02b6ec37fdc7acfcddf365978de76d1983d3ee22afc260e1ca9619" "checksum rustc_version 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)" = "138e3e0acb6c9fb258b19b67cb8abd63c00679d2851805ea151465464fe9030a" "checksum ryu 0.2.7 (registry+https://github.com/rust-lang/crates.io-index)" = "eb9e9b8cde282a9fe6a42dd4681319bfb63f121b8a8ee9439c6f4107e58a46f7" "checksum safemem 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "8dca453248a96cb0749e36ccdfe2b0b4e54a61bfef89fb97ec621eb8e0a93dd9" "checksum semver 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)" = "1d7eb9ef2c18661902cc47e535f9bc51b78acd254da71d375c2f6720d9a40403" "checksum semver-parser 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "388a1df253eca08550bef6c72392cfe7c30914bf41df5269b68cbd6ff8f570a3" -"checksum serde 1.0.80 (registry+https://github.com/rust-lang/crates.io-index)" = "15c141fc7027dd265a47c090bf864cf62b42c4d228bbcf4e51a0c9e2b0d3f7ef" -"checksum serde_derive 1.0.80 (registry+https://github.com/rust-lang/crates.io-index)" = "225de307c6302bec3898c51ca302fc94a7a1697ef0845fcee6448f33c032249c" -"checksum serde_json 1.0.33 (registry+https://github.com/rust-lang/crates.io-index)" = "c37ccd6be3ed1fdf419ee848f7c758eb31b054d7cd3ae3600e3bae0adf569811" +"checksum serde 1.0.87 (registry+https://github.com/rust-lang/crates.io-index)" = "2e20fde37801e83c891a2dc4ebd3b81f0da4d1fb67a9e0a2a3b921e2536a58ee" +"checksum serde_derive 1.0.87 (registry+https://github.com/rust-lang/crates.io-index)" = "633e97856567e518b59ffb2ad7c7a4fd4c5d91d9c7f32dd38a27b2bf7e8114ea" +"checksum serde_json 1.0.38 (registry+https://github.com/rust-lang/crates.io-index)" = "27dce848e7467aa0e2fcaf0a413641499c0b745452aaca1194d24dedde9e13c9" "checksum sha2 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)" = "9eb6be24e4c23a84d7184280d2722f7f2731fcdd4a9d886efbfe4413e4847ea0" "checksum sha2 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)" = "7b4d8bfd0e469f417657573d8451fb33d16cfe0989359b93baf3a1ffc639543d" "checksum signal-hook 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)" = "1f272d1b7586bec132ed427f532dd418d8beca1ca7f2caf7df35569b1415a4b4" -"checksum signatory 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)" = "c7e5af4518e2de8720eea63c8809ff829d066ceeb234edfd7706efaf5b7f2c58" -"checksum signatory-dalek 0.10.0 (registry+https://github.com/rust-lang/crates.io-index)" = "bf5b791dd2c0bee3b20ad31158fc59da0c62ca9536d7d3258089ed4355933dd7" -"checksum signatory-yubihsm 0.10.0 (registry+https://github.com/rust-lang/crates.io-index)" = "4eccabdea78c7d3270a407f2c7aedd6c00ea186899d9d1578c303dbf186560a7" +"checksum signatory 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)" = "b2edc08ebe757a7b45352fa63c75c107fb569cc281779b0db0f8d6a384eaddd8" +"checksum signatory-dalek 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)" = "d9b5ed7678eaeb98cb23e1efdb5e961021b02d3bd9f8bab4d4e30c53ebb3dd50" +"checksum signatory-yubihsm 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)" = "b494a76142da87e8952f9135ed9a0acf55b93a1b1f504c7a1ab227f84c395ccc" "checksum simplelog 0.5.3 (registry+https://github.com/rust-lang/crates.io-index)" = "2e95345f185d5adeb8ec93459d2dc99654e294cc6ccf5b75414d8ea262de9a13" +"checksum spin 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)" = "44363f6f51401c34e7be73db0db371c04705d35efbe9f7d6082e03a921a32c55" "checksum subtle 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "2d67a5a62ba6e01cb2192ff309324cb4875d0c451d55fe2319433abe7a05a8ee" "checksum subtle 2.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "702662512f3ddeb74a64ce2fbbf3707ee1b6bb663d28bb054e0779bbc720d926" -"checksum subtle-encoding 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "8643d9fd5d5e790f56ff7df15e13a725b405f19c51ff7ee940e951b6ba3db0a9" +"checksum subtle-encoding 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)" = "55e5af7ac7cad4c2ed39566eb93b3af0e8f1580770b8118e9a52b9a466d4f75c" "checksum syn 0.14.9 (registry+https://github.com/rust-lang/crates.io-index)" = "261ae9ecaa397c42b960649561949d69311f08eeaea86a65696e6e46517cf741" -"checksum syn 0.15.22 (registry+https://github.com/rust-lang/crates.io-index)" = "ae8b29eb5210bc5cf63ed6149cbf9adfc82ac0be023d8735c176ee74a2db4da7" +"checksum syn 0.15.26 (registry+https://github.com/rust-lang/crates.io-index)" = "f92e629aa1d9c827b2bb8297046c1ccffc57c99b947a680d3ccff1f136a3bee9" "checksum synstructure 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)" = "73687139bf99285483c96ac0add482c3776528beac1d97d444f6e91f203a2015" "checksum tai64 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "aec79c84b38f055fd98013da804b912a165d9691a3fd27fefabc8b46ed8b6901" -"checksum tempfile 3.0.5 (registry+https://github.com/rust-lang/crates.io-index)" = "7e91405c14320e5c79b3d148e1c86f40749a36e490642202a31689cb1a3452b2" +"checksum tempfile 3.0.6 (registry+https://github.com/rust-lang/crates.io-index)" = "37daa55a7240c4931c84559f03b3cad7d19535840d1c4a0cc4e9b2fb0dcf70ff" "checksum term 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)" = "5e6b677dd1e8214ea1ef4297f85dbcbed8e8cdddb561040cc998ca2551c37561" -"checksum time 0.1.40 (registry+https://github.com/rust-lang/crates.io-index)" = "d825be0eb33fda1a7e68012d51e9c7f451dc1a69391e7fdc197060bb8c56667b" -"checksum toml 0.4.9 (registry+https://github.com/rust-lang/crates.io-index)" = "19782e145d5abefb03758958f06ea35f7b1d8421b534140e0238fd3d0bfd66e3" +"checksum time 0.1.42 (registry+https://github.com/rust-lang/crates.io-index)" = "db8dcfca086c1143c9270ac42a2bbd8a7ee477b78ac8e45b19abfb0cbede4b6f" +"checksum toml 0.4.10 (registry+https://github.com/rust-lang/crates.io-index)" = "758664fc71a3a69038656bee8b6be6477d2a6c315a6b81f7081f591bffa4111f" "checksum typenum 1.10.0 (registry+https://github.com/rust-lang/crates.io-index)" = "612d636f949607bdf9b123b4a6f6d966dedf3ff669f7f045890d3a4a73948169" "checksum unicode-xid 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "fc72304796d0818e357ead4e000d19c9c174ab23dc11093ac919054d20a6a7fc" "checksum untrusted 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)" = "55cd1f4b4e96b46aeb8d4855db4a7a9bd96eeeb5c6a1ab54593328761642ce2f" -"checksum uuid 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)" = "dab5c5526c5caa3d106653401a267fed923e7046f35895ffcb5ca42db64942e6" +"checksum uuid 0.7.2 (registry+https://github.com/rust-lang/crates.io-index)" = "0238db0c5b605dd1cf51de0f21766f97fba2645897024461d6a00c036819a768" "checksum winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)" = "167dc9d6949a9b857f3451275e911c3f44255842c1f7a76f33c55103a909087a" "checksum winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)" = "92c1eb33641e276cfa214a0522acad57be5c56b10cb348b3c5117db75f3ac4b0" "checksum winapi-i686-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" "checksum winapi-x86_64-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" -"checksum x25519-dalek 0.4.4 (registry+https://github.com/rust-lang/crates.io-index)" = "5fe7d2488063901f8d9d5553d83d6d0c19601351a8fb0d9fd88e8ae8b134f7b9" -"checksum yubihsm 0.19.2 (registry+https://github.com/rust-lang/crates.io-index)" = "8f058a21d99bfcd9b70807137acf5815741563af952d9d227e22b33de3affd2e" +"checksum x25519-dalek 0.4.5 (registry+https://github.com/rust-lang/crates.io-index)" = "58e75de7a035f694df91838afa87faa8278bc484fa8d7dc34b5a24535cc2bb41" +"checksum yubihsm 0.20.0 (registry+https://github.com/rust-lang/crates.io-index)" = "8af617d8d7bdadcb3946dc39a6a7b1c46ffcb349cb88fb72c4150954fbf27385" "checksum zeroize 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)" = "d7ddffec9ddef28ba2d6359bcbf0dc6772e62b112bc103dfb1e6fab46cd47c39" +"checksum zeroize 0.5.2 (registry+https://github.com/rust-lang/crates.io-index)" = "8ddfeb6eee2fb3b262ef6e0898a52b7563bb8e0d5955a313b3cf2f808246ea14" diff --git a/Cargo.toml b/Cargo.toml index dcdd8f6..6d31fb1 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -8,6 +8,7 @@ homepage = "https://github.com/tendermint/kms/" readme = "README.md" categories = ["cryptography"] keywords = ["cosmos", "ed25519", "kms", "key-management", "yubihsm"] +edition = "2018" [workspace] members = [".", "tendermint-rs"] @@ -26,20 +27,20 @@ failure_derive = "0.1" lazy_static = "1" prost-amino = "0.4.0" prost-amino-derive = "0.4.0" -rand = "0.6" serde = "1" serde_derive = "1" serde_json = "1" sha2 = "0.8" signal-hook = "0.1.7" -signatory = { version = "0.10", features = ["ed25519"] } -signatory-dalek = "0.10" -signatory-yubihsm = { version = "0.10", optional = true } +signatory = { version = "0.11", features = ["ed25519"] } +signatory-dalek = "0.11" +signatory-yubihsm = { version = "0.11", optional = true } subtle-encoding = "0.3" -tendermint = { version = "0.2,0", path = "tendermint-rs" } +tendermint = { version = "0.2", path = "tendermint-rs" } [dev-dependencies] tempfile = "3" +rand = "0.6" [features] default = ["softsign", "yubihsm"] diff --git a/src/commands/yubihsm/detect.rs b/src/commands/yubihsm/detect.rs index ff40e37..bc47d7a 100644 --- a/src/commands/yubihsm/detect.rs +++ b/src/commands/yubihsm/detect.rs @@ -18,7 +18,7 @@ pub struct DetectCommand { impl Callable for DetectCommand { /// Detect all YubiHSM2 devices connected via USB fn call(&self) { - let devices = Devices::new(Default::default()).unwrap_or_else(|e| { + let devices = Devices::detect(Default::default()).unwrap_or_else(|e| { status_err!("couldn't detect USB devices: {}", e); // TODO: handle exits via abscissa diff --git a/src/commands/yubihsm/keys/generate.rs b/src/commands/yubihsm/keys/generate.rs index 233ea62..1971c46 100644 --- a/src/commands/yubihsm/keys/generate.rs +++ b/src/commands/yubihsm/keys/generate.rs @@ -62,7 +62,7 @@ impl Callable for GenerateCommand { } let public_key = - ed25519::PublicKey::from_bytes(hsm.get_pubkey(*key_id).unwrap_or_else(|e| { + ed25519::PublicKey::from_bytes(hsm.get_public_key(*key_id).unwrap_or_else(|e| { status_err!("couldn't get public key for key #{}: {}", key_id, e); process::exit(1); })) diff --git a/src/commands/yubihsm/keys/import.rs b/src/commands/yubihsm/keys/import.rs index 44d07d7..efb1382 100644 --- a/src/commands/yubihsm/keys/import.rs +++ b/src/commands/yubihsm/keys/import.rs @@ -109,14 +109,15 @@ impl Callable for ImportCommand { } let public_key = ed25519::PublicKey::from_bytes( - hsm.get_pubkey(self.key_id.unwrap()).unwrap_or_else(|e| { - status_err!( - "couldn't get public key for key #{}: {}", - self.key_id.unwrap(), - e - ); - process::exit(1); - }), + hsm.get_public_key(self.key_id.unwrap()) + .unwrap_or_else(|e| { + status_err!( + "couldn't get public key for key #{}: {}", + self.key_id.unwrap(), + e + ); + process::exit(1); + }), ) .unwrap(); diff --git a/src/commands/yubihsm/keys/list.rs b/src/commands/yubihsm/keys/list.rs index 33c05d8..338bcfb 100644 --- a/src/commands/yubihsm/keys/list.rs +++ b/src/commands/yubihsm/keys/list.rs @@ -50,7 +50,7 @@ impl Callable for ListCommand { println!("Listing keys in YubiHSM #{}:", serial_number); for key in &keys { - let public_key = hsm.get_pubkey(key.object_id).unwrap_or_else(|e| { + let public_key = hsm.get_public_key(key.object_id).unwrap_or_else(|e| { status_err!( "couldn't get public key for asymmetric key #{}: {}", key.object_id, diff --git a/src/commands/yubihsm/keys/mod.rs b/src/commands/yubihsm/keys/mod.rs index 697510b..40038e5 100644 --- a/src/commands/yubihsm/keys/mod.rs +++ b/src/commands/yubihsm/keys/mod.rs @@ -17,7 +17,7 @@ pub const DEFAULT_KEY_TYPE: &str = "ed25519"; pub const DEFAULT_DOMAINS: yubihsm::Domain = yubihsm::Domain::DOM1; /// Default YubiHSM2 permissions for generated keys -pub const DEFAULT_CAPABILITIES: yubihsm::Capability = yubihsm::Capability::ASYMMETRIC_SIGN_EDDSA; +pub const DEFAULT_CAPABILITIES: yubihsm::Capability = yubihsm::Capability::SIGN_EDDSA; /// The `yubihsm keys` subcommand #[derive(Debug, Options)] diff --git a/src/keyring/ed25519/yubihsm.rs b/src/keyring/ed25519/yubihsm.rs index 3276523..9603f2d 100644 --- a/src/keyring/ed25519/yubihsm.rs +++ b/src/keyring/ed25519/yubihsm.rs @@ -28,7 +28,7 @@ pub fn init(keyring: &mut KeyRing, yubihsm_configs: &[YubihsmConfig]) -> Result< } let yubihsm_config = &yubihsm_configs[0]; - let connector = signatory_yubihsm::yubihsm::UsbConnector::new(&yubihsm_config.usb_config())?; + let connector = signatory_yubihsm::yubihsm::UsbConnector::create(&yubihsm_config.usb_config())?; let session = signatory_yubihsm::Session::create(connector, yubihsm_config.auth.credentials())?; for key_config in &yubihsm_config.keys { diff --git a/src/yubihsm.rs b/src/yubihsm.rs index 7342278..7b6e469 100644 --- a/src/yubihsm.rs +++ b/src/yubihsm.rs @@ -1,13 +1,10 @@ -use crate::{ - abscissa::GlobalConfig, - config::{provider::yubihsm::YubihsmConfig, KmsConfig}, - std::{ - process, - sync::{Mutex, MutexGuard}, - }, -}; - +use crate::config::{provider::yubihsm::YubihsmConfig, KmsConfig}; +use abscissa::GlobalConfig; pub use signatory_yubihsm::yubihsm::*; +use std::{ + process, + sync::{Mutex, MutexGuard}, +}; lazy_static! { static ref HSM_CLIENT: Mutex = Mutex::new(create_hsm_client()); @@ -49,7 +46,7 @@ pub fn get_config() -> YubihsmConfig { #[cfg(not(feature = "yubihsm-mock"))] pub fn create_hsm_connector() -> Box { // TODO: `HttpConnector` support - let connector = UsbConnector::new(&get_config().usb_config()).unwrap_or_else(|e| { + let connector = UsbConnector::create(&get_config().usb_config()).unwrap_or_else(|e| { status_err!("error opening USB connection to YubiHSM2: {}", e); process::exit(1); }); diff --git a/tendermint-rs/Cargo.toml b/tendermint-rs/Cargo.toml index 769cdc9..2e39aa0 100644 --- a/tendermint-rs/Cargo.toml +++ b/tendermint-rs/Cargo.toml @@ -7,6 +7,7 @@ repository = "https://github.com/tendermint/kms/tree/master/crates/tendermint" readme = "README.md" categories = ["cryptography", "database"] keywords = ["blockchain", "bft", "consensus", "cosmos", "tendermint"] +edition = "2018" description = """ Tendermint is a high-performance blockchain consensus engine that powers @@ -35,12 +36,12 @@ failure_derive = "0.1" hkdf = { version = "0.7", optional = true } prost-amino = { version = "0.4.0", optional = true } prost-amino-derive = { version = "0.4.0", optional = true } -rand = { version = "0.6", optional = true } -ring = { version = "0.13", optional = true } +rand_os = { version = "0.1", optional = true } +ring = { version = "0.14", optional = true } serde = { version = "1", optional = true } serde_derive = { version = "1", optional = true } -signatory = { version = "0.10", optional = true, features = ["ed25519"] } -signatory-dalek = { version = "0.10", optional = true } +signatory = { version = "0.11", optional = true, features = ["ed25519"] } +signatory-dalek = { version = "0.11", optional = true } sha2 = { version = "0.8", optional = true, default-features = false } subtle-encoding = { version = "0.3", features = ["bech32-preview"] } tai64 = { version = "1", optional = true, features = ["chrono"] } @@ -54,7 +55,7 @@ secret-connection = [ "hkdf", "prost-amino", "prost-amino-derive", - "rand", + "rand_os", "ring", "signatory", "signatory-dalek", diff --git a/tendermint-rs/src/amino_types/ed25519.rs b/tendermint-rs/src/amino_types/ed25519.rs index 349b699..da567fb 100644 --- a/tendermint-rs/src/amino_types/ed25519.rs +++ b/tendermint-rs/src/amino_types/ed25519.rs @@ -41,7 +41,8 @@ impl Into for PublicKey { #[cfg(test)] mod tests { use super::*; - use crate::{prost::Message, std::error::Error}; + use prost::Message; + use std::error::Error; #[test] fn test_empty_pubkey_msg() { diff --git a/tendermint-rs/src/amino_types/proposal.rs b/tendermint-rs/src/amino_types/proposal.rs index c874617..5211b12 100644 --- a/tendermint-rs/src/amino_types/proposal.rs +++ b/tendermint-rs/src/amino_types/proposal.rs @@ -1,12 +1,3 @@ -use crate::{ - block, - bytes::BufMut, - chain, - error::Error, - prost::{EncodeError, Message}, - signatory::{ed25519, Signature}, -}; - use super::{ block_id::{BlockId, CanonicalBlockId, CanonicalPartSetHeader}, remote_error::RemoteError, @@ -14,6 +5,10 @@ use super::{ time::TimeMsg, validate::{ConsensusMessage, ValidationError, ValidationErrorKind::*}, }; +use crate::{block, chain, error::Error}; +use bytes::BufMut; +use prost::{EncodeError, Message}; +use signatory::{ed25519, Signature}; #[derive(Clone, PartialEq, Message)] pub struct Proposal { @@ -161,12 +156,10 @@ impl ConsensusMessage for Proposal { #[cfg(test)] mod tests { use super::*; - use crate::{ - amino_types::block_id::PartsSetHeader, - chrono::{DateTime, Utc}, - prost::Message, - std::error::Error, - }; + use crate::amino_types::block_id::PartsSetHeader; + use chrono::{DateTime, Utc}; + use prost::Message; + use std::error::Error; #[test] fn test_serialization() { diff --git a/tendermint-rs/src/amino_types/signature.rs b/tendermint-rs/src/amino_types/signature.rs index 8f8b824..004ff11 100644 --- a/tendermint-rs/src/amino_types/signature.rs +++ b/tendermint-rs/src/amino_types/signature.rs @@ -1,10 +1,8 @@ -use crate::{ - amino_types::validate::ValidationError, - bytes::BufMut, - chain, - prost::{DecodeError, EncodeError}, - signatory::ed25519, -}; +use super::validate::ValidationError; +use crate::chain; +use bytes::BufMut; +use prost::{DecodeError, EncodeError}; +use signatory::ed25519; /// Amino messages which are signable within a Tendermint network pub trait SignableMsg { diff --git a/tendermint-rs/src/amino_types/time.rs b/tendermint-rs/src/amino_types/time.rs index ba68454..e80817f 100644 --- a/tendermint-rs/src/amino_types/time.rs +++ b/tendermint-rs/src/amino_types/time.rs @@ -1,11 +1,11 @@ //! Timestamps use crate::{ - chrono::{TimeZone, Utc}, error::Error, - std::time::{Duration, SystemTime, UNIX_EPOCH}, timestamp::{ParseTimestamp, Timestamp}, }; +use chrono::{TimeZone, Utc}; +use std::time::{Duration, SystemTime, UNIX_EPOCH}; #[derive(Clone, PartialEq, Message)] pub struct TimeMsg { diff --git a/tendermint-rs/src/amino_types/vote.rs b/tendermint-rs/src/amino_types/vote.rs index d3f1917..3ddfa06 100644 --- a/tendermint-rs/src/amino_types/vote.rs +++ b/tendermint-rs/src/amino_types/vote.rs @@ -1,12 +1,3 @@ -use crate::{ - block, - bytes::BufMut, - chain, - error::Error, - prost::{error::EncodeError, Message}, - signatory::{ed25519, Signature}, -}; - use super::{ block_id::{BlockId, CanonicalBlockId, CanonicalPartSetHeader}, remote_error::RemoteError, @@ -15,6 +6,10 @@ use super::{ validate::{ConsensusMessage, ValidationError, ValidationErrorKind::*}, SignedMsgType, }; +use crate::{block, chain, error::Error}; +use bytes::BufMut; +use prost::{error::EncodeError, Message}; +use signatory::{ed25519, Signature}; const VALIDATOR_ADDR_SIZE: usize = 20; @@ -187,11 +182,9 @@ impl ConsensusMessage for Vote { mod tests { use super::super::PartsSetHeader; use super::*; - use crate::{ - amino_types::SignedMsgType, - chrono::{DateTime, Utc}, - prost::Message, - }; + use crate::amino_types::SignedMsgType; + use chrono::{DateTime, Utc}; + use prost::Message; #[test] fn test_vote_serialization() { diff --git a/tendermint-rs/src/block/height.rs b/tendermint-rs/src/block/height.rs index 2c0b69b..5f308e8 100644 --- a/tendermint-rs/src/block/height.rs +++ b/tendermint-rs/src/block/height.rs @@ -1,7 +1,5 @@ -use crate::{ - error::Error, - std::fmt::{self, Debug, Display}, -}; +use crate::error::Error; +use std::fmt::{self, Debug, Display}; /// Block height for a particular chain (i.e. number of blocks created since /// the chain began) diff --git a/tendermint-rs/src/chain/id.rs b/tendermint-rs/src/chain/id.rs index 6bb74fe..54431d5 100644 --- a/tendermint-rs/src/chain/id.rs +++ b/tendermint-rs/src/chain/id.rs @@ -1,5 +1,6 @@ //! Tendermint blockchain identifiers +use crate::error::Error; #[cfg(feature = "serializers")] use serde::{de::Error as DeError, Deserialize, Deserializer, Serialize, Serializer}; use std::{ @@ -9,8 +10,6 @@ use std::{ str::{self, FromStr}, }; -use crate::error::Error; - /// Maximum length of a `chain::Id` name. Matches `MaxChainIDLen` from: /// // TODO: update this when `chain::Id` is derived from a digest output diff --git a/tendermint-rs/src/error.rs b/tendermint-rs/src/error.rs index e69300e..164320e 100644 --- a/tendermint-rs/src/error.rs +++ b/tendermint-rs/src/error.rs @@ -1,7 +1,7 @@ //! Error types #[cfg(feature = "secret-connection")] -use crate::{ +use { chrono, prost, signatory, std::{self, io}, subtle_encoding, diff --git a/tendermint-rs/src/hash.rs b/tendermint-rs/src/hash.rs index 28d9c4a..6182166 100644 --- a/tendermint-rs/src/hash.rs +++ b/tendermint-rs/src/hash.rs @@ -1,11 +1,8 @@ //! Hash functions and their outputs -use crate::{ - algorithm::HashAlgorithm, - error::Error, - std::fmt::{self, Display}, - subtle_encoding::{Encoding, Hex}, -}; +use crate::{algorithm::HashAlgorithm, error::Error}; +use std::fmt::{self, Display}; +use subtle_encoding::{Encoding, Hex}; /// Output size for the SHA-256 hash function pub const SHA256_HASH_SIZE: usize = 32; diff --git a/tendermint-rs/src/lib.rs b/tendermint-rs/src/lib.rs index 3f72ac0..11191a8 100644 --- a/tendermint-rs/src/lib.rs +++ b/tendermint-rs/src/lib.rs @@ -5,8 +5,6 @@ //! This crate provides types for representing information about Tendermint //! blockchain networks, including chain IDs, block IDs, and block heights. -#![crate_name = "tendermint"] -#![crate_type = "rlib"] #![deny( warnings, missing_docs, @@ -21,12 +19,6 @@ html_root_url = "https://docs.rs/tendermint/0.2.0" )] -#[cfg(feature = "secret-connection")] -extern crate byteorder; -extern crate bytes; -extern crate chrono; -pub extern crate digest; -extern crate failure; #[macro_use] extern crate failure_derive; #[cfg(feature = "secret-connection")] @@ -35,21 +27,8 @@ extern crate prost_amino as prost; #[macro_use] extern crate prost_amino_derive as prost_derive; #[cfg(feature = "serializers")] -extern crate serde; -#[cfg(feature = "serializers")] #[macro_use] extern crate serde_derive; -#[cfg(feature = "secret-connection")] -pub extern crate sha2; -#[cfg(feature = "secret-connection")] -pub extern crate signatory; -#[cfg(feature = "secret-connection")] -extern crate signatory_dalek; -extern crate subtle_encoding; -#[cfg(feature = "tai64")] -extern crate tai64; -#[cfg(feature = "secret-connection")] -extern crate zeroize; pub mod algorithm; pub mod amino_types; diff --git a/tendermint-rs/src/public_keys.rs b/tendermint-rs/src/public_keys.rs index 577e384..9edb7df 100644 --- a/tendermint-rs/src/public_keys.rs +++ b/tendermint-rs/src/public_keys.rs @@ -1,13 +1,11 @@ //! Public keys used in Tendermint networks // TODO:: account keys -use crate::{ - error::Error, - sha2::{Digest, Sha256}, - signatory::ed25519, - std::fmt::{self, Display}, - subtle_encoding::bech32, -}; +use crate::error::Error; +use sha2::{Digest, Sha256}; +use signatory::ed25519; +use std::fmt::{self, Display}; +use subtle_encoding::bech32; /// Validator signing keys used for authenticating consensus protocol messages #[derive(Copy, Clone, Debug, Hash, Eq, PartialEq)] diff --git a/tendermint-rs/src/secret_connection/kdf.rs b/tendermint-rs/src/secret_connection/kdf.rs index c0e4794..6aa3b4e 100644 --- a/tendermint-rs/src/secret_connection/kdf.rs +++ b/tendermint-rs/src/secret_connection/kdf.rs @@ -1,4 +1,4 @@ -use super::hkdf::Hkdf; +use hkdf::Hkdf; use sha2::Sha256; use zeroize::Zeroize; diff --git a/tendermint-rs/src/secret_connection/mod.rs b/tendermint-rs/src/secret_connection/mod.rs index c37ced1..9be7cbb 100644 --- a/tendermint-rs/src/secret_connection/mod.rs +++ b/tendermint-rs/src/secret_connection/mod.rs @@ -1,44 +1,32 @@ //! `SecretConnection`: Transport layer encryption for Tendermint P2P connections. -extern crate hkdf; -extern crate rand; -extern crate ring; -extern crate x25519_dalek; - mod kdf; mod nonce; -use self::{ - rand::rngs::OsRng, - ring::aead, - x25519_dalek::{EphemeralPublic, EphemeralSecret}, -}; -use crate::{ - amino_types::AuthSigMessage, - byteorder::{ByteOrder, LE}, - bytes::BufMut, - error::Error, - prost::{encoding::encode_varint, Message}, - public_keys::SecretConnectionKey, - signatory::{ed25519, Signature, Signer}, - signatory_dalek::Ed25519Verifier, -}; +pub use self::{kdf::Kdf, nonce::Nonce}; +use crate::{amino_types::AuthSigMessage, error::Error, public_keys::SecretConnectionKey}; +use byteorder::{ByteOrder, LE}; +use bytes::BufMut; +use prost::{encoding::encode_varint, Message}; +use rand_os::OsRng; +use ring::aead; +use signatory::{ed25519, Signature, Signer}; +use signatory_dalek::Ed25519Verifier; use std::{ cmp, io::{self, Read, Write}, marker::{Send, Sync}, }; +use x25519_dalek::{EphemeralPublic, EphemeralSecret}; -pub use self::{kdf::Kdf, nonce::Nonce}; +/// Size of the MAC tag +pub const TAG_SIZE: usize = 16; /// 4 + 1024 == 1028 total frame size const DATA_LEN_SIZE: usize = 4; const DATA_MAX_SIZE: usize = 1024; const TOTAL_FRAME_SIZE: usize = DATA_MAX_SIZE + DATA_LEN_SIZE; -/// Size of the MAC tag -pub const TAG_SIZE: usize = 16; - /// Encrypted connection between peers in a Tendermint network pub struct SecretConnection { io_handler: IoHandler, @@ -123,34 +111,28 @@ impl SecretConnection { } /// Unseal (i.e. decrypt) AEAD authenticated data - fn open(&self, authtext: &[u8], ciphertext: &[u8], out: &mut [u8]) -> Result { + fn open(&self, ciphertext: &[u8], out: &mut [u8]) -> Result { + let nonce = aead::Nonce::from(&self.recv_nonce); + let associated_data = aead::Aad::empty(); + // optimize if the provided buffer is sufficiently large - if out.len() >= ciphertext.len() { + let len = if out.len() >= ciphertext.len() { let in_out = &mut out[..ciphertext.len()]; in_out.copy_from_slice(ciphertext); - let len = aead::open_in_place( - &self.recv_secret, - &self.recv_nonce.to_bytes(), - authtext, - 0, - in_out, - ) - .map_err(|_| Error::Crypto)? - .len(); - Ok(len) + + aead::open_in_place(&self.recv_secret, nonce, associated_data, 0, in_out) + .map_err(|_| Error::Crypto)? + .len() } else { let mut in_out = ciphertext.to_vec(); - let out0 = aead::open_in_place( - &self.recv_secret, - &self.recv_nonce.to_bytes(), - authtext, - 0, - &mut in_out, - ) - .map_err(|_| Error::Crypto)?; + let out0 = + aead::open_in_place(&self.recv_secret, nonce, aead::Aad::empty(), 0, &mut in_out) + .map_err(|_| Error::Crypto)?; out[..out0.len()].copy_from_slice(out0); - Ok(out0.len()) - } + out0.len() + }; + + Ok(len) } /// Seal (i.e. encrypt) AEAD authenticated data @@ -167,8 +149,8 @@ impl SecretConnection { aead::seal_in_place( &self.send_secret, - &self.send_nonce.to_bytes(), - &[0u8; 0], + aead::Nonce::from(&self.send_nonce), + aead::Aad::empty(), sealed_frame, TAG_SIZE, ) @@ -199,15 +181,15 @@ where // decrypt the frame let mut frame = [0u8; TOTAL_FRAME_SIZE]; - let res = self.open(&[0u8; 0], &sealed_frame, &mut frame); - let mut frame_copy = [0u8; TOTAL_FRAME_SIZE]; - frame_copy.clone_from_slice(&frame); + let res = self.open(&sealed_frame, &mut frame); + if res.is_err() { return Err(io::Error::new( io::ErrorKind::Other, res.err().unwrap().to_string(), )); } + self.recv_nonce.increment(); // end decryption @@ -215,23 +197,24 @@ where chunk_length_specifier.clone_from_slice(&frame[..4]); let chunk_length = LE::read_u32(&chunk_length_specifier); - if chunk_length > DATA_MAX_SIZE as u32 { - Err(io::Error::new( + + if chunk_length as usize > DATA_MAX_SIZE { + return Err(io::Error::new( io::ErrorKind::Other, "chunk_length is greater than dataMaxSize", - )) - } else { - let mut chunk = vec![0; chunk_length as usize]; - chunk.clone_from_slice( - &frame_copy - [DATA_LEN_SIZE..(DATA_LEN_SIZE.checked_add(chunk_length as usize).unwrap())], - ); - let n = cmp::min(data.len(), chunk.len()); - data[..n].copy_from_slice(&chunk[..n]); - self.recv_buffer.copy_from_slice(&chunk[n..]); - - Ok(n) + )); } + + let mut chunk = vec![0; chunk_length as usize]; + chunk.clone_from_slice( + &frame[DATA_LEN_SIZE..(DATA_LEN_SIZE.checked_add(chunk_length as usize).unwrap())], + ); + + let n = cmp::min(data.len(), chunk.len()); + data[..n].copy_from_slice(&chunk[..n]); + self.recv_buffer.copy_from_slice(&chunk[n..]); + + Ok(n) } } diff --git a/tendermint-rs/src/secret_connection/nonce.rs b/tendermint-rs/src/secret_connection/nonce.rs index 05753e1..fe6d43f 100644 --- a/tendermint-rs/src/secret_connection/nonce.rs +++ b/tendermint-rs/src/secret_connection/nonce.rs @@ -1,4 +1,5 @@ use byteorder::{ByteOrder, LE}; +use ring::aead; /// Size of a ChaCha20 nonce pub const SIZE: usize = 12; @@ -26,6 +27,12 @@ impl Nonce { } } +impl From<&Nonce> for aead::Nonce { + fn from(nonce: &Nonce) -> aead::Nonce { + aead::Nonce::assume_unique_for_key(nonce.0) + } +} + #[cfg(test)] mod tests { use super::*; diff --git a/tendermint-rs/src/timestamp.rs b/tendermint-rs/src/timestamp.rs index d19da0f..68f470c 100644 --- a/tendermint-rs/src/timestamp.rs +++ b/tendermint-rs/src/timestamp.rs @@ -1,12 +1,10 @@ //! Timestamps used by Tendermint blockchains +use crate::error::Error; +use chrono::{DateTime, Utc}; +use std::time::{Duration, SystemTime, UNIX_EPOCH}; #[cfg(feature = "tai64")] -use crate::tai64::TAI64N; -use crate::{ - chrono::{DateTime, Utc}, - error::Error, - std::time::{Duration, SystemTime, UNIX_EPOCH}, -}; +use tai64::TAI64N; /// Chain timestamps (e.g. consensus time) #[cfg_attr(feature = "serializers", derive(Serialize, Deserialize))] diff --git a/tests/integration.rs b/tests/integration.rs index 1dd79b2..b4586a5 100644 --- a/tests/integration.rs +++ b/tests/integration.rs @@ -1,30 +1,16 @@ //! KMS integration test extern crate prost_amino as prost; -extern crate rand; -extern crate signatory; - -extern crate signatory_dalek; -extern crate tempfile; - -extern crate byteorder; -extern crate bytes; -extern crate chrono; -extern crate failure; -extern crate sha2; -extern crate tendermint; -extern crate tmkms; use crate::prost::Message; use chrono::{DateTime, Utc}; use rand::Rng; use signatory::{ed25519, encoding::Identity, Decode, Signature}; use signatory_dalek::{Ed25519Signer, Ed25519Verifier}; -use std::io; -use std::os::unix::net::{UnixListener, UnixStream}; use std::{ - io::{Cursor, Read, Write}, + io::{self, Cursor, Read, Write}, net::{TcpListener, TcpStream}, + os::unix::net::{UnixListener, UnixStream}, process::{Child, Command}, }; use tempfile::NamedTempFile; @@ -85,7 +71,7 @@ impl io::Read for KmsConnection { } /// Receives incoming KMS connection then sends commands -struct KmsDevice { +struct KmsProcess { /// KMS child process process: Child, @@ -93,13 +79,12 @@ struct KmsDevice { socket: KmsSocket, } -impl KmsDevice { +impl KmsProcess { /// Spawn the KMS process and wait for an incoming TCP connection pub fn create_tcp() -> Self { // Generate a random port and a config file - let mut rng = rand::thread_rng(); - let port: u16 = rng.gen_range(60000, 65535); - let config = KmsDevice::create_tcp_config(port); + let port: u16 = rand::thread_rng().gen_range(60000, 65535); + let config = KmsProcess::create_tcp_config(port); // Listen on a random port let listener = TcpListener::bind(format!("{}:{}", "127.0.0.1", port)).unwrap(); @@ -121,7 +106,7 @@ impl KmsDevice { let letter: char = rng.gen_range(b'a', b'z') as char; let number: u32 = rng.gen_range(0, 999999); let socket_path = format!("/tmp/tmkms-{}{:06}.sock", letter, number); - let config = KmsDevice::create_unix_config(&socket_path); + let config = KmsProcess::create_unix_config(&socket_path); // Start listening for connections via the Unix socket let listener = UnixListener::bind(socket_path).unwrap(); @@ -208,9 +193,9 @@ impl KmsDevice { /// A struct to hold protocol integration tests contexts struct ProtocolTester { - tcp_device: KmsDevice, + tcp_device: KmsProcess, tcp_connection: KmsConnection, - unix_device: KmsDevice, + unix_device: KmsProcess, unix_connection: KmsConnection, } @@ -219,9 +204,9 @@ impl ProtocolTester { where F: FnOnce(ProtocolTester), { - let tcp_device = KmsDevice::create_tcp(); + let tcp_device = KmsProcess::create_tcp(); let tcp_connection = tcp_device.create_connection(); - let unix_device = KmsDevice::create_unix(); + let unix_device = KmsProcess::create_unix(); let unix_connection = unix_device.create_connection(); functor(Self { From 4c8dd193dea072e7b4b1e3eff5ebe501e06c12ef Mon Sep 17 00:00:00 2001 From: Tony Arcieri Date: Wed, 13 Feb 2019 06:40:47 -0800 Subject: [PATCH 2/2] README.md: Bump min Rust version to 1.31+ tmkms now requires the 2018 edition of Rust --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index f5e1898..737f6c4 100644 --- a/README.md +++ b/README.md @@ -66,7 +66,7 @@ prerequisites for support. You will need the following prerequisites: -- **Rust** (stable; 1.27+): https://rustup.rs/ +- **Rust** (stable; 1.31+): https://rustup.rs/ - **C compiler**: e.g. gcc, clang - **pkg-config** - **libusb** (1.0+). Install instructions for common platforms: