ops = php_hash_fetch_ops(algo, algo_len);
if (!ops) {
- php_error_docref(NULL, E_WARNING, "Unknown hashing algorithm: %s", algo);
- RETURN_FALSE;
+ zend_throw_error(NULL, "Unknown hashing algorithm: %s", algo);
+ return;
}
else if (!ops->is_crypto) {
- php_error_docref(NULL, E_WARNING, "Non-cryptographic hashing algorithm: %s", algo);
- RETURN_FALSE;
+ zend_throw_error(NULL, "Non-cryptographic hashing algorithm: %s", algo);
+ return;
}
if (isfilename) {
if (CHECK_NULL_PATH(data, data_len)) {
- php_error_docref(NULL, E_WARNING, "Invalid path");
- RETURN_FALSE;
+ zend_throw_error(NULL, "Invalid path");
+ return;
}
stream = php_stream_open_wrapper_ex(data, "rb", REPORT_ERRORS, NULL, FG(default_context));
if (!stream) {
$key = 'secret';
echo "\n-- Testing hash_hmac() function with invalid hash algorithm --\n";
-var_dump(hash_hmac('foo', $data, $key));
+try {
+ var_dump(hash_hmac('foo', $data, $key));
+}
+catch (\Error $e) {
+ echo $e->getMessage() . "\n";
+}
echo "\n-- Testing hash_hmac() function with non-cryptographic hash algorithm --\n";
-var_dump(hash_hmac('crc32', $data, $key));
+try {
+ var_dump(hash_hmac('crc32', $data, $key));
+}
+catch (\Error $e) {
+ echo $e->getMessage() . "\n";
+}
?>
===Done===
---EXPECTF--
+--EXPECT--
*** Testing hash_hmac() : error conditions ***
-- Testing hash_hmac() function with invalid hash algorithm --
-
-Warning: hash_hmac(): Unknown hashing algorithm: foo in %s on line %d
-bool(false)
+Unknown hashing algorithm: foo
-- Testing hash_hmac() function with non-cryptographic hash algorithm --
-
-Warning: hash_hmac(): Non-cryptographic hashing algorithm: crc32 in %s on line %d
-bool(false)
+Non-cryptographic hashing algorithm: crc32
===Done===
$key = 'secret';
echo "\n-- Testing hash_hmac_file() function with invalid hash algorithm --\n";
-hash_hmac_file('foo', $file, $key, TRUE);
+try {
+ var_dump(hash_hmac_file('foo', $file, $key, TRUE));
+}
+catch (\Error $e) {
+ echo $e->getMessage() . "\n";
+}
echo "\n-- Testing hash_hmac_file() function with non-cryptographic hash algorithm --\n";
-hash_hmac_file('crc32', $file, $key, TRUE);
+try {
+ var_dump(hash_hmac_file('crc32', $file, $key, TRUE));
+}
+catch (\Error $e) {
+ echo $e->getMessage() . "\n";
+}
echo "\n-- Testing hash_hmac_file() function with bad path --\n";
-hash_hmac_file('md5', $file.chr(0).$file, $key, TRUE);
+try {
+ var_dump(hash_hmac_file('md5', $file.chr(0).$file, $key, TRUE));
+}
+catch (\Error $e) {
+ echo $e->getMessage() . "\n";
+}
?>
===Done===
---EXPECTF--
+--EXPECT--
*** Testing hash() : error conditions ***
-- Testing hash_hmac_file() function with invalid hash algorithm --
-
-Warning: hash_hmac_file(): Unknown hashing algorithm: foo in %s on line %d
+Unknown hashing algorithm: foo
-- Testing hash_hmac_file() function with non-cryptographic hash algorithm --
-
-Warning: hash_hmac_file(): Non-cryptographic hashing algorithm: crc32 in %s on line %d
+Non-cryptographic hashing algorithm: crc32
-- Testing hash_hmac_file() function with bad path --
-
-Warning: hash_hmac_file(): Invalid path in %s on line %d
+Invalid path
===Done===