chore: bump libsecp256k1 from 0.3.5 to 0.5.0 (#17734)
* chore: bump libsecp256k1 from 0.3.5 to 0.5.0 Bumps [libsecp256k1](https://github.com/paritytech/libsecp256k1) from 0.3.5 to 0.5.0. - [Release notes](https://github.com/paritytech/libsecp256k1/releases) - [Changelog](https://github.com/paritytech/libsecp256k1/blob/master/CHANGELOG.md) - [Commits](https://github.com/paritytech/libsecp256k1/commits) --- updated-dependencies: - dependency-name: libsecp256k1 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> * [auto-commit] Update all Cargo lock files * Update crate name Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: dependabot-buildkite <dependabot-buildkite@noreply.solana.com> Co-authored-by: Tyera Eulberg <tyera@solana.com>
This commit is contained in:
parent
f6fb8906c7
commit
7bb5f24274
|
@ -1765,13 +1765,13 @@ dependencies = [
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "hmac-drbg"
|
name = "hmac-drbg"
|
||||||
version = "0.2.0"
|
version = "0.3.0"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "c6e570451493f10f6581b48cdd530413b63ea9e780f544bfd3bdcaa0d89d1a7b"
|
checksum = "17ea0a1394df5b6574da6e0c1ade9e78868c9fb0a4e5ef4428e32da4676b85b1"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"digest 0.8.1",
|
"digest 0.9.0",
|
||||||
"generic-array 0.12.3",
|
"generic-array 0.14.3",
|
||||||
"hmac 0.7.1",
|
"hmac 0.8.1",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
|
@ -2251,20 +2251,52 @@ dependencies = [
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "libsecp256k1"
|
name = "libsecp256k1"
|
||||||
version = "0.3.5"
|
version = "0.5.0"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "1fc1e2c808481a63dc6da2074752fdd4336a3c8fcc68b83db6f1fd5224ae7962"
|
checksum = "bd1137239ab33b41aa9637a88a28249e5e70c40a42ccc92db7f12cc356c1fcd7"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"arrayref",
|
"arrayref",
|
||||||
"crunchy",
|
"base64 0.12.3",
|
||||||
"digest 0.8.1",
|
"digest 0.9.0",
|
||||||
"hmac-drbg",
|
"hmac-drbg",
|
||||||
|
"libsecp256k1-core",
|
||||||
|
"libsecp256k1-gen-ecmult",
|
||||||
|
"libsecp256k1-gen-genmult",
|
||||||
"rand 0.7.3",
|
"rand 0.7.3",
|
||||||
"sha2 0.8.2",
|
"serde",
|
||||||
"subtle 2.2.2",
|
"sha2 0.9.5",
|
||||||
"typenum",
|
"typenum",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "libsecp256k1-core"
|
||||||
|
version = "0.2.0"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "daaa407ce05dc49849836840fb2542edcadafc4f55e314840cbb5b49359a6919"
|
||||||
|
dependencies = [
|
||||||
|
"crunchy",
|
||||||
|
"digest 0.9.0",
|
||||||
|
"subtle 2.2.2",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "libsecp256k1-gen-ecmult"
|
||||||
|
version = "0.2.0"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "32239626ffbb6a095b83b37a02ceb3672b2443a87a000a884fc3c4d16925c9c0"
|
||||||
|
dependencies = [
|
||||||
|
"libsecp256k1-core",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "libsecp256k1-gen-genmult"
|
||||||
|
version = "0.2.0"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "76acb433e21d10f5f9892b1962c2856c58c7f39a9e4bd68ac82b9436a0ffd5b9"
|
||||||
|
dependencies = [
|
||||||
|
"libsecp256k1-core",
|
||||||
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "linked-hash-map"
|
name = "linked-hash-map"
|
||||||
version = "0.5.3"
|
version = "0.5.3"
|
||||||
|
|
|
@ -609,16 +609,6 @@ version = "0.2.2"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "7a81dae078cea95a014a339291cec439d2f232ebe854a9d672b796c6afafa9b7"
|
checksum = "7a81dae078cea95a014a339291cec439d2f232ebe854a9d672b796c6afafa9b7"
|
||||||
|
|
||||||
[[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.3",
|
|
||||||
"subtle 1.0.0",
|
|
||||||
]
|
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "crypto-mac"
|
name = "crypto-mac"
|
||||||
version = "0.8.0"
|
version = "0.8.0"
|
||||||
|
@ -626,7 +616,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "b584a330336237c1eecd3e94266efb216c56ed91225d634cb2991c5f3fd1aeab"
|
checksum = "b584a330336237c1eecd3e94266efb216c56ed91225d634cb2991c5f3fd1aeab"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"generic-array 0.14.3",
|
"generic-array 0.14.3",
|
||||||
"subtle 2.2.2",
|
"subtle",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
|
@ -636,7 +626,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "58bcd97a54c7ca5ce2f6eb16f6bede5b0ab5f0055fedc17d2f0b4466e21671ca"
|
checksum = "58bcd97a54c7ca5ce2f6eb16f6bede5b0ab5f0055fedc17d2f0b4466e21671ca"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"generic-array 0.14.3",
|
"generic-array 0.14.3",
|
||||||
"subtle 2.2.2",
|
"subtle",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
|
@ -646,7 +636,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "25fab6889090c8133f3deb8f73ba3c65a7f456f66436fc012a1b1e272b1e103e"
|
checksum = "25fab6889090c8133f3deb8f73ba3c65a7f456f66436fc012a1b1e272b1e103e"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"generic-array 0.14.3",
|
"generic-array 0.14.3",
|
||||||
"subtle 2.2.2",
|
"subtle",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
|
@ -658,7 +648,7 @@ dependencies = [
|
||||||
"byteorder 1.3.4",
|
"byteorder 1.3.4",
|
||||||
"digest 0.8.1",
|
"digest 0.8.1",
|
||||||
"rand_core 0.5.1",
|
"rand_core 0.5.1",
|
||||||
"subtle 2.2.2",
|
"subtle",
|
||||||
"zeroize",
|
"zeroize",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
@ -671,7 +661,7 @@ dependencies = [
|
||||||
"byteorder 1.3.4",
|
"byteorder 1.3.4",
|
||||||
"digest 0.9.0",
|
"digest 0.9.0",
|
||||||
"rand_core 0.5.1",
|
"rand_core 0.5.1",
|
||||||
"subtle 2.2.2",
|
"subtle",
|
||||||
"zeroize",
|
"zeroize",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
@ -792,7 +782,7 @@ dependencies = [
|
||||||
"rand 0.7.3",
|
"rand 0.7.3",
|
||||||
"serde",
|
"serde",
|
||||||
"serde_bytes",
|
"serde_bytes",
|
||||||
"sha2 0.9.5",
|
"sha2",
|
||||||
"zeroize",
|
"zeroize",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
@ -806,7 +796,7 @@ dependencies = [
|
||||||
"ed25519-dalek",
|
"ed25519-dalek",
|
||||||
"failure",
|
"failure",
|
||||||
"hmac 0.9.0",
|
"hmac 0.9.0",
|
||||||
"sha2 0.9.5",
|
"sha2",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
|
@ -1221,16 +1211,6 @@ dependencies = [
|
||||||
"pkg-config",
|
"pkg-config",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[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]]
|
[[package]]
|
||||||
name = "hmac"
|
name = "hmac"
|
||||||
version = "0.8.1"
|
version = "0.8.1"
|
||||||
|
@ -1263,13 +1243,13 @@ dependencies = [
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "hmac-drbg"
|
name = "hmac-drbg"
|
||||||
version = "0.2.0"
|
version = "0.3.0"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "c6e570451493f10f6581b48cdd530413b63ea9e780f544bfd3bdcaa0d89d1a7b"
|
checksum = "17ea0a1394df5b6574da6e0c1ade9e78868c9fb0a4e5ef4428e32da4676b85b1"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"digest 0.8.1",
|
"digest 0.9.0",
|
||||||
"generic-array 0.12.3",
|
"generic-array 0.14.3",
|
||||||
"hmac 0.7.1",
|
"hmac 0.8.1",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
|
@ -1514,20 +1494,52 @@ dependencies = [
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "libsecp256k1"
|
name = "libsecp256k1"
|
||||||
version = "0.3.5"
|
version = "0.5.0"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "1fc1e2c808481a63dc6da2074752fdd4336a3c8fcc68b83db6f1fd5224ae7962"
|
checksum = "bd1137239ab33b41aa9637a88a28249e5e70c40a42ccc92db7f12cc356c1fcd7"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"arrayref",
|
"arrayref",
|
||||||
"crunchy",
|
"base64 0.12.3",
|
||||||
"digest 0.8.1",
|
"digest 0.9.0",
|
||||||
"hmac-drbg",
|
"hmac-drbg",
|
||||||
|
"libsecp256k1-core",
|
||||||
|
"libsecp256k1-gen-ecmult",
|
||||||
|
"libsecp256k1-gen-genmult",
|
||||||
"rand 0.7.3",
|
"rand 0.7.3",
|
||||||
"sha2 0.8.2",
|
"serde",
|
||||||
"subtle 2.2.2",
|
"sha2",
|
||||||
"typenum",
|
"typenum",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "libsecp256k1-core"
|
||||||
|
version = "0.2.0"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "daaa407ce05dc49849836840fb2542edcadafc4f55e314840cbb5b49359a6919"
|
||||||
|
dependencies = [
|
||||||
|
"crunchy",
|
||||||
|
"digest 0.9.0",
|
||||||
|
"subtle",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "libsecp256k1-gen-ecmult"
|
||||||
|
version = "0.2.0"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "32239626ffbb6a095b83b37a02ceb3672b2443a87a000a884fc3c4d16925c9c0"
|
||||||
|
dependencies = [
|
||||||
|
"libsecp256k1-core",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "libsecp256k1-gen-genmult"
|
||||||
|
version = "0.2.0"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "76acb433e21d10f5f9892b1962c2856c58c7f39a9e4bd68ac82b9436a0ffd5b9"
|
||||||
|
dependencies = [
|
||||||
|
"libsecp256k1-core",
|
||||||
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "linked-hash-map"
|
name = "linked-hash-map"
|
||||||
version = "0.5.4"
|
version = "0.5.4"
|
||||||
|
@ -2597,18 +2609,6 @@ dependencies = [
|
||||||
"opaque-debug 0.2.3",
|
"opaque-debug 0.2.3",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[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]]
|
[[package]]
|
||||||
name = "sha2"
|
name = "sha2"
|
||||||
version = "0.9.5"
|
version = "0.9.5"
|
||||||
|
@ -3217,7 +3217,7 @@ dependencies = [
|
||||||
"rustc_version",
|
"rustc_version",
|
||||||
"serde",
|
"serde",
|
||||||
"serde_derive",
|
"serde_derive",
|
||||||
"sha2 0.9.5",
|
"sha2",
|
||||||
"solana-frozen-abi-macro 1.6.4",
|
"solana-frozen-abi-macro 1.6.4",
|
||||||
"solana-logger 1.6.4",
|
"solana-logger 1.6.4",
|
||||||
"thiserror",
|
"thiserror",
|
||||||
|
@ -3235,7 +3235,7 @@ dependencies = [
|
||||||
"rustc_version",
|
"rustc_version",
|
||||||
"serde",
|
"serde",
|
||||||
"serde_derive",
|
"serde_derive",
|
||||||
"sha2 0.9.5",
|
"sha2",
|
||||||
"solana-frozen-abi-macro 1.8.0",
|
"solana-frozen-abi-macro 1.8.0",
|
||||||
"solana-logger 1.8.0",
|
"solana-logger 1.8.0",
|
||||||
"thiserror",
|
"thiserror",
|
||||||
|
@ -3348,7 +3348,7 @@ dependencies = [
|
||||||
"serde",
|
"serde",
|
||||||
"serde_bytes",
|
"serde_bytes",
|
||||||
"serde_derive",
|
"serde_derive",
|
||||||
"sha2 0.9.5",
|
"sha2",
|
||||||
"solana-frozen-abi 1.6.4",
|
"solana-frozen-abi 1.6.4",
|
||||||
"solana-frozen-abi-macro 1.6.4",
|
"solana-frozen-abi-macro 1.6.4",
|
||||||
"solana-logger 1.6.4",
|
"solana-logger 1.6.4",
|
||||||
|
@ -3379,7 +3379,7 @@ dependencies = [
|
||||||
"serde",
|
"serde",
|
||||||
"serde_bytes",
|
"serde_bytes",
|
||||||
"serde_derive",
|
"serde_derive",
|
||||||
"sha2 0.9.5",
|
"sha2",
|
||||||
"sha3",
|
"sha3",
|
||||||
"solana-frozen-abi 1.8.0",
|
"solana-frozen-abi 1.8.0",
|
||||||
"solana-frozen-abi-macro 1.8.0",
|
"solana-frozen-abi-macro 1.8.0",
|
||||||
|
@ -3523,7 +3523,7 @@ dependencies = [
|
||||||
"serde_bytes",
|
"serde_bytes",
|
||||||
"serde_derive",
|
"serde_derive",
|
||||||
"serde_json",
|
"serde_json",
|
||||||
"sha2 0.9.5",
|
"sha2",
|
||||||
"sha3",
|
"sha3",
|
||||||
"solana-crate-features",
|
"solana-crate-features",
|
||||||
"solana-frozen-abi 1.8.0",
|
"solana-frozen-abi 1.8.0",
|
||||||
|
@ -3724,12 +3724,6 @@ version = "0.8.0"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "8ea5119cdb4c55b55d432abb513a0429384878c15dde60cc77b1c99de1a95a6a"
|
checksum = "8ea5119cdb4c55b55d432abb513a0429384878c15dde60cc77b1c99de1a95a6a"
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "subtle"
|
|
||||||
version = "1.0.0"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
checksum = "2d67a5a62ba6e01cb2192ff309324cb4875d0c451d55fe2319433abe7a05a8ee"
|
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "subtle"
|
name = "subtle"
|
||||||
version = "2.2.2"
|
version = "2.2.2"
|
||||||
|
@ -3912,7 +3906,7 @@ dependencies = [
|
||||||
"pbkdf2 0.4.0",
|
"pbkdf2 0.4.0",
|
||||||
"rand 0.7.3",
|
"rand 0.7.3",
|
||||||
"rustc-hash",
|
"rustc-hash",
|
||||||
"sha2 0.9.5",
|
"sha2",
|
||||||
"thiserror",
|
"thiserror",
|
||||||
"unicode-normalization",
|
"unicode-normalization",
|
||||||
"zeroize",
|
"zeroize",
|
||||||
|
|
|
@ -11,7 +11,7 @@ edition = "2018"
|
||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
solana-sdk = { path = "../../sdk", version = "=1.8.0" }
|
solana-sdk = { path = "../../sdk", version = "=1.8.0" }
|
||||||
libsecp256k1 = "0.3.5"
|
libsecp256k1 = "0.5.0"
|
||||||
sha3 = "0.9.1"
|
sha3 = "0.9.1"
|
||||||
digest = "0.9.0"
|
digest = "0.9.0"
|
||||||
bincode = "1.3.1"
|
bincode = "1.3.1"
|
||||||
|
|
|
@ -32,7 +32,7 @@ pub mod test {
|
||||||
SIGNATURE_OFFSETS_SERIALIZED_SIZE
|
SIGNATURE_OFFSETS_SERIALIZED_SIZE
|
||||||
);
|
);
|
||||||
|
|
||||||
let secp_privkey = secp256k1::SecretKey::random(&mut thread_rng());
|
let secp_privkey = libsecp256k1::SecretKey::random(&mut thread_rng());
|
||||||
let message_arr = b"hello";
|
let message_arr = b"hello";
|
||||||
let mut secp_instruction = new_secp256k1_instruction(&secp_privkey, message_arr);
|
let mut secp_instruction = new_secp256k1_instruction(&secp_privkey, message_arr);
|
||||||
let mint_keypair = Keypair::new();
|
let mint_keypair = Keypair::new();
|
||||||
|
|
|
@ -53,7 +53,7 @@ hex = "0.4.2"
|
||||||
hmac = "0.11.0"
|
hmac = "0.11.0"
|
||||||
itertools = "0.9.0"
|
itertools = "0.9.0"
|
||||||
lazy_static = "1.4.0"
|
lazy_static = "1.4.0"
|
||||||
libsecp256k1 = { version = "0.3.5", optional = true }
|
libsecp256k1 = { version = "0.5.0", optional = true }
|
||||||
log = "0.4.11"
|
log = "0.4.11"
|
||||||
memmap2 = { version = "0.2.3", optional = true }
|
memmap2 = { version = "0.2.3", optional = true }
|
||||||
num-derive = "0.3"
|
num-derive = "0.3"
|
||||||
|
|
|
@ -29,18 +29,18 @@ pub struct SecpSignatureOffsets {
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn new_secp256k1_instruction(
|
pub fn new_secp256k1_instruction(
|
||||||
priv_key: &secp256k1::SecretKey,
|
priv_key: &libsecp256k1::SecretKey,
|
||||||
message_arr: &[u8],
|
message_arr: &[u8],
|
||||||
) -> Instruction {
|
) -> Instruction {
|
||||||
let secp_pubkey = secp256k1::PublicKey::from_secret_key(priv_key);
|
let secp_pubkey = libsecp256k1::PublicKey::from_secret_key(priv_key);
|
||||||
let eth_pubkey = construct_eth_pubkey(&secp_pubkey);
|
let eth_pubkey = construct_eth_pubkey(&secp_pubkey);
|
||||||
let mut hasher = sha3::Keccak256::new();
|
let mut hasher = sha3::Keccak256::new();
|
||||||
hasher.update(&message_arr);
|
hasher.update(&message_arr);
|
||||||
let message_hash = hasher.finalize();
|
let message_hash = hasher.finalize();
|
||||||
let mut message_hash_arr = [0u8; 32];
|
let mut message_hash_arr = [0u8; 32];
|
||||||
message_hash_arr.copy_from_slice(&message_hash.as_slice());
|
message_hash_arr.copy_from_slice(&message_hash.as_slice());
|
||||||
let message = secp256k1::Message::parse(&message_hash_arr);
|
let message = libsecp256k1::Message::parse(&message_hash_arr);
|
||||||
let (signature, recovery_id) = secp256k1::sign(&message, priv_key);
|
let (signature, recovery_id) = libsecp256k1::sign(&message, priv_key);
|
||||||
let signature_arr = signature.serialize();
|
let signature_arr = signature.serialize();
|
||||||
assert_eq!(signature_arr.len(), SIGNATURE_SERIALIZED_SIZE);
|
assert_eq!(signature_arr.len(), SIGNATURE_SERIALIZED_SIZE);
|
||||||
|
|
||||||
|
@ -90,7 +90,9 @@ pub fn new_secp256k1_instruction(
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn construct_eth_pubkey(pubkey: &secp256k1::PublicKey) -> [u8; HASHED_PUBKEY_SERIALIZED_SIZE] {
|
pub fn construct_eth_pubkey(
|
||||||
|
pubkey: &libsecp256k1::PublicKey,
|
||||||
|
) -> [u8; HASHED_PUBKEY_SERIALIZED_SIZE] {
|
||||||
let mut addr = [0u8; HASHED_PUBKEY_SERIALIZED_SIZE];
|
let mut addr = [0u8; HASHED_PUBKEY_SERIALIZED_SIZE];
|
||||||
addr.copy_from_slice(&sha3::Keccak256::digest(&pubkey.serialize()[1..])[12..]);
|
addr.copy_from_slice(&sha3::Keccak256::digest(&pubkey.serialize()[1..])[12..]);
|
||||||
assert_eq!(addr.len(), HASHED_PUBKEY_SERIALIZED_SIZE);
|
assert_eq!(addr.len(), HASHED_PUBKEY_SERIALIZED_SIZE);
|
||||||
|
@ -131,11 +133,12 @@ pub fn verify_eth_addresses(
|
||||||
if sig_end >= signature_instruction.len() {
|
if sig_end >= signature_instruction.len() {
|
||||||
return Err(Secp256k1Error::InvalidSignature);
|
return Err(Secp256k1Error::InvalidSignature);
|
||||||
}
|
}
|
||||||
let signature =
|
let signature = libsecp256k1::Signature::parse_standard_slice(
|
||||||
secp256k1::Signature::parse_slice(&signature_instruction[sig_start..sig_end])
|
&signature_instruction[sig_start..sig_end],
|
||||||
|
)
|
||||||
.map_err(|_| Secp256k1Error::InvalidSignature)?;
|
.map_err(|_| Secp256k1Error::InvalidSignature)?;
|
||||||
|
|
||||||
let recovery_id = secp256k1::RecoveryId::parse(signature_instruction[sig_end])
|
let recovery_id = libsecp256k1::RecoveryId::parse(signature_instruction[sig_end])
|
||||||
.map_err(|_| Secp256k1Error::InvalidRecoveryId)?;
|
.map_err(|_| Secp256k1Error::InvalidRecoveryId)?;
|
||||||
|
|
||||||
// Parse out pubkey
|
// Parse out pubkey
|
||||||
|
@ -158,8 +161,8 @@ pub fn verify_eth_addresses(
|
||||||
hasher.update(message_slice);
|
hasher.update(message_slice);
|
||||||
let message_hash = hasher.finalize();
|
let message_hash = hasher.finalize();
|
||||||
|
|
||||||
let pubkey = secp256k1::recover(
|
let pubkey = libsecp256k1::recover(
|
||||||
&secp256k1::Message::parse_slice(&message_hash).unwrap(),
|
&libsecp256k1::Message::parse_slice(&message_hash).unwrap(),
|
||||||
&signature,
|
&signature,
|
||||||
&recovery_id,
|
&recovery_id,
|
||||||
)
|
)
|
||||||
|
|
Loading…
Reference in New Issue