@@ -4,24 +4,46 @@ Check for libsodium scalarmult ristretto255
4
4
sodium
5
5
--SKIPIF--
6
6
<?php
7
- if (!defined ('SODIUM_CRYPTO_SCALARMULT_RISTRETTO255_HASHBYTES ' )) print "skip libsodium without Ristretto255 " ;
7
+ if (!defined ('SODIUM_CRYPTO_CORE_RISTRETTO255_HASHBYTES ' )) print "skip libsodium without Ristretto255 " ;
8
8
?>
9
9
--FILE--
10
10
<?php
11
- $ n = sodium_hex2bin ("94938bc8631c7d760f6a8b9d9c9c07569e65d9cf79dc809221186205fea3ec05 " );
12
- $ p = sodium_hex2bin ("edf2014b8a2ca9ec18e3ba4600c3c9c48d38acebba01601ad7b104a492035b06 " );
13
- $ q = sodium_crypto_scalarmult_ristretto255 ($ n , $ p );
14
- $ q2 = sodium_crypto_scalarmult_ristretto255_base ($ n );
11
+ $ b = sodium_hex2bin ("e2f2ae0a6abc4e71a884a961c500515f58e30b6aa582dd8db6a65945e08d2d76 " );
12
+ $ n = str_repeat ("\0" , SODIUM_CRYPTO_SCALARMULT_RISTRETTO255_SCALARBYTES );
13
+ for ($ i = 0 ; $ i < 16 ; $ i ++, sodium_increment ($ n )) {
14
+ try {
15
+ $ p = sodium_crypto_scalarmult_ristretto255_base ($ n );
16
+ $ p2 = sodium_crypto_scalarmult_ristretto255 ($ n , $ b );
17
+ } catch (SodiumException $ ex ) {
18
+ echo $ ex ->getMessage (), "\n" ;
19
+ continue ;
20
+ }
21
+ var_dump (sodium_bin2hex ($ p ));
22
+ assert ($ p === $ p2 );
23
+ }
15
24
16
- var_dump (sodium_bin2hex ($ q ));
17
- var_dump (sodium_bin2hex ($ q2 ));
18
25
try {
19
26
sodium_crypto_scalarmult (substr ($ n , 1 ), $ p );
20
27
} catch (SodiumException $ ex ) {
21
- var_dump ( true ) ;
28
+ echo $ ex -> getMessage (), "\n" ;
22
29
}
30
+
23
31
?>
24
32
--EXPECT--
25
- string(64) "2a684afd8de19c6964fffd28509294e2752fdbb79e13a58dec3aff51de65505e"
26
- string(64) "e08ec8d22c0901c1746da3844857e9bc25b77cfe14a412e7bcd2b4017aff0556"
27
- bool(true)
33
+ internal error
34
+ string(64) "e2f2ae0a6abc4e71a884a961c500515f58e30b6aa582dd8db6a65945e08d2d76"
35
+ string(64) "6a493210f7499cd17fecb510ae0cea23a110e8d5b901f8acadd3095c73a3b919"
36
+ string(64) "94741f5d5d52755ece4f23f044ee27d5d1ea1e2bd196b462166b16152a9d0259"
37
+ string(64) "da80862773358b466ffadfe0b3293ab3d9fd53c5ea6c955358f568322daf6a57"
38
+ string(64) "e882b131016b52c1d3337080187cf768423efccbb517bb495ab812c4160ff44e"
39
+ string(64) "f64746d3c92b13050ed8d80236a7f0007c3b3f962f5ba793d19a601ebb1df403"
40
+ string(64) "44f53520926ec81fbd5a387845beb7df85a96a24ece18738bdcfa6a7822a176d"
41
+ string(64) "903293d8f2287ebe10e2374dc1a53e0bc887e592699f02d077d5263cdd55601c"
42
+ string(64) "02622ace8f7303a31cafc63f8fc48fdc16e1c8c8d234b2f0d6685282a9076031"
43
+ string(64) "20706fd788b2720a1ed2a5dad4952b01f413bcf0e7564de8cdc816689e2db95f"
44
+ string(64) "bce83f8ba5dd2fa572864c24ba1810f9522bc6004afe95877ac73241cafdab42"
45
+ string(64) "e4549ee16b9aa03099ca208c67adafcafa4c3f3e4e5303de6026e3ca8ff84460"
46
+ string(64) "aa52e000df2e16f55fb1032fc33bc42742dad6bd5a8fc0be0167436c5948501f"
47
+ string(64) "46376b80f409b29dc2b5f6f0c52591990896e5716f41477cd30085ab7f10301e"
48
+ string(64) "e0c418f7c8d9c4cdd7395b93ea124f3ad99021bb681dfc3302a9d99a2e53e64e"
49
+ sodium_crypto_scalarmult(): Argument #1 ($n) must be SODIUM_CRYPTO_SCALARMULT_SCALARBYTES bytes long
0 commit comments