Skip to content

Commit

Permalink
Prepare for new release
Browse files Browse the repository at this point in the history
Update Cargo version, README
  • Loading branch information
sayantn committed Oct 29, 2024
1 parent fb92bbc commit ddffc61
Show file tree
Hide file tree
Showing 3 changed files with 8 additions and 6 deletions.
4 changes: 2 additions & 2 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "aes_crypto"
version = "1.2.1"
version = "1.3.0"
authors = ["Sayantan Chakraborty <[email protected]>"]
edition = "2021"
license = "MIT"
Expand Down
8 changes: 5 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,16 +1,15 @@
This is a pure-Rust platform-agnostic [AES](https://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.197-upd1.pdf) library, that
is focused on reusability and optimal performance.

This library guarantees the best performance on the `target_cpu` (if correctly specified). This currently has 6
This library guarantees the best performance on the `target_cpu` (if correctly specified). This currently has 7
implementations, among which it automatically decides the best (most performant) using Cargo's `target_feature` flags.

# The implementations and their requirements are:

- AES-NI (with Vector AES for 2- and 4- blocks) => requires a Nightly Compiler, the `nightly` feature to be enabled, and
compiling for x86(64) with the `avx512f` and `vaes` target_feature flags set.
- AES-NI (with Vector AES for 2-blocks) => requires a Nightly Compiler, the `nightly` feature to be enabled, and
compiling for x86(64) with the `vaes` target_feature flag set. (although `vaes` is an AVX-512 feature, some AlderLake
CPUs have `vaes` without AVX-512 support)
compiling for x86(64) with the `vaes` target_feature flag set.
- AES-NI => requires compiling for x86(64) with the `sse4.1` and `aes` target_feature flags set.
- AES-Neon => requires compiling for AArch64 or ARM64EC or ARM-v8 with the `aes` target_feature flag set (ARM-v8
requires a Nightly compiler and the `nightly` feature to be enabled) .
Expand All @@ -19,6 +18,9 @@ implementations, among which it automatically decides the best (most performant)
target-feature enabled)
- Software AES => fallback implementation based on Rijmen and Daemen's `optimized` implementation (available
on [their website](https://web.archive.org/web/20050828204927/http://www.iaik.tu-graz.ac.at/research/krypto/AES/old/%7Erijmen/rijndael/))
- Constant-time Software AES => Much slower than Software AES, but is constant-time, which can be important in some scenarios.
Enabled by the `constant-time` feature. It is worth noting that all the accelerated AES implementations are constant-time, so this
only comes into play when no accelerated version is found.

If you are unsure about the target_feature flags to set, use `target_cpu=native` (if not cross-compiling) in
the `RUSTFLAGS` environment variable, and use the `nightly` feature only if you are using a nightly compiler.
Expand Down

0 comments on commit ddffc61

Please sign in to comment.