PBKDF2 with other hashing algorithms
GoogleCodeExporter opened this issue · comments
Google Code Exporter commented
What steps will reproduce the problem?
1. Create a new html5 page with the PBKDF2 example script from the documentation
2. Add the necessary scripts from the rollup folder (pbkdf2.js, all hmac-*.js)
3. Add 'hasher: CryptoJS.SHA256' (or any other SHA algorithm) in the
cfg-parameter of the PBKDF2 function.
4. The script will stop executing at the first for-loop in the compute function.
What is the expected output?
A key computed by the password based key derivation function with the SHA256
algorithm.
What do you see instead?
Nothing. Also, no error was thrown by the debugger.
What version of the product are you using? On what operating system?
CryptoJS v3.1.2 on Windows 8 with Firefox 19.0.2 and IE 10
Please provide any additional information below.
I am aware that the hasher-parameter is not documented in version 3.x, although
it was available in version 2.x. When looking at the source code, the hasher
parameter still seems to be present in version 3.x.
Original issue reported on code.google.com by hoeew...@gmail.com
on 25 Mar 2013 at 7:46
Google Code Exporter commented
In the PBKDF2 config, you'll need to pass CryptoJS.algo.SHA256 rather than
CryptoJS.SHA256. The former is the actual "class", while the latter is a
convenience/shortcut function. Admittedly the example doesn't make this clear.
I'll update that when I can. Also, in the next major revision, there will no
longer be a distinction between the class and the shortcut function.
Original comment by Jeff.Mott.OR
on 25 Mar 2013 at 8:26
Google Code Exporter commented
Original comment by Jeff.Mott.OR
on 26 Mar 2013 at 9:24
- Changed state: Invalid
Google Code Exporter commented
I have this issue when using the correct hasher parameter suggested above.
CryptoJS.PBKDF2(password, salt, { hasher:CryptoJS.algo.SHA256 });
Here is the chrome console error output:
Uncaught TypeError: Object [object Array] has no method 'clamp' pbkdf2.js:16
g.algo.HMAC.g.lib.Base.extend.init pbkdf2.js:16
c.hasOwnProperty.c.init aes.js:7
l.Base.create aes.js:7
j.PBKDF2.e.extend.compute pbkdf2.js:18
g.PBKDF2 pbkdf2.js:19
The same error also arises using CryptoJS.PBKDF2(password, salt, {
hasher:CryptoJS.algo.SHA1 }).
Original comment by KevinRausch
on 28 May 2013 at 12:56
Google Code Exporter commented
Where are the password and salt values coming from?
Original comment by Jeff.Mott.OR
on 28 May 2013 at 1:04
Google Code Exporter commented
The password and salt were wrong. I'm migrating from SJCL to CryptoJS and I was
stupidly using their string parser. Issue fixed. Thanks for your time.
Original comment by KevinRausch
on 28 May 2013 at 1:20