crypto_stream.phpt 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. --TEST--
  2. Check for libsodium stream
  3. --EXTENSIONS--
  4. sodium
  5. --FILE--
  6. <?php
  7. $nonce = random_bytes(SODIUM_CRYPTO_STREAM_NONCEBYTES);
  8. $key = sodium_crypto_stream_keygen();
  9. $len = 100;
  10. $stream = sodium_crypto_stream($len, $nonce, $key);
  11. var_dump(strlen($stream));
  12. $stream2 = sodium_crypto_stream($len, $nonce, $key);
  13. $nonce = random_bytes(SODIUM_CRYPTO_STREAM_NONCEBYTES);
  14. $stream3 = sodium_crypto_stream($len, $nonce, $key);
  15. $key = sodium_crypto_stream_keygen();
  16. $stream4 = sodium_crypto_stream($len, $nonce, $key);
  17. var_dump($stream === $stream2);
  18. var_dump($stream !== $stream3);
  19. var_dump($stream !== $stream4);
  20. var_dump($stream2 !== $stream3);
  21. var_dump($stream2 !== $stream4);
  22. var_dump($stream3 !== $stream4);
  23. $stream5 = sodium_crypto_stream_xor($stream, $nonce, $key);
  24. var_dump($stream5 !== $stream);
  25. $stream6 = sodium_crypto_stream_xor($stream5, $nonce, $key);
  26. var_dump($stream6 === $stream);
  27. try {
  28. sodium_crypto_stream($len, substr($nonce, 1), $key);
  29. } catch (SodiumException $ex) {
  30. var_dump(true);
  31. }
  32. ?>
  33. --EXPECT--
  34. int(100)
  35. bool(true)
  36. bool(true)
  37. bool(true)
  38. bool(true)
  39. bool(true)
  40. bool(true)
  41. bool(true)
  42. bool(true)
  43. bool(true)