mirror of
https://github.com/RustCrypto/hashes.git
synced 2026-01-25 04:18:20 +00:00
Upgrade all crates to the 2024 edition and bump MSRV to 1.85 (#652)
This commit is contained in:
2
.github/workflows/ascon-hash.yml
vendored
2
.github/workflows/ascon-hash.yml
vendored
@@ -21,7 +21,7 @@ jobs:
|
||||
set-msrv:
|
||||
uses: RustCrypto/actions/.github/workflows/set-msrv.yml@master
|
||||
with:
|
||||
msrv: 1.81.0
|
||||
msrv: 1.85.0
|
||||
|
||||
build:
|
||||
needs: set-msrv
|
||||
|
||||
2
.github/workflows/belt-hash.yml
vendored
2
.github/workflows/belt-hash.yml
vendored
@@ -21,7 +21,7 @@ jobs:
|
||||
set-msrv:
|
||||
uses: RustCrypto/actions/.github/workflows/set-msrv.yml@master
|
||||
with:
|
||||
msrv: 1.81.0
|
||||
msrv: 1.85.0
|
||||
|
||||
build:
|
||||
needs: set-msrv
|
||||
|
||||
2
.github/workflows/blake2.yml
vendored
2
.github/workflows/blake2.yml
vendored
@@ -21,7 +21,7 @@ jobs:
|
||||
set-msrv:
|
||||
uses: RustCrypto/actions/.github/workflows/set-msrv.yml@master
|
||||
with:
|
||||
msrv: 1.81.0
|
||||
msrv: 1.85.0
|
||||
|
||||
build:
|
||||
needs: set-msrv
|
||||
|
||||
2
.github/workflows/fsb.yml
vendored
2
.github/workflows/fsb.yml
vendored
@@ -21,7 +21,7 @@ jobs:
|
||||
set-msrv:
|
||||
uses: RustCrypto/actions/.github/workflows/set-msrv.yml@master
|
||||
with:
|
||||
msrv: 1.81.0
|
||||
msrv: 1.85.0
|
||||
|
||||
build:
|
||||
needs: set-msrv
|
||||
|
||||
2
.github/workflows/gost94.yml
vendored
2
.github/workflows/gost94.yml
vendored
@@ -21,7 +21,7 @@ jobs:
|
||||
set-msrv:
|
||||
uses: RustCrypto/actions/.github/workflows/set-msrv.yml@master
|
||||
with:
|
||||
msrv: 1.81.0
|
||||
msrv: 1.85.0
|
||||
|
||||
build:
|
||||
needs: set-msrv
|
||||
|
||||
2
.github/workflows/groestl.yml
vendored
2
.github/workflows/groestl.yml
vendored
@@ -21,7 +21,7 @@ jobs:
|
||||
set-msrv:
|
||||
uses: RustCrypto/actions/.github/workflows/set-msrv.yml@master
|
||||
with:
|
||||
msrv: 1.81.0
|
||||
msrv: 1.85.0
|
||||
|
||||
build:
|
||||
needs: set-msrv
|
||||
|
||||
2
.github/workflows/jh.yml
vendored
2
.github/workflows/jh.yml
vendored
@@ -21,7 +21,7 @@ jobs:
|
||||
set-msrv:
|
||||
uses: RustCrypto/actions/.github/workflows/set-msrv.yml@master
|
||||
with:
|
||||
msrv: 1.81.0
|
||||
msrv: 1.85.0
|
||||
|
||||
build:
|
||||
needs: set-msrv
|
||||
|
||||
2
.github/workflows/k12.yml
vendored
2
.github/workflows/k12.yml
vendored
@@ -21,7 +21,7 @@ jobs:
|
||||
set-msrv:
|
||||
uses: RustCrypto/actions/.github/workflows/set-msrv.yml@master
|
||||
with:
|
||||
msrv: 1.81.0
|
||||
msrv: 1.85.0
|
||||
|
||||
build:
|
||||
needs: set-msrv
|
||||
|
||||
2
.github/workflows/md2.yml
vendored
2
.github/workflows/md2.yml
vendored
@@ -21,7 +21,7 @@ jobs:
|
||||
set-msrv:
|
||||
uses: RustCrypto/actions/.github/workflows/set-msrv.yml@master
|
||||
with:
|
||||
msrv: 1.81.0
|
||||
msrv: 1.85.0
|
||||
|
||||
build:
|
||||
needs: set-msrv
|
||||
|
||||
2
.github/workflows/md4.yml
vendored
2
.github/workflows/md4.yml
vendored
@@ -21,7 +21,7 @@ jobs:
|
||||
set-msrv:
|
||||
uses: RustCrypto/actions/.github/workflows/set-msrv.yml@master
|
||||
with:
|
||||
msrv: 1.81.0
|
||||
msrv: 1.85.0
|
||||
|
||||
build:
|
||||
needs: set-msrv
|
||||
|
||||
2
.github/workflows/md5.yml
vendored
2
.github/workflows/md5.yml
vendored
@@ -24,7 +24,7 @@ jobs:
|
||||
set-msrv:
|
||||
uses: RustCrypto/actions/.github/workflows/set-msrv.yml@master
|
||||
with:
|
||||
msrv: 1.81.0
|
||||
msrv: 1.85.0
|
||||
|
||||
build:
|
||||
needs: set-msrv
|
||||
|
||||
2
.github/workflows/ripemd.yml
vendored
2
.github/workflows/ripemd.yml
vendored
@@ -21,7 +21,7 @@ jobs:
|
||||
set-msrv:
|
||||
uses: RustCrypto/actions/.github/workflows/set-msrv.yml@master
|
||||
with:
|
||||
msrv: 1.81.0
|
||||
msrv: 1.85.0
|
||||
|
||||
build:
|
||||
needs: set-msrv
|
||||
|
||||
3
.github/workflows/sha1-checked.yml
vendored
3
.github/workflows/sha1-checked.yml
vendored
@@ -21,7 +21,7 @@ jobs:
|
||||
set-msrv:
|
||||
uses: RustCrypto/actions/.github/workflows/set-msrv.yml@master
|
||||
with:
|
||||
msrv: 1.81.0
|
||||
msrv: 1.85.0
|
||||
|
||||
# Builds for no_std platforms
|
||||
build:
|
||||
@@ -47,7 +47,6 @@ jobs:
|
||||
- run: cargo hack build --target ${{ matrix.target }} --each-feature --exclude-features default,std
|
||||
|
||||
minimal-versions:
|
||||
if: false # TODO: temp disabled due to unpublished prerelease dependencies
|
||||
uses: RustCrypto/actions/.github/workflows/minimal-versions.yml@master
|
||||
with:
|
||||
working-directory: ${{ github.workflow }}
|
||||
|
||||
2
.github/workflows/sha1.yml
vendored
2
.github/workflows/sha1.yml
vendored
@@ -21,7 +21,7 @@ jobs:
|
||||
set-msrv:
|
||||
uses: RustCrypto/actions/.github/workflows/set-msrv.yml@master
|
||||
with:
|
||||
msrv: 1.81.0
|
||||
msrv: 1.85.0
|
||||
|
||||
# Builds for no_std platforms
|
||||
build:
|
||||
|
||||
2
.github/workflows/sha2.yml
vendored
2
.github/workflows/sha2.yml
vendored
@@ -21,7 +21,7 @@ jobs:
|
||||
set-msrv:
|
||||
uses: RustCrypto/actions/.github/workflows/set-msrv.yml@master
|
||||
with:
|
||||
msrv: 1.81.0
|
||||
msrv: 1.85.0
|
||||
|
||||
# Builds for no_std platforms
|
||||
build:
|
||||
|
||||
2
.github/workflows/sha3.yml
vendored
2
.github/workflows/sha3.yml
vendored
@@ -21,7 +21,7 @@ jobs:
|
||||
set-msrv:
|
||||
uses: RustCrypto/actions/.github/workflows/set-msrv.yml@master
|
||||
with:
|
||||
msrv: 1.81.0
|
||||
msrv: 1.85.0
|
||||
|
||||
build:
|
||||
needs: set-msrv
|
||||
|
||||
2
.github/workflows/shabal.yml
vendored
2
.github/workflows/shabal.yml
vendored
@@ -21,7 +21,7 @@ jobs:
|
||||
set-msrv:
|
||||
uses: RustCrypto/actions/.github/workflows/set-msrv.yml@master
|
||||
with:
|
||||
msrv: 1.81.0
|
||||
msrv: 1.85.0
|
||||
|
||||
build:
|
||||
needs: set-msrv
|
||||
|
||||
2
.github/workflows/skein.yml
vendored
2
.github/workflows/skein.yml
vendored
@@ -21,7 +21,7 @@ jobs:
|
||||
set-msrv:
|
||||
uses: RustCrypto/actions/.github/workflows/set-msrv.yml@master
|
||||
with:
|
||||
msrv: 1.81.0
|
||||
msrv: 1.85.0
|
||||
|
||||
build:
|
||||
needs: set-msrv
|
||||
|
||||
2
.github/workflows/sm3.yml
vendored
2
.github/workflows/sm3.yml
vendored
@@ -21,7 +21,7 @@ jobs:
|
||||
set-msrv:
|
||||
uses: RustCrypto/actions/.github/workflows/set-msrv.yml@master
|
||||
with:
|
||||
msrv: 1.81.0
|
||||
msrv: 1.85.0
|
||||
|
||||
build:
|
||||
needs: set-msrv
|
||||
|
||||
2
.github/workflows/streebog.yml
vendored
2
.github/workflows/streebog.yml
vendored
@@ -21,7 +21,7 @@ jobs:
|
||||
set-msrv:
|
||||
uses: RustCrypto/actions/.github/workflows/set-msrv.yml@master
|
||||
with:
|
||||
msrv: 1.81.0
|
||||
msrv: 1.85.0
|
||||
|
||||
build:
|
||||
needs: set-msrv
|
||||
|
||||
2
.github/workflows/tiger.yml
vendored
2
.github/workflows/tiger.yml
vendored
@@ -24,7 +24,7 @@ jobs:
|
||||
set-msrv:
|
||||
uses: RustCrypto/actions/.github/workflows/set-msrv.yml@master
|
||||
with:
|
||||
msrv: 1.81.0
|
||||
msrv: 1.85.0
|
||||
|
||||
build:
|
||||
needs: set-msrv
|
||||
|
||||
2
.github/workflows/whirlpool.yml
vendored
2
.github/workflows/whirlpool.yml
vendored
@@ -21,7 +21,7 @@ jobs:
|
||||
set-msrv:
|
||||
uses: RustCrypto/actions/.github/workflows/set-msrv.yml@master
|
||||
with:
|
||||
msrv: 1.81.0
|
||||
msrv: 1.85.0
|
||||
|
||||
build:
|
||||
needs: set-msrv
|
||||
|
||||
2
.github/workflows/workspace.yml
vendored
2
.github/workflows/workspace.yml
vendored
@@ -17,7 +17,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 -- -D warnings
|
||||
|
||||
|
||||
80
Cargo.lock
generated
80
Cargo.lock
generated
@@ -56,15 +56,15 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "blobby"
|
||||
version = "0.3.1"
|
||||
version = "0.4.0-pre.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "847495c209977a90e8aad588b959d0ca9f5dc228096d29a6bd3defd53f35eaec"
|
||||
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",
|
||||
"zeroize",
|
||||
@@ -90,29 +90,27 @@ checksum = "68ff6be19477a1bd5441f382916a89bc2a0b2c35db6d41e0f6e8538bf6d6463f"
|
||||
|
||||
[[package]]
|
||||
name = "cpufeatures"
|
||||
version = "0.2.16"
|
||||
version = "0.2.17"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "16b80225097f2e5ae4e7179dd2266824648f3e2f49d9134d584b76389d31c4c3"
|
||||
checksum = "59ed5838eebb26a2bb2e58f6d5b5316989ae9d08bab10e0e6d103e656d1b0280"
|
||||
dependencies = [
|
||||
"libc",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "crypto-common"
|
||||
version = "0.2.0-rc.1"
|
||||
version = "0.2.0-rc.2"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "b0b8ce8218c97789f16356e7896b3714f26c2ee1079b79c0b7ae7064bb9089fa"
|
||||
checksum = "170d71b5b14dec99db7739f6fc7d6ec2db80b78c3acb77db48392ccc3d8a9ea0"
|
||||
dependencies = [
|
||||
"getrandom",
|
||||
"hybrid-array",
|
||||
"rand_core",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "digest"
|
||||
version = "0.11.0-pre.9"
|
||||
version = "0.11.0-pre.10"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "cf2e3d6615d99707295a9673e889bf363a04b2a466bd320c65a72536f7577379"
|
||||
checksum = "6c478574b20020306f98d61c8ca3322d762e1ff08117422ac6106438605ea516"
|
||||
dependencies = [
|
||||
"blobby",
|
||||
"block-buffer",
|
||||
@@ -132,17 +130,6 @@ dependencies = [
|
||||
"whirlpool",
|
||||
]
|
||||
|
||||
[[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 = "gost94"
|
||||
version = "0.11.0-pre"
|
||||
@@ -169,15 +156,15 @@ checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70"
|
||||
|
||||
[[package]]
|
||||
name = "hex-literal"
|
||||
version = "0.4.1"
|
||||
version = "1.0.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46"
|
||||
checksum = "bcaaec4551594c969335c98c903c1397853d4198408ea609190f420500f6be71"
|
||||
|
||||
[[package]]
|
||||
name = "hybrid-array"
|
||||
version = "0.2.1"
|
||||
version = "0.3.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "45a9a965bb102c1c891fb017c09a05c965186b1265a207640f323ddd009f9deb"
|
||||
checksum = "4dab50e193aebe510fe0e40230145820e02f48dae0cf339ea4204e6e708ff7bd"
|
||||
dependencies = [
|
||||
"typenum",
|
||||
]
|
||||
@@ -212,9 +199,9 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "libc"
|
||||
version = "0.2.164"
|
||||
version = "0.2.169"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "433bfe06b8c75da9b2e3fbea6e5329ff87748f0b144ef75306e674c3f6f7c13f"
|
||||
checksum = "b5aba8db14291edd000dfcc4d620c7ebfb122c613afb886ca8803fa4e128a20a"
|
||||
|
||||
[[package]]
|
||||
name = "md-5"
|
||||
@@ -255,31 +242,22 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "proc-macro2"
|
||||
version = "1.0.92"
|
||||
version = "1.0.93"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "37d3544b3f2748c54e147655edb5025752e2303145b5aefb3c3ea2c78b973bb0"
|
||||
checksum = "60946a68e5f9d28b0dc1c21bb8a97ee7d018a8b322fa57838ba31cc878e22d99"
|
||||
dependencies = [
|
||||
"unicode-ident",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "quote"
|
||||
version = "1.0.37"
|
||||
version = "1.0.38"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "b5b9d34b8991d19d98081b46eacdd8eb58c6f2b201139f7c5f643cc155a633af"
|
||||
checksum = "0e4dccaaaf89514f546c693ddc140f729f958c247918a13380cccc6078391acc"
|
||||
dependencies = [
|
||||
"proc-macro2",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "rand_core"
|
||||
version = "0.6.4"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c"
|
||||
dependencies = [
|
||||
"getrandom",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "ripemd"
|
||||
version = "0.2.0-pre.4"
|
||||
@@ -383,9 +361,9 @@ checksum = "13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292"
|
||||
|
||||
[[package]]
|
||||
name = "syn"
|
||||
version = "2.0.89"
|
||||
version = "2.0.98"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "44d46482f1c1c87acd84dea20c1bf5ebff4c757009ed6bf19cfd36fb10e92c4e"
|
||||
checksum = "36147f1a48ae0ec2b5b3bc5b537d267457555a10dc06f3dbc8cb11ba3006d3b1"
|
||||
dependencies = [
|
||||
"proc-macro2",
|
||||
"quote",
|
||||
@@ -412,21 +390,15 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "typenum"
|
||||
version = "1.17.0"
|
||||
version = "1.18.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825"
|
||||
checksum = "1dccffe3ce07af9386bfd29e80c0ab1a8205a2fc34e4bcd40364df902cfa8f3f"
|
||||
|
||||
[[package]]
|
||||
name = "unicode-ident"
|
||||
version = "1.0.14"
|
||||
version = "1.0.17"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "adb9e6ca4f869e1180728b7950e35922a7fc6397f7b641499e8f3ef06e50dc83"
|
||||
|
||||
[[package]]
|
||||
name = "wasi"
|
||||
version = "0.11.0+wasi-snapshot-preview1"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423"
|
||||
checksum = "00e2473a93778eb0bad35909dff6a10d28e63f792f16ed15e404fca9d5eeedbe"
|
||||
|
||||
[[package]]
|
||||
name = "whirlpool"
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
[workspace]
|
||||
resolver = "2"
|
||||
resolver = "3"
|
||||
members = [
|
||||
"ascon-hash",
|
||||
"belt-hash",
|
||||
@@ -27,6 +27,3 @@ members = [
|
||||
|
||||
[profile.dev]
|
||||
opt-level = 2
|
||||
|
||||
[patch.crates-io]
|
||||
sha1 = { path = "./sha1" }
|
||||
|
||||
50
README.md
50
README.md
@@ -13,28 +13,28 @@ Additionally all crates do not require the standard library (i.e. `no_std` capab
|
||||
|
||||
| Algorithm | Crate | Crates.io | Documentation | MSRV | [Security] |
|
||||
|-----------|-------|:---------:|:-------------:|:----:|:----------:|
|
||||
| [Ascon] hash | [`ascon‑hash`] | [](https://crates.io/crates/ascon-hash) | [](https://docs.rs/ascon-hash) | ![MSRV 1.81][msrv-1.81] | :green_heart: |
|
||||
| [BelT] hash | [`belt‑hash`] | [](https://crates.io/crates/belt-hash) | [](https://docs.rs/belt-hash) | ![MSRV 1.81][msrv-1.81] | :green_heart: |
|
||||
| [BLAKE2] | [`blake2`] | [](https://crates.io/crates/blake2) | [](https://docs.rs/blake2) | ![MSRV 1.81][msrv-1.81] | :green_heart: |
|
||||
| [FSB] | [`fsb`] | [](https://crates.io/crates/fsb) | [](https://docs.rs/fsb) | ![MSRV 1.81][msrv-1.81] | :green_heart: |
|
||||
| [GOST R 34.11-94][GOST94] | [`gost94`] | [](https://crates.io/crates/gost94) | [](https://docs.rs/gost94) | ![MSRV 1.81][msrv-1.81] | :yellow_heart: |
|
||||
| [Grøstl] (Groestl) | [`groestl`] | [](https://crates.io/crates/groestl) | [](https://docs.rs/groestl) | ![MSRV 1.81][msrv-1.81] | :green_heart: |
|
||||
| [JH] | [`jh`] | [](https://crates.io/crates/jh) | [](https://docs.rs/jh) | ![MSRV 1.81][msrv-1.81] | :green_heart: |
|
||||
| [KangarooTwelve] | [`k12`] | [](https://crates.io/crates/k12) | [](https://docs.rs/k12) | ![MSRV 1.81][msrv-1.81] | :green_heart: |
|
||||
| [MD2] | [`md2`] | [](https://crates.io/crates/md2) | [](https://docs.rs/md2) | ![MSRV 1.81][msrv-1.81] | :broken_heart: |
|
||||
| [MD4] | [`md4`] | [](https://crates.io/crates/md4) | [](https://docs.rs/md4) | ![MSRV 1.81][msrv-1.81] | :broken_heart: |
|
||||
| [MD5] | [`md5`] [:exclamation:] | [](https://crates.io/crates/md-5) | [](https://docs.rs/md-5) | ![MSRV 1.81][msrv-1.81] | :broken_heart: |
|
||||
| [RIPEMD] | [`ripemd`] | [](https://crates.io/crates/ripemd) | [](https://docs.rs/ripemd) | ![MSRV 1.81][msrv-1.81] | :green_heart: |
|
||||
| [SHA-1] | [`sha1`] | [](https://crates.io/crates/sha1) | [](https://docs.rs/sha1) | ![MSRV 1.81][msrv-1.81] | :broken_heart: |
|
||||
| [SHA-1 Checked] | [`sha1-checked`] | [](https://crates.io/crates/sha1-checked) | [](https://docs.rs/sha1-checked) | ![MSRV 1.81][msrv-1.81] | :yellow_heart: |
|
||||
| [SHA-2] | [`sha2`] | [](https://crates.io/crates/sha2) | [](https://docs.rs/sha2) | ![MSRV 1.81][msrv-1.81] | :green_heart: |
|
||||
| [SHA-3] (Keccak) | [`sha3`] | [](https://crates.io/crates/sha3) | [](https://docs.rs/sha3) | ![MSRV 1.81][msrv-1.81] | :green_heart: |
|
||||
| [SHABAL] | [`shabal`] | [](https://crates.io/crates/shabal) | [](https://docs.rs/shabal) | ![MSRV 1.81][msrv-1.81] | :green_heart: |
|
||||
| [Skein] | [`skein`] | [](https://crates.io/crates/skein) | [](https://docs.rs/skein) | ![MSRV 1.81][msrv-1.81] | :green_heart: |
|
||||
| [SM3] (OSCCA GM/T 0004-2012) | [`sm3`] | [](https://crates.io/crates/sm3) | [](https://docs.rs/sm3) | ![MSRV 1.81][msrv-1.81] | :green_heart: |
|
||||
| [Streebog] (GOST R 34.11-2012) | [`streebog`] | [](https://crates.io/crates/streebog) | [](https://docs.rs/streebog) | ![MSRV 1.81][msrv-1.81] | :yellow_heart: |
|
||||
| [Tiger] | [`tiger`] | [](https://crates.io/crates/tiger) | [](https://docs.rs/tiger) | ![MSRV 1.81][msrv-1.81] | :green_heart: |
|
||||
| [Whirlpool] | [`whirlpool`] | [](https://crates.io/crates/whirlpool) | [](https://docs.rs/whirlpool) | ![MSRV 1.81][msrv-1.81] | :green_heart: |
|
||||
| [Ascon] hash | [`ascon‑hash`] | [](https://crates.io/crates/ascon-hash) | [](https://docs.rs/ascon-hash) | ![MSRV 1.85][msrv-1.85] | :green_heart: |
|
||||
| [BelT] hash | [`belt‑hash`] | [](https://crates.io/crates/belt-hash) | [](https://docs.rs/belt-hash) | ![MSRV 1.85][msrv-1.85] | :green_heart: |
|
||||
| [BLAKE2] | [`blake2`] | [](https://crates.io/crates/blake2) | [](https://docs.rs/blake2) | ![MSRV 1.85][msrv-1.85] | :green_heart: |
|
||||
| [FSB] | [`fsb`] | [](https://crates.io/crates/fsb) | [](https://docs.rs/fsb) | ![MSRV 1.85][msrv-1.85] | :green_heart: |
|
||||
| [GOST R 34.11-94][GOST94] | [`gost94`] | [](https://crates.io/crates/gost94) | [](https://docs.rs/gost94) | ![MSRV 1.85][msrv-1.85] | :yellow_heart: |
|
||||
| [Grøstl] (Groestl) | [`groestl`] | [](https://crates.io/crates/groestl) | [](https://docs.rs/groestl) | ![MSRV 1.85][msrv-1.85] | :green_heart: |
|
||||
| [JH] | [`jh`] | [](https://crates.io/crates/jh) | [](https://docs.rs/jh) | ![MSRV 1.85][msrv-1.85] | :green_heart: |
|
||||
| [KangarooTwelve] | [`k12`] | [](https://crates.io/crates/k12) | [](https://docs.rs/k12) | ![MSRV 1.85][msrv-1.85] | :green_heart: |
|
||||
| [MD2] | [`md2`] | [](https://crates.io/crates/md2) | [](https://docs.rs/md2) | ![MSRV 1.85][msrv-1.85] | :broken_heart: |
|
||||
| [MD4] | [`md4`] | [](https://crates.io/crates/md4) | [](https://docs.rs/md4) | ![MSRV 1.85][msrv-1.85] | :broken_heart: |
|
||||
| [MD5] | [`md5`] [:exclamation:] | [](https://crates.io/crates/md-5) | [](https://docs.rs/md-5) | ![MSRV 1.85][msrv-1.85] | :broken_heart: |
|
||||
| [RIPEMD] | [`ripemd`] | [](https://crates.io/crates/ripemd) | [](https://docs.rs/ripemd) | ![MSRV 1.85][msrv-1.85] | :green_heart: |
|
||||
| [SHA-1] | [`sha1`] | [](https://crates.io/crates/sha1) | [](https://docs.rs/sha1) | ![MSRV 1.85][msrv-1.85] | :broken_heart: |
|
||||
| [SHA-1 Checked] | [`sha1-checked`] | [](https://crates.io/crates/sha1-checked) | [](https://docs.rs/sha1-checked) | ![MSRV 1.85][msrv-1.85] | :yellow_heart: |
|
||||
| [SHA-2] | [`sha2`] | [](https://crates.io/crates/sha2) | [](https://docs.rs/sha2) | ![MSRV 1.85][msrv-1.85] | :green_heart: |
|
||||
| [SHA-3] (Keccak) | [`sha3`] | [](https://crates.io/crates/sha3) | [](https://docs.rs/sha3) | ![MSRV 1.85][msrv-1.85] | :green_heart: |
|
||||
| [SHABAL] | [`shabal`] | [](https://crates.io/crates/shabal) | [](https://docs.rs/shabal) | ![MSRV 1.85][msrv-1.85] | :green_heart: |
|
||||
| [Skein] | [`skein`] | [](https://crates.io/crates/skein) | [](https://docs.rs/skein) | ![MSRV 1.85][msrv-1.85] | :green_heart: |
|
||||
| [SM3] (OSCCA GM/T 0004-2012) | [`sm3`] | [](https://crates.io/crates/sm3) | [](https://docs.rs/sm3) | ![MSRV 1.85][msrv-1.85] | :green_heart: |
|
||||
| [Streebog] (GOST R 34.11-2012) | [`streebog`] | [](https://crates.io/crates/streebog) | [](https://docs.rs/streebog) | ![MSRV 1.85][msrv-1.85] | :yellow_heart: |
|
||||
| [Tiger] | [`tiger`] | [](https://crates.io/crates/tiger) | [](https://docs.rs/tiger) | ![MSRV 1.85][msrv-1.85] | :green_heart: |
|
||||
| [Whirlpool] | [`whirlpool`] | [](https://crates.io/crates/whirlpool) | [](https://docs.rs/whirlpool) | ![MSRV 1.85][msrv-1.85] | :green_heart: |
|
||||
|
||||
NOTE: the [`blake3`] crate implements the `digest` traits used by the rest of the hashes in this repository, but is maintained by the BLAKE3 team.
|
||||
|
||||
@@ -64,10 +64,6 @@ Note that the library itself is named as `md5`, i.e. inside `use` statements you
|
||||
The SHA-1 implementation was previously published as `sha-1`, but migrated to `sha1` since v0.10.0.
|
||||
`sha-1` will continue to receive v0.10.x patch updates, but will be deprecated after `sha1` v0.11 release.
|
||||
|
||||
### Minimum Supported Rust Version (MSRV) Policy
|
||||
|
||||
MSRV bumps are considered breaking changes and will be performed only with minor version bump.
|
||||
|
||||
## Examples
|
||||
|
||||
Let us demonstrate how to use crates in this repository using SHA-2 as an example.
|
||||
@@ -234,7 +230,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/hashes/status.svg
|
||||
[deps-link]: https://deps.rs/repo/github/RustCrypto/hashes
|
||||
[msrv-1.81]: https://img.shields.io/badge/rustc-1.81.0+-blue.svg
|
||||
[msrv-1.85]: https://img.shields.io/badge/rustc-1.85.0+-blue.svg
|
||||
|
||||
[//]: # (crates)
|
||||
|
||||
|
||||
@@ -4,6 +4,14 @@ 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 ([#652])
|
||||
- Relax MSRV policy and allow MSRV bumps in patch releases
|
||||
- Update to `digest` v0.11
|
||||
|
||||
[#652]: https://github.com/RustCrypto/hashes/pull/652
|
||||
|
||||
## 0.2.0 (2023-03-21)
|
||||
### Changed
|
||||
- Drop MSRV back to 1.56 and keep it in sync with `ascon` ([#459])
|
||||
|
||||
@@ -8,21 +8,21 @@ authors = [
|
||||
]
|
||||
license = "Apache-2.0 OR MIT"
|
||||
readme = "README.md"
|
||||
edition = "2021"
|
||||
edition = "2024"
|
||||
rust-version = "1.85"
|
||||
documentation = "https://docs.rs/ascon-hash"
|
||||
repository = "https://github.com/RustCrypto/hashes"
|
||||
keywords = ["crypto", "hash", "ascon"]
|
||||
categories = ["cryptography", "no-std"]
|
||||
rust-version = "1.81"
|
||||
|
||||
[dependencies]
|
||||
digest = { version = "=0.11.0-pre.9", default-features = false, features = ["core-api"] }
|
||||
digest = { version = "=0.11.0-pre.10", default-features = false, features = ["core-api"] }
|
||||
ascon = { version = "0.4", default-features = false }
|
||||
|
||||
[dev-dependencies]
|
||||
spectral = { version = "0.6", default-features = false }
|
||||
hex = "0.4"
|
||||
hex-literal = "0.4"
|
||||
hex-literal = "1"
|
||||
base16ct = { version = "0.2", features = ["alloc"] }
|
||||
|
||||
[features]
|
||||
|
||||
@@ -49,13 +49,6 @@ assert_eq!(dst, hex!("c21972fde9"));
|
||||
|
||||
Also, see the [examples section] in the RustCrypto/hashes readme.
|
||||
|
||||
## Minimum Supported Rust Version
|
||||
|
||||
This crate requires **Rust 1.81** at a minimum.
|
||||
|
||||
We may change the MSRV in the future, but it will be accompanied by a minor
|
||||
version bump.
|
||||
|
||||
## License
|
||||
|
||||
The crate is licensed under either of:
|
||||
@@ -78,7 +71,7 @@ dual licensed as above, without any additional terms or conditions.
|
||||
[docs-image]: https://docs.rs/ascon-hash/badge.svg
|
||||
[docs-link]: https://docs.rs/ascon-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/260041-hashes
|
||||
[build-image]: https://github.com/RustCrypto/hashes/workflows/ascon-hash/badge.svg?branch=master
|
||||
|
||||
@@ -9,17 +9,17 @@
|
||||
|
||||
use core::marker::PhantomData;
|
||||
|
||||
use ascon::{pad, State};
|
||||
use ascon::{State, pad};
|
||||
pub use digest::{self, Digest, ExtendableOutput, Reset, Update, XofReader};
|
||||
use digest::{
|
||||
HashMarker, Output, OutputSizeUser,
|
||||
block_buffer::Eager,
|
||||
consts::{U32, U8},
|
||||
consts::{U8, U32},
|
||||
core_api::{
|
||||
AlgorithmName, Block, Buffer, BufferKindUser, CoreWrapper, ExtendableOutputCore,
|
||||
FixedOutputCore, UpdateCore, XofReaderCore, XofReaderCoreWrapper,
|
||||
},
|
||||
crypto_common::BlockSizeUser,
|
||||
HashMarker, Output, OutputSizeUser,
|
||||
};
|
||||
|
||||
/// Parameters for Ascon hash instances.
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
use std::collections::HashMap;
|
||||
use std::include_str;
|
||||
|
||||
use spectral::prelude::{asserting, OrderedAssertions};
|
||||
use spectral::prelude::{OrderedAssertions, asserting};
|
||||
|
||||
use ascon_hash::{
|
||||
AsconAHash, AsconAXof, AsconHash, AsconXof, Digest, ExtendableOutput, Reset, XofReader,
|
||||
|
||||
@@ -5,6 +5,14 @@ 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.2.0 (UNRELEASED)
|
||||
### Changed
|
||||
- Edition changed to 2024 and MSRV bumped to 1.85 ([#652])
|
||||
- Relax MSRV policy and allow MSRV bumps in patch releases
|
||||
- Update to `digest` v0.11
|
||||
|
||||
[#652]: https://github.com/RustCrypto/hashes/pull/652
|
||||
|
||||
## 0.1.1 (2022-11-22)
|
||||
### Added
|
||||
- `belt_compress` function ([#520])
|
||||
|
||||
@@ -5,20 +5,20 @@ description = "BelT hash function (STB 34.101.31-2020)"
|
||||
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/belt-hash"
|
||||
repository = "https://github.com/RustCrypto/hashes"
|
||||
keywords = ["crypto", "belt", "stb", "hash", "digest"]
|
||||
categories = ["cryptography", "no-std"]
|
||||
|
||||
[dependencies]
|
||||
digest = "=0.11.0-pre.9"
|
||||
digest = "=0.11.0-pre.10"
|
||||
belt-block = { version = "0.1.1", default-features = false }
|
||||
|
||||
[dev-dependencies]
|
||||
digest = { version = "=0.11.0-pre.9", features = ["dev"] }
|
||||
hex-literal = "0.4"
|
||||
digest = { version = "=0.11.0-pre.10", features = ["dev"] }
|
||||
hex-literal = "1"
|
||||
base16ct = { version = "0.2", features = ["alloc"] }
|
||||
|
||||
[features]
|
||||
|
||||
@@ -27,18 +27,6 @@ assert_eq!(hex_hash, "afb175816416fbadad4629ecbd78e1887789881f2d2e5b80c22a746b7a
|
||||
|
||||
Also, see the [examples section] in the RustCrypto/hashes readme.
|
||||
|
||||
## 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
|
||||
|
||||
The crate is licensed under either of:
|
||||
@@ -61,7 +49,7 @@ dual licensed as above, without any additional terms or conditions.
|
||||
[docs-image]: https://docs.rs/belt-hash/badge.svg
|
||||
[docs-link]: https://docs.rs/belt-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/260041-hashes
|
||||
[build-image]: https://github.com/RustCrypto/hashes/workflows/belt-hash/badge.svg?branch=master
|
||||
|
||||
@@ -15,13 +15,13 @@ use core::fmt;
|
||||
#[cfg(feature = "oid")]
|
||||
use digest::const_oid::{AssociatedOid, ObjectIdentifier};
|
||||
use digest::{
|
||||
HashMarker, Output,
|
||||
block_buffer::Eager,
|
||||
core_api::{
|
||||
AlgorithmName, Block, BlockSizeUser, Buffer, BufferKindUser, CoreWrapper, FixedOutputCore,
|
||||
OutputSizeUser, Reset, UpdateCore,
|
||||
},
|
||||
typenum::{Unsigned, U32},
|
||||
HashMarker, Output,
|
||||
typenum::{U32, Unsigned},
|
||||
};
|
||||
|
||||
#[cfg(feature = "zeroize")]
|
||||
|
||||
@@ -4,8 +4,8 @@ version = "0.0.0"
|
||||
authors = ["RustCrypto Developers"]
|
||||
license = "Apache-2.0 OR MIT"
|
||||
description = "Criterion benchmarks of the hash crates"
|
||||
edition = "2021"
|
||||
rust-version = "1.71"
|
||||
edition = "2024"
|
||||
rust-version = "1.85"
|
||||
publish = false
|
||||
|
||||
[workspace]
|
||||
@@ -13,7 +13,7 @@ publish = false
|
||||
[dependencies]
|
||||
ascon-hash = { path = "../ascon-hash" }
|
||||
criterion = "0.4"
|
||||
rand = { version = "0.8", default-features = false, features = [
|
||||
rand = { version = "0.9", default-features = false, features = [
|
||||
"std_rng",
|
||||
"getrandom",
|
||||
] }
|
||||
|
||||
@@ -5,6 +5,14 @@ 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.11.0 (UNRELEASED)
|
||||
### Changed
|
||||
- Edition changed to 2024 and MSRV bumped to 1.85 ([#652])
|
||||
- Relax MSRV policy and allow MSRV bumps in patch releases
|
||||
- Update to `digest` v0.11
|
||||
|
||||
[#652]: https://github.com/RustCrypto/hashes/pull/652
|
||||
|
||||
## 0.10.6 (2022-12-16)
|
||||
### Added
|
||||
- `size_opt` Cargo feature ([#440])
|
||||
|
||||
@@ -5,19 +5,19 @@ description = "BLAKE2 hash functions"
|
||||
authors = ["RustCrypto Developers"]
|
||||
license = "MIT OR Apache-2.0"
|
||||
readme = "README.md"
|
||||
edition = "2021"
|
||||
edition = "2024"
|
||||
rust-version = "1.85"
|
||||
documentation = "https://docs.rs/blake2"
|
||||
repository = "https://github.com/RustCrypto/hashes"
|
||||
keywords = ["crypto", "blake2", "hash", "digest"]
|
||||
categories = ["cryptography", "no-std"]
|
||||
rust-version = "1.81"
|
||||
|
||||
[dependencies]
|
||||
digest = { version = "=0.11.0-pre.9", features = ["mac"] }
|
||||
digest = { version = "=0.11.0-pre.10", features = ["mac"] }
|
||||
|
||||
[dev-dependencies]
|
||||
digest = { version = "=0.11.0-pre.9", features = ["dev"] }
|
||||
hex-literal = "0.4"
|
||||
digest = { version = "=0.11.0-pre.10", features = ["dev"] }
|
||||
hex-literal = "1"
|
||||
base16ct = { version = "0.2", features = ["alloc"] }
|
||||
|
||||
[features]
|
||||
|
||||
@@ -73,18 +73,6 @@ let res = hasher.finalize();
|
||||
assert_eq!(res, hex!("2cc55c84e416924e6400"));
|
||||
```
|
||||
|
||||
## 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
|
||||
|
||||
The crate is licensed under either of:
|
||||
@@ -109,7 +97,7 @@ dual licensed as above, without any additional terms or conditions.
|
||||
[license-image]: https://img.shields.io/badge/license-Apache2.0/MIT-blue.svg
|
||||
[chat-image]: https://img.shields.io/badge/zulip-join_chat-blue.svg
|
||||
[chat-link]: https://rustcrypto.zulipchat.com/#narrow/stream/260041-hashes
|
||||
[rustc-image]: https://img.shields.io/badge/rustc-1.81+-blue.svg
|
||||
[rustc-image]: https://img.shields.io/badge/rustc-1.85+-blue.svg
|
||||
[build-image]: https://github.com/RustCrypto/hashes/workflows/blake2/badge.svg?branch=master
|
||||
[build-link]: https://github.com/RustCrypto/hashes/actions?query=workflow%3Ablake2
|
||||
|
||||
|
||||
@@ -17,9 +17,10 @@ pub use digest::{self, Digest};
|
||||
|
||||
use core::{fmt, marker::PhantomData, ops::Div};
|
||||
use digest::{
|
||||
FixedOutput, HashMarker, InvalidOutputSize, MacMarker, Output, Update,
|
||||
array::{Array, ArraySize},
|
||||
block_buffer::{Lazy, LazyBuffer},
|
||||
consts::{U128, U16, U32, U4, U64},
|
||||
consts::{U4, U16, U32, U64, U128},
|
||||
core_api::{
|
||||
AlgorithmName, Block, BlockSizeUser, Buffer, BufferKindUser, CoreWrapper,
|
||||
CtVariableCoreWrapper, OutputSizeUser, RtVariableCoreWrapper, TruncSide, UpdateCore,
|
||||
@@ -27,7 +28,6 @@ use digest::{
|
||||
},
|
||||
crypto_common::{InvalidLength, Key, KeyInit, KeySizeUser},
|
||||
typenum::{IsLessOrEqual, LeEq, NonZero, Unsigned},
|
||||
FixedOutput, HashMarker, InvalidOutputSize, MacMarker, Output, Update,
|
||||
};
|
||||
#[cfg(feature = "reset")]
|
||||
use digest::{FixedOutputReset, Reset};
|
||||
@@ -45,7 +45,7 @@ mod macros;
|
||||
|
||||
use as_bytes::AsBytes;
|
||||
use consts::{BLAKE2B_IV, BLAKE2S_IV};
|
||||
use simd::{u32x4, u64x4, Vector4};
|
||||
use simd::{Vector4, u32x4, u64x4};
|
||||
|
||||
blake2_impl!(
|
||||
Blake2bVarCore,
|
||||
|
||||
@@ -8,7 +8,7 @@ new_test!(blake2s_mac, "blake2s/mac", blake2::Blake2sMac256);
|
||||
|
||||
#[test]
|
||||
fn blake2b_new_test() {
|
||||
use blake2::digest::{array::Array, KeyInit, Mac};
|
||||
use blake2::digest::{KeyInit, Mac, array::Array};
|
||||
|
||||
fn run<T: Mac + KeyInit>(key: &[u8]) {
|
||||
const DATA: &[u8] = &[42; 300];
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
use blake2::{digest::FixedOutput, Blake2bMac512, Blake2sMac256};
|
||||
use blake2::{Blake2bMac512, Blake2sMac256, digest::FixedOutput};
|
||||
use hex_literal::hex;
|
||||
|
||||
#[test]
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
use blake2::{digest::FixedOutput, Blake2bMac512, Blake2sMac256};
|
||||
use blake2::{Blake2bMac512, Blake2sMac256, digest::FixedOutput};
|
||||
use hex_literal::hex;
|
||||
|
||||
#[test]
|
||||
|
||||
@@ -5,6 +5,14 @@ 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.2.0 (UNRELEASED)
|
||||
### Changed
|
||||
- Edition changed to 2024 and MSRV bumped to 1.85 ([#652])
|
||||
- Relax MSRV policy and allow MSRV bumps in patch releases
|
||||
- Update to `digest` v0.11
|
||||
|
||||
[#652]: https://github.com/RustCrypto/hashes/pull/652
|
||||
|
||||
## 0.1.3 (2022-09-03)
|
||||
### Fixed
|
||||
- MSRV issue caused by `resolver = "2"` ([#402])
|
||||
|
||||
@@ -5,20 +5,20 @@ description = "FSB hash function"
|
||||
authors = ["RustCrypto Developers"]
|
||||
license = "MIT OR Apache-2.0"
|
||||
readme = "README.md"
|
||||
edition = "2021"
|
||||
edition = "2024"
|
||||
rust-version = "1.85"
|
||||
documentation = "https://docs.rs/fsb"
|
||||
repository = "https://github.com/RustCrypto/hashes"
|
||||
keywords = ["crypto", "fsb", "hash", "digest"]
|
||||
categories = ["cryptography", "no-std"]
|
||||
rust-version = "1.81"
|
||||
|
||||
[dependencies]
|
||||
digest = "=0.11.0-pre.9"
|
||||
digest = "=0.11.0-pre.10"
|
||||
whirlpool = { version = "=0.11.0-pre.4", path = "../whirlpool", default-features = false }
|
||||
|
||||
[dev-dependencies]
|
||||
digest = { version = "=0.11.0-pre.9", features = ["dev"] }
|
||||
hex-literal = "0.4"
|
||||
digest = { version = "=0.11.0-pre.10", features = ["dev"] }
|
||||
hex-literal = "1"
|
||||
base16ct = { version = "0.2", features = ["alloc"] }
|
||||
|
||||
[features]
|
||||
|
||||
@@ -39,18 +39,6 @@ assert_eq!(hex_hash, "0f036dc3761aed2cba9de586a85976eedde6fa8f115c0190763decc02f
|
||||
|
||||
Also, see the [examples section] in the RustCrypto/hashes readme.
|
||||
|
||||
## 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
|
||||
|
||||
The crate is licensed under either of:
|
||||
@@ -75,7 +63,7 @@ dual licensed as above, without any additional terms or conditions.
|
||||
[license-image]: https://img.shields.io/badge/license-Apache2.0/MIT-blue.svg
|
||||
[chat-image]: https://img.shields.io/badge/zulip-join_chat-blue.svg
|
||||
[chat-link]: https://rustcrypto.zulipchat.com/#narrow/stream/260041-hashes
|
||||
[rustc-image]: https://img.shields.io/badge/rustc-1.81+-blue.svg
|
||||
[rustc-image]: https://img.shields.io/badge/rustc-1.85+-blue.svg
|
||||
[build-image]: https://github.com/RustCrypto/hashes/workflows/fsb/badge.svg?branch=master
|
||||
[build-link]: https://github.com/RustCrypto/hashes/actions?query=workflow%3Afsb
|
||||
|
||||
|
||||
@@ -19,14 +19,14 @@ pub use digest::{self, Digest};
|
||||
static PI: &[u8; 272384] = include_bytes!("pi.bin");
|
||||
|
||||
use digest::{
|
||||
HashMarker, Output,
|
||||
block_buffer::Eager,
|
||||
core_api::{
|
||||
AlgorithmName, Block, BlockSizeUser, Buffer, BufferKindUser, CoreWrapper, FixedOutputCore,
|
||||
OutputSizeUser, Reset, UpdateCore,
|
||||
},
|
||||
crypto_common::hazmat::{DeserializeStateError, SerializableState, SerializedState},
|
||||
typenum::{Unsigned, U8},
|
||||
HashMarker, Output,
|
||||
typenum::{U8, Unsigned},
|
||||
};
|
||||
|
||||
#[cfg(feature = "zeroize")]
|
||||
|
||||
@@ -5,6 +5,14 @@ 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.11.0 (UNRELEASED)
|
||||
### Changed
|
||||
- Edition changed to 2024 and MSRV bumped to 1.85 ([#652])
|
||||
- Relax MSRV policy and allow MSRV bumps in patch releases
|
||||
- Update to `digest` v0.11
|
||||
|
||||
[#652]: https://github.com/RustCrypto/hashes/pull/652
|
||||
|
||||
## 0.10.4 (2022-10-05)
|
||||
### Added
|
||||
- Feature-gated OID support ([#417])
|
||||
|
||||
@@ -5,19 +5,19 @@ description = "GOST R 34.11-94 hash function"
|
||||
authors = ["RustCrypto Developers"]
|
||||
license = "MIT OR Apache-2.0"
|
||||
readme = "README.md"
|
||||
edition = "2021"
|
||||
edition = "2024"
|
||||
rust-version = "1.85"
|
||||
documentation = "https://docs.rs/gost94"
|
||||
repository = "https://github.com/RustCrypto/hashes"
|
||||
keywords = ["crypto", "gost94", "gost", "hash", "digest"]
|
||||
categories = ["cryptography", "no-std"]
|
||||
rust-version = "1.81"
|
||||
|
||||
[dependencies]
|
||||
digest = "=0.11.0-pre.9"
|
||||
digest = "=0.11.0-pre.10"
|
||||
|
||||
[dev-dependencies]
|
||||
digest = { version = "=0.11.0-pre.9", features = ["dev"] }
|
||||
hex-literal = "0.4"
|
||||
digest = { version = "=0.11.0-pre.10", features = ["dev"] }
|
||||
hex-literal = "1"
|
||||
base16ct = { version = "0.2", features = ["alloc"] }
|
||||
|
||||
[features]
|
||||
|
||||
@@ -33,18 +33,6 @@ There can be a confusion regarding OIDs associated with declared types.
|
||||
According to the [RFC 4357], the OIDs 1.2.643.2.2.30.1 and 1.2.643.2.2.30.0 are used to identify the hash function parameter sets (CryptoPro vs Test ones).
|
||||
According to [RFC 4490] the OID 1.2.643.2.2.9 identifies the GOST 34.311-95 (former GOST R 34.11-94) function, but then it continues that this function MUST be used only with the CryptoPro parameter set.
|
||||
|
||||
## 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
|
||||
|
||||
The crate is licensed under either of:
|
||||
@@ -67,7 +55,7 @@ dual licensed as above, without any additional terms or conditions.
|
||||
[docs-image]: https://docs.rs/gost94/badge.svg
|
||||
[docs-link]: https://docs.rs/gost94/
|
||||
[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/hashes/workflows/gost94/badge.svg?branch=master
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
#![allow(clippy::many_single_char_names)]
|
||||
use core::fmt;
|
||||
use digest::{
|
||||
HashMarker, Output,
|
||||
array::Array,
|
||||
block_buffer::Eager,
|
||||
core_api::{
|
||||
@@ -8,8 +9,7 @@ use digest::{
|
||||
OutputSizeUser, Reset, UpdateCore,
|
||||
},
|
||||
crypto_common::hazmat::{DeserializeStateError, SerializableState, SerializedState},
|
||||
typenum::{Unsigned, U32, U96},
|
||||
HashMarker, Output,
|
||||
typenum::{U32, U96, Unsigned},
|
||||
};
|
||||
|
||||
#[cfg(feature = "zeroize")]
|
||||
|
||||
@@ -5,6 +5,14 @@ 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.11.0 (UNRELEASED)
|
||||
### Changed
|
||||
- Edition changed to 2024 and MSRV bumped to 1.85 ([#652])
|
||||
- Relax MSRV policy and allow MSRV bumps in patch releases
|
||||
- Update to `digest` v0.11
|
||||
|
||||
[#652]: https://github.com/RustCrypto/hashes/pull/652
|
||||
|
||||
## 0.10.1 (2022-02-17)
|
||||
### Fixed
|
||||
- Minimal versions build ([#363])
|
||||
|
||||
@@ -5,19 +5,19 @@ description = "Grøstl hash function"
|
||||
authors = ["RustCrypto Developers"]
|
||||
license = "MIT OR Apache-2.0"
|
||||
readme = "README.md"
|
||||
edition = "2021"
|
||||
edition = "2024"
|
||||
rust-version = "1.85"
|
||||
documentation = "https://docs.rs/groestl"
|
||||
repository = "https://github.com/RustCrypto/hashes"
|
||||
keywords = ["crypto", "groestl", "grostl", "hash", "digest"]
|
||||
categories = ["cryptography", "no-std"]
|
||||
rust-version = "1.81"
|
||||
|
||||
[dependencies]
|
||||
digest = "=0.11.0-pre.9"
|
||||
digest = "=0.11.0-pre.10"
|
||||
|
||||
[dev-dependencies]
|
||||
digest = { version = "=0.11.0-pre.9", features = ["dev"] }
|
||||
hex-literal = "0.4"
|
||||
digest = { version = "=0.11.0-pre.10", features = ["dev"] }
|
||||
hex-literal = "1"
|
||||
base16ct = { version = "0.2", features = ["alloc"] }
|
||||
|
||||
[features]
|
||||
|
||||
@@ -28,18 +28,6 @@ assert_eq!(hex_hash, "dc0283ca481efa76b7c19dd5a0b763dff0e867451bd9488a9c59f6c8b8
|
||||
|
||||
Also, see the [examples section] in the RustCrypto/hashes readme.
|
||||
|
||||
## 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
|
||||
|
||||
The crate is licensed under either of:
|
||||
@@ -62,7 +50,7 @@ dual licensed as above, without any additional terms or conditions.
|
||||
[docs-image]: https://docs.rs/groestl/badge.svg
|
||||
[docs-link]: https://docs.rs/groestl/
|
||||
[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/hashes/workflows/groestl/badge.svg?branch=master
|
||||
|
||||
@@ -12,6 +12,7 @@ pub use digest::{self, Digest};
|
||||
|
||||
use core::{convert::TryInto, fmt};
|
||||
use digest::{
|
||||
HashMarker, InvalidOutputSize, Output,
|
||||
block_buffer::Eager,
|
||||
core_api::{
|
||||
AlgorithmName, Block, BlockSizeUser, Buffer, BufferKindUser, CoreWrapper,
|
||||
@@ -19,8 +20,7 @@ use digest::{
|
||||
VariableOutputCore,
|
||||
},
|
||||
crypto_common::hazmat::{DeserializeStateError, SerializableState, SerializedState},
|
||||
typenum::{Unsigned, U128, U136, U28, U32, U48, U64, U72},
|
||||
HashMarker, InvalidOutputSize, Output,
|
||||
typenum::{U28, U32, U48, U64, U72, U128, U136, Unsigned},
|
||||
};
|
||||
|
||||
#[cfg(feature = "zeroize")]
|
||||
|
||||
@@ -5,6 +5,14 @@ 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.2.0 (UNRELEASED)
|
||||
### Changed
|
||||
- Edition changed to 2024 and MSRV bumped to 1.85 ([#652])
|
||||
- Relax MSRV policy and allow MSRV bumps in patch releases
|
||||
- Update to `digest` v0.11
|
||||
|
||||
[#652]: https://github.com/RustCrypto/hashes/pull/652
|
||||
|
||||
## 0.1.0 (2023-06-11)
|
||||
- Initial release ([#484])
|
||||
|
||||
|
||||
@@ -4,21 +4,21 @@ version = "0.2.0-pre"
|
||||
description = "Pure Rust implementation of the JH cryptographic hash function"
|
||||
authors = ["RustCrypto Developers"]
|
||||
license = "MIT OR Apache-2.0"
|
||||
edition = "2021"
|
||||
rust-version = "1.81"
|
||||
readme = "README.md"
|
||||
edition = "2024"
|
||||
rust-version = "1.85"
|
||||
documentation = "https://docs.rs/jh"
|
||||
repository = "https://github.com/RustCrypto/hashes"
|
||||
keywords = ["crypto", "jh", "hash", "digest"]
|
||||
categories = ["cryptography", "no-std"]
|
||||
|
||||
[dependencies]
|
||||
digest = "=0.11.0-pre.9"
|
||||
hex-literal = "0.4"
|
||||
digest = "=0.11.0-pre.10"
|
||||
hex-literal = "1"
|
||||
simd = { package = "ppv-lite86", version = "0.2.6" }
|
||||
|
||||
[dev-dependencies]
|
||||
digest = { version = "=0.11.0-pre.9", features = ["dev"] }
|
||||
digest = { version = "=0.11.0-pre.10", features = ["dev"] }
|
||||
base16ct = { version = "0.2", features = ["alloc"] }
|
||||
|
||||
[features]
|
||||
|
||||
14
jh/README.md
14
jh/README.md
@@ -35,18 +35,6 @@ assert_eq!(hex_hash, "94fd3f4c564957c6754265676bf8b244c707d3ffb294e18af1f2e4f9b8
|
||||
|
||||
Also, see the [examples section] in the RustCrypto/hashes readme.
|
||||
|
||||
## 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
|
||||
|
||||
The crate is licensed under either of:
|
||||
@@ -69,7 +57,7 @@ dual licensed as above, without any additional terms or conditions.
|
||||
[docs-image]: https://docs.rs/jh/badge.svg
|
||||
[docs-link]: https://docs.rs/jh/
|
||||
[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/hashes/workflows/jh/badge.svg?branch=master
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
#![feature(test)]
|
||||
extern crate test;
|
||||
|
||||
use simd::{vec128_storage, x86_64, Machine};
|
||||
use simd::{Machine, vec128_storage, x86_64};
|
||||
use test::Bencher;
|
||||
|
||||
macro_rules! mach_bench {
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
#![allow(non_upper_case_globals)]
|
||||
|
||||
use core::ptr;
|
||||
use digest::array::{typenum::U64, Array};
|
||||
use simd::{dispatch, vec128_storage, AndNot, Machine, Swap64, VZip, Vec2};
|
||||
use digest::array::{Array, typenum::U64};
|
||||
use simd::{AndNot, Machine, Swap64, VZip, Vec2, dispatch, vec128_storage};
|
||||
|
||||
#[rustfmt::skip]
|
||||
macro_rules! unroll7 {
|
||||
|
||||
@@ -18,14 +18,14 @@ pub use digest::{self, Digest};
|
||||
use crate::compressor::Compressor;
|
||||
use core::fmt;
|
||||
use digest::{
|
||||
array::typenum::{Unsigned, U28, U32, U48, U64},
|
||||
HashMarker, InvalidOutputSize, Output,
|
||||
array::typenum::{U28, U32, U48, U64, Unsigned},
|
||||
block_buffer::Eager,
|
||||
core_api::{
|
||||
AlgorithmName, Block, Buffer, BufferKindUser, CoreWrapper, CtVariableCoreWrapper,
|
||||
TruncSide, UpdateCore, VariableOutputCore,
|
||||
},
|
||||
crypto_common::{BlockSizeUser, OutputSizeUser},
|
||||
HashMarker, InvalidOutputSize, Output,
|
||||
};
|
||||
|
||||
#[cfg(feature = "zeroize")]
|
||||
|
||||
@@ -5,6 +5,14 @@ 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.4.0 (UNRELEASED)
|
||||
### Changed
|
||||
- Edition changed to 2024 and MSRV bumped to 1.85 ([#652])
|
||||
- Relax MSRV policy and allow MSRV bumps in patch releases
|
||||
- Update to `digest` v0.11
|
||||
|
||||
[#652]: https://github.com/RustCrypto/hashes/pull/652
|
||||
|
||||
## 0.3.0 (2023-06-10)
|
||||
### Added
|
||||
- Support for heapless `no_std` targets ([#353])
|
||||
|
||||
@@ -5,20 +5,20 @@ description = "Pure Rust implementation of the KangarooTwelve hash function"
|
||||
authors = ["RustCrypto Developers", "Diggory Hardy <github1@dhardy.name>"]
|
||||
license = "Apache-2.0 OR MIT"
|
||||
readme = "README.md"
|
||||
edition = "2021"
|
||||
edition = "2024"
|
||||
rust-version = "1.85"
|
||||
documentation = "https://docs.rs/k12"
|
||||
repository = "https://github.com/RustCrypto/hashes"
|
||||
keywords = ["crypto", "hash", "digest"]
|
||||
categories = ["cryptography", "no-std"]
|
||||
rust-version = "1.81"
|
||||
|
||||
[dependencies]
|
||||
digest = { version = "=0.11.0-pre.9", default-features = false, features = ["core-api"] }
|
||||
digest = { version = "=0.11.0-pre.10", default-features = false, features = ["core-api"] }
|
||||
sha3 = { version = "=0.11.0-pre.4", default-features = false, path = "../sha3" }
|
||||
|
||||
[dev-dependencies]
|
||||
digest = { version = "=0.11.0-pre.9", features = ["alloc", "dev"] }
|
||||
hex-literal = "0.4"
|
||||
digest = { version = "=0.11.0-pre.10", features = ["alloc", "dev"] }
|
||||
hex-literal = "1"
|
||||
|
||||
[features]
|
||||
default = ["std"]
|
||||
|
||||
@@ -8,18 +8,6 @@
|
||||
|
||||
Pure Rust implementation of the [KangarooTwelve] eXtendable-Output Function (XOF).
|
||||
|
||||
## 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
|
||||
|
||||
The crate is licensed under either of:
|
||||
@@ -42,7 +30,7 @@ dual licensed as above, without any additional terms or conditions.
|
||||
[docs-image]: https://docs.rs/k12/badge.svg
|
||||
[docs-link]: https://docs.rs/k12/
|
||||
[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/hashes/workflows/k12/badge.svg?branch=master
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
use core::iter;
|
||||
use hex_literal::hex;
|
||||
use k12::{
|
||||
digest::{ExtendableOutput, Update},
|
||||
KangarooTwelve, KangarooTwelveCore,
|
||||
digest::{ExtendableOutput, Update},
|
||||
};
|
||||
|
||||
fn digest_and_box(data: &[u8], n: usize) -> Box<[u8]> {
|
||||
|
||||
@@ -5,6 +5,14 @@ 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.11.0 (UNRELEASED)
|
||||
### Changed
|
||||
- Edition changed to 2024 and MSRV bumped to 1.85 ([#652])
|
||||
- Relax MSRV policy and allow MSRV bumps in patch releases
|
||||
- Update to `digest` v0.11
|
||||
|
||||
[#652]: https://github.com/RustCrypto/hashes/pull/652
|
||||
|
||||
## 0.10.2 (2022-10-05)
|
||||
### Added
|
||||
- Feature-gated OID support ([#419])
|
||||
|
||||
@@ -5,19 +5,19 @@ license = "MIT OR Apache-2.0"
|
||||
authors = ["RustCrypto Developers"]
|
||||
description = "MD2 hash function"
|
||||
readme = "README.md"
|
||||
edition = "2021"
|
||||
edition = "2024"
|
||||
rust-version = "1.85"
|
||||
documentation = "https://docs.rs/md2"
|
||||
repository = "https://github.com/RustCrypto/hashes"
|
||||
keywords = ["crypto", "md2", "hash", "digest"]
|
||||
categories = ["cryptography", "no-std"]
|
||||
rust-version = "1.81"
|
||||
|
||||
[dependencies]
|
||||
digest = "=0.11.0-pre.9"
|
||||
digest = "=0.11.0-pre.10"
|
||||
|
||||
[dev-dependencies]
|
||||
digest = { version = "=0.11.0-pre.9", features = ["dev"] }
|
||||
hex-literal = "0.4"
|
||||
digest = { version = "=0.11.0-pre.10", features = ["dev"] }
|
||||
hex-literal = "1"
|
||||
base16ct = { version = "0.2", features = ["alloc"] }
|
||||
|
||||
[features]
|
||||
|
||||
@@ -28,18 +28,6 @@ assert_eq!(hex_hash, "d9cce882ee690a5c1ce70beff3a78c77");
|
||||
|
||||
Also, see the [examples section] in the RustCrypto/hashes readme.
|
||||
|
||||
## 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
|
||||
|
||||
The crate is licensed under either of:
|
||||
@@ -62,7 +50,7 @@ dual licensed as above, without any additional terms or conditions.
|
||||
[docs-image]: https://docs.rs/md2/badge.svg
|
||||
[docs-link]: https://docs.rs/md2/
|
||||
[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/hashes/workflows/md2/badge.svg?branch=master
|
||||
|
||||
@@ -12,6 +12,7 @@ pub use digest::{self, Digest};
|
||||
|
||||
use core::fmt;
|
||||
use digest::{
|
||||
HashMarker, Output,
|
||||
array::Array,
|
||||
block_buffer::Eager,
|
||||
consts::{U16, U48, U64},
|
||||
@@ -20,7 +21,6 @@ use digest::{
|
||||
OutputSizeUser, Reset, UpdateCore,
|
||||
},
|
||||
crypto_common::hazmat::{DeserializeStateError, SerializableState, SerializedState},
|
||||
HashMarker, Output,
|
||||
};
|
||||
|
||||
#[cfg(feature = "oid")]
|
||||
|
||||
@@ -5,6 +5,14 @@ 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.11.0 (UNRELEASED)
|
||||
### Changed
|
||||
- Edition changed to 2024 and MSRV bumped to 1.85 ([#652])
|
||||
- Relax MSRV policy and allow MSRV bumps in patch releases
|
||||
- Update to `digest` v0.11
|
||||
|
||||
[#652]: https://github.com/RustCrypto/hashes/pull/652
|
||||
|
||||
## 0.10.2 (2022-10-05)
|
||||
### Added
|
||||
- Feature-gated OID support ([#418])
|
||||
|
||||
@@ -5,19 +5,19 @@ description = "MD4 hash function"
|
||||
authors = ["RustCrypto Developers"]
|
||||
license = "MIT OR Apache-2.0"
|
||||
readme = "README.md"
|
||||
edition = "2021"
|
||||
edition = "2024"
|
||||
rust-version = "1.85"
|
||||
documentation = "https://docs.rs/md4"
|
||||
repository = "https://github.com/RustCrypto/hashes"
|
||||
keywords = ["crypto", "md4", "hash", "digest"]
|
||||
categories = ["cryptography", "no-std"]
|
||||
rust-version = "1.81"
|
||||
|
||||
[dependencies]
|
||||
digest = "=0.11.0-pre.9"
|
||||
digest = "=0.11.0-pre.10"
|
||||
|
||||
[dev-dependencies]
|
||||
digest = { version = "=0.11.0-pre.9", features = ["dev"] }
|
||||
hex-literal = "0.4"
|
||||
digest = { version = "=0.11.0-pre.10", features = ["dev"] }
|
||||
hex-literal = "1"
|
||||
base16ct = { version = "0.2", features = ["alloc"] }
|
||||
|
||||
[features]
|
||||
|
||||
@@ -33,18 +33,6 @@ assert_eq!(hex_hash, "aa010fbc1d14c795d86ef98c95479d17");
|
||||
|
||||
Also, see the [examples section] in the RustCrypto/hashes readme.
|
||||
|
||||
## 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
|
||||
|
||||
The crate is licensed under either of:
|
||||
@@ -67,7 +55,7 @@ dual licensed as above, without any additional terms or conditions.
|
||||
[docs-image]: https://docs.rs/md4/badge.svg
|
||||
[docs-link]: https://docs.rs/md4/
|
||||
[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/hashes/workflows/md4/badge.svg?branch=master
|
||||
|
||||
@@ -12,14 +12,14 @@ pub use digest::{self, Digest};
|
||||
|
||||
use core::{fmt, num::Wrapping as W};
|
||||
use digest::{
|
||||
HashMarker, Output,
|
||||
block_buffer::Eager,
|
||||
core_api::{
|
||||
AlgorithmName, Block, BlockSizeUser, Buffer, BufferKindUser, CoreWrapper, FixedOutputCore,
|
||||
OutputSizeUser, Reset, UpdateCore,
|
||||
},
|
||||
crypto_common::hazmat::{DeserializeStateError, SerializableState, SerializedState},
|
||||
typenum::{Unsigned, U16, U24, U64},
|
||||
HashMarker, Output,
|
||||
typenum::{U16, U24, U64, Unsigned},
|
||||
};
|
||||
|
||||
#[cfg(feature = "oid")]
|
||||
|
||||
@@ -5,11 +5,17 @@ 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)
|
||||
### Changed
|
||||
- Edition changed to 2024 and MSRV bumped to 1.85 ([#652])
|
||||
- Relax MSRV policy and allow MSRV bumps in patch releases
|
||||
- Update to `digest` v0.11
|
||||
|
||||
### Removed
|
||||
- `asm` and `loongarch64_asm` crate features [#542]
|
||||
|
||||
[#542]: https://github.com/RustCrypto/hashes/pull/542
|
||||
[#652]: https://github.com/RustCrypto/hashes/pull/652
|
||||
|
||||
## 0.10.6 (2023-09-22)
|
||||
### Added
|
||||
|
||||
@@ -5,23 +5,23 @@ description = "MD5 hash function"
|
||||
authors = ["RustCrypto Developers"]
|
||||
license = "MIT OR Apache-2.0"
|
||||
readme = "README.md"
|
||||
edition = "2021"
|
||||
edition = "2024"
|
||||
rust-version = "1.85"
|
||||
documentation = "https://docs.rs/md-5"
|
||||
repository = "https://github.com/RustCrypto/hashes"
|
||||
keywords = ["crypto", "md5", "hash", "digest"]
|
||||
categories = ["cryptography", "no-std"]
|
||||
rust-version = "1.81"
|
||||
|
||||
[lib]
|
||||
name = "md5"
|
||||
|
||||
[dependencies]
|
||||
digest = "=0.11.0-pre.9"
|
||||
digest = "=0.11.0-pre.10"
|
||||
cfg-if = "1"
|
||||
|
||||
[dev-dependencies]
|
||||
digest = { version = "=0.11.0-pre.9", features = ["dev"] }
|
||||
hex-literal = "0.4"
|
||||
digest = { version = "=0.11.0-pre.10", features = ["dev"] }
|
||||
hex-literal = "1"
|
||||
base16ct = { version = "0.2", features = ["alloc"] }
|
||||
|
||||
[features]
|
||||
|
||||
@@ -41,18 +41,6 @@ assert_eq!(hex_hash, "5eb63bbbe01eeed093cb22bb8f5acdc3");
|
||||
|
||||
Also, see the [examples section] in the RustCrypto/hashes readme.
|
||||
|
||||
## 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
|
||||
|
||||
The crate is licensed under either of:
|
||||
@@ -75,7 +63,7 @@ dual licensed as above, without any additional terms or conditions.
|
||||
[docs-image]: https://docs.rs/md-5/badge.svg
|
||||
[docs-link]: https://docs.rs/md-5/
|
||||
[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/hashes/workflows/md5/badge.svg?branch=master
|
||||
|
||||
@@ -14,6 +14,7 @@ pub(crate) mod consts;
|
||||
|
||||
use core::{convert::TryInto, fmt, slice::from_ref};
|
||||
use digest::{
|
||||
HashMarker, Output,
|
||||
array::Array,
|
||||
block_buffer::Eager,
|
||||
core_api::{
|
||||
@@ -21,8 +22,7 @@ use digest::{
|
||||
OutputSizeUser, Reset, UpdateCore,
|
||||
},
|
||||
crypto_common::hazmat::{DeserializeStateError, SerializableState, SerializedState},
|
||||
typenum::{Unsigned, U16, U24, U64},
|
||||
HashMarker, Output,
|
||||
typenum::{U16, U24, U64, Unsigned},
|
||||
};
|
||||
|
||||
#[cfg(feature = "oid")]
|
||||
|
||||
@@ -5,6 +5,14 @@ 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.2.0 (UNRELEASED)
|
||||
### Changed
|
||||
- Edition changed to 2024 and MSRV bumped to 1.85 ([#652])
|
||||
- Relax MSRV policy and allow MSRV bumps in patch releases
|
||||
- Update to `digest` v0.11
|
||||
|
||||
[#652]: https://github.com/RustCrypto/hashes/pull/652
|
||||
|
||||
## 0.1.3 (2022-09-23)
|
||||
### Added
|
||||
- Feature-gated OID support ([#415])
|
||||
|
||||
@@ -5,19 +5,19 @@ description = "Pure Rust implementation of the RIPEMD hash functions"
|
||||
authors = ["RustCrypto Developers"]
|
||||
license = "MIT OR Apache-2.0"
|
||||
readme = "README.md"
|
||||
edition = "2021"
|
||||
edition = "2024"
|
||||
rust-version = "1.85"
|
||||
documentation = "https://docs.rs/ripemd"
|
||||
repository = "https://github.com/RustCrypto/hashes"
|
||||
keywords = ["crypto", "ripemd", "hash", "digest"]
|
||||
categories = ["cryptography", "no-std"]
|
||||
rust-version = "1.81"
|
||||
|
||||
[dependencies]
|
||||
digest = "=0.11.0-pre.9"
|
||||
digest = "=0.11.0-pre.10"
|
||||
|
||||
[dev-dependencies]
|
||||
digest = { version = "=0.11.0-pre.9", features = ["dev"] }
|
||||
hex-literal = "0.4"
|
||||
digest = { version = "=0.11.0-pre.10", features = ["dev"] }
|
||||
hex-literal = "1"
|
||||
base16ct = { version = "0.2", features = ["alloc"] }
|
||||
|
||||
[features]
|
||||
|
||||
@@ -44,18 +44,6 @@ assert_eq!(hash320, hex!(
|
||||
|
||||
Also, see the [examples section] in the RustCrypto/hashes readme.
|
||||
|
||||
## 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
|
||||
|
||||
The crate is licensed under either of:
|
||||
@@ -78,7 +66,7 @@ dual licensed as above, without any additional terms or conditions.
|
||||
[docs-image]: https://docs.rs/ripemd/badge.svg
|
||||
[docs-link]: https://docs.rs/ripemd/
|
||||
[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/hashes/workflows/ripemd/badge.svg?branch=master
|
||||
|
||||
@@ -12,14 +12,14 @@ pub use digest::{self, Digest};
|
||||
|
||||
use core::{convert::TryInto, fmt};
|
||||
use digest::{
|
||||
HashMarker, Output,
|
||||
block_buffer::Eager,
|
||||
core_api::{
|
||||
AlgorithmName, Block, BlockSizeUser, Buffer, BufferKindUser, CoreWrapper, FixedOutputCore,
|
||||
OutputSizeUser, Reset, UpdateCore,
|
||||
},
|
||||
crypto_common::hazmat::{DeserializeStateError, SerializableState, SerializedState},
|
||||
typenum::{Sum, Unsigned, U16, U20, U32, U40, U64, U8},
|
||||
HashMarker, Output,
|
||||
typenum::{Sum, U8, U16, U20, U32, U40, U64, Unsigned},
|
||||
};
|
||||
|
||||
#[cfg(feature = "oid")]
|
||||
|
||||
@@ -5,4 +5,13 @@ 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)
|
||||
### Changed
|
||||
- Edition changed to 2024 and MSRV bumped to 1.85 ([#652])
|
||||
- Relax MSRV policy and allow MSRV bumps in patch releases
|
||||
- Update to `digest` v0.11
|
||||
|
||||
[#652]: https://github.com/RustCrypto/hashes/pull/652
|
||||
|
||||
## 0.10.0 (2024-03-27)
|
||||
- Initial release
|
||||
|
||||
@@ -5,12 +5,12 @@ description = "SHA-1 hash function with collision detection"
|
||||
authors = ["RustCrypto Developers"]
|
||||
license = "MIT OR Apache-2.0"
|
||||
readme = "README.md"
|
||||
edition = "2021"
|
||||
edition = "2024"
|
||||
rust-version = "1.85"
|
||||
documentation = "https://docs.rs/sha1-checked"
|
||||
repository = "https://github.com/RustCrypto/hashes"
|
||||
keywords = ["crypto", "sha1", "hash", "digest"]
|
||||
categories = ["cryptography", "no-std"]
|
||||
rust-version = "1.81"
|
||||
|
||||
exclude = [
|
||||
"sha1-checked/tests/data/shattered-1.pdf",
|
||||
@@ -18,13 +18,13 @@ exclude = [
|
||||
]
|
||||
|
||||
[dependencies]
|
||||
digest = "=0.11.0-pre.9"
|
||||
sha1 = { version = "=0.11.0-pre.4", default-features = false }
|
||||
digest = "=0.11.0-pre.10"
|
||||
sha1 = { version = "=0.11.0-pre.4", path = "../sha1", default-features = false }
|
||||
zeroize = { version = "1.8", default-features = false, optional = true }
|
||||
|
||||
[dev-dependencies]
|
||||
digest = { version = "=0.11.0-pre.9", features = ["dev"] }
|
||||
hex-literal = "0.4"
|
||||
digest = { version = "=0.11.0-pre.10", features = ["dev"] }
|
||||
hex-literal = "1"
|
||||
base16ct = { version = "0.2", features = ["alloc"] }
|
||||
|
||||
[features]
|
||||
|
||||
@@ -54,18 +54,6 @@ assert!(!result.has_collision());
|
||||
|
||||
Also, see the [examples section] in the RustCrypto/hashes readme.
|
||||
|
||||
## 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
|
||||
|
||||
The crate is licensed under either of:
|
||||
@@ -88,7 +76,7 @@ dual licensed as above, without any additional terms or conditions.
|
||||
[docs-image]: https://docs.rs/sha1-checked/badge.svg
|
||||
[docs-link]: https://docs.rs/sha1-checked/
|
||||
[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/hashes/workflows/sha1-checked/badge.svg?branch=master
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
|
||||
use crate::{
|
||||
BLOCK_SIZE,
|
||||
{ubc_check::Testt, DetectionState},
|
||||
{DetectionState, ubc_check::Testt},
|
||||
};
|
||||
|
||||
const K: [u32; 4] = [0x5A827999, 0x6ED9EBA1, 0x8F1BBCDC, 0xCA62C1D6];
|
||||
@@ -466,7 +466,7 @@ fn add_assign(left: &mut [u32; 5], right: [u32; 5]) {
|
||||
}
|
||||
|
||||
fn compression_w(ihv: &mut [u32; 5], w: &[u32; 80]) {
|
||||
let [mut a, mut b, mut c, mut d, mut e] = ihv;
|
||||
let &mut [mut a, mut b, mut c, mut d, mut e] = ihv;
|
||||
|
||||
round1_step4(&mut a, &mut b, &mut c, &mut d, &mut e, w, 0);
|
||||
round1_step4(&mut b, &mut c, &mut d, &mut e, &mut a, w, 4);
|
||||
@@ -502,7 +502,7 @@ fn compression_states(
|
||||
state_58: &mut [u32; 5],
|
||||
state_65: &mut [u32; 5],
|
||||
) {
|
||||
let [mut a, mut b, mut c, mut d, mut e] = ihv;
|
||||
let &mut [mut a, mut b, mut c, mut d, mut e] = ihv;
|
||||
|
||||
full_round1_step_load4(&mut a, &mut b, &mut c, &mut d, &mut e, m, w, 0);
|
||||
full_round1_step_load4(&mut b, &mut c, &mut d, &mut e, &mut a, m, w, 4);
|
||||
@@ -554,7 +554,7 @@ fn recompress_fast_58(
|
||||
me2: &[u32; 80],
|
||||
state: &[u32; 5],
|
||||
) {
|
||||
let [mut a, mut b, mut c, mut d, mut e] = state;
|
||||
let &[mut a, mut b, mut c, mut d, mut e] = state;
|
||||
|
||||
round3_step_bw(d, &mut e, a, b, &mut c, me2[57]);
|
||||
round3_step_bw(e, &mut a, b, c, &mut d, me2[56]);
|
||||
@@ -601,7 +601,7 @@ fn recompress_fast_65(
|
||||
me2: &[u32; 80],
|
||||
state: &[u32; 5],
|
||||
) {
|
||||
let [mut a, mut b, mut c, mut d, mut e] = state;
|
||||
let &[mut a, mut b, mut c, mut d, mut e] = state;
|
||||
|
||||
round4_step_bw(b, &mut c, d, e, &mut a, me2[64]);
|
||||
round4_step_bw4(&mut c, &mut d, &mut e, &mut a, &mut b, me2, 63);
|
||||
|
||||
@@ -27,11 +27,11 @@ use core::slice::from_ref;
|
||||
extern crate std;
|
||||
|
||||
use digest::{
|
||||
FixedOutput, FixedOutputReset, HashMarker, Output, OutputSizeUser, Reset, Update,
|
||||
array::Array,
|
||||
block_buffer::{BlockBuffer, Eager},
|
||||
core_api::BlockSizeUser,
|
||||
typenum::{Unsigned, U20, U64},
|
||||
FixedOutput, FixedOutputReset, HashMarker, Output, OutputSizeUser, Reset, Update,
|
||||
typenum::{U20, U64, Unsigned},
|
||||
};
|
||||
#[cfg(feature = "zeroize")]
|
||||
use zeroize::{Zeroize, ZeroizeOnDrop};
|
||||
@@ -139,9 +139,9 @@ impl CollisionResult {
|
||||
/// Returns the output hash.
|
||||
pub fn hash(&self) -> &Output<Sha1> {
|
||||
match self {
|
||||
CollisionResult::Ok(ref s) => s,
|
||||
CollisionResult::Mitigated(ref s) => s,
|
||||
CollisionResult::Collision(ref s) => s,
|
||||
CollisionResult::Ok(s) => s,
|
||||
CollisionResult::Mitigated(s) => s,
|
||||
CollisionResult::Collision(s) => s,
|
||||
}
|
||||
}
|
||||
|
||||
@@ -181,7 +181,7 @@ impl Update for Sha1 {
|
||||
} = self;
|
||||
buffer.digest_blocks(input, |blocks| {
|
||||
self.block_len += blocks.len() as u64;
|
||||
if let Some(ref mut ctx) = detection {
|
||||
if let Some(ctx) = detection {
|
||||
// SAFETY: GenericArray<u8, U64> and [u8; 64] have
|
||||
// exactly the same memory layout
|
||||
let blocks: &[[u8; BLOCK_SIZE]] =
|
||||
|
||||
@@ -5,11 +5,17 @@ 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)
|
||||
### Changed
|
||||
- Edition changed to 2024 and MSRV bumped to 1.85 ([#652])
|
||||
- Relax MSRV policy and allow MSRV bumps in patch releases
|
||||
- Update to `digest` v0.11
|
||||
|
||||
### Removed
|
||||
- `asm`, `loongarch64_asm`, and `compress` crate features [#542]
|
||||
|
||||
[#542]: https://github.com/RustCrypto/hashes/pull/542
|
||||
[#652]: https://github.com/RustCrypto/hashes/pull/652
|
||||
|
||||
## 0.10.6 (2023-09-21)
|
||||
### Added
|
||||
|
||||
@@ -5,23 +5,23 @@ description = "SHA-1 hash function"
|
||||
authors = ["RustCrypto Developers"]
|
||||
license = "MIT OR Apache-2.0"
|
||||
readme = "README.md"
|
||||
edition = "2021"
|
||||
edition = "2024"
|
||||
rust-version = "1.85"
|
||||
documentation = "https://docs.rs/sha1"
|
||||
repository = "https://github.com/RustCrypto/hashes"
|
||||
keywords = ["crypto", "sha1", "hash", "digest"]
|
||||
categories = ["cryptography", "no-std"]
|
||||
rust-version = "1.81"
|
||||
|
||||
[dependencies]
|
||||
digest = "=0.11.0-pre.9"
|
||||
digest = "=0.11.0-pre.10"
|
||||
cfg-if = "1.0"
|
||||
|
||||
[target.'cfg(any(target_arch = "aarch64", target_arch = "x86", target_arch = "x86_64"))'.dependencies]
|
||||
cpufeatures = "0.2"
|
||||
|
||||
[dev-dependencies]
|
||||
digest = { version = "=0.11.0-pre.9", features = ["dev"] }
|
||||
hex-literal = "0.4"
|
||||
digest = { version = "=0.11.0-pre.10", features = ["dev"] }
|
||||
hex-literal = "1"
|
||||
base16ct = { version = "0.2", features = ["alloc"] }
|
||||
|
||||
[features]
|
||||
|
||||
@@ -51,18 +51,6 @@ assert_eq!(hex_hash, "2aae6c35c94fcfb415dbe95f408b9ce91ee846ed");
|
||||
|
||||
Also, see the [examples section] in the RustCrypto/hashes readme.
|
||||
|
||||
## 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
|
||||
|
||||
The crate is licensed under either of:
|
||||
@@ -85,7 +73,7 @@ dual licensed as above, without any additional terms or conditions.
|
||||
[docs-image]: https://docs.rs/sha1/badge.svg
|
||||
[docs-link]: https://docs.rs/sha1/
|
||||
[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/hashes/workflows/sha1/badge.svg?branch=master
|
||||
|
||||
@@ -11,6 +11,7 @@ cpufeatures::new!(sha1_hwcap, "sha2");
|
||||
|
||||
// note that `sha2` implicitly enables `neon`
|
||||
#[target_feature(enable = "sha2")]
|
||||
#[allow(unsafe_op_in_unsafe_fn)]
|
||||
unsafe fn compress_sha1_neon(state: &mut [u32; 5], blocks: &[[u8; 64]]) {
|
||||
use core::arch::aarch64::*;
|
||||
|
||||
|
||||
@@ -31,6 +31,7 @@ macro_rules! schedule_rounds4 {
|
||||
}
|
||||
|
||||
#[target_feature(enable = "sha,sse2,ssse3,sse4.1")]
|
||||
#[allow(unsafe_op_in_unsafe_fn)]
|
||||
unsafe fn digest_blocks(state: &mut [u32; 5], blocks: &[[u8; 64]]) {
|
||||
#[allow(non_snake_case)]
|
||||
let MASK: __m128i = _mm_set_epi64x(0x0001_0203_0405_0607, 0x0809_0A0B_0C0D_0E0F);
|
||||
|
||||
@@ -11,6 +11,7 @@ pub use digest::{self, Digest};
|
||||
|
||||
use core::{convert::TryInto, fmt, slice::from_ref};
|
||||
use digest::{
|
||||
HashMarker, Output,
|
||||
array::Array,
|
||||
block_buffer::Eager,
|
||||
core_api::{
|
||||
@@ -18,8 +19,7 @@ use digest::{
|
||||
OutputSizeUser, Reset, UpdateCore,
|
||||
},
|
||||
crypto_common::hazmat::{DeserializeStateError, SerializableState, SerializedState},
|
||||
typenum::{Unsigned, U20, U28, U64},
|
||||
HashMarker, Output,
|
||||
typenum::{U20, U28, U64, Unsigned},
|
||||
};
|
||||
|
||||
#[cfg(feature = "oid")]
|
||||
|
||||
@@ -5,18 +5,24 @@ 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)
|
||||
### Changed
|
||||
- Edition changed to 2024 and MSRV bumped to 1.85 ([#652])
|
||||
- Relax MSRV policy and allow MSRV bumps in patch releases
|
||||
- Update to `digest` v0.11
|
||||
|
||||
### Added
|
||||
- RISC-V scalar crypto extension support gated behind `sha2_backend = "riscv-zknh"` or
|
||||
`sha2_backend = "riscv-zknh-compact"` configuration flags [#614]
|
||||
`sha2_backend = "riscv-zknh-compact"` configuration flags ([#614])
|
||||
|
||||
### Removed
|
||||
- `asm`, `asm-aarch64`, `loongarch64_asm`, and `compress` crate features [#542]
|
||||
- `soft` crate feature. Replaced with `sha2_backend = "soft"` configuration flag [#615]
|
||||
- `asm`, `asm-aarch64`, `loongarch64_asm`, and `compress` crate features ([#542])
|
||||
- `soft` crate feature. Replaced with `sha2_backend = "soft"` configuration flag ([#615])
|
||||
|
||||
[#542]: https://github.com/RustCrypto/hashes/pull/542
|
||||
[#614]: https://github.com/RustCrypto/hashes/pull/614
|
||||
[#615]: https://github.com/RustCrypto/hashes/pull/615
|
||||
[#652]: https://github.com/RustCrypto/hashes/pull/652
|
||||
|
||||
## 0.10.8 (2023-09-26)
|
||||
### Added
|
||||
|
||||
@@ -8,23 +8,23 @@ including SHA-224, SHA-256, SHA-384, and SHA-512.
|
||||
authors = ["RustCrypto Developers"]
|
||||
license = "MIT OR Apache-2.0"
|
||||
readme = "README.md"
|
||||
edition = "2021"
|
||||
edition = "2024"
|
||||
rust-version = "1.85"
|
||||
documentation = "https://docs.rs/sha2"
|
||||
repository = "https://github.com/RustCrypto/hashes"
|
||||
keywords = ["crypto", "sha2", "hash", "digest"]
|
||||
categories = ["cryptography", "no-std"]
|
||||
rust-version = "1.81"
|
||||
|
||||
[dependencies]
|
||||
digest = "=0.11.0-pre.9"
|
||||
digest = "=0.11.0-pre.10"
|
||||
cfg-if = "1"
|
||||
|
||||
[target.'cfg(any(target_arch = "aarch64", target_arch = "x86_64", target_arch = "x86"))'.dependencies]
|
||||
cpufeatures = "0.2"
|
||||
|
||||
[dev-dependencies]
|
||||
digest = { version = "=0.11.0-pre.9", features = ["dev"] }
|
||||
hex-literal = "0.4"
|
||||
digest = { version = "=0.11.0-pre.10", features = ["dev"] }
|
||||
hex-literal = "1"
|
||||
base16ct = { version = "0.2", features = ["alloc"] }
|
||||
|
||||
[features]
|
||||
|
||||
@@ -59,18 +59,6 @@ assert_eq!(hash512, hex!(
|
||||
|
||||
Also, see the [examples section] in the RustCrypto/hashes readme.
|
||||
|
||||
## 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
|
||||
|
||||
The crate is licensed under either of:
|
||||
@@ -93,7 +81,7 @@ dual licensed as above, without any additional terms or conditions.
|
||||
[docs-image]: https://docs.rs/sha2/badge.svg
|
||||
[docs-link]: https://docs.rs/sha2/
|
||||
[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/hashes/workflows/sha2/badge.svg?branch=master
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
use crate::{consts, sha256::compress256, sha512::compress512};
|
||||
use core::{convert::TryInto, fmt, slice::from_ref};
|
||||
use digest::{
|
||||
HashMarker, InvalidOutputSize, Output,
|
||||
array::Array,
|
||||
block_buffer::Eager,
|
||||
core_api::{
|
||||
@@ -8,8 +9,7 @@ use digest::{
|
||||
UpdateCore, VariableOutputCore,
|
||||
},
|
||||
crypto_common::hazmat::{DeserializeStateError, SerializableState, SerializedState},
|
||||
typenum::{Unsigned, U128, U32, U40, U64, U80},
|
||||
HashMarker, InvalidOutputSize, Output,
|
||||
typenum::{U32, U40, U64, U80, U128, Unsigned},
|
||||
};
|
||||
|
||||
#[cfg(feature = "zeroize")]
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
//! SHA-256 `aarch64` backend.
|
||||
#![allow(unsafe_op_in_unsafe_fn)]
|
||||
|
||||
// Implementation adapted from mbedtls.
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
#![allow(clippy::many_single_char_names)]
|
||||
#![allow(clippy::many_single_char_names, unsafe_op_in_unsafe_fn)]
|
||||
use core::arch::wasm32::*;
|
||||
use core::mem::size_of;
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
//! SHA-256 `x86`/`x86_64` backend
|
||||
|
||||
#![allow(clippy::many_single_char_names)]
|
||||
#![allow(clippy::many_single_char_names, unsafe_op_in_unsafe_fn)]
|
||||
|
||||
#[cfg(target_arch = "x86")]
|
||||
use core::arch::x86::*;
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
// Implementation adapted from mbedtls.
|
||||
#![allow(unsafe_op_in_unsafe_fn)]
|
||||
|
||||
use core::arch::aarch64::*;
|
||||
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user