Find this useful? Enter your email to receive occasional updates for securing PHP code.
Signing you up...
Thank you for signing up!
PHP Decode
--TEST-- Check for libsodium stream --EXTENSIONS-- sodium --SKIPIF-- <?php if (!defined('S..
Decoded Output download
--TEST--
Check for libsodium stream
--EXTENSIONS--
sodium
--SKIPIF--
<?php if (!defined('SODIUM_CRYPTO_STREAM_XCHACHA20_KEYBYTES')) print "skip"; ?>
--FILE--
<?php
$nonce = random_bytes(SODIUM_CRYPTO_STREAM_XCHACHA20_NONCEBYTES);
$key = sodium_crypto_stream_xchacha20_keygen();
$len = 100;
$stream = sodium_crypto_stream_xchacha20($len, $nonce, $key);
var_dump(strlen($stream));
$stream2 = sodium_crypto_stream_xchacha20($len, $nonce, $key);
$nonce = random_bytes(SODIUM_CRYPTO_STREAM_XCHACHA20_NONCEBYTES);
$stream3 = sodium_crypto_stream_xchacha20($len, $nonce, $key);
$key = sodium_crypto_stream_keygen();
$stream4 = sodium_crypto_stream_xchacha20($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_xchacha20_xor($stream, $nonce, $key);
var_dump($stream5 !== $stream);
$stream6 = sodium_crypto_stream_xchacha20_xor($stream5, $nonce, $key);
var_dump($stream6 === $stream);
try {
sodium_crypto_stream_xchacha20(-1, $nonce, $key);
} catch (SodiumException $ex) {
echo $ex->getMessage(), "
";
}
try {
sodium_crypto_stream_xchacha20($len, substr($nonce, 1), $key);
} catch (SodiumException $ex) {
echo $ex->getMessage(), "
";
}
try {
sodium_crypto_stream_xchacha20($len, $nonce, substr($key, 1));
} catch (SodiumException $ex) {
echo $ex->getMessage(), "
";
}
try {
sodium_crypto_stream_xchacha20_xor($stream, substr($nonce, 1), $key);
} catch (SodiumException $ex) {
echo $ex->getMessage(), "
";
}
try {
sodium_crypto_stream_xchacha20_xor($stream, $nonce, substr($key, 1));
} catch (SodiumException $ex) {
echo $ex->getMessage(), "
";
}
?>
--EXPECT--
int(100)
bool(true)
bool(true)
bool(true)
bool(true)
bool(true)
bool(true)
bool(true)
bool(true)
sodium_crypto_stream_xchacha20(): Argument #1 ($length) must be greater than 0
sodium_crypto_stream_xchacha20(): Argument #2 ($nonce) must be SODIUM_CRYPTO_STREAM_XCHACHA20_NONCEBYTES bytes long
sodium_crypto_stream_xchacha20(): Argument #3 ($key) must be SODIUM_CRYPTO_STREAM_XCHACHA20_KEYBYTES bytes long
sodium_crypto_stream_xchacha20_xor(): Argument #2 ($nonce) must be SODIUM_CRYPTO_STREAM_XCHACHA20_NONCEBYTES bytes long
sodium_crypto_stream_xchacha20_xor(): Argument #3 ($key) must be SODIUM_CRYPTO_STREAM_XCHACHA20_KEYBYTES bytes long
Did this file decode correctly?
Original Code
--TEST--
Check for libsodium stream
--EXTENSIONS--
sodium
--SKIPIF--
<?php if (!defined('SODIUM_CRYPTO_STREAM_XCHACHA20_KEYBYTES')) print "skip"; ?>
--FILE--
<?php
$nonce = random_bytes(SODIUM_CRYPTO_STREAM_XCHACHA20_NONCEBYTES);
$key = sodium_crypto_stream_xchacha20_keygen();
$len = 100;
$stream = sodium_crypto_stream_xchacha20($len, $nonce, $key);
var_dump(strlen($stream));
$stream2 = sodium_crypto_stream_xchacha20($len, $nonce, $key);
$nonce = random_bytes(SODIUM_CRYPTO_STREAM_XCHACHA20_NONCEBYTES);
$stream3 = sodium_crypto_stream_xchacha20($len, $nonce, $key);
$key = sodium_crypto_stream_keygen();
$stream4 = sodium_crypto_stream_xchacha20($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_xchacha20_xor($stream, $nonce, $key);
var_dump($stream5 !== $stream);
$stream6 = sodium_crypto_stream_xchacha20_xor($stream5, $nonce, $key);
var_dump($stream6 === $stream);
try {
sodium_crypto_stream_xchacha20(-1, $nonce, $key);
} catch (SodiumException $ex) {
echo $ex->getMessage(), "\n";
}
try {
sodium_crypto_stream_xchacha20($len, substr($nonce, 1), $key);
} catch (SodiumException $ex) {
echo $ex->getMessage(), "\n";
}
try {
sodium_crypto_stream_xchacha20($len, $nonce, substr($key, 1));
} catch (SodiumException $ex) {
echo $ex->getMessage(), "\n";
}
try {
sodium_crypto_stream_xchacha20_xor($stream, substr($nonce, 1), $key);
} catch (SodiumException $ex) {
echo $ex->getMessage(), "\n";
}
try {
sodium_crypto_stream_xchacha20_xor($stream, $nonce, substr($key, 1));
} catch (SodiumException $ex) {
echo $ex->getMessage(), "\n";
}
?>
--EXPECT--
int(100)
bool(true)
bool(true)
bool(true)
bool(true)
bool(true)
bool(true)
bool(true)
bool(true)
sodium_crypto_stream_xchacha20(): Argument #1 ($length) must be greater than 0
sodium_crypto_stream_xchacha20(): Argument #2 ($nonce) must be SODIUM_CRYPTO_STREAM_XCHACHA20_NONCEBYTES bytes long
sodium_crypto_stream_xchacha20(): Argument #3 ($key) must be SODIUM_CRYPTO_STREAM_XCHACHA20_KEYBYTES bytes long
sodium_crypto_stream_xchacha20_xor(): Argument #2 ($nonce) must be SODIUM_CRYPTO_STREAM_XCHACHA20_NONCEBYTES bytes long
sodium_crypto_stream_xchacha20_xor(): Argument #3 ($key) must be SODIUM_CRYPTO_STREAM_XCHACHA20_KEYBYTES bytes long
Function Calls
defined | 1 |
Stats
MD5 | 4c7df63bcc9fb03c5a8fbade96590f6f |
Eval Count | 0 |
Decode Time | 115 ms |