From ff7287e3929fde7da517a49273e7e97e3dcf8b90 Mon Sep 17 00:00:00 2001 From: Kris Nuttycombe Date: Fri, 23 Feb 2024 22:06:10 -0700 Subject: [PATCH] Add `impl subtle::ConstantTimeEq for note::Nullifier` --- CHANGELOG.md | 3 +++ src/note/nullifier.rs | 8 +++++++- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 445a7a3e..07637e07 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,9 @@ and this project adheres to Rust's notion of ## [Unreleased] +### Added +- `impl subtle::ConstantTimeEq for note::Nullifier` + ## [0.7.0] - 2024-01-26 ### Licensing - The license for this crate is now "MIT OR Apache-2.0". The license diff --git a/src/note/nullifier.rs b/src/note/nullifier.rs index a18e77fe..7fa97230 100644 --- a/src/note/nullifier.rs +++ b/src/note/nullifier.rs @@ -3,7 +3,7 @@ use halo2_proofs::arithmetic::CurveExt; use memuse::DynamicUsage; use pasta_curves::pallas; use rand::RngCore; -use subtle::CtOption; +use subtle::{CtOption, ConstantTimeEq}; use super::NoteCommitment; use crate::{ @@ -62,6 +62,12 @@ impl Nullifier { } } +impl ConstantTimeEq for Nullifier { + fn ct_eq(&self, other: &Self) -> subtle::Choice { + self.0.ct_eq(&other.0) + } +} + /// Generators for property testing. #[cfg(any(test, feature = "test-dependencies"))] #[cfg_attr(docsrs, doc(cfg(feature = "test-dependencies")))]