Compare commits

...

18 Commits

Author SHA1 Message Date
Kris Nuttycombe 87c050d829
Merge 5e60c275b2 into 895afe51f7 2024-04-23 17:53:18 +00:00
Kris Nuttycombe 5e60c275b2 Allow transparent-only unified addresses and viewing keys. 2024-04-23 11:53:10 -06:00
Kris Nuttycombe 895afe51f7
Merge pull request #1359 from zcash/cargo-audits
Set up Cargo audit infrastructure
2024-04-23 11:51:16 -06:00
Jack Grigg 069109b691 Adjust versions of pinned dependencies to cover more audits 2024-04-23 00:57:08 +00:00
Jack Grigg 011909d609 CI: Add audit check for `cargo deny check licenses` 2024-04-23 00:34:03 +00:00
Jack Grigg 66f11ce29f Add config file for `cargo deny check licenses`
Most of the config is copied from `zcash/zcash`, but with a few extra
license exceptions due to the `download-params` feature of
`zcash_proofs` and the `lightwalletd-tonic-transport` feature of
`zcash_client_backend`.
2024-04-23 00:32:49 +00:00
Jack Grigg 08cd7e20bd CI: Add audit check for `cargo vet` 2024-04-23 00:31:02 +00:00
Jack Grigg e574c27755 Import Rust crate audits from Fermyon 2024-04-23 00:08:48 +00:00
Jack Grigg 846d9860f1 Import Rust crate audits from Embark Studios 2024-04-23 00:08:48 +00:00
Jack Grigg 03627b1de5 Import Rust crate audits from the Bytecode Alliance 2024-04-23 00:08:48 +00:00
Jack Grigg d99edccaa3 Import Rust crate audits from ISRG 2024-04-23 00:08:48 +00:00
Jack Grigg 12334b3a18 Import Rust crate audits from Google 2024-04-23 00:08:48 +00:00
Jack Grigg 6bbd002f59 Import Rust crate audits from Mozilla 2024-04-23 00:08:48 +00:00
Jack Grigg 4eb2df6714 Trust the Windows crates published by Microsoft
As with our `cargo-vet` usage in `zcash/zcash`, these are binary crates
for interacting with Windows APIs, so both sides are maintained by
Microsoft and are not something we can audit ourselves.
2024-04-23 00:08:48 +00:00
Jack Grigg 3f11ba5c74 Import our Rust crate audits from elsewhere 2024-04-23 00:08:48 +00:00
Jack Grigg f3717d9427 Trust the Zcash crates we maintain and publish
Trust set imported from `zcash/zcash` where there were common deps.
2024-04-23 00:08:48 +00:00
Jack Grigg afb8b55ed8 Import cargo-vet criteria from `zcash/zcash` 2024-04-22 23:37:02 +00:00
Jack Grigg 672cc9f080 cargo vet init 2024-04-22 23:31:40 +00:00
11 changed files with 2666 additions and 28 deletions

30
.github/workflows/audits.yml vendored Normal file
View File

@ -0,0 +1,30 @@
name: Audits
on:
pull_request:
push:
branches: main
permissions:
contents: read
jobs:
cargo-vet:
name: Vet Rust dependencies
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@stable
id: toolchain
- run: rustup override set ${{steps.toolchain.outputs.name}}
- run: cargo install cargo-vet --version ~0.9
- run: cargo vet --locked
cargo-deny:
name: Check licenses
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: EmbarkStudios/cargo-deny-action@v1
with:
command: check licenses

20
Cargo.lock generated
View File

@ -282,9 +282,9 @@ checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
[[package]]
name = "bitflags"
version = "2.4.1"
version = "2.4.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "327762f6e5a765692301e5bb513e0d9fef63be86bbc14528052b1cd3e6f03e07"
checksum = "ed570934406eb16438a4e976b1b4500774099c13b8cb96eec99f620f05090ddf"
[[package]]
name = "bitvec"
@ -1751,7 +1751,7 @@ checksum = "7c003ac8c77cb07bb74f5f198bce836a689bcd5a42574612bf14d17bfd08c20e"
dependencies = [
"bit-set",
"bit-vec",
"bitflags 2.4.1",
"bitflags 2.4.2",
"lazy_static",
"num-traits",
"rand",
@ -2034,7 +2034,7 @@ version = "0.29.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "549b9d036d571d42e6e85d1c1425e2ac83491075078ca9a15be021c56b1641f2"
dependencies = [
"bitflags 2.4.1",
"bitflags 2.4.2",
"fallible-iterator",
"fallible-streaming-iterator",
"hashlink",
@ -2055,7 +2055,7 @@ version = "0.38.21"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2b426b0506e5d50a7d8dafcf2e81471400deb602392c7dd110815afb4eaf02a3"
dependencies = [
"bitflags 2.4.1",
"bitflags 2.4.2",
"errno",
"libc",
"linux-raw-sys",
@ -2265,7 +2265,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d766257c56a1bdd75479c256b97c92e72788a9afb18b5199f58faf7188dc99d9"
dependencies = [
"assert_matches",
"bitflags 2.4.1",
"bitflags 2.4.2",
"either",
"incrementalmerkletree",
"proptest",
@ -2421,18 +2421,18 @@ checksum = "222a222a5bfe1bba4a77b45ec488a741b3cb8872e5e499451fd7d0129c9c7c3d"
[[package]]
name = "thiserror"
version = "1.0.50"
version = "1.0.51"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f9a7210f5c9a7156bb50aa36aed4c95afb51df0df00713949448cf9e97d382d2"
checksum = "f11c217e1416d6f036b870f14e0413d480dbf28edbee1f877abaf0206af43bb7"
dependencies = [
"thiserror-impl",
]
[[package]]
name = "thiserror-impl"
version = "1.0.50"
version = "1.0.51"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "266b2e40bc00e5a6c09c3584011e08b06f123c00362c92b975ba9843aaaa14b8"
checksum = "01742297787513b79cf8e29d1056ede1313e2420b7b3b15d0a768b4921f549df"
dependencies = [
"proc-macro2",
"quote",

View File

@ -561,7 +561,6 @@ pub(crate) mod private {
) -> Result<Self, ParseError> {
assert!(u32::from(Typecode::P2SH) == u32::from(Typecode::P2PKH) + 1);
let mut only_transparent = true;
let mut prev_code = None; // less than any Some
for item in &items {
let t = item.typecode();
@ -576,16 +575,11 @@ pub(crate) mod private {
return Err(ParseError::BothP2phkAndP2sh);
} else {
prev_code = t_code;
only_transparent = only_transparent && item.is_transparent_data_item();
}
}
if only_transparent {
Err(ParseError::OnlyTransparent)
} else {
// All checks pass!
Ok(Self::from_inner(revision, items))
}
// All checks pass!
Ok(Self::from_inner(revision, items))
}
fn parse_internal<T: Into<Vec<u8>>>(hrp: &str, buf: T) -> Result<Self, ParseError> {

View File

@ -357,9 +357,6 @@ mod tests {
0xf4, 0xf5, 0x16, 0xef, 0x5c, 0xe0, 0x26, 0xbc, 0x23, 0x73, 0x76, 0x3f, 0x4b,
];
assert_eq!(
Ufvk::parse_internal(Ufvk::MAINNET_R0, &encoded[..]),
Err(ParseError::OnlyTransparent)
);
assert_matches!(Ufvk::parse_internal(Ufvk::MAINNET_R0, &encoded[..]), Ok(_));
}
}

View File

@ -339,9 +339,6 @@ mod tests {
0xbd, 0xfe, 0xa4, 0xb7, 0x47, 0x20, 0x92, 0x6, 0xf0, 0x0, 0xf9, 0x64,
];
assert_eq!(
Uivk::parse_internal(Uivk::MAINNET_R0, &encoded[..]),
Err(ParseError::OnlyTransparent)
);
assert_matches!(Uivk::parse_internal(Uivk::MAINNET_R0, &encoded[..]), Ok(_));
}
}

51
deny.toml Normal file
View File

@ -0,0 +1,51 @@
# Configuration file for cargo-deny
[graph]
targets = [
# Targets used by zcashd
{ triple = "aarch64-unknown-linux-gnu" },
{ triple = "x86_64-apple-darwin" },
{ triple = "x86_64-pc-windows-gnu" },
{ triple = "x86_64-unknown-freebsd" },
{ triple = "x86_64-unknown-linux-gnu" },
# Targets used by zcash-android-wallet-sdk
{ triple = "aarch64-linux-android" },
{ triple = "armv7-linux-androideabi" },
{ triple = "i686-linux-android" },
{ triple = "x86_64-linux-android" },
# Targets used by zcash-swift-wallet-sdk
{ triple = "aarch64-apple-darwin" },
{ triple = "aarch64-apple-ios" },
{ triple = "aarch64-apple-ios-sim" },
{ triple = "x86_64-apple-darwin" },
{ triple = "x86_64-apple-ios" },
]
all-features = true
exclude-dev = true
[licenses]
version = 2
allow = [
"Apache-2.0",
"MIT",
]
exceptions = [
{ name = "arrayref", allow = ["BSD-2-Clause"] },
{ name = "matchit", allow = ["BSD-3-Clause"] },
{ name = "minreq", allow = ["ISC"] },
{ name = "ring", allow = ["LicenseRef-ring"] },
{ name = "rustls-webpki", allow = ["ISC"] },
{ name = "secp256k1", allow = ["CC0-1.0"] },
{ name = "secp256k1-sys", allow = ["CC0-1.0"] },
{ name = "subtle", allow = ["BSD-3-Clause"] },
{ name = "unicode-ident", allow = ["Unicode-DFS-2016"] },
{ name = "untrusted", allow = ["ISC"] },
{ name = "webpki-roots", allow = ["MPL-2.0"] },
]
[[licenses.clarify]]
name = "ring"
expression = "LicenseRef-ring"
license-files = [
{ path = "LICENSE", hash = 0xbd0eed23 },
]

238
supply-chain/audits.toml Normal file
View File

@ -0,0 +1,238 @@
# cargo-vet audits file
[criteria.crypto-reviewed]
description = "The cryptographic code in this crate has been reviewed for correctness by a member of a designated set of cryptography experts within the project."
[criteria.license-reviewed]
description = "The license of this crate has been reviewed for compatibility with its usage in this repository."
[audits]
[[trusted.equihash]]
criteria = "safe-to-deploy"
user-id = 6289 # str4d
start = "2020-06-26"
end = "2025-04-22"
[[trusted.f4jumble]]
criteria = ["safe-to-deploy", "crypto-reviewed"]
user-id = 6289 # str4d
start = "2021-09-22"
end = "2025-04-22"
[[trusted.halo2_gadgets]]
criteria = ["safe-to-deploy", "crypto-reviewed"]
user-id = 1244 # ebfull
start = "2022-05-10"
end = "2025-04-22"
[[trusted.halo2_legacy_pdqsort]]
criteria = ["safe-to-deploy", "crypto-reviewed"]
user-id = 199950 # Daira Emma Hopwood (daira)
start = "2023-02-24"
end = "2025-04-22"
[[trusted.halo2_proofs]]
criteria = ["safe-to-deploy", "crypto-reviewed"]
user-id = 1244 # ebfull
start = "2022-05-10"
end = "2025-04-22"
[[trusted.incrementalmerkletree]]
criteria = "safe-to-deploy"
user-id = 6289 # str4d
start = "2021-12-17"
end = "2025-04-22"
[[trusted.incrementalmerkletree]]
criteria = "safe-to-deploy"
user-id = 1244 # ebfull
start = "2021-06-24"
end = "2025-04-22"
[[trusted.incrementalmerkletree]]
criteria = "safe-to-deploy"
user-id = 169181 # Kris Nuttycombe (nuttycom)
start = "2023-02-28"
end = "2025-04-22"
[[trusted.orchard]]
criteria = ["safe-to-deploy", "crypto-reviewed", "license-reviewed"]
user-id = 6289 # str4d
start = "2021-01-07"
end = "2025-04-22"
[[trusted.orchard]]
criteria = ["safe-to-deploy", "crypto-reviewed", "license-reviewed"]
user-id = 1244 # ebfull
start = "2022-10-19"
end = "2025-04-22"
[[trusted.sapling-crypto]]
criteria = ["safe-to-deploy", "crypto-reviewed"]
user-id = 6289 # str4d
start = "2024-01-26"
end = "2025-04-22"
[[trusted.shardtree]]
criteria = "safe-to-deploy"
user-id = 169181 # Kris Nuttycombe (nuttycom)
start = "2022-12-15"
end = "2025-04-22"
[[trusted.windows-sys]]
criteria = "safe-to-deploy"
user-id = 64539 # Kenny Kerr (kennykerr)
start = "2021-11-15"
end = "2025-04-22"
[[trusted.windows-targets]]
criteria = "safe-to-deploy"
user-id = 64539 # Kenny Kerr (kennykerr)
start = "2022-09-09"
end = "2025-04-22"
[[trusted.windows_aarch64_gnullvm]]
criteria = "safe-to-deploy"
user-id = 64539 # Kenny Kerr (kennykerr)
start = "2022-09-01"
end = "2025-04-22"
[[trusted.windows_aarch64_msvc]]
criteria = "safe-to-deploy"
user-id = 64539 # Kenny Kerr (kennykerr)
start = "2021-11-05"
end = "2025-04-22"
[[trusted.windows_i686_gnu]]
criteria = "safe-to-deploy"
user-id = 64539 # Kenny Kerr (kennykerr)
start = "2021-10-28"
end = "2025-04-22"
[[trusted.windows_i686_msvc]]
criteria = "safe-to-deploy"
user-id = 64539 # Kenny Kerr (kennykerr)
start = "2021-10-27"
end = "2025-04-22"
[[trusted.windows_x86_64_gnu]]
criteria = "safe-to-deploy"
user-id = 64539 # Kenny Kerr (kennykerr)
start = "2021-10-28"
end = "2025-04-22"
[[trusted.windows_x86_64_gnullvm]]
criteria = "safe-to-deploy"
user-id = 64539 # Kenny Kerr (kennykerr)
start = "2022-09-01"
end = "2025-04-22"
[[trusted.windows_x86_64_msvc]]
criteria = "safe-to-deploy"
user-id = 64539 # Kenny Kerr (kennykerr)
start = "2021-10-27"
end = "2025-04-22"
[[trusted.zcash_address]]
criteria = "safe-to-deploy"
user-id = 1244 # ebfull
start = "2022-10-19"
end = "2025-04-22"
[[trusted.zcash_address]]
criteria = "safe-to-deploy"
user-id = 6289 # str4d
start = "2021-03-07"
end = "2025-04-22"
[[trusted.zcash_client_backend]]
criteria = "safe-to-deploy"
user-id = 169181 # Kris Nuttycombe (nuttycom)
start = "2024-03-25"
end = "2025-04-22"
[[trusted.zcash_client_sqlite]]
criteria = "safe-to-deploy"
user-id = 169181 # Kris Nuttycombe (nuttycom)
start = "2024-03-25"
end = "2025-04-22"
[[trusted.zcash_encoding]]
criteria = "safe-to-deploy"
user-id = 1244 # ebfull
start = "2022-10-19"
end = "2025-04-22"
[[trusted.zcash_extensions]]
criteria = "safe-to-deploy"
user-id = 6289 # str4d
start = "2020-04-24"
end = "2025-04-23"
[[trusted.zcash_history]]
criteria = "safe-to-deploy"
user-id = 1244 # ebfull
start = "2020-03-04"
end = "2025-04-22"
[[trusted.zcash_history]]
criteria = "safe-to-deploy"
user-id = 6289 # str4d
start = "2024-03-01"
end = "2025-04-22"
[[trusted.zcash_keys]]
criteria = "safe-to-deploy"
user-id = 169181 # Kris Nuttycombe (nuttycom)
start = "2024-01-15"
end = "2025-04-22"
[[trusted.zcash_note_encryption]]
criteria = ["safe-to-deploy", "crypto-reviewed"]
user-id = 169181 # Kris Nuttycombe (nuttycom)
start = "2023-03-22"
end = "2025-04-22"
[[trusted.zcash_primitives]]
criteria = ["safe-to-deploy", "crypto-reviewed", "license-reviewed"]
user-id = 6289 # str4d
start = "2021-03-26"
end = "2025-04-22"
[[trusted.zcash_primitives]]
criteria = ["safe-to-deploy", "crypto-reviewed", "license-reviewed"]
user-id = 1244 # ebfull
start = "2019-10-08"
end = "2025-04-22"
[[trusted.zcash_proofs]]
criteria = ["safe-to-deploy", "crypto-reviewed", "license-reviewed"]
user-id = 6289 # str4d
start = "2021-03-26"
end = "2025-04-22"
[[trusted.zcash_protocol]]
criteria = "safe-to-deploy"
user-id = 169181 # Kris Nuttycombe (nuttycom)
start = "2024-01-27"
end = "2025-04-22"
[[trusted.zcash_spec]]
criteria = ["safe-to-deploy", "crypto-reviewed", "license-reviewed"]
user-id = 6289 # str4d
start = "2023-12-07"
end = "2025-04-22"
[[trusted.zip32]]
criteria = "safe-to-deploy"
user-id = 6289 # str4d
start = "2023-12-06"
end = "2025-04-22"
[[trusted.zip321]]
criteria = "safe-to-deploy"
user-id = 169181 # Kris Nuttycombe (nuttycom)
start = "2024-01-15"
end = "2025-04-22"

881
supply-chain/config.toml Normal file
View File

@ -0,0 +1,881 @@
# cargo-vet config file
[cargo-vet]
version = "0.9"
[imports.bytecode-alliance]
url = "https://raw.githubusercontent.com/bytecodealliance/wasmtime/main/supply-chain/audits.toml"
[imports.embark-studios]
url = "https://raw.githubusercontent.com/EmbarkStudios/rust-ecosystem/main/audits.toml"
[imports.fermyon]
url = "https://raw.githubusercontent.com/fermyon/spin/main/supply-chain/audits.toml"
[imports.google]
url = "https://raw.githubusercontent.com/google/supply-chain/main/audits.toml"
[imports.isrg]
url = "https://raw.githubusercontent.com/divviup/libprio-rs/main/supply-chain/audits.toml"
[imports.mozilla]
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.equihash]
audit-as-crates-io = true
[policy.f4jumble]
audit-as-crates-io = true
[policy.zcash_address]
audit-as-crates-io = true
[policy.zcash_client_backend]
audit-as-crates-io = true
[policy.zcash_client_sqlite]
audit-as-crates-io = true
[policy.zcash_encoding]
audit-as-crates-io = true
[policy.zcash_extensions]
audit-as-crates-io = true
[policy.zcash_history]
audit-as-crates-io = true
[policy.zcash_keys]
audit-as-crates-io = true
[policy.zcash_primitives]
audit-as-crates-io = true
[policy.zcash_proofs]
audit-as-crates-io = true
[policy.zcash_protocol]
audit-as-crates-io = true
[policy.zip321]
audit-as-crates-io = true
[[exemptions.addr2line]]
version = "0.21.0"
criteria = "safe-to-deploy"
[[exemptions.aead]]
version = "0.5.2"
criteria = "safe-to-deploy"
[[exemptions.aes]]
version = "0.8.3"
criteria = "safe-to-deploy"
[[exemptions.ahash]]
version = "0.8.6"
criteria = "safe-to-deploy"
[[exemptions.aho-corasick]]
version = "1.1.2"
criteria = "safe-to-deploy"
[[exemptions.allocator-api2]]
version = "0.2.16"
criteria = "safe-to-deploy"
[[exemptions.arrayvec]]
version = "0.7.4"
criteria = "safe-to-deploy"
[[exemptions.assert_matches]]
version = "1.5.0"
criteria = "safe-to-deploy"
[[exemptions.async-trait]]
version = "0.1.78"
criteria = "safe-to-deploy"
[[exemptions.axum]]
version = "0.6.20"
criteria = "safe-to-deploy"
[[exemptions.axum-core]]
version = "0.3.4"
criteria = "safe-to-deploy"
[[exemptions.backtrace]]
version = "0.3.69"
criteria = "safe-to-deploy"
[[exemptions.base64ct]]
version = "1.0.1"
criteria = "safe-to-deploy"
[[exemptions.bech32]]
version = "0.9.1"
criteria = "safe-to-deploy"
[[exemptions.bellman]]
version = "0.14.0"
criteria = "safe-to-deploy"
[[exemptions.bip0039]]
version = "0.10.1"
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.blake2b_simd]]
version = "1.0.1"
criteria = "safe-to-deploy"
[[exemptions.blake2s_simd]]
version = "1.0.1"
criteria = "safe-to-deploy"
[[exemptions.bls12_381]]
version = "0.8.0"
criteria = "safe-to-deploy"
[[exemptions.bs58]]
version = "0.5.0"
criteria = "safe-to-deploy"
[[exemptions.bytemuck]]
version = "1.14.0"
criteria = "safe-to-run"
[[exemptions.byteorder]]
version = "1.5.0"
criteria = "safe-to-deploy"
[[exemptions.bytes]]
version = "1.5.0"
criteria = "safe-to-deploy"
[[exemptions.cast]]
version = "0.3.0"
criteria = "safe-to-run"
[[exemptions.cbc]]
version = "0.1.2"
criteria = "safe-to-deploy"
[[exemptions.chacha20]]
version = "0.9.1"
criteria = "safe-to-deploy"
[[exemptions.chacha20poly1305]]
version = "0.10.1"
criteria = "safe-to-deploy"
[[exemptions.ciborium]]
version = "0.2.1"
criteria = "safe-to-run"
[[exemptions.ciborium-io]]
version = "0.2.1"
criteria = "safe-to-run"
[[exemptions.ciborium-ll]]
version = "0.2.1"
criteria = "safe-to-run"
[[exemptions.cipher]]
version = "0.4.4"
criteria = "safe-to-deploy"
[[exemptions.clap]]
version = "3.2.25"
criteria = "safe-to-run"
[[exemptions.cpp_demangle]]
version = "0.4.3"
criteria = "safe-to-run"
[[exemptions.cpufeatures]]
version = "0.2.11"
criteria = "safe-to-deploy"
[[exemptions.criterion]]
version = "0.4.0"
criteria = "safe-to-run"
[[exemptions.criterion-plot]]
version = "0.5.0"
criteria = "safe-to-run"
[[exemptions.crossbeam-channel]]
version = "0.5.8"
criteria = "safe-to-deploy"
[[exemptions.crossbeam-deque]]
version = "0.8.3"
criteria = "safe-to-deploy"
[[exemptions.crossbeam-epoch]]
version = "0.9.15"
criteria = "safe-to-deploy"
[[exemptions.crossbeam-utils]]
version = "0.8.16"
criteria = "safe-to-deploy"
[[exemptions.daggy]]
version = "0.8.0"
criteria = "safe-to-deploy"
[[exemptions.digest]]
version = "0.10.7"
criteria = "safe-to-deploy"
[[exemptions.errno]]
version = "0.3.6"
criteria = "safe-to-deploy"
[[exemptions.fallible-iterator]]
version = "0.2.0"
criteria = "safe-to-deploy"
[[exemptions.fallible-streaming-iterator]]
version = "0.1.9"
criteria = "safe-to-deploy"
[[exemptions.ff]]
version = "0.13.0"
criteria = "safe-to-deploy"
[[exemptions.findshlibs]]
version = "0.10.2"
criteria = "safe-to-run"
[[exemptions.fixed-hash]]
version = "0.8.0"
criteria = "safe-to-deploy"
[[exemptions.fixedbitset]]
version = "0.4.2"
criteria = "safe-to-deploy"
[[exemptions.fpe]]
version = "0.6.1"
criteria = "safe-to-deploy"
[[exemptions.funty]]
version = "2.0.0"
criteria = "safe-to-deploy"
[[exemptions.futures-macro]]
version = "0.3.29"
criteria = "safe-to-deploy"
[[exemptions.futures-sink]]
version = "0.3.29"
criteria = "safe-to-deploy"
[[exemptions.futures-task]]
version = "0.3.29"
criteria = "safe-to-deploy"
[[exemptions.futures-util]]
version = "0.3.29"
criteria = "safe-to-deploy"
[[exemptions.generic-array]]
version = "0.14.7"
criteria = "safe-to-deploy"
[[exemptions.getrandom]]
version = "0.2.11"
criteria = "safe-to-deploy"
[[exemptions.gimli]]
version = "0.28.0"
criteria = "safe-to-deploy"
[[exemptions.group]]
version = "0.13.0"
criteria = "safe-to-deploy"
[[exemptions.gumdrop]]
version = "0.8.1"
criteria = "safe-to-run"
[[exemptions.gumdrop_derive]]
version = "0.8.1"
criteria = "safe-to-run"
[[exemptions.h2]]
version = "0.3.21"
criteria = "safe-to-deploy"
[[exemptions.hashbrown]]
version = "0.14.2"
criteria = "safe-to-deploy"
[[exemptions.hashlink]]
version = "0.8.4"
criteria = "safe-to-deploy"
[[exemptions.hdwallet]]
version = "0.4.1"
criteria = "safe-to-deploy"
[[exemptions.hermit-abi]]
version = "0.1.19"
criteria = "safe-to-run"
[[exemptions.hermit-abi]]
version = "0.3.3"
criteria = "safe-to-deploy"
[[exemptions.home]]
version = "0.5.5"
criteria = "safe-to-deploy"
[[exemptions.http]]
version = "0.2.9"
criteria = "safe-to-deploy"
[[exemptions.http-body]]
version = "0.4.5"
criteria = "safe-to-deploy"
[[exemptions.httparse]]
version = "1.8.0"
criteria = "safe-to-deploy"
[[exemptions.hyper]]
version = "0.14.27"
criteria = "safe-to-deploy"
[[exemptions.hyper-timeout]]
version = "0.4.1"
criteria = "safe-to-deploy"
[[exemptions.indexmap]]
version = "1.9.3"
criteria = "safe-to-deploy"
[[exemptions.indexmap]]
version = "2.1.0"
criteria = "safe-to-deploy"
[[exemptions.inferno]]
version = "0.11.17"
criteria = "safe-to-run"
[[exemptions.itertools]]
version = "0.11.0"
criteria = "safe-to-deploy"
[[exemptions.itoa]]
version = "1.0.9"
criteria = "safe-to-deploy"
[[exemptions.js-sys]]
version = "0.3.65"
criteria = "safe-to-deploy"
[[exemptions.jubjub]]
version = "0.10.0"
criteria = "safe-to-deploy"
[[exemptions.libc]]
version = "0.2.150"
criteria = "safe-to-deploy"
[[exemptions.libm]]
version = "0.2.2"
criteria = "safe-to-deploy"
[[exemptions.libsqlite3-sys]]
version = "0.26.0"
criteria = "safe-to-deploy"
[[exemptions.linux-raw-sys]]
version = "0.4.11"
criteria = "safe-to-deploy"
[[exemptions.lock_api]]
version = "0.4.11"
criteria = "safe-to-run"
[[exemptions.matchit]]
version = "0.7.3"
criteria = "safe-to-deploy"
[[exemptions.memchr]]
version = "2.6.4"
criteria = "safe-to-deploy"
[[exemptions.memmap2]]
version = "0.5.10"
criteria = "safe-to-run"
[[exemptions.memoffset]]
version = "0.9.0"
criteria = "safe-to-deploy"
[[exemptions.memuse]]
version = "0.2.1"
criteria = "safe-to-deploy"
[[exemptions.mime]]
version = "0.3.17"
criteria = "safe-to-deploy"
[[exemptions.minimal-lexical]]
version = "0.2.1"
criteria = "safe-to-deploy"
[[exemptions.minreq]]
version = "2.11.0"
criteria = "safe-to-deploy"
[[exemptions.mio]]
version = "0.8.9"
criteria = "safe-to-deploy"
[[exemptions.multimap]]
version = "0.8.3"
criteria = "safe-to-deploy"
[[exemptions.nonempty]]
version = "0.7.0"
criteria = "safe-to-deploy"
[[exemptions.num-format]]
version = "0.4.4"
criteria = "safe-to-run"
[[exemptions.num_cpus]]
version = "1.16.0"
criteria = "safe-to-deploy"
[[exemptions.object]]
version = "0.32.1"
criteria = "safe-to-deploy"
[[exemptions.once_cell]]
version = "1.18.0"
criteria = "safe-to-deploy"
[[exemptions.os_str_bytes]]
version = "6.6.1"
criteria = "safe-to-run"
[[exemptions.pairing]]
version = "0.23.0"
criteria = "safe-to-deploy"
[[exemptions.parking_lot_core]]
version = "0.9.9"
criteria = "safe-to-run"
[[exemptions.password-hash]]
version = "0.3.2"
criteria = "safe-to-deploy"
[[exemptions.pasta_curves]]
version = "0.5.1"
criteria = "safe-to-deploy"
[[exemptions.pbkdf2]]
version = "0.10.1"
criteria = "safe-to-deploy"
[[exemptions.petgraph]]
version = "0.6.4"
criteria = "safe-to-deploy"
[[exemptions.pin-project]]
version = "1.1.3"
criteria = "safe-to-deploy"
[[exemptions.pin-project-internal]]
version = "1.1.3"
criteria = "safe-to-deploy"
[[exemptions.pkg-config]]
version = "0.3.27"
criteria = "safe-to-deploy"
[[exemptions.plotters]]
version = "0.3.5"
criteria = "safe-to-run"
[[exemptions.plotters-backend]]
version = "0.3.5"
criteria = "safe-to-run"
[[exemptions.plotters-svg]]
version = "0.3.5"
criteria = "safe-to-run"
[[exemptions.poly1305]]
version = "0.8.0"
criteria = "safe-to-deploy"
[[exemptions.pprof]]
version = "0.11.1"
criteria = "safe-to-run"
[[exemptions.ppv-lite86]]
version = "0.2.17"
criteria = "safe-to-deploy"
[[exemptions.prettyplease]]
version = "0.2.15"
criteria = "safe-to-deploy"
[[exemptions.primitive-types]]
version = "0.12.2"
criteria = "safe-to-deploy"
[[exemptions.proptest]]
version = "1.3.1"
criteria = "safe-to-deploy"
[[exemptions.prost]]
version = "0.12.1"
criteria = "safe-to-deploy"
[[exemptions.prost-build]]
version = "0.12.1"
criteria = "safe-to-deploy"
[[exemptions.prost-derive]]
version = "0.12.1"
criteria = "safe-to-deploy"
[[exemptions.prost-types]]
version = "0.12.1"
criteria = "safe-to-deploy"
[[exemptions.quick-error]]
version = "1.2.3"
criteria = "safe-to-deploy"
[[exemptions.quick-xml]]
version = "0.26.0"
criteria = "safe-to-run"
[[exemptions.radium]]
version = "0.7.0"
criteria = "safe-to-deploy"
[[exemptions.rand]]
version = "0.8.5"
criteria = "safe-to-deploy"
[[exemptions.reddsa]]
version = "0.5.1"
criteria = "safe-to-deploy"
[[exemptions.redox_syscall]]
version = "0.4.1"
criteria = "safe-to-deploy"
[[exemptions.regex]]
version = "1.10.2"
criteria = "safe-to-deploy"
[[exemptions.regex-automata]]
version = "0.4.3"
criteria = "safe-to-deploy"
[[exemptions.regex-syntax]]
version = "0.7.5"
criteria = "safe-to-deploy"
[[exemptions.rgb]]
version = "0.8.37"
criteria = "safe-to-run"
[[exemptions.ring]]
version = "0.16.20"
criteria = "safe-to-deploy"
[[exemptions.ring]]
version = "0.17.5"
criteria = "safe-to-deploy"
[[exemptions.ripemd]]
version = "0.1.3"
criteria = "safe-to-deploy"
[[exemptions.rusqlite]]
version = "0.29.0"
criteria = "safe-to-deploy"
[[exemptions.rustix]]
version = "0.38.21"
criteria = "safe-to-deploy"
[[exemptions.rustls]]
version = "0.21.8"
criteria = "safe-to-deploy"
[[exemptions.rustls-webpki]]
version = "0.101.7"
criteria = "safe-to-deploy"
[[exemptions.rusty-fork]]
version = "0.3.0"
criteria = "safe-to-deploy"
[[exemptions.ryu]]
version = "1.0.15"
criteria = "safe-to-run"
[[exemptions.schemer]]
version = "0.2.1"
criteria = "safe-to-deploy"
[[exemptions.schemer-rusqlite]]
version = "0.2.2"
criteria = "safe-to-deploy"
[[exemptions.scopeguard]]
version = "1.2.0"
criteria = "safe-to-deploy"
[[exemptions.sct]]
version = "0.7.1"
criteria = "safe-to-deploy"
[[exemptions.secp256k1]]
version = "0.26.0"
criteria = "safe-to-deploy"
[[exemptions.secp256k1-sys]]
version = "0.8.1"
criteria = "safe-to-deploy"
[[exemptions.secrecy]]
version = "0.8.0"
criteria = "safe-to-deploy"
[[exemptions.serde]]
version = "1.0.192"
criteria = "safe-to-deploy"
[[exemptions.serde_derive]]
version = "1.0.192"
criteria = "safe-to-deploy"
[[exemptions.sha2]]
version = "0.10.8"
criteria = "safe-to-deploy"
[[exemptions.slab]]
version = "0.4.9"
criteria = "safe-to-deploy"
[[exemptions.smallvec]]
version = "1.11.1"
criteria = "safe-to-deploy"
[[exemptions.socket2]]
version = "0.4.10"
criteria = "safe-to-deploy"
[[exemptions.socket2]]
version = "0.5.5"
criteria = "safe-to-deploy"
[[exemptions.spin]]
version = "0.5.2"
criteria = "safe-to-deploy"
[[exemptions.spin]]
version = "0.9.8"
criteria = "safe-to-deploy"
[[exemptions.str_stack]]
version = "0.1.0"
criteria = "safe-to-run"
[[exemptions.subtle]]
version = "2.4.1"
criteria = "safe-to-deploy"
[[exemptions.symbolic-common]]
version = "10.2.1"
criteria = "safe-to-run"
[[exemptions.symbolic-demangle]]
version = "10.2.1"
criteria = "safe-to-run"
[[exemptions.syn]]
version = "2.0.53"
criteria = "safe-to-deploy"
[[exemptions.sync_wrapper]]
version = "0.1.2"
criteria = "safe-to-deploy"
[[exemptions.tempfile]]
version = "3.8.1"
criteria = "safe-to-deploy"
[[exemptions.time]]
version = "0.3.23"
criteria = "safe-to-deploy"
[[exemptions.tinytemplate]]
version = "1.2.1"
criteria = "safe-to-run"
[[exemptions.tokio]]
version = "1.35.1"
criteria = "safe-to-deploy"
[[exemptions.tokio-io-timeout]]
version = "1.2.0"
criteria = "safe-to-deploy"
[[exemptions.tokio-util]]
version = "0.7.10"
criteria = "safe-to-deploy"
[[exemptions.tonic]]
version = "0.10.2"
criteria = "safe-to-deploy"
[[exemptions.tonic-build]]
version = "0.10.2"
criteria = "safe-to-deploy"
[[exemptions.tower]]
version = "0.4.13"
criteria = "safe-to-deploy"
[[exemptions.tower-layer]]
version = "0.3.2"
criteria = "safe-to-deploy"
[[exemptions.tower-service]]
version = "0.3.2"
criteria = "safe-to-deploy"
[[exemptions.tracing]]
version = "0.1.40"
criteria = "safe-to-deploy"
[[exemptions.tracing-attributes]]
version = "0.1.27"
criteria = "safe-to-deploy"
[[exemptions.tracing-core]]
version = "0.1.32"
criteria = "safe-to-deploy"
[[exemptions.typenum]]
version = "1.17.0"
criteria = "safe-to-deploy"
[[exemptions.uint]]
version = "0.9.5"
criteria = "safe-to-deploy"
[[exemptions.unarray]]
version = "0.1.4"
criteria = "safe-to-deploy"
[[exemptions.untrusted]]
version = "0.9.0"
criteria = "safe-to-deploy"
[[exemptions.uuid]]
version = "1.5.0"
criteria = "safe-to-deploy"
[[exemptions.wait-timeout]]
version = "0.2.0"
criteria = "safe-to-deploy"
[[exemptions.walkdir]]
version = "2.4.0"
criteria = "safe-to-run"
[[exemptions.wasi]]
version = "0.11.0+wasi-snapshot-preview1"
criteria = "safe-to-deploy"
[[exemptions.wasm-bindgen]]
version = "0.2.88"
criteria = "safe-to-deploy"
[[exemptions.wasm-bindgen-backend]]
version = "0.2.88"
criteria = "safe-to-deploy"
[[exemptions.wasm-bindgen-macro]]
version = "0.2.88"
criteria = "safe-to-deploy"
[[exemptions.wasm-bindgen-macro-support]]
version = "0.2.88"
criteria = "safe-to-deploy"
[[exemptions.wasm-bindgen-shared]]
version = "0.2.88"
criteria = "safe-to-deploy"
[[exemptions.web-sys]]
version = "0.3.65"
criteria = "safe-to-deploy"
[[exemptions.which]]
version = "4.4.2"
criteria = "safe-to-deploy"
[[exemptions.winapi]]
version = "0.3.9"
criteria = "safe-to-deploy"
[[exemptions.winapi-i686-pc-windows-gnu]]
version = "0.4.0"
criteria = "safe-to-deploy"
[[exemptions.winapi-x86_64-pc-windows-gnu]]
version = "0.4.0"
criteria = "safe-to-deploy"
[[exemptions.wyz]]
version = "0.5.1"
criteria = "safe-to-deploy"
[[exemptions.xdg]]
version = "2.5.2"
criteria = "safe-to-deploy"
[[exemptions.zerocopy]]
version = "0.7.25"
criteria = "safe-to-deploy"
[[exemptions.zerocopy-derive]]
version = "0.7.25"
criteria = "safe-to-deploy"
[[exemptions.zeroize]]
version = "1.6.0"
criteria = "safe-to-deploy"
[[exemptions.zeroize_derive]]
version = "1.4.2"
criteria = "safe-to-deploy"

1444
supply-chain/imports.lock Normal file

File diff suppressed because it is too large Load Diff

View File

@ -278,7 +278,10 @@ impl UnifiedAddress {
.chain(self.expiry_time.map(unified::MetadataItem::ExpiryTime));
let ua = unified::Address::try_from_items(
if self.expiry_height().is_some() || self.expiry_time().is_some() {
if self.expiry_height().is_some()
|| self.expiry_time().is_some()
|| !(self.has_orchard() || self.has_sapling())
{
Revision::R1
} else {
Revision::R0

View File

@ -855,7 +855,10 @@ impl UnifiedFullViewingKey {
.chain(self.expiry_time.map(unified::MetadataItem::ExpiryTime));
zcash_address::unified::Ufvk::try_from_items(
if self.expiry_height().is_some() || self.expiry_time().is_some() {
if self.expiry_height().is_some()
|| self.expiry_time().is_some()
|| !(self.sapling.is_some() || self.orchard.is_some())
{
Revision::R1
} else {
Revision::R0