Skip to content

Commit 8edc744

Browse files
committed
v0.4.4 RC1
1 parent 479b744 commit 8edc744

File tree

3 files changed

+10
-11
lines changed

3 files changed

+10
-11
lines changed

README.md

+6-6
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,8 @@ without any unsafe code. All three security parameter sets are fully functional
1515
key- and signature-generation functionality operates in constant-time, does not require the standard library, e.g.
1616
`#[no_std]`, has no heap allocations, e.g. no `alloc` needed, and exposes the `RNG` so it is suitable for the full
1717
range of applications down to the bare-metal. The API is stabilized and the code is heavily biased towards safety
18-
and correctness; further performance optimizations will be implemented as the standard matures. This crate will
19-
quickly follow any changes to FIPS 204 as they become available.
18+
and correctness; further performance optimizations will be implemented over time. This crate will quickly follow
19+
any changes related to FIPS 204 as they become available (e.g., pick up more test vectors).
2020

2121
See <https://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.204.pdf> for a full description of the target functionality.
2222

@@ -58,12 +58,12 @@ The Rust [Documentation][docs-link] lives under each **Module** corresponding to
5858
## Notes
5959

6060
* This crate is fully functional and corresponds to the final released FIPS 204 (August 13, 2024).
61-
* **BEWARE:** As of September 27, 2024 NIST has not released external/hash test vectors!
61+
* **BEWARE:** As of October 29, 2024 NIST has not released external/hash test vectors!
6262
* Constant-time assurances target the source-code level only, with confirmation via
63-
manual review/inspection, the embedded target, and the `dudect` dynamic tests.
64-
* Note that FIPS 204 places specific requirements on randomness per section 3.5.1, hence the exposed `RNG`.
63+
manual review/inspection, the embedded target, and the `dudect` dynamic/statistical measurements.
64+
* Note that FIPS 204 places specific requirements on randomness per section 3.6.1, hence the exposed `RNG`.
6565
* Requires Rust **1.70** or higher. The minimum supported Rust version may be changed in the future, but
66-
it will be done with a minor version bump (when the major version is larger than 0).
66+
it will be done with a minor version bump (once the major version is larger than 0).
6767
* All on-by-default features of this library are covered by `SemVer`.
6868
* The FIPS 204 standard and this software should be considered experimental -- USE AT YOUR OWN RISK!
6969

src/helpers.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -153,8 +153,8 @@ pub(crate) fn infinity_norm<const ROW: usize>(w: &[R; ROW]) -> i32 {
153153
/// # Algorithm 49: MontgomeryReduce(𝑎) on page 50.
154154
/// Computes 𝑎 ⋅ 2−32 mod 𝑞.
155155
///
156-
/// **Input**: Integer 𝑎 with −231 𝑞 ≤ 𝑎 ≤ 231 𝑞.
157-
/// **Output**: 𝑟 ≡ 𝑎 ⋅ 2−32 mod 𝑞.
156+
/// **Input**: Integer 𝑎 with −2^{31}*𝑞 ≤ 𝑎 ≤ 2^{31}*𝑞.
157+
/// **Output**: 𝑟 ≡ 𝑎 ⋅ 2^{−32} mod 𝑞.
158158
#[allow(clippy::cast_possible_truncation)] // a as i32, res as i32
159159
pub(crate) const fn mont_reduce(a: i64) -> i32 {
160160
const QINV: i32 = 58_728_449; // (Q * QINV) % 2**32 = 1

src/lib.rs

+2-3
Original file line numberDiff line numberDiff line change
@@ -15,9 +15,8 @@
1515

1616

1717
// TODO Roadmap
18-
// 0. Code clean-up, more carefully shrink stack
19-
// 1. Improve docs on first/last few algorithms
20-
// 2. Always more testing...
18+
// 1. Always more testing...
19+
// 2. Performance optimizations
2120

2221

2322
// Implements FIPS 204 Module-Lattice-Based Digital Signature Standard.

0 commit comments

Comments
 (0)