From bc6c929c26f304ca1c1962abc3118db01a42c7db Mon Sep 17 00:00:00 2001 From: folex <0xdxdy@gmail.com> Date: Tue, 20 Sep 2022 13:09:27 +0300 Subject: [PATCH] libp2p 0.36, libsecp256k1 0.7.0 --- Cargo.lock | 159 ++++++--------------------------------- Cargo.toml | 5 +- keypair/Cargo.toml | 4 +- keypair/src/error.rs | 4 +- keypair/src/secp256k1.rs | 22 +++--- service/Cargo.toml | 2 +- 6 files changed, 42 insertions(+), 154 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 66bd560..faa2e8f 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -133,22 +133,10 @@ dependencies = [ "cc", "cfg-if 0.1.10", "constant_time_eq", - "crypto-mac 0.8.0", + "crypto-mac", "digest 0.9.0", ] -[[package]] -name = "block-buffer" -version = "0.7.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c0940dc441f31689269e10ac70eb1002a3a1d3ad1390e030043662eb7fe4688b" -dependencies = [ - "block-padding", - "byte-tools", - "byteorder", - "generic-array 0.12.4", -] - [[package]] name = "block-buffer" version = "0.9.0" @@ -167,15 +155,6 @@ dependencies = [ "generic-array 0.14.5", ] -[[package]] -name = "block-padding" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa79dedbb091f449f1f39e53edf88d5dbe95f895dae6135a8d7b881fb5af73f5" -dependencies = [ - "byte-tools", -] - [[package]] name = "boolinator" version = "2.4.0" @@ -200,12 +179,6 @@ version = "3.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a4a45a46ab1f2412e53d3a0ade76ffad2025804294569aae387231a0cd6e0899" -[[package]] -name = "byte-tools" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e3b5ca7a04898ad4bcd41c90c5285445ff5b791899bb1b0abdd2a2aa791211d7" - [[package]] name = "byteorder" version = "1.4.3" @@ -269,15 +242,6 @@ dependencies = [ "bitflags", ] -[[package]] -name = "cmake" -version = "0.1.48" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e8ad8cef104ac57b68b89df3208164d228503abbdce70f6880ffa3d970e7443a" -dependencies = [ - "cc", -] - [[package]] name = "cmd_lib" version = "0.7.8" @@ -427,16 +391,6 @@ dependencies = [ "generic-array 0.14.5", ] -[[package]] -name = "crypto-mac" -version = "0.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4434400df11d95d556bac068ddfedd482915eb18fe8bea89bc80b6e4b1c179e5" -dependencies = [ - "generic-array 0.12.4", - "subtle 1.0.0", -] - [[package]] name = "crypto-mac" version = "0.8.0" @@ -444,7 +398,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b584a330336237c1eecd3e94266efb216c56ed91225d634cb2991c5f3fd1aeab" dependencies = [ "generic-array 0.14.5", - "subtle 2.4.1", + "subtle", ] [[package]] @@ -466,7 +420,7 @@ dependencies = [ "byteorder", "digest 0.9.0", "rand_core 0.5.1", - "subtle 2.4.1", + "subtle", "zeroize", ] @@ -689,12 +643,6 @@ dependencies = [ "synstructure", ] -[[package]] -name = "fake-simd" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e88a8acf291dafb59c2d96e8f59828f3838bb1a70398823ade51a84de6a6deed" - [[package]] name = "fallible-iterator" version = "0.2.0" @@ -788,7 +736,7 @@ dependencies = [ "eyre", "lazy_static", "libp2p-core", - "libsecp256k1 0.3.5", + "libsecp256k1", "quickcheck", "rand 0.7.3", "ring", @@ -1040,37 +988,16 @@ version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" -[[package]] -name = "hmac" -version = "0.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5dcb5e64cda4c23119ab41ba960d1e170a774c8e4b9d9e6a9bc18aabf5e59695" -dependencies = [ - "crypto-mac 0.7.0", - "digest 0.8.1", -] - [[package]] name = "hmac" version = "0.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "126888268dcc288495a26bf004b38c5fdbb31682f992c84ceb046a1f0fe38840" dependencies = [ - "crypto-mac 0.8.0", + "crypto-mac", "digest 0.9.0", ] -[[package]] -name = "hmac-drbg" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c6e570451493f10f6581b48cdd530413b63ea9e780f544bfd3bdcaa0d89d1a7b" -dependencies = [ - "digest 0.8.1", - "generic-array 0.12.4", - "hmac 0.7.1", -] - [[package]] name = "hmac-drbg" version = "0.3.0" @@ -1079,7 +1006,7 @@ checksum = "17ea0a1394df5b6574da6e0c1ade9e78868c9fb0a4e5ef4428e32da4676b85b1" dependencies = [ "digest 0.9.0", "generic-array 0.14.5", - "hmac 0.8.1", + "hmac", ] [[package]] @@ -1225,9 +1152,9 @@ checksum = "565dbd88872dbe4cc8a46e527f26483c1d1f7afa6b884a3bd6cd893d4f98da74" [[package]] name = "libp2p-core" -version = "0.33.0" +version = "0.36.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "42d46fca305dee6757022e2f5a4f6c023315084d0ed7441c3ab244e76666d979" +checksum = "b1fff5bd889c82a0aec668f2045edd066f559d4e5c40354e5a4c77ac00caac38" dependencies = [ "asn1_der 0.7.5", "bs58 0.4.0", @@ -1238,7 +1165,7 @@ dependencies = [ "futures-timer", "instant", "lazy_static", - "libsecp256k1 0.7.0", + "libsecp256k1", "log", "multiaddr", "multihash", @@ -1260,30 +1187,14 @@ dependencies = [ [[package]] name = "libsecp256k1" -version = "0.3.5" +version = "0.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1fc1e2c808481a63dc6da2074752fdd4336a3c8fcc68b83db6f1fd5224ae7962" -dependencies = [ - "arrayref", - "crunchy", - "digest 0.8.1", - "hmac-drbg 0.2.0", - "rand 0.7.3", - "sha2 0.8.2", - "subtle 2.4.1", - "typenum", -] - -[[package]] -name = "libsecp256k1" -version = "0.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b0452aac8bab02242429380e9b2f94ea20cea2b37e2c1777a1358799bbe97f37" +checksum = "95b09eff1b35ed3b33b877ced3a691fc7a481919c7e29c53c906226fcf55e2a1" dependencies = [ "arrayref", "base64", "digest 0.9.0", - "hmac-drbg 0.3.0", + "hmac-drbg", "libsecp256k1-core", "libsecp256k1-gen-ecmult", "libsecp256k1-gen-genmult", @@ -1301,7 +1212,7 @@ checksum = "5be9b9bb642d8522a44d533eab56c16c738301965504753b03ad1de3425d5451" dependencies = [ "crunchy", "digest 0.9.0", - "subtle 2.4.1", + "subtle", ] [[package]] @@ -1785,12 +1696,6 @@ version = "1.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "da32515d9f6e6e489d7bc9d84c71b060db7247dc035bbe44eac88cf87486d8d5" -[[package]] -name = "opaque-debug" -version = "0.2.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2839e79665f131bdb5782e51f2c6c9599c133c6098982a54c794358bf432529c" - [[package]] name = "opaque-debug" version = "0.3.0" @@ -2016,9 +1921,9 @@ dependencies = [ [[package]] name = "prost" -version = "0.10.4" +version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "71adf41db68aa0daaefc69bb30bcd68ded9b9abaad5d1fbb6304c4fb390e083e" +checksum = "399c3c31cdec40583bb68f0b18403400d01ec4289c383aa047560439952c4dd7" dependencies = [ "bytes", "prost-derive", @@ -2026,13 +1931,11 @@ dependencies = [ [[package]] name = "prost-build" -version = "0.10.4" +version = "0.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8ae5a4388762d5815a9fc0dea33c56b021cdc8dde0c55e0c9ca57197254b0cab" +checksum = "7f835c582e6bd972ba8347313300219fed5bfa52caf175298d860b61ff6069bb" dependencies = [ "bytes", - "cfg-if 1.0.0", - "cmake", "heck 0.4.0", "itertools 0.10.3", "lazy_static", @@ -2048,9 +1951,9 @@ dependencies = [ [[package]] name = "prost-derive" -version = "0.10.1" +version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b670f45da57fb8542ebdbb6105a925fe571b67f9e7ed9f47a06a84e72b4e7cc" +checksum = "7345d5f0e08c0536d7ac7229952590239e77abf0a0100a1b1d890add6ea96364" dependencies = [ "anyhow", "itertools 0.10.3", @@ -2061,9 +1964,9 @@ dependencies = [ [[package]] name = "prost-types" -version = "0.10.1" +version = "0.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2d0a014229361011dc8e69c8a1ec6c2e8d0f2af7c91e3ea3f5b2170298461e68" +checksum = "4dfaa718ad76a44b3415e6c4d53b17c8f99160dcb3a99b10470fce8ad43f6e3e" dependencies = [ "bytes", "prost", @@ -2496,18 +2399,6 @@ dependencies = [ "syn", ] -[[package]] -name = "sha2" -version = "0.8.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a256f46ea78a0c0d9ff00077504903ac881a1dafdc20da66545699e7776b3e69" -dependencies = [ - "block-buffer 0.7.3", - "digest 0.8.1", - "fake-simd", - "opaque-debug 0.2.3", -] - [[package]] name = "sha2" version = "0.9.9" @@ -2518,7 +2409,7 @@ dependencies = [ "cfg-if 1.0.0", "cpufeatures", "digest 0.9.0", - "opaque-debug 0.3.0", + "opaque-debug", ] [[package]] @@ -2568,12 +2459,6 @@ version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623" -[[package]] -name = "subtle" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2d67a5a62ba6e01cb2192ff309324cb4875d0c451d55fe2319433abe7a05a8ee" - [[package]] name = "subtle" version = "2.4.1" diff --git a/Cargo.toml b/Cargo.toml index e721eeb..b084fd4 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -8,7 +8,7 @@ license = "Apache-2.0" repository = "https://github.com/fluencelabs/trust-graph" [dependencies] -libp2p-core = { version = "0.33", default-features = false, features = [ "secp256k1" ] } +libp2p-core = { workspace = true } serde = { version = "1.0.118", features = ["derive"] } fluence-keypair = { path = "./keypair", version = "0.8.0" } @@ -30,3 +30,6 @@ members = [ "keypair", "service" ] + +[workspace.dependencies] +libp2p-core = { version = "0.36.0", default-features = false, features = [ "secp256k1", "rsa" ] } diff --git a/keypair/Cargo.toml b/keypair/Cargo.toml index 7207c70..b8374c6 100644 --- a/keypair/Cargo.toml +++ b/keypair/Cargo.toml @@ -18,12 +18,12 @@ ed25519 = "1.0.3" serde_with = "1.6.0" thiserror = "1.0.23" lazy_static = "1.2" -libsecp256k1 = "0.3.1" +libsecp256k1 = "0.7.0" asn1_der = "0.6.1" sha2 = "0.9.1" zeroize = "1" serde_bytes = "0.11" -libp2p-core = { version = "0.33.0", default-features = false, features = [ "secp256k1" ] } +libp2p-core = { workspace = true } eyre = "0.6.5" [target.'cfg(not(target_arch = "wasm32"))'.dependencies] diff --git a/keypair/src/error.rs b/keypair/src/error.rs index 029163f..10c3dc6 100644 --- a/keypair/src/error.rs +++ b/keypair/src/error.rs @@ -68,7 +68,7 @@ pub enum SigningError { Secp256k1( #[from] #[source] - secp256k1::Error, + libsecp256k1::Error, ), } @@ -83,5 +83,5 @@ pub enum VerificationError { Rsa(#[source] ring::error::Unspecified, String, String), #[error("Failed to verify signature {1} with {2} secp256k1 public key: {0}")] - Secp256k1(#[source] secp256k1::Error, String, String), + Secp256k1(#[source] libsecp256k1::Error, String, String), } diff --git a/keypair/src/secp256k1.rs b/keypair/src/secp256k1.rs index 9e15e8d..47d24a1 100644 --- a/keypair/src/secp256k1.rs +++ b/keypair/src/secp256k1.rs @@ -24,7 +24,7 @@ use crate::error::{DecodingError, SigningError, VerificationError}; use asn1_der::{DerObject, FromDerObject}; use core::fmt; use rand::RngCore; -use secp256k1::Message; +use libsecp256k1::Message; use serde::de::Error as SerdeError; use serde::{Deserialize, Deserializer, Serialize, Serializer}; use serde_bytes::{ByteBuf as SerdeByteBuf, Bytes as SerdeBytes}; @@ -66,7 +66,7 @@ impl fmt::Debug for Keypair { /// Promote a Secp256k1 secret key into a keypair. impl From for Keypair { fn from(secret: SecretKey) -> Self { - let public = PublicKey(secp256k1::PublicKey::from_secret_key(&secret.0)); + let public = PublicKey(libsecp256k1::PublicKey::from_secret_key(&secret.0)); Keypair { secret, public } } } @@ -80,7 +80,7 @@ impl From for SecretKey { /// A Secp256k1 secret key. #[derive(Clone)] -pub struct SecretKey(secp256k1::SecretKey); +pub struct SecretKey(libsecp256k1::SecretKey); impl fmt::Debug for SecretKey { fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { @@ -92,12 +92,12 @@ impl SecretKey { /// Generate a new Secp256k1 secret key. pub fn generate() -> Self { let mut r = rand::thread_rng(); - let mut b = [0; secp256k1::util::SECRET_KEY_SIZE]; - // This is how it is done in `secp256k1::SecretKey::random` which + let mut b = [0; libsecp256k1::util::SECRET_KEY_SIZE]; + // This is how it is done in `libsecp256k1::SecretKey::random` which // we do not use here because it uses `rand::Rng` from rand-0.4. loop { r.fill_bytes(&mut b); - if let Ok(k) = secp256k1::SecretKey::parse(&b) { + if let Ok(k) = libsecp256k1::SecretKey::parse(&b) { return SecretKey(k); } } @@ -109,7 +109,7 @@ impl SecretKey { pub fn from_bytes(mut sk: impl AsMut<[u8]>) -> Result { let sk_bytes = sk.as_mut(); let secret = - secp256k1::SecretKey::parse_slice(&*sk_bytes).map_err(|_| DecodingError::Secp256k1)?; + libsecp256k1::SecretKey::parse_slice(&*sk_bytes).map_err(|_| DecodingError::Secp256k1)?; sk_bytes.zeroize(); Ok(SecretKey(secret)) } @@ -149,7 +149,7 @@ impl SecretKey { /// ECDSA signature. pub fn sign_hashed(&self, msg: &[u8]) -> Result, SigningError> { let m = Message::parse_slice(msg).map_err(SigningError::Secp256k1)?; - Ok(secp256k1::sign(&m, &self.0) + Ok(libsecp256k1::sign(&m, &self.0) .0 .serialize_der() .as_ref() @@ -159,7 +159,7 @@ impl SecretKey { /// A Secp256k1 public key. #[derive(PartialEq, Eq, Clone, Debug)] -pub struct PublicKey(secp256k1::PublicKey); +pub struct PublicKey(libsecp256k1::PublicKey); impl PublicKey { /// Verify the Secp256k1 signature on a message using the public key. @@ -171,7 +171,7 @@ impl PublicKey { pub fn verify_hashed(&self, msg: &[u8], sig: &[u8]) -> Result<(), VerificationError> { Message::parse_slice(msg) .and_then(|m| { - secp256k1::Signature::parse_der(sig).map(|s| secp256k1::verify(&m, &s, &self.0)) + libsecp256k1::Signature::parse_der(sig).map(|s| libsecp256k1::verify(&m, &s, &self.0)) }) .map_err(|e| { VerificationError::Secp256k1( @@ -197,7 +197,7 @@ impl PublicKey { /// Decode a public key from a byte slice in the the format produced /// by `encode`. pub fn decode(bytes: &[u8]) -> Result { - secp256k1::PublicKey::parse_slice(bytes, Some(secp256k1::PublicKeyFormat::Compressed)) + libsecp256k1::PublicKey::parse_slice(bytes, Some(libsecp256k1::PublicKeyFormat::Compressed)) .map_err(|_| DecodingError::Secp256k1) .map(PublicKey) } diff --git a/service/Cargo.toml b/service/Cargo.toml index d08e834..d810536 100644 --- a/service/Cargo.toml +++ b/service/Cargo.toml @@ -16,7 +16,7 @@ fluence-keypair = { version = "0.8.0", path = "../keypair" } marine-rs-sdk = { version = "0.6.14", features = ["logger"] } marine-sqlite-connector = "0.5.2" -libp2p-core = { version = "0.33", default-features = false, features = [ "secp256k1" ] } +libp2p-core = { workspace = true } log = "0.4.8" anyhow = "1.0.31"