crypto_kdf.phpt 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. --TEST--
  2. Check for libsodium KDF
  3. --EXTENSIONS--
  4. sodium
  5. --FILE--
  6. <?php
  7. $key = sodium_crypto_kdf_keygen();
  8. try {
  9. $subkey = sodium_crypto_kdf_derive_from_key(10, 0, "context!", $key);
  10. } catch (SodiumException $ex) {
  11. var_dump(true);
  12. }
  13. try {
  14. $subkey = sodium_crypto_kdf_derive_from_key(100, 0, "context!", $key);
  15. } catch (SodiumException $ex) {
  16. var_dump(true);
  17. }
  18. try {
  19. $subkey = sodium_crypto_kdf_derive_from_key(SODIUM_CRYPTO_KDF_BYTES_MAX, 0, "context", $key);
  20. } catch (SodiumException $ex) {
  21. var_dump(true);
  22. }
  23. try {
  24. $subkey = sodium_crypto_kdf_derive_from_key(SODIUM_CRYPTO_KDF_BYTES_MAX, -1, "context!", $key);
  25. } catch (SodiumException $ex) {
  26. var_dump(true);
  27. }
  28. try {
  29. $subkey = sodium_crypto_kdf_derive_from_key(SODIUM_CRYPTO_KDF_BYTES_MAX, 0, "context!", "short key");
  30. } catch (SodiumException $ex) {
  31. var_dump(true);
  32. }
  33. $subkey1 = sodium_crypto_kdf_derive_from_key(SODIUM_CRYPTO_KDF_BYTES_MIN, 0, "context!", $key);
  34. $subkey2 = sodium_crypto_kdf_derive_from_key(SODIUM_CRYPTO_KDF_BYTES_MIN, 1, "context!", $key);
  35. $subkey3 = sodium_crypto_kdf_derive_from_key(SODIUM_CRYPTO_KDF_BYTES_MIN, 2, "context2", $key);
  36. $subkey4 = sodium_crypto_kdf_derive_from_key(SODIUM_CRYPTO_KDF_BYTES_MIN, 0, "context!", $key);
  37. var_dump($subkey1 !== $subkey2);
  38. var_dump($subkey1 !== $subkey3);
  39. var_dump($subkey2 !== $subkey3);
  40. var_dump($subkey1 === $subkey4);
  41. ?>
  42. --EXPECT--
  43. bool(true)
  44. bool(true)
  45. bool(true)
  46. bool(true)
  47. bool(true)
  48. bool(true)
  49. bool(true)
  50. bool(true)
  51. bool(true)