mirror of
https://github.com/saymrwulf/risc0-curve25519-dalek-source.git
synced 2026-09-04 20:03:40 +00:00
ed: ConstantTimeEq and PartialEq for SigningKey (#557)
This commit is contained in:
parent
bf2c4eea23
commit
c66973c823
2 changed files with 16 additions and 0 deletions
|
|
@ -29,6 +29,7 @@ curve25519-dalek = { version = "4", path = "../curve25519-dalek", default-featur
|
|||
ed25519 = { version = ">=2.2, <2.3", default-features = false }
|
||||
signature = { version = ">=2.0, <2.1", optional = true, default-features = false }
|
||||
sha2 = { version = "0.10", default-features = false }
|
||||
subtle = { version = "2.3.0", default-features = false }
|
||||
|
||||
# optional features
|
||||
merlin = { version = "3", default-features = false, optional = true }
|
||||
|
|
|
|||
|
|
@ -19,6 +19,7 @@ use rand_core::CryptoRngCore;
|
|||
use serde::{Deserialize, Deserializer, Serialize, Serializer};
|
||||
|
||||
use sha2::Sha512;
|
||||
use subtle::{Choice, ConstantTimeEq};
|
||||
|
||||
use curve25519_dalek::{
|
||||
digest::{generic_array::typenum::U64, Digest},
|
||||
|
|
@ -583,6 +584,20 @@ impl TryFrom<&[u8]> for SigningKey {
|
|||
}
|
||||
}
|
||||
|
||||
impl ConstantTimeEq for SigningKey {
|
||||
fn ct_eq(&self, other: &Self) -> Choice {
|
||||
self.secret_key.ct_eq(&other.secret_key)
|
||||
}
|
||||
}
|
||||
|
||||
impl PartialEq for SigningKey {
|
||||
fn eq(&self, other: &Self) -> bool {
|
||||
self.ct_eq(other).into()
|
||||
}
|
||||
}
|
||||
|
||||
impl Eq for SigningKey {}
|
||||
|
||||
#[cfg(feature = "zeroize")]
|
||||
impl Drop for SigningKey {
|
||||
fn drop(&mut self) {
|
||||
|
|
|
|||
Loading…
Reference in a new issue