From b7b8126ccfcb9dbcefa4f97f1496c0b69f862469 Mon Sep 17 00:00:00 2001 From: therealyingtong Date: Sun, 13 Jun 2021 23:19:12 +0800 Subject: [PATCH] spec.rs: Add lebs2ip function bounded on const generic L. Co-authored-by: Jack Grigg --- src/primitives/sinsemilla.rs | 2 +- src/spec.rs | 12 ++++++++++++ 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/src/primitives/sinsemilla.rs b/src/primitives/sinsemilla.rs index 88fd94c6..a95679cf 100644 --- a/src/primitives/sinsemilla.rs +++ b/src/primitives/sinsemilla.rs @@ -14,7 +14,7 @@ mod constants; mod sinsemilla_s; pub use constants::*; -pub fn lebs2ip_k(bits: &[bool]) -> u32 { +fn lebs2ip_k(bits: &[bool]) -> u32 { assert!(bits.len() == K); bits.iter() .enumerate() diff --git a/src/spec.rs b/src/spec.rs index 776197cc..ccd1cf78 100644 --- a/src/spec.rs +++ b/src/spec.rs @@ -179,6 +179,18 @@ pub(crate) fn extract_p_bottom(point: CtOption) -> CtOption(bits: &[bool; L]) -> u64 { + assert!(L <= 64); + bits.iter() + .enumerate() + .fold(0u64, |acc, (i, b)| acc + if *b { 1 << i } else { 0 }) +} + #[cfg(test)] mod tests { use group::Group;