Skip to content

Commit

Permalink
Merge pull request #419 from nuttycom/nullifier_ct_eq
Browse files Browse the repository at this point in the history
Additions needed for Orchard batch scanning
  • Loading branch information
str4d authored Feb 29, 2024
2 parents f8857e8 + 9729cd8 commit 2a312c0
Show file tree
Hide file tree
Showing 3 changed files with 19 additions and 2 deletions.
5 changes: 5 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,11 @@ and this project adheres to Rust's notion of

## [Unreleased]

### Added
- `impl subtle::ConstantTimeEq for note::Nullifier`
- `impl Clone for note_encryption::CompactAction`
- `note_encryption::CompactAction::cmx`

## [0.7.0] - 2024-01-26
### Licensing
- The license for this crate is now "MIT OR Apache-2.0". The license
Expand Down
8 changes: 7 additions & 1 deletion src/note/nullifier.rs
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ use halo2_proofs::arithmetic::CurveExt;
use memuse::DynamicUsage;
use pasta_curves::pallas;
use rand::RngCore;
use subtle::CtOption;
use subtle::{ConstantTimeEq, CtOption};

use super::NoteCommitment;
use crate::{
Expand Down Expand Up @@ -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")))]
Expand Down
8 changes: 7 additions & 1 deletion src/note_encryption.rs
Original file line number Diff line number Diff line change
Expand Up @@ -269,6 +269,7 @@ impl<T> ShieldedOutput<OrchardDomain, ENC_CIPHERTEXT_SIZE> for Action<T> {
}

/// A compact Action for light clients.
#[derive(Clone)]
pub struct CompactAction {
nullifier: Nullifier,
cmx: ExtractedNoteCommitment,
Expand Down Expand Up @@ -325,10 +326,15 @@ impl CompactAction {
}
}

///Returns the nullifier of the note being spent.
/// Returns the nullifier of the note being spent.
pub fn nullifier(&self) -> Nullifier {
self.nullifier
}

/// Returns the commitment to the new note being created.
pub fn cmx(&self) -> ExtractedNoteCommitment {
self.cmx
}
}

#[cfg(test)]
Expand Down

0 comments on commit 2a312c0

Please sign in to comment.