Fix CryptoJS argument passing in DeriveEVPKey

CryptoJS treats strings as Utf8, so for binary strings, Latin1 needs to be used.
This commit is contained in:
zb3 2024-04-01 23:04:00 +02:00
parent 8a17abae45
commit ab47b3557f
1 changed files with 4 additions and 2 deletions

View File

@ -62,11 +62,13 @@ class DeriveEVPKey extends Operation {
* @returns {string}
*/
run(input, args) {
const passphrase = Utils.convertToByteString(args[0].string, args[0].option),
const passphrase = CryptoJS.enc.Latin1.parse(
Utils.convertToByteString(args[0].string, args[0].option)),
keySize = args[1] / 32,
iterations = args[2],
hasher = args[3],
salt = Utils.convertToByteString(args[4].string, args[4].option),
salt = CryptoJS.enc.Latin1.parse(
Utils.convertToByteString(args[4].string, args[4].option)),
key = CryptoJS.EvpKDF(passphrase, salt, { // lgtm [js/insufficient-password-hash]
keySize: keySize,
hasher: CryptoJS.algo[hasher],