remove std feature, add u64_backend feature

This commit is contained in:
Mike 2023-08-23 10:47:11 +02:00
parent f3bce3023a
commit e5b8a9c011
4 changed files with 28 additions and 84 deletions

73
Cargo.lock generated
View File

@ -32,7 +32,7 @@ version = "0.7.6"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "fcb51a0695d8f838b1ee009b3fbf66bda078cd64590202a864a8f3e8c4315c47" checksum = "fcb51a0695d8f838b1ee009b3fbf66bda078cd64590202a864a8f3e8c4315c47"
dependencies = [ dependencies = [
"getrandom 0.2.10", "getrandom",
"once_cell", "once_cell",
"version_check", "version_check",
] ]
@ -301,7 +301,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4d25555efacb0b5244cf1d35833d55d21abc916fff0eaad254b8e2453ea9b8ab" checksum = "4d25555efacb0b5244cf1d35833d55d21abc916fff0eaad254b8e2453ea9b8ab"
dependencies = [ dependencies = [
"ambient-authority", "ambient-authority",
"rand 0.8.5", "rand",
] ]
[[package]] [[package]]
@ -813,7 +813,6 @@ checksum = "c762bae6dcaf24c4c84667b8579785430908723d5c889f469d76a41d59cc7a9d"
dependencies = [ dependencies = [
"curve25519-dalek 3.2.0", "curve25519-dalek 3.2.0",
"ed25519 1.5.3", "ed25519 1.5.3",
"rand 0.7.3",
"serde", "serde",
"serde_bytes", "serde_bytes",
"sha2 0.9.9", "sha2 0.9.9",
@ -1003,7 +1002,7 @@ dependencies = [
"libp2p-identity", "libp2p-identity",
"multihash 0.18.1", "multihash 0.18.1",
"quickcheck", "quickcheck",
"rand 0.8.5", "rand",
"serde", "serde",
"serde_bytes", "serde_bytes",
"sha2 0.10.7", "sha2 0.10.7",
@ -1067,17 +1066,6 @@ dependencies = [
"version_check", "version_check",
] ]
[[package]]
name = "getrandom"
version = "0.1.16"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8fc3cb4d91f53b50155bdcfd23f6a4c39ae1969c2ae85982b135750cccaf5fce"
dependencies = [
"cfg-if",
"libc",
"wasi 0.9.0+wasi-snapshot-preview1",
]
[[package]] [[package]]
name = "getrandom" name = "getrandom"
version = "0.2.10" version = "0.2.10"
@ -2152,7 +2140,7 @@ checksum = "588f6378e4dd99458b60ec275b4477add41ce4fa9f64dcba6f15adccb19b50d6"
dependencies = [ dependencies = [
"env_logger 0.8.4", "env_logger 0.8.4",
"log", "log",
"rand 0.8.5", "rand",
] ]
[[package]] [[package]]
@ -2164,19 +2152,6 @@ dependencies = [
"proc-macro2", "proc-macro2",
] ]
[[package]]
name = "rand"
version = "0.7.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6a6b1679d49b24bbfe0c803429aa1874472f50d9b363131f0e89fc356b544d03"
dependencies = [
"getrandom 0.1.16",
"libc",
"rand_chacha 0.2.2",
"rand_core 0.5.1",
"rand_hc",
]
[[package]] [[package]]
name = "rand" name = "rand"
version = "0.8.5" version = "0.8.5"
@ -2184,20 +2159,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404"
dependencies = [ dependencies = [
"libc", "libc",
"rand_chacha 0.3.1", "rand_chacha",
"rand_core 0.6.4", "rand_core 0.6.4",
] ]
[[package]]
name = "rand_chacha"
version = "0.2.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f4c8ed856279c9737206bf725bf36935d8666ead7aa69b52be55af369d193402"
dependencies = [
"ppv-lite86",
"rand_core 0.5.1",
]
[[package]] [[package]]
name = "rand_chacha" name = "rand_chacha"
version = "0.3.1" version = "0.3.1"
@ -2213,9 +2178,6 @@ name = "rand_core"
version = "0.5.1" version = "0.5.1"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "90bde5296fc891b0cef12a6d03ddccc162ce7b2aff54160af9338f8d40df6d19" checksum = "90bde5296fc891b0cef12a6d03ddccc162ce7b2aff54160af9338f8d40df6d19"
dependencies = [
"getrandom 0.1.16",
]
[[package]] [[package]]
name = "rand_core" name = "rand_core"
@ -2223,16 +2185,7 @@ version = "0.6.4"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c"
dependencies = [ dependencies = [
"getrandom 0.2.10", "getrandom",
]
[[package]]
name = "rand_hc"
version = "0.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ca3129af7b92a17112d59ad498c6f81eaf463253766b90396d39ea7a39d6613c"
dependencies = [
"rand_core 0.5.1",
] ]
[[package]] [[package]]
@ -2281,7 +2234,7 @@ version = "0.4.3"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b033d837a7cf162d7993aded9304e30a83213c648b6e389db233191f891e5c2b" checksum = "b033d837a7cf162d7993aded9304e30a83213c648b6e389db233191f891e5c2b"
dependencies = [ dependencies = [
"getrandom 0.2.10", "getrandom",
"redox_syscall 0.2.16", "redox_syscall 0.2.16",
"thiserror", "thiserror",
] ]
@ -2871,7 +2824,7 @@ dependencies = [
"fluence-keypair", "fluence-keypair",
"log", "log",
"nonempty", "nonempty",
"rand 0.8.5", "rand",
"ref-cast", "ref-cast",
"serde", "serde",
"sha2 0.10.7", "sha2 0.10.7",
@ -2978,7 +2931,7 @@ version = "1.4.1"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "79daa5ed5740825c40b389c5e50312b9c86df53fccd33f281df655642b43869d" checksum = "79daa5ed5740825c40b389c5e50312b9c86df53fccd33f281df655642b43869d"
dependencies = [ dependencies = [
"getrandom 0.2.10", "getrandom",
] ]
[[package]] [[package]]
@ -3045,12 +2998,6 @@ dependencies = [
"syn 1.0.109", "syn 1.0.109",
] ]
[[package]]
name = "wasi"
version = "0.9.0+wasi-snapshot-preview1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "cccddf32554fecc6acb585f82a32a72e28b48f8c4c1883ddfeeeaa96f7d8e519"
[[package]] [[package]]
name = "wasi" name = "wasi"
version = "0.10.0+wasi-snapshot-preview1" version = "0.10.0+wasi-snapshot-preview1"
@ -3392,7 +3339,7 @@ dependencies = [
"memfd", "memfd",
"memoffset 0.6.5", "memoffset 0.6.5",
"paste", "paste",
"rand 0.8.5", "rand",
"rustix 0.36.15", "rustix 0.36.15",
"wasmtime-asm-macros", "wasmtime-asm-macros",
"wasmtime-environ", "wasmtime-environ",

View File

@ -10,7 +10,7 @@ repository = "https://github.com/fluencelabs/trust-graph"
[dependencies] [dependencies]
serde = { version = "1.0.118", features = ["derive"] } serde = { version = "1.0.118", features = ["derive"] }
bs58 = "0.5.0" bs58 = "0.5.0"
ed25519-dalek = { version = "1.0.1", features = ["serde", "std", "u32_backend"], default-features = false } ed25519-dalek = { version = "1.0.1", features = ["serde", "u64_backend"], default-features = false }
thiserror = "1.0.23" thiserror = "1.0.23"
lazy_static = "1.4" lazy_static = "1.4"
sha2 = "0.10.6" sha2 = "0.10.6"

View File

@ -53,12 +53,17 @@ impl Keypair {
kp.zeroize(); kp.zeroize();
Keypair(k) Keypair(k)
}) })
.map_err(DecodingError::Ed25519) .map_err(|_| DecodingError::Ed25519())
} }
/// Sign a message using the private key of this keypair. /// Sign a message using the private key of this keypair.
pub fn sign(&self, msg: &[u8]) -> Result<Vec<u8>, SigningError> { pub fn sign(&self, msg: &[u8]) -> Result<Vec<u8>, SigningError> {
Ok(self.0.try_sign(msg)?.to_bytes().to_vec()) Ok(self
.0
.try_sign(msg)
.map_err(|_| SigningError::Ed25519())?
.to_bytes()
.to_vec())
} }
/// Get the public key of this keypair. /// Get the public key of this keypair.
@ -128,9 +133,8 @@ impl PublicKey {
pub fn verify(&self, msg: &[u8], sig: &[u8]) -> Result<(), VerificationError> { pub fn verify(&self, msg: &[u8], sig: &[u8]) -> Result<(), VerificationError> {
ed25519::Signature::try_from(sig) ed25519::Signature::try_from(sig)
.and_then(|s| self.0.verify(msg, &s)) .and_then(|s| self.0.verify(msg, &s))
.map_err(|e| { .map_err(|_| {
VerificationError::Ed25519( VerificationError::Ed25519(
e,
bs58::encode(sig).into_string(), bs58::encode(sig).into_string(),
bs58::encode(self.0.as_bytes()).into_string(), bs58::encode(self.0.as_bytes()).into_string(),
) )
@ -146,7 +150,7 @@ impl PublicKey {
/// Decode a public key from a byte array as produced by `encode`. /// Decode a public key from a byte array as produced by `encode`.
pub fn decode(bytes: &[u8]) -> Result<Self, DecodingError> { pub fn decode(bytes: &[u8]) -> Result<Self, DecodingError> {
ed25519::PublicKey::from_bytes(bytes) ed25519::PublicKey::from_bytes(bytes)
.map_err(DecodingError::Ed25519) .map_err(|_| DecodingError::Ed25519())
.map(PublicKey) .map(PublicKey)
} }
} }
@ -192,7 +196,8 @@ impl SecretKey {
/// returned. /// returned.
pub fn from_bytes(mut sk_bytes: impl AsMut<[u8]>) -> Result<Self, DecodingError> { pub fn from_bytes(mut sk_bytes: impl AsMut<[u8]>) -> Result<Self, DecodingError> {
let sk_bytes = sk_bytes.as_mut(); let sk_bytes = sk_bytes.as_mut();
let secret = ed25519::SecretKey::from_bytes(&*sk_bytes).map_err(DecodingError::Ed25519)?; let secret =
ed25519::SecretKey::from_bytes(&*sk_bytes).map_err(|_| DecodingError::Ed25519())?;
sk_bytes.zeroize(); sk_bytes.zeroize();
Ok(SecretKey(secret)) Ok(SecretKey(secret))
} }

View File

@ -31,12 +31,8 @@ pub enum Error {
/// An error during decoding of key material. /// An error during decoding of key material.
#[derive(ThisError, Debug)] #[derive(ThisError, Debug)]
pub enum DecodingError { pub enum DecodingError {
#[error("Failed to decode with ed25519: {0}")] #[error("Failed to decode with ed25519")]
Ed25519( Ed25519(),
#[from]
#[source]
ed25519_dalek::ed25519::Error,
),
#[error("Invalid type prefix")] #[error("Invalid type prefix")]
InvalidTypeByte, InvalidTypeByte,
#[error("Cannot decode public key from base58 :{0}")] #[error("Cannot decode public key from base58 :{0}")]
@ -50,17 +46,13 @@ pub enum DecodingError {
/// An error during signing of a message. /// An error during signing of a message.
#[derive(ThisError, Debug)] #[derive(ThisError, Debug)]
pub enum SigningError { pub enum SigningError {
#[error("Failed to sign with ed25519: {0}")] #[error("Failed to sign with ed25519")]
Ed25519( Ed25519(),
#[from]
#[source]
ed25519_dalek::ed25519::Error,
),
} }
/// An error during verification of a message. /// An error during verification of a message.
#[derive(ThisError, Debug)] #[derive(ThisError, Debug)]
pub enum VerificationError { pub enum VerificationError {
#[error("Failed to verify signature {1} with {2} ed25519 public key: {0}")] #[error("Failed to verify signature {0} with {1} ed25519 public key")]
Ed25519(#[source] ed25519_dalek::ed25519::Error, String, String), Ed25519(String, String),
} }