@@ -20,75 +20,3 @@ pub trait SRandom: Group {
2020 ) -> Self :: Scalar ;
2121}
2222
23-
24- use num_bigint:: BigUint ;
25-
26- use rand:: RngCore ;
27- use group:: { Group , ff:: Field } ;
28- use bls12_381:: { G1Projective , G1Affine } ;
29-
30-
31- use spec:: { TestDRNG , SInput , SRandom } ;
32-
33- type Gp = G1Projective ;
34- type Ga = G1Affine ;
35-
36- #[ allow( non_snake_case) ]
37- #[ test]
38- fn DRNG_testing ( ) {
39- let mut rng = TestDRNG :: new ( b"hello world" ) ;
40- println ! ( "Next u32 : {}" , rng. next_u32( ) ) ;
41- println ! ( "randint : {}" , rng. randint( 0 , 1000000000 ) ) ;
42- // println!("randint : {}", rng.randint(0, 52435875175126190479447740508185965837690552500527637822603658699938581184513));
43- let low = BigUint :: parse_bytes ( b"0" , 10 ) . unwrap ( ) ;
44- let high = BigUint :: parse_bytes ( b"73EDA753299D7C00000000000000000000000000000000000000000000000000" , 16 ) . unwrap ( ) ;
45- let rand = rng. randint_big ( & low, & high) ;
46- println ! ( "{}" , rand) ;
47- }
48-
49-
50- #[ allow( non_snake_case) ]
51- #[ test]
52- fn Scalar_test ( ) {
53- let rng = TestDRNG :: new ( b"hello world" ) ;
54- let y = <Gp as Group >:: Scalar :: random ( rng) ;
55- let ZERO = <Gp as Group >:: Scalar :: ZERO ;
56- let ONE = y * y. invert ( ) . unwrap ( ) ;
57- let ONE_inv = ONE . invert ( ) . unwrap ( ) ;
58- let TWO = ONE + ONE ;
59- let TWO_INV = TWO . invert ( ) . unwrap ( ) ;
60- let ch = hex:: decode ( "26a48d1bb889d46d66689d580335f2ac713f36abaaaa1eaa5555555500000003" ) . into ( ) . unwrap ( ) ;
61- let Z = <Gp as Group >:: Scalar :: from_bytes ( ch) . unwrap ( ) ;
62- let Z_inv = Z . invert ( ) . unwrap ( ) ;
63- let _W = <Gp as Group >:: Scalar :: from_bytes ( & Z_inv . to_bytes ( ) ) . unwrap ( ) ;
64- println ! ( "y = {}" , y) ;
65- println ! ( "ZERO = {}" , ZERO ) ;
66- println ! ( "ONE = {}" , ONE ) ;
67- println ! ( "ONE_inv = {}" , ONE_inv ) ;
68- println ! ( "TWO = {}" , TWO ) ;
69- println ! ( "TWO_INV = {}" , TWO_INV ) ;
70- println ! ( "Z = {}" , Z ) ;
71- println ! ( "Z_inv = {}" , Z_inv ) ;
72- println ! ( "W = {}" , TWO * TWO ) ;
73- }
74-
75- #[ allow( non_snake_case) ]
76- #[ test]
77- fn DRNG_test_on_Scalar ( ) {
78- let mut rng = TestDRNG :: new ( b"hello world" ) ;
79- let x = G1Projective :: random ( & mut rng) ;
80- let y = G1Projective :: random ( & mut rng) ;
81- println ! ( "x = {}" , x) ;
82- println ! ( "y = {}" , y) ;
83- }
84-
85-
86- #[ allow( non_snake_case) ]
87- #[ test]
88- fn DRNG_test_on_Group ( ) {
89- let mut _rng = TestDRNG :: new ( b"hello world" ) ;
90- let H = Ga :: identity ( ) ;
91- let _bytes = H . to_uncompressed ( ) ;
92- println ! ( "Voici H : {}" , H ) ;
93- }
94-
0 commit comments