ic-cipher-0.1.0 has been yanked.
ic-cipher — block ciphers, stream ciphers, and AEADs
Pure-Rust, no_std, dependency-free implementations of AES (FIPS 197),
the SP 800-38A confidentiality modes, AES-GCM (SP 800-38D), and the
RFC 8439 ChaCha20-Poly1305 suite.
use Aes256Gcm;
use Aead;
let cipher = new?;
let mut buf = *b"ship it";
let mut tag = ;
cipher.seal_detached?;
cipher.open_detached?;
assert_eq!;
# Ok::
Backend status
This is the portable constant-time backend. AES computes its S-box
algebraically and GHASH multiplies bit by bit, so neither touches a
key-dependent memory address — the cache-timing channel that table-driven
AES leaves open is closed by construction. The cost is throughput: expect
single-digit MB/s rather than the GB/s an AES-NI or bitsliced backend
delivers. Hardware backends are a planned addition behind the same traits,
and the ontology reports which backend is active via
ic_ontology::runtime::backend(), so an agent can decide whether a workload
belongs here.