Skip to content

Commit c8e4f6d

Browse files
committed
Update docs
1 parent 1c77bf4 commit c8e4f6d

File tree

2 files changed

+22
-6
lines changed

2 files changed

+22
-6
lines changed

README.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,9 @@ Rust versions from 1.66 or higher support a new best-effort optimization
3030
barrier ([`core::hint::black_box`]). To use the new optimization barrier,
3131
enable the `core_hint_black_box` feature.
3232

33+
Rust versions from 1.51 or higher have const generics support. You may enable
34+
`const-generics` feautre to have `subtle` traits implemented for arrays `[T; N]`.
35+
3336
Versions prior to `2.2` recommended use of the `nightly` feature to enable an
3437
optimization barrier; this is not required in versions `2.2` and above.
3538

src/lib.rs

Lines changed: 19 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,13 @@
4141
//! inner `u8` by passing it through a volatile read. For more information, see
4242
//! the _About_ section below.
4343
//!
44+
//! Rust versions from 1.66 or higher support a new best-effort optimization
45+
//! barrier ([`core::hint::black_box`]). To use the new optimization barrier,
46+
//! enable the `core_hint_black_box` feature.
47+
//!
48+
//! Rust versions from 1.51 or higher have const generics support. You may enable
49+
//! `const-generics` feautre to have `subtle` traits implemented for arrays `[T; N]`.
50+
//!
4451
//! Versions prior to `2.2` recommended use of the `nightly` feature to enable an
4552
//! optimization barrier; this is not required in versions `2.2` and above.
4653
//!
@@ -55,18 +62,23 @@
5562
//!
5663
//! ## Minimum Supported Rust Version
5764
//!
58-
//! Rust **1.51** or higher.
65+
//! Rust **1.41** or higher.
5966
//!
6067
//! Minimum supported Rust version can be changed in the future, but it will be done with a minor version bump.
6168
//!
6269
//! ## About
6370
//!
6471
//! This library aims to be the Rust equivalent of Go’s `crypto/subtle` module.
6572
//!
66-
//! The optimization barrier in `impl From<u8> for Choice` was based on Tim
67-
//! Maclean's [work on `rust-timing-shield`][rust-timing-shield], which attempts to
68-
//! provide a more comprehensive approach for preventing software side-channels in
69-
//! Rust code.
73+
//! Old versions of the optimization barrier in `impl From<u8> for Choice` were
74+
//! based on Tim Maclean's [work on `rust-timing-shield`][rust-timing-shield],
75+
//! which attempts to provide a more comprehensive approach for preventing
76+
//! software side-channels in Rust code.
77+
//!
78+
//! From version `2.2`, it was based on Diane Hosfelt and Amber Sprenkels' work on
79+
//! "Secret Types in Rust". Version `2.3` adds the `core_hint_black_box` feature,
80+
//! which uses the original method through the [`core::hint::black_box`] function
81+
//! from the Rust standard library.
7082
//!
7183
//! `subtle` is authored by isis agora lovecruft and Henry de Valence.
7284
//!
@@ -81,6 +93,7 @@
8193
//! **USE AT YOUR OWN RISK**
8294
//!
8395
//! [docs]: https://docs.rs/subtle
96+
//! [`core::hint::black_box`]: https://doc.rust-lang.org/core/hint/fn.black_box.html
8497
//! [rust-timing-shield]: https://www.chosenplaintext.ca/open-source/rust-timing-shield/security
8598
8699
#[cfg(feature = "std")]
@@ -856,7 +869,7 @@ macro_rules! generate_unsigned_integer_greater {
856869
Choice::from((bit & 1) as u8)
857870
}
858871
}
859-
}
872+
};
860873
}
861874

862875
generate_unsigned_integer_greater!(u8, 8);

0 commit comments

Comments
 (0)