Software /
code /
prosody
Comparison
spec/util_hashes_spec.lua @ 10758:d0e6d5bc7ea2
Merge with upstream trunk
author | Matthew Wild <mwild1@gmail.com> |
---|---|
date | Thu, 23 Apr 2020 13:53:18 +0100 |
parent | 10748:93293891709b |
child | 12355:a0ff5c438e9d |
comparison
equal
deleted
inserted
replaced
10757:9dec7cddb40b | 10758:d0e6d5bc7ea2 |
---|---|
2 local hashes = require "util.hashes"; | 2 local hashes = require "util.hashes"; |
3 local hex = require "util.hex"; | 3 local hex = require "util.hex"; |
4 | 4 |
5 -- Also see spec for util.hmac where HMAC test cases reside | 5 -- Also see spec for util.hmac where HMAC test cases reside |
6 | 6 |
7 describe("PBKDF2-SHA1", function () | 7 describe("PBKDF2-HMAC-SHA1", function () |
8 it("test vector 1", function () | 8 it("test vector 1", function () |
9 local P = "password" | 9 local P = "password" |
10 local S = "salt" | 10 local S = "salt" |
11 local c = 1 | 11 local c = 1 |
12 local DK = "0c60c80f961f0e71f3a9b524af6012062fe037a6"; | 12 local DK = "0c60c80f961f0e71f3a9b524af6012062fe037a6"; |
13 assert.equal(DK, hex.to(hashes.scram_Hi_sha1(P, S, c))); | 13 assert.equal(DK, hex.to(hashes.pbkdf2_hmac_sha1(P, S, c))); |
14 end); | 14 end); |
15 it("test vector 2", function () | 15 it("test vector 2", function () |
16 local P = "password" | 16 local P = "password" |
17 local S = "salt" | 17 local S = "salt" |
18 local c = 2 | 18 local c = 2 |
19 local DK = "ea6c014dc72d6f8ccd1ed92ace1d41f0d8de8957"; | 19 local DK = "ea6c014dc72d6f8ccd1ed92ace1d41f0d8de8957"; |
20 assert.equal(DK, hex.to(hashes.scram_Hi_sha1(P, S, c))); | 20 assert.equal(DK, hex.to(hashes.pbkdf2_hmac_sha1(P, S, c))); |
21 end); | 21 end); |
22 it("test vector 3", function () | 22 it("test vector 3", function () |
23 local P = "password" | 23 local P = "password" |
24 local S = "salt" | 24 local S = "salt" |
25 local c = 4096 | 25 local c = 4096 |
26 local DK = "4b007901b765489abead49d926f721d065a429c1"; | 26 local DK = "4b007901b765489abead49d926f721d065a429c1"; |
27 assert.equal(DK, hex.to(hashes.scram_Hi_sha1(P, S, c))); | 27 assert.equal(DK, hex.to(hashes.pbkdf2_hmac_sha1(P, S, c))); |
28 end); | 28 end); |
29 it("test vector 4 #SLOW", function () | 29 it("test vector 4 #SLOW", function () |
30 local P = "password" | 30 local P = "password" |
31 local S = "salt" | 31 local S = "salt" |
32 local c = 16777216 | 32 local c = 16777216 |
33 local DK = "eefe3d61cd4da4e4e9945b3d6ba2158c2634e984"; | 33 local DK = "eefe3d61cd4da4e4e9945b3d6ba2158c2634e984"; |
34 assert.equal(DK, hex.to(hashes.scram_Hi_sha1(P, S, c))); | 34 assert.equal(DK, hex.to(hashes.pbkdf2_hmac_sha1(P, S, c))); |
35 end); | 35 end); |
36 end); | 36 end); |
37 | 37 |
38 describe("PBKDF2-HMAC-SHA256", function () | |
39 it("test vector 1", function () | |
40 local P = "password"; | |
41 local S = "salt"; | |
42 local c = 1 | |
43 local DK = "120fb6cffcf8b32c43e7225256c4f837a86548c92ccc35480805987cb70be17b"; | |
44 assert.equal(DK, hex.to(hashes.pbkdf2_hmac_sha256(P, S, c))); | |
45 end); | |
46 it("test vector 2", function () | |
47 local P = "password"; | |
48 local S = "salt"; | |
49 local c = 2 | |
50 local DK = "ae4d0c95af6b46d32d0adff928f06dd02a303f8ef3c251dfd6e2d85a95474c43"; | |
51 assert.equal(DK, hex.to(hashes.pbkdf2_hmac_sha256(P, S, c))); | |
52 end); | |
53 end); | |
54 | |
55 |