Use black_box to help obscure the dalek-ff-group bool -> Choice conversion

I have no idea if this will actually help, yet it can't hurt.

Feature gated due to MSRV requirements.

Fixes #242.
This commit is contained in:
Luke Parker
2023-03-07 04:22:57 -05:00
parent adb5f34fda
commit c358090f16
3 changed files with 12 additions and 2 deletions

View File

@@ -43,7 +43,14 @@ pub mod field;
// Convert a boolean to a Choice in a *presumably* constant time manner
fn choice(value: bool) -> Choice {
Choice::from(u8::from(value))
#[cfg(not(feature = "black_box"))]
let res = Choice::from(u8::from(value));
#[cfg(feature = "black_box")]
let res = {
use core::hint::black_box;
Choice::from(black_box(u8::from(black_box(value))))
};
res
}
macro_rules! deref_borrow {