pwhash_scrypt.phpt 1.1 KB

123456789101112131415161718192021222324252627282930313233343536
  1. --TEST--
  2. Check for libsodium scrypt
  3. --EXTENSIONS--
  4. sodium
  5. --SKIPIF--
  6. <?php
  7. if (!defined('SODIUM_CRYPTO_PWHASH_SCRYPTSALSA208SHA256_SALTBYTES')) print "skip libsodium without scrypt"; ?>
  8. --FILE--
  9. <?php
  10. $passwd = 'test';
  11. $hash = sodium_crypto_pwhash_scryptsalsa208sha256_str
  12. ($passwd, SODIUM_CRYPTO_PWHASH_SCRYPTSALSA208SHA256_OPSLIMIT_INTERACTIVE,
  13. SODIUM_CRYPTO_PWHASH_SCRYPTSALSA208SHA256_MEMLIMIT_INTERACTIVE);
  14. var_dump(substr($hash, 0, 3) ===
  15. SODIUM_CRYPTO_PWHASH_SCRYPTSALSA208SHA256_STRPREFIX);
  16. $c = sodium_crypto_pwhash_scryptsalsa208sha256_str_verify($hash, $passwd);
  17. var_dump($c);
  18. $c = sodium_crypto_pwhash_scryptsalsa208sha256_str_verify($hash, 'passwd');
  19. var_dump($c);
  20. $salt = random_bytes(SODIUM_CRYPTO_PWHASH_SCRYPTSALSA208SHA256_SALTBYTES);
  21. $out_len = 100;
  22. $key = sodium_crypto_pwhash_scryptsalsa208sha256
  23. ($out_len, $passwd, $salt,
  24. SODIUM_CRYPTO_PWHASH_SCRYPTSALSA208SHA256_OPSLIMIT_INTERACTIVE,
  25. SODIUM_CRYPTO_PWHASH_SCRYPTSALSA208SHA256_MEMLIMIT_INTERACTIVE);
  26. var_dump(strlen($key) === $out_len);
  27. ?>
  28. --EXPECT--
  29. bool(true)
  30. bool(true)
  31. bool(false)
  32. bool(true)