@@ -765,14 +765,19 @@ CryptoJS.lib.Cipher || (function (undefined) {
765
765
* var derivedParams = CryptoJS.kdf.OpenSSL.execute('Password', 256/32, 128/32);
766
766
* var derivedParams = CryptoJS.kdf.OpenSSL.execute('Password', 256/32, 128/32, 'saltsalt');
767
767
*/
768
- execute : function ( password , keySize , ivSize , salt ) {
768
+ execute : function ( password , keySize , ivSize , salt , hasher ) {
769
769
// Generate random salt
770
770
if ( ! salt ) {
771
771
salt = WordArray . random ( 64 / 8 ) ;
772
772
}
773
773
774
774
// Derive key and IV
775
- var key = EvpKDF . create ( { keySize : keySize + ivSize } ) . compute ( password , salt ) ;
775
+ if ( ! hasher ) {
776
+ var key = EvpKDF . create ( { keySize : keySize + ivSize } ) . compute ( password , salt ) ;
777
+ } else {
778
+ var key = EvpKDF . create ( { keySize : keySize + ivSize , hasher : hasher } ) . compute ( password , salt ) ;
779
+ }
780
+
776
781
777
782
// Separate key and IV
778
783
var iv = WordArray . create ( key . words . slice ( keySize ) , ivSize * 4 ) ;
@@ -819,7 +824,7 @@ CryptoJS.lib.Cipher || (function (undefined) {
819
824
cfg = this . cfg . extend ( cfg ) ;
820
825
821
826
// Derive key and other params
822
- var derivedParams = cfg . kdf . execute ( password , cipher . keySize , cipher . ivSize , cfg . salt ) ;
827
+ var derivedParams = cfg . kdf . execute ( password , cipher . keySize , cipher . ivSize , cfg . salt , cfg . hasher ) ;
823
828
824
829
// Add IV to config
825
830
cfg . iv = derivedParams . iv ;
@@ -858,7 +863,7 @@ CryptoJS.lib.Cipher || (function (undefined) {
858
863
ciphertext = this . _parse ( ciphertext , cfg . format ) ;
859
864
860
865
// Derive key and other params
861
- var derivedParams = cfg . kdf . execute ( password , cipher . keySize , cipher . ivSize , ciphertext . salt ) ;
866
+ var derivedParams = cfg . kdf . execute ( password , cipher . keySize , cipher . ivSize , ciphertext . salt , cfg . hasher ) ;
862
867
863
868
// Add IV to config
864
869
cfg . iv = derivedParams . iv ;
0 commit comments