pub struct BuildInfo {
pub version: &'static str,
pub target: &'static str,
pub aes_backend: &'static str,
pub polyval_backend: &'static str,
}Expand description
Build-time cryptographic backend information.
Populated at compile time from the active cfg flags. On ARMv8
builds compiled with --cfg aes_armv8 --cfg polyval_armv8 (set by
the repo’s .cargo/config.toml and both CI workflows) the aes
and polyval crates emit hardware AES + PMULL instructions; without
those flags they fall back to a constant-time software path that
runs at roughly 5× the cost per page.
Published through build_info, exposed by mnemo info on the
CLI and mnemo.build_info() from the Python binding. The point is
verification — nobody should have to profile a release build to find
out whether it’s running software AES.
Fields§
§version: &'static strPackage version (CARGO_PKG_VERSION), e.g. "0.5.1".
target: &'static strTarget triple this binary was built for, e.g.
"aarch64-apple-darwin".
aes_backend: &'static strHuman-readable AES backend. One of:
"armv8 hardware"— ARM withcfg(aes_armv8)"armv8 software"— ARM without the cfg; constant-time fallback"x86_64 AES-NI (runtime detect)"— x86_64 with runtime AES-NI detection in theaescrate"portable software"— any other target
polyval_backend: &'static strHuman-readable PMULL/CLMUL backend used by GHASH (part of AES-GCM).
Same shape as aes_backend but for polyval.