#if HAVE_ARGON2LIB
case 2: return &php_password_algo_argon2i;
case 3: return &php_password_algo_argon2id;
+#else
+ case 2:
+ {
+ zend_string *n = zend_string_init("argon2i", sizeof("argon2i")-1, 0);
+ const php_password_algo* ret = php_password_algo_find(n);
+ zend_string_release(n);
+ return ret;
+ }
+ case 3:
+ {
+ zend_string *n = zend_string_init("argon2id", sizeof("argon2id")-1, 0);
+ const php_password_algo* ret = php_password_algo_find(n);
+ zend_string_release(n);
+ return ret;
+ }
#endif
}
return NULL;
$hash = password_hash(
"php",
PASSWORD_ARGON2I,
- ['memory_cost' => 16384, 'time_cost' => 2, 'threads' => 4]
+ ['memory_cost' => 64 << 10, 'time_cost' => 4, 'threads' => 1]
);
var_dump(substr($hash, -1, 1) !== "\0");
?>
Warning: password_hash(): Time cost is outside of allowed time range in %s on line %d
NULL
-Warning: password_hash(): Invalid number of threads in %s on line %d
+Warning: password_hash(): %sthread%s
NULL
Warning: password_hash(): Memory cost is outside of allowed memory range in %s on line %d
Warning: password_hash(): Time cost is outside of allowed time range in %s on line %d
NULL
-Warning: password_hash(): Invalid number of threads in %s on line %d
+Warning: password_hash(): %sthread%s
NULL