@@ -1650,15 +1650,42 @@ pub(crate) mod test {
1650
1650
0 , 0 , 128 ,
1651
1651
] ;
1652
1652
1653
- assert ! ( bool :: from(
1654
- Scalar :: from_canonical_bytes( canonical_bytes) . is_some( )
1655
- ) ) ;
1656
- assert ! ( bool :: from(
1657
- Scalar :: from_canonical_bytes( non_canonical_bytes_because_unreduced) . is_none( )
1658
- ) ) ;
1659
- assert ! ( bool :: from(
1660
- Scalar :: from_canonical_bytes( non_canonical_bytes_because_highbit) . is_none( )
1661
- ) ) ;
1653
+ let canonical_l_minus_one = [
1654
+ 237 , 211 , 245 , 92 , 26 , 99 , 18 , 88 , 214 , 156 , 247 , 162 , 222 , 249 , 222 , 20 , 0 , 0 , 0 , 0 ,
1655
+ 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 15 ,
1656
+ ] ;
1657
+ let canonical_zero = [ 0u8 ; 32 ] ;
1658
+ let canonical_255_minus_1 = [
1659
+ 132 , 52 , 71 , 117 , 71 , 74 , 127 , 151 , 35 , 182 , 58 , 139 , 233 , 42 , 231 , 109 , 255 , 255 , 255 ,
1660
+ 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 15 ,
1661
+ ] ;
1662
+ let non_canonical_l = [
1663
+ 237 , 211 , 245 , 92 , 26 , 99 , 18 , 88 , 214 , 156 , 247 , 162 , 222 , 249 , 222 , 20 , 0 , 0 , 0 , 0 ,
1664
+ 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 16 ,
1665
+ ] ;
1666
+ let non_canonical_l_plus_one = [
1667
+ 237 , 211 , 245 , 92 , 26 , 99 , 18 , 88 , 214 , 156 , 247 , 162 , 222 , 249 , 222 , 20 , 0 , 0 , 0 , 0 ,
1668
+ 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 17 ,
1669
+ ] ;
1670
+ let non_canonical_full = [ 0xFF ; 32 ] ;
1671
+ let non_canonical_255_minus_1 = {
1672
+ let mut non_canonical_255_minus_1 = [ 0xFF ; 32 ] ;
1673
+ non_canonical_255_minus_1[ 31 ] = 0b0111_1111 ;
1674
+ non_canonical_255_minus_1
1675
+ } ;
1676
+
1677
+ let from_canonical_option = |b| Option :: < Scalar > :: from ( Scalar :: from_canonical_bytes ( b) ) ;
1678
+
1679
+ assert ! ( from_canonical_option( canonical_bytes) . is_some( ) ) ;
1680
+ assert ! ( from_canonical_option( canonical_l_minus_one) . is_some( ) ) ;
1681
+ assert ! ( from_canonical_option( canonical_zero) . is_some( ) ) ;
1682
+ assert ! ( from_canonical_option( canonical_255_minus_1) . is_some( ) ) ;
1683
+ assert ! ( from_canonical_option( non_canonical_bytes_because_unreduced) . is_none( ) ) ;
1684
+ assert ! ( from_canonical_option( non_canonical_bytes_because_highbit) . is_none( ) ) ;
1685
+ assert ! ( from_canonical_option( non_canonical_l) . is_none( ) ) ;
1686
+ assert ! ( from_canonical_option( non_canonical_l_plus_one) . is_none( ) ) ;
1687
+ assert ! ( from_canonical_option( non_canonical_full) . is_none( ) ) ;
1688
+ assert ! ( from_canonical_option( non_canonical_255_minus_1) . is_none( ) ) ;
1662
1689
}
1663
1690
1664
1691
#[ test]
0 commit comments