Remove Epid RA (#196)
Co-authored-by: Peppi Littera <giuseppe@informal.systems> Co-authored-by: dusterbloom <32869278+dusterbloom@users.noreply.github.com>
This commit is contained in:
parent
d536f128a2
commit
7b256e0f89
16 changed files with 289 additions and 634 deletions
372
Cargo.lock
generated
372
Cargo.lock
generated
File diff suppressed because it is too large
Load diff
82
apps/mtcs/contracts/cw-tee-mtcs/Cargo.lock
generated
82
apps/mtcs/contracts/cw-tee-mtcs/Cargo.lock
generated
|
@ -22,9 +22,9 @@ checksum = "5c6cb57a04249c6480766f7f7cef5467412af1490f8d1e243141daddada3264f"
|
|||
|
||||
[[package]]
|
||||
name = "anyhow"
|
||||
version = "1.0.88"
|
||||
version = "1.0.86"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "4e1496f8fb1fbf272686b8d37f523dab3e4a7443300055e74cdaa449f3114356"
|
||||
checksum = "b3d1d046238990b9cf5bcde22a3fb3584ee5cf65fb2765f454ed428c7a0063da"
|
||||
|
||||
[[package]]
|
||||
name = "ark-bls12-381"
|
||||
|
@ -171,7 +171,7 @@ checksum = "965c2d33e53cb6b267e148a4cb0760bc01f4904c1cd4bb4002a085bb016d1490"
|
|||
dependencies = [
|
||||
"proc-macro2",
|
||||
"quote",
|
||||
"syn 2.0.77",
|
||||
"syn 2.0.76",
|
||||
"synstructure",
|
||||
]
|
||||
|
||||
|
@ -183,7 +183,7 @@ checksum = "7b18050c2cd6fe86c3a76584ef5e0baf286d038cda203eb6223df2cc413565f7"
|
|||
dependencies = [
|
||||
"proc-macro2",
|
||||
"quote",
|
||||
"syn 2.0.77",
|
||||
"syn 2.0.76",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
|
@ -257,9 +257,9 @@ checksum = "8318a53db07bb3f8dca91a600466bdb3f2eaadeedfdbcf02e1accbad9271ba50"
|
|||
|
||||
[[package]]
|
||||
name = "cc"
|
||||
version = "1.1.18"
|
||||
version = "1.1.15"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "b62ac837cdb5cb22e10a256099b4fc502b1dfe560cb282963a974d7abd80e476"
|
||||
checksum = "57b6a275aa2903740dc87da01c62040406b8812552e97129a63ea8850a17c6e6"
|
||||
dependencies = [
|
||||
"shlex",
|
||||
]
|
||||
|
@ -350,7 +350,7 @@ checksum = "029910b409398fdf81955d7301b906caf81f2c42b013ea074fbd89720229c424"
|
|||
dependencies = [
|
||||
"proc-macro2",
|
||||
"quote",
|
||||
"syn 2.0.77",
|
||||
"syn 2.0.76",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
|
@ -374,7 +374,7 @@ checksum = "edf5c8adac41bb7751c050d7c4c18675be19ee128714454454575e894424eeef"
|
|||
dependencies = [
|
||||
"proc-macro2",
|
||||
"quote",
|
||||
"syn 2.0.77",
|
||||
"syn 2.0.76",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
|
@ -402,9 +402,9 @@ dependencies = [
|
|||
|
||||
[[package]]
|
||||
name = "cpufeatures"
|
||||
version = "0.2.14"
|
||||
version = "0.2.13"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "608697df725056feaccfa42cffdaeeec3fccc4ffc38358ecd19b243e716a78e0"
|
||||
checksum = "51e852e6dc9a5bed1fae92dd2375037bf2b768725bf3be87811edee3249d09ad"
|
||||
dependencies = [
|
||||
"libc",
|
||||
]
|
||||
|
@ -486,7 +486,7 @@ checksum = "f46882e17999c6cc590af592290432be3bce0428cb0d5f8b6715e4dc7b383eb3"
|
|||
dependencies = [
|
||||
"proc-macro2",
|
||||
"quote",
|
||||
"syn 2.0.77",
|
||||
"syn 2.0.76",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
|
@ -620,7 +620,7 @@ dependencies = [
|
|||
"proc-macro2",
|
||||
"quote",
|
||||
"strsim",
|
||||
"syn 2.0.77",
|
||||
"syn 2.0.76",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
|
@ -631,7 +631,7 @@ checksum = "d336a2a514f6ccccaa3e09b02d41d35330c07ddf03a62165fcec10bb561c7806"
|
|||
dependencies = [
|
||||
"darling_core",
|
||||
"quote",
|
||||
"syn 2.0.77",
|
||||
"syn 2.0.76",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
|
@ -675,7 +675,7 @@ checksum = "8034092389675178f570469e6c3b0465d3d30b4505c294a6550db47f3c17ad18"
|
|||
dependencies = [
|
||||
"proc-macro2",
|
||||
"quote",
|
||||
"syn 2.0.77",
|
||||
"syn 2.0.76",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
|
@ -715,7 +715,7 @@ checksum = "cb7330aeadfbe296029522e6c40f315320aba36fc43a5b3632f3795348f3bd22"
|
|||
dependencies = [
|
||||
"proc-macro2",
|
||||
"quote",
|
||||
"syn 2.0.77",
|
||||
"syn 2.0.76",
|
||||
"unicode-xid",
|
||||
]
|
||||
|
||||
|
@ -739,7 +739,7 @@ checksum = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0"
|
|||
dependencies = [
|
||||
"proc-macro2",
|
||||
"quote",
|
||||
"syn 2.0.77",
|
||||
"syn 2.0.76",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
|
@ -1216,9 +1216,9 @@ dependencies = [
|
|||
|
||||
[[package]]
|
||||
name = "prost"
|
||||
version = "0.13.2"
|
||||
version = "0.13.1"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "3b2ecbe40f08db5c006b5764a2645f7f3f141ce756412ac9e1dd6087e6d32995"
|
||||
checksum = "e13db3d3fde688c61e2446b4d843bc27a7e8af269a69440c0308021dc92333cc"
|
||||
dependencies = [
|
||||
"bytes",
|
||||
"prost-derive",
|
||||
|
@ -1226,15 +1226,15 @@ dependencies = [
|
|||
|
||||
[[package]]
|
||||
name = "prost-derive"
|
||||
version = "0.13.2"
|
||||
version = "0.13.1"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "acf0c195eebb4af52c752bec4f52f645da98b6e92077a04110c7f349477ae5ac"
|
||||
checksum = "18bec9b0adc4eba778b33684b7ba3e7137789434769ee3ce3930463ef904cfca"
|
||||
dependencies = [
|
||||
"anyhow",
|
||||
"itertools 0.13.0",
|
||||
"proc-macro2",
|
||||
"quote",
|
||||
"syn 2.0.77",
|
||||
"syn 2.0.76",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
|
@ -1419,7 +1419,7 @@ dependencies = [
|
|||
"proc-macro2",
|
||||
"quote",
|
||||
"serde_derive_internals",
|
||||
"syn 2.0.77",
|
||||
"syn 2.0.76",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
|
@ -1444,9 +1444,9 @@ checksum = "61697e0a1c7e512e84a621326239844a24d8207b4669b41bc18b32ea5cbf988b"
|
|||
|
||||
[[package]]
|
||||
name = "serde"
|
||||
version = "1.0.210"
|
||||
version = "1.0.209"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "c8e3592472072e6e22e0a54d5904d9febf8508f65fb8552499a1abc7d1078c3a"
|
||||
checksum = "99fce0ffe7310761ca6bf9faf5115afbc19688edd00171d81b1bb1b116c63e09"
|
||||
dependencies = [
|
||||
"serde_derive",
|
||||
]
|
||||
|
@ -1462,13 +1462,13 @@ dependencies = [
|
|||
|
||||
[[package]]
|
||||
name = "serde_derive"
|
||||
version = "1.0.210"
|
||||
version = "1.0.209"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "243902eda00fad750862fc144cea25caca5e20d615af0a81bee94ca738f1df1f"
|
||||
checksum = "a5831b979fd7b5439637af1752d535ff49f4860c0f341d1baeb6faf0f4242170"
|
||||
dependencies = [
|
||||
"proc-macro2",
|
||||
"quote",
|
||||
"syn 2.0.77",
|
||||
"syn 2.0.76",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
|
@ -1479,14 +1479,14 @@ checksum = "18d26a20a969b9e3fdf2fc2d9f21eda6c40e2de84c9408bb5d3b05d499aae711"
|
|||
dependencies = [
|
||||
"proc-macro2",
|
||||
"quote",
|
||||
"syn 2.0.77",
|
||||
"syn 2.0.76",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "serde_json"
|
||||
version = "1.0.128"
|
||||
version = "1.0.127"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "6ff5456707a1de34e7e37f2a6fd3d3f808c318259cbd01ab6377795054b483d8"
|
||||
checksum = "8043c06d9f82bd7271361ed64f415fe5e12a77fdb52e573e7f06a516dea329ad"
|
||||
dependencies = [
|
||||
"itoa",
|
||||
"memchr",
|
||||
|
@ -1519,7 +1519,7 @@ dependencies = [
|
|||
"darling",
|
||||
"proc-macro2",
|
||||
"quote",
|
||||
"syn 2.0.77",
|
||||
"syn 2.0.76",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
|
@ -1596,9 +1596,9 @@ dependencies = [
|
|||
|
||||
[[package]]
|
||||
name = "syn"
|
||||
version = "2.0.77"
|
||||
version = "2.0.76"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "9f35bcdf61fd8e7be6caf75f429fdca8beb3ed76584befb503b1569faee373ed"
|
||||
checksum = "578e081a14e0cefc3279b0472138c513f37b41a08d5a3cca9b6e4e8ceb6cd525"
|
||||
dependencies = [
|
||||
"proc-macro2",
|
||||
"quote",
|
||||
|
@ -1613,7 +1613,7 @@ checksum = "c8af7666ab7b6390ab78131fb5b0fce11d6b7a6951602017c35fa82800708971"
|
|||
dependencies = [
|
||||
"proc-macro2",
|
||||
"quote",
|
||||
"syn 2.0.77",
|
||||
"syn 2.0.76",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
|
@ -1640,7 +1640,7 @@ checksum = "a4558b58466b9ad7ca0f102865eccc95938dca1a74a856f2b57b6629050da261"
|
|||
dependencies = [
|
||||
"proc-macro2",
|
||||
"quote",
|
||||
"syn 2.0.77",
|
||||
"syn 2.0.76",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
|
@ -1682,9 +1682,9 @@ checksum = "42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825"
|
|||
|
||||
[[package]]
|
||||
name = "unicode-ident"
|
||||
version = "1.0.13"
|
||||
version = "1.0.12"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "e91b56cd4cadaeb79bbf1a5645f6b4f8dc5bde8834ad5894a8db35fda9efa1fe"
|
||||
checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b"
|
||||
|
||||
[[package]]
|
||||
name = "unicode-xid"
|
||||
|
@ -1732,7 +1732,7 @@ dependencies = [
|
|||
"once_cell",
|
||||
"proc-macro2",
|
||||
"quote",
|
||||
"syn 2.0.77",
|
||||
"syn 2.0.76",
|
||||
"wasm-bindgen-shared",
|
||||
]
|
||||
|
||||
|
@ -1754,7 +1754,7 @@ checksum = "afc340c74d9005395cf9dd098506f7f44e38f2b4a21c6aaacf9a105ea5e1e836"
|
|||
dependencies = [
|
||||
"proc-macro2",
|
||||
"quote",
|
||||
"syn 2.0.77",
|
||||
"syn 2.0.76",
|
||||
"wasm-bindgen-backend",
|
||||
"wasm-bindgen-shared",
|
||||
]
|
||||
|
@ -1885,7 +1885,7 @@ checksum = "fa4f8080344d4671fb4e831a13ad1e68092748387dfc4f55e356242fae12ce3e"
|
|||
dependencies = [
|
||||
"proc-macro2",
|
||||
"quote",
|
||||
"syn 2.0.77",
|
||||
"syn 2.0.76",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
|
@ -1905,5 +1905,5 @@ checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69"
|
|||
dependencies = [
|
||||
"proc-macro2",
|
||||
"quote",
|
||||
"syn 2.0.77",
|
||||
"syn 2.0.76",
|
||||
]
|
||||
|
|
82
apps/transfers/contracts/Cargo.lock
generated
82
apps/transfers/contracts/Cargo.lock
generated
|
@ -22,9 +22,9 @@ checksum = "5c6cb57a04249c6480766f7f7cef5467412af1490f8d1e243141daddada3264f"
|
|||
|
||||
[[package]]
|
||||
name = "anyhow"
|
||||
version = "1.0.88"
|
||||
version = "1.0.87"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "4e1496f8fb1fbf272686b8d37f523dab3e4a7443300055e74cdaa449f3114356"
|
||||
checksum = "10f00e1f6e58a40e807377c75c6a7f97bf9044fab57816f2414e6f5f4499d7b8"
|
||||
|
||||
[[package]]
|
||||
name = "ark-bls12-381"
|
||||
|
@ -171,7 +171,7 @@ checksum = "965c2d33e53cb6b267e148a4cb0760bc01f4904c1cd4bb4002a085bb016d1490"
|
|||
dependencies = [
|
||||
"proc-macro2",
|
||||
"quote",
|
||||
"syn 2.0.77",
|
||||
"syn 2.0.75",
|
||||
"synstructure",
|
||||
]
|
||||
|
||||
|
@ -183,7 +183,7 @@ checksum = "7b18050c2cd6fe86c3a76584ef5e0baf286d038cda203eb6223df2cc413565f7"
|
|||
dependencies = [
|
||||
"proc-macro2",
|
||||
"quote",
|
||||
"syn 2.0.77",
|
||||
"syn 2.0.75",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
|
@ -257,9 +257,9 @@ checksum = "8318a53db07bb3f8dca91a600466bdb3f2eaadeedfdbcf02e1accbad9271ba50"
|
|||
|
||||
[[package]]
|
||||
name = "cc"
|
||||
version = "1.1.18"
|
||||
version = "1.1.21"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "b62ac837cdb5cb22e10a256099b4fc502b1dfe560cb282963a974d7abd80e476"
|
||||
checksum = "07b1695e2c7e8fc85310cde85aeaab7e3097f593c91d209d3f9df76c928100f0"
|
||||
dependencies = [
|
||||
"shlex",
|
||||
]
|
||||
|
@ -350,7 +350,7 @@ checksum = "029910b409398fdf81955d7301b906caf81f2c42b013ea074fbd89720229c424"
|
|||
dependencies = [
|
||||
"proc-macro2",
|
||||
"quote",
|
||||
"syn 2.0.77",
|
||||
"syn 2.0.75",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
|
@ -374,7 +374,7 @@ checksum = "edf5c8adac41bb7751c050d7c4c18675be19ee128714454454575e894424eeef"
|
|||
dependencies = [
|
||||
"proc-macro2",
|
||||
"quote",
|
||||
"syn 2.0.77",
|
||||
"syn 2.0.75",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
|
@ -402,9 +402,9 @@ dependencies = [
|
|||
|
||||
[[package]]
|
||||
name = "cpufeatures"
|
||||
version = "0.2.14"
|
||||
version = "0.2.13"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "608697df725056feaccfa42cffdaeeec3fccc4ffc38358ecd19b243e716a78e0"
|
||||
checksum = "51e852e6dc9a5bed1fae92dd2375037bf2b768725bf3be87811edee3249d09ad"
|
||||
dependencies = [
|
||||
"libc",
|
||||
]
|
||||
|
@ -486,7 +486,7 @@ checksum = "f46882e17999c6cc590af592290432be3bce0428cb0d5f8b6715e4dc7b383eb3"
|
|||
dependencies = [
|
||||
"proc-macro2",
|
||||
"quote",
|
||||
"syn 2.0.77",
|
||||
"syn 2.0.75",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
|
@ -554,7 +554,7 @@ dependencies = [
|
|||
"proc-macro2",
|
||||
"quote",
|
||||
"strsim",
|
||||
"syn 2.0.77",
|
||||
"syn 2.0.75",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
|
@ -565,7 +565,7 @@ checksum = "d336a2a514f6ccccaa3e09b02d41d35330c07ddf03a62165fcec10bb561c7806"
|
|||
dependencies = [
|
||||
"darling_core",
|
||||
"quote",
|
||||
"syn 2.0.77",
|
||||
"syn 2.0.75",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
|
@ -609,7 +609,7 @@ checksum = "8034092389675178f570469e6c3b0465d3d30b4505c294a6550db47f3c17ad18"
|
|||
dependencies = [
|
||||
"proc-macro2",
|
||||
"quote",
|
||||
"syn 2.0.77",
|
||||
"syn 2.0.75",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
|
@ -649,7 +649,7 @@ checksum = "cb7330aeadfbe296029522e6c40f315320aba36fc43a5b3632f3795348f3bd22"
|
|||
dependencies = [
|
||||
"proc-macro2",
|
||||
"quote",
|
||||
"syn 2.0.77",
|
||||
"syn 2.0.75",
|
||||
"unicode-xid",
|
||||
]
|
||||
|
||||
|
@ -673,7 +673,7 @@ checksum = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0"
|
|||
dependencies = [
|
||||
"proc-macro2",
|
||||
"quote",
|
||||
"syn 2.0.77",
|
||||
"syn 2.0.75",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
|
@ -1168,7 +1168,7 @@ dependencies = [
|
|||
"itertools 0.13.0",
|
||||
"proc-macro2",
|
||||
"quote",
|
||||
"syn 2.0.77",
|
||||
"syn 2.0.75",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
|
@ -1227,9 +1227,9 @@ dependencies = [
|
|||
|
||||
[[package]]
|
||||
name = "quote"
|
||||
version = "1.0.37"
|
||||
version = "1.0.36"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "b5b9d34b8991d19d98081b46eacdd8eb58c6f2b201139f7c5f643cc155a633af"
|
||||
checksum = "0fa76aaf39101c457836aec0ce2316dbdc3ab723cdda1c6bd4e6ad4208acaca7"
|
||||
dependencies = [
|
||||
"proc-macro2",
|
||||
]
|
||||
|
@ -1310,9 +1310,9 @@ dependencies = [
|
|||
|
||||
[[package]]
|
||||
name = "rustc_version"
|
||||
version = "0.4.1"
|
||||
version = "0.4.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "cfcb3a22ef46e85b45de6ee7e79d063319ebb6594faafcf1c225ea92ab6e9b92"
|
||||
checksum = "bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366"
|
||||
dependencies = [
|
||||
"semver",
|
||||
]
|
||||
|
@ -1353,7 +1353,7 @@ dependencies = [
|
|||
"proc-macro2",
|
||||
"quote",
|
||||
"serde_derive_internals",
|
||||
"syn 2.0.77",
|
||||
"syn 2.0.75",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
|
@ -1378,9 +1378,9 @@ checksum = "61697e0a1c7e512e84a621326239844a24d8207b4669b41bc18b32ea5cbf988b"
|
|||
|
||||
[[package]]
|
||||
name = "serde"
|
||||
version = "1.0.210"
|
||||
version = "1.0.208"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "c8e3592472072e6e22e0a54d5904d9febf8508f65fb8552499a1abc7d1078c3a"
|
||||
checksum = "cff085d2cb684faa248efb494c39b68e522822ac0de72ccf08109abde717cfb2"
|
||||
dependencies = [
|
||||
"serde_derive",
|
||||
]
|
||||
|
@ -1396,13 +1396,13 @@ dependencies = [
|
|||
|
||||
[[package]]
|
||||
name = "serde_derive"
|
||||
version = "1.0.210"
|
||||
version = "1.0.208"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "243902eda00fad750862fc144cea25caca5e20d615af0a81bee94ca738f1df1f"
|
||||
checksum = "24008e81ff7613ed8e5ba0cfaf24e2c2f1e5b8a0495711e44fcd4882fca62bcf"
|
||||
dependencies = [
|
||||
"proc-macro2",
|
||||
"quote",
|
||||
"syn 2.0.77",
|
||||
"syn 2.0.75",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
|
@ -1413,14 +1413,14 @@ checksum = "18d26a20a969b9e3fdf2fc2d9f21eda6c40e2de84c9408bb5d3b05d499aae711"
|
|||
dependencies = [
|
||||
"proc-macro2",
|
||||
"quote",
|
||||
"syn 2.0.77",
|
||||
"syn 2.0.75",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "serde_json"
|
||||
version = "1.0.128"
|
||||
version = "1.0.125"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "6ff5456707a1de34e7e37f2a6fd3d3f808c318259cbd01ab6377795054b483d8"
|
||||
checksum = "83c8e735a073ccf5be70aa8066aa984eaf2fa000db6c8d0100ae605b366d31ed"
|
||||
dependencies = [
|
||||
"itoa",
|
||||
"memchr",
|
||||
|
@ -1453,7 +1453,7 @@ dependencies = [
|
|||
"darling",
|
||||
"proc-macro2",
|
||||
"quote",
|
||||
"syn 2.0.77",
|
||||
"syn 2.0.75",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
|
@ -1530,9 +1530,9 @@ dependencies = [
|
|||
|
||||
[[package]]
|
||||
name = "syn"
|
||||
version = "2.0.77"
|
||||
version = "2.0.75"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "9f35bcdf61fd8e7be6caf75f429fdca8beb3ed76584befb503b1569faee373ed"
|
||||
checksum = "f6af063034fc1935ede7be0122941bafa9bacb949334d090b77ca98b5817c7d9"
|
||||
dependencies = [
|
||||
"proc-macro2",
|
||||
"quote",
|
||||
|
@ -1547,7 +1547,7 @@ checksum = "c8af7666ab7b6390ab78131fb5b0fce11d6b7a6951602017c35fa82800708971"
|
|||
dependencies = [
|
||||
"proc-macro2",
|
||||
"quote",
|
||||
"syn 2.0.77",
|
||||
"syn 2.0.75",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
|
@ -1574,7 +1574,7 @@ checksum = "a4558b58466b9ad7ca0f102865eccc95938dca1a74a856f2b57b6629050da261"
|
|||
dependencies = [
|
||||
"proc-macro2",
|
||||
"quote",
|
||||
"syn 2.0.77",
|
||||
"syn 2.0.75",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
|
@ -1632,9 +1632,9 @@ checksum = "42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825"
|
|||
|
||||
[[package]]
|
||||
name = "unicode-ident"
|
||||
version = "1.0.13"
|
||||
version = "1.0.12"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "e91b56cd4cadaeb79bbf1a5645f6b4f8dc5bde8834ad5894a8db35fda9efa1fe"
|
||||
checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b"
|
||||
|
||||
[[package]]
|
||||
name = "unicode-xid"
|
||||
|
@ -1682,7 +1682,7 @@ dependencies = [
|
|||
"once_cell",
|
||||
"proc-macro2",
|
||||
"quote",
|
||||
"syn 2.0.77",
|
||||
"syn 2.0.75",
|
||||
"wasm-bindgen-shared",
|
||||
]
|
||||
|
||||
|
@ -1704,7 +1704,7 @@ checksum = "afc340c74d9005395cf9dd098506f7f44e38f2b4a21c6aaacf9a105ea5e1e836"
|
|||
dependencies = [
|
||||
"proc-macro2",
|
||||
"quote",
|
||||
"syn 2.0.77",
|
||||
"syn 2.0.75",
|
||||
"wasm-bindgen-backend",
|
||||
"wasm-bindgen-shared",
|
||||
]
|
||||
|
@ -1835,7 +1835,7 @@ checksum = "fa4f8080344d4671fb4e831a13ad1e68092748387dfc4f55e356242fae12ce3e"
|
|||
dependencies = [
|
||||
"proc-macro2",
|
||||
"quote",
|
||||
"syn 2.0.77",
|
||||
"syn 2.0.75",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
|
@ -1855,5 +1855,5 @@ checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69"
|
|||
dependencies = [
|
||||
"proc-macro2",
|
||||
"quote",
|
||||
"syn 2.0.77",
|
||||
"syn 2.0.75",
|
||||
]
|
||||
|
|
4
apps/transfers/enclave/Cargo.lock
generated
4
apps/transfers/enclave/Cargo.lock
generated
|
@ -2479,9 +2479,9 @@ dependencies = [
|
|||
|
||||
[[package]]
|
||||
name = "pkg-config"
|
||||
version = "0.3.30"
|
||||
version = "0.3.31"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "d231b230927b5e4ad203db57bbcbee2802f6bce620b1e4a9024a07d94e2907ec"
|
||||
checksum = "953ec861398dccce10c670dfeaf3ec4911ca479e9c02154b3a215178c5f566f2"
|
||||
|
||||
[[package]]
|
||||
name = "polyval"
|
||||
|
|
|
@ -43,9 +43,8 @@ tendermint-light-client = { version = "=0.38.1", default-features = false, featu
|
|||
transfers-contract = { path = "../contracts", default-features = false }
|
||||
|
||||
# quartz
|
||||
# quartz-common = { git = "ssh://git@github.com/informalsystems/cycles-quartz.git", features=["full"]}
|
||||
quartz-common = { path = "../../../core/quartz-common", features=["full"]}
|
||||
wasmd-client = { path = "../../../cosmwasm/packages/wasmd-client"}
|
||||
quartz-common = { path = "../../../core/quartz-common", features = ["full"] }
|
||||
wasmd-client = { path = "../../../cosmwasm/packages/wasmd-client" }
|
||||
tm-prover = { path = "../../../utils/tm-prover", default-features = false }
|
||||
|
||||
[dev-dependencies]
|
||||
|
|
|
@ -1,23 +1,29 @@
|
|||
// This file is @generated by prost-build.
|
||||
#[allow(clippy::derive_partial_eq_without_eq)]
|
||||
#[derive(Clone, Copy, PartialEq, ::prost::Message)]
|
||||
pub struct InstantiateRequest {}
|
||||
#[allow(clippy::derive_partial_eq_without_eq)]
|
||||
#[derive(Clone, PartialEq, ::prost::Message)]
|
||||
pub struct InstantiateResponse {
|
||||
#[prost(string, tag = "1")]
|
||||
pub message: ::prost::alloc::string::String,
|
||||
}
|
||||
#[allow(clippy::derive_partial_eq_without_eq)]
|
||||
#[derive(Clone, Copy, PartialEq, ::prost::Message)]
|
||||
pub struct SessionCreateRequest {}
|
||||
#[allow(clippy::derive_partial_eq_without_eq)]
|
||||
#[derive(Clone, PartialEq, ::prost::Message)]
|
||||
pub struct SessionCreateResponse {
|
||||
#[prost(string, tag = "1")]
|
||||
pub message: ::prost::alloc::string::String,
|
||||
}
|
||||
#[allow(clippy::derive_partial_eq_without_eq)]
|
||||
#[derive(Clone, PartialEq, ::prost::Message)]
|
||||
pub struct SessionSetPubKeyRequest {
|
||||
#[prost(string, tag = "1")]
|
||||
pub message: ::prost::alloc::string::String,
|
||||
}
|
||||
#[allow(clippy::derive_partial_eq_without_eq)]
|
||||
#[derive(Clone, PartialEq, ::prost::Message)]
|
||||
pub struct SessionSetPubKeyResponse {
|
||||
#[prost(string, tag = "1")]
|
||||
|
|
|
@ -8,8 +8,8 @@ use mc_sgx_dcap_sys_types::sgx_ql_qve_collateral_t;
|
|||
use quartz_cw::{
|
||||
msg::{
|
||||
execute::attested::{
|
||||
Attestation, DcapAttestation, EpidAttestation, HasUserData, MockAttestation,
|
||||
RawDcapAttestation, RawEpidAttestation, RawMockAttestation,
|
||||
Attestation, DcapAttestation, HasUserData, MockAttestation, RawDcapAttestation,
|
||||
RawMockAttestation,
|
||||
},
|
||||
HasDomainType,
|
||||
},
|
||||
|
@ -40,35 +40,6 @@ pub trait Attestor: Send + Sync + 'static {
|
|||
fn attestation(&self, user_data: impl HasUserData) -> Result<Self::Attestation, Self::Error>;
|
||||
}
|
||||
|
||||
/// An `Attestor` for generating EPID attestations for Gramine based enclaves.
|
||||
#[derive(Clone, PartialEq, Debug, Default)]
|
||||
pub struct EpidAttestor;
|
||||
|
||||
impl Attestor for EpidAttestor {
|
||||
type Error = IoError;
|
||||
type Attestation = EpidAttestation;
|
||||
type RawAttestation = RawEpidAttestation;
|
||||
|
||||
fn quote(&self, user_data: impl HasUserData) -> Result<Vec<u8>, Self::Error> {
|
||||
let user_data = user_data.user_data();
|
||||
let mut user_report_data = File::create("/dev/attestation/user_report_data")?;
|
||||
user_report_data.write_all(user_data.as_slice())?;
|
||||
user_report_data.flush()?;
|
||||
read("/dev/attestation/quote")
|
||||
}
|
||||
|
||||
fn mr_enclave(&self) -> Result<MrEnclave, Self::Error> {
|
||||
let quote = self.quote(NullUserData)?;
|
||||
Ok(quote[112..(112 + 32)]
|
||||
.try_into()
|
||||
.expect("hardcoded array size"))
|
||||
}
|
||||
|
||||
fn attestation(&self, _user_data: impl HasUserData) -> Result<Self::Attestation, Self::Error> {
|
||||
unimplemented!()
|
||||
}
|
||||
}
|
||||
|
||||
/// An `Attestor` for generating DCAP attestations for Gramine based enclaves.
|
||||
#[derive(Clone, PartialEq, Debug)]
|
||||
pub struct DcapAttestor {
|
||||
|
|
|
@ -5,7 +5,7 @@ use cosmwasm_std::{
|
|||
use quartz_dcap_verifier_msgs::QueryMsg as DcapVerifierQueryMsg;
|
||||
use quartz_tee_ra::{
|
||||
intel_sgx::dcap::{Collateral, TrustedIdentity, TrustedMrEnclaveIdentity},
|
||||
verify_epid_attestation, Error as RaVerificationError,
|
||||
Error as RaVerificationError,
|
||||
};
|
||||
use serde::{de::DeserializeOwned, Serialize};
|
||||
use tcbinfo_msgs::{GetTcbInfoResponse, QueryMsg as TcbInfoQueryMsg};
|
||||
|
@ -14,8 +14,8 @@ use crate::{
|
|||
error::Error,
|
||||
handler::Handler,
|
||||
msg::execute::attested::{
|
||||
Attestation, Attested, AttestedMsgSansHandler, DcapAttestation, EpidAttestation,
|
||||
HasUserData, MockAttestation, Quote,
|
||||
Attestation, Attested, AttestedMsgSansHandler, DcapAttestation, HasUserData,
|
||||
MockAttestation, Quote,
|
||||
},
|
||||
state::CONFIG,
|
||||
};
|
||||
|
@ -84,24 +84,6 @@ fn query_dcap_verifier(
|
|||
.map_err(|err| Error::DcapVerificationQueryError(err.to_string()))
|
||||
}
|
||||
|
||||
impl Handler for EpidAttestation {
|
||||
fn handle(
|
||||
self,
|
||||
_deps: DepsMut<'_>,
|
||||
_env: &Env,
|
||||
_info: &MessageInfo,
|
||||
) -> Result<Response, Error> {
|
||||
// attestation handler MUST verify that the user_data and mr_enclave match the config/msg
|
||||
verify_epid_attestation(
|
||||
self.clone().into_report(),
|
||||
self.mr_enclave(),
|
||||
self.user_data(),
|
||||
)
|
||||
.map(|_| Response::default())
|
||||
.map_err(Error::RaVerification)
|
||||
}
|
||||
}
|
||||
|
||||
impl Handler for DcapAttestation {
|
||||
fn handle(self, deps: DepsMut<'_>, _env: &Env, _info: &MessageInfo) -> Result<Response, Error> {
|
||||
let (quote, collateral) = self.clone().into_tuple();
|
||||
|
|
|
@ -2,10 +2,7 @@ use std::{convert::Into, default::Default};
|
|||
|
||||
use cosmwasm_schema::cw_serde;
|
||||
use cosmwasm_std::{HexBinary, StdError};
|
||||
use quartz_tee_ra::{
|
||||
intel_sgx::dcap::{Collateral, Quote3, Quote3Error},
|
||||
IASReport,
|
||||
};
|
||||
use quartz_tee_ra::intel_sgx::dcap::{Collateral, Quote3, Quote3Error};
|
||||
use serde::Serialize;
|
||||
|
||||
/// Alias for an owned DCAP quote. This is the main part of a DCAP attestation generated by an
|
||||
|
@ -100,65 +97,10 @@ pub trait HasUserData {
|
|||
fn user_data(&self) -> UserData;
|
||||
}
|
||||
|
||||
/// A verifiable EPID attestation report generated by an enclave.
|
||||
#[derive(Clone, Debug, PartialEq)]
|
||||
pub struct EpidAttestation {
|
||||
report: IASReport,
|
||||
}
|
||||
|
||||
impl EpidAttestation {
|
||||
pub fn new(report: IASReport) -> Self {
|
||||
Self { report }
|
||||
}
|
||||
|
||||
pub fn into_report(self) -> IASReport {
|
||||
self.report
|
||||
}
|
||||
}
|
||||
|
||||
#[cw_serde]
|
||||
pub struct RawEpidAttestation {
|
||||
report: IASReport,
|
||||
}
|
||||
|
||||
impl TryFrom<RawEpidAttestation> for EpidAttestation {
|
||||
type Error = StdError;
|
||||
|
||||
fn try_from(value: RawEpidAttestation) -> Result<Self, Self::Error> {
|
||||
Ok(Self {
|
||||
report: value.report,
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
impl From<EpidAttestation> for RawEpidAttestation {
|
||||
fn from(value: EpidAttestation) -> Self {
|
||||
Self {
|
||||
report: value.report,
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
impl HasDomainType for RawEpidAttestation {
|
||||
type DomainType = EpidAttestation;
|
||||
}
|
||||
|
||||
impl HasUserData for EpidAttestation {
|
||||
fn user_data(&self) -> UserData {
|
||||
self.report.report.isv_enclave_quote_body.user_data()
|
||||
}
|
||||
}
|
||||
|
||||
pub trait Attestation {
|
||||
fn mr_enclave(&self) -> MrEnclave;
|
||||
}
|
||||
|
||||
impl Attestation for EpidAttestation {
|
||||
fn mr_enclave(&self) -> MrEnclave {
|
||||
self.report.report.isv_enclave_quote_body.mrenclave()
|
||||
}
|
||||
}
|
||||
|
||||
/// A verifiable DCAP attestation generated by an enclave.
|
||||
#[derive(Clone, Debug, PartialEq, Serialize)]
|
||||
pub struct DcapAttestation {
|
||||
|
|
|
@ -45,6 +45,10 @@ impl Config {
|
|||
pub fn mr_enclave(&self) -> MrEnclave {
|
||||
self.mr_enclave
|
||||
}
|
||||
|
||||
pub fn tcbinfo_contract(&self) -> Option<&str> {
|
||||
self.tcbinfo_contract.as_deref()
|
||||
}
|
||||
}
|
||||
|
||||
#[cw_serde]
|
||||
|
@ -60,7 +64,6 @@ impl RawConfig {
|
|||
pub fn mr_enclave(&self) -> &[u8] {
|
||||
self.mr_enclave.as_slice()
|
||||
}
|
||||
|
||||
pub fn tcbinfo_contract(&self) -> Option<&str> {
|
||||
self.tcbinfo_contract.as_deref()
|
||||
}
|
||||
|
|
|
@ -1,7 +1,6 @@
|
|||
use thiserror::Error;
|
||||
|
||||
pub mod dcap;
|
||||
pub mod epid;
|
||||
|
||||
#[derive(Error, Debug)]
|
||||
pub enum Error {
|
||||
|
@ -9,8 +8,6 @@ pub enum Error {
|
|||
UserDataMismatch,
|
||||
#[error("Specified MRENCLAVE does not match the report")]
|
||||
MrEnclaveMismatch,
|
||||
#[error("EPID specific error: {0}")]
|
||||
Epid(#[from] epid::Error),
|
||||
#[error("DCAP specific error: {0:?}")]
|
||||
Dcap(dcap::VerificationOutput<dcap::DcapVerifierOutput>),
|
||||
}
|
||||
|
|
|
@ -1,9 +1,6 @@
|
|||
pub mod certificate_chain;
|
||||
pub mod mc_attest_verifier;
|
||||
|
||||
/// Root anchor PEM file for use with DCAP
|
||||
pub const DCAP_ROOT_ANCHOR: &str = include_str!("../../data/DcapRootCACert.pem");
|
||||
|
||||
use mc_attestation_verifier::Evidence;
|
||||
pub use mc_attestation_verifier::{
|
||||
TrustedIdentity, TrustedMrEnclaveIdentity, TrustedMrSignerIdentity, VerificationOutput,
|
||||
|
|
|
@ -1,17 +0,0 @@
|
|||
use hex_literal::hex;
|
||||
use thiserror::Error;
|
||||
|
||||
pub const INTEL_ROOT_MODULUS: &[u8] = &hex!("a97a2de0e66ea6147c9ee745ac0162686c7192099afc4b3f040fad6de093511d74e802f510d716038157dcaf84f4104bd3fed7e6b8f99c8817fd1ff5b9b864296c3d81fa8f1b729e02d21d72ffee4ced725efe74bea68fbc4d4244286fcdd4bf64406a439a15bcb4cf67754489c423972b4a80df5c2e7c5bc2dbaf2d42bb7b244f7c95bf92c75d3b33fc5410678a89589d1083da3acc459f2704cd99598c275e7c1878e00757e5bdb4e840226c11c0a17ff79c80b15c1ddb5af21cc2417061fbd2a2da819ed3b72b7efaa3bfebe2805c9b8ac19aa346512d484cfc81941e15f55881cc127e8f7aa12300cd5afb5742fa1d20cb467a5beb1c666cf76a368978b5");
|
||||
|
||||
pub const INTEL_ROOT_EXPONENT: &[u8] =
|
||||
&hex!("0000000000000000000000000000000000000000000000000000000000010001");
|
||||
|
||||
pub mod types;
|
||||
|
||||
pub mod verifier;
|
||||
|
||||
#[derive(Error, Debug)]
|
||||
pub enum Error {
|
||||
#[error("Recovered digest from signature does not match the specified report")]
|
||||
RecoveredDigestMismatch,
|
||||
}
|
|
@ -1,49 +0,0 @@
|
|||
use cosmwasm_schema::cw_serde;
|
||||
use cosmwasm_std::Binary;
|
||||
|
||||
#[cw_serde]
|
||||
pub struct IASReport {
|
||||
pub report: ReportBody,
|
||||
#[serde(rename = "reportsig")]
|
||||
pub report_sig: Binary,
|
||||
}
|
||||
|
||||
#[cw_serde]
|
||||
pub struct ReportBody {
|
||||
pub id: String,
|
||||
pub timestamp: String,
|
||||
pub version: u64,
|
||||
#[serde(rename = "epidPseudonym")]
|
||||
pub epid_pseudonym: Binary,
|
||||
#[serde(rename = "advisoryURL")]
|
||||
pub advisory_url: String,
|
||||
#[serde(rename = "advisoryIDs")]
|
||||
pub advisory_ids: Vec<String>,
|
||||
#[serde(rename = "isvEnclaveQuoteStatus")]
|
||||
pub isv_enclave_quote_status: String,
|
||||
#[serde(rename = "platformInfoBlob")]
|
||||
pub platform_info_blob: String,
|
||||
#[serde(rename = "isvEnclaveQuoteBody")]
|
||||
pub isv_enclave_quote_body: IsvEnclaveQuoteBody,
|
||||
}
|
||||
|
||||
#[cw_serde]
|
||||
#[serde(transparent)]
|
||||
pub struct IsvEnclaveQuoteBody(Binary);
|
||||
|
||||
impl IsvEnclaveQuoteBody {
|
||||
pub fn mrenclave(&self) -> [u8; 32] {
|
||||
Self::array_chunk(self.0.as_slice(), 112)
|
||||
}
|
||||
|
||||
pub fn user_data(&self) -> [u8; 64] {
|
||||
Self::array_chunk(self.0.as_slice(), 368)
|
||||
}
|
||||
|
||||
fn array_chunk<const N: usize>(quote_body: &[u8], offset: usize) -> [u8; N] {
|
||||
assert!(offset + N <= quote_body.len());
|
||||
quote_body[offset..offset + N]
|
||||
.try_into()
|
||||
.expect("array length mismatch")
|
||||
}
|
||||
}
|
|
@ -1,172 +0,0 @@
|
|||
use cosmwasm_std::ensure_eq;
|
||||
use num_bigint::BigUint;
|
||||
use sha2::{Digest, Sha256};
|
||||
|
||||
use crate::intel_sgx::{
|
||||
epid::{types::IASReport, Error as EpidError, INTEL_ROOT_EXPONENT, INTEL_ROOT_MODULUS},
|
||||
Error,
|
||||
};
|
||||
|
||||
/// Given an RSA signature and the signer's exponent + modulus we recover the digest that was signed by the signature.
|
||||
pub fn recover_signature_digest(signature: &[u8], exponent: &[u8], modulus: &[u8]) -> Vec<u8> {
|
||||
let sig_as_bignum_be = BigUint::from_bytes_be(signature);
|
||||
let intel_modulus_be = BigUint::from_bytes_be(modulus);
|
||||
let intel_exponent_be = BigUint::from_bytes_be(exponent);
|
||||
|
||||
let digest_be = sig_as_bignum_be.modpow(&intel_exponent_be, &intel_modulus_be);
|
||||
|
||||
// last 32 bytes contain the digest
|
||||
let digest_bytes = digest_be.to_bytes_be();
|
||||
let n = digest_bytes.len();
|
||||
digest_bytes[n - 32..n].to_vec()
|
||||
}
|
||||
|
||||
pub fn verify(
|
||||
ias_report: IASReport,
|
||||
mrenclave: impl AsRef<[u8]>,
|
||||
user_data: impl AsRef<[u8]>,
|
||||
) -> Result<(), Error> {
|
||||
// Extract the payload from the quote body
|
||||
let user_data_in_quote = ias_report.report.isv_enclave_quote_body.user_data();
|
||||
|
||||
// check user_report_data
|
||||
ensure_eq!(
|
||||
user_data_in_quote,
|
||||
user_data.as_ref(),
|
||||
Error::UserDataMismatch
|
||||
);
|
||||
|
||||
// Extract the mrenclave from the quote body
|
||||
let mrenclave_in_quote = ias_report.report.isv_enclave_quote_body.mrenclave();
|
||||
|
||||
// check mrenclave
|
||||
ensure_eq!(
|
||||
mrenclave_in_quote,
|
||||
mrenclave.as_ref(),
|
||||
Error::MrEnclaveMismatch
|
||||
);
|
||||
|
||||
// Recover the RSA signature's digest
|
||||
let recovered_digest = recover_signature_digest(
|
||||
ias_report.report_sig.as_slice(),
|
||||
INTEL_ROOT_EXPONENT,
|
||||
INTEL_ROOT_MODULUS,
|
||||
);
|
||||
// Convert the recovered digest into a byte slice
|
||||
let recovered_digest = recovered_digest.as_slice();
|
||||
|
||||
// Convert the ias report as a json string, removing all the backslashes to escape stuff
|
||||
let ias_report_asjson = serde_json::to_string(&ias_report.report)
|
||||
.expect("infallible serializer for IASReport")
|
||||
.replace('\\', "");
|
||||
// Convert the ias report without the back slashes to bytes
|
||||
let ias_report_asbytes = ias_report_asjson.as_bytes();
|
||||
// We are going to calculate our own digest of the ias report
|
||||
let mut hasher = Sha256::default();
|
||||
// Update the hasher contents with that of the ias report json
|
||||
hasher.update(ias_report_asbytes);
|
||||
// finalize the sha256 hasher so that it produces a byte slice of the digest, should be 32 bytes
|
||||
let ias_report_digest = &hasher.finalize()[..];
|
||||
|
||||
// ensure that the recovered digest from the signature matches the digest of the report
|
||||
ensure_eq!(
|
||||
ias_report_digest,
|
||||
recovered_digest,
|
||||
EpidError::RecoveredDigestMismatch
|
||||
);
|
||||
|
||||
Ok(())
|
||||
}
|
||||
|
||||
#[cfg(test)]
|
||||
mod tests {
|
||||
use cosmwasm_schema::cw_serde;
|
||||
use cosmwasm_std::HexBinary;
|
||||
|
||||
use super::*;
|
||||
|
||||
#[cw_serde]
|
||||
pub enum QueryMsg {
|
||||
/// Verify an attestation
|
||||
VerifyEpidAttestation {
|
||||
// The report that is generated by an enclave
|
||||
report: IASReport,
|
||||
// The MRENCLAVE of this enclave (as hex string)
|
||||
mrenclave: HexBinary,
|
||||
// User data - whose commitment is in the `user_report_data` (as hex string)
|
||||
user_data: HexBinary,
|
||||
},
|
||||
}
|
||||
|
||||
fn parse_attestation(query_verifier: &str) -> (IASReport, HexBinary, HexBinary) {
|
||||
let query_verifier: QueryMsg =
|
||||
serde_json::from_str(query_verifier).expect("deserialize query");
|
||||
match query_verifier {
|
||||
QueryMsg::VerifyEpidAttestation {
|
||||
report,
|
||||
mrenclave,
|
||||
user_data,
|
||||
} => (report, mrenclave, user_data),
|
||||
}
|
||||
}
|
||||
|
||||
fn verify_attestation(query_verifier: &str) {
|
||||
let (report, mrenclave, user_data) = parse_attestation(query_verifier);
|
||||
verify(report, mrenclave, user_data).expect("RA verification failure");
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_verifier_ok() {
|
||||
verify_attestation(
|
||||
r#"{
|
||||
"verify_epid_attestation": {
|
||||
"report": {"report":{"id":"5246688123689513540899231107533660789","timestamp":"2024-02-07T17:06:23.913745","version":4,"epidPseudonym":"+CUyIi74LPqS6M0NF7YrSxLqPdX3MKs6D6LIPqRG/ZEB4WmxZVvxAJwdwg/0m9cYnUUQguLnJotthX645lAogfJgO8Xg5/91lSegwyUKvHmKgtjOHX/YTbVe/wmgWiBdaL+KmarY0Je459Px/FqGLWLsAF7egPAJRd1Xn88Znrs=","advisoryURL":"https://security-center.intel.com","advisoryIDs":["INTEL-SA-00161","INTEL-SA-00219","INTEL-SA-00289","INTEL-SA-00334","INTEL-SA-00615"],"isvEnclaveQuoteStatus":"CONFIGURATION_AND_SW_HARDENING_NEEDED","platformInfoBlob":"150200650000080000141402040180070000000000000000000D00000C000000020000000000000CB0F08115F3DE71AE97980FE5E10B042054930ACE356C79EC44603D3F890756EC6ED73927A7C58CDE9AF1E754AEC77E335E8D80294407936BEB6404F27669FF7BB1","isvEnclaveQuoteBody":"AgABALAMAAAPAA8AAAAAAFHK9aSLRQ1iSu/jKG0xSJQAAAAAAAAAAAAAAAAAAAAAFBQCBwGAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAHAAAAAAAAAOPC8qW4QNieBprK/8rbZRDvhmpz06nuVxAO1fhkbuS7AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAc8uUpEUEPvz8ZkFapjVh5WlWaLoAJM/f80T0EhGInHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACRE7C+d+1dDWhoDsdyBrjVh+1AZ5txMhzN1UBeTVSmggAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"},"reportsig":"YcY4SPvkfR4P2E8A5huutCeS+vY/ir+xq6disalNfNtAcUyOIOqTPVXhAZgY1M5B47Hjj1oYWf2qC2w+dnj7VcZjzO9oR0pJYdA+A7jaVrNzH2eXA79yICkuU8WE/x58I0j5vjXLoHXahaKlpZkMeTphqBY8u+FTVSdP3cWPho4viPapTfQRuEWmYq4KIq2zSr6wLg3Pz+yQ+G3e9BASVkLYxdYGTDFH1pMmfas9SEI7V4I+j8DaXmL8bucSRakmcQdmDMPGiA7mvIhSAlprzCrdxM7CHeUC6MPLN1fmFFcc9kyO/ved69j/651MWC83GgxSJ15L80U+DQzmrSW8xg=="},
|
||||
"mrenclave": "e3c2f2a5b840d89e069acaffcadb6510ef866a73d3a9ee57100ed5f8646ee4bb",
|
||||
"user_data": "9113b0be77ed5d0d68680ec77206b8d587ed40679b71321ccdd5405e4d54a6820000000000000000000000000000000000000000000000000000000000000000"
|
||||
}
|
||||
}"#,
|
||||
)
|
||||
}
|
||||
|
||||
#[test]
|
||||
#[should_panic]
|
||||
fn test_verifier_bad_mrenclave() {
|
||||
verify_attestation(
|
||||
r#"{
|
||||
"verify_epid_attestation": {
|
||||
"report": {"report":{"id":"5246688123689513540899231107533660789","timestamp":"2024-02-07T17:06:23.913745","version":4,"epidPseudonym":"+CUyIi74LPqS6M0NF7YrSxLqPdX3MKs6D6LIPqRG/ZEB4WmxZVvxAJwdwg/0m9cYnUUQguLnJotthX645lAogfJgO8Xg5/91lSegwyUKvHmKgtjOHX/YTbVe/wmgWiBdaL+KmarY0Je459Px/FqGLWLsAF7egPAJRd1Xn88Znrs=","advisoryURL":"https://security-center.intel.com","advisoryIDs":["INTEL-SA-00161","INTEL-SA-00219","INTEL-SA-00289","INTEL-SA-00334","INTEL-SA-00615"],"isvEnclaveQuoteStatus":"CONFIGURATION_AND_SW_HARDENING_NEEDED","platformInfoBlob":"150200650000080000141402040180070000000000000000000D00000C000000020000000000000CB0F08115F3DE71AE97980FE5E10B042054930ACE356C79EC44603D3F890756EC6ED73927A7C58CDE9AF1E754AEC77E335E8D80294407936BEB6404F27669FF7BB1","isvEnclaveQuoteBody":"AgABALAMAAAPAA8AAAAAAFHK9aSLRQ1iSu/jKG0xSJQAAAAAAAAAAAAAAAAAAAAAFBQCBwGAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAHAAAAAAAAAOPC8qW4QNieBprK/8rbZRDvhmpz06nuVxAO1fhkbuS7AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAc8uUpEUEPvz8ZkFapjVh5WlWaLoAJM/f80T0EhGInHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACRE7C+d+1dDWhoDsdyBrjVh+1AZ5txMhzN1UBeTVSmggAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"},"reportsig":"YcY4SPvkfR4P2E8A5huutCeS+vY/ir+xq6disalNfNtAcUyOIOqTPVXhAZgY1M5B47Hjj1oYWf2qC2w+dnj7VcZjzO9oR0pJYdA+A7jaVrNzH2eXA79yICkuU8WE/x58I0j5vjXLoHXahaKlpZkMeTphqBY8u+FTVSdP3cWPho4viPapTfQRuEWmYq4KIq2zSr6wLg3Pz+yQ+G3e9BASVkLYxdYGTDFH1pMmfas9SEI7V4I+j8DaXmL8bucSRakmcQdmDMPGiA7mvIhSAlprzCrdxM7CHeUC6MPLN1fmFFcc9kyO/ved69j/651MWC83GgxSJ15L80U+DQzmrSW8xg=="},
|
||||
"mrenclave": "f3c2f2a5b840d89e069acaffcadb6510ef866a73d3a9ee57100ed5f8646ee4bb",
|
||||
"user_data": "9113b0be77ed5d0d68680ec77206b8d587ed40679b71321ccdd5405e4d54a6820000000000000000000000000000000000000000000000000000000000000000"
|
||||
}
|
||||
}"#,
|
||||
)
|
||||
}
|
||||
|
||||
#[test]
|
||||
#[should_panic]
|
||||
fn test_verifier_bad_user_data() {
|
||||
verify_attestation(
|
||||
r#"{
|
||||
"verify_epid_attestation": {
|
||||
"report": {"report":{"id":"5246688123689513540899231107533660789","timestamp":"2024-02-07T17:06:23.913745","version":4,"epidPseudonym":"+CUyIi74LPqS6M0NF7YrSxLqPdX3MKs6D6LIPqRG/ZEB4WmxZVvxAJwdwg/0m9cYnUUQguLnJotthX645lAogfJgO8Xg5/91lSegwyUKvHmKgtjOHX/YTbVe/wmgWiBdaL+KmarY0Je459Px/FqGLWLsAF7egPAJRd1Xn88Znrs=","advisoryURL":"https://security-center.intel.com","advisoryIDs":["INTEL-SA-00161","INTEL-SA-00219","INTEL-SA-00289","INTEL-SA-00334","INTEL-SA-00615"],"isvEnclaveQuoteStatus":"CONFIGURATION_AND_SW_HARDENING_NEEDED","platformInfoBlob":"150200650000080000141402040180070000000000000000000D00000C000000020000000000000CB0F08115F3DE71AE97980FE5E10B042054930ACE356C79EC44603D3F890756EC6ED73927A7C58CDE9AF1E754AEC77E335E8D80294407936BEB6404F27669FF7BB1","isvEnclaveQuoteBody":"AgABALAMAAAPAA8AAAAAAFHK9aSLRQ1iSu/jKG0xSJQAAAAAAAAAAAAAAAAAAAAAFBQCBwGAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAHAAAAAAAAAOPC8qW4QNieBprK/8rbZRDvhmpz06nuVxAO1fhkbuS7AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAc8uUpEUEPvz8ZkFapjVh5WlWaLoAJM/f80T0EhGInHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACRE7C+d+1dDWhoDsdyBrjVh+1AZ5txMhzN1UBeTVSmggAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"},"reportsig":"YcY4SPvkfR4P2E8A5huutCeS+vY/ir+xq6disalNfNtAcUyOIOqTPVXhAZgY1M5B47Hjj1oYWf2qC2w+dnj7VcZjzO9oR0pJYdA+A7jaVrNzH2eXA79yICkuU8WE/x58I0j5vjXLoHXahaKlpZkMeTphqBY8u+FTVSdP3cWPho4viPapTfQRuEWmYq4KIq2zSr6wLg3Pz+yQ+G3e9BASVkLYxdYGTDFH1pMmfas9SEI7V4I+j8DaXmL8bucSRakmcQdmDMPGiA7mvIhSAlprzCrdxM7CHeUC6MPLN1fmFFcc9kyO/ved69j/651MWC83GgxSJ15L80U+DQzmrSW8xg=="},
|
||||
"mrenclave": "e3c2f2a5b840d89e069acaffcadb6510ef866a73d3a9ee57100ed5f8646ee4bb",
|
||||
"user_data": "00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
|
||||
}
|
||||
}"#,
|
||||
)
|
||||
}
|
||||
|
||||
#[test]
|
||||
#[should_panic]
|
||||
fn test_verifier_bad_platform_info_blob() {
|
||||
verify_attestation(
|
||||
r#"{
|
||||
"verify_epid_attestation": {
|
||||
"report": {"report":{"id":"5246688123689513540899231107533660789","timestamp":"2024-02-07T17:06:23.913745","version":4,"epidPseudonym":"+CUyIi74LPqS6M0NF7YrSxLqPdX3MKs6D6LIPqRG/ZEB4WmxZVvxAJwdwg/0m9cYnUUQguLnJotthX645lAogfJgO8Xg5/91lSegwyUKvHmKgtjOHX/YTbVe/wmgWiBdaL+KmarY0Je459Px/FqGLWLsAF7egPAJRd1Xn88Znrs=","advisoryURL":"https://security-center.intel.com","advisoryIDs":["INTEL-SA-00161","INTEL-SA-00219","INTEL-SA-00289","INTEL-SA-00334","INTEL-SA-00615"],"isvEnclaveQuoteStatus":"CONFIGURATION_AND_SW_HARDENING_NEEDED","platformInfoBlob":"150200650000080000141402040180070000000000000000000D00000C000000020000000000000CB0F08115F3DE71AE97980FE5E10B042054930ACE356C79EC44603D3F890756EC6ED73927A7C58CDE9AF1E754AEC77E335E8D80294407936BEB6404F27669FF7BB1","isvEnclaveQuoteBody":"AgABALAMAAAPAA8AAAAAAFHK9aSLRQ1iSu/jKG0xSJQAAAAAAAAAAAAAAAAAAAAAFBQCBwGAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAHAAAAAAAAAOPC8qW4QNieBprK/8rbZRDvhmpz06nuVxAO1fhkbuS7AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAc8uUpEUEPvz8ZkFapjVh5WlWaLoAJM/f80T0EhGInHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACRE7C+d+1dDWhoDsdyBrjVh+1AZ5txMhzN1UBeTVSmggAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"},"reportsig":"YaY4SPvkfR4P2E8A5huutCeS+vY/ir+xq6disalNfNtAcUyOIOqTPVXhAZgY1M5B47Hjj1oYWf2qC2w+dnj7VcZjzO9oR0pJYdA+A7jaVrNzH2eXA79yICkuU8WE/x58I0j5vjXLoHXahaKlpZkMeTphqBY8u+FTVSdP3cWPho4viPapTfQRuEWmYq4KIq2zSr6wLg3Pz+yQ+G3e9BASVkLYxdYGTDFH1pMmfas9SEI7V4I+j8DaXmL8bucSRakmcQdmDMPGiA7mvIhSAlprzCrdxM7CHeUC6MPLN1fmFFcc9kyO/ved69j/651MWC83GgxSJ15L80U+DQzmrSW8xg=="},
|
||||
"mrenclave": "e3c2f2a5b840d89e069acaffcadb6510ef866a73d3a9ee57100ed5f8646ee4bb",
|
||||
"user_data": "9113b0be77ed5d0d68680ec77206b8d587ed40679b71321ccdd5405e4d54a6820000000000000000000000000000000000000000000000000000000000000000"
|
||||
}
|
||||
}"#,
|
||||
)
|
||||
}
|
||||
}
|
|
@ -18,8 +18,4 @@
|
|||
|
||||
pub mod intel_sgx;
|
||||
|
||||
pub use intel_sgx::{
|
||||
dcap::verify as verify_dcap_attestation,
|
||||
epid::{types::IASReport, verifier::verify as verify_epid_attestation},
|
||||
Error,
|
||||
};
|
||||
pub use intel_sgx::{dcap::verify as verify_dcap_attestation, Error};
|
||||
|
|
Loading…
Reference in a new issue