crypto_generichash.phpt 2.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. --TEST--
  2. Check for libsodium generichash
  3. --EXTENSIONS--
  4. sodium
  5. --FILE--
  6. <?php
  7. $q = sodium_crypto_generichash('msg');
  8. var_dump(bin2hex($q));
  9. $q = sodium_crypto_generichash('msg', '0123456789abcdef');
  10. var_dump(bin2hex($q));
  11. $q = sodium_crypto_generichash('msg', '0123456789abcdef', 64);
  12. var_dump(bin2hex($q));
  13. $q = sodium_crypto_generichash('msg', '0123456789abcdef0123456789abcdef', 64);
  14. var_dump(bin2hex($q));
  15. $state = sodium_crypto_generichash_init();
  16. $q = sodium_crypto_generichash_final($state);
  17. var_dump(bin2hex($q));
  18. $state = sodium_crypto_generichash_init();
  19. sodium_crypto_generichash_update($state, 'm');
  20. sodium_crypto_generichash_update($state, 'sg');
  21. $q = sodium_crypto_generichash_final($state);
  22. var_dump(bin2hex($q));
  23. $state = sodium_crypto_generichash_init('0123456789abcdef');
  24. sodium_crypto_generichash_update($state, 'm');
  25. sodium_crypto_generichash_update($state, 'sg');
  26. $q = sodium_crypto_generichash_final($state);
  27. var_dump(bin2hex($q));
  28. $state = sodium_crypto_generichash_init('0123456789abcdef', 64);
  29. sodium_crypto_generichash_update($state, 'm');
  30. sodium_crypto_generichash_update($state, 'sg');
  31. $state2 = '' . $state;
  32. $q = sodium_crypto_generichash_final($state, 64);
  33. var_dump(bin2hex($q));
  34. sodium_crypto_generichash_update($state2, '2');
  35. $q = sodium_crypto_generichash_final($state2, 64);
  36. $exp = bin2hex($q);
  37. var_dump($exp);
  38. $act = bin2hex(
  39. sodium_crypto_generichash('msg2', '0123456789abcdef', 64)
  40. );
  41. var_dump($act);
  42. var_dump($exp === $act);
  43. try {
  44. $hash = sodium_crypto_generichash('test', '', 128);
  45. } catch (SodiumException $ex) {
  46. var_dump(true);
  47. }
  48. ?>
  49. --EXPECT--
  50. string(64) "96a7ed8861db0abc006f473f9e64687875f3d9df8e723adae9f53a02b2aec378"
  51. string(64) "ba03e32a94ece425a77b350f029e0a3d37e6383158aa7cefa2b1b9470a7fcb7a"
  52. string(128) "8ccd640462e7380010c5722d7f3c2354781d1360430197ff233509c27353fd2597c8d689bfe769467056a0655b3faba6af4e4ade248558f7c53538c4d5b94806"
  53. string(128) "30f0e5f1e3beb7e0340976ac05a94043cce082d870e28e03c906e8fe9a88786271c6ba141eee2885e7444a870fac498cc78a13b0c53aefaec01bf38ebfe73b3f"
  54. string(64) "0e5751c026e543b2e8ab2eb06099daa1d1e5df47778f7787faab45cdf12fe3a8"
  55. string(64) "96a7ed8861db0abc006f473f9e64687875f3d9df8e723adae9f53a02b2aec378"
  56. string(64) "ba03e32a94ece425a77b350f029e0a3d37e6383158aa7cefa2b1b9470a7fcb7a"
  57. string(128) "8ccd640462e7380010c5722d7f3c2354781d1360430197ff233509c27353fd2597c8d689bfe769467056a0655b3faba6af4e4ade248558f7c53538c4d5b94806"
  58. string(128) "9ef702f51114c9dc2cc7521746e8beebe0a3ca9bb29ec729e16682ca982e7f69ff70235a46659a9a6c28f92fbd990288301b9a6b5517f1f2ba6518074af19a5a"
  59. string(128) "9ef702f51114c9dc2cc7521746e8beebe0a3ca9bb29ec729e16682ca982e7f69ff70235a46659a9a6c28f92fbd990288301b9a6b5517f1f2ba6518074af19a5a"
  60. bool(true)
  61. bool(true)