55 lines
1.5 KiB
PHP
55 lines
1.5 KiB
PHP
--TEST--
|
|
Check for libsodium KDF
|
|
--SKIPIF--
|
|
<?php if (!extension_loaded("sodium")) print "skip"; ?>
|
|
--FILE--
|
|
<?php
|
|
$key = sodium_crypto_kdf_keygen();
|
|
try {
|
|
$subkey = sodium_crypto_kdf_derive_from_key(10, 0, "context!", $key);
|
|
} catch (SodiumException $ex) {
|
|
var_dump(true);
|
|
}
|
|
try {
|
|
$subkey = sodium_crypto_kdf_derive_from_key(100, 0, "context!", $key);
|
|
} catch (SodiumException $ex) {
|
|
var_dump(true);
|
|
}
|
|
try {
|
|
$subkey = sodium_crypto_kdf_derive_from_key(SODIUM_CRYPTO_KDF_BYTES_MAX, 0, "context", $key);
|
|
} catch (SodiumException $ex) {
|
|
var_dump(true);
|
|
}
|
|
try {
|
|
$subkey = sodium_crypto_kdf_derive_from_key(SODIUM_CRYPTO_KDF_BYTES_MAX, -1, "context!", $key);
|
|
} catch (SodiumException $ex) {
|
|
var_dump(true);
|
|
}
|
|
try {
|
|
$subkey = sodium_crypto_kdf_derive_from_key(SODIUM_CRYPTO_KDF_BYTES_MAX, 0, "context!", "short key");
|
|
} catch (SodiumException $ex) {
|
|
var_dump(true);
|
|
}
|
|
|
|
$subkey1 = sodium_crypto_kdf_derive_from_key(SODIUM_CRYPTO_KDF_BYTES_MIN, 0, "context!", $key);
|
|
$subkey2 = sodium_crypto_kdf_derive_from_key(SODIUM_CRYPTO_KDF_BYTES_MIN, 1, "context!", $key);
|
|
$subkey3 = sodium_crypto_kdf_derive_from_key(SODIUM_CRYPTO_KDF_BYTES_MIN, 2, "context2", $key);
|
|
$subkey4 = sodium_crypto_kdf_derive_from_key(SODIUM_CRYPTO_KDF_BYTES_MIN, 0, "context!", $key);
|
|
|
|
var_dump($subkey1 !== $subkey2);
|
|
var_dump($subkey1 !== $subkey3);
|
|
var_dump($subkey2 !== $subkey3);
|
|
var_dump($subkey1 === $subkey4);
|
|
|
|
?>
|
|
--EXPECT--
|
|
bool(true)
|
|
bool(true)
|
|
bool(true)
|
|
bool(true)
|
|
bool(true)
|
|
bool(true)
|
|
bool(true)
|
|
bool(true)
|
|
bool(true)
|