This is an adaptation of SLOTH (slow-timed hash function) into a time-asymmetric permutation using a standard CBC block cipher.
Implementation contains 3 flavors:
- optimized assembly-assisted implementation for x86-64 processors with ADX ISA extension (Linux, macOS and Windows)
- any 64-bt platform with support for
__int128C type (modern GCC/Clang, but not MSVC) - fallback for other platforms
License
Licensed under either of
- Apache License, Version 2.0 (LICENSE-APACHE or https://www.apache.org/licenses/LICENSE-2.0)
- MIT license (LICENSE-MIT or https://opensource.org/licenses/MIT)
at your option.
Contribution
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in cc-rs by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.