Mercurial > prosody-hg
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 |
| parents | 93293891709b |
| children | 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 |
