From 8bb93d25ab5c9c38b6c3fb7235e6e0462df5dd02 Mon Sep 17 00:00:00 2001 From: Itzik Grossman Date: Sat, 7 Jan 2023 02:16:54 +0200 Subject: [PATCH] Fixed paths to repos instead of local --- .../test-compute-contract/Cargo.lock | 147 +++++++----------- .../test-compute-contract/Cargo.toml | 4 +- .../enclaves/shared/block-verifier/Cargo.toml | 21 +++ .../enclaves/shared/block-verifier/src/lib.rs | 42 +++++ go.mod | 10 +- go.sum | 1 + 6 files changed, 126 insertions(+), 99 deletions(-) create mode 100644 cosmwasm/enclaves/shared/block-verifier/Cargo.toml create mode 100644 cosmwasm/enclaves/shared/block-verifier/src/lib.rs diff --git a/cosmwasm/contracts/v1/compute-tests/test-compute-contract/Cargo.lock b/cosmwasm/contracts/v1/compute-tests/test-compute-contract/Cargo.lock index f887783bc..a99d6fcc1 100644 --- a/cosmwasm/contracts/v1/compute-tests/test-compute-contract/Cargo.lock +++ b/cosmwasm/contracts/v1/compute-tests/test-compute-contract/Cargo.lock @@ -29,15 +29,6 @@ dependencies = [ "generic-array", ] -[[package]] -name = "block-buffer" -version = "0.10.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "69cce20737498f97b993470a6e536b8523f0af7892a4f928cceb1ac5e52ebe7e" -dependencies = [ - "generic-array", -] - [[package]] name = "byteorder" version = "1.4.3" @@ -58,13 +49,15 @@ checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" [[package]] name = "const-oid" -version = "0.9.1" +version = "0.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cec318a675afcb6a1ea1d4340e2d377e56e47c266f28043ceccbf4412ddfdd3b" +checksum = "e4c78c047431fee22c1a7bb92e00ad095a02a983affe4d8a72e2a2c62c1b94f3" [[package]] name = "cosmwasm-derive" -version = "1.1.0" +version = "1.1.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6fca30d51f7e5fbfa6440d8b10d7df0231bdf77e97fd3fe5d0cb79cc4822e50c" dependencies = [ "syn", ] @@ -86,9 +79,9 @@ checksum = "7a81dae078cea95a014a339291cec439d2f232ebe854a9d672b796c6afafa9b7" [[package]] name = "crypto-bigint" -version = "0.4.9" +version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ef2b4b23cddf68b89b8f8069890e8c270d54e2d5fe1b143820234805e4cb17ef" +checksum = "03c6a1d5fa1de37e071642dfa44ec552ca5b299adb128fab16138e24b548fd21" dependencies = [ "generic-array", "rand_core 0.6.3", @@ -97,13 +90,13 @@ dependencies = [ ] [[package]] -name = "crypto-common" -version = "0.1.6" +name = "crypto-mac" +version = "0.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3" +checksum = "b1d1a86f49236c215f271d40892d5fc950490551400b02ef360692c29815c714" dependencies = [ "generic-array", - "typenum", + "subtle", ] [[package]] @@ -113,7 +106,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0b9fdf9972b2bd6af2d913799d9ebc165ea4d2e65878e329d9c6b372c4491b61" dependencies = [ "byteorder", - "digest 0.9.0", + "digest", "rand_core 0.5.1", "subtle", "zeroize", @@ -121,23 +114,11 @@ dependencies = [ [[package]] name = "der" -version = "0.6.1" +version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1a467a65c5e759bce6e65eaf91cc29f466cdc57cb65777bd646872a8a1fd4de" +checksum = "6919815d73839e7ad218de758883aae3a257ba6759ce7a9992501efbb53d705c" dependencies = [ "const-oid", - "zeroize", -] - -[[package]] -name = "derivative" -version = "2.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fcc3dd5e9e9c0b295d6e1e4d811fb6f157d5ffd784b8d202fc62eac8035a770b" -dependencies = [ - "proc-macro2", - "quote", - "syn", ] [[package]] @@ -149,17 +130,6 @@ dependencies = [ "generic-array", ] -[[package]] -name = "digest" -version = "0.10.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8168378f4e5023e7218c89c891c0fd8ecdb5e5e4f18cb78f38cf245dd021e76f" -dependencies = [ - "block-buffer 0.10.3", - "crypto-common", - "subtle", -] - [[package]] name = "dyn-clone" version = "1.0.8" @@ -168,9 +138,9 @@ checksum = "9d07a982d1fb29db01e5a59b1918e03da4df7297eaeee7686ac45542fd4e59c8" [[package]] name = "ecdsa" -version = "0.14.8" +version = "0.13.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "413301934810f597c1d19ca71c8710e99a3f1ba28a0d2ebc01551a2daeea3c5c" +checksum = "d0d69ae62e0ce582d56380743515fefaf1a8c70cec685d9677636d7e30ae9dc9" dependencies = [ "der", "elliptic-curve", @@ -188,25 +158,23 @@ dependencies = [ "hex", "rand_core 0.6.3", "serde", - "sha2 0.9.9", + "sha2", "thiserror", "zeroize", ] [[package]] name = "elliptic-curve" -version = "0.12.3" +version = "0.11.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e7bb888ab5300a19b8e5bceef25ac745ad065f3c9f7efc6de1b91958110891d3" +checksum = "25b477563c2bfed38a3b7a60964c49e058b2510ad3f12ba3483fd8f62c2306d6" dependencies = [ "base16ct", "crypto-bigint", "der", - "digest 0.10.6", "ff", "generic-array", "group", - "pkcs8", "rand_core 0.6.3", "sec1", "subtle", @@ -215,9 +183,9 @@ dependencies = [ [[package]] name = "ff" -version = "0.12.1" +version = "0.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d013fc25338cc558c5c2cfbad646908fb23591e2404481826742b651c9af7160" +checksum = "131655483be284720a17d74ff97592b8e76576dc25563148601df2d7c9080924" dependencies = [ "rand_core 0.6.3", "subtle", @@ -263,9 +231,9 @@ dependencies = [ [[package]] name = "group" -version = "0.12.1" +version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5dfbfb3a6cfbd390d5c9564ab283a0349b9b9fcd46a706c1eb10e0db70bfbac7" +checksum = "bc5ac374b108929de78460075f3dc439fa66df9d8fc77e8f12caa5165fcf0c89" dependencies = [ "ff", "rand_core 0.6.3", @@ -280,11 +248,12 @@ checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" [[package]] name = "hmac" -version = "0.12.1" +version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c49c37c09c17a53d937dfbb742eb3a961d65a994e6bcdcf37e7399d0cc8ab5e" +checksum = "2a2a2320eb7ec0ebe8da8f744d7812d9fc4cb4d09344ac01898dbcb6a20ae69b" dependencies = [ - "digest 0.10.6", + "crypto-mac", + "digest", ] [[package]] @@ -295,14 +264,15 @@ checksum = "112c678d4050afce233f4f2852bb2eb519230b3cf12f33585275537d7e41578d" [[package]] name = "k256" -version = "0.11.6" +version = "0.10.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "72c1e0b51e7ec0a97369623508396067a486bd0cbed95a2659a4b863d28cfc8b" +checksum = "19c3a5e0a0b8450278feda242592512e09f61c72e018b8cd5c859482802daf2d" dependencies = [ "cfg-if", "ecdsa", "elliptic-curve", - "sha2 0.10.6", + "sec1", + "sha2", ] [[package]] @@ -319,12 +289,13 @@ checksum = "624a8340c38c1b80fd549087862da4ba43e08858af025b236e509b6649fc13d5" [[package]] name = "pkcs8" -version = "0.9.0" +version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9eca2c590a5f85da82668fa685c09ce2888b9430e83299debf1f34b65fd4a4ba" +checksum = "7cabda3fb821068a9a4fab19a683eac3af12edf0f34b94a8be53c4972b8149d0" dependencies = [ "der", "spki", + "zeroize", ] [[package]] @@ -365,9 +336,9 @@ dependencies = [ [[package]] name = "rfc6979" -version = "0.3.1" +version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7743f17af12fa0b03b803ba12cd6a8d9483a587e89c69445e3909655c0b9fabb" +checksum = "96ef608575f6392792f9ecf7890c00086591d29a83910939d430753f7c050525" dependencies = [ "crypto-bigint", "hmac", @@ -406,11 +377,10 @@ dependencies = [ [[package]] name = "sec1" -version = "0.3.0" +version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3be24c1842290c45df0a7bf069e0c268a747ad05a192f2fd7dcfdbc1cba40928" +checksum = "08da66b8b0965a5555b6bd6639e68ccba85e1e2506f5fbb089e93f8a04e1a2d1" dependencies = [ - "base16ct", "der", "generic-array", "pkcs8", @@ -438,9 +408,11 @@ dependencies = [ [[package]] name = "secret-cosmwasm-crypto" -version = "1.1.0" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "19980a28b539adc47dc8b6af4bf6ec264d0441daf3852140cce5b27a81e95a0d" dependencies = [ - "digest 0.10.6", + "digest", "ed25519-zebra", "k256", "rand_core 0.6.3", @@ -449,13 +421,13 @@ dependencies = [ [[package]] name = "secret-cosmwasm-std" -version = "1.1.0" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a0cf71b9340ef6a67d0e2078a1ca5cda31816aa5028f90ee79864ac231a1fcb6" dependencies = [ "base64", "cosmwasm-derive", - "derivative", "forward_ref", - "hex", "schemars", "secret-cosmwasm-crypto", "serde", @@ -466,7 +438,9 @@ dependencies = [ [[package]] name = "secret-cosmwasm-storage" -version = "1.1.0" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bbf5f2977eabf4217c7ad618c36c5d0dc853c606b6ea26ab07760588d4fbeb0b" dependencies = [ "secret-cosmwasm-std", "serde", @@ -538,39 +512,28 @@ version = "0.9.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4d58a1e1bf39749807d89cf2d98ac2dfa0ff1cb3faa38fbb64dd88ac8013d800" dependencies = [ - "block-buffer 0.9.0", + "block-buffer", "cfg-if", "cpufeatures", - "digest 0.9.0", + "digest", "opaque-debug", ] -[[package]] -name = "sha2" -version = "0.10.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "82e6b795fe2e3b1e845bafcb27aa35405c4d47cdfc92af5fc8d3002f76cebdc0" -dependencies = [ - "cfg-if", - "cpufeatures", - "digest 0.10.6", -] - [[package]] name = "signature" -version = "1.6.4" +version = "1.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "74233d3b3b2f6d4b006dc19dee745e73e2a6bfb6f93607cd3b02bd5b00797d7c" +checksum = "02658e48d89f2bec991f9a78e69cfa4c316f8d6a6c4ec12fae1aeb263d486788" dependencies = [ - "digest 0.10.6", + "digest", "rand_core 0.6.3", ] [[package]] name = "spki" -version = "0.6.0" +version = "0.5.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "67cf02bbac7a337dc36e4f5a693db6c21e7863f45070f7064577eb4367a3212b" +checksum = "44d01ac02a6ccf3e07db148d2be087da624fea0221a16152ed01f0496a6b0a27" dependencies = [ "base64ct", "der", diff --git a/cosmwasm/contracts/v1/compute-tests/test-compute-contract/Cargo.toml b/cosmwasm/contracts/v1/compute-tests/test-compute-contract/Cargo.toml index 4c36fa312..6c043ee89 100644 --- a/cosmwasm/contracts/v1/compute-tests/test-compute-contract/Cargo.toml +++ b/cosmwasm/contracts/v1/compute-tests/test-compute-contract/Cargo.toml @@ -31,8 +31,8 @@ backtraces = ["cosmwasm-std/backtraces"] with_floats = [] [dependencies] -cosmwasm-std = { path = "../../../../../../../CLionProjects/cosmwasm/packages/std", package = "secret-cosmwasm-std" } -cosmwasm-storage = { path = "../../../../../../../CLionProjects/cosmwasm/packages/storage", package = "secret-cosmwasm-storage" } +cosmwasm-std = { package = "secret-cosmwasm-std", version = "1.0.0" } +cosmwasm-storage = { package = "secret-cosmwasm-storage", version = "1.0.0" } schemars = "0.8.1" serde = { version = "1.0.114", default-features = false, features = [ "derive", diff --git a/cosmwasm/enclaves/shared/block-verifier/Cargo.toml b/cosmwasm/enclaves/shared/block-verifier/Cargo.toml new file mode 100644 index 000000000..e0ea5e464 --- /dev/null +++ b/cosmwasm/enclaves/shared/block-verifier/Cargo.toml @@ -0,0 +1,21 @@ +[package] +name = "block-verifier" +version = "0.1.0" +edition = "2018" + +# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html +[target.'cfg(not(target_env = "sgx"))'.dependencies] +sgx_tstd = { rev = "d2d339cbb005f676bb700059bd51dc689c025f6b", git = "https://github.com/apache/teaclave-sgx-sdk.git", features = [ +] } +sgx_trts = {rev = "d2d339cbb005f676bb700059bd51dc689c025f6b", git = "https://github.com/apache/teaclave-sgx-sdk.git" } +sgx_types = { rev = "d2d339cbb005f676bb700059bd51dc689c025f6b", git = "https://github.com/apache/teaclave-sgx-sdk.git" } + +[dependencies] +tendermint = { git = "https://github.com/scrtlabs/tendermint-rs", branch = "fix-val-set-parsing", default-features = false } +tendermint-proto = { git = "https://github.com/scrtlabs/tendermint-rs", branch = "fix-val-set-parsing", default-features = false } +tendermint-light-client-verifier = { git = "https://github.com/scrtlabs/tendermint-rs", branch = "fix-val-set-parsing", default-features = false } +lazy_static = "1.4.0" +log = "0.4.17" + +enclave_crypto = {path ="../crypto"} +enclave_utils = {path ="../utils"} diff --git a/cosmwasm/enclaves/shared/block-verifier/src/lib.rs b/cosmwasm/enclaves/shared/block-verifier/src/lib.rs new file mode 100644 index 000000000..bc4f318fd --- /dev/null +++ b/cosmwasm/enclaves/shared/block-verifier/src/lib.rs @@ -0,0 +1,42 @@ +#[cfg(not(target_env = "sgx"))] +extern crate sgx_tstd as std; + +extern crate sgx_types; + +pub mod r#const; +pub mod ecalls; + +use lazy_static::lazy_static; + +use tendermint_light_client_verifier::types::UntrustedBlockState; +use tendermint_light_client_verifier::{ProdVerifier, Verdict}; + +// +lazy_static! { + static ref verifier: ProdVerifier = ProdVerifier::default(); +} + +pub fn verify_block(untrusted_block: &UntrustedBlockState) -> bool { + match verifier.verify_commit(untrusted_block) { + Verdict::Success => true, + Verdict::NotEnoughTrust(_) => false, + Verdict::Invalid(_) => false, + } +} + +// pub fn create_untrusted_block<'a>( +// header: Header, +// commit: Commit, +// validator_set: &'a ValidatorSet, +// next_validator_set: Option<&'a ValidatorSet>, +// ) -> UntrustedBlockState<'a> { +// } + +#[cfg(test)] +mod tests { + #[test] + fn it_works() { + let result = 2 + 2; + assert_eq!(result, 4); + } +} diff --git a/go.mod b/go.mod index 1efc64975..bba9b12d5 100644 --- a/go.mod +++ b/go.mod @@ -5,12 +5,12 @@ go 1.19 replace ( // dragonberry github.com/confio/ics23/go => github.com/cosmos/cosmos-sdk/ics23/go v0.8.0 - github.com/cosmos/cosmos-sdk => ../cosmos-sdk - github.com/gogo/protobuf => github.com/regen-network/protobuf v1.3.3-alpha.regen.1 + github.com/cosmos/cosmos-sdk => github.com/scrtlabs/cosmos-sdk v0.45.11-0.20230107000730-6c3cf2623cd1 // Fix OSX Ledger Connection Issues - Premerged https://github.com/cosmos/ledger-cosmos-go/pull/36/files github.com/cosmos/ledger-cosmos-go => github.com/chillyvee/ledger-cosmos-go v0.12.2 - github.com/tendermint/tendermint => ../tendermint - github.com/scrtlabs/tm-secret-enclave => ../tm-secret-enclave + github.com/gogo/protobuf => github.com/regen-network/protobuf v1.3.3-alpha.regen.1 + github.com/scrtlabs/tm-secret-enclave => github.com/scrtlabs/tm-secret-enclave v0.0.0-20221225155739-1edd95f00cd9 + github.com/tendermint/tendermint => github.com/scrtlabs/tendermint v0.34.23-0.20230107000510-11cfca7deda0 // enforce grpc version google.golang.org/grpc => google.golang.org/grpc v1.33.2 ) @@ -124,7 +124,7 @@ require ( github.com/rcrowley/go-metrics v0.0.0-20201227073835-cf1acfcdf475 // indirect github.com/rs/cors v1.8.2 // indirect github.com/sasha-s/go-deadlock v0.3.1 // indirect - github.com/scrtlabs/tm-secret-enclave v0.0.0-20221225155739-1edd95f00cd9 // indirect + github.com/scrtlabs/tm-secret-enclave v0.0.0-20230107000306-69cfb1fb0e4c // indirect github.com/spf13/afero v1.9.2 // indirect github.com/spf13/jwalterweatherman v1.1.0 // indirect github.com/subosito/gotenv v1.4.1 // indirect diff --git a/go.sum b/go.sum index 75e7a09a8..b051e457f 100644 --- a/go.sum +++ b/go.sum @@ -691,6 +691,7 @@ github.com/ryanuber/columnize v0.0.0-20160712163229-9b3edd62028f/go.mod h1:sm1tb github.com/samuel/go-zookeeper v0.0.0-20190923202752-2cc03de413da/go.mod h1:gi+0XIa01GRL2eRQVjQkKGqKF3SF9vZR/HnPullcV2E= github.com/sasha-s/go-deadlock v0.3.1 h1:sqv7fDNShgjcaxkO0JNcOAlr8B9+cV5Ey/OB71efZx0= github.com/sasha-s/go-deadlock v0.3.1/go.mod h1:F73l+cr82YSh10GxyRI6qZiCgK64VaZjwesgfQ1/iLM= +github.com/scrtlabs/tendermint v0.34.23-0.20230107000510-11cfca7deda0/go.mod h1:sQgfE3LR+zOmUra9EQQr4OK6AaNWrrsSqSL+22SmlDs= github.com/scrtlabs/tm-secret-enclave v0.0.0-20221225155739-1edd95f00cd9 h1:SYaPwraMeBlQDdZcrXnEVu4mqh5RB3Tq0Gcw/h2hmrU= github.com/scrtlabs/tm-secret-enclave v0.0.0-20221225155739-1edd95f00cd9/go.mod h1:qdFKkARpxJArJ6QiJiJFDu2LWl88hcSPuz6oOgq+cKQ= github.com/sean-/seed v0.0.0-20170313163322-e2103e2c3529/go.mod h1:DxrIzT+xaE7yg65j358z/aeFdxmN0P9QXhEzd20vsDc=