diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index e8c168b5..19befab3 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -14,8 +14,7 @@ on: - main env: - RUST_VERSION: "1.78.0-nightly" - NIGHTLY_VERSION: nightly-2024-02-05 + RUST_VERSION: "1.81.0" CARGO_TERM_COLOR: always # Skip incremental build and debug info generation in CI CARGO_INCREMENTAL: 0 @@ -32,7 +31,7 @@ jobs: uses: actions-rs/toolchain@v1 with: profile: minimal - toolchain: ${{ env.NIGHTLY_VERSION }} + toolchain: ${{ env.RUST_VERSION }} override: true components: rustfmt, clippy - name: Install protobuf-compiler @@ -46,13 +45,13 @@ jobs: ~/.cargo/registry/cache/ ~/.cargo/git/db/ target/ - key: ${{ env.RUST_VERSION }}-${{ env.NIGHTLY_VERSION }}-cargo-lint-${{ hashFiles('**/Cargo.lock') }} - restore-keys: ${{ env.RUST_VERSION }}-${{ env.NIGHTLY_VERSION }}-cargo-lint- - - name: Check formatting - uses: actions-rs/cargo@v1 - with: - command: fmt - args: --all -- --check + key: ${{ env.RUST_VERSION }}-cargo-lint-${{ hashFiles('**/Cargo.lock') }} + restore-keys: ${{ env.RUST_VERSION }}-cargo-lint- + # - name: Check formatting + # uses: actions-rs/cargo@v1 + # with: + # command: fmt + # args: --all -- --check - uses: actions-rs/clippy-check@v1 with: token: ${{ secrets.GITHUB_TOKEN }} @@ -73,7 +72,7 @@ jobs: uses: actions-rs/toolchain@v1 with: profile: minimal - toolchain: ${{ env.NIGHTLY_VERSION }} + toolchain: ${{ env.RUST_VERSION }} override: true - name: Install protobuf-compiler run: sudo apt-get install -y protobuf-compiler @@ -86,8 +85,8 @@ jobs: ~/.cargo/registry/cache/ ~/.cargo/git/db/ target/ - key: ${{ env.RUST_VERSION }}-${{ env.NIGHTLY_VERSION }}-cargo-test-${{ hashFiles('**/Cargo.lock') }} - restore-keys: ${{ env.RUST_VERSION }}-${{ env.NIGHTLY_VERSION }}-cargo-test- + key: ${{ env.RUST_VERSION }}-cargo-test-${{ hashFiles('**/Cargo.lock') }} + restore-keys: ${{ env.RUST_VERSION }}-cargo-test- - name: Install Foundry uses: foundry-rs/foundry-toolchain@v1 with: diff --git a/.gitignore b/.gitignore index 7487727a..b3ef5c45 100644 --- a/.gitignore +++ b/.gitignore @@ -10,4 +10,8 @@ commitments.json !.cargo e2e_tests/docker-compose/keys/* -!e2e_tests/docker-compose/keys/.keep \ No newline at end of file +!e2e_tests/docker-compose/keys/.keep + +.env +.tool/ + diff --git a/Cargo.lock b/Cargo.lock index 601c9af8..d1f77b4c 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -8,7 +8,7 @@ version = "0.11.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fe438c63458706e03479442743baae6c88256498e6431708f6dfc520a26515d3" dependencies = [ - "lazy_static", + "lazy_static 1.4.0", "regex", ] @@ -158,31 +158,32 @@ checksum = "080e9890a082662b09c1ad45f567faeeb47f22b5fb23895fbe1e651e718e25ca" [[package]] name = "ark-bn254" -version = "0.3.0" +version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ea691771ebbb28aea556c044e2e5c5227398d840cee0c34d4d20fa8eb2689e8c" +checksum = "a22f4561524cd949590d78d7d4c5df8f592430d221f7f3c9497bbafd8972120f" dependencies = [ "ark-ec", - "ark-ff 0.3.0", - "ark-std 0.3.0", + "ark-ff 0.4.1", + "ark-std 0.4.0", ] [[package]] name = "ark-circom" version = "0.1.0" -source = "git+https://github.com/gakonst/ark-circom?rev=a93c8b0#a93c8b03d4376e197ceb36aa410a8903c283dab7" +source = "git+https://github.com/arkworks-rs/circom-compat.git?rev=f97ac2b#f97ac2b2458fd14489bc70375bb45688f5ef26a8" dependencies = [ "ark-bn254", + "ark-crypto-primitives", "ark-ec", - "ark-ff 0.3.0", + "ark-ff 0.4.1", "ark-groth16", "ark-poly", "ark-relations", - "ark-serialize 0.3.0", - "ark-std 0.3.0", + "ark-serialize 0.4.1", + "ark-std 0.4.0", "byteorder", "cfg-if", - "color-eyre 0.5.11", + "color-eyre", "criterion", "ethers-core 2.0.13 (git+https://github.com/gakonst/ethers-rs)", "fnv", @@ -196,32 +197,36 @@ dependencies = [ [[package]] name = "ark-crypto-primitives" -version = "0.3.0" +version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ff773c0ef8c655c98071d3026a63950798a66b2f45baef22d8334c1756f1bd18" +checksum = "1f3a13b34da09176a8baba701233fdffbaa7c1b1192ce031a3da4e55ce1f1a56" dependencies = [ "ark-ec", - "ark-ff 0.3.0", + "ark-ff 0.4.1", "ark-relations", - "ark-serialize 0.3.0", + "ark-serialize 0.4.1", "ark-snark", - "ark-std 0.3.0", + "ark-std 0.4.0", "blake2", "derivative", - "digest 0.9.0", + "digest 0.10.7", "rayon", + "sha2", ] [[package]] name = "ark-ec" -version = "0.3.0" +version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dea978406c4b1ca13c2db2373b05cc55429c3575b8b21f1b9ee859aa5b03dd42" +checksum = "3c60370a92f8e1a5f053cad73a862e1b99bc642333cd676fa11c0c39f80f4ac2" dependencies = [ - "ark-ff 0.3.0", - "ark-serialize 0.3.0", - "ark-std 0.3.0", + "ark-ff 0.4.1", + "ark-poly", + "ark-serialize 0.4.1", + "ark-std 0.4.0", "derivative", + "hashbrown 0.13.2", + "itertools 0.10.5", "num-traits", "rayon", "zeroize", @@ -241,20 +246,19 @@ dependencies = [ "num-bigint", "num-traits", "paste", - "rayon", "rustc_version 0.3.3", "zeroize", ] [[package]] name = "ark-ff" -version = "0.4.2" +version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec847af850f44ad29048935519032c33da8aa03340876d351dfab5660d2966ba" +checksum = "4c2d42532524bee1da5a4f6f733eb4907301baa480829557adcff5dfaeee1d9a" dependencies = [ "ark-ff-asm 0.4.2", "ark-ff-macros 0.4.2", - "ark-serialize 0.4.2", + "ark-serialize 0.4.1", "ark-std 0.4.0", "derivative", "digest 0.10.7", @@ -262,6 +266,7 @@ dependencies = [ "num-bigint", "num-traits", "paste", + "rayon", "rustc_version 0.4.0", "zeroize", ] @@ -313,41 +318,42 @@ dependencies = [ [[package]] name = "ark-groth16" -version = "0.3.0" -source = "git+https://github.com/arkworks-rs/groth16?rev=765817f#765817f77a6e14964c6f264d565b18676b11bd59" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "20ceafa83848c3e390f1cbf124bc3193b3e639b3f02009e0e290809a501b95fc" dependencies = [ "ark-crypto-primitives", "ark-ec", - "ark-ff 0.3.0", + "ark-ff 0.4.1", "ark-poly", "ark-relations", - "ark-serialize 0.3.0", - "ark-std 0.3.0", + "ark-serialize 0.4.1", + "ark-std 0.4.0", "rayon", ] [[package]] name = "ark-poly" -version = "0.3.0" +version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b0f78f47537c2f15706db7e98fe64cc1711dbf9def81218194e17239e53e5aa" +checksum = "8f6ec811462cabe265cfe1b102fcfe3df79d7d2929c2425673648ee9abfd0272" dependencies = [ - "ark-ff 0.3.0", - "ark-serialize 0.3.0", - "ark-std 0.3.0", + "ark-ff 0.4.1", + "ark-serialize 0.4.1", + "ark-std 0.4.0", "derivative", - "hashbrown 0.11.2", + "hashbrown 0.13.2", "rayon", ] [[package]] name = "ark-relations" -version = "0.3.0" +version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4cba4c1c99792a6834bd97f7fd76578ec2cd58d2afc5139a17e1d1bec65b38f6" +checksum = "00796b6efc05a3f48225e59cb6a2cda78881e7c390872d5786aaf112f31fb4f0" dependencies = [ - "ark-ff 0.3.0", - "ark-std 0.3.0", + "ark-ff 0.4.1", + "ark-std 0.4.0", "tracing", "tracing-subscriber 0.2.25", ] @@ -358,17 +364,17 @@ version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1d6c2b318ee6e10f8c2853e73a83adc0ccb88995aa978d8a3408d492ab2ee671" dependencies = [ - "ark-serialize-derive", "ark-std 0.3.0", "digest 0.9.0", ] [[package]] name = "ark-serialize" -version = "0.4.2" +version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "adb7b85a02b83d2f22f89bd5cac66c9c89474240cb6207cb1efc16d098e822a5" +checksum = "e7e735959bc173ea4baf13327b19c22d452b8e9e8e8f7b7fc34e6bf0e316c33e" dependencies = [ + "ark-serialize-derive", "ark-std 0.4.0", "digest 0.10.7", "num-bigint", @@ -376,9 +382,9 @@ dependencies = [ [[package]] name = "ark-serialize-derive" -version = "0.3.0" +version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8dd4e5f0bf8285d5ed538d27fab7411f3e297908fd93c62195de8bee3f199e82" +checksum = "ae3281bc6d0fd7e549af32b52511e1302185bd688fd3359fa36423346ff682ea" dependencies = [ "proc-macro2", "quote", @@ -387,13 +393,14 @@ dependencies = [ [[package]] name = "ark-snark" -version = "0.3.0" +version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0dc3dff1a5f67a9c0b34df32b079752d8dd17f1e9d06253da0453db6c1b7cc8a" +checksum = "84d3cc6833a335bb8a600241889ead68ee89a3cf8448081fb7694c0fe503da63" dependencies = [ - "ark-ff 0.3.0", + "ark-ff 0.4.1", "ark-relations", - "ark-std 0.3.0", + "ark-serialize 0.4.1", + "ark-std 0.4.0", ] [[package]] @@ -404,7 +411,6 @@ checksum = "1df2c09229cbc5a028b1d70e00fdb2acee28b1055dfb5ca73eea49c5a25c4e7c" dependencies = [ "num-traits", "rand", - "rayon", ] [[package]] @@ -415,6 +421,25 @@ checksum = "94893f1e0c6eeab764ade8dc4c0db24caf4fe7cbbaafc0eba0a9030f447b5185" dependencies = [ "num-traits", "rand", + "rayon", +] + +[[package]] +name = "ark-zkey" +version = "0.1.0" +source = "git+https://github.com/worldcoin/semaphore-rs?rev=251e908d89d598c976901306bc29f06ab59e799d#251e908d89d598c976901306bc29f06ab59e799d" +dependencies = [ + "ark-bn254", + "ark-circom", + "ark-ec", + "ark-ff 0.4.1", + "ark-groth16", + "ark-relations", + "ark-serialize 0.4.1", + "color-eyre", + "flame", + "flamer", + "memmap2 0.9.5", ] [[package]] @@ -525,9 +550,9 @@ checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa" [[package]] name = "aws-config" -version = "1.1.4" +version = "1.5.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b30c39ebe61f75d1b3785362b1586b41991873c9ab3e317a9181c246fb71d82" +checksum = "848d7b9b605720989929279fa644ce8f244d0ce3146fcca5b70e4eb7b3c020fc" dependencies = [ "aws-credential-types", "aws-runtime", @@ -545,19 +570,19 @@ dependencies = [ "fastrand", "hex", "http 0.2.11", - "hyper", "ring 0.17.7", "time", "tokio", "tracing", + "url", "zeroize", ] [[package]] name = "aws-credential-types" -version = "1.1.4" +version = "1.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "33cc49dcdd31c8b6e79850a179af4c367669150c7ac0135f176c61bec81a70f7" +checksum = "60e8f6b615cb5fc60a98132268508ad104310f0cfb25a1c22eee76efdf9154da" dependencies = [ "aws-smithy-async", "aws-smithy-runtime-api", @@ -567,21 +592,23 @@ dependencies = [ [[package]] name = "aws-runtime" -version = "1.1.4" +version = "1.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eb031bff99877c26c28895766f7bb8484a05e24547e370768d6cc9db514662aa" +checksum = "a10d5c055aa540164d9561a0e2e74ad30f0dcf7393c3a92f6733ddf9c5762468" dependencies = [ "aws-credential-types", "aws-sigv4", "aws-smithy-async", "aws-smithy-http", + "aws-smithy-runtime", "aws-smithy-runtime-api", "aws-smithy-types", "aws-types", "bytes", "fastrand", "http 0.2.11", - "http-body", + "http-body 0.4.6", + "once_cell", "percent-encoding", "pin-project-lite", "tracing", @@ -590,9 +617,9 @@ dependencies = [ [[package]] name = "aws-sdk-cognitoidentityprovider" -version = "1.14.0" +version = "1.51.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc6a43cbe8f61089c4480440f75fbf4b71c2e1df4eb8369209f5c03020adabff" +checksum = "f92cf43607d45e6de232b2476c02648c6b69819a9c0b4e7e53543ea65fe8b496" dependencies = [ "aws-credential-types", "aws-runtime", @@ -612,9 +639,9 @@ dependencies = [ [[package]] name = "aws-sdk-sso" -version = "1.12.0" +version = "1.43.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f486420a66caad72635bc2ce0ff6581646e0d32df02aa39dc983bfe794955a5b" +checksum = "70a9d27ed1c12b1140c47daf1bc541606c43fdafd918c4797d520db0043ceef2" dependencies = [ "aws-credential-types", "aws-runtime", @@ -634,9 +661,9 @@ dependencies = [ [[package]] name = "aws-sdk-ssooidc" -version = "1.12.0" +version = "1.44.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "39ddccf01d82fce9b4a15c8ae8608211ee7db8ed13a70b514bbfe41df3d24841" +checksum = "44514a6ca967686cde1e2a1b81df6ef1883d0e3e570da8d8bc5c491dcb6fc29b" dependencies = [ "aws-credential-types", "aws-runtime", @@ -656,9 +683,9 @@ dependencies = [ [[package]] name = "aws-sdk-sts" -version = "1.12.0" +version = "1.43.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a591f8c7e6a621a501b2b5d2e88e1697fcb6274264523a6ad4d5959889a41ce" +checksum = "cd7a4d279762a35b9df97209f6808b95d4fe78547fe2316b4d200a0283960c5a" dependencies = [ "aws-credential-types", "aws-runtime", @@ -679,9 +706,9 @@ dependencies = [ [[package]] name = "aws-sigv4" -version = "1.1.4" +version = "1.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c371c6b0ac54d4605eb6f016624fb5c7c2925d315fdf600ac1bf21b19d5f1742" +checksum = "cc8db6904450bafe7473c6ca9123f88cc11089e41a025408f992db4e22d3be68" dependencies = [ "aws-credential-types", "aws-smithy-http", @@ -702,9 +729,9 @@ dependencies = [ [[package]] name = "aws-smithy-async" -version = "1.1.4" +version = "1.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "72ee2d09cce0ef3ae526679b522835d63e75fb427aca5413cd371e490d52dcc6" +checksum = "62220bc6e97f946ddd51b5f1361f78996e704677afc518a4ff66b7a72ea1378c" dependencies = [ "futures-util", "pin-project-lite", @@ -719,9 +746,9 @@ checksum = "755df81cd785192ee212110f3df2b478704ddd19e7ac91263d23286c26384c4d" [[package]] name = "aws-smithy-http" -version = "0.60.4" +version = "0.60.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dab56aea3cd9e1101a0a999447fb346afb680ab1406cebc44b32346e25b4117d" +checksum = "5c8bc3e8fdc6b8d07d976e301c02fe553f72a39b7a9fea820e023268467d7ab6" dependencies = [ "aws-smithy-runtime-api", "aws-smithy-types", @@ -729,7 +756,7 @@ dependencies = [ "bytes-utils", "futures-core", "http 0.2.11", - "http-body", + "http-body 0.4.6", "once_cell", "percent-encoding", "pin-project-lite", @@ -739,18 +766,18 @@ dependencies = [ [[package]] name = "aws-smithy-json" -version = "0.60.4" +version = "0.60.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fd3898ca6518f9215f62678870064398f00031912390efd03f1f6ef56d83aa8e" +checksum = "4683df9469ef09468dad3473d129960119a0d3593617542b7d52086c8486f2d6" dependencies = [ "aws-smithy-types", ] [[package]] name = "aws-smithy-query" -version = "0.60.4" +version = "0.60.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bda4b1dfc9810e35fba8a620e900522cd1bd4f9578c446e82f49d1ce41d2e9f9" +checksum = "f2fbd61ceb3fe8a1cb7352e42689cec5335833cd9f94103a61e98f9bb61c64bb" dependencies = [ "aws-smithy-types", "urlencoding", @@ -758,9 +785,9 @@ dependencies = [ [[package]] name = "aws-smithy-runtime" -version = "1.1.4" +version = "1.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fafdab38f40ad7816e7da5dec279400dd505160780083759f01441af1bbb10ea" +checksum = "d1ce695746394772e7000b39fe073095db6d45a862d0767dd5ad0ac0d7f8eb87" dependencies = [ "aws-smithy-async", "aws-smithy-http", @@ -770,7 +797,9 @@ dependencies = [ "fastrand", "h2", "http 0.2.11", - "http-body", + "http-body 0.4.6", + "http-body 1.0.1", + "httparse", "hyper", "hyper-rustls", "once_cell", @@ -783,14 +812,15 @@ dependencies = [ [[package]] name = "aws-smithy-runtime-api" -version = "1.1.4" +version = "1.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c18276dd28852f34b3bf501f4f3719781f4999a51c7bff1a5c6dc8c4529adc29" +checksum = "e086682a53d3aa241192aa110fa8dfce98f2f5ac2ead0de84d41582c7e8fdb96" dependencies = [ "aws-smithy-async", "aws-smithy-types", "bytes", "http 0.2.11", + "http 1.0.0", "pin-project-lite", "tokio", "tracing", @@ -799,16 +829,19 @@ dependencies = [ [[package]] name = "aws-smithy-types" -version = "1.1.4" +version = "1.2.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bb3e134004170d3303718baa2a4eb4ca64ee0a1c0a7041dca31b38be0fb414f3" +checksum = "03701449087215b5369c7ea17fef0dd5d24cb93439ec5af0c7615f58c3f22605" dependencies = [ "base64-simd", "bytes", "bytes-utils", "futures-core", "http 0.2.11", - "http-body", + "http 1.0.0", + "http-body 0.4.6", + "http-body 1.0.1", + "http-body-util", "itoa", "num-integer", "pin-project-lite", @@ -822,24 +855,23 @@ dependencies = [ [[package]] name = "aws-smithy-xml" -version = "0.60.4" +version = "0.60.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8604a11b25e9ecaf32f9aa56b9fe253c5e2f606a3477f0071e96d3155a5ed218" +checksum = "ab0b0166827aa700d3dc519f72f8b3a91c35d0b8d042dc5d643a91e6f80648fc" dependencies = [ "xmlparser", ] [[package]] name = "aws-types" -version = "1.1.4" +version = "1.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "789bbe008e65636fe1b6dbbb374c40c8960d1232b96af5ff4aec349f9c4accf4" +checksum = "5221b91b3e441e6675310829fd8984801b772cb1546ef6c0e54dec9f1ac13fef" dependencies = [ "aws-credential-types", "aws-smithy-async", "aws-smithy-runtime-api", "aws-smithy-types", - "http 0.2.11", "rustc_version 0.4.0", "tracing", ] @@ -856,7 +888,7 @@ dependencies = [ "bytes", "futures-util", "http 0.2.11", - "http-body", + "http-body 0.4.6", "hyper", "itoa", "matchit", @@ -886,7 +918,7 @@ dependencies = [ "bytes", "futures-util", "http 0.2.11", - "http-body", + "http-body 0.4.6", "mime", "rustversion", "tower-layer", @@ -902,7 +934,7 @@ dependencies = [ "bytes", "futures-util", "http 0.2.11", - "http-body", + "http-body 0.4.6", "hyper", "tokio", "tower-service", @@ -1016,13 +1048,11 @@ dependencies = [ [[package]] name = "blake2" -version = "0.9.2" +version = "0.10.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0a4e37d16930f5459780f5621038b6382b9bb37c19016f39fb6b5808d831f174" +checksum = "46502ad458c9a52b69d4d4d32775c788b7a1b85e8bc9d482d92250fc0e3f8efe" dependencies = [ - "crypto-mac", - "digest 0.9.0", - "opaque-debug", + "digest 0.10.7", ] [[package]] @@ -1060,7 +1090,7 @@ version = "0.2.17" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ba3569f383e8f1598449f1a423e72e99569137b47740b1da11ef19af3d5c3223" dependencies = [ - "lazy_static", + "lazy_static 1.4.0", "memchr", "regex-automata 0.1.10", ] @@ -1101,9 +1131,9 @@ dependencies = [ [[package]] name = "bytemuck" -version = "1.15.0" +version = "1.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5d6d68c57235a3a081186990eca2867354726650f42f7516ca50c28d6281fd15" +checksum = "94bbb0ad554ad961ddc5da507a12a29b14e4ae5bda06b19f575a3e6079d2e2ae" [[package]] name = "byteorder" @@ -1290,6 +1320,22 @@ version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "702fc72eb24e5a1e48ce58027a675bc24edd52096d5397d4aea7c6dd9eca0bd1" +[[package]] +name = "cobs" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "67ba02a97a2bd10f4b59b25c7973101c79642302776489e030cd13cdab09ed15" + +[[package]] +name = "codespan-reporting" +version = "0.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3538270d33cc669650c4b093848450d380def10c331d38c768e34cac80576e6e" +dependencies = [ + "termcolor", + "unicode-width", +] + [[package]] name = "cognito_srp" version = "0.1.2" @@ -1301,7 +1347,7 @@ dependencies = [ "digest 0.10.7", "hex", "hmac", - "lazy_static", + "lazy_static 1.4.0", "num-bigint", "rand", "regex", @@ -1373,21 +1419,6 @@ dependencies = [ "thiserror", ] -[[package]] -name = "color-eyre" -version = "0.5.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1f1885697ee8a177096d42f158922251a41973117f6d8a234cee94b9509157b7" -dependencies = [ - "backtrace", - "color-spantrace 0.1.6", - "eyre", - "indenter", - "once_cell", - "owo-colors 1.3.0", - "tracing-error 0.1.2", -] - [[package]] name = "color-eyre" version = "0.6.2" @@ -1395,24 +1426,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5a667583cca8c4f8436db8de46ea8233c42a7d9ae424a82d338f2e4675229204" dependencies = [ "backtrace", - "color-spantrace 0.2.1", + "color-spantrace", "eyre", "indenter", "once_cell", - "owo-colors 3.5.0", - "tracing-error 0.2.0", -] - -[[package]] -name = "color-spantrace" -version = "0.1.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6eee477a4a8a72f4addd4de416eb56d54bc307b284d6601bafdee1f4ea462d1" -dependencies = [ - "once_cell", - "owo-colors 1.3.0", - "tracing-core", - "tracing-error 0.1.2", + "owo-colors", + "tracing-error", ] [[package]] @@ -1422,9 +1441,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cd6be1b2a7e382e2b98b43b2adcca6bb0e465af0bdd38123873ae61eb17a72c2" dependencies = [ "once_cell", - "owo-colors 3.5.0", + "owo-colors", "tracing-core", - "tracing-error 0.2.0", + "tracing-error", ] [[package]] @@ -1451,7 +1470,7 @@ checksum = "23738e11972c7643e4ec947840fc463b6a571afcd3e735bdfce7d03c7a784aca" dependencies = [ "async-trait", "json5", - "lazy_static", + "lazy_static 1.4.0", "nom", "pathdiff", "ron", @@ -1469,7 +1488,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0e1f83fc076bd6dd27517eacdf25fef6c4dfe5f1d7448bafaaf3a26f13b5e4eb" dependencies = [ "encode_unicode", - "lazy_static", + "lazy_static 1.4.0", "libc", "windows-sys 0.52.0", ] @@ -1632,7 +1651,7 @@ dependencies = [ "criterion-plot", "csv", "itertools 0.10.5", - "lazy_static", + "lazy_static 1.4.0", "num-traits", "oorandom", "plotters", @@ -1727,16 +1746,6 @@ dependencies = [ "typenum", ] -[[package]] -name = "crypto-mac" -version = "0.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b584a330336237c1eecd3e94266efb216c56ed91225d634cb2991c5f3fd1aeab" -dependencies = [ - "generic-array", - "subtle", -] - [[package]] name = "csv" version = "1.3.0" @@ -1767,6 +1776,50 @@ dependencies = [ "cipher", ] +[[package]] +name = "cxx" +version = "1.0.128" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "54ccead7d199d584d139148b04b4a368d1ec7556a1d9ea2548febb1b9d49f9a4" +dependencies = [ + "cc", + "cxxbridge-flags", + "cxxbridge-macro", + "link-cplusplus", +] + +[[package]] +name = "cxx-build" +version = "1.0.128" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c77953e99f01508f89f55c494bfa867171ef3a6c8cea03d26975368f2121a5c1" +dependencies = [ + "cc", + "codespan-reporting", + "once_cell", + "proc-macro2", + "quote", + "scratch", + "syn 2.0.48", +] + +[[package]] +name = "cxxbridge-flags" +version = "1.0.128" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "65777e06cc48f0cb0152024c77d6cf9e4bdb4408e7b48bea993d42fa0f5b02b6" + +[[package]] +name = "cxxbridge-macro" +version = "1.0.128" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "98532a60dedaebc4848cb2cba5023337cc9ea3af16a5b062633fabfd9f18fb60" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.48", +] + [[package]] name = "darling" version = "0.13.4" @@ -1959,12 +2012,6 @@ version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0688c2a7f92e427f44895cd63841bff7b29f8d7a1648b9e7e07a4a365b2e1257" -[[package]] -name = "dotenv" -version = "0.15.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "77c90badedccf4105eca100756a0b1289e191f6fcbdadd3cee1d2f614f97da8f" - [[package]] name = "dotenvy" version = "0.15.7" @@ -2040,6 +2087,18 @@ dependencies = [ "zeroize", ] +[[package]] +name = "embedded-io" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ef1a6892d9eef45c8fa6b9e0086428a2cca8491aca8f787c534a3d6d0bcb3ced" + +[[package]] +name = "embedded-io" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "edd0f118536f44f5ccd48bcb8b111bdc3de888b58c74639dfb034a357d0f206d" + [[package]] name = "ena" version = "0.14.2" @@ -2581,6 +2640,30 @@ version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0ce7134b9999ecaf8bcd65542e436736ef32ddca1b3e06094cb6ec5755203b80" +[[package]] +name = "flame" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1fc2706461e1ee94f55cab2ed2e3d34ae9536cfa830358ef80acff1a3dacab30" +dependencies = [ + "lazy_static 0.2.11", + "serde", + "serde_derive", + "serde_json", + "thread-id", +] + +[[package]] +name = "flamer" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7693d9dd1ec1c54f52195dfe255b627f7cec7da33b679cd56de949e662b3db10" +dependencies = [ + "flame", + "quote", + "syn 2.0.48", +] + [[package]] name = "flate2" version = "1.0.28" @@ -2888,6 +2971,15 @@ dependencies = [ "ahash 0.7.7", ] +[[package]] +name = "hashbrown" +version = "0.13.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "43a3c133739dddd0d2990f9a4bdf8eb4b21ef50e4851ca85ab661199821d510e" +dependencies = [ + "ahash 0.8.7", +] + [[package]] name = "hashbrown" version = "0.14.3" @@ -3012,6 +3104,29 @@ dependencies = [ "pin-project-lite", ] +[[package]] +name = "http-body" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1efedce1fb8e6913f23e0c92de8e62cd5b772a67e7b3946df930a62566c93184" +dependencies = [ + "bytes", + "http 1.0.0", +] + +[[package]] +name = "http-body-util" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "793429d76616a256bcb62c2a2ec2bed781c8307e797e2598c50010f2bee2544f" +dependencies = [ + "bytes", + "futures-util", + "http 1.0.0", + "http-body 1.0.1", + "pin-project-lite", +] + [[package]] name = "httparse" version = "1.8.0" @@ -3052,7 +3167,7 @@ dependencies = [ "futures-util", "h2", "http 0.2.11", - "http-body", + "http-body 0.4.6", "httparse", "httpdate", "itoa", @@ -3265,6 +3380,15 @@ dependencies = [ "either", ] +[[package]] +name = "itertools" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "413ee7dfc52ee1a4949ceeb7dbc8a33f2d6c088194d9f922fb8318faf1f01186" +dependencies = [ + "either", +] + [[package]] name = "itoa" version = "1.0.10" @@ -3365,6 +3489,12 @@ version = "0.20.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3f35c735096c0293d313e8f2a641627472b83d01b937177fe76e5e2708d31e0d" +[[package]] +name = "lazy_static" +version = "0.2.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "76f033c7ad61445c5b347c7382dd1237847eb1bce590fe50365dcb33d546be73" + [[package]] name = "lazy_static" version = "1.4.0" @@ -3410,7 +3540,7 @@ checksum = "85c833ca1e66078851dba29046874e38f08b2c883700aa29a03ddd3b23814ee8" dependencies = [ "bitflags 2.4.2", "libc", - "redox_syscall", + "redox_syscall 0.4.1", ] [[package]] @@ -3424,6 +3554,15 @@ dependencies = [ "vcpkg", ] +[[package]] +name = "link-cplusplus" +version = "1.0.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9d240c6f7e1ba3a28b0249f774e6a9dd0175054b52dfbb61b16eb8505c3785c9" +dependencies = [ + "cc", +] + [[package]] name = "linked-hash-map" version = "0.5.6" @@ -3537,6 +3676,15 @@ dependencies = [ "libc", ] +[[package]] +name = "memmap2" +version = "0.9.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fd3f7eed9d3848f8b98834af67102b720745c4ec028fcd0aa0239277e7de374f" +dependencies = [ + "libc", +] + [[package]] name = "memoffset" version = "0.6.5" @@ -3690,7 +3838,7 @@ version = "0.2.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "07226173c32f2926027b63cce4bcd8076c3552846cbe7925f3aaffeac0a3b92e" dependencies = [ - "lazy_static", + "lazy_static 1.4.0", "libc", "log", "openssl", @@ -3785,7 +3933,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "dc84195820f291c7697304f3cbdadd1cb7199c0efc917ff5eafd71225c136151" dependencies = [ "byteorder", - "lazy_static", + "lazy_static 1.4.0", "libm", "num-integer", "num-iter", @@ -3917,12 +4065,6 @@ version = "11.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0ab1bc2a289d34bd04a330323ac98a1b4bc82c9d9fcb1e66b63caa84da26b575" -[[package]] -name = "opaque-debug" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "624a8340c38c1b80fd549087862da4ba43e08858af025b236e509b6649fc13d5" - [[package]] name = "open-fastrlp" version = "0.1.4" @@ -4110,12 +4252,6 @@ version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b15813163c1d831bf4a13c3610c05c0d03b39feb07f7e09fa234dac9b15aaf39" -[[package]] -name = "owo-colors" -version = "1.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2386b4ebe91c2f7f51082d4cefa145d030e33a1842a96b12e4885cc3c01f7a55" - [[package]] name = "owo-colors" version = "3.5.0" @@ -4184,7 +4320,7 @@ checksum = "4c42a9226546d68acdd9c0a280d17ce19bfe27a46bf68784e4066115788d008e" dependencies = [ "cfg-if", "libc", - "redox_syscall", + "redox_syscall 0.4.1", "smallvec", "windows-targets 0.48.5", ] @@ -4473,6 +4609,18 @@ version = "1.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7170ef9988bc169ba16dd36a7fa041e5c4cbeb6a35b76d4c03daded371eae7c0" +[[package]] +name = "postcard" +version = "1.0.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5f7f0a8d620d71c457dd1d47df76bb18960378da56af4527aaa10f515eee732e" +dependencies = [ + "cobs", + "embedded-io 0.4.0", + "embedded-io 0.6.1", + "serde", +] + [[package]] name = "postgres-docker-utils" version = "0.1.0" @@ -4595,7 +4743,7 @@ checksum = "449811d15fbdf5ceb5c1144416066429cf82316e2ec8ce0c1f6f8a02e7bbcf8c" dependencies = [ "cfg-if", "fnv", - "lazy_static", + "lazy_static 1.4.0", "memchr", "parking_lot", "protobuf", @@ -4609,7 +4757,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "31b476131c3c86cb68032fdc5cb6d5a1045e3e42d96b69fa599fd77701e1f5bf" dependencies = [ "bitflags 2.4.2", - "lazy_static", + "lazy_static 1.4.0", "num-traits", "rand", "rand_chacha", @@ -4742,6 +4890,12 @@ dependencies = [ "crossbeam-utils", ] +[[package]] +name = "redox_syscall" +version = "0.1.57" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "41cc0f7e4d5d4544e8861606a285bb08d3e70712ccc7d2b84d7c0ccfaf4b05ce" + [[package]] name = "redox_syscall" version = "0.4.1" @@ -4863,7 +5017,7 @@ dependencies = [ "futures-util", "h2", "http 0.2.11", - "http-body", + "http-body 0.4.6", "hyper", "hyper-rustls", "hyper-tls", @@ -5046,13 +5200,13 @@ dependencies = [ [[package]] name = "ruint" -version = "1.12.1" +version = "1.12.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f308135fef9fc398342da5472ce7c484529df23743fb7c734e0f3d472971e62" +checksum = "2c3cc4c2511671f327125da14133d0c5c5d137f006a1017a16f557bc85b16286" dependencies = [ "alloy-rlp", "ark-ff 0.3.0", - "ark-ff 0.4.2", + "ark-ff 0.4.1", "bytemuck", "bytes", "fastrlp", @@ -5073,9 +5227,9 @@ dependencies = [ [[package]] name = "ruint-macro" -version = "1.2.0" +version = "1.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f86854cf50259291520509879a5c294c3c9a4c334e9ff65071c51e42ef1e2343" +checksum = "48fd7bd8a6377e15ad9d42a8ec25371b94ddc67abe7c8b9127bec79bebaaae18" [[package]] name = "rust-ini" @@ -5248,6 +5402,12 @@ version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" +[[package]] +name = "scratch" +version = "1.0.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a3cf7c11c38cb994f3d40e8a8cde3bbd1f72a435e4c49e85d6553d8312306152" + [[package]] name = "scrypt" version = "0.10.0" @@ -5316,23 +5476,24 @@ dependencies = [ [[package]] name = "semaphore" version = "0.1.0" -source = "git+https://github.com/worldcoin/semaphore-rs?rev=5170c42292a4abc9e332742c8c392a480b075609#5170c42292a4abc9e332742c8c392a480b075609" +source = "git+https://github.com/worldcoin/semaphore-rs?rev=251e908d89d598c976901306bc29f06ab59e799d#251e908d89d598c976901306bc29f06ab59e799d" dependencies = [ "ark-bn254", "ark-circom", "ark-ec", - "ark-ff 0.3.0", + "ark-ff 0.4.1", "ark-groth16", "ark-relations", - "ark-std 0.3.0", + "ark-std 0.4.0", + "ark-zkey", "bincode", "bytemuck", - "color-eyre 0.6.2", - "enumset", + "color-eyre", + "ethabi", "ethers-core 2.0.13 (git+https://github.com/gakonst/ethers-rs)", "hex", "hex-literal", - "itertools 0.12.1", + "itertools 0.13.0", "mmap-rs", "num-bigint", "once_cell", @@ -5346,19 +5507,19 @@ dependencies = [ "sha2", "thiserror", "tiny-keccak", - "wasmer", + "witness", "zeroize", ] [[package]] name = "semaphore-depth-config" version = "0.1.0" -source = "git+https://github.com/worldcoin/semaphore-rs?rev=5170c42292a4abc9e332742c8c392a480b075609#5170c42292a4abc9e332742c8c392a480b075609" +source = "git+https://github.com/worldcoin/semaphore-rs?rev=251e908d89d598c976901306bc29f06ab59e799d#251e908d89d598c976901306bc29f06ab59e799d" [[package]] name = "semaphore-depth-macros" version = "0.1.0" -source = "git+https://github.com/worldcoin/semaphore-rs?rev=5170c42292a4abc9e332742c8c392a480b075609#5170c42292a4abc9e332742c8c392a480b075609" +source = "git+https://github.com/worldcoin/semaphore-rs?rev=251e908d89d598c976901306bc29f06ab59e799d#251e908d89d598c976901306bc29f06ab59e799d" dependencies = [ "itertools 0.10.5", "proc-macro2", @@ -5547,7 +5708,7 @@ version = "0.1.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f40ca3c46823713e0d4209592e8d6e826aa57e928f09752619fc696c499637f6" dependencies = [ - "lazy_static", + "lazy_static 1.4.0", ] [[package]] @@ -5582,7 +5743,7 @@ dependencies = [ "chrono", "clap 4.4.18", "config", - "dotenv", + "dotenvy", "ethers", "ethers-solc", "eyre", @@ -5594,7 +5755,7 @@ dependencies = [ "humantime-serde", "hyper", "indoc", - "lazy_static", + "lazy_static 1.4.0", "maplit", "micro-oz", "once_cell", @@ -6176,6 +6337,15 @@ dependencies = [ "winapi", ] +[[package]] +name = "termcolor" +version = "1.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "06794f8f6c5c898b3275aebefa6b8a1cb24cd2c6c79397ab15774837a0bc5755" +dependencies = [ + "winapi-util", +] + [[package]] name = "test-case" version = "3.3.1" @@ -6264,6 +6434,17 @@ dependencies = [ "syn 2.0.48", ] +[[package]] +name = "thread-id" +version = "3.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c7fbf4c9d56b320106cd64fd024dadfa0be7cb4706725fc44a7d7ce952d820c1" +dependencies = [ + "libc", + "redox_syscall 0.1.57", + "winapi", +] + [[package]] name = "thread_local" version = "1.1.7" @@ -6276,9 +6457,9 @@ dependencies = [ [[package]] name = "time" -version = "0.3.34" +version = "0.3.36" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c8248b6521bb14bc45b4067159b9b6ad792e2d6d754d6c41fb50e29fefe38749" +checksum = "5dfd88e563464686c916c7e46e623e520ddc6d79fa6641390f2e3fa86e83e885" dependencies = [ "deranged", "itoa", @@ -6297,9 +6478,9 @@ checksum = "ef927ca75afb808a4d64dd374f00a2adf8d0fcff8e7b184af886c3c87ec4a3f3" [[package]] name = "time-macros" -version = "0.2.17" +version = "0.2.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ba3a3ef41e6672a2f0f001392bb5dcd3ff0a9992d618ca761a11c3121547774" +checksum = "3f252a68540fde3a3877aeea552b832b40ab9a69e318efd078774a01ddee1ccf" dependencies = [ "num-conv", "time-core", @@ -6581,16 +6762,6 @@ dependencies = [ "valuable", ] -[[package]] -name = "tracing-error" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b4d7c0b83d4a500748fa5879461652b361edf5c9d51ede2a2ac03875ca185e24" -dependencies = [ - "tracing", - "tracing-subscriber 0.2.25", -] - [[package]] name = "tracing-error" version = "0.2.0" @@ -6656,8 +6827,6 @@ version = "0.2.25" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0e0d2eaa99c3c2e41547cfa109e910a68ea03823cccad4a0525dcbc9b01e8c71" dependencies = [ - "sharded-slab", - "thread_local", "tracing-core", ] @@ -6688,7 +6857,7 @@ version = "0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3a2c0ff408fe918a94c428a3f2ad04e4afd5c95bbc08fcf868eff750c15728a4" dependencies = [ - "lazy_static", + "lazy_static 1.4.0", "tracing-core", "tracing-subscriber 0.3.18", "tracing-test-macro", @@ -6700,7 +6869,7 @@ version = "0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "258bc1c4f8e2e73a977812ab339d503e6feeb92700f6d07a6de4d321522d5c08" dependencies = [ - "lazy_static", + "lazy_static 1.4.0", "quote", "syn 1.0.109", ] @@ -7101,9 +7270,9 @@ checksum = "3f98f010978c244db431b392aeab0661df7ea0822343334f8f2a920763548e45" dependencies = [ "backtrace", "enumset", - "lazy_static", + "lazy_static 1.4.0", "loupe", - "memmap2", + "memmap2 0.5.10", "more-asserts", "rustc-demangle", "serde", @@ -7218,7 +7387,7 @@ dependencies = [ "corosensei", "enum-iterator", "indexmap 1.9.3", - "lazy_static", + "lazy_static 1.4.0", "libc", "loupe", "mach", @@ -7555,6 +7724,26 @@ dependencies = [ "windows-sys 0.48.0", ] +[[package]] +name = "witness" +version = "0.2.0" +source = "git+https://github.com/philsippl/circom-witness-rs#fed7d591a4a6adfde371d3dac3fde23d755bcd39" +dependencies = [ + "ark-bn254", + "ark-ff 0.4.1", + "ark-serialize 0.4.1", + "byteorder", + "cxx", + "cxx-build", + "eyre", + "hex", + "postcard", + "rand", + "ruint", + "serde", + "serde_json", +] + [[package]] name = "ws_stream_wasm" version = "0.7.4" diff --git a/Cargo.toml b/Cargo.toml index 8a38b48d..17a22371 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -29,7 +29,7 @@ axum = "0.6.4" axum-server = "0.4.4" bytes = "1.4.0" chrono = { version = "0.4.19", features = ["serde"] } -clap = { version = "4.0", features = ["derive"] } +clap = { version = "4.0", features = ["derive", "env"] } telemetry-batteries = { git = "https://github.com/worldcoin/telemetry-batteries.git", rev = "802a4f39f358e077b11c8429b4c65f3e45b85959" } config = "0.13.4" ethers = { version = "2.0.10", features = ["ws", "ipc", "openssl", "abigen"] } @@ -48,8 +48,8 @@ oz-api = { path = "crates/oz-api" } # We need upstream PR#465 to fix #272. prometheus = "0.13.3" reqwest = { version = "0.11.18", features = ["json"] } -ruint = { version = "1.12.1", features = ["primitive-types", "sqlx"] } -semaphore = { git = "https://github.com/worldcoin/semaphore-rs", rev = "5170c42292a4abc9e332742c8c392a480b075609", features = [ +ruint = { version = "1.12.3", features = ["primitive-types", "sqlx"] } +semaphore = { git = "https://github.com/worldcoin/semaphore-rs", rev = "251e908d89d598c976901306bc29f06ab59e799d", features = [ "depth_30", ] } serde = { version = "1.0", features = ["derive"] } @@ -79,16 +79,16 @@ tracing-futures = "0.2" tx-sitter-client = { path = "crates/tx-sitter-client" } url = { version = "2.2", features = ["serde"] } zeroize = "1.6.0" +dotenvy = "0.15.0" [dev-dependencies] -dotenv = "0.15.0" hex = "0.4.3" lazy_static = "1.4.0" maplit = "1.0.2" micro-oz = { path = "crates/micro-oz" } postgres-docker-utils = { path = "crates/postgres-docker-utils" } regex = { version = "1.7.1", features = ["std"] } -semaphore = { git = "https://github.com/worldcoin/semaphore-rs", rev = "5170c42292a4abc9e332742c8c392a480b075609", features = [ +semaphore = { git = "https://github.com/worldcoin/semaphore-rs", rev = "251e908d89d598c976901306bc29f06ab59e799d", features = [ "depth_20", ] } similar-asserts = "1.5.0" diff --git a/crates/cognitoauth/Cargo.toml b/crates/cognitoauth/Cargo.toml index 7c13ec7d..3addcb12 100644 --- a/crates/cognitoauth/Cargo.toml +++ b/crates/cognitoauth/Cargo.toml @@ -11,9 +11,9 @@ readme = "README.md" rust-version = "1.56" [dependencies] -aws-config = "1.0.3" -aws-sdk-cognitoidentityprovider = "1.4.0" -aws-smithy-client = { version = "0.60.0", features = [] } +aws-config = "1.5.6" +aws-sdk-cognitoidentityprovider = "1.51.0" +aws-smithy-client = { version = "0.60.3", features = [] } cognito_srp = "0.1.1" thiserror = "1.0.32" tracing = "0.1" diff --git a/rust-toolchain.toml b/rust-toolchain.toml index 940f6aea..1de01fa4 100644 --- a/rust-toolchain.toml +++ b/rust-toolchain.toml @@ -1,2 +1,2 @@ [toolchain] -channel = "nightly-2024-02-05" +channel = "1.81.0" diff --git a/src/bin/tool.rs b/src/bin/tool.rs new file mode 100644 index 00000000..7b3eccfa --- /dev/null +++ b/src/bin/tool.rs @@ -0,0 +1,293 @@ +use std::path::{Path, PathBuf}; + +use anyhow::Context; +use clap::Parser; +use ethers::core::rand::{thread_rng, RngCore}; +use semaphore::identity::Identity; +use semaphore::poseidon_tree::Proof; +use semaphore::Field; +use serde::{Deserialize, Serialize}; +use signup_sequencer::server::data::{ + InclusionProofRequest, InclusionProofResponse, InsertCommitmentRequest, + VerifySemaphoreProofRequest, VerifySemaphoreProofResponse, +}; + +#[derive(Debug, Parser)] +struct Args { + #[clap(subcommand)] + subcommand: Command, + + #[clap( + short, + long, + env, + default_value = "https://signup-orb-ethereum.crypto.worldcoin.dev" + )] + sequencer_url: String, + + #[clap(long, env)] + basic_auth_username: Option, + + #[clap(long, env)] + basic_auth_password: Option, + + /// The path to the file that will be used to store the identity + #[clap(long, env)] + identity_file: Option, + + /// The path to the file that will be used to store the inclusion proof + #[clap(long, env)] + inclusion_proof_file: Option, + + /// The path to the file that will be used to store the semaphore proof + #[clap(long, env)] + semaphore_proof_file: Option, +} + +#[derive(Debug, Parser)] +enum Command { + /// Generated an identity + #[clap(visible_alias = "g")] + Generate, + /// Prove inclusion + #[clap(visible_alias = "i")] + #[clap(visible_alias = "ip")] + InclusionProof(InclusionProofCmd), + /// Verify a semaphore proof + #[clap(visible_alias = "v")] + #[clap(visible_alias = "vp")] + #[clap(visible_alias = "pv")] + VerifyProof(VerifyProofCmd), + /// Insert an identity + #[clap(visible_alias = "ii")] + InsertIdentity(InsertIdentityCmd), + + /// Generate an arbitrary proof + #[clap(visible_alias = "pg")] + #[clap(visible_alias = "gp")] + GenerateProof(GenerateProofCmd), +} + +#[derive(Debug, Parser)] +struct InclusionProofCmd { + #[clap(short, long)] + commitment: Option, +} + +#[derive(Debug, Parser)] +struct InsertIdentityCmd { + #[clap(short, long)] + commitment: Option, +} + +#[derive(Debug, Parser)] +struct GenerateProofCmd { + #[clap(short, long)] + external_nullifier_hash: Field, + + #[clap(short, long)] + signal_hash: Field, +} + +#[derive(Debug, Parser)] +struct VerifyProofCmd {} + +#[tokio::main] +async fn main() -> anyhow::Result<()> { + dotenvy::dotenv().ok(); + + let args = Args::parse(); + + match args.subcommand { + Command::Generate => { + let mut rng = thread_rng(); + + let mut secret = [0_u8; 64]; + rng.fill_bytes(&mut secret); + + let identity = Identity::from_secret(&mut secret, None); + + let commitment = identity.commitment(); + + if let Some(path) = args.identity_file { + save_identity(path, &identity).await?; + } else { + println!("Nullifier: {}", identity.nullifier); + println!("Identity: {}", identity.trapdoor); + } + + println!("{}", commitment); + } + Command::InsertIdentity(x) => { + let basic_auth_username = args + .basic_auth_username + .context("Missing basic auth username")?; + let basic_auth_password = args + .basic_auth_password + .context("Missing basic auth password")?; + + let identity_commitment = if let Some(commitment) = x.commitment { + commitment + } else if let Some(identity_path) = args.identity_file.as_ref() { + let identity = load_identity(identity_path).await?; + + identity.commitment() + } else { + return Err(anyhow::anyhow!( + "Missing commitment - must set either --commitment or --identity" + )); + }; + + let client = reqwest::Client::new(); + + let response = client + .post(&format!("{}/insertIdentity", args.sequencer_url)) + .basic_auth(basic_auth_username, Some(basic_auth_password)) + .json(&InsertCommitmentRequest { + identity_commitment, + }) + .send() + .await?; + + let _response = response.error_for_status()?; + } + Command::InclusionProof(x) => { + let identity_commitment = if let Some(commitment) = x.commitment { + commitment + } else if let Some(identity_path) = args.identity_file.as_ref() { + let identity = load_identity(identity_path).await?; + + identity.commitment() + } else { + return Err(anyhow::anyhow!( + "Missing commitment - must set either --commitment or --identity" + )); + }; + + let client = reqwest::Client::new(); + + let response = client + .post(&format!("{}/inclusionProof", args.sequencer_url)) + .json(&InclusionProofRequest { + identity_commitment, + }) + .send() + .await?; + + let response = response.error_for_status()?; + + let response: InclusionProofResponse = response.json().await?; + + let proof: Proof = response.0.proof.context("Missing proof")?; + let proof_serialized = serde_json::to_string_pretty(&proof)?; + + if let Some(inclusion_proof_file) = args.inclusion_proof_file.as_ref() { + tokio::fs::write(inclusion_proof_file, &proof_serialized).await?; + } + + println!("{}", proof_serialized); + } + Command::VerifyProof(_x) => { + let proof_request = tokio::fs::read_to_string( + args.semaphore_proof_file + .as_ref() + .context("Missing semaphore proof")?, + ) + .await?; + let proof_request: VerifySemaphoreProofRequest = serde_json::from_str(&proof_request)?; + + let client = reqwest::Client::new(); + + let response = client + .post(&format!("{}/verifySemaphoreProof", args.sequencer_url)) + .json(&proof_request) + .send() + .await?; + + let response = response.error_for_status()?; + + let response: VerifySemaphoreProofResponse = response.json().await?; + let response_serialized = serde_json::to_string_pretty(&response)?; + + println!("{}", response_serialized); + } + Command::GenerateProof(x) => { + let identity = + load_identity(args.identity_file.as_ref().context("Missing --identity")?).await?; + + let client = reqwest::Client::new(); + + let response = client + .post(&format!("{}/inclusionProof", args.sequencer_url)) + .json(&InclusionProofRequest { + identity_commitment: identity.commitment(), + }) + .send() + .await?; + + let response = response.error_for_status()?; + + let response: InclusionProofResponse = response.json().await?; + + let root = response.0.root.context("Missing root")?; + + let nullifier_hash = + semaphore::protocol::generate_nullifier_hash(&identity, x.external_nullifier_hash); + + let proof = semaphore::protocol::generate_proof( + &identity, + &response.0.proof.context("Missing proof")?, + x.external_nullifier_hash, + x.signal_hash, + )?; + + let semaphore_request = VerifySemaphoreProofRequest { + root, + signal_hash: x.signal_hash, + nullifier_hash, + external_nullifier_hash: x.external_nullifier_hash, + proof, + }; + + let semaphore_request_serialized = serde_json::to_string_pretty(&semaphore_request)?; + + if let Some(semaphore_proof_file) = args.semaphore_proof_file.as_ref() { + tokio::fs::write(semaphore_proof_file, &semaphore_request_serialized).await?; + } + + println!("{}", semaphore_request_serialized); + } + } + + Ok(()) +} + +#[derive(Debug, Clone, Serialize, Deserialize)] +struct SerializedIdentity { + nullifier: Field, + trapdoor: Field, +} + +async fn load_identity(path: impl AsRef) -> anyhow::Result { + let identity = tokio::fs::read_to_string(path.as_ref()).await?; + + let identity: SerializedIdentity = serde_json::from_str(&identity)?; + + Ok(Identity { + nullifier: identity.nullifier, + trapdoor: identity.trapdoor, + }) +} + +async fn save_identity(path: impl AsRef, identity: &Identity) -> anyhow::Result<()> { + let identity = SerializedIdentity { + nullifier: identity.nullifier, + trapdoor: identity.trapdoor, + }; + + let identity = serde_json::to_string_pretty(&identity)?; + + tokio::fs::write(path, identity).await?; + + Ok(()) +} diff --git a/supply-chain/config.toml b/supply-chain/config.toml index 6921af04..9681d8ff 100644 --- a/supply-chain/config.toml +++ b/supply-chain/config.toml @@ -22,9 +22,6 @@ url = "https://raw.githubusercontent.com/mozilla/supply-chain/main/audits.toml" [imports.zcash] url = "https://raw.githubusercontent.com/zcash/rust-ecosystem/main/supply-chain/audits.toml" -[policy.ark-groth16] -audit-as-crates-io = true - [policy."ethers-core:2.0.13@git:4d267f763a19e42a09e92741e1489c123f852f53"] audit-as-crates-io = true @@ -65,15 +62,15 @@ version = "0.1.1" criteria = "safe-to-deploy" [[exemptions.ark-bn254]] -version = "0.3.0" +version = "0.4.0" criteria = "safe-to-deploy" [[exemptions.ark-crypto-primitives]] -version = "0.3.0" +version = "0.4.0" criteria = "safe-to-deploy" [[exemptions.ark-ec]] -version = "0.3.0" +version = "0.4.1" criteria = "safe-to-deploy" [[exemptions.ark-ff]] @@ -81,7 +78,7 @@ version = "0.3.0" criteria = "safe-to-deploy" [[exemptions.ark-ff]] -version = "0.4.2" +version = "0.4.1" criteria = "safe-to-deploy" [[exemptions.ark-ff-asm]] @@ -101,15 +98,15 @@ version = "0.4.2" criteria = "safe-to-deploy" [[exemptions.ark-groth16]] -version = "0.3.0@git:765817f77a6e14964c6f264d565b18676b11bd59" +version = "0.4.0" criteria = "safe-to-deploy" [[exemptions.ark-poly]] -version = "0.3.0" +version = "0.4.1" criteria = "safe-to-deploy" [[exemptions.ark-relations]] -version = "0.3.0" +version = "0.4.0" criteria = "safe-to-deploy" [[exemptions.ark-serialize]] @@ -117,15 +114,15 @@ version = "0.3.0" criteria = "safe-to-deploy" [[exemptions.ark-serialize]] -version = "0.4.2" +version = "0.4.1" criteria = "safe-to-deploy" [[exemptions.ark-serialize-derive]] -version = "0.3.0" +version = "0.4.2" criteria = "safe-to-deploy" [[exemptions.ark-snark]] -version = "0.3.0" +version = "0.4.0" criteria = "safe-to-deploy" [[exemptions.ark-std]] @@ -161,39 +158,39 @@ version = "1.1.2" criteria = "safe-to-deploy" [[exemptions.aws-config]] -version = "1.1.4" +version = "1.5.6" criteria = "safe-to-deploy" [[exemptions.aws-credential-types]] -version = "1.1.4" +version = "1.2.1" criteria = "safe-to-deploy" [[exemptions.aws-runtime]] -version = "1.1.4" +version = "1.4.3" criteria = "safe-to-deploy" [[exemptions.aws-sdk-cognitoidentityprovider]] -version = "1.14.0" +version = "1.51.0" criteria = "safe-to-deploy" [[exemptions.aws-sdk-sso]] -version = "1.12.0" +version = "1.43.0" criteria = "safe-to-deploy" [[exemptions.aws-sdk-ssooidc]] -version = "1.12.0" +version = "1.44.0" criteria = "safe-to-deploy" [[exemptions.aws-sdk-sts]] -version = "1.12.0" +version = "1.43.0" criteria = "safe-to-deploy" [[exemptions.aws-sigv4]] -version = "1.1.4" +version = "1.2.4" criteria = "safe-to-deploy" [[exemptions.aws-smithy-async]] -version = "1.1.4" +version = "1.2.1" criteria = "safe-to-deploy" [[exemptions.aws-smithy-client]] @@ -201,35 +198,35 @@ version = "0.60.3" criteria = "safe-to-deploy" [[exemptions.aws-smithy-http]] -version = "0.60.4" +version = "0.60.11" criteria = "safe-to-deploy" [[exemptions.aws-smithy-json]] -version = "0.60.4" +version = "0.60.7" criteria = "safe-to-deploy" [[exemptions.aws-smithy-query]] -version = "0.60.4" +version = "0.60.7" criteria = "safe-to-deploy" [[exemptions.aws-smithy-runtime]] -version = "1.1.4" +version = "1.7.1" criteria = "safe-to-deploy" [[exemptions.aws-smithy-runtime-api]] -version = "1.1.4" +version = "1.7.2" criteria = "safe-to-deploy" [[exemptions.aws-smithy-types]] -version = "1.1.4" +version = "1.2.6" criteria = "safe-to-deploy" [[exemptions.aws-smithy-xml]] -version = "0.60.4" +version = "0.60.9" criteria = "safe-to-deploy" [[exemptions.aws-types]] -version = "1.1.4" +version = "1.3.3" criteria = "safe-to-deploy" [[exemptions.axum]] @@ -268,16 +265,12 @@ criteria = "safe-to-deploy" version = "1.3.3" criteria = "safe-to-deploy" -[[exemptions.bitflags]] -version = "1.3.2" -criteria = "safe-to-deploy" - [[exemptions.bitvec]] version = "1.0.1" criteria = "safe-to-deploy" [[exemptions.blake2]] -version = "0.9.2" +version = "0.10.6" criteria = "safe-to-deploy" [[exemptions.bollard-stubs]] @@ -304,10 +297,6 @@ criteria = "safe-to-deploy" version = "0.6.12" criteria = "safe-to-deploy" -[[exemptions.byteorder]] -version = "1.4.3" -criteria = "safe-to-deploy" - [[exemptions.bytes]] version = "1.4.0" criteria = "safe-to-deploy" @@ -368,18 +357,10 @@ criteria = "safe-to-deploy" version = "0.8.7" criteria = "safe-to-deploy" -[[exemptions.color-eyre]] -version = "0.5.11" -criteria = "safe-to-deploy" - [[exemptions.color-eyre]] version = "0.6.2" criteria = "safe-to-deploy" -[[exemptions.color-spantrace]] -version = "0.1.6" -criteria = "safe-to-deploy" - [[exemptions.color-spantrace]] version = "0.2.1" criteria = "safe-to-deploy" @@ -456,10 +437,6 @@ criteria = "safe-to-deploy" version = "0.5.5" criteria = "safe-to-deploy" -[[exemptions.crypto-mac]] -version = "0.8.0" -criteria = "safe-to-deploy" - [[exemptions.csv]] version = "1.3.0" criteria = "safe-to-deploy" @@ -504,10 +481,6 @@ criteria = "safe-to-deploy" version = "0.7.8" criteria = "safe-to-deploy" -[[exemptions.deranged]] -version = "0.3.10" -criteria = "safe-to-deploy" - [[exemptions.derivative]] version = "2.2.0" criteria = "safe-to-deploy" @@ -536,10 +509,6 @@ criteria = "safe-to-deploy" version = "0.3.0" criteria = "safe-to-deploy" -[[exemptions.dotenv]] -version = "0.15.0" -criteria = "safe-to-run" - [[exemptions.dotenvy]] version = "0.15.7" criteria = "safe-to-deploy" @@ -556,6 +525,10 @@ criteria = "safe-to-deploy" version = "0.13.8" criteria = "safe-to-deploy" +[[exemptions.embedded-io]] +version = "0.6.1" +criteria = "safe-to-deploy" + [[exemptions.ena]] version = "0.14.2" criteria = "safe-to-deploy" @@ -688,6 +661,14 @@ criteria = "safe-to-deploy" version = "0.4.2" criteria = "safe-to-deploy" +[[exemptions.flame]] +version = "0.2.2" +criteria = "safe-to-deploy" + +[[exemptions.flamer]] +version = "0.5.0" +criteria = "safe-to-deploy" + [[exemptions.flate2]] version = "1.0.24" criteria = "safe-to-deploy" @@ -704,22 +685,10 @@ criteria = "safe-to-deploy" version = "2.0.0" criteria = "safe-to-deploy" -[[exemptions.futures]] -version = "0.3.30" -criteria = "safe-to-deploy" - -[[exemptions.futures-executor]] -version = "0.3.30" -criteria = "safe-to-deploy" - [[exemptions.futures-intrusive]] version = "0.5.0" criteria = "safe-to-deploy" -[[exemptions.futures-io]] -version = "0.3.30" -criteria = "safe-to-deploy" - [[exemptions.futures-locks]] version = "0.7.1" criteria = "safe-to-deploy" @@ -856,6 +825,10 @@ criteria = "safe-to-deploy" version = "0.11.0" criteria = "safe-to-deploy" +[[exemptions.itertools]] +version = "0.13.0" +criteria = "safe-to-deploy" + [[exemptions.jobserver]] version = "0.1.27" criteria = "safe-to-deploy" @@ -884,6 +857,10 @@ criteria = "safe-to-deploy" version = "0.20.0" criteria = "safe-to-deploy" +[[exemptions.lazy_static]] +version = "0.2.11" +criteria = "safe-to-deploy" + [[exemptions.libloading]] version = "0.7.4" criteria = "safe-to-deploy" @@ -940,6 +917,10 @@ criteria = "safe-to-deploy" version = "0.5.10" criteria = "safe-to-deploy" +[[exemptions.memmap2]] +version = "0.9.5" +criteria = "safe-to-deploy" + [[exemptions.memoffset]] version = "0.6.5" criteria = "safe-to-deploy" @@ -992,14 +973,6 @@ criteria = "safe-to-deploy" version = "0.4.5" criteria = "safe-to-deploy" -[[exemptions.num_enum]] -version = "0.7.2" -criteria = "safe-to-deploy" - -[[exemptions.num_enum_derive]] -version = "0.7.2" -criteria = "safe-to-deploy" - [[exemptions.object]] version = "0.28.4" criteria = "safe-to-deploy" @@ -1064,10 +1037,6 @@ criteria = "safe-to-deploy" version = "0.5.1" criteria = "safe-to-deploy" -[[exemptions.owo-colors]] -version = "1.3.0" -criteria = "safe-to-deploy" - [[exemptions.owo-colors]] version = "3.5.0" criteria = "safe-to-deploy" @@ -1188,8 +1157,8 @@ criteria = "safe-to-deploy" version = "1.6.0" criteria = "safe-to-deploy" -[[exemptions.powerfmt]] -version = "0.2.0" +[[exemptions.postcard]] +version = "1.0.10" criteria = "safe-to-deploy" [[exemptions.ppv-lite86]] @@ -1252,6 +1221,10 @@ criteria = "safe-to-deploy" version = "11.0.1" criteria = "safe-to-deploy" +[[exemptions.redox_syscall]] +version = "0.1.57" +criteria = "safe-to-deploy" + [[exemptions.redox_syscall]] version = "0.4.1" criteria = "safe-to-deploy" @@ -1341,11 +1314,11 @@ version = "0.9.6" criteria = "safe-to-deploy" [[exemptions.ruint]] -version = "1.12.1" +version = "1.12.3" criteria = "safe-to-deploy" [[exemptions.ruint-macro]] -version = "1.2.0" +version = "1.2.1" criteria = "safe-to-deploy" [[exemptions.rust-ini]] @@ -1592,6 +1565,10 @@ criteria = "safe-to-deploy" version = "0.7.0" criteria = "safe-to-deploy" +[[exemptions.termcolor]] +version = "1.4.1" +criteria = "safe-to-deploy" + [[exemptions.test-case]] version = "3.3.1" criteria = "safe-to-deploy" @@ -1616,12 +1593,12 @@ criteria = "safe-to-deploy" version = "0.11.0" criteria = "safe-to-deploy" -[[exemptions.time]] -version = "0.3.34" +[[exemptions.thread-id]] +version = "3.3.0" criteria = "safe-to-deploy" -[[exemptions.time-macros]] -version = "0.2.17" +[[exemptions.time]] +version = "0.1.44" criteria = "safe-to-deploy" [[exemptions.tiny-keccak]] @@ -1676,10 +1653,6 @@ criteria = "safe-to-deploy" version = "0.1.30" criteria = "safe-to-deploy" -[[exemptions.tracing-error]] -version = "0.1.2" -criteria = "safe-to-deploy" - [[exemptions.tracing-error]] version = "0.2.0" criteria = "safe-to-deploy" @@ -1844,10 +1817,6 @@ criteria = "safe-to-deploy" version = "0.2.4" criteria = "safe-to-deploy" -[[exemptions.webpki-roots]] -version = "0.25.4" -criteria = "safe-to-deploy" - [[exemptions.which]] version = "4.3.0" criteria = "safe-to-deploy" diff --git a/supply-chain/imports.lock b/supply-chain/imports.lock index fe1bfb5d..3e978c38 100644 --- a/supply-chain/imports.lock +++ b/supply-chain/imports.lock @@ -142,6 +142,34 @@ when = "2022-04-11" user-id = 73222 user-login = "wasmtime-publish" +[[publisher.cxx]] +version = "1.0.128" +when = "2024-08-30" +user-id = 3618 +user-login = "dtolnay" +user-name = "David Tolnay" + +[[publisher.cxx-build]] +version = "1.0.128" +when = "2024-08-30" +user-id = 3618 +user-login = "dtolnay" +user-name = "David Tolnay" + +[[publisher.cxxbridge-flags]] +version = "1.0.128" +when = "2024-08-30" +user-id = 3618 +user-login = "dtolnay" +user-name = "David Tolnay" + +[[publisher.cxxbridge-macro]] +version = "1.0.128" +when = "2024-08-30" +user-id = 3618 +user-login = "dtolnay" +user-name = "David Tolnay" + [[publisher.encoding_rs]] version = "0.8.33" when = "2023-08-23" @@ -170,6 +198,13 @@ user-id = 2915 user-login = "Amanieu" user-name = "Amanieu d'Antras" +[[publisher.hashbrown]] +version = "0.13.2" +when = "2023-01-12" +user-id = 2915 +user-login = "Amanieu" +user-name = "Amanieu d'Antras" + [[publisher.hashbrown]] version = "0.14.3" when = "2023-11-26" @@ -198,6 +233,13 @@ user-id = 359 user-login = "seanmonstar" user-name = "Sean McArthur" +[[publisher.http-body]] +version = "1.0.1" +when = "2024-07-12" +user-id = 359 +user-login = "seanmonstar" +user-name = "Sean McArthur" + [[publisher.httparse]] version = "1.8.0" when = "2022-08-30" @@ -289,6 +331,13 @@ user-id = 2915 user-login = "Amanieu" user-name = "Amanieu d'Antras" +[[publisher.scratch]] +version = "1.0.7" +when = "2023-07-15" +user-id = 3618 +user-login = "dtolnay" +user-name = "David Tolnay" + [[publisher.serde]] version = "1.0.196" when = "2024-01-26" @@ -644,14 +693,14 @@ who = "Nick Fitzgerald " criteria = "safe-to-deploy" user-id = 696 # Nick Fitzgerald (fitzgen) start = "2019-03-16" -end = "2024-03-10" +end = "2025-07-30" [[audits.bytecodealliance.wildcard-audits.cranelift-bforest]] who = "Bobby Holley " criteria = "safe-to-deploy" user-id = 73222 # wasmtime-publish start = "2021-10-29" -end = "2024-06-26" +end = "2025-07-30" notes = "The Bytecode Alliance is the author of this crate." [[audits.bytecodealliance.wildcard-audits.cranelift-codegen]] @@ -659,7 +708,7 @@ who = "Bobby Holley " criteria = "safe-to-deploy" user-id = 73222 # wasmtime-publish start = "2021-10-29" -end = "2024-06-26" +end = "2025-07-30" notes = "The Bytecode Alliance is the author of this crate." [[audits.bytecodealliance.wildcard-audits.cranelift-codegen-meta]] @@ -667,7 +716,7 @@ who = "Bobby Holley " criteria = "safe-to-deploy" user-id = 73222 # wasmtime-publish start = "2021-10-29" -end = "2024-06-26" +end = "2025-07-30" notes = "The Bytecode Alliance is the author of this crate." [[audits.bytecodealliance.wildcard-audits.cranelift-codegen-shared]] @@ -675,7 +724,7 @@ who = "Bobby Holley " criteria = "safe-to-deploy" user-id = 73222 # wasmtime-publish start = "2021-10-29" -end = "2024-06-26" +end = "2025-07-30" notes = "The Bytecode Alliance is the author of this crate." [[audits.bytecodealliance.wildcard-audits.cranelift-entity]] @@ -683,7 +732,7 @@ who = "Bobby Holley " criteria = "safe-to-deploy" user-id = 73222 # wasmtime-publish start = "2021-10-29" -end = "2024-06-26" +end = "2025-07-30" notes = "The Bytecode Alliance is the author of this crate." [[audits.bytecodealliance.wildcard-audits.cranelift-frontend]] @@ -691,7 +740,7 @@ who = "Bobby Holley " criteria = "safe-to-deploy" user-id = 73222 # wasmtime-publish start = "2021-10-29" -end = "2024-06-26" +end = "2025-07-30" notes = "The Bytecode Alliance is the author of this crate." [[audits.bytecodealliance.wildcard-audits.wasm-encoder]] @@ -699,7 +748,7 @@ who = "Alex Crichton " criteria = "safe-to-deploy" user-id = 1 # Alex Crichton (alexcrichton) start = "2020-12-11" -end = "2024-04-14" +end = "2025-07-30" notes = """ This is a Bytecode Alliance authored crate maintained in the `wasm-tools` repository of which I'm one of the primary maintainers and publishers for. @@ -712,7 +761,7 @@ who = "Alex Crichton " criteria = "safe-to-deploy" user-id = 1 # Alex Crichton (alexcrichton) start = "2019-10-16" -end = "2024-04-14" +end = "2025-07-30" notes = """ This is a Bytecode Alliance authored crate maintained in the `wasm-tools` repository of which I'm one of the primary maintainers and publishers for. @@ -725,7 +774,7 @@ who = "Alex Crichton " criteria = "safe-to-deploy" user-id = 1 # Alex Crichton (alexcrichton) start = "2019-10-18" -end = "2024-04-14" +end = "2025-07-30" notes = """ This is a Bytecode Alliance authored crate maintained in the `wasm-tools` repository of which I'm one of the primary maintainers and publishers for. @@ -819,6 +868,18 @@ criteria = "safe-to-deploy" version = "1.0.0" notes = "I am the author of this crate." +[[audits.bytecodealliance.audits.cobs]] +who = "Alex Crichton " +criteria = "safe-to-deploy" +version = "0.2.3" +notes = "No `unsafe` code in the crate and no usage of `std`" + +[[audits.bytecodealliance.audits.codespan-reporting]] +who = "Jamey Sharp " +criteria = "safe-to-deploy" +version = "0.11.1" +notes = "This library uses `forbid(unsafe_code)` and has no filesystem or network I/O." + [[audits.bytecodealliance.audits.core-foundation-sys]] who = "Dan Gohman " criteria = "safe-to-deploy" @@ -838,6 +899,12 @@ who = "Benjamin Bouvier " criteria = "safe-to-deploy" delta = "0.9.0 -> 0.10.3" +[[audits.bytecodealliance.audits.embedded-io]] +who = "Alex Crichton " +criteria = "safe-to-deploy" +version = "0.4.0" +notes = "No `unsafe` code and only uses `std` in ways one would expect the crate to do so." + [[audits.bytecodealliance.audits.errno]] who = "Dan Gohman " criteria = "safe-to-deploy" @@ -888,12 +955,35 @@ criteria = "safe-to-deploy" version = "0.3.27" notes = "Unsafe used to implement a concurrency primitive AtomicWaker. Well-commented and not obviously incorrect. Like my other audits of these concurrency primitives inside the futures family, I couldn't certify that it is correct without formal methods, but that is out of scope for this vetting." +[[audits.bytecodealliance.audits.futures-executor]] +who = "Pat Hickey " +criteria = "safe-to-deploy" +version = "0.3.27" +notes = "Unsafe used to implement the unpark mutex, which is well commented and not obviously incorrect. Like with futures-channel I wouldn't be able to certify it as correct without formal methods." + +[[audits.bytecodealliance.audits.futures-io]] +who = "Pat Hickey " +criteria = "safe-to-deploy" +version = "0.3.27" + [[audits.bytecodealliance.audits.heck]] who = "Alex Crichton " criteria = "safe-to-deploy" version = "0.4.0" notes = "Contains `forbid_unsafe` and only uses `std::fmt` from the standard library. Otherwise only contains string manipulation." +[[audits.bytecodealliance.audits.http-body-util]] +who = "Pat Hickey " +criteria = "safe-to-deploy" +version = "0.1.0-rc.2" +notes = "only one use of unsafe related to pin projection. unclear to me why pin_project! is used in many modules of the project, but the expanded output of that macro is inlined in either.rs" + +[[audits.bytecodealliance.audits.http-body-util]] +who = "Alex Crichton " +criteria = "safe-to-deploy" +delta = "0.1.0-rc.2 -> 0.1.0" +notes = "Minor documentation updates an additions, nothing major." + [[audits.bytecodealliance.audits.iana-time-zone-haiku]] who = "Dan Gohman " criteria = "safe-to-deploy" @@ -1120,6 +1210,16 @@ who = "Pat Hickey " criteria = "safe-to-deploy" version = "0.3.0" +[[audits.bytecodealliance.audits.webpki-roots]] +who = "Pat Hickey " +criteria = "safe-to-deploy" +delta = "0.22.4 -> 0.23.0" + +[[audits.bytecodealliance.audits.webpki-roots]] +who = "Pat Hickey " +criteria = "safe-to-deploy" +delta = "0.23.0 -> 0.25.2" + [[audits.embark.audits.cargo_metadata]] who = "Johan Andersson " criteria = "safe-to-deploy" @@ -1162,6 +1262,40 @@ criteria = "safe-to-deploy" version = "8.3.0" notes = "No unsafe usage or ambient capabilities" +[[audits.embark.audits.num_enum]] +who = "Johan Andersson " +criteria = "safe-to-deploy" +version = "0.5.11" +notes = "No unsafe usage or ambient capabilities" + +[[audits.embark.audits.num_enum]] +who = "Johan Andersson " +criteria = "safe-to-deploy" +delta = "0.5.11 -> 0.6.1" +notes = "Minor changes" + +[[audits.embark.audits.num_enum]] +who = "Johan Andersson " +criteria = "safe-to-deploy" +delta = "0.6.1 -> 0.7.0" + +[[audits.embark.audits.num_enum_derive]] +who = "Johan Andersson " +criteria = "safe-to-deploy" +version = "0.5.11" +notes = "Proc macro that generates some unsafe code for conversion but looks sound, no ambient capabilities" + +[[audits.embark.audits.num_enum_derive]] +who = "Johan Andersson " +criteria = "safe-to-deploy" +delta = "0.5.11 -> 0.6.1" +notes = "Minor changes" + +[[audits.embark.audits.num_enum_derive]] +who = "Johan Andersson " +criteria = "safe-to-deploy" +delta = "0.6.1 -> 0.7.0" + [[audits.embark.audits.tap]] who = "Johan Andersson " criteria = "safe-to-deploy" @@ -1180,6 +1314,12 @@ criteria = "safe-to-deploy" version = "0.1.0" notes = "No unsafe usage or ambient capabilities, sane build script" +[[audits.embark.audits.webpki-roots]] +who = "Johan Andersson " +criteria = "safe-to-deploy" +version = "0.22.4" +notes = "Inspected it to confirm that it only contains data definitions and no runtime code" + [[audits.embark.audits.yaml-rust]] who = "Johan Andersson " criteria = "safe-to-deploy" @@ -1249,6 +1389,22 @@ version = "0.13.1" notes = "Skimmed the uses of `std` to ensure that nothing untoward is happening. Code uses `forbid(unsafe_code)` and, indeed, there are no uses of `unsafe`" aggregated-from = "https://chromium.googlesource.com/chromium/src/+/main/third_party/rust/chromium_crates_io/supply-chain/audits.toml?format=TEXT" +[[audits.google.audits.bitflags]] +who = "Lukasz Anforowicz " +criteria = "safe-to-deploy" +version = "1.3.2" +notes = """ +Security review of earlier versions of the crate can be found at +(Google-internal, sorry): go/image-crate-chromium-security-review + +The crate exposes a function marked as `unsafe`, but doesn't use any +`unsafe` blocks (except for tests of the single `unsafe` function). I +think this justifies marking this crate as `ub-risk-1`. + +Additional review comments can be found at https://crrev.com/c/4723145/31 +""" +aggregated-from = "https://chromium.googlesource.com/chromium/src/+/main/third_party/rust/chromium_crates_io/supply-chain/audits.toml?format=TEXT" + [[audits.google.audits.bitflags]] who = "Lukasz Anforowicz " criteria = "safe-to-deploy" @@ -1269,14 +1425,35 @@ aggregated-from = "https://chromium.googlesource.com/chromium/src/+/main/third_p [[audits.google.audits.bytemuck]] who = "Lukasz Anforowicz " criteria = "safe-to-deploy" -version = "1.14.3" -notes = "Additional review notes may be found in https://crrev.com/c/5362675." +version = "1.16.3" +notes = """ +Review notes from the original audit (of 1.14.3) may be found in +https://crrev.com/c/5362675. Note that this audit has initially missed UB risk +that was fixed in 1.16.2 - see https://github.com/Lokathor/bytemuck/pull/258. +Because of this, the original audit has been edited to certify version `1.16.3` +instead (see also https://crrev.com/c/5771867). +""" +aggregated-from = "https://chromium.googlesource.com/chromium/src/+/main/third_party/rust/chromium_crates_io/supply-chain/audits.toml?format=TEXT" + +[[audits.google.audits.bytemuck]] +who = "Lukasz Anforowicz " +criteria = "safe-to-deploy" +delta = "1.16.3 -> 1.17.1" +notes = "Unsafe review comments can be found in https://crrev.com/c/5813463" aggregated-from = "https://chromium.googlesource.com/chromium/src/+/main/third_party/rust/chromium_crates_io/supply-chain/audits.toml?format=TEXT" [[audits.google.audits.bytemuck]] who = "Adrian Taylor " criteria = "safe-to-deploy" -delta = "1.14.3 -> 1.15.0" +delta = "1.17.1 -> 1.18.0" +notes = "No code changes - just altering feature flag arrangements" +aggregated-from = "https://chromium.googlesource.com/chromium/src/+/main/third_party/rust/chromium_crates_io/supply-chain/audits.toml?format=TEXT" + +[[audits.google.audits.byteorder]] +who = "danakj " +criteria = "safe-to-deploy" +version = "1.5.0" +notes = "Unsafe review in https://crrev.com/c/5838022" aggregated-from = "https://chromium.googlesource.com/chromium/src/+/main/third_party/rust/chromium_crates_io/supply-chain/audits.toml?format=TEXT" [[audits.google.audits.dirs-next]] @@ -1295,6 +1472,16 @@ that the RNG here is not cryptographically secure. """ aggregated-from = "https://chromium.googlesource.com/chromiumos/third_party/rust_crates/+/refs/heads/main/cargo-vet/audits.toml?format=TEXT" +[[audits.google.audits.futures]] +who = "George Burgess IV " +criteria = "safe-to-deploy" +version = "0.3.28" +notes = """ +`futures` has no logic other than tests - it simply `pub use`s things from +other crates. +""" +aggregated-from = "https://chromium.googlesource.com/chromiumos/third_party/rust_crates/+/refs/heads/main/cargo-vet/audits.toml?format=TEXT" + [[audits.google.audits.glob]] who = "George Burgess IV " criteria = "safe-to-deploy" @@ -1322,6 +1509,16 @@ https://crrev.com/c/3321896. ''' aggregated-from = "https://chromium.googlesource.com/chromium/src/+/main/third_party/rust/chromium_crates_io/supply-chain/audits.toml?format=TEXT" +[[audits.google.audits.link-cplusplus]] +who = "George Burgess IV " +criteria = "safe-to-deploy" +version = "1.0.9" +notes = """ +This crate exists simply to link with libcxx or libstdcxx. No assertions +are made about the safety of either of those libraries. :) +""" +aggregated-from = "https://chromium.googlesource.com/chromiumos/third_party/rust_crates/+/refs/heads/main/cargo-vet/audits.toml?format=TEXT" + [[audits.google.audits.nom]] who = "danakj@chromium.org" criteria = "safe-to-deploy" @@ -1585,11 +1782,6 @@ who = "Brandon Pitman " criteria = "safe-to-deploy" delta = "1.18.0 -> 1.19.0" -[[audits.isrg.audits.opaque-debug]] -who = "David Cook " -criteria = "safe-to-deploy" -version = "0.3.0" - [[audits.isrg.audits.rand_chacha]] who = "David Cook " criteria = "safe-to-deploy" @@ -1785,6 +1977,17 @@ criteria = "safe-to-deploy" delta = "0.1.3 -> 0.1.6" aggregated-from = "https://hg.mozilla.org/mozilla-central/raw-file/tip/supply-chain/audits.toml" +[[audits.mozilla.audits.deranged]] +who = "Alex Franchuk " +criteria = "safe-to-deploy" +version = "0.3.11" +notes = """ +This crate contains a decent bit of `unsafe` code, however all internal +unsafety is verified with copious assertions (many are compile-time), and +otherwise the unsafety is documented and left to the caller to verify. +""" +aggregated-from = "https://hg.mozilla.org/mozilla-central/raw-file/tip/supply-chain/audits.toml" + [[audits.mozilla.audits.digest]] who = "Mike Hommey " criteria = "safe-to-deploy" @@ -1871,6 +2074,18 @@ criteria = "safe-to-deploy" delta = "0.3.27 -> 0.3.28" aggregated-from = "https://hg.mozilla.org/mozilla-central/raw-file/tip/supply-chain/audits.toml" +[[audits.mozilla.audits.futures-executor]] +who = "Mike Hommey " +criteria = "safe-to-deploy" +delta = "0.3.27 -> 0.3.28" +aggregated-from = "https://hg.mozilla.org/mozilla-central/raw-file/tip/supply-chain/audits.toml" + +[[audits.mozilla.audits.futures-io]] +who = "Mike Hommey " +criteria = "safe-to-deploy" +delta = "0.3.27 -> 0.3.28" +aggregated-from = "https://hg.mozilla.org/mozilla-central/raw-file/tip/supply-chain/audits.toml" + [[audits.mozilla.audits.fxhash]] who = "Bobby Holley " criteria = "safe-to-deploy" @@ -2099,6 +2314,16 @@ criteria = "safe-to-deploy" delta = "0.3.25 -> 0.3.26" aggregated-from = "https://hg.mozilla.org/mozilla-central/raw-file/tip/supply-chain/audits.toml" +[[audits.mozilla.audits.powerfmt]] +who = "Alex Franchuk " +criteria = "safe-to-deploy" +version = "0.2.0" +notes = """ +A tiny bit of unsafe code to implement functionality that isn't in stable rust +yet, but it's all valid. Otherwise it's a pretty simple crate. +""" +aggregated-from = "https://hg.mozilla.org/mozilla-central/raw-file/tip/supply-chain/audits.toml" + [[audits.mozilla.audits.precomputed-hash]] who = "Bobby Holley " criteria = "safe-to-deploy" @@ -2157,6 +2382,35 @@ version = "2.5.0" notes = "The goal is to provide some constant-time correctness for cryptographic implementations. The approach is reasonable, it is known to be insufficient but this is pointed out in the documentation." aggregated-from = "https://hg.mozilla.org/mozilla-central/raw-file/tip/supply-chain/audits.toml" +[[audits.mozilla.audits.time]] +who = "Mike Hommey " +criteria = "safe-to-deploy" +delta = "0.1.44 -> 0.1.45" +aggregated-from = "https://hg.mozilla.org/mozilla-central/raw-file/tip/supply-chain/audits.toml" + +[[audits.mozilla.audits.time]] +who = "Kershaw Chang " +criteria = "safe-to-deploy" +delta = "0.1.45 -> 0.3.17" +aggregated-from = "https://hg.mozilla.org/mozilla-central/raw-file/tip/supply-chain/audits.toml" + +[[audits.mozilla.audits.time]] +who = "Kershaw Chang " +criteria = "safe-to-deploy" +delta = "0.3.17 -> 0.3.23" +aggregated-from = "https://hg.mozilla.org/mozilla-central/raw-file/tip/supply-chain/audits.toml" + +[[audits.mozilla.audits.time]] +who = "Alex Franchuk " +criteria = "safe-to-deploy" +delta = "0.3.23 -> 0.3.36" +notes = """ +There's a bit of new unsafe code that is self-imposed because they now assert +that ordinals are non-zero. All unsafe code was checked to ensure that the +invariants claimed were true. +""" +aggregated-from = "https://hg.mozilla.org/mozilla-central/raw-file/tip/supply-chain/audits.toml" + [[audits.mozilla.audits.time-core]] who = "Kershaw Chang " criteria = "safe-to-deploy" @@ -2169,6 +2423,24 @@ criteria = "safe-to-deploy" delta = "0.1.0 -> 0.1.1" aggregated-from = "https://hg.mozilla.org/mozilla-central/raw-file/tip/supply-chain/audits.toml" +[[audits.mozilla.audits.time-macros]] +who = "Kershaw Chang " +criteria = "safe-to-deploy" +version = "0.2.6" +aggregated-from = "https://hg.mozilla.org/mozilla-central/raw-file/tip/supply-chain/audits.toml" + +[[audits.mozilla.audits.time-macros]] +who = "Kershaw Chang " +criteria = "safe-to-deploy" +delta = "0.2.6 -> 0.2.10" +aggregated-from = "https://hg.mozilla.org/mozilla-central/raw-file/tip/supply-chain/audits.toml" + +[[audits.mozilla.audits.time-macros]] +who = "Alex Franchuk " +criteria = "safe-to-deploy" +delta = "0.2.10 -> 0.2.18" +aggregated-from = "https://hg.mozilla.org/mozilla-central/raw-file/tip/supply-chain/audits.toml" + [[audits.mozilla.audits.typenum]] who = "Mike Hommey " criteria = "safe-to-deploy" @@ -2306,17 +2578,6 @@ delta = "0.10.3 -> 0.10.4" notes = "Adds panics to prevent a block size of zero from causing unsoundness." aggregated-from = "https://raw.githubusercontent.com/zcash/zcash/master/qa/supply-chain/audits.toml" -[[audits.zcash.audits.byteorder]] -who = "Jack Grigg " -criteria = "safe-to-deploy" -delta = "1.4.3 -> 1.5.0" -notes = """ -- Adds two assertions to check the safety of `slice::from_raw_parts_mut` calls. -- Replaces a bunch of `unsafe` blocks containing `copy_nonoverlapping` calls - with safe `<&mut [u8]>::copy_from_slice` calls. -""" -aggregated-from = "https://raw.githubusercontent.com/zcash/zcash/master/qa/supply-chain/audits.toml" - [[audits.zcash.audits.bytes]] who = "Jack Grigg " criteria = "safe-to-deploy" @@ -2350,16 +2611,6 @@ delta = "0.5.6 -> 0.5.7" notes = "Fixes wrapping overflows for large timeouts." aggregated-from = "https://raw.githubusercontent.com/zcash/zcash/master/qa/supply-chain/audits.toml" -[[audits.zcash.audits.deranged]] -who = "Jack Grigg " -criteria = "safe-to-deploy" -delta = "0.3.10 -> 0.3.11" -notes = """ -Two new `unsafe` blocks to construct ranges via `T::new_unchecked`. The safety -comments correctly document why the checks are unnecessary. -""" -aggregated-from = "https://raw.githubusercontent.com/zcash/zcash/master/qa/supply-chain/audits.toml" - [[audits.zcash.audits.either]] who = "Jack Grigg " criteria = "safe-to-deploy" @@ -2378,6 +2629,13 @@ criteria = "safe-to-deploy" delta = "0.12.1 -> 0.13.0" aggregated-from = "https://raw.githubusercontent.com/zcash/zcash/master/qa/supply-chain/audits.toml" +[[audits.zcash.audits.futures]] +who = "Jack Grigg " +criteria = "safe-to-deploy" +delta = "0.3.28 -> 0.3.30" +notes = "Only sub-crate updates and corresponding changes to tests." +aggregated-from = "https://raw.githubusercontent.com/zcash/librustzcash/main/supply-chain/audits.toml" + [[audits.zcash.audits.futures-channel]] who = "Jack Grigg " criteria = "safe-to-deploy" @@ -2404,6 +2662,18 @@ delta = "0.3.29 -> 0.3.30" notes = "Removes `build.rs` now that it can rely on the `target_has_atomic` attribute." aggregated-from = "https://raw.githubusercontent.com/zcash/zcash/master/qa/supply-chain/audits.toml" +[[audits.zcash.audits.futures-executor]] +who = "Jack Grigg " +criteria = "safe-to-deploy" +delta = "0.3.28 -> 0.3.30" +aggregated-from = "https://raw.githubusercontent.com/zcash/librustzcash/main/supply-chain/audits.toml" + +[[audits.zcash.audits.futures-io]] +who = "Jack Grigg " +criteria = "safe-to-deploy" +delta = "0.3.28 -> 0.3.30" +aggregated-from = "https://raw.githubusercontent.com/zcash/librustzcash/main/supply-chain/audits.toml" + [[audits.zcash.audits.futures-task]] who = "Jack Grigg " criteria = "safe-to-deploy" @@ -2448,6 +2718,13 @@ criteria = "safe-to-deploy" delta = "0.12.1 -> 0.13.0" aggregated-from = "https://raw.githubusercontent.com/zcash/zcash/master/qa/supply-chain/audits.toml" +[[audits.zcash.audits.http-body-util]] +who = "Jack Grigg " +criteria = "safe-to-deploy" +delta = "0.1.0 -> 0.1.2" +notes = "New uses of pin_project! look fine." +aggregated-from = "https://raw.githubusercontent.com/zcash/librustzcash/main/supply-chain/audits.toml" + [[audits.zcash.audits.inout]] who = "Daira Hopwood " criteria = "safe-to-deploy" @@ -2529,6 +2806,18 @@ criteria = "safe-to-deploy" version = "0.1.0" aggregated-from = "https://raw.githubusercontent.com/zcash/zcash/master/qa/supply-chain/audits.toml" +[[audits.zcash.audits.num_enum]] +who = "Jack Grigg " +criteria = "safe-to-deploy" +delta = "0.7.0 -> 0.7.2" +aggregated-from = "https://raw.githubusercontent.com/zcash/librustzcash/main/supply-chain/audits.toml" + +[[audits.zcash.audits.num_enum_derive]] +who = "Jack Grigg " +criteria = "safe-to-deploy" +delta = "0.7.0 -> 0.7.2" +aggregated-from = "https://raw.githubusercontent.com/zcash/librustzcash/main/supply-chain/audits.toml" + [[audits.zcash.audits.object]] who = "Jack Grigg " criteria = "safe-to-deploy" @@ -2775,6 +3064,13 @@ Migrates to `try-lock 0.2.4` to replace some unsafe APIs that were not marked """ aggregated-from = "https://raw.githubusercontent.com/zcash/zcash/master/qa/supply-chain/audits.toml" +[[audits.zcash.audits.webpki-roots]] +who = "Daira-Emma Hopwood " +criteria = "safe-to-deploy" +delta = "0.25.2 -> 0.25.4" +notes = "I have not checked consistency with the Mozilla IncludedCACertificateReportPEMCSV report." +aggregated-from = "https://raw.githubusercontent.com/zcash/librustzcash/main/supply-chain/audits.toml" + [[audits.zcash.audits.which]] who = "Jack Grigg " criteria = "safe-to-deploy"