Resolve #268 by adding a Zeroize to DigestTranscript which writes a full block

This is a 'better-than-nothing' attempt to invalidate its state.

Also replaces black_box features with usage of the rustversion crate.
This commit is contained in:
Luke Parker
2023-03-28 04:43:10 -04:00
parent 79aff5d4c8
commit 47be373eb0
12 changed files with 108 additions and 56 deletions

View File

@@ -13,12 +13,15 @@ all-features = true
rustdoc-args = ["--cfg", "docsrs"]
[dependencies]
rand_core = "0.6"
digest = "0.10"
rustversion = "1"
zeroize = { version = "^1.5", features = ["zeroize_derive"] }
subtle = "^2.4"
rand_core = "0.6"
digest = "0.10"
ff = "0.13"
group = "0.13"
@@ -29,6 +32,3 @@ curve25519-dalek = "^3.2"
[dev-dependencies]
ff-group-tests = { path = "../ff-group-tests" }
[features]
black_box = []

View File

@@ -38,14 +38,11 @@ use group::{
mod field;
pub use field::FieldElement;
// Feature gated due to MSRV requirements
#[cfg(feature = "black_box")]
pub(crate) fn black_box<T>(val: T) -> T {
core::hint::black_box(val)
}
#[cfg(not(feature = "black_box"))]
pub(crate) fn black_box<T>(val: T) -> T {
// Use black_box when possible
#[rustversion::since(1.66)]
use core::hint::black_box;
#[rustversion::before(1.66)]
fn black_box<T>(val: T) -> T {
val
}