From 74647b1b5273cad7f9fd2dfe048257164cba8275 Mon Sep 17 00:00:00 2001 From: Luke Parker Date: Thu, 23 Feb 2023 04:14:07 -0500 Subject: [PATCH] 3.2.3 Don't yield identity in Group::random --- crypto/dalek-ff-group/src/lib.rs | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/crypto/dalek-ff-group/src/lib.rs b/crypto/dalek-ff-group/src/lib.rs index d5e44252..c60bbb5c 100644 --- a/crypto/dalek-ff-group/src/lib.rs +++ b/crypto/dalek-ff-group/src/lib.rs @@ -358,7 +358,11 @@ macro_rules! dalek_group { bytes[31] |= u8::try_from(rng.next_u32() % 2).unwrap() << 7; let opt = Self::from_bytes(&bytes); if opt.is_some().into() { - return opt.unwrap(); + let opt = opt.unwrap(); + // Ban identity, per the trait specification + if !bool::from(opt.is_identity()) { + return opt; + } } } }