Tony Arcieri 7ac1920198
keccak: ARMv8 asm! cleanups (#101)
We pass in `state.as_mut_ptr()` as `x0`, which was previously marked as
`in`. However, it's modified in the `asm!`, e.g.:

    sub x0, x0, #192

Note: it's also post-incremented by `ld1.1d` as state is loaded.

Since it's modified, it needs to be `inout`. This marks it as such,
using the `=> _` syntax to discard the result, then it's reset, then
modified as state is written).

Similar mutations were occurring with `x1` and `x8` as well, which have
been modified accordingly.
2026-02-13 07:29:27 -07:00
..
2026-02-13 07:29:27 -07:00
2026-01-22 11:10:05 -07:00

RustCrypto: Keccak Sponge Function

crate Docs Build Status Apache2/MIT licensed Rust Version Project Chat

Pure Rust implementation of the Keccak Sponge Function including the keccak-f and keccak-p variants.

Documentation

About

This crate implements the core Keccak sponge function, upon which many other cryptographic functions are built.

For the SHA-3 family including the SHAKE XOFs, see the sha3 crate, which is built on this crate.

Minimum Supported Rust Version

Rust 1.85 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:

at your option.

Contribution

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.