mirror of
https://github.com/serai-dex/serai.git
synced 2024-12-22 19:49:22 +00:00
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:
parent
adb5f34fda
commit
c358090f16
3 changed files with 12 additions and 2 deletions
|
@ -29,3 +29,6 @@ curve25519-dalek = "^3.2"
|
||||||
|
|
||||||
[dev-dependencies]
|
[dev-dependencies]
|
||||||
ff-group-tests = { path = "../ff-group-tests" }
|
ff-group-tests = { path = "../ff-group-tests" }
|
||||||
|
|
||||||
|
[features]
|
||||||
|
black_box = []
|
||||||
|
|
|
@ -43,7 +43,14 @@ pub mod field;
|
||||||
|
|
||||||
// Convert a boolean to a Choice in a *presumably* constant time manner
|
// Convert a boolean to a Choice in a *presumably* constant time manner
|
||||||
fn choice(value: bool) -> Choice {
|
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 {
|
macro_rules! deref_borrow {
|
||||||
|
|
|
@ -24,7 +24,7 @@ group = "0.12"
|
||||||
curve25519-dalek = { version = "3", features = ["std"] }
|
curve25519-dalek = { version = "3", features = ["std"] }
|
||||||
|
|
||||||
transcript = { package = "flexible-transcript", path = "../crypto/transcript", features = ["recommended"] }
|
transcript = { package = "flexible-transcript", path = "../crypto/transcript", features = ["recommended"] }
|
||||||
dalek-ff-group = { path = "../crypto/dalek-ff-group" }
|
dalek-ff-group = { path = "../crypto/dalek-ff-group", features = ["black_box"] }
|
||||||
frost = { package = "modular-frost", path = "../crypto/frost", features = ["ed25519"] }
|
frost = { package = "modular-frost", path = "../crypto/frost", features = ["ed25519"] }
|
||||||
|
|
||||||
monero-serai = { path = "../coins/monero", features = ["multisig"] }
|
monero-serai = { path = "../coins/monero", features = ["multisig"] }
|
||||||
|
|
Loading…
Reference in a new issue