@@ -1698,15 +1698,42 @@ mod test {
1698
1698
0 , 0 , 128 ,
1699
1699
] ;
1700
1700
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( ) ) ;
1710
1737
}
1711
1738
1712
1739
#[ test]
0 commit comments