Skip to content

Commit d92ea81

Browse files
committed
Add more tests for Scalar canonical checks
1 parent ff87698 commit d92ea81

File tree

1 file changed

+36
-9
lines changed

1 file changed

+36
-9
lines changed

src/scalar.rs

Lines changed: 36 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1698,15 +1698,42 @@ mod test {
16981698
0, 0, 128,
16991699
];
17001700

1701-
assert!(bool::from(
1702-
Scalar::from_canonical_bytes(canonical_bytes).is_some()
1703-
));
1704-
assert!(bool::from(
1705-
Scalar::from_canonical_bytes(non_canonical_bytes_because_unreduced).is_none()
1706-
));
1707-
assert!(bool::from(
1708-
Scalar::from_canonical_bytes(non_canonical_bytes_because_highbit).is_none()
1709-
));
1701+
let canonical_l_minus_one = [
1702+
237, 211, 245, 92, 26, 99, 18, 88, 214, 156, 247, 162, 222, 249, 222, 20, 0, 0, 0, 0,
1703+
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15,
1704+
];
1705+
let canonical_zero = [0u8; 32];
1706+
let canonical_255_minus_1 = [
1707+
132, 52, 71, 117, 71, 74, 127, 151, 35, 182, 58, 139, 233, 42, 231, 109, 255, 255, 255,
1708+
255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 15,
1709+
];
1710+
let non_canonical_l = [
1711+
237, 211, 245, 92, 26, 99, 18, 88, 214, 156, 247, 162, 222, 249, 222, 20, 0, 0, 0, 0,
1712+
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16,
1713+
];
1714+
let non_canonical_l_plus_one = [
1715+
237, 211, 245, 92, 26, 99, 18, 88, 214, 156, 247, 162, 222, 249, 222, 20, 0, 0, 0, 0,
1716+
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17,
1717+
];
1718+
let non_canonical_full = [0xFF; 32];
1719+
let non_canonical_255_minus_1 = {
1720+
let mut non_canonical_255_minus_1 = [0xFF; 32];
1721+
non_canonical_255_minus_1[31] = 0b0111_1111;
1722+
non_canonical_255_minus_1
1723+
};
1724+
1725+
let from_canonical_option = |b| Option::<Scalar>::from(Scalar::from_canonical_bytes(b));
1726+
1727+
assert!(from_canonical_option(canonical_bytes).is_some());
1728+
assert!(from_canonical_option(canonical_l_minus_one).is_some());
1729+
assert!(from_canonical_option(canonical_zero).is_some());
1730+
assert!(from_canonical_option(canonical_255_minus_1).is_some());
1731+
assert!(from_canonical_option(non_canonical_bytes_because_unreduced).is_none());
1732+
assert!(from_canonical_option(non_canonical_bytes_because_highbit).is_none());
1733+
assert!(from_canonical_option(non_canonical_l).is_none());
1734+
assert!(from_canonical_option(non_canonical_l_plus_one).is_none());
1735+
assert!(from_canonical_option(non_canonical_full).is_none());
1736+
assert!(from_canonical_option(non_canonical_255_minus_1).is_none());
17101737
}
17111738

17121739
#[test]

0 commit comments

Comments
 (0)