Skip to content

Commit 884e1fe

Browse files
committed
Fix for long passwords over 64 bytes (#11, #17).
1 parent 8ed332c commit 884e1fe

File tree

2 files changed

+29
-1
lines changed

2 files changed

+29
-1
lines changed

scrypt.js

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -277,10 +277,12 @@
277277
if (!checkBufferish(password)) {
278278
throw new Error('password must be an array or buffer');
279279
}
280+
password = Array.prototype.slice.call(password);
280281

281282
if (!checkBufferish(salt)) {
282283
throw new Error('salt must be an array or buffer');
283284
}
285+
salt = Array.prototype.slice.call(salt);
284286

285287
var b = PBKDF2_HMAC_SHA256_OneIter(password, salt, p * 128 * r);
286288
var B = new Uint32Array(p * 32 * r)

test/test-vectors.json

Lines changed: 27 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,6 @@
3535
"dkLen": 64,
3636
"derivedKey": "2101cb9b6a511aaeaddbbe09cf70f881ec568d574a2ffd4dabe5ee9820adaa478e56fd8f4ba5d09ffa1c6d927c40f4c337304049e8a952fbcbf45c6fa77a41a4"
3737
},
38-
3938
{
4039
"password": "70617373776f7264",
4140
"salt": "7269636d6f6f",
@@ -44,6 +43,33 @@
4443
"r": "8",
4544
"dkLen": "32",
4645
"derivedKey": "e286ed0298808c0b4bb4272ce947091b0da06bb530c4cbab3923e44ff48bbc25"
46+
},
47+
{
48+
"password": "766572792d6c6f672d70617373776f72642d6f7665722d36342d62797465732d30313233343536373839303132333435363738393031323334353637383930313233343536373839303132333435363738393031323334353637383930313233",
49+
"salt": "536f6469756d43686c6f72696465",
50+
"N": "1048576",
51+
"p": "1",
52+
"r": "8",
53+
"dkLen": "64",
54+
"derivedKey": "4b6eab5164abdfc2966ad0954ae9352bac57cd953b791eeff455d3eed95802a31fd498b52da430e61ed2aaabd5bc8b1a8eeee66ed11c2bd609877be40210e9a0"
55+
},
56+
{
57+
"password": "706c656173656c65746d65696e",
58+
"salt": "766572792d6c6f6e672d70617373776f72642d6f7665722d36342d62797465732d30313233343536373839303132333435363738393031323334353637383930313233343536373839303132333435363738393031323334353637383930313233",
59+
"N": "1048576",
60+
"p": "1",
61+
"r": "8",
62+
"dkLen": "64",
63+
"derivedKey": "ec1d403e82c01254b9c5ba84ac06958b323ac9f52665024f1ea6ed1edf7aa639e698481e4ce4bf59f7abc3eb8c01de0ba094fe2490e3fae6d29f5c9e5f697868"
64+
},
65+
{
66+
"password": "766572792d6c6f672d70617373776f72642d6f7665722d36342d62797465732d30313233343536373839303132333435363738393031323334353637383930313233343536373839303132333435363738393031323334353637383930313233",
67+
"salt": "766572792d6c6f6e672d70617373776f72642d6f7665722d36342d62797465732d30313233343536373839303132333435363738393031323334353637383930313233343536373839303132333435363738393031323334353637383930313233",
68+
"N": "1048576",
69+
"p": "1",
70+
"r": "8",
71+
"dkLen": "64",
72+
"derivedKey": "bd2785eaf74e4e1883a3dd92336346d480200b7b6d0b7904369c607557aa2b14b4cdc90fc8b8f0d4906203a5bd6e064add86aac9ac2fc4777a5a683a0ed40ef9"
4773
}
4874

4975
]

0 commit comments

Comments
 (0)