42 Commits

Author SHA1 Message Date
Tony Arcieri
0d9bf82ee5
Add workspace-level clippy config (#100)
Uses the same config from other repos (e.g. `traits`, `utils`)
2026-02-12 15:01:09 -07:00
Tony Arcieri
c3a9ef249e
keccak: bump cpufeatures to v0.3 (#99) 2026-02-12 12:20:53 -07:00
Tony Arcieri
d0c9b2a828
keccak v0.2.0-rc.1 (#98) 2026-01-22 11:10:05 -07:00
Tony Arcieri
4519b3bcb9
keccak: test asm feature in CI (#97)
Also fixes a warning for the ARMv8 `asm!` backend:

error[E0133]: use of inline assembly is unsafe and requires unsafe block
   --> keccak/src/armv8.rs:8:5
    |
8   | /     core::arch::asm!("
9   | |         // Read state
10  | |         ld1.1d {{ v0- v3}}, [x0], #32
11  | |         ld1.1d {{ v4- v7}}, [x0], #32
...   |
119 | |         options(nostack)
120 | |     );
    | |_____^ use of inline assembly
    |
    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
    = note: inline assembly is entirely unchecked and can cause undefined behavior
note: an unsafe function restricts its caller, but its body is safe by default
   --> keccak/src/armv8.rs:7:1
    |
7   | pub unsafe fn p1600_armv8_sha3_asm(state: &mut [u64; 25], round_count: usize) {
    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    = note: `-D unsafe-op-in-unsafe-fn` implied by `-D warnings`
    = help: to override `-D warnings` add `#[allow(unsafe_op_in_unsafe_fn)]`

For more information about this error, try `rustc --explain E0133`.
2026-01-22 11:05:24 -07:00
qj
f205d0efbb
Use doc_cfg in place of removed doc_auto_cfg feature (#91) 2025-10-05 23:13:30 +03:00
Tony Arcieri
95a176c25b
Cut new prereleases (#90)
Releases the following:
- `ascon` v0.5.0-rc.0
- `keccak` v0.2.0-rc.0
2025-09-02 20:15:00 -06:00
Tony Arcieri
2bc1c383a4
Upgrade to Rust 2024 edition; MSRV 1.85 (#89) 2025-09-02 20:09:23 -06:00
Artyom Pavlov
710788be9e
Bump MSRV to 1.81 (#84) 2024-11-22 09:43:18 +03:00
Thomas Coratger
7a6ee9c1f1
keccak_p: improve efficiency of Theta phase (#80) 2024-09-23 08:28:11 +03:00
Luca Bruno
a30ba7775c
cargo: point repository metadata to clonable URLs (#77)
This tweaks the `repository` fields in Cargo metadata in order to use the correct (i.e. git clonable) URL.
The existing GitHub webUI URLs for each package have been retained and moved to `homepage` fields.
2024-06-10 07:48:30 -06:00
Tony Arcieri
b67665f9bb
keccak v0.2.0-pre.0 (#71) 2024-01-16 12:13:55 -07:00
Tony Arcieri
7675b171ad
keccak: 2021 edition upgrade; MSRV 1.60 (#70)
`keccak` was previously excluded from the toplevel workspace due to its
MSRV of 1.41 and incompatibilities with packages used by `ascon`.

This bumps the edition, changes the version to `0.2.0-pre` to denote it
contains breaking changes (though this is not intended to be a
`0.2.0-pre` release), and bumps MSRV.

With the MSRV bumped, `keccak` can and has been re-added to the toplevel
workspace.
2024-01-12 14:45:05 -07:00
Tony Arcieri
40c50c1641
keccak v0.1.5 (#69) 2024-01-12 11:30:01 -07:00
Coda Hale
2dc13bf92e
keccak: enable asm backend for p1600 (#68) 2024-01-09 12:41:20 -07:00
Tony Arcieri
7cdccabc7a
keccak v0.1.4 (#56) 2023-05-04 11:12:22 -06:00
Alexander Wagner
6e512a3b1a
keccak: Add keccak_p fns for [200, 400, 800, 1600] (#55)
Due to the generics approach of the keccak_p routine, the performance
degrades significantly. To encounter this the commonly used functions
are now defined by macros.
2023-04-30 10:25:27 -06:00
Tony Arcieri
8773f6a963
CI: exclude keccak from toplevel workspace (#41)
The build is failing because `keccak` has a very old MSRV of 1.41, which
after merging #40 (which bumped the `ascon` edition to 2021) broke the
build because it can't handle the `edition` key.

As a workaround, this excludes `keccak` from the toplevel workspace so
it doesn't try to read the `ascon` edition key.

Separately, we should probably bump the `keccak` edition to 2021 as well
and release `keccak` v0.2.0, but that is left for future work.
2023-02-25 17:59:40 -07:00
Tony Arcieri
5831f8bd51
keccak: 2018 edition upgrade, lints, docs (#32)
- Bumps the crate's edition to 2018, which is MSRV-compatible.
- Adds a more expansive set of lints
- Adds the `missing_docs` lint, and adds docs where missing
- Fixes tests on ARMv8
2023-02-11 11:40:15 -07:00
Tony Arcieri
75b1918ee9
ascon: new README.md (#31)
Follows our standard README.md template
2023-02-11 11:05:08 -07:00
Tony Arcieri
2d2be3511a
keccak: delete original CC0 license
The previously CC0-licensed public domain code has been relicensed as Apache 2.0 + MIT

Closes #29
2022-12-10 12:50:13 -07:00
Tony Arcieri
6c98ff8396
keccak v0.1.3 (#28) 2022-11-14 12:30:19 -07:00
Tony Arcieri
d82151aa0d
keccak: remove f1600_armv8_sha3_asm re-export (#27)
As discussed in #24
2022-11-14 11:06:04 -07:00
Tony Arcieri
6bd1a6d0ab
keccak: rename f1600_armv8_sha3_asm (#26)
Include the target architecture and feature in the name of the function.
2022-11-13 20:56:27 -07:00
Tony Arcieri
4e36eefaa0
keccak: rename aarch64_sha3 module to armv8 (#25)
This is more consistent with the other crates we have which implement
ARMv8 intrinsics, such as the `aes` and `polyal` crates.
2022-11-13 15:32:07 -07:00
Tony Arcieri
a687839512
keccak: add asm feature; use cpufeatures on aarch64 (#24)
Gates `asm` support under a crate feature.

Uses the `cpufeatures` crate to detect the presence of the `sha3`
extension for ARMv8 CPUs, automatically falling back to a software
implementation if it isn't available.

When the `asm` feature is enabled on `aarch64` targets, exposes
`f1600_asm` that relies on ARMv8 `sha3` hardware intrinsics.
2022-11-13 15:15:26 -07:00
Remco Bloemen
b2d1e84abf
keccak: add aarch64 asm intrinsics implementation keccak_f1600 (#23) 2022-11-01 10:08:45 -06:00
Tony Arcieri
b59a4d5aa9
keccak v0.1.2 (#18) 2022-05-24 17:53:43 -06:00
Artyom Pavlov
0901b5f420
Add description of features and remove the dependencies section (#17) 2022-05-24 23:22:02 +00:00
Alexander Wagner
f31b4b6eee
Use portable_simd instead of deprecate packed_simd (#16) 2022-05-24 17:07:32 -06:00
Tony Arcieri
5ec2be1538
keccak v0.1.1 (#15) 2022-05-24 16:35:18 -06:00
Tony Arcieri
79780c5df3
keccak: relicense as Apache 2.0 + MIT (#14)
Was previously CC0 (i.e. public domain)

Closes #5
2022-05-24 16:05:47 -06:00
Tony Arcieri
04b72bea35
keccak: add README.md (#12)
Adds a basic README to the crate
2022-05-24 15:42:59 -06:00
Alexander Wagner
2736330d93
Add f1600x{2, 4, 8} (#8) 2022-05-12 08:49:34 -06:00
Alexander Wagner
a2ef49e5a6
Add generic keccak-p and keccak-f {200, 400, 800} (#7) 2022-05-11 11:36:17 -06:00
Alexander Wagner
71c7948b23
Revive CI with GH Workflows (#6) 2022-01-26 03:26:50 +00:00
newpavlov
35ac0f140f small code cleanup 2018-04-03 19:54:43 +03:00
newpavlov
fcb42fe8d1 do not unroll the rounds loop 2018-03-27 19:28:37 +03:00
newpavlov
dd9f552e61 disable rustfmt 2018-03-21 17:10:26 +03:00
newpavlov
af282ce18f fixed formatting 2018-03-21 16:27:38 +03:00
newpavlov
e986524350 updated keccak Cargo.toml 2018-03-21 16:18:35 +03:00
newpavlov
da080e1835 license 2018-03-21 15:59:59 +03:00
newpavlov
9bb3d48391 keccak-f[1600] 2018-03-21 15:44:29 +03:00