From 3fd00fd86eaeeda19713af7cec393e3ec8603772 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=90=D1=80=D1=82=D1=91=D0=BC=20=D0=9F=D0=B0=D0=B2=D0=BB?= =?UTF-8?q?=D0=BE=D0=B2=20=5BArtyom=20Pavlov=5D?= Date: Sat, 22 Feb 2025 20:34:09 +0300 Subject: [PATCH 1/2] Upgrade all crates to the 2024 edition, bump MSRV to 1.85 --- .github/workflows/aead.yml | 4 +- .github/workflows/async-signature.yml | 4 +- .github/workflows/cipher.yml | 4 +- .github/workflows/crypto-common.yml | 4 +- .github/workflows/crypto.yml | 4 +- .github/workflows/digest.yml | 4 +- .github/workflows/elliptic-curve.yml | 4 +- .github/workflows/kem.yml | 4 +- .github/workflows/password-hash.yml | 4 +- .github/workflows/signature.yml | 6 +- .github/workflows/universal-hash.yml | 4 +- .github/workflows/workspace.yml | 2 +- Cargo.lock | 458 +++--------------- Cargo.toml | 9 +- README.md | 31 +- aead/CHANGELOG.md | 2 + aead/Cargo.toml | 8 +- aead/README.md | 11 +- aead/src/dev.rs | 4 +- aead/src/lib.rs | 4 +- async-signature/CHANGELOG.md | 6 + async-signature/Cargo.toml | 4 +- async-signature/README.md | 9 +- cipher/CHANGELOG.md | 6 + cipher/Cargo.toml | 10 +- cipher/README.md | 11 +- cipher/src/block.rs | 4 +- cipher/src/block/backends.rs | 2 +- cipher/src/block/ctx.rs | 2 +- cipher/src/dev/block.rs | 10 +- cipher/src/dev/stream.rs | 2 +- cipher/src/lib.rs | 4 +- cipher/src/stream/wrapper.rs | 6 +- cipher/src/tweak.rs | 2 +- cipher/src/tweak/ctx.rs | 2 +- cipher/src/tweak/zero.rs | 8 +- crypto-common/CHANGELOG.md | 6 +- crypto-common/Cargo.toml | 6 +- crypto-common/README.md | 11 +- crypto-common/src/hazmat.rs | 7 +- crypto-common/src/lib.rs | 4 +- crypto/CHANGELOG.md | 6 + crypto/Cargo.toml | 28 +- crypto/README.md | 9 +- digest/CHANGELOG.md | 5 +- digest/Cargo.toml | 10 +- digest/README.md | 16 +- digest/src/core_api/ct_variable.rs | 2 +- digest/src/core_api/rt_variable.rs | 4 +- digest/src/core_api/wrapper.rs | 2 +- digest/src/dev.rs | 8 +- digest/src/digest.rs | 2 +- digest/src/lib.rs | 2 +- digest/src/mac.rs | 24 +- elliptic-curve/CHANGELOG.md | 6 + elliptic-curve/Cargo.lock | 447 +++++++++++++++++ elliptic-curve/Cargo.toml | 8 +- elliptic-curve/README.md | 16 +- elliptic-curve/src/arithmetic.rs | 2 +- elliptic-curve/src/dev.rs | 14 +- elliptic-curve/src/ecdh.rs | 8 +- elliptic-curve/src/field.rs | 4 +- elliptic-curve/src/hash2curve/group_digest.rs | 2 +- elliptic-curve/src/hash2curve/hash2field.rs | 2 +- .../hash2curve/hash2field/expand_msg/xmd.rs | 6 +- .../hash2curve/hash2field/expand_msg/xof.rs | 2 +- elliptic-curve/src/hash2curve/isogeny.rs | 2 +- elliptic-curve/src/jwk.rs | 6 +- elliptic-curve/src/point/non_identity.rs | 4 +- elliptic-curve/src/public_key.rs | 8 +- elliptic-curve/src/scalar/blinded.rs | 2 +- elliptic-curve/src/scalar/nonzero.rs | 4 +- elliptic-curve/src/scalar/primitive.rs | 6 +- elliptic-curve/src/secret_key.rs | 6 +- elliptic-curve/src/secret_key/pkcs8.rs | 10 +- elliptic-curve/tests/pkcs8.rs | 4 +- kem/CHANGELOG.md | 6 + kem/Cargo.toml | 4 +- kem/README.md | 16 +- password-hash/CHANGELOG.md | 6 + password-hash/Cargo.toml | 4 +- password-hash/README.md | 16 +- password-hash/src/params.rs | 2 +- signature/CHANGELOG.md | 10 +- signature/Cargo.toml | 6 +- signature/README.md | 16 +- signature/src/signer.rs | 2 +- signature/tests/derive.rs | 4 +- signature_derive/CHANGELOG.md | 6 + signature_derive/Cargo.toml | 6 +- signature_derive/README.md | 22 +- signature_derive/src/lib.rs | 4 +- universal-hash/CHANGELOG.md | 4 +- universal-hash/Cargo.toml | 6 +- universal-hash/README.md | 16 +- universal-hash/src/lib.rs | 5 +- 96 files changed, 791 insertions(+), 754 deletions(-) create mode 100644 elliptic-curve/Cargo.lock diff --git a/.github/workflows/aead.yml b/.github/workflows/aead.yml index dc3476c09..5e052be8f 100644 --- a/.github/workflows/aead.yml +++ b/.github/workflows/aead.yml @@ -22,7 +22,7 @@ jobs: strategy: matrix: rust: - - 1.81.0 # MSRV + - 1.85.0 # MSRV - stable target: - thumbv7em-none-eabi @@ -52,7 +52,7 @@ jobs: strategy: matrix: rust: - - 1.81.0 # MSRV + - 1.85.0 # MSRV - stable steps: - uses: actions/checkout@v4 diff --git a/.github/workflows/async-signature.yml b/.github/workflows/async-signature.yml index 1846df7c6..ba351c4ef 100644 --- a/.github/workflows/async-signature.yml +++ b/.github/workflows/async-signature.yml @@ -23,7 +23,7 @@ jobs: strategy: matrix: rust: - - 1.81.0 # MSRV + - 1.85.0 # MSRV - stable target: - thumbv7em-none-eabi @@ -42,7 +42,7 @@ jobs: strategy: matrix: rust: - - 1.81.0 # Minimum Rust version the tests pass on + - 1.85.0 # Minimum Rust version the tests pass on - stable steps: - uses: actions/checkout@v4 diff --git a/.github/workflows/cipher.yml b/.github/workflows/cipher.yml index 28e2eb6bf..f60132124 100644 --- a/.github/workflows/cipher.yml +++ b/.github/workflows/cipher.yml @@ -23,7 +23,7 @@ jobs: strategy: matrix: rust: - - 1.81.0 # MSRV + - 1.85.0 # MSRV - stable target: - thumbv7em-none-eabi @@ -57,7 +57,7 @@ jobs: strategy: matrix: rust: - - 1.81.0 # MSRV + - 1.85.0 # MSRV - stable steps: - uses: actions/checkout@v4 diff --git a/.github/workflows/crypto-common.yml b/.github/workflows/crypto-common.yml index 3c4e4edf7..689ae58a5 100644 --- a/.github/workflows/crypto-common.yml +++ b/.github/workflows/crypto-common.yml @@ -22,7 +22,7 @@ jobs: strategy: matrix: rust: - - 1.81.0 # MSRV + - 1.85.0 # MSRV - stable target: - thumbv7em-none-eabi @@ -46,7 +46,7 @@ jobs: strategy: matrix: rust: - - 1.81.0 # MSRV + - 1.85.0 # MSRV - stable steps: - uses: actions/checkout@v4 diff --git a/.github/workflows/crypto.yml b/.github/workflows/crypto.yml index d3ec5fa81..7e197e877 100644 --- a/.github/workflows/crypto.yml +++ b/.github/workflows/crypto.yml @@ -22,7 +22,7 @@ jobs: strategy: matrix: rust: - - 1.65.0 # MSRV + - 1.85.0 # MSRV - stable target: - thumbv7em-none-eabi @@ -55,7 +55,7 @@ jobs: strategy: matrix: rust: - - 1.65.0 # MSRV + - 1.85.0 # MSRV - stable steps: - uses: actions/checkout@v4 diff --git a/.github/workflows/digest.yml b/.github/workflows/digest.yml index 75a70b20a..e2f6e0eb0 100644 --- a/.github/workflows/digest.yml +++ b/.github/workflows/digest.yml @@ -22,7 +22,7 @@ jobs: strategy: matrix: rust: - - 1.81.0 # MSRV + - 1.85.0 # MSRV - stable target: - thumbv7em-none-eabi @@ -47,7 +47,7 @@ jobs: strategy: matrix: rust: - - 1.81.0 # MSRV + - 1.85.0 # MSRV - stable steps: - uses: actions/checkout@v4 diff --git a/.github/workflows/elliptic-curve.yml b/.github/workflows/elliptic-curve.yml index d18193e87..ac4bdccdc 100644 --- a/.github/workflows/elliptic-curve.yml +++ b/.github/workflows/elliptic-curve.yml @@ -24,7 +24,7 @@ jobs: strategy: matrix: rust: - - 1.83.0 # MSRV + - 1.85.0 # MSRV - stable target: - thumbv7em-none-eabi @@ -75,7 +75,7 @@ jobs: strategy: matrix: rust: - - 1.83.0 # MSRV + - 1.85.0 # MSRV - stable - nightly steps: diff --git a/.github/workflows/kem.yml b/.github/workflows/kem.yml index 70d1608f1..168f270dc 100644 --- a/.github/workflows/kem.yml +++ b/.github/workflows/kem.yml @@ -22,7 +22,7 @@ jobs: strategy: matrix: rust: - - 1.66.0 # MSRV + - 1.85.0 # MSRV - stable target: - thumbv7em-none-eabi @@ -41,7 +41,7 @@ jobs: strategy: matrix: rust: - - 1.66.0 # MSRV + - 1.85.0 # MSRV - stable steps: - uses: actions/checkout@v4 diff --git a/.github/workflows/password-hash.yml b/.github/workflows/password-hash.yml index 0b4754a15..0fe8ef3b4 100644 --- a/.github/workflows/password-hash.yml +++ b/.github/workflows/password-hash.yml @@ -22,7 +22,7 @@ jobs: strategy: matrix: rust: - - 1.81.0 # MSRV + - 1.85.0 # MSRV - stable target: - thumbv7em-none-eabi @@ -57,7 +57,7 @@ jobs: strategy: matrix: rust: - - 1.81.0 # MSRV + - 1.85.0 # MSRV - stable steps: - uses: actions/checkout@v4 diff --git a/.github/workflows/signature.yml b/.github/workflows/signature.yml index a54fe0478..905b447cf 100644 --- a/.github/workflows/signature.yml +++ b/.github/workflows/signature.yml @@ -24,7 +24,7 @@ jobs: strategy: matrix: rust: - - 1.81.0 # MSRV + - 1.85.0 # MSRV - stable target: - thumbv7em-none-eabi @@ -51,7 +51,7 @@ jobs: strategy: matrix: rust: - - 1.81.0 # Minimum Rust version the tests pass on + - 1.85.0 # Minimum Rust version the tests pass on - stable steps: - uses: actions/checkout@v4 @@ -68,7 +68,7 @@ jobs: strategy: matrix: rust: - - 1.81.0 # MSRV + - 1.85.0 # MSRV - stable steps: - uses: actions/checkout@v4 diff --git a/.github/workflows/universal-hash.yml b/.github/workflows/universal-hash.yml index 25896c2e1..232dc4676 100644 --- a/.github/workflows/universal-hash.yml +++ b/.github/workflows/universal-hash.yml @@ -22,7 +22,7 @@ jobs: strategy: matrix: rust: - - 1.81.0 # MSRV + - 1.85.0 # MSRV - stable target: - thumbv7em-none-eabi @@ -47,7 +47,7 @@ jobs: strategy: matrix: rust: - - 1.81.0 # MSRV + - 1.85.0 # MSRV - stable steps: - uses: actions/checkout@v4 diff --git a/.github/workflows/workspace.yml b/.github/workflows/workspace.yml index dd85b43ae..5cf81aa18 100644 --- a/.github/workflows/workspace.yml +++ b/.github/workflows/workspace.yml @@ -24,7 +24,7 @@ jobs: - uses: RustCrypto/actions/cargo-cache@master - uses: dtolnay/rust-toolchain@master with: - toolchain: 1.84.0 + toolchain: 1.85.0 components: clippy - run: cargo clippy --all --all-features --tests -- -D warnings diff --git a/Cargo.lock b/Cargo.lock index a73daeabf..93daf4c1c 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1,16 +1,6 @@ # This file is automatically @generated by Cargo. # It is not intended for manual editing. -version = 3 - -[[package]] -name = "aead" -version = "0.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d122413f284cf2d62fb1b7db97e02edb8cda96d769b16e443a4f6195e35662b0" -dependencies = [ - "crypto-common 0.1.6", - "generic-array", -] +version = 4 [[package]] name = "aead" @@ -33,7 +23,7 @@ checksum = "7c02d123df017efcdfbd739ef81735b36c5ba83ec3c59c80a9d7ecc718f92e50" name = "async-signature" version = "0.6.0-pre.4" dependencies = [ - "signature 2.3.0-pre.6", + "signature 2.3.0-pre.6 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -60,59 +50,29 @@ version = "2.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8f68f53c83ab957f72c32642f3868eec03eb974d1fb82e453128456482613d36" -[[package]] -name = "bitvec" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1bc2832c24239b0141d5674bb9174f9d68a8b5b3f2753311927c172ca46f7e9c" -dependencies = [ - "funty", - "radium", - "tap", - "wyz", -] - [[package]] name = "blobby" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "847495c209977a90e8aad588b959d0ca9f5dc228096d29a6bd3defd53f35eaec" - -[[package]] -name = "block-buffer" -version = "0.10.4" +version = "0.4.0-pre.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71" -dependencies = [ - "generic-array", -] +checksum = "4a859067dcb257cb2ae028cb821399b55140b76fb8b2a360e052fe109019db43" [[package]] name = "block-buffer" -version = "0.11.0-rc.3" +version = "0.11.0-rc.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3fd016a0ddc7cb13661bf5576073ce07330a693f8608a1320b4e20561cc12cdc" +checksum = "a229bfd78e4827c91b9b95784f69492c1b77c1ab75a45a8a037b139215086f94" dependencies = [ - "hybrid-array", + "hybrid-array 0.3.0", "zeroize", ] [[package]] name = "block-padding" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a8894febbff9f758034a5b8e12d87918f56dfc64a8e1fe757d65e29041538d93" -dependencies = [ - "generic-array", -] - -[[package]] -name = "block-padding" -version = "0.4.0-rc.2" +version = "0.4.0-rc.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6868e23cd7a5b2e18fb2e9a583910b88b8d645dd21017aafc5d0439cf16ae6d6" +checksum = "ee88d14c41bbae2e333f574a27fc73d96fe1039e5a356c20d06a7f2a34cd8e5a" dependencies = [ - "hybrid-array", + "hybrid-array 0.3.0", ] [[package]] @@ -133,32 +93,16 @@ version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" -[[package]] -name = "cipher" -version = "0.4.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "773f3b9af64447d2ce9850330c473515014aa235e6a783b02db81ff39e4a3dad" -dependencies = [ - "crypto-common 0.1.6", - "inout 0.1.3", -] - [[package]] name = "cipher" version = "0.5.0-pre.7" dependencies = [ "blobby", "crypto-common 0.2.0-rc.1", - "inout 0.2.0-rc.3", + "inout", "zeroize", ] -[[package]] -name = "const-oid" -version = "0.9.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c2459377285ad874054d797f3ccebf984978aa39129f6eafde5cdc8315b612f8" - [[package]] name = "const-oid" version = "0.10.0-rc.3" @@ -176,28 +120,16 @@ dependencies = [ [[package]] name = "crypto" -version = "0.5.1" +version = "0.6.0-pre" dependencies = [ - "aead 0.5.2", - "cipher 0.4.4", - "crypto-common 0.1.6", - "digest 0.10.7", - "elliptic-curve 0.13.8", - "password-hash 0.5.0", - "signature 2.2.0", - "universal-hash 0.5.1", -] - -[[package]] -name = "crypto-bigint" -version = "0.5.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0dc92fb57ca44df6db8059111ab3af99a63d5d0f8375d9972e319a379c6bab76" -dependencies = [ - "generic-array", - "rand_core 0.6.4", - "subtle", - "zeroize", + "aead", + "cipher", + "crypto-common 0.2.0-rc.1", + "digest 0.11.0-pre.9", + "elliptic-curve", + "password-hash", + "signature 2.3.0-pre.6", + "universal-hash", ] [[package]] @@ -206,7 +138,7 @@ version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "96272c2ff28b807e09250b180ad1fb7889a3258f7455759b5c3c58b719467130" dependencies = [ - "hybrid-array", + "hybrid-array 0.2.3", "num-traits", "rand_core 0.6.4", "subtle", @@ -215,31 +147,19 @@ dependencies = [ [[package]] name = "crypto-common" -version = "0.1.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3" +version = "0.2.0-rc.1" dependencies = [ - "generic-array", - "rand_core 0.6.4", - "typenum", + "hybrid-array 0.3.0", + "rand_core 0.9.2", ] [[package]] name = "crypto-common" version = "0.2.0-rc.1" -dependencies = [ - "hybrid-array", - "rand_core 0.9.1", -] - -[[package]] -name = "der" -version = "0.7.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f55bf8e7b65898637379c1b74eb1551107c8294ed26d855ceb9fd1a09cfc9bc0" +checksum = "b0b8ce8218c97789f16356e7896b3714f26c2ee1079b79c0b7ae7064bb9089fa" dependencies = [ - "const-oid 0.9.6", - "zeroize", + "hybrid-array 0.2.3", ] [[package]] @@ -248,50 +168,30 @@ version = "0.8.0-rc.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "82db698b33305f0134faf590b9d1259dc171b5481ac41d5c8146c3b3ee7d4319" dependencies = [ - "const-oid 0.10.0-rc.3", - "pem-rfc7468", + "const-oid", "zeroize", ] -[[package]] -name = "digest" -version = "0.10.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292" -dependencies = [ - "block-buffer 0.10.4", - "crypto-common 0.1.6", - "subtle", -] - [[package]] name = "digest" version = "0.11.0-pre.9" dependencies = [ "blobby", - "block-buffer 0.11.0-rc.3", - "const-oid 0.10.0-rc.3", + "block-buffer", + "const-oid", "crypto-common 0.2.0-rc.1", "subtle", "zeroize", ] [[package]] -name = "elliptic-curve" -version = "0.13.8" +name = "digest" +version = "0.11.0-pre.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b5e6043086bf7973472e0c7dff2142ea0b680d30e18d9cc40f267efbf222bd47" +checksum = "cf2e3d6615d99707295a9673e889bf363a04b2a466bd320c65a72536f7577379" dependencies = [ - "base16ct", - "crypto-bigint 0.5.5", - "ff", - "generic-array", - "group", - "pkcs8 0.10.2", - "rand_core 0.6.4", - "sec1 0.7.3", - "subtle", - "zeroize", + "block-buffer", + "crypto-common 0.2.0-rc.1 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -299,24 +199,14 @@ name = "elliptic-curve" version = "0.14.0-rc.1" dependencies = [ "base16ct", - "base64ct", - "crypto-bigint 0.6.1", - "digest 0.11.0-pre.9", + "crypto-bigint", "ff", "group", - "hex-literal", - "hkdf", - "hybrid-array", - "pem-rfc7468", - "pkcs8 0.11.0-rc.2", + "hybrid-array 0.2.3", + "pkcs8", "rand_core 0.6.4", - "sec1 0.8.0-rc.3", - "serde_json", - "serdect", - "sha2", - "sha3", + "sec1", "subtle", - "tap", "zeroize", ] @@ -326,28 +216,10 @@ version = "0.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ded41244b729663b1e574f1b4fb731469f69f79c17667b5d776b16cda0479449" dependencies = [ - "bitvec", "rand_core 0.6.4", "subtle", ] -[[package]] -name = "funty" -version = "2.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e6d5a32815ae3f33302d95fdcb2ce17862f8c65363dcfd29360480ba1001fc9c" - -[[package]] -name = "generic-array" -version = "0.14.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a" -dependencies = [ - "typenum", - "version_check", - "zeroize", -] - [[package]] name = "getrandom" version = "0.2.15" @@ -403,27 +275,9 @@ dependencies = [ [[package]] name = "hex-literal" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" - -[[package]] -name = "hkdf" -version = "0.13.0-pre.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "00176ff81091018d42ff82e8324f8e5adb0b7e0468d1358f653972562dbff031" -dependencies = [ - "hmac", -] - -[[package]] -name = "hmac" -version = "0.13.0-pre.4" +version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e4b1fb14e4df79f9406b434b60acef9f45c26c50062cccf1346c6103b8c47d58" -dependencies = [ - "digest 0.11.0-pre.9", -] +checksum = "bcaaec4551594c969335c98c903c1397853d4198408ea609190f420500f6be71" [[package]] name = "hybrid-array" @@ -436,45 +290,30 @@ dependencies = [ ] [[package]] -name = "inout" -version = "0.1.3" +name = "hybrid-array" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a0c10553d664a4d0bcff9f4215d0aac67a639cc68ef660840afe309b807bc9f5" +checksum = "4dab50e193aebe510fe0e40230145820e02f48dae0cf339ea4204e6e708ff7bd" dependencies = [ - "block-padding 0.3.3", - "generic-array", + "typenum", + "zeroize", ] [[package]] name = "inout" -version = "0.2.0-rc.3" +version = "0.2.0-rc.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "de49db00f5add6dad75a57946b75de0f26287a6fc95f4f277d48419200422beb" +checksum = "ac5e145e8ade9f74c0a5efc60ccb4e714b0144f7e2220b7ca64254feee71c57f" dependencies = [ - "block-padding 0.4.0-rc.2", - "hybrid-array", -] - -[[package]] -name = "itoa" -version = "1.0.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d75a2a4b1b190afb6f5425f10f6a8f959d2ea0b9c2b1d79553551850539e4674" - -[[package]] -name = "keccak" -version = "0.2.0-pre.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a7cdd4f0dc5807b9a2b25dd48a3f58e862606fe7bd47f41ecde36e97422d7e90" -dependencies = [ - "cpufeatures", + "block-padding", + "hybrid-array 0.3.0", ] [[package]] name = "kem" version = "0.3.0-pre.0" dependencies = [ - "rand_core 0.9.1", + "rand_core 0.9.2", "zeroize", ] @@ -484,12 +323,6 @@ version = "0.2.169" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b5aba8db14291edd000dfcc4d620c7ebfb122c613afb886ca8803fa4e128a20a" -[[package]] -name = "memchr" -version = "2.7.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3" - [[package]] name = "num-traits" version = "0.2.19" @@ -499,53 +332,23 @@ dependencies = [ "autocfg", ] -[[package]] -name = "password-hash" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "346f04948ba92c43e8469c1ee6736c7563d71012b17d40745260fe106aac2166" -dependencies = [ - "base64ct", - "rand_core 0.6.4", - "subtle", -] - [[package]] name = "password-hash" version = "0.6.0-rc.0" dependencies = [ "base64ct", - "rand_core 0.9.1", + "rand_core 0.9.2", "subtle", ] -[[package]] -name = "pem-rfc7468" -version = "1.0.0-rc.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c2dfbfa5c6f0906884269722c5478e72fd4d6c0e24fe600332c6d62359567ce1" -dependencies = [ - "base64ct", -] - -[[package]] -name = "pkcs8" -version = "0.10.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f950b2377845cebe5cf8b5165cb3cc1a5e0fa5cfa3e1f7f55707d8fd82e0a7b7" -dependencies = [ - "der 0.7.9", - "spki 0.7.3", -] - [[package]] name = "pkcs8" version = "0.11.0-rc.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f22636de7c995e997ed3d8d2949b7414d4faba3efa7312a6c0e75d875a14bdd4" dependencies = [ - "der 0.8.0-rc.1", - "spki 0.8.0-rc.1", + "der", + "spki", ] [[package]] @@ -566,12 +369,6 @@ dependencies = [ "proc-macro2", ] -[[package]] -name = "radium" -version = "0.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc33ff2d4973d518d823d61aa239014831e521c75da58e3df4840d3f47749d09" - [[package]] name = "rand_core" version = "0.6.4" @@ -583,34 +380,14 @@ dependencies = [ [[package]] name = "rand_core" -version = "0.9.1" +version = "0.9.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a88e0da7a2c97baa202165137c158d0a2e824ac465d13d81046727b34cb247d3" +checksum = "7a509b1a2ffbe92afab0e55c8fd99dea1c280e8171bd2d88682bb20bc41cbc2c" dependencies = [ "getrandom 0.3.1", "zerocopy", ] -[[package]] -name = "ryu" -version = "1.0.19" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6ea1a2d0a644769cc99faa24c3ad26b379b786fe7c36fd3c546254801650e6dd" - -[[package]] -name = "sec1" -version = "0.7.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3e97a565f76233a6003f9f5c54be1d9c5bdfa3eccfb189469f11ec4901c47dc" -dependencies = [ - "base16ct", - "der 0.7.9", - "generic-array", - "pkcs8 0.10.2", - "subtle", - "zeroize", -] - [[package]] name = "sec1" version = "0.8.0-rc.3" @@ -618,56 +395,13 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d1988446eff153796413a73669dfaa4caa3f5ce8b25fac89e3821a39c611772e" dependencies = [ "base16ct", - "der 0.8.0-rc.1", - "hybrid-array", - "pkcs8 0.11.0-rc.2", - "serdect", + "der", + "hybrid-array 0.2.3", + "pkcs8", "subtle", "zeroize", ] -[[package]] -name = "serde" -version = "1.0.218" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e8dfc9d19bdbf6d17e22319da49161d5d0108e4188e8b680aef6299eed22df60" -dependencies = [ - "serde_derive", -] - -[[package]] -name = "serde_derive" -version = "1.0.218" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f09503e191f4e797cb8aac08e9a4a4695c5edf6a2e70e376d961ddd5c969f82b" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "serde_json" -version = "1.0.139" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "44f86c3acccc9c65b153fe1b85a3be07fe5515274ec9f0653b4a0875731c72a6" -dependencies = [ - "itoa", - "memchr", - "ryu", - "serde", -] - -[[package]] -name = "serdect" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f42f67da2385b51a5f9652db9c93d78aeaf7610bf5ec366080b6de810604af53" -dependencies = [ - "base16ct", - "serde", -] - [[package]] name = "sha2" version = "0.11.0-pre.4" @@ -676,58 +410,39 @@ checksum = "540c0893cce56cdbcfebcec191ec8e0f470dd1889b6e7a0b503e310a94a168f5" dependencies = [ "cfg-if", "cpufeatures", - "digest 0.11.0-pre.9", -] - -[[package]] -name = "sha3" -version = "0.11.0-pre.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e485881f388c2818d709796dc883c1ffcadde9d1f0e054f3a5c14974185261a6" -dependencies = [ - "digest 0.11.0-pre.9", - "keccak", + "digest 0.11.0-pre.9 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "signature" -version = "2.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "77549399552de45a898a580c1b41d445bf730df867cc44e6c0233bbc4b8329de" +version = "2.3.0-pre.6" dependencies = [ - "rand_core 0.6.4", + "digest 0.11.0-pre.9 (registry+https://github.com/rust-lang/crates.io-index)", + "hex-literal", + "rand_core 0.9.2", + "sha2", + "signature_derive", ] [[package]] name = "signature" version = "2.3.0-pre.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4633ec5613e4218fbab07568ca79ee388e3c041af75f0f83a15f040f096f94cf" dependencies = [ - "digest 0.11.0-pre.9", - "hex-literal", - "rand_core 0.9.1", - "sha2", - "signature_derive", + "digest 0.11.0-pre.9 (registry+https://github.com/rust-lang/crates.io-index)", + "rand_core 0.9.2", ] [[package]] name = "signature_derive" -version = "2.1.0" +version = "2.2.0" dependencies = [ "proc-macro2", "quote", "syn", ] -[[package]] -name = "spki" -version = "0.7.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d91ed6c858b01f942cd56b37a94b3e0a1798290327d1236e4d9cf4eaca44d29d" -dependencies = [ - "base64ct", - "der 0.7.9", -] - [[package]] name = "spki" version = "0.8.0-rc.1" @@ -735,7 +450,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "37ac66481418fd7afdc584adcf3be9aa572cf6c2858814494dc2a01755f050bc" dependencies = [ "base64ct", - "der 0.8.0-rc.1", + "der", ] [[package]] @@ -761,12 +476,6 @@ dependencies = [ "unicode-ident", ] -[[package]] -name = "tap" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369" - [[package]] name = "typenum" version = "1.18.0" @@ -779,16 +488,6 @@ version = "1.0.17" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "00e2473a93778eb0bad35909dff6a10d28e63f792f16ed15e404fca9d5eeedbe" -[[package]] -name = "universal-hash" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fc1de2c688dc15305988b563c3854064043356019f97a4b46276fe734c4f07ea" -dependencies = [ - "crypto-common 0.1.6", - "subtle", -] - [[package]] name = "universal-hash" version = "0.6.0-rc.0" @@ -797,12 +496,6 @@ dependencies = [ "subtle", ] -[[package]] -name = "version_check" -version = "0.9.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a" - [[package]] name = "wasi" version = "0.11.0+wasi-snapshot-preview1" @@ -891,15 +584,6 @@ dependencies = [ "bitflags", ] -[[package]] -name = "wyz" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "05f360fc0b24296329c78fda852a1e9ae82de9cf7b27dae4b7f62f118f77b9ed" -dependencies = [ - "tap", -] - [[package]] name = "zerocopy" version = "0.8.20" diff --git a/Cargo.toml b/Cargo.toml index 354080ca9..53e77019f 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,5 +1,5 @@ [workspace] -resolver = "2" +resolver = "3" members = [ "aead", "async-signature", @@ -7,15 +7,10 @@ members = [ "crypto", "crypto-common", "digest", - "elliptic-curve", "kem", "password-hash", "signature", "signature_derive", "universal-hash", ] - -[patch.crates-io] -crypto-common = { path = "./crypto-common" } -digest = { path = "./digest" } -signature = { path = "./signature" } +exclude = ["elliptic-curve"] diff --git a/README.md b/README.md index 39f486ac5..89ffebebf 100644 --- a/README.md +++ b/README.md @@ -8,26 +8,22 @@ Collection of traits which describe functionality of cryptographic primitives. | Name | Algorithm | Crates.io | Docs | MSRV | |---------------------|-----------|:---------:|:-----:|:----:| -| [`aead`] | [Authenticated encryption] | [![crates.io](https://img.shields.io/crates/v/aead.svg)](https://crates.io/crates/aead) | [![Documentation](https://docs.rs/aead/badge.svg)](https://docs.rs/aead) | ![MSRV 1.56][msrv-1.56] | -| [`async‑signature`] | [Digital signature] | [![crates.io](https://img.shields.io/crates/v/async-signature.svg)](https://crates.io/crates/async-signature) | [![Documentation](https://docs.rs/async-signature/badge.svg)](https://docs.rs/async-signature) | ![MSRV 1.56][msrv-1.56] | -| [`cipher`] | [Block] and [stream cipher] | [![crates.io](https://img.shields.io/crates/v/cipher.svg)](https://crates.io/crates/cipher) | [![Documentation](https://docs.rs/cipher/badge.svg)](https://docs.rs/cipher) | ![MSRV 1.56][msrv-1.56] | -| [`crypto‑common`] | Common cryptographic traits | [![crates.io](https://img.shields.io/crates/v/crypto-common.svg)](https://crates.io/crates/crypto-common) | [![Documentation](https://docs.rs/crypto-common/badge.svg)](https://docs.rs/crypto-common) | ![MSRV 1.56][msrv-1.56] | -| [`digest`] | [Cryptographic hash function] | [![crates.io](https://img.shields.io/crates/v/digest.svg)](https://crates.io/crates/digest) | [![Documentation](https://docs.rs/digest/badge.svg)](https://docs.rs/digest) | ![MSRV 1.57][msrv-1.57] | -| [`elliptic‑curve`] | [Elliptic curve cryptography] | [![crates.io](https://img.shields.io/crates/v/elliptic-curve.svg)](https://crates.io/crates/elliptic-curve) | [![Documentation](https://docs.rs/elliptic-curve/badge.svg)](https://docs.rs/elliptic-curve) | ![MSRV 1.65][msrv-1.65] | -| [`kem`] | [Key encapsulation mechanism] | [![crates.io](https://img.shields.io/crates/v/kem.svg)](https://crates.io/crates/kem) | [![Documentation](https://docs.rs/kem/badge.svg)](https://docs.rs/kem) | ![MSRV 1.60][msrv-1.60] | -| [`password-hash`] | [Password hashing] | [![crates.io](https://img.shields.io/crates/v/password-hash.svg)](https://crates.io/crates/password-hash) | [![Documentation](https://docs.rs/password-hash/badge.svg)](https://docs.rs/password-hash) | ![MSRV 1.60][msrv-1.60] | -| [`signature`] | [Digital signature] | [![crates.io](https://img.shields.io/crates/v/signature.svg)](https://crates.io/crates/signature) | [![Documentation](https://docs.rs/signature/badge.svg)](https://docs.rs/signature) | ![MSRV 1.56][msrv-1.56] | -| [`universal‑hash`] | [Universal hash function] | [![crates.io](https://img.shields.io/crates/v/universal-hash.svg)](https://crates.io/crates/universal-hash) | [![Documentation](https://docs.rs/universal-hash/badge.svg)](https://docs.rs/universal-hash) | ![MSRV 1.56][msrv-1.56] | +| [`aead`] | [Authenticated encryption] | [![crates.io](https://img.shields.io/crates/v/aead.svg)](https://crates.io/crates/aead) | [![Documentation](https://docs.rs/aead/badge.svg)](https://docs.rs/aead) | ![MSRV 1.85][msrv-1.85] | +| [`async‑signature`] | [Digital signature] | [![crates.io](https://img.shields.io/crates/v/async-signature.svg)](https://crates.io/crates/async-signature) | [![Documentation](https://docs.rs/async-signature/badge.svg)](https://docs.rs/async-signature) | ![MSRV 1.85][msrv-1.85] | +| [`cipher`] | [Block] and [stream cipher] | [![crates.io](https://img.shields.io/crates/v/cipher.svg)](https://crates.io/crates/cipher) | [![Documentation](https://docs.rs/cipher/badge.svg)](https://docs.rs/cipher) | ![MSRV 1.85][msrv-1.85] | +| [`crypto‑common`] | Common cryptographic traits | [![crates.io](https://img.shields.io/crates/v/crypto-common.svg)](https://crates.io/crates/crypto-common) | [![Documentation](https://docs.rs/crypto-common/badge.svg)](https://docs.rs/crypto-common) | ![MSRV 1.85][msrv-1.85] | +| [`digest`] | [Cryptographic hash function] | [![crates.io](https://img.shields.io/crates/v/digest.svg)](https://crates.io/crates/digest) | [![Documentation](https://docs.rs/digest/badge.svg)](https://docs.rs/digest) | ![MSRV 1.85][msrv-1.85] | +| [`elliptic‑curve`] | [Elliptic curve cryptography] | [![crates.io](https://img.shields.io/crates/v/elliptic-curve.svg)](https://crates.io/crates/elliptic-curve) | [![Documentation](https://docs.rs/elliptic-curve/badge.svg)](https://docs.rs/elliptic-curve) | ![MSRV 1.85][msrv-1.85] | +| [`kem`] | [Key encapsulation mechanism] | [![crates.io](https://img.shields.io/crates/v/kem.svg)](https://crates.io/crates/kem) | [![Documentation](https://docs.rs/kem/badge.svg)](https://docs.rs/kem) | ![MSRV 1.85][msrv-1.85] | +| [`password-hash`] | [Password hashing] | [![crates.io](https://img.shields.io/crates/v/password-hash.svg)](https://crates.io/crates/password-hash) | [![Documentation](https://docs.rs/password-hash/badge.svg)](https://docs.rs/password-hash) | ![MSRV 1.85][msrv-1.85] | +| [`signature`] | [Digital signature] | [![crates.io](https://img.shields.io/crates/v/signature.svg)](https://crates.io/crates/signature) | [![Documentation](https://docs.rs/signature/badge.svg)](https://docs.rs/signature) | ![MSRV 1.85][msrv-1.85] | +| [`universal‑hash`] | [Universal hash function] | [![crates.io](https://img.shields.io/crates/v/universal-hash.svg)](https://crates.io/crates/universal-hash) | [![Documentation](https://docs.rs/universal-hash/badge.svg)](https://docs.rs/universal-hash) | ![MSRV 1.85][msrv-1.85] | ### Additional Crates | Crate name | Description | Crates.io | Docs | MSRV | |------------|-------------------------|:---------:|:-----:|:----:| -| [`crypto`] | Facade for trait crates | [![crates.io](https://img.shields.io/crates/v/crypto.svg)](https://crates.io/crates/crypto) | [![Documentation](https://docs.rs/crypto/badge.svg)](https://docs.rs/crypto) | ![MSRV 1.57][msrv-1.57] | - -### Minimum Supported Rust Version (MSRV) Policy - -MSRV bumps are considered breaking changes and will be performed only with minor version bump. +| [`crypto`] | Facade for trait crates | [![crates.io](https://img.shields.io/crates/v/crypto.svg)](https://crates.io/crates/crypto) | [![Documentation](https://docs.rs/crypto/badge.svg)](https://docs.rs/crypto) | ![MSRV 1.85][msrv-1.85] | ## License @@ -49,10 +45,7 @@ Unless you explicitly state otherwise, any contribution intentionally submitted [license-image]: https://img.shields.io/badge/license-Apache2.0/MIT-blue.svg [deps-image]: https://deps.rs/repo/github/RustCrypto/traits/status.svg [deps-link]: https://deps.rs/repo/github/RustCrypto/traits -[msrv-1.56]: https://img.shields.io/badge/rustc-1.56.0+-blue.svg -[msrv-1.57]: https://img.shields.io/badge/rustc-1.57.0+-blue.svg -[msrv-1.60]: https://img.shields.io/badge/rustc-1.60.0+-blue.svg -[msrv-1.65]: https://img.shields.io/badge/rustc-1.65.0+-blue.svg +[msrv-1.85]: https://img.shields.io/badge/rustc-1.85.0+-blue.svg [//]: # (crates) diff --git a/aead/CHANGELOG.md b/aead/CHANGELOG.md index 64c3f094b..b1395f3dd 100644 --- a/aead/CHANGELOG.md +++ b/aead/CHANGELOG.md @@ -11,6 +11,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - fixup `hybrid-array` migration ([#1531]) ### Changed +- Edition changed to 2024 and MSRV bumped to 1.85 ([#1759]) - Migrate to `doc_auto_cfg` ([#1370]) - Exclude pre-1.60 crates from workspace ([#1380]) - bump `crypto-common` to v0.2.0-pre; MSRV 1.65 ([#1384]) @@ -39,6 +40,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 [#1469]: https://github.com/RustCrypto/traits/pull/1469 [#1496]: https://github.com/RustCrypto/traits/pull/1496 [#1531]: https://github.com/RustCrypto/traits/pull/1531 +[#1759]: https://github.com/RustCrypto/traits/pull/1759 ## 0.5.2 (2023-04-02) ### Added diff --git a/aead/Cargo.toml b/aead/Cargo.toml index 5c6da836f..6259fcfc6 100644 --- a/aead/Cargo.toml +++ b/aead/Cargo.toml @@ -6,21 +6,21 @@ Traits for Authenticated Encryption with Associated Data (AEAD) algorithms, such as AES-GCM as ChaCha20Poly1305, which provide a high-level API """ authors = ["RustCrypto Developers"] -edition = "2021" license = "MIT OR Apache-2.0" readme = "README.md" +edition = "2024" +rust-version = "1.85" documentation = "https://docs.rs/aead" repository = "https://github.com/RustCrypto/traits" keywords = ["crypto", "encryption"] categories = ["cryptography", "no-std"] -rust-version = "1.81" [dependencies] -crypto-common = "0.2.0-rc.1" +crypto-common = { version = "0.2.0-rc.1", path = "../crypto-common" } # optional dependencies arrayvec = { version = "0.7", optional = true, default-features = false } -blobby = { version = "0.3", optional = true } +blobby = { version = "0.4.0-pre.0", optional = true } bytes = { version = "1", optional = true, default-features = false } heapless = { version = "0.8", optional = true, default-features = false } diff --git a/aead/README.md b/aead/README.md index 0a0dd045a..a775d428c 100644 --- a/aead/README.md +++ b/aead/README.md @@ -15,15 +15,6 @@ modern cryptographic implementations. See [RustCrypto/AEADs] for cipher implementations which use this trait. -[Documentation][docs-link] - -## Minimum Supported Rust Version - -Rust **1.81** or higher. - -Minimum supported Rust version can be changed in the future, but it will be -done with a minor version bump. - ## SemVer Policy - All on-by-default features of this library are covered by SemVer @@ -51,7 +42,7 @@ dual licensed as above, without any additional terms or conditions. [docs-image]: https://docs.rs/aead/badge.svg [docs-link]: https://docs.rs/aead/ [license-image]: https://img.shields.io/badge/license-Apache2.0/MIT-blue.svg -[rustc-image]: https://img.shields.io/badge/rustc-1.81+-blue.svg +[rustc-image]: https://img.shields.io/badge/rustc-1.85+-blue.svg [chat-image]: https://img.shields.io/badge/zulip-join_chat-blue.svg [chat-link]: https://rustcrypto.zulipchat.com/#narrow/stream/260038-AEADs [build-image]: https://github.com/RustCrypto/traits/workflows/aead/badge.svg?branch=master&event=push diff --git a/aead/src/dev.rs b/aead/src/dev.rs index b7edf89cb..b128014bd 100644 --- a/aead/src/dev.rs +++ b/aead/src/dev.rs @@ -8,9 +8,9 @@ macro_rules! new_test { #[test] fn $name() { use aead::{ - array::{typenum::Unsigned, Array}, - dev::blobby::Blob6Iterator, Aead, KeyInit, Payload, + array::{Array, typenum::Unsigned}, + dev::blobby::Blob6Iterator, }; fn run_test( diff --git a/aead/src/lib.rs b/aead/src/lib.rs index cdd28e132..0294b6f48 100644 --- a/aead/src/lib.rs +++ b/aead/src/lib.rs @@ -22,8 +22,8 @@ pub mod dev; pub mod stream; pub use crypto_common::{ - array::{self, typenum::consts}, Key, KeyInit, KeySizeUser, + array::{self, typenum::consts}, }; #[cfg(feature = "arrayvec")] @@ -37,7 +37,7 @@ pub use heapless; pub use crypto_common::rand_core; use core::fmt; -use crypto_common::array::{typenum::Unsigned, Array, ArraySize}; +use crypto_common::array::{Array, ArraySize, typenum::Unsigned}; #[cfg(feature = "alloc")] use alloc::vec::Vec; diff --git a/async-signature/CHANGELOG.md b/async-signature/CHANGELOG.md index 70bd82f9e..bef58c09a 100644 --- a/async-signature/CHANGELOG.md +++ b/async-signature/CHANGELOG.md @@ -4,6 +4,12 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). +## 0.6.0 (UNRELEASED) +### Changed +- Edition changed to 2024 and MSRV bumped to 1.85 ([#1759]) + +[#1759]: https://github.com/RustCrypto/traits/pull/1759 + ## 0.5.1 (2024-04-02) ### Added - `no_std` support ([#1544]) diff --git a/async-signature/Cargo.toml b/async-signature/Cargo.toml index 01ba8a4ff..18bc0d095 100644 --- a/async-signature/Cargo.toml +++ b/async-signature/Cargo.toml @@ -10,8 +10,8 @@ repository = "https://github.com/RustCrypto/traits" readme = "README.md" keywords = ["crypto", "ecdsa", "ed25519", "signature", "signing"] categories = ["cryptography", "no-std"] -edition = "2021" -rust-version = "1.81" +edition = "2024" +rust-version = "1.85" [dependencies] signature = "=2.3.0-pre.6" diff --git a/async-signature/README.md b/async-signature/README.md index a1898475b..5c3fbe08e 100644 --- a/async-signature/README.md +++ b/async-signature/README.md @@ -11,13 +11,6 @@ This crate is now deprecated, all the types are available in [`signature`][signature-crate] -## Minimum Supported Rust Version - -Rust **1.81** or higher. - -Minimum supported Rust version can be changed in the future, but it will be -done with a minor version bump. - ## License Licensed under either of @@ -40,7 +33,7 @@ dual licensed as above, without any additional terms or conditions. [docs-image]: https://docs.rs/async-signature/badge.svg [docs-link]: https://docs.rs/async-signature/ [license-image]: https://img.shields.io/badge/license-Apache2.0/MIT-blue.svg -[rustc-image]: https://img.shields.io/badge/rustc-1.81+-blue.svg +[rustc-image]: https://img.shields.io/badge/rustc-1.85+-blue.svg [chat-image]: https://img.shields.io/badge/zulip-join_chat-blue.svg [chat-link]: https://rustcrypto.zulipchat.com/#narrow/stream/260048-signatures [build-image]: https://github.com/RustCrypto/traits/workflows/async-signature/badge.svg?branch=master&event=push diff --git a/cipher/CHANGELOG.md b/cipher/CHANGELOG.md index 4a388fb37..c818a3ece 100644 --- a/cipher/CHANGELOG.md +++ b/cipher/CHANGELOG.md @@ -5,6 +5,12 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). +## 0.5.0 (UNRELEASED) +### Changed +- Edition changed to 2024 and MSRV bumped to 1.85 ([#1759]) + +[#1759]: https://github.com/RustCrypto/traits/pull/1759 + ## 0.4.4 (2022-03-09) ### Changed - Move `ParBlocks`/`ParBlocksSizeUser` to the `crypto-common` crate ([#1052]) diff --git a/cipher/Cargo.toml b/cipher/Cargo.toml index ab140c9d1..95b9735d4 100644 --- a/cipher/Cargo.toml +++ b/cipher/Cargo.toml @@ -5,19 +5,19 @@ version = "0.5.0-pre.7" authors = ["RustCrypto Developers"] license = "MIT OR Apache-2.0" readme = "README.md" -edition = "2021" -rust-version = "1.81" +edition = "2024" +rust-version = "1.85" documentation = "https://docs.rs/cipher" repository = "https://github.com/RustCrypto/traits" keywords = ["crypto", "block-cipher", "stream-cipher", "trait"] categories = ["cryptography", "no-std"] [dependencies] -crypto-common = "0.2.0-rc.1" -inout = "0.2.0-rc.1" +crypto-common = { version = "0.2.0-rc.1", path = "../crypto-common" } +inout = "0.2.0-rc.4" # optional dependencies -blobby = { version = "0.3", optional = true } +blobby = { version = "0.4.0-pre.0", optional = true } zeroize = { version = "1.8", optional = true, default-features = false } [features] diff --git a/cipher/README.md b/cipher/README.md index 350be54bd..217e5b909 100644 --- a/cipher/README.md +++ b/cipher/README.md @@ -12,15 +12,6 @@ Traits which define the functionality of [block ciphers] and [stream ciphers]. See [RustCrypto/block-ciphers] and [RustCrypto/stream-ciphers] for algorithm implementations which use these traits. -[Documentation][docs-link] - -## Minimum Supported Rust Version - -Rust **1.81** or higher. - -Minimum supported Rust version can be changed in the future, but it will be -done with a minor version bump. - ## SemVer Policy - All on-by-default features of this library are covered by SemVer @@ -48,7 +39,7 @@ dual licensed as above, without any additional terms or conditions. [docs-image]: https://docs.rs/cipher/badge.svg [docs-link]: https://docs.rs/cipher/ [license-image]: https://img.shields.io/badge/license-Apache2.0/MIT-blue.svg -[rustc-image]: https://img.shields.io/badge/rustc-1.81+-blue.svg +[rustc-image]: https://img.shields.io/badge/rustc-1.85+-blue.svg [chat-image]: https://img.shields.io/badge/zulip-join_chat-blue.svg [chat-link]: https://rustcrypto.zulipchat.com/#narrow/stream/260050-traits [build-image]: https://github.com/RustCrypto/traits/workflows/cipher/badge.svg?branch=master&event=push diff --git a/cipher/src/block.rs b/cipher/src/block.rs index 3699ebfdb..253e6c704 100644 --- a/cipher/src/block.rs +++ b/cipher/src/block.rs @@ -13,12 +13,12 @@ #[cfg(all(feature = "block-padding", feature = "alloc"))] use alloc::{vec, vec::Vec}; use crypto_common::{Block, BlockSizeUser}; +use inout::{InOut, InOutBuf, NotEqualError}; #[cfg(feature = "block-padding")] use inout::{ - block_padding::{Padding, UnpadError}, InOutBufReserved, PadError, + block_padding::{Padding, UnpadError}, }; -use inout::{InOut, InOutBuf, NotEqualError}; mod backends; mod ctx; diff --git a/cipher/src/block/backends.rs b/cipher/src/block/backends.rs index e035b3993..1def03b9b 100644 --- a/cipher/src/block/backends.rs +++ b/cipher/src/block/backends.rs @@ -1,4 +1,4 @@ -use crypto_common::{typenum::Unsigned, Block, BlockSizeUser, ParBlocks, ParBlocksSizeUser}; +use crypto_common::{Block, BlockSizeUser, ParBlocks, ParBlocksSizeUser, typenum::Unsigned}; use inout::{InOut, InOutBuf}; /// Trait implemented by block cipher mode encryption backends. diff --git a/cipher/src/block/ctx.rs b/cipher/src/block/ctx.rs index 7a7634120..80b0537ed 100644 --- a/cipher/src/block/ctx.rs +++ b/cipher/src/block/ctx.rs @@ -1,4 +1,4 @@ -use crypto_common::{typenum::Unsigned, Block, BlockSizeUser, BlockSizes}; +use crypto_common::{Block, BlockSizeUser, BlockSizes, typenum::Unsigned}; use inout::{InOut, InOutBuf}; use super::{ diff --git a/cipher/src/dev/block.rs b/cipher/src/dev/block.rs index 42558c561..6a7f90426 100644 --- a/cipher/src/dev/block.rs +++ b/cipher/src/dev/block.rs @@ -7,11 +7,11 @@ macro_rules! block_cipher_test { #[test] fn $name() { use cipher::{ + BlockSizeUser, KeyInit, array::Array, blobby::Blob3Iterator, block::{BlockCipherDecrypt, BlockCipherEncrypt}, typenum::Unsigned, - BlockSizeUser, KeyInit, }; fn run_test(key: &[u8], pt: &[u8], ct: &[u8]) -> bool { @@ -104,8 +104,8 @@ macro_rules! block_mode_enc_test { #[test] fn $name() { use cipher::{ - array::Array, blobby::Blob4Iterator, inout::InOutBuf, typenum::Unsigned, - BlockCipherEncrypt, BlockModeEncrypt, BlockSizeUser, KeyIvInit, + BlockCipherEncrypt, BlockModeEncrypt, BlockSizeUser, KeyIvInit, array::Array, + blobby::Blob4Iterator, inout::InOutBuf, typenum::Unsigned, }; fn run_test(key: &[u8], iv: &[u8], pt: &[u8], ct: &[u8]) -> bool { @@ -162,8 +162,8 @@ macro_rules! block_mode_dec_test { #[test] fn $name() { use cipher::{ - array::Array, blobby::Blob4Iterator, inout::InOutBuf, typenum::Unsigned, - BlockCipherDecrypt, BlockModeDecrypt, BlockSizeUser, KeyIvInit, + BlockCipherDecrypt, BlockModeDecrypt, BlockSizeUser, KeyIvInit, array::Array, + blobby::Blob4Iterator, inout::InOutBuf, typenum::Unsigned, }; fn run_test(key: &[u8], iv: &[u8], pt: &[u8], ct: &[u8]) -> bool { diff --git a/cipher/src/dev/stream.rs b/cipher/src/dev/stream.rs index 5502b7fe8..ff530f4cd 100644 --- a/cipher/src/dev/stream.rs +++ b/cipher/src/dev/stream.rs @@ -7,7 +7,7 @@ macro_rules! stream_cipher_test { #[test] fn $name() { use cipher::array::Array; - use cipher::{blobby::Blob4Iterator, KeyIvInit, StreamCipher}; + use cipher::{KeyIvInit, StreamCipher, blobby::Blob4Iterator}; let data = include_bytes!(concat!("data/", $test_name, ".blb")); for (i, row) in Blob4Iterator::new(data).unwrap().enumerate() { diff --git a/cipher/src/lib.rs b/cipher/src/lib.rs index 9fff63c52..7771e5973 100644 --- a/cipher/src/lib.rs +++ b/cipher/src/lib.rs @@ -43,9 +43,9 @@ pub use stream::*; pub use tweak::*; pub use crypto_common::{ - array::{self, Array}, - typenum::{self, consts}, AlgorithmName, Block, BlockSizeUser, InnerIvInit, InvalidLength, Iv, IvSizeUser, IvState, Key, KeyInit, KeyIvInit, KeySizeUser, ParBlocks, ParBlocksSizeUser, + array::{self, Array}, + typenum::{self, consts}, }; pub use inout::{InOut, InOutBuf}; diff --git a/cipher/src/stream/wrapper.rs b/cipher/src/stream/wrapper.rs index 16863a42c..e438ef4a4 100644 --- a/cipher/src/stream/wrapper.rs +++ b/cipher/src/stream/wrapper.rs @@ -1,9 +1,9 @@ use super::{ - errors::StreamCipherError, Block, OverflowError, SeekNum, StreamCipher, StreamCipherCore, - StreamCipherSeek, StreamCipherSeekCore, + Block, OverflowError, SeekNum, StreamCipher, StreamCipherCore, StreamCipherSeek, + StreamCipherSeekCore, errors::StreamCipherError, }; use core::fmt; -use crypto_common::{typenum::Unsigned, Iv, IvSizeUser, Key, KeyInit, KeyIvInit, KeySizeUser}; +use crypto_common::{Iv, IvSizeUser, Key, KeyInit, KeyIvInit, KeySizeUser, typenum::Unsigned}; use inout::InOutBuf; #[cfg(feature = "zeroize")] use zeroize::{Zeroize, ZeroizeOnDrop}; diff --git a/cipher/src/tweak.rs b/cipher/src/tweak.rs index ec3cb432e..3aa315d47 100644 --- a/cipher/src/tweak.rs +++ b/cipher/src/tweak.rs @@ -2,8 +2,8 @@ //! //! [1]: https://people.eecs.berkeley.edu/~daw/papers/tweak-crypto02.pdf use crypto_common::{ - array::{Array, ArraySize}, Block, BlockSizeUser, + array::{Array, ArraySize}, }; use inout::InOut; diff --git a/cipher/src/tweak/ctx.rs b/cipher/src/tweak/ctx.rs index 65ca6a557..07e91dc75 100644 --- a/cipher/src/tweak/ctx.rs +++ b/cipher/src/tweak/ctx.rs @@ -1,4 +1,4 @@ -use crypto_common::{array::ArraySize, Block, BlockSizeUser, BlockSizes}; +use crypto_common::{Block, BlockSizeUser, BlockSizes, array::ArraySize}; use inout::InOut; use super::{ diff --git a/cipher/src/tweak/zero.rs b/cipher/src/tweak/zero.rs index 9bebf1a90..1dca78f22 100644 --- a/cipher/src/tweak/zero.rs +++ b/cipher/src/tweak/zero.rs @@ -1,15 +1,15 @@ use core::marker::PhantomData; -use crypto_common::{array::ArraySize, Block, BlockSizes, ParBlocksSizeUser}; +use crypto_common::{Block, BlockSizes, ParBlocksSizeUser, array::ArraySize}; use super::{ TweakBlockCipherDecBackend, TweakBlockCipherDecClosure, TweakBlockCipherDecrypt, TweakBlockCipherEncBackend, TweakBlockCipherEncrypt, TweakSizeUser, }; use crate::{ - consts::U1, tweak::TweakBlockCipherEncClosure, BlockCipherDecBackend, BlockCipherDecClosure, - BlockCipherDecrypt, BlockCipherEncBackend, BlockCipherEncClosure, BlockCipherEncrypt, - BlockSizeUser, + BlockCipherDecBackend, BlockCipherDecClosure, BlockCipherDecrypt, BlockCipherEncBackend, + BlockCipherEncClosure, BlockCipherEncrypt, BlockSizeUser, consts::U1, + tweak::TweakBlockCipherEncClosure, }; /// Wrapper around tweakable block cipher which implements diff --git a/crypto-common/CHANGELOG.md b/crypto-common/CHANGELOG.md index 448cb106c..71cea962e 100644 --- a/crypto-common/CHANGELOG.md +++ b/crypto-common/CHANGELOG.md @@ -5,13 +5,15 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). -## UNRELEASED +## 0.2.0 (UNRELEASED) ### Added - Sealed `BlockSizes` trait implemented for types from `U1` to `U255` ### Changed - `BlockUser::BlockSize` is now bounded by the `BlockSizes` trait -- Edition changed to 2021 and MSRV bumped to 1.56 +- Edition changed to 2024 and MSRV bumped to 1.85 ([#1759]) + +[#1759]: https://github.com/RustCrypto/traits/pull/1759 ## 0.1.6 (2022-07-16) ### Added diff --git a/crypto-common/Cargo.toml b/crypto-common/Cargo.toml index 48dcd6909..47dc148aa 100644 --- a/crypto-common/Cargo.toml +++ b/crypto-common/Cargo.toml @@ -5,15 +5,15 @@ version = "0.2.0-rc.1" authors = ["RustCrypto Developers"] license = "MIT OR Apache-2.0" readme = "README.md" -edition = "2021" -rust-version = "1.81" +edition = "2024" +rust-version = "1.85" documentation = "https://docs.rs/crypto-common" repository = "https://github.com/RustCrypto/traits" keywords = ["crypto", "traits"] categories = ["cryptography", "no-std"] [dependencies] -hybrid-array = "0.2" +hybrid-array = "0.3" # optional dependencies rand_core = { version = "0.9", optional = true } diff --git a/crypto-common/README.md b/crypto-common/README.md index 2197b4091..afe814106 100644 --- a/crypto-common/README.md +++ b/crypto-common/README.md @@ -10,15 +10,6 @@ Common traits used by cryptographic algorithms. Users should generally use higher-level trait crates instead of this one. -[Documentation][docs-link] - -## Minimum Supported Rust Version - -Rust **1.81** or higher. - -Minimum supported Rust version can be changed in the future, but it will be -done with a minor version bump. - ## SemVer Policy - All on-by-default features of this library are covered by SemVer @@ -46,7 +37,7 @@ dual licensed as above, without any additional terms or conditions. [docs-image]: https://docs.rs/crypto-common/badge.svg [docs-link]: https://docs.rs/crypto-common/ [license-image]: https://img.shields.io/badge/license-Apache2.0/MIT-blue.svg -[rustc-image]: https://img.shields.io/badge/rustc-1.81+-blue.svg +[rustc-image]: https://img.shields.io/badge/rustc-1.85+-blue.svg [chat-image]: https://img.shields.io/badge/zulip-join_chat-blue.svg [chat-link]: https://rustcrypto.zulipchat.com/#narrow/stream/260041-hashes [build-image]: https://github.com/RustCrypto/traits/workflows/crypto-common/badge.svg?branch=master&event=push diff --git a/crypto-common/src/hazmat.rs b/crypto-common/src/hazmat.rs index b8df738aa..864239534 100644 --- a/crypto-common/src/hazmat.rs +++ b/crypto-common/src/hazmat.rs @@ -1,7 +1,6 @@ use crate::array::{ - self, - typenum::{Diff, Prod, Sum, Unsigned, U1, U16, U2, U4, U8}, - Array, ArraySize, + self, Array, ArraySize, + typenum::{Diff, Prod, Sum, U1, U2, U4, U8, U16, Unsigned}, }; use core::{convert::TryInto, default::Default, fmt}; @@ -52,7 +51,7 @@ where fn serialize(&self) -> SerializedState; /// Create an object from serialized internal state. fn deserialize(serialized_state: &SerializedState) - -> Result; + -> Result; } macro_rules! impl_seializable_state_unsigned { diff --git a/crypto-common/src/lib.rs b/crypto-common/src/lib.rs index ddd2db7fe..240e1257d 100644 --- a/crypto-common/src/lib.rs +++ b/crypto-common/src/lib.rs @@ -20,8 +20,8 @@ pub use hybrid_array::typenum; use core::fmt; use hybrid_array::{ - typenum::{Diff, Sum, Unsigned}, Array, ArraySize, + typenum::{Diff, Sum, Unsigned}, }; #[cfg(feature = "rand_core")] @@ -79,7 +79,7 @@ pub trait BlockSizes: ArraySize + sealed::BlockSizes {} impl BlockSizes for T {} mod sealed { - use crate::typenum::{Gr, IsGreater, IsLess, Le, NonZero, Unsigned, U0, U256}; + use crate::typenum::{Gr, IsGreater, IsLess, Le, NonZero, U0, U256, Unsigned}; pub trait BlockSizes {} diff --git a/crypto/CHANGELOG.md b/crypto/CHANGELOG.md index 55339b261..f5b7fd9c8 100644 --- a/crypto/CHANGELOG.md +++ b/crypto/CHANGELOG.md @@ -5,6 +5,12 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). +## 0.6.0 (UNRELEASED) +### Changed +- Edition changed to 2024 and MSRV bumped to 1.85 ([#1759]) + +[#1759]: https://github.com/RustCrypto/traits/pull/1759 + ## 0.5.1 (2023-05-27) Unchanged from v0.5.0, but published to trigger a new docs.rs build. diff --git a/crypto/Cargo.toml b/crypto/Cargo.toml index 24eb941cc..855af57ed 100644 --- a/crypto/Cargo.toml +++ b/crypto/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "crypto" -version = "0.5.1" +version = "0.6.0-pre" description = "Facade crate for all of the RustCrypto traits (e.g. `aead`, `cipher`, `digest`)" authors = ["The RustCrypto Project Developers"] license = "Apache-2.0 OR MIT" @@ -9,32 +9,28 @@ repository = "https://github.com/RustCrypto/traits" keywords = ["crypto", "encryption", "rustcrypto"] categories = ["cryptography", "no-std"] readme = "README.md" -edition = "2021" -rust-version = "1.65" +edition = "2024" +rust-version = "1.85" [dependencies] -crypto-common = { version = "0.1", default-features = false } +crypto-common = { version = "0.2.0-rc.1", path = "../crypto-common", default-features = false } # optional dependencies -aead = { version = "0.5", optional = true } -cipher = { version = "0.4", optional = true } -digest = { version = "0.10", optional = true, features = ["mac"] } -elliptic-curve = { version = "0.13", optional = true } -password-hash = { version = "0.5", optional = true } -signature = { version = "2", optional = true, default-features = false } -universal-hash = { version = "0.5", optional = true } +aead = { version = "0.6.0-rc.0", path = "../aead", optional = true } +cipher = { version = "0.5.0-pre.7", path = "../cipher", optional = true } +digest = { version = "0.11.0-pre.9", path = "../digest", optional = true, features = ["mac"] } +elliptic-curve = { version = "0.14.0-rc.1", path = "../elliptic-curve", optional = true } +password-hash = { version = "0.6.0-rc.0", path = "../password-hash", optional = true } +signature = { version = "2.3.0-pre.6", path = "../signature", optional = true, default-features = false } +universal-hash = { version = "0.6.0-rc.0", path = "../universal-hash", optional = true } [features] std = [ - "aead/std", - "cipher/std", "digest/std", "elliptic-curve/std", - "password-hash/std", "signature/std", - "universal-hash/std" ] -getrandom = ["crypto-common/getrandom"] +os_rng = ["crypto-common/os_rng"] rand_core = ["crypto-common/rand_core"] [package.metadata.docs.rs] diff --git a/crypto/README.md b/crypto/README.md index 7c5ac4c49..5041bc108 100644 --- a/crypto/README.md +++ b/crypto/README.md @@ -50,13 +50,6 @@ depend on) must enable the associated Cargo feature named below. [1]: https://github.com/RustCrypto/traits [2]: https://github.com/RustCrypto -## Minimum Supported Rust Version - -Rust **1.65** or higher. - -Minimum supported Rust version can be changed in the future, but it will be -done with a minor version bump. - ## SemVer Policy - All on-by-default features of this library are covered by SemVer @@ -84,7 +77,7 @@ dual licensed as above, without any additional terms or conditions. [docs-image]: https://docs.rs/crypto/badge.svg [docs-link]: https://docs.rs/crypto/ [license-image]: https://img.shields.io/badge/license-Apache2.0/MIT-blue.svg -[rustc-image]: https://img.shields.io/badge/rustc-1.65+-blue.svg +[rustc-image]: https://img.shields.io/badge/rustc-1.85+-blue.svg [chat-image]: https://img.shields.io/badge/zulip-join_chat-blue.svg [chat-link]: https://rustcrypto.zulipchat.com/#narrow/stream/260050-Traits [build-image]: https://github.com/RustCrypto/traits/workflows/crypto/badge.svg?branch=master&event=push diff --git a/digest/CHANGELOG.md b/digest/CHANGELOG.md index afff142f6..a6c58234d 100644 --- a/digest/CHANGELOG.md +++ b/digest/CHANGELOG.md @@ -5,19 +5,20 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). -## UNRELEASED +## 0.11.0 (UNRELEASED) ### Added - `CustomizedInit` trait ([#1334]). ### Changed - `crypto-common` dependency bumped to v0.2 ([#1173]) -- Edition changed to 2021 and MSRV bumped to 1.57 ([#1173]) +- Edition changed to 2024 and MSRV bumped to 1.85 ([#1759]) ### Removed - `Mac::new`, `Mac::new_from_slice`, and `Mac::generate_key` methods ([#1173]) [#1173]: https://github.com/RustCrypto/traits/pull/1173 [#1334]: https://github.com/RustCrypto/traits/pull/1334 +[#1759]: https://github.com/RustCrypto/traits/pull/1759 ## 0.10.7 (2023-05-19) ### Changed diff --git a/digest/Cargo.toml b/digest/Cargo.toml index a30d3bf9d..3612efd63 100644 --- a/digest/Cargo.toml +++ b/digest/Cargo.toml @@ -5,20 +5,20 @@ version = "0.11.0-pre.9" authors = ["RustCrypto Developers"] license = "MIT OR Apache-2.0" readme = "README.md" -edition = "2021" -rust-version = "1.81" +edition = "2024" +rust-version = "1.85" documentation = "https://docs.rs/digest" repository = "https://github.com/RustCrypto/traits" keywords = ["digest", "crypto", "hash"] categories = ["cryptography", "no-std"] [dependencies] -crypto-common = "0.2.0-rc.1" +crypto-common = { version = "0.2.0-rc.1", path = "../crypto-common" } # optional dependencies -block-buffer = { version = "0.11.0-rc.2", optional = true } +block-buffer = { version = "0.11.0-rc.4", optional = true } subtle = { version = "2.4", default-features = false, optional = true } -blobby = { version = "0.3", optional = true } +blobby = { version = "0.4.0-pre.0", optional = true } const-oid = { version = "0.10.0-rc.3", optional = true } zeroize = { version = "1.7", optional = true, default-features = false } diff --git a/digest/README.md b/digest/README.md index dc527f713..e88f5ca88 100644 --- a/digest/README.md +++ b/digest/README.md @@ -12,20 +12,6 @@ digest algorithms. See [RustCrypto/hashes][1] for implementations which use this trait. -[Documentation][docs-link] - -## Minimum Supported Rust Version - -Rust **1.81** or higher. - -Minimum supported Rust version can be changed in the future, but it will be -done with a minor version bump. - -## SemVer Policy - -- All on-by-default features of this library are covered by SemVer -- MSRV is considered exempt from SemVer as noted above - ## Usage Let us demonstrate how to use crates in this repository using Sha256 as an @@ -147,7 +133,7 @@ dual licensed as above, without any additional terms or conditions. [docs-image]: https://docs.rs/digest/badge.svg [docs-link]: https://docs.rs/digest/ [license-image]: https://img.shields.io/badge/license-Apache2.0/MIT-blue.svg -[rustc-image]: https://img.shields.io/badge/rustc-1.81+-blue.svg +[rustc-image]: https://img.shields.io/badge/rustc-1.85+-blue.svg [chat-image]: https://img.shields.io/badge/zulip-join_chat-blue.svg [chat-link]: https://rustcrypto.zulipchat.com/#narrow/stream/260041-hashes [build-image]: https://github.com/RustCrypto/traits/workflows/digest/badge.svg?branch=master&event=push diff --git a/digest/src/core_api/ct_variable.rs b/digest/src/core_api/ct_variable.rs index b676a352c..57a093d98 100644 --- a/digest/src/core_api/ct_variable.rs +++ b/digest/src/core_api/ct_variable.rs @@ -13,10 +13,10 @@ use core::{ ops::{Add, Sub}, }; use crypto_common::{ + Block, BlockSizeUser, OutputSizeUser, array::{Array, ArraySize}, hazmat::{DeserializeStateError, SerializableState, SerializedState, SubSerializedStateSize}, typenum::{IsLess, IsLessOrEqual, Le, LeEq, NonZero, Sum, U1, U256}, - Block, BlockSizeUser, OutputSizeUser, }; /// Dummy type used with [`CtVariableCoreWrapper`] in cases when diff --git a/digest/src/core_api/rt_variable.rs b/digest/src/core_api/rt_variable.rs index b1a42942f..17f13ae8e 100644 --- a/digest/src/core_api/rt_variable.rs +++ b/digest/src/core_api/rt_variable.rs @@ -10,10 +10,10 @@ use core::{ ops::{Add, Sub}, }; use crypto_common::{ + AddBlockSize, SubBlockSize, array::{Array, ArraySize}, hazmat::{DeserializeStateError, SerializableState, SerializedState, SubSerializedStateSize}, - typenum::{Diff, IsLess, Le, NonZero, Sum, Unsigned, U1, U256}, - AddBlockSize, SubBlockSize, + typenum::{Diff, IsLess, Le, NonZero, Sum, U1, U256, Unsigned}, }; #[cfg(feature = "zeroize")] use zeroize::ZeroizeOnDrop; diff --git a/digest/src/core_api/wrapper.rs b/digest/src/core_api/wrapper.rs index 5d8f45d4d..55062e7c8 100644 --- a/digest/src/core_api/wrapper.rs +++ b/digest/src/core_api/wrapper.rs @@ -13,10 +13,10 @@ use core::{ ops::{Add, Sub}, }; use crypto_common::{ + BlockSizeUser, InvalidLength, Key, KeyInit, KeySizeUser, Output, array::{Array, ArraySize}, hazmat::{DeserializeStateError, SerializableState, SerializedState, SubSerializedStateSize}, typenum::{Diff, IsLess, Le, NonZero, Sum, U1, U256}, - BlockSizeUser, InvalidLength, Key, KeyInit, KeySizeUser, Output, }; #[cfg(feature = "mac")] diff --git a/digest/src/dev.rs b/digest/src/dev.rs index 00b93859b..b3d0203dc 100644 --- a/digest/src/dev.rs +++ b/digest/src/dev.rs @@ -44,9 +44,9 @@ macro_rules! hash_serialization_test { #[test] fn $name() { use digest::{ - crypto_common::{hazmat::SerializableState, BlockSizeUser}, - typenum::Unsigned, Digest, + crypto_common::{BlockSizeUser, hazmat::SerializableState}, + typenum::Unsigned, }; let mut h = <$hasher>::new(); @@ -77,9 +77,9 @@ macro_rules! hash_rt_outsize_serialization_test { #[test] fn $name() { use digest::{ - crypto_common::{hazmat::SerializableState, BlockSizeUser}, - typenum::Unsigned, Digest, Update, VariableOutput, + crypto_common::{BlockSizeUser, hazmat::SerializableState}, + typenum::Unsigned, }; const HASH_OUTPUT_SIZE: usize = <$hasher>::MAX_OUTPUT_SIZE - 1; diff --git a/digest/src/digest.rs b/digest/src/digest.rs index c8d1ca87e..1de1ea86d 100644 --- a/digest/src/digest.rs +++ b/digest/src/digest.rs @@ -1,5 +1,5 @@ use super::{FixedOutput, FixedOutputReset, InvalidBufferSize, Reset, Update}; -use crypto_common::{typenum::Unsigned, Output, OutputSizeUser}; +use crypto_common::{Output, OutputSizeUser, typenum::Unsigned}; #[cfg(feature = "alloc")] use alloc::boxed::Box; diff --git a/digest/src/lib.rs b/digest/src/lib.rs index a3e6fca86..b74ca517e 100644 --- a/digest/src/lib.rs +++ b/digest/src/lib.rs @@ -65,9 +65,9 @@ pub use crypto_common; #[cfg(feature = "const-oid")] pub use crate::digest::DynDigestWithOid; pub use crate::digest::{Digest, DynDigest, HashMarker}; -pub use crypto_common::{array, typenum, typenum::consts, Output, OutputSizeUser, Reset}; #[cfg(feature = "mac")] pub use crypto_common::{InnerInit, InvalidLength, Key, KeyInit}; +pub use crypto_common::{Output, OutputSizeUser, Reset, array, typenum, typenum::consts}; #[cfg(feature = "mac")] pub use mac::{CtOutput, Mac, MacError, MacMarker}; diff --git a/digest/src/mac.rs b/digest/src/mac.rs index 395f86e09..b49fe692e 100644 --- a/digest/src/mac.rs +++ b/digest/src/mac.rs @@ -134,11 +134,7 @@ impl Mac for T { return Err(MacError); } let choice = self.finalize_fixed().ct_eq(tag); - if choice.into() { - Ok(()) - } else { - Err(MacError) - } + if choice.into() { Ok(()) } else { Err(MacError) } } #[inline] @@ -151,11 +147,7 @@ impl Mac for T { return Err(MacError); } let choice = self.finalize_fixed_reset().ct_eq(tag); - if choice.into() { - Ok(()) - } else { - Err(MacError) - } + if choice.into() { Ok(()) } else { Err(MacError) } } fn verify_truncated_left(self, tag: &[u8]) -> Result<(), MacError> { @@ -165,11 +157,7 @@ impl Mac for T { } let choice = self.finalize_fixed()[..n].ct_eq(tag); - if choice.into() { - Ok(()) - } else { - Err(MacError) - } + if choice.into() { Ok(()) } else { Err(MacError) } } fn verify_truncated_right(self, tag: &[u8]) -> Result<(), MacError> { @@ -180,11 +168,7 @@ impl Mac for T { let m = Self::OutputSize::USIZE - n; let choice = self.finalize_fixed()[m..].ct_eq(tag); - if choice.into() { - Ok(()) - } else { - Err(MacError) - } + if choice.into() { Ok(()) } else { Err(MacError) } } } diff --git a/elliptic-curve/CHANGELOG.md b/elliptic-curve/CHANGELOG.md index 37b563149..7d50c6e18 100644 --- a/elliptic-curve/CHANGELOG.md +++ b/elliptic-curve/CHANGELOG.md @@ -4,6 +4,12 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). +## 0.14.0 (UNRELEASED) +### Changed +- Edition changed to 2024 and MSRV bumped to 1.85 ([#1759]) + +[#1759]: https://github.com/RustCrypto/traits/pull/1759 + ## 0.13.8 (2023-11-18) ### Changed - `SecretKey::from_slice` now allows >=24-bytes ([#1412]) diff --git a/elliptic-curve/Cargo.lock b/elliptic-curve/Cargo.lock new file mode 100644 index 000000000..1659ec061 --- /dev/null +++ b/elliptic-curve/Cargo.lock @@ -0,0 +1,447 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 4 + +[[package]] +name = "autocfg" +version = "1.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ace50bade8e6234aa140d9a2f552bbee1db4d353f69b8217bc503490fc1a9f26" + +[[package]] +name = "base16ct" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4c7f02d4ea65f2c1853089ffd8d2787bdbc63de2f0d29dedbcf8ccdfa0ccd4cf" + +[[package]] +name = "base64ct" +version = "1.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8c3c1a368f70d6cf7302d78f8f7093da241fb8e8807c05cc9e51a125895a6d5b" + +[[package]] +name = "bitvec" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1bc2832c24239b0141d5674bb9174f9d68a8b5b3f2753311927c172ca46f7e9c" +dependencies = [ + "funty", + "radium", + "tap", + "wyz", +] + +[[package]] +name = "block-buffer" +version = "0.11.0-rc.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3fd016a0ddc7cb13661bf5576073ce07330a693f8608a1320b4e20561cc12cdc" +dependencies = [ + "hybrid-array", +] + +[[package]] +name = "cfg-if" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" + +[[package]] +name = "const-oid" +version = "0.10.0-rc.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "68ff6be19477a1bd5441f382916a89bc2a0b2c35db6d41e0f6e8538bf6d6463f" + +[[package]] +name = "cpufeatures" +version = "0.2.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "59ed5838eebb26a2bb2e58f6d5b5316989ae9d08bab10e0e6d103e656d1b0280" +dependencies = [ + "libc", +] + +[[package]] +name = "crypto-bigint" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "96272c2ff28b807e09250b180ad1fb7889a3258f7455759b5c3c58b719467130" +dependencies = [ + "hybrid-array", + "num-traits", + "rand_core", + "subtle", + "zeroize", +] + +[[package]] +name = "crypto-common" +version = "0.2.0-rc.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b0b8ce8218c97789f16356e7896b3714f26c2ee1079b79c0b7ae7064bb9089fa" +dependencies = [ + "getrandom", + "hybrid-array", + "rand_core", +] + +[[package]] +name = "der" +version = "0.8.0-rc.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "82db698b33305f0134faf590b9d1259dc171b5481ac41d5c8146c3b3ee7d4319" +dependencies = [ + "const-oid", + "pem-rfc7468", + "zeroize", +] + +[[package]] +name = "digest" +version = "0.11.0-pre.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cf2e3d6615d99707295a9673e889bf363a04b2a466bd320c65a72536f7577379" +dependencies = [ + "block-buffer", + "const-oid", + "crypto-common", + "subtle", +] + +[[package]] +name = "elliptic-curve" +version = "0.14.0-rc.1" +dependencies = [ + "base16ct", + "base64ct", + "crypto-bigint", + "digest", + "ff", + "group", + "hex-literal", + "hkdf", + "hybrid-array", + "pem-rfc7468", + "pkcs8", + "rand_core", + "sec1", + "serde_json", + "serdect", + "sha2", + "sha3", + "subtle", + "tap", + "zeroize", +] + +[[package]] +name = "ff" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ded41244b729663b1e574f1b4fb731469f69f79c17667b5d776b16cda0479449" +dependencies = [ + "bitvec", + "rand_core", + "subtle", +] + +[[package]] +name = "funty" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e6d5a32815ae3f33302d95fdcb2ce17862f8c65363dcfd29360480ba1001fc9c" + +[[package]] +name = "getrandom" +version = "0.2.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c4567c8db10ae91089c99af84c68c38da3ec2f087c3f82960bcdbf3656b6f4d7" +dependencies = [ + "cfg-if", + "libc", + "wasi", +] + +[[package]] +name = "group" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f0f9ef7462f7c099f518d754361858f86d8a07af53ba9af0fe635bbccb151a63" +dependencies = [ + "ff", + "rand_core", + "subtle", +] + +[[package]] +name = "hex-literal" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bcaaec4551594c969335c98c903c1397853d4198408ea609190f420500f6be71" + +[[package]] +name = "hkdf" +version = "0.13.0-pre.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "00176ff81091018d42ff82e8324f8e5adb0b7e0468d1358f653972562dbff031" +dependencies = [ + "hmac", +] + +[[package]] +name = "hmac" +version = "0.13.0-pre.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e4b1fb14e4df79f9406b434b60acef9f45c26c50062cccf1346c6103b8c47d58" +dependencies = [ + "digest", +] + +[[package]] +name = "hybrid-array" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f2d35805454dc9f8662a98d6d61886ffe26bd465f5960e0e55345c70d5c0d2a9" +dependencies = [ + "typenum", + "zeroize", +] + +[[package]] +name = "itoa" +version = "1.0.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d75a2a4b1b190afb6f5425f10f6a8f959d2ea0b9c2b1d79553551850539e4674" + +[[package]] +name = "keccak" +version = "0.2.0-pre.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a7cdd4f0dc5807b9a2b25dd48a3f58e862606fe7bd47f41ecde36e97422d7e90" +dependencies = [ + "cpufeatures", +] + +[[package]] +name = "libc" +version = "0.2.169" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b5aba8db14291edd000dfcc4d620c7ebfb122c613afb886ca8803fa4e128a20a" + +[[package]] +name = "memchr" +version = "2.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3" + +[[package]] +name = "num-traits" +version = "0.2.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" +dependencies = [ + "autocfg", +] + +[[package]] +name = "pem-rfc7468" +version = "1.0.0-rc.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c2dfbfa5c6f0906884269722c5478e72fd4d6c0e24fe600332c6d62359567ce1" +dependencies = [ + "base64ct", +] + +[[package]] +name = "pkcs8" +version = "0.11.0-rc.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f22636de7c995e997ed3d8d2949b7414d4faba3efa7312a6c0e75d875a14bdd4" +dependencies = [ + "der", + "spki", +] + +[[package]] +name = "proc-macro2" +version = "1.0.93" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "60946a68e5f9d28b0dc1c21bb8a97ee7d018a8b322fa57838ba31cc878e22d99" +dependencies = [ + "unicode-ident", +] + +[[package]] +name = "quote" +version = "1.0.38" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0e4dccaaaf89514f546c693ddc140f729f958c247918a13380cccc6078391acc" +dependencies = [ + "proc-macro2", +] + +[[package]] +name = "radium" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc33ff2d4973d518d823d61aa239014831e521c75da58e3df4840d3f47749d09" + +[[package]] +name = "rand_core" +version = "0.6.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" +dependencies = [ + "getrandom", +] + +[[package]] +name = "ryu" +version = "1.0.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6ea1a2d0a644769cc99faa24c3ad26b379b786fe7c36fd3c546254801650e6dd" + +[[package]] +name = "sec1" +version = "0.8.0-rc.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d1988446eff153796413a73669dfaa4caa3f5ce8b25fac89e3821a39c611772e" +dependencies = [ + "base16ct", + "der", + "hybrid-array", + "pkcs8", + "serdect", + "subtle", + "zeroize", +] + +[[package]] +name = "serde" +version = "1.0.218" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e8dfc9d19bdbf6d17e22319da49161d5d0108e4188e8b680aef6299eed22df60" +dependencies = [ + "serde_derive", +] + +[[package]] +name = "serde_derive" +version = "1.0.218" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f09503e191f4e797cb8aac08e9a4a4695c5edf6a2e70e376d961ddd5c969f82b" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "serde_json" +version = "1.0.139" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "44f86c3acccc9c65b153fe1b85a3be07fe5515274ec9f0653b4a0875731c72a6" +dependencies = [ + "itoa", + "memchr", + "ryu", + "serde", +] + +[[package]] +name = "serdect" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f42f67da2385b51a5f9652db9c93d78aeaf7610bf5ec366080b6de810604af53" +dependencies = [ + "base16ct", + "serde", +] + +[[package]] +name = "sha2" +version = "0.11.0-pre.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "540c0893cce56cdbcfebcec191ec8e0f470dd1889b6e7a0b503e310a94a168f5" +dependencies = [ + "cfg-if", + "cpufeatures", + "digest", +] + +[[package]] +name = "sha3" +version = "0.11.0-pre.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e485881f388c2818d709796dc883c1ffcadde9d1f0e054f3a5c14974185261a6" +dependencies = [ + "digest", + "keccak", +] + +[[package]] +name = "spki" +version = "0.8.0-rc.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "37ac66481418fd7afdc584adcf3be9aa572cf6c2858814494dc2a01755f050bc" +dependencies = [ + "base64ct", + "der", +] + +[[package]] +name = "subtle" +version = "2.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292" + +[[package]] +name = "syn" +version = "2.0.98" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "36147f1a48ae0ec2b5b3bc5b537d267457555a10dc06f3dbc8cb11ba3006d3b1" +dependencies = [ + "proc-macro2", + "quote", + "unicode-ident", +] + +[[package]] +name = "tap" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369" + +[[package]] +name = "typenum" +version = "1.18.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1dccffe3ce07af9386bfd29e80c0ab1a8205a2fc34e4bcd40364df902cfa8f3f" + +[[package]] +name = "unicode-ident" +version = "1.0.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "00e2473a93778eb0bad35909dff6a10d28e63f792f16ed15e404fca9d5eeedbe" + +[[package]] +name = "wasi" +version = "0.11.0+wasi-snapshot-preview1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" + +[[package]] +name = "wyz" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "05f360fc0b24296329c78fda852a1e9ae82de9cf7b27dae4b7f62f118f77b9ed" +dependencies = [ + "tap", +] + +[[package]] +name = "zeroize" +version = "1.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ced3678a2879b30306d323f4542626697a464a97c0a07c9aebf7ebca65cd4dde" diff --git a/elliptic-curve/Cargo.toml b/elliptic-curve/Cargo.toml index c04a8249a..7166527b3 100644 --- a/elliptic-curve/Cargo.toml +++ b/elliptic-curve/Cargo.toml @@ -13,8 +13,8 @@ repository = "https://github.com/RustCrypto/traits" readme = "README.md" categories = ["cryptography", "no-std"] keywords = ["crypto", "ecc", "elliptic", "weierstrass"] -edition = "2021" -rust-version = "1.83" +edition = "2024" +rust-version = "1.85" [dependencies] base16ct = "0.2" @@ -30,7 +30,7 @@ digest = { version = "=0.11.0-pre.9", optional = true } ff = { version = "0.13", optional = true, default-features = false } group = { version = "0.13", optional = true, default-features = false } hkdf = { version = "=0.13.0-pre.4", optional = true, default-features = false } -hex-literal = { version = "0.4", optional = true } +hex-literal = { version = "1", optional = true } pem-rfc7468 = { version = "1.0.0-rc.2", optional = true, features = ["alloc"] } pkcs8 = { version = "0.11.0-rc.1", optional = true, default-features = false } sec1 = { version = "0.8.0-rc.3", optional = true, features = ["subtle", "zeroize"] } @@ -39,7 +39,7 @@ serde_json = { version = "1.0.121", optional = true, default-features = false, f tap = { version = "1.0.1", optional = true, default-features = false } # hack for minimal-versions support for `bits` [dev-dependencies] -hex-literal = "0.4" +hex-literal = "1" sha2 = "=0.11.0-pre.4" sha3 = "=0.11.0-pre.4" diff --git a/elliptic-curve/README.md b/elliptic-curve/README.md index 218d70eb9..a89c195d4 100644 --- a/elliptic-curve/README.md +++ b/elliptic-curve/README.md @@ -11,20 +11,6 @@ General purpose Elliptic Curve Cryptography (ECC) support, including types and traits for representing various elliptic curve forms, scalars, points, and public/secret keys composed thereof. -[Documentation][docs-link] - -## Minimum Supported Rust Version - -Requires Rust **1.83** or higher. - -Minimum supported Rust version can be changed in the future, but it will be -done with a minor version bump. - -## SemVer Policy - -- All on-by-default features of this library are covered by SemVer -- MSRV is considered exempt from SemVer as noted above - ## License All crates licensed under either of @@ -49,6 +35,6 @@ dual licensed as above, without any additional terms or conditions. [build-image]: https://github.com/RustCrypto/traits/actions/workflows/elliptic-curve.yml/badge.svg [build-link]: https://github.com/RustCrypto/traits/actions/workflows/elliptic-curve.yml [license-image]: https://img.shields.io/badge/license-Apache2.0/MIT-blue.svg -[rustc-image]: https://img.shields.io/badge/rustc-1.83+-blue.svg +[rustc-image]: https://img.shields.io/badge/rustc-1.85+-blue.svg [chat-image]: https://img.shields.io/badge/zulip-join_chat-blue.svg [chat-link]: https://rustcrypto.zulipchat.com/#narrow/stream/260040-elliptic-curves diff --git a/elliptic-curve/src/arithmetic.rs b/elliptic-curve/src/arithmetic.rs index 150d8a9eb..20fc57be1 100644 --- a/elliptic-curve/src/arithmetic.rs +++ b/elliptic-curve/src/arithmetic.rs @@ -1,10 +1,10 @@ //! Elliptic curve arithmetic traits. use crate::{ + Curve, FieldBytes, PrimeCurve, ScalarPrimitive, ops::{Invert, LinearCombination, MulByGenerator, Reduce, ShrAssign}, point::AffineCoordinates, scalar::{FromUintUnchecked, IsHigh}, - Curve, FieldBytes, PrimeCurve, ScalarPrimitive, }; use core::fmt::Debug; use subtle::{ConditionallySelectable, ConstantTimeEq, CtOption}; diff --git a/elliptic-curve/src/dev.rs b/elliptic-curve/src/dev.rs index 1fd44bb37..567c97f4f 100644 --- a/elliptic-curve/src/dev.rs +++ b/elliptic-curve/src/dev.rs @@ -4,6 +4,7 @@ //! the traits in this crate. use crate::{ + Curve, CurveArithmetic, FieldBytesEncoding, PrimeCurve, array::typenum::U32, bigint::{Limb, U256}, error::{Error, Result}, @@ -14,7 +15,6 @@ use crate::{ sec1::{CompressedPoint, FromEncodedPoint, ToEncodedPoint}, subtle::{Choice, ConditionallySelectable, ConstantTimeEq, CtOption}, zeroize::DefaultIsZeroes, - Curve, CurveArithmetic, FieldBytesEncoding, PrimeCurve, }; use core::{ iter::{Product, Sum}, @@ -448,11 +448,7 @@ impl ConstantTimeEq for AffinePoint { impl ConditionallySelectable for AffinePoint { fn conditional_select(a: &Self, b: &Self, choice: Choice) -> Self { // Not really constant time, but this is dev code - if choice.into() { - *b - } else { - *a - } + if choice.into() { *b } else { *a } } } @@ -535,11 +531,7 @@ impl ConstantTimeEq for ProjectivePoint { impl ConditionallySelectable for ProjectivePoint { fn conditional_select(a: &Self, b: &Self, choice: Choice) -> Self { - if choice.into() { - *b - } else { - *a - } + if choice.into() { *b } else { *a } } } diff --git a/elliptic-curve/src/ecdh.rs b/elliptic-curve/src/ecdh.rs index 243c61789..88b885220 100644 --- a/elliptic-curve/src/ecdh.rs +++ b/elliptic-curve/src/ecdh.rs @@ -27,13 +27,13 @@ //! [SIGMA]: https://webee.technion.ac.il/~hugo/sigma-pdf.pdf use crate::{ - point::AffineCoordinates, AffinePoint, Curve, CurveArithmetic, FieldBytes, NonZeroScalar, - ProjectivePoint, PublicKey, + AffinePoint, Curve, CurveArithmetic, FieldBytes, NonZeroScalar, ProjectivePoint, PublicKey, + point::AffineCoordinates, }; use core::{borrow::Borrow, fmt}; -use digest::{crypto_common::BlockSizeUser, Digest}; +use digest::{Digest, crypto_common::BlockSizeUser}; use group::Curve as _; -use hkdf::{hmac::SimpleHmac, Hkdf}; +use hkdf::{Hkdf, hmac::SimpleHmac}; use rand_core::CryptoRngCore; use zeroize::{Zeroize, ZeroizeOnDrop}; diff --git a/elliptic-curve/src/field.rs b/elliptic-curve/src/field.rs index 2884e241a..cda71dcb8 100644 --- a/elliptic-curve/src/field.rs +++ b/elliptic-curve/src/field.rs @@ -1,10 +1,10 @@ //! Field elements. use crate::{ - bigint::{ArrayEncoding, ByteArray, Integer}, Curve, + bigint::{ArrayEncoding, ByteArray, Integer}, }; -use hybrid_array::{typenum::Unsigned, Array}; +use hybrid_array::{Array, typenum::Unsigned}; /// Size of serialized field elements of this elliptic curve. pub type FieldBytesSize = ::FieldBytesSize; diff --git a/elliptic-curve/src/hash2curve/group_digest.rs b/elliptic-curve/src/hash2curve/group_digest.rs index ea7f0471f..2a663a11b 100644 --- a/elliptic-curve/src/hash2curve/group_digest.rs +++ b/elliptic-curve/src/hash2curve/group_digest.rs @@ -1,6 +1,6 @@ //! Traits for handling hash to curve. -use super::{hash_to_field, ExpandMsg, FromOkm, MapToCurve}; +use super::{ExpandMsg, FromOkm, MapToCurve, hash_to_field}; use crate::{CurveArithmetic, ProjectivePoint, Result}; use group::cofactor::CofactorGroup; diff --git a/elliptic-curve/src/hash2curve/hash2field.rs b/elliptic-curve/src/hash2curve/hash2field.rs index c9a980c1a..946c8a39d 100644 --- a/elliptic-curve/src/hash2curve/hash2field.rs +++ b/elliptic-curve/src/hash2curve/hash2field.rs @@ -7,7 +7,7 @@ mod expand_msg; pub use expand_msg::{xmd::*, xof::*, *}; use crate::{Error, Result}; -use hybrid_array::{typenum::Unsigned, Array, ArraySize}; +use hybrid_array::{Array, ArraySize, typenum::Unsigned}; /// The trait for helping to convert to a field element. pub trait FromOkm { diff --git a/elliptic-curve/src/hash2curve/hash2field/expand_msg/xmd.rs b/elliptic-curve/src/hash2curve/hash2field/expand_msg/xmd.rs index fdd298c63..c1cb250b7 100644 --- a/elliptic-curve/src/hash2curve/hash2field/expand_msg/xmd.rs +++ b/elliptic-curve/src/hash2curve/hash2field/expand_msg/xmd.rs @@ -5,12 +5,12 @@ use core::marker::PhantomData; use super::{Domain, ExpandMsg, Expander}; use crate::{Error, Result}; use digest::{ + FixedOutput, HashMarker, array::{ - typenum::{IsLess, IsLessOrEqual, Unsigned, U256}, Array, + typenum::{IsLess, IsLessOrEqual, U256, Unsigned}, }, core_api::BlockSizeUser, - FixedOutput, HashMarker, }; /// Placeholder type for implementing `expand_message_xmd` based on a hash function @@ -156,8 +156,8 @@ mod test { use core::mem::size_of; use hex_literal::hex; use hybrid_array::{ - typenum::{U128, U32}, ArraySize, + typenum::{U32, U128}, }; use sha2::Sha256; diff --git a/elliptic-curve/src/hash2curve/hash2field/expand_msg/xof.rs b/elliptic-curve/src/hash2curve/hash2field/expand_msg/xof.rs index 96eebe1e5..6a5c14621 100644 --- a/elliptic-curve/src/hash2curve/hash2field/expand_msg/xof.rs +++ b/elliptic-curve/src/hash2curve/hash2field/expand_msg/xof.rs @@ -78,7 +78,7 @@ mod test { use super::*; use core::mem::size_of; use hex_literal::hex; - use hybrid_array::{typenum::U128, Array, ArraySize}; + use hybrid_array::{Array, ArraySize, typenum::U128}; use sha3::Shake128; fn assert_message(msg: &[u8], domain: &Domain<'_, U32>, len_in_bytes: u16, bytes: &[u8]) { diff --git a/elliptic-curve/src/hash2curve/isogeny.rs b/elliptic-curve/src/hash2curve/isogeny.rs index 0d7e0853c..4644d786a 100644 --- a/elliptic-curve/src/hash2curve/isogeny.rs +++ b/elliptic-curve/src/hash2curve/isogeny.rs @@ -4,7 +4,7 @@ use core::ops::{AddAssign, Mul}; use ff::Field; -use hybrid_array::{typenum::Unsigned, Array, ArraySize}; +use hybrid_array::{Array, ArraySize, typenum::Unsigned}; /// The coefficients for mapping from one isogenous curve to another #[derive(Debug)] diff --git a/elliptic-curve/src/jwk.rs b/elliptic-curve/src/jwk.rs index 581448d71..b85ac90e1 100644 --- a/elliptic-curve/src/jwk.rs +++ b/elliptic-curve/src/jwk.rs @@ -4,9 +4,9 @@ //! use crate::{ + Curve, Error, FieldBytes, FieldBytesSize, Result, sec1::{Coordinates, EncodedPoint, ModulusSize, ValidatePublicKey}, secret_key::SecretKey, - Curve, Error, FieldBytes, FieldBytesSize, Result, }; use alloc::{ borrow::ToOwned, @@ -19,14 +19,14 @@ use core::{ marker::PhantomData, str::{self, FromStr}, }; -use serdect::serde::{de, ser, Deserialize, Serialize}; +use serdect::serde::{Deserialize, Serialize, de, ser}; use zeroize::{Zeroize, ZeroizeOnDrop}; #[cfg(feature = "arithmetic")] use crate::{ + AffinePoint, CurveArithmetic, public_key::PublicKey, sec1::{FromEncodedPoint, ToEncodedPoint}, - AffinePoint, CurveArithmetic, }; /// Key Type (`kty`) for elliptic curve keys. diff --git a/elliptic-curve/src/point/non_identity.rs b/elliptic-curve/src/point/non_identity.rs index a0f1e85ff..1cb1a7fdb 100644 --- a/elliptic-curve/src/point/non_identity.rs +++ b/elliptic-curve/src/point/non_identity.rs @@ -2,12 +2,12 @@ use core::ops::{Deref, Mul}; -use group::{prime::PrimeCurveAffine, Curve, GroupEncoding}; +use group::{Curve, GroupEncoding, prime::PrimeCurveAffine}; use rand_core::{CryptoRng, RngCore}; use subtle::{Choice, ConditionallySelectable, ConstantTimeEq, CtOption}; #[cfg(feature = "serde")] -use serdect::serde::{de, ser, Deserialize, Serialize}; +use serdect::serde::{Deserialize, Serialize, de, ser}; use crate::{CurveArithmetic, NonZeroScalar, Scalar}; diff --git a/elliptic-curve/src/public_key.rs b/elliptic-curve/src/public_key.rs index aa728d2f0..cd0389c4d 100644 --- a/elliptic-curve/src/public_key.rs +++ b/elliptic-curve/src/public_key.rs @@ -1,7 +1,7 @@ //! Elliptic curve public keys. use crate::{ - point::NonIdentity, AffinePoint, CurveArithmetic, Error, NonZeroScalar, ProjectivePoint, Result, + AffinePoint, CurveArithmetic, Error, NonZeroScalar, ProjectivePoint, Result, point::NonIdentity, }; use core::fmt::Debug; use group::{Curve, Group}; @@ -18,9 +18,9 @@ use core::str::FromStr; #[cfg(feature = "sec1")] use { crate::{ + FieldBytesSize, point::PointCompression, sec1::{CompressedPoint, EncodedPoint, FromEncodedPoint, ModulusSize, ToEncodedPoint}, - FieldBytesSize, }, core::cmp::Ordering, subtle::{Choice, CtOption}, @@ -36,14 +36,14 @@ use alloc::boxed::Box; use alloc::string::{String, ToString}; #[cfg(feature = "serde")] -use serdect::serde::{de, ser, Deserialize, Serialize}; +use serdect::serde::{Deserialize, Serialize, de, ser}; #[cfg(any(feature = "pem", feature = "serde"))] use pkcs8::DecodePublicKey; #[cfg(all(feature = "sec1", feature = "pkcs8"))] use { - crate::{pkcs8::AssociatedOid, ALGORITHM_OID}, + crate::{ALGORITHM_OID, pkcs8::AssociatedOid}, pkcs8::der, }; diff --git a/elliptic-curve/src/scalar/blinded.rs b/elliptic-curve/src/scalar/blinded.rs index 914427f55..685ba9d54 100644 --- a/elliptic-curve/src/scalar/blinded.rs +++ b/elliptic-curve/src/scalar/blinded.rs @@ -1,7 +1,7 @@ //! Random blinding support for [`Scalar`] use super::Scalar; -use crate::{ops::Invert, CurveArithmetic}; +use crate::{CurveArithmetic, ops::Invert}; use core::fmt; use group::ff::Field; use rand_core::CryptoRngCore; diff --git a/elliptic-curve/src/scalar/nonzero.rs b/elliptic-curve/src/scalar/nonzero.rs index 9fd617e2a..74a7d41af 100644 --- a/elliptic-curve/src/scalar/nonzero.rs +++ b/elliptic-curve/src/scalar/nonzero.rs @@ -1,9 +1,9 @@ //! Non-zero scalar type. use crate::{ + CurveArithmetic, Error, FieldBytes, PrimeCurve, Scalar, ScalarPrimitive, SecretKey, ops::{Invert, Reduce, ReduceNonZero}, scalar::IsHigh, - CurveArithmetic, Error, FieldBytes, PrimeCurve, Scalar, ScalarPrimitive, SecretKey, }; use base16ct::HexDisplay; use core::{ @@ -18,7 +18,7 @@ use subtle::{Choice, ConditionallySelectable, ConstantTimeEq, CtOption}; use zeroize::Zeroize; #[cfg(feature = "serde")] -use serdect::serde::{de, ser, Deserialize, Serialize}; +use serdect::serde::{Deserialize, Serialize, de, ser}; /// Non-zero scalar type. /// diff --git a/elliptic-curve/src/scalar/primitive.rs b/elliptic-curve/src/scalar/primitive.rs index a4d31cb3e..e61d574be 100644 --- a/elliptic-curve/src/scalar/primitive.rs +++ b/elliptic-curve/src/scalar/primitive.rs @@ -1,11 +1,11 @@ //! Generic scalar type with primitive functionality. use crate::{ + Curve, Error, FieldBytes, FieldBytesEncoding, Result, array::Array, - bigint::{prelude::*, Limb, NonZero}, + bigint::{Limb, NonZero, prelude::*}, scalar::FromUintUnchecked, scalar::IsHigh, - Curve, Error, FieldBytes, FieldBytesEncoding, Result, }; use base16ct::HexDisplay; use core::{ @@ -25,7 +25,7 @@ use zeroize::DefaultIsZeroes; use super::{CurveArithmetic, Scalar}; #[cfg(feature = "serde")] -use serdect::serde::{de, ser, Deserialize, Serialize}; +use serdect::serde::{Deserialize, Serialize, de, ser}; /// Generic scalar type with primitive functionality. /// diff --git a/elliptic-curve/src/secret_key.rs b/elliptic-curve/src/secret_key.rs index 09b6ba5ad..7da6c2e0c 100644 --- a/elliptic-curve/src/secret_key.rs +++ b/elliptic-curve/src/secret_key.rs @@ -15,7 +15,7 @@ use subtle::{Choice, ConstantTimeEq}; use zeroize::{Zeroize, ZeroizeOnDrop, Zeroizing}; #[cfg(feature = "arithmetic")] -use crate::{rand_core::CryptoRngCore, CurveArithmetic, NonZeroScalar, PublicKey}; +use crate::{CurveArithmetic, NonZeroScalar, PublicKey, rand_core::CryptoRngCore}; #[cfg(feature = "jwk")] use crate::jwk::{JwkEcKey, JwkParameters}; @@ -26,8 +26,8 @@ use pem_rfc7468::{self as pem, PemLabel}; #[cfg(feature = "sec1")] use { crate::{ - sec1::{EncodedPoint, ModulusSize, ValidatePublicKey}, FieldBytesSize, + sec1::{EncodedPoint, ModulusSize, ValidatePublicKey}, }, sec1::der::{self, oid::AssociatedOid}, }; @@ -35,8 +35,8 @@ use { #[cfg(all(feature = "alloc", feature = "arithmetic", feature = "sec1"))] use { crate::{ - sec1::{FromEncodedPoint, ToEncodedPoint}, AffinePoint, + sec1::{FromEncodedPoint, ToEncodedPoint}, }, alloc::vec::Vec, sec1::der::Encode, diff --git a/elliptic-curve/src/secret_key/pkcs8.rs b/elliptic-curve/src/secret_key/pkcs8.rs index 433926f55..2598f9ec4 100644 --- a/elliptic-curve/src/secret_key/pkcs8.rs +++ b/elliptic-curve/src/secret_key/pkcs8.rs @@ -2,9 +2,9 @@ use super::SecretKey; use crate::{ - pkcs8::{der::Decode, AssociatedOid}, + ALGORITHM_OID, Curve, FieldBytesSize, + pkcs8::{AssociatedOid, der::Decode}, sec1::{ModulusSize, ValidatePublicKey}, - Curve, FieldBytesSize, ALGORITHM_OID, }; use pkcs8::spki::{AlgorithmIdentifier, AssociatedAlgorithmIdentifier, ObjectIdentifier}; use sec1::EcPrivateKey; @@ -13,12 +13,12 @@ use sec1::EcPrivateKey; #[cfg(all(feature = "alloc", feature = "arithmetic"))] use { crate::{ - sec1::{FromEncodedPoint, ToEncodedPoint}, AffinePoint, CurveArithmetic, + sec1::{FromEncodedPoint, ToEncodedPoint}, }, pkcs8::{ - der::{self, asn1::OctetStringRef, Encode}, EncodePrivateKey, + der::{self, Encode, asn1::OctetStringRef}, }, zeroize::Zeroizing, }; @@ -26,7 +26,7 @@ use { // Imports for actual PEM support #[cfg(feature = "pem")] use { - crate::{error::Error, Result}, + crate::{Result, error::Error}, core::str::FromStr, pkcs8::DecodePrivateKey, }; diff --git a/elliptic-curve/tests/pkcs8.rs b/elliptic-curve/tests/pkcs8.rs index 2a27fc0c7..4234c2f48 100644 --- a/elliptic-curve/tests/pkcs8.rs +++ b/elliptic-curve/tests/pkcs8.rs @@ -39,7 +39,9 @@ fn decode_pkcs8_private_key_from_der() { #[test] fn decode_pkcs8_public_key_from_der() { let public_key = PublicKey::from_public_key_der(&PKCS8_PUBLIC_KEY_DER[..]).unwrap(); - let expected_sec1_point = hex!("041CACFFB55F2F2CEFD89D89EB374B2681152452802DEEA09916068137D839CF7FC481A44492304D7EF66AC117BEFE83A8D08F155F2B52F9F618DD447029048E0F"); + let expected_sec1_point = hex!( + "041CACFFB55F2F2CEFD89D89EB374B2681152452802DEEA09916068137D839CF7FC481A44492304D7EF66AC117BEFE83A8D08F155F2B52F9F618DD447029048E0F" + ); assert_eq!( public_key.to_encoded_point(false).as_bytes(), &expected_sec1_point[..] diff --git a/kem/CHANGELOG.md b/kem/CHANGELOG.md index 103b251f0..591c3e830 100644 --- a/kem/CHANGELOG.md +++ b/kem/CHANGELOG.md @@ -4,6 +4,12 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). +## 0.3.0 (UNRELEASED) +### Changed +- Edition changed to 2024 and MSRV bumped to 1.85 ([#1759]) + +[#1759]: https://github.com/RustCrypto/traits/pull/1759 + ## 0.2.0 (2022-05-26) ### Added - Generic `SharedSecret` type ([#982]) diff --git a/kem/Cargo.toml b/kem/Cargo.toml index b07b3c16d..eb396b17c 100644 --- a/kem/Cargo.toml +++ b/kem/Cargo.toml @@ -8,10 +8,10 @@ documentation = "https://docs.rs/kem" homepage = "https://github.com/RustCrypto/traits/tree/master/kem" repository = "https://github.com/RustCrypto/traits" readme = "README.md" -edition = "2021" keywords = ["crypto"] categories = ["cryptography", "no-std"] -rust-version = "1.66" +edition = "2024" +rust-version = "1.85" [dependencies] rand_core = "0.9" diff --git a/kem/README.md b/kem/README.md index 8ca46b4ed..4ee06756e 100644 --- a/kem/README.md +++ b/kem/README.md @@ -70,20 +70,6 @@ impl Encapsulate for EncapContext { } ``` -[Documentation][docs-link] - -## Minimum Supported Rust Version - -Rust **1.66** or higher. - -Minimum supported Rust version can be changed in the future, but it will be -done with a minor version bump. - -## SemVer Policy - -- All on-by-default features of this library are covered by SemVer -- MSRV is considered exempt from SemVer as noted above - ## License Licensed under either of @@ -106,7 +92,7 @@ dual licensed as above, without any additional terms or conditions. [docs-image]: https://docs.rs/kem/badge.svg [docs-link]: https://docs.rs/kem/ [license-image]: https://img.shields.io/badge/license-Apache2.0/MIT-blue.svg -[rustc-image]: https://img.shields.io/badge/rustc-1.66+-blue.svg +[rustc-image]: https://img.shields.io/badge/rustc-1.85+-blue.svg [chat-image]: https://img.shields.io/badge/zulip-join_chat-blue.svg [chat-link]: https://rustcrypto.zulipchat.com/#narrow/stream/260048-signatures [build-image]: https://github.com/RustCrypto/traits/workflows/kem/badge.svg?branch=master&event=push diff --git a/password-hash/CHANGELOG.md b/password-hash/CHANGELOG.md index e32dd4271..e28a88cca 100644 --- a/password-hash/CHANGELOG.md +++ b/password-hash/CHANGELOG.md @@ -5,6 +5,12 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). +## 0.6.0 (UNRELEASED) +### Changed +- Edition changed to 2024 and MSRV bumped to 1.85 ([#1759]) + +[#1759]: https://github.com/RustCrypto/traits/pull/1759 + ## 0.5.0 (2023-03-04) ### Added - `Error::OutputSize` ([#1026]) diff --git a/password-hash/Cargo.toml b/password-hash/Cargo.toml index 83fe1136c..3abcbca1b 100644 --- a/password-hash/Cargo.toml +++ b/password-hash/Cargo.toml @@ -14,8 +14,8 @@ homepage = "https://github.com/RustCrypto/traits/tree/master/password-hash" repository = "https://github.com/RustCrypto/traits" categories = ["authentication", "cryptography", "no-std"] keywords = ["crypt", "mcf", "password", "pbkdf", "phc"] -edition = "2021" -rust-version = "1.81" +edition = "2024" +rust-version = "1.85" [dependencies] base64ct = "1.6" diff --git a/password-hash/README.md b/password-hash/README.md index 20dffcd56..f7bc6e858 100644 --- a/password-hash/README.md +++ b/password-hash/README.md @@ -9,8 +9,6 @@ Traits which describe the functionality of [password hashing algorithms]. -[Documentation][docs-link] - ## About Provides a `no_std`-friendly implementation of the @@ -27,18 +25,6 @@ this crate for interoperability: - [`pbkdf2`] - Password-Based Key Derivation Function v2 - [`scrypt`] - scrypt key derivation function -## Minimum Supported Rust Version - -Rust **1.81** or higher. - -Minimum supported Rust version may be changed in the future, but it will be -accompanied by a minor version bump. - -## SemVer Policy - -- All on-by-default features of this library are covered by SemVer -- MSRV is considered exempt from SemVer as noted above - ## License Licensed under either of: @@ -63,7 +49,7 @@ dual licensed as above, without any additional terms or conditions. [build-image]: https://github.com/RustCrypto/traits/workflows/password-hash/badge.svg?branch=master&event=push [build-link]: https://github.com/RustCrypto/traits/actions?query=workflow:password-hash [license-image]: https://img.shields.io/badge/license-Apache2.0/MIT-blue.svg -[rustc-image]: https://img.shields.io/badge/rustc-1.81+-blue.svg +[rustc-image]: https://img.shields.io/badge/rustc-1.85+-blue.svg [chat-image]: https://img.shields.io/badge/zulip-join_chat-blue.svg [chat-link]: https://rustcrypto.zulipchat.com/#narrow/stream/260046-password-hashes diff --git a/password-hash/src/params.rs b/password-hash/src/params.rs index 0d8074099..975e794a8 100644 --- a/password-hash/src/params.rs +++ b/password-hash/src/params.rs @@ -2,8 +2,8 @@ use crate::errors::InvalidValue; use crate::{ - value::{Decimal, Value}, Encoding, Error, Ident, Result, + value::{Decimal, Value}, }; use core::{ fmt::{self, Debug, Write}, diff --git a/signature/CHANGELOG.md b/signature/CHANGELOG.md index 554e0f5fd..faaaff7a4 100644 --- a/signature/CHANGELOG.md +++ b/signature/CHANGELOG.md @@ -4,11 +4,15 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). -## Unreleased +## 2.3.0 (UNRELEASED) ### Added -- `RandomizedSignerMut` trait +- `RandomizedSignerMut` trait ([#1448]) -[#1448](https://github.com/RustCrypto/traits/pull/1448) +### Changed +- Edition changed to 2024 and MSRV bumped to 1.85 ([#1759]) + +[#1448]: https://github.com/RustCrypto/traits/pull/1448 +[#1759]: https://github.com/RustCrypto/traits/pull/1759 ## 2.2.0 (2023-11-12) ### Changed diff --git a/signature/Cargo.toml b/signature/Cargo.toml index 85cafb78b..7a428af8b 100644 --- a/signature/Cargo.toml +++ b/signature/Cargo.toml @@ -10,8 +10,8 @@ repository = "https://github.com/RustCrypto/traits" readme = "README.md" keywords = ["crypto", "ecdsa", "ed25519", "signature", "signing"] categories = ["cryptography", "no-std"] -edition = "2021" -rust-version = "1.81" +edition = "2024" +rust-version = "1.85" [dependencies] derive = { package = "signature_derive", version = "2", optional = true, path = "../signature_derive" } @@ -19,7 +19,7 @@ digest = { version = "=0.11.0-pre.9", optional = true, default-features = false rand_core = { version = "0.9", optional = true, default-features = false } [dev-dependencies] -hex-literal = "0.4" +hex-literal = "1" sha2 = { version = "=0.11.0-pre.4", default-features = false } [features] diff --git a/signature/README.md b/signature/README.md index 1da58187e..4e3cef37c 100644 --- a/signature/README.md +++ b/signature/README.md @@ -13,20 +13,8 @@ generating and verifying [digital signatures]. Used by the [`dsa`], [`ecdsa`], [`ed25519`], and [`rsa`] crates maintained by the [RustCrypto] organization, as well as [`ed25519-dalek`]. -[Documentation][docs-link] +## SemVer Policy Exemptions -## Minimum Supported Rust Version - -Rust **1.81** or higher. - -Minimum supported Rust version can be changed in the future, but it will be -done with a minor version bump. - -## SemVer Policy - -- All on-by-default features of this library are covered by SemVer -- MSRV is considered exempt from SemVer as noted above -- The `derive` feature is stable and covered by SemVer - The off-by-default features `digest` and `rand_core` are unstable features which are also considered exempt from SemVer as they correspond to pre-1.0 crates which are still subject to changes. Breaking changes to these features @@ -56,7 +44,7 @@ dual licensed as above, without any additional terms or conditions. [build-image]: https://github.com/RustCrypto/traits/actions/workflows/signature.yml/badge.svg [build-link]: https://github.com/RustCrypto/traits/actions/workflows/signature.yml [license-image]: https://img.shields.io/badge/license-Apache2.0/MIT-blue.svg -[rustc-image]: https://img.shields.io/badge/rustc-1.81+-blue.svg +[rustc-image]: https://img.shields.io/badge/rustc-1.85+-blue.svg [chat-image]: https://img.shields.io/badge/zulip-join_chat-blue.svg [chat-link]: https://rustcrypto.zulipchat.com/#narrow/stream/260048-signatures diff --git a/signature/src/signer.rs b/signature/src/signer.rs index a6c2813f8..22f2e6aa0 100644 --- a/signature/src/signer.rs +++ b/signature/src/signer.rs @@ -114,7 +114,7 @@ pub trait RandomizedDigestSigner { /// Attempt to sign the given prehashed message `Digest`, returning a /// digital signature on success, or an error if something went wrong. fn try_sign_digest_with_rng(&self, rng: &mut R, digest: D) - -> Result; + -> Result; } /// Sign the provided message bytestring using `&mut Self` (e.g. an evolving diff --git a/signature/tests/derive.rs b/signature/tests/derive.rs index a63ece5ee..989890271 100644 --- a/signature/tests/derive.rs +++ b/signature/tests/derive.rs @@ -2,12 +2,12 @@ #![cfg(all(feature = "derive", feature = "digest"))] -use digest::{array::Array, Digest, OutputSizeUser}; +use digest::{Digest, OutputSizeUser, array::Array}; use hex_literal::hex; use sha2::Sha256; use signature::{ - hazmat::{PrehashSigner, PrehashVerifier}, DigestSigner, DigestVerifier, Error, PrehashSignature, SignatureEncoding, Signer, Verifier, + hazmat::{PrehashSigner, PrehashVerifier}, }; /// Test vector to compute SHA-256 digest of diff --git a/signature_derive/CHANGELOG.md b/signature_derive/CHANGELOG.md index 0edb20cdb..e88b15da1 100644 --- a/signature_derive/CHANGELOG.md +++ b/signature_derive/CHANGELOG.md @@ -4,6 +4,12 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). +## 2.2.0 (UNRELEASED) +### Changed +- Edition changed to 2024 and MSRV bumped to 1.85 ([#1759]) + +[#1759]: https://github.com/RustCrypto/traits/pull/1759 + ## 2.1.0 (2023-11-12) ### Changed - MSRV 1.60 ([#1387]) diff --git a/signature_derive/Cargo.toml b/signature_derive/Cargo.toml index 3d01b5d0b..e5d8134ea 100644 --- a/signature_derive/Cargo.toml +++ b/signature_derive/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "signature_derive" -version = "2.1.0" +version = "2.2.0" authors = ["RustCrypto Developers"] license = "Apache-2.0 OR MIT" description = "Custom derive support for the 'signature' crate" @@ -8,8 +8,8 @@ documentation = "https://docs.rs/signature" homepage = "https://github.com/RustCrypto/traits/tree/master/signature_derive" repository = "https://github.com/RustCrypto/traits" readme = "README.md" -edition = "2021" -rust-version = "1.60" +edition = "2024" +rust-version = "1.85" keywords = ["crypto", "ecdsa", "ed25519", "signature", "signing"] categories = ["cryptography", "no-std"] diff --git a/signature_derive/README.md b/signature_derive/README.md index e63f6f85f..1be2391d0 100644 --- a/signature_derive/README.md +++ b/signature_derive/README.md @@ -1,12 +1,17 @@ # `signature` crate custom derive support +[![crate][crate-image]][crate-link] +[![Docs][docs-image]][docs-link] +[![Build Status][build-image]][build-link] +![Apache2/MIT licensed][license-image] +![Rust Version][rustc-image] +[![Project Chat][chat-image]][chat-link] + This crate provides proc macros used by the `signature` crate. Not intended to be used directly. See the `signature` crate's documentation for additional details: -[Documentation] - ## License All crates licensed under either of @@ -22,4 +27,15 @@ Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions. -[Documentation]: https://docs.rs/signature/ +[//]: # (badges) + +[crate-image]: https://img.shields.io/crates/v/password-hash +[crate-link]: https://crates.io/crates/password-hash +[docs-image]: https://docs.rs/password-hash/badge.svg +[docs-link]: https://docs.rs/password-hash/ +[build-image]: https://github.com/RustCrypto/traits/workflows/password-hash/badge.svg?branch=master&event=push +[build-link]: https://github.com/RustCrypto/traits/actions?query=workflow:password-hash +[license-image]: https://img.shields.io/badge/license-Apache2.0/MIT-blue.svg +[rustc-image]: https://img.shields.io/badge/rustc-1.85+-blue.svg +[chat-image]: https://img.shields.io/badge/zulip-join_chat-blue.svg +[chat-link]: https://rustcrypto.zulipchat.com/#narrow/stream/260046-password-hashes diff --git a/signature_derive/src/lib.rs b/signature_derive/src/lib.rs index 14930789b..bf6a94c5d 100644 --- a/signature_derive/src/lib.rs +++ b/signature_derive/src/lib.rs @@ -14,8 +14,8 @@ use proc_macro::TokenStream; use proc_macro2::{Span, TokenStream as TokenStream2}; use quote::quote; use syn::{ - parse_macro_input, parse_quote, punctuated::Punctuated, DeriveInput, Ident, PredicateType, - Token, TraitBound, Type, TypeParam, TypeParamBound, WhereClause, WherePredicate, + DeriveInput, Ident, PredicateType, Token, TraitBound, Type, TypeParam, TypeParamBound, + WhereClause, WherePredicate, parse_macro_input, parse_quote, punctuated::Punctuated, }; /// Derive the [`Signer`] trait for a type which impls [`DigestSigner`]. diff --git a/universal-hash/CHANGELOG.md b/universal-hash/CHANGELOG.md index 1ee729f8a..20c7c4829 100644 --- a/universal-hash/CHANGELOG.md +++ b/universal-hash/CHANGELOG.md @@ -5,8 +5,9 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). -## Unreleased +## 0.6.0 (UNRELEASED) ### Changed +- Edition changed to 2024 and MSRV bumped to 1.85 ([#1759]) - Migrate to `doc_auto_cfg` ([#1370]) - Exclude pre-1.60 crates from workspace ([#1380]) - bump crypto-common to v0.2.0-pre; MSRV 1.65 ([#1385]) @@ -30,6 +31,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 [#1469]: https://github.com/RustCrypto/traits/pull/1469 [#1493]: https://github.com/RustCrypto/traits/pull/1493 [#1496]: https://github.com/RustCrypto/traits/pull/1496 +[#1759]: https://github.com/RustCrypto/traits/pull/1759 ## 0.5.1 (2023-05-19) ### Changed diff --git a/universal-hash/Cargo.toml b/universal-hash/Cargo.toml index 28e3a180e..bf1993107 100644 --- a/universal-hash/Cargo.toml +++ b/universal-hash/Cargo.toml @@ -4,8 +4,8 @@ version = "0.6.0-rc.0" description = "Traits which describe the functionality of universal hash functions (UHFs)" authors = ["RustCrypto Developers"] license = "MIT OR Apache-2.0" -edition = "2021" -rust-version = "1.81" +edition = "2024" +rust-version = "1.85" readme = "README.md" documentation = "https://docs.rs/universal-hash" repository = "https://github.com/RustCrypto/traits" @@ -13,7 +13,7 @@ keywords = ["crypto", "mac"] categories = ["cryptography", "no-std"] [dependencies] -crypto-common = "0.2.0-rc.1" +crypto-common = { version = "0.2.0-rc.1", path = "../crypto-common" } subtle = { version = "2.4", default-features = false } [package.metadata.docs.rs] diff --git a/universal-hash/README.md b/universal-hash/README.md index beaa9e58a..7e34e89eb 100644 --- a/universal-hash/README.md +++ b/universal-hash/README.md @@ -11,20 +11,6 @@ Traits which describe functionality of [universal hash functions] (UHFs). See [RustCrypto/universal-hashes] for implementations which use this trait. -[Documentation][docs-link] - -## Minimum Supported Rust Version - -Rust **1.81** or higher. - -Minimum supported Rust version can be changed in the future, but it will be -done with a minor version bump. - -## SemVer Policy - -- All on-by-default features of this library are covered by SemVer -- MSRV is considered exempt from SemVer as noted above - ## License Licensed under either of: @@ -47,7 +33,7 @@ dual licensed as above, without any additional terms or conditions. [docs-image]: https://docs.rs/universal-hash/badge.svg [docs-link]: https://docs.rs/universal-hash/ [license-image]: https://img.shields.io/badge/license-Apache2.0/MIT-blue.svg -[rustc-image]: https://img.shields.io/badge/rustc-1.81+-blue.svg +[rustc-image]: https://img.shields.io/badge/rustc-1.85+-blue.svg [chat-image]: https://img.shields.io/badge/zulip-join_chat-blue.svg [chat-link]: https://rustcrypto.zulipchat.com/#narrow/stream/260051-universal-hashes [build-image]: https://github.com/RustCrypto/traits/workflows/universal-hash/badge.svg?branch=master&event=push diff --git a/universal-hash/src/lib.rs b/universal-hash/src/lib.rs index 06e75e658..4fca3369f 100644 --- a/universal-hash/src/lib.rs +++ b/universal-hash/src/lib.rs @@ -9,13 +9,12 @@ #![warn(missing_docs, rust_2018_idioms, missing_debug_implementations)] pub use crypto_common::{ - self, array, + self, Block, Key, KeyInit, ParBlocks, Reset, array, typenum::{self, consts}, - Block, Key, KeyInit, ParBlocks, Reset, }; use core::slice; -use crypto_common::{array::Array, BlockSizeUser, BlockSizes, ParBlocksSizeUser}; +use crypto_common::{BlockSizeUser, BlockSizes, ParBlocksSizeUser, array::Array}; use subtle::ConstantTimeEq; use typenum::Unsigned; From 7f3b95a3b1d32cd558b6c5d9868cd32bb9ecde10 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=90=D1=80=D1=82=D1=91=D0=BC=20=D0=9F=D0=B0=D0=B2=D0=BB?= =?UTF-8?q?=D0=BE=D0=B2=20=5BArtyom=20Pavlov=5D?= Date: Sat, 22 Feb 2025 20:40:44 +0300 Subject: [PATCH 2/2] Exclude signature from workspace --- Cargo.lock | 31 ----- Cargo.toml | 6 +- signature/Cargo.lock | 269 +++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 273 insertions(+), 33 deletions(-) create mode 100644 signature/Cargo.lock diff --git a/Cargo.lock b/Cargo.lock index 93daf4c1c..85567be00 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -109,15 +109,6 @@ version = "0.10.0-rc.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "68ff6be19477a1bd5441f382916a89bc2a0b2c35db6d41e0f6e8538bf6d6463f" -[[package]] -name = "cpufeatures" -version = "0.2.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "59ed5838eebb26a2bb2e58f6d5b5316989ae9d08bab10e0e6d103e656d1b0280" -dependencies = [ - "libc", -] - [[package]] name = "crypto" version = "0.6.0-pre" @@ -190,7 +181,6 @@ version = "0.11.0-pre.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cf2e3d6615d99707295a9673e889bf363a04b2a466bd320c65a72536f7577379" dependencies = [ - "block-buffer", "crypto-common 0.2.0-rc.1 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -273,12 +263,6 @@ dependencies = [ "stable_deref_trait", ] -[[package]] -name = "hex-literal" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bcaaec4551594c969335c98c903c1397853d4198408ea609190f420500f6be71" - [[package]] name = "hybrid-array" version = "0.2.3" @@ -402,26 +386,11 @@ dependencies = [ "zeroize", ] -[[package]] -name = "sha2" -version = "0.11.0-pre.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "540c0893cce56cdbcfebcec191ec8e0f470dd1889b6e7a0b503e310a94a168f5" -dependencies = [ - "cfg-if", - "cpufeatures", - "digest 0.11.0-pre.9 (registry+https://github.com/rust-lang/crates.io-index)", -] - [[package]] name = "signature" version = "2.3.0-pre.6" dependencies = [ - "digest 0.11.0-pre.9 (registry+https://github.com/rust-lang/crates.io-index)", - "hex-literal", "rand_core 0.9.2", - "sha2", - "signature_derive", ] [[package]] diff --git a/Cargo.toml b/Cargo.toml index 53e77019f..811b606ad 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -9,8 +9,10 @@ members = [ "digest", "kem", "password-hash", - "signature", "signature_derive", "universal-hash", ] -exclude = ["elliptic-curve"] +exclude = [ + "elliptic-curve", + "signature", +] diff --git a/signature/Cargo.lock b/signature/Cargo.lock new file mode 100644 index 000000000..c2f685474 --- /dev/null +++ b/signature/Cargo.lock @@ -0,0 +1,269 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 4 + +[[package]] +name = "bitflags" +version = "2.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f68f53c83ab957f72c32642f3868eec03eb974d1fb82e453128456482613d36" + +[[package]] +name = "block-buffer" +version = "0.11.0-rc.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3fd016a0ddc7cb13661bf5576073ce07330a693f8608a1320b4e20561cc12cdc" +dependencies = [ + "hybrid-array", +] + +[[package]] +name = "cfg-if" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" + +[[package]] +name = "cpufeatures" +version = "0.2.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "59ed5838eebb26a2bb2e58f6d5b5316989ae9d08bab10e0e6d103e656d1b0280" +dependencies = [ + "libc", +] + +[[package]] +name = "crypto-common" +version = "0.2.0-rc.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b0b8ce8218c97789f16356e7896b3714f26c2ee1079b79c0b7ae7064bb9089fa" +dependencies = [ + "hybrid-array", +] + +[[package]] +name = "digest" +version = "0.11.0-pre.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cf2e3d6615d99707295a9673e889bf363a04b2a466bd320c65a72536f7577379" +dependencies = [ + "block-buffer", + "crypto-common", +] + +[[package]] +name = "getrandom" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "43a49c392881ce6d5c3b8cb70f98717b7c07aabbdff06687b9030dbfbe2725f8" +dependencies = [ + "cfg-if", + "libc", + "wasi", + "windows-targets", +] + +[[package]] +name = "hex-literal" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bcaaec4551594c969335c98c903c1397853d4198408ea609190f420500f6be71" + +[[package]] +name = "hybrid-array" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f2d35805454dc9f8662a98d6d61886ffe26bd465f5960e0e55345c70d5c0d2a9" +dependencies = [ + "typenum", +] + +[[package]] +name = "libc" +version = "0.2.169" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b5aba8db14291edd000dfcc4d620c7ebfb122c613afb886ca8803fa4e128a20a" + +[[package]] +name = "proc-macro2" +version = "1.0.93" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "60946a68e5f9d28b0dc1c21bb8a97ee7d018a8b322fa57838ba31cc878e22d99" +dependencies = [ + "unicode-ident", +] + +[[package]] +name = "quote" +version = "1.0.38" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0e4dccaaaf89514f546c693ddc140f729f958c247918a13380cccc6078391acc" +dependencies = [ + "proc-macro2", +] + +[[package]] +name = "rand_core" +version = "0.9.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7a509b1a2ffbe92afab0e55c8fd99dea1c280e8171bd2d88682bb20bc41cbc2c" +dependencies = [ + "getrandom", + "zerocopy", +] + +[[package]] +name = "sha2" +version = "0.11.0-pre.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "540c0893cce56cdbcfebcec191ec8e0f470dd1889b6e7a0b503e310a94a168f5" +dependencies = [ + "cfg-if", + "cpufeatures", + "digest", +] + +[[package]] +name = "signature" +version = "2.3.0-pre.6" +dependencies = [ + "digest", + "hex-literal", + "rand_core", + "sha2", + "signature_derive", +] + +[[package]] +name = "signature_derive" +version = "2.2.0" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "syn" +version = "2.0.98" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "36147f1a48ae0ec2b5b3bc5b537d267457555a10dc06f3dbc8cb11ba3006d3b1" +dependencies = [ + "proc-macro2", + "quote", + "unicode-ident", +] + +[[package]] +name = "typenum" +version = "1.18.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1dccffe3ce07af9386bfd29e80c0ab1a8205a2fc34e4bcd40364df902cfa8f3f" + +[[package]] +name = "unicode-ident" +version = "1.0.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "00e2473a93778eb0bad35909dff6a10d28e63f792f16ed15e404fca9d5eeedbe" + +[[package]] +name = "wasi" +version = "0.13.3+wasi-0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "26816d2e1a4a36a2940b96c5296ce403917633dff8f3440e9b236ed6f6bacad2" +dependencies = [ + "wit-bindgen-rt", +] + +[[package]] +name = "windows-targets" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973" +dependencies = [ + "windows_aarch64_gnullvm", + "windows_aarch64_msvc", + "windows_i686_gnu", + "windows_i686_gnullvm", + "windows_i686_msvc", + "windows_x86_64_gnu", + "windows_x86_64_gnullvm", + "windows_x86_64_msvc", +] + +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3" + +[[package]] +name = "windows_aarch64_msvc" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469" + +[[package]] +name = "windows_i686_gnu" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b" + +[[package]] +name = "windows_i686_gnullvm" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66" + +[[package]] +name = "windows_i686_msvc" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66" + +[[package]] +name = "windows_x86_64_gnu" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78" + +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d" + +[[package]] +name = "windows_x86_64_msvc" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" + +[[package]] +name = "wit-bindgen-rt" +version = "0.33.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3268f3d866458b787f390cf61f4bbb563b922d091359f9608842999eaee3943c" +dependencies = [ + "bitflags", +] + +[[package]] +name = "zerocopy" +version = "0.8.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dde3bb8c68a8f3f1ed4ac9221aad6b10cece3e60a8e2ea54a6a2dec806d0084c" +dependencies = [ + "zerocopy-derive", +] + +[[package]] +name = "zerocopy-derive" +version = "0.8.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eea57037071898bf96a6da35fd626f4f27e9cee3ead2a6c703cf09d472b2e700" +dependencies = [ + "proc-macro2", + "quote", + "syn", +]