mirror of
https://github.com/saymrwulf/curve25519-dalek-source.git
synced 2026-09-03 20:13:48 +00:00
curve: Use constant-time compressed equality testing (#669)
This commit is contained in:
parent
445fd7d59d
commit
d54b196d18
1 changed files with 9 additions and 1 deletions
|
|
@ -218,9 +218,17 @@ use crate::traits::{MultiscalarMul, VartimeMultiscalarMul, VartimePrecomputedMul
|
|||
///
|
||||
/// The Ristretto encoding is canonical, so two points are equal if and
|
||||
/// only if their encodings are equal.
|
||||
#[derive(Copy, Clone, Eq, PartialEq, Hash)]
|
||||
#[allow(clippy::derived_hash_with_manual_eq)]
|
||||
#[derive(Copy, Clone, Hash)]
|
||||
pub struct CompressedRistretto(pub [u8; 32]);
|
||||
|
||||
impl Eq for CompressedRistretto {}
|
||||
impl PartialEq for CompressedRistretto {
|
||||
fn eq(&self, other: &Self) -> bool {
|
||||
self.ct_eq(other).into()
|
||||
}
|
||||
}
|
||||
|
||||
impl ConstantTimeEq for CompressedRistretto {
|
||||
fn ct_eq(&self, other: &CompressedRistretto) -> Choice {
|
||||
self.as_bytes().ct_eq(other.as_bytes())
|
||||
|
|
|
|||
Loading…
Reference in a new issue