summaryrefslogtreecommitdiff
path: root/ext/sodium/tests/crypto_stream.phpt
diff options
context:
space:
mode:
Diffstat (limited to 'ext/sodium/tests/crypto_stream.phpt')
-rw-r--r--ext/sodium/tests/crypto_stream.phpt52
1 files changed, 52 insertions, 0 deletions
diff --git a/ext/sodium/tests/crypto_stream.phpt b/ext/sodium/tests/crypto_stream.phpt
new file mode 100644
index 0000000000..7439e289b8
--- /dev/null
+++ b/ext/sodium/tests/crypto_stream.phpt
@@ -0,0 +1,52 @@
+--TEST--
+Check for libsodium stream
+--SKIPIF--
+<?php if (!extension_loaded("sodium")) print "skip"; ?>
+--FILE--
+<?php
+$nonce = random_bytes(SODIUM_CRYPTO_STREAM_NONCEBYTES);
+$key = random_bytes(SODIUM_CRYPTO_STREAM_KEYBYTES);
+
+$len = 100;
+$stream = sodium_crypto_stream($len, $nonce, $key);
+var_dump(strlen($stream));
+
+$stream2 = sodium_crypto_stream($len, $nonce, $key);
+
+$nonce = random_bytes(SODIUM_CRYPTO_STREAM_NONCEBYTES);
+$stream3 = sodium_crypto_stream($len, $nonce, $key);
+
+$key = random_bytes(SODIUM_CRYPTO_STREAM_KEYBYTES);
+$stream4 = sodium_crypto_stream($len, $nonce, $key);
+
+var_dump($stream === $stream2);
+var_dump($stream !== $stream3);
+var_dump($stream !== $stream4);
+var_dump($stream2 !== $stream3);
+var_dump($stream2 !== $stream4);
+var_dump($stream3 !== $stream4);
+
+$stream5 = sodium_crypto_stream_xor($stream, $nonce, $key);
+var_dump($stream5 !== $stream);
+$stream6 = sodium_crypto_stream_xor($stream5, $nonce, $key);
+
+var_dump($stream6 === $stream);
+
+try {
+ sodium_crypto_stream($len, substr($nonce, 1), $key);
+} catch (SodiumException $ex) {
+ var_dump(true);
+}
+
+?>
+--EXPECT--
+int(100)
+bool(true)
+bool(true)
+bool(true)
+bool(true)
+bool(true)
+bool(true)
+bool(true)
+bool(true)
+bool(true)