dstu_core/lib.rs
1//! Rust implementations of Ukrainian DSTU cryptographic standards (Kalyna, Kupyna, Strumok).
2//!
3//! **Pre-release and provisional — not independently audited.** Kalyna and Kupyna are
4//! dual-oracle-verified against official test vectors. The Kalyna-alone mode of operation
5//! (`hazmat::kalyna_ccm`, `hazmat::kalyna_gcm`, and everything built on them) rests on an adopted
6//! assumption, not a confirmation against the primary DSTU 7624:2014 text (`docs/DECISIONS.md` D-05).
7//! Strumok is UAPKI-attributed only, not confirmed against the primary DSTU 8845:2019 text
8//! (`docs/DECISIONS.md` D-15). This crate makes **no claim of side-channel (SPA/DPA) resistance**. See
9//! `docs/SECURITY.md` and `docs/DECISIONS.md` in the project repository for the full threat model, citations,
10//! and per-construction status.
11
12#![cfg_attr(not(feature = "std"), no_std)]
13#![warn(clippy::pedantic)]
14#![deny(clippy::unwrap_used, clippy::expect_used)]
15
16pub mod crypto_auth;
17#[cfg(feature = "std")]
18pub mod crypto_box;
19#[cfg(feature = "std")]
20pub mod crypto_box512;
21pub mod crypto_generichash;
22pub mod crypto_kdf;
23#[cfg(feature = "pwhash")]
24pub mod crypto_pwhash;
25#[cfg(feature = "std")]
26pub mod crypto_secretbox;
27pub mod crypto_secretstream;
28pub mod crypto_sign;
29pub mod crypto_sign257;
30#[cfg(feature = "std")]
31pub mod crypto_stream;
32pub mod hazmat;
33#[cfg(any(feature = "std", feature = "getrandom"))]
34pub mod randombytes;
35#[cfg(feature = "selftest")]
36pub mod selftest;