author | Kim Alvefur <zash@zash.se> |
Sat, 20 Apr 2019 15:11:04 +0200 | |
changeset 9973 | 61bc5c52c941 |
parent 9968 | f299d4917dd8 |
child 9974 | 4a43feb9ab15 |
permissions | -rw-r--r-- |
9968
f299d4917dd8
util.hashes: Add test vectors from RFC 6070 for PBKDF2 (aka SCRAM Hi())
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
1 |
-- Test vectors from RFC 6070 |
f299d4917dd8
util.hashes: Add test vectors from RFC 6070 for PBKDF2 (aka SCRAM Hi())
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
2 |
local hashes = require "util.hashes"; |
f299d4917dd8
util.hashes: Add test vectors from RFC 6070 for PBKDF2 (aka SCRAM Hi())
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
3 |
local hex = require "util.hex"; |
f299d4917dd8
util.hashes: Add test vectors from RFC 6070 for PBKDF2 (aka SCRAM Hi())
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
4 |
|
f299d4917dd8
util.hashes: Add test vectors from RFC 6070 for PBKDF2 (aka SCRAM Hi())
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
5 |
-- Also see spec for util.hmac where HMAC test cases reside |
f299d4917dd8
util.hashes: Add test vectors from RFC 6070 for PBKDF2 (aka SCRAM Hi())
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
6 |
|
f299d4917dd8
util.hashes: Add test vectors from RFC 6070 for PBKDF2 (aka SCRAM Hi())
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
7 |
describe("PBKDF2-SHA1", function () |
f299d4917dd8
util.hashes: Add test vectors from RFC 6070 for PBKDF2 (aka SCRAM Hi())
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
8 |
it("test vector 1", function () |
f299d4917dd8
util.hashes: Add test vectors from RFC 6070 for PBKDF2 (aka SCRAM Hi())
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
9 |
local P = "password" |
f299d4917dd8
util.hashes: Add test vectors from RFC 6070 for PBKDF2 (aka SCRAM Hi())
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
10 |
local S = "salt" |
f299d4917dd8
util.hashes: Add test vectors from RFC 6070 for PBKDF2 (aka SCRAM Hi())
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
11 |
local c = 1 |
f299d4917dd8
util.hashes: Add test vectors from RFC 6070 for PBKDF2 (aka SCRAM Hi())
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
12 |
local DK = "0c60c80f961f0e71f3a9b524af6012062fe037a6"; |
f299d4917dd8
util.hashes: Add test vectors from RFC 6070 for PBKDF2 (aka SCRAM Hi())
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
13 |
assert.equal(DK, hex.to(hashes.scram_Hi_sha1(P, S, c))); |
f299d4917dd8
util.hashes: Add test vectors from RFC 6070 for PBKDF2 (aka SCRAM Hi())
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
14 |
end); |
f299d4917dd8
util.hashes: Add test vectors from RFC 6070 for PBKDF2 (aka SCRAM Hi())
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
15 |
it("test vector 2", function () |
f299d4917dd8
util.hashes: Add test vectors from RFC 6070 for PBKDF2 (aka SCRAM Hi())
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
16 |
local P = "password" |
f299d4917dd8
util.hashes: Add test vectors from RFC 6070 for PBKDF2 (aka SCRAM Hi())
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
17 |
local S = "salt" |
f299d4917dd8
util.hashes: Add test vectors from RFC 6070 for PBKDF2 (aka SCRAM Hi())
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
18 |
local c = 2 |
f299d4917dd8
util.hashes: Add test vectors from RFC 6070 for PBKDF2 (aka SCRAM Hi())
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
19 |
local DK = "ea6c014dc72d6f8ccd1ed92ace1d41f0d8de8957"; |
f299d4917dd8
util.hashes: Add test vectors from RFC 6070 for PBKDF2 (aka SCRAM Hi())
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
20 |
assert.equal(DK, hex.to(hashes.scram_Hi_sha1(P, S, c))); |
f299d4917dd8
util.hashes: Add test vectors from RFC 6070 for PBKDF2 (aka SCRAM Hi())
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
21 |
end); |
f299d4917dd8
util.hashes: Add test vectors from RFC 6070 for PBKDF2 (aka SCRAM Hi())
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
22 |
it("test vector 3", function () |
f299d4917dd8
util.hashes: Add test vectors from RFC 6070 for PBKDF2 (aka SCRAM Hi())
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
23 |
local P = "password" |
f299d4917dd8
util.hashes: Add test vectors from RFC 6070 for PBKDF2 (aka SCRAM Hi())
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
24 |
local S = "salt" |
f299d4917dd8
util.hashes: Add test vectors from RFC 6070 for PBKDF2 (aka SCRAM Hi())
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
25 |
local c = 4096 |
f299d4917dd8
util.hashes: Add test vectors from RFC 6070 for PBKDF2 (aka SCRAM Hi())
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
26 |
local DK = "4b007901b765489abead49d926f721d065a429c1"; |
f299d4917dd8
util.hashes: Add test vectors from RFC 6070 for PBKDF2 (aka SCRAM Hi())
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
27 |
assert.equal(DK, hex.to(hashes.scram_Hi_sha1(P, S, c))); |
f299d4917dd8
util.hashes: Add test vectors from RFC 6070 for PBKDF2 (aka SCRAM Hi())
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
28 |
end); |
f299d4917dd8
util.hashes: Add test vectors from RFC 6070 for PBKDF2 (aka SCRAM Hi())
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
29 |
it("test vector 4 #SLOW", function () |
f299d4917dd8
util.hashes: Add test vectors from RFC 6070 for PBKDF2 (aka SCRAM Hi())
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
30 |
local P = "password" |
f299d4917dd8
util.hashes: Add test vectors from RFC 6070 for PBKDF2 (aka SCRAM Hi())
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
31 |
local S = "salt" |
f299d4917dd8
util.hashes: Add test vectors from RFC 6070 for PBKDF2 (aka SCRAM Hi())
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
32 |
local c = 16777216 |
f299d4917dd8
util.hashes: Add test vectors from RFC 6070 for PBKDF2 (aka SCRAM Hi())
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
33 |
local DK = "eefe3d61cd4da4e4e9945b3d6ba2158c2634e984"; |
f299d4917dd8
util.hashes: Add test vectors from RFC 6070 for PBKDF2 (aka SCRAM Hi())
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
34 |
assert.equal(DK, hex.to(hashes.scram_Hi_sha1(P, S, c))); |
f299d4917dd8
util.hashes: Add test vectors from RFC 6070 for PBKDF2 (aka SCRAM Hi())
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
35 |
end); |
9973
61bc5c52c941
util.hashes: Allow specifying output key length
Kim Alvefur <zash@zash.se>
parents:
9968
diff
changeset
|
36 |
it("test vector 5", function () |
61bc5c52c941
util.hashes: Allow specifying output key length
Kim Alvefur <zash@zash.se>
parents:
9968
diff
changeset
|
37 |
local P = "passwordPASSWORDpassword" |
61bc5c52c941
util.hashes: Allow specifying output key length
Kim Alvefur <zash@zash.se>
parents:
9968
diff
changeset
|
38 |
local S = "saltSALTsaltSALTsaltSALTsaltSALTsalt" |
61bc5c52c941
util.hashes: Allow specifying output key length
Kim Alvefur <zash@zash.se>
parents:
9968
diff
changeset
|
39 |
local c = 4096 |
61bc5c52c941
util.hashes: Allow specifying output key length
Kim Alvefur <zash@zash.se>
parents:
9968
diff
changeset
|
40 |
local dkLen = 25 |
61bc5c52c941
util.hashes: Allow specifying output key length
Kim Alvefur <zash@zash.se>
parents:
9968
diff
changeset
|
41 |
local DK = "3d2eec4fe41c849b80c8d83662c0e44a8b291a964cf2f07038" |
61bc5c52c941
util.hashes: Allow specifying output key length
Kim Alvefur <zash@zash.se>
parents:
9968
diff
changeset
|
42 |
assert.equal(DK, hex.to(hashes.scram_Hi_sha1(P, S, c, dkLen))); |
61bc5c52c941
util.hashes: Allow specifying output key length
Kim Alvefur <zash@zash.se>
parents:
9968
diff
changeset
|
43 |
end); |
61bc5c52c941
util.hashes: Allow specifying output key length
Kim Alvefur <zash@zash.se>
parents:
9968
diff
changeset
|
44 |
it("works", function () |
61bc5c52c941
util.hashes: Allow specifying output key length
Kim Alvefur <zash@zash.se>
parents:
9968
diff
changeset
|
45 |
local P = "pass\0word" |
61bc5c52c941
util.hashes: Allow specifying output key length
Kim Alvefur <zash@zash.se>
parents:
9968
diff
changeset
|
46 |
local S = "sa\0lt" |
61bc5c52c941
util.hashes: Allow specifying output key length
Kim Alvefur <zash@zash.se>
parents:
9968
diff
changeset
|
47 |
local c = 4096 |
61bc5c52c941
util.hashes: Allow specifying output key length
Kim Alvefur <zash@zash.se>
parents:
9968
diff
changeset
|
48 |
local dkLen = 16 |
61bc5c52c941
util.hashes: Allow specifying output key length
Kim Alvefur <zash@zash.se>
parents:
9968
diff
changeset
|
49 |
local DK = "56fa6aa75548099dcc37d7f03425e0c3" |
61bc5c52c941
util.hashes: Allow specifying output key length
Kim Alvefur <zash@zash.se>
parents:
9968
diff
changeset
|
50 |
assert.equal(DK, hex.to(hashes.scram_Hi_sha1(P, S, c, dkLen))); |
61bc5c52c941
util.hashes: Allow specifying output key length
Kim Alvefur <zash@zash.se>
parents:
9968
diff
changeset
|
51 |
end); |
9968
f299d4917dd8
util.hashes: Add test vectors from RFC 6070 for PBKDF2 (aka SCRAM Hi())
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
52 |
end); |
f299d4917dd8
util.hashes: Add test vectors from RFC 6070 for PBKDF2 (aka SCRAM Hi())
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
53 |