|
php.net | support | documentation | report a bug | advanced search | search howto | statistics | random bug | login |
[2017-10-19 11:48 UTC] faxitnow at yahoo dot ca
Description:
------------
Using $encrypted = openssl_encrypt($dataEncrypt, "AES-256-XTS", $key, 0, $iv);
Does not throw a warning for a nonexistant cipher method. However, when replacing the "S" with a "C" for example such as "AES-256-XTC" or any letter from the alphabet other than "S" (A to Z except S) does throw a warning such as:
Warning: openssl_encrypt(): Unknown cipher algorithm in path/to/file.php on line X
Test script:
---------------
$key = hash_hmac("sha512", "You can decrypt this all day long, won't get you closer to the truth", "myKey");
$iv = openssl_random_pseudo_bytes(16);
$adminVal = filter_var($userData['is_admin'], FILTER_VALIDATE_BOOLEAN);
$userName = $userData["name"];
$dataEncrypt = $adminVal.$userName;
$encrypted = openssl_encrypt($dataEncrypt, "AES-256-XTS", $key, 0, $iv);
As per a question posted on Stack Overflow at the following URL:
https://stackoverflow.com/q/46821439/
Expected result:
----------------
The expected result should have thrown a warning such as:
Warning: openssl_encrypt(): Unknown cipher algorithm in path/to/file.php on line X
Actual result:
--------------
No warning thrown, just an empty result.
string(0) "" when using var_dump($encrypted); from the test script included.
PatchesPull RequestsHistoryAllCommentsChangesGit/SVN commits
|
|||||||||||||||||||||||||||
Copyright © 2001-2025 The PHP GroupAll rights reserved. |
Last updated: Mon Oct 27 08:00:01 2025 UTC |
[harry@rh:~]$ php -r "print_r(openssl_get_cipher_methods());" | grep -i xts [10] => AES-128-XTS [29] => AES-256-XTS [111] => aes-128-xts [134] => aes-256-xts "the manual on the cipher methods http://php.net/manual/en/function.openssl-get-cipher-methods.php does not show any instances of XTS anywhere" don't matter because it may also depend on openssl - that's why openssl_get_cipher_methods() at all hence your "PHP Version: Irrelevant" is nonsense