Annotate

spec/util_hashes_spec.lua @ 12836:dbe9781fd278

util.hashes: Add HKDF-HMAC-SHA256/HKDF-HMAC-SHA384 These are needed for PASETO v3.local.
author Matthew Wild <mwild1@gmail.com>
date Fri, 13 Jan 2023 14:29:08 +0000
parent 12564:36e769c64054
child 12841:8b06d7c73090
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
9964
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
10747
63a89b876407 util.hashes: Use generic name of PBKDF2-HMAC-SHA1 function in tests
Kim Alvefur <zash@zash.se>
parents: 9970
diff changeset
7 describe("PBKDF2-HMAC-SHA1", function ()
9964
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";
12355
a0ff5c438e9d util.hex: Deprecate to/from in favour of encode/decode, for consistency!
Matthew Wild <mwild1@gmail.com>
parents: 10748
diff changeset
13 assert.equal(DK, hex.encode(hashes.pbkdf2_hmac_sha1(P, S, c)));
9964
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";
12355
a0ff5c438e9d util.hex: Deprecate to/from in favour of encode/decode, for consistency!
Matthew Wild <mwild1@gmail.com>
parents: 10748
diff changeset
20 assert.equal(DK, hex.encode(hashes.pbkdf2_hmac_sha1(P, S, c)));
9964
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";
12355
a0ff5c438e9d util.hex: Deprecate to/from in favour of encode/decode, for consistency!
Matthew Wild <mwild1@gmail.com>
parents: 10748
diff changeset
27 assert.equal(DK, hex.encode(hashes.pbkdf2_hmac_sha1(P, S, c)));
9964
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";
12355
a0ff5c438e9d util.hex: Deprecate to/from in favour of encode/decode, for consistency!
Matthew Wild <mwild1@gmail.com>
parents: 10748
diff changeset
34 assert.equal(DK, hex.encode(hashes.pbkdf2_hmac_sha1(P, S, c)));
9964
f299d4917dd8 util.hashes: Add test vectors from RFC 6070 for PBKDF2 (aka SCRAM Hi())
Kim Alvefur <zash@zash.se>
parents:
diff changeset
35 end);
f299d4917dd8 util.hashes: Add test vectors from RFC 6070 for PBKDF2 (aka SCRAM Hi())
Kim Alvefur <zash@zash.se>
parents:
diff changeset
36 end);
f299d4917dd8 util.hashes: Add test vectors from RFC 6070 for PBKDF2 (aka SCRAM Hi())
Kim Alvefur <zash@zash.se>
parents:
diff changeset
37
10748
93293891709b util.hashes: Fix output length of PBKDF2-HMAC-SHA256
Kim Alvefur <zash@zash.se>
parents: 10747
diff changeset
38 describe("PBKDF2-HMAC-SHA256", function ()
93293891709b util.hashes: Fix output length of PBKDF2-HMAC-SHA256
Kim Alvefur <zash@zash.se>
parents: 10747
diff changeset
39 it("test vector 1", function ()
93293891709b util.hashes: Fix output length of PBKDF2-HMAC-SHA256
Kim Alvefur <zash@zash.se>
parents: 10747
diff changeset
40 local P = "password";
93293891709b util.hashes: Fix output length of PBKDF2-HMAC-SHA256
Kim Alvefur <zash@zash.se>
parents: 10747
diff changeset
41 local S = "salt";
93293891709b util.hashes: Fix output length of PBKDF2-HMAC-SHA256
Kim Alvefur <zash@zash.se>
parents: 10747
diff changeset
42 local c = 1
93293891709b util.hashes: Fix output length of PBKDF2-HMAC-SHA256
Kim Alvefur <zash@zash.se>
parents: 10747
diff changeset
43 local DK = "120fb6cffcf8b32c43e7225256c4f837a86548c92ccc35480805987cb70be17b";
12355
a0ff5c438e9d util.hex: Deprecate to/from in favour of encode/decode, for consistency!
Matthew Wild <mwild1@gmail.com>
parents: 10748
diff changeset
44 assert.equal(DK, hex.encode(hashes.pbkdf2_hmac_sha256(P, S, c)));
10748
93293891709b util.hashes: Fix output length of PBKDF2-HMAC-SHA256
Kim Alvefur <zash@zash.se>
parents: 10747
diff changeset
45 end);
93293891709b util.hashes: Fix output length of PBKDF2-HMAC-SHA256
Kim Alvefur <zash@zash.se>
parents: 10747
diff changeset
46 it("test vector 2", function ()
93293891709b util.hashes: Fix output length of PBKDF2-HMAC-SHA256
Kim Alvefur <zash@zash.se>
parents: 10747
diff changeset
47 local P = "password";
93293891709b util.hashes: Fix output length of PBKDF2-HMAC-SHA256
Kim Alvefur <zash@zash.se>
parents: 10747
diff changeset
48 local S = "salt";
93293891709b util.hashes: Fix output length of PBKDF2-HMAC-SHA256
Kim Alvefur <zash@zash.se>
parents: 10747
diff changeset
49 local c = 2
93293891709b util.hashes: Fix output length of PBKDF2-HMAC-SHA256
Kim Alvefur <zash@zash.se>
parents: 10747
diff changeset
50 local DK = "ae4d0c95af6b46d32d0adff928f06dd02a303f8ef3c251dfd6e2d85a95474c43";
12355
a0ff5c438e9d util.hex: Deprecate to/from in favour of encode/decode, for consistency!
Matthew Wild <mwild1@gmail.com>
parents: 10748
diff changeset
51 assert.equal(DK, hex.encode(hashes.pbkdf2_hmac_sha256(P, S, c)));
10748
93293891709b util.hashes: Fix output length of PBKDF2-HMAC-SHA256
Kim Alvefur <zash@zash.se>
parents: 10747
diff changeset
52 end);
93293891709b util.hashes: Fix output length of PBKDF2-HMAC-SHA256
Kim Alvefur <zash@zash.se>
parents: 10747
diff changeset
53 end);
93293891709b util.hashes: Fix output length of PBKDF2-HMAC-SHA256
Kim Alvefur <zash@zash.se>
parents: 10747
diff changeset
54
93293891709b util.hashes: Fix output length of PBKDF2-HMAC-SHA256
Kim Alvefur <zash@zash.se>
parents: 10747
diff changeset
55
12564
36e769c64054 util.hashes: Add SHA3 bindings
Kim Alvefur <zash@zash.se>
parents: 12355
diff changeset
56 describe("SHA-3", function ()
36e769c64054 util.hashes: Add SHA3 bindings
Kim Alvefur <zash@zash.se>
parents: 12355
diff changeset
57 describe("256", function ()
36e769c64054 util.hashes: Add SHA3 bindings
Kim Alvefur <zash@zash.se>
parents: 12355
diff changeset
58 it("works", function ()
36e769c64054 util.hashes: Add SHA3 bindings
Kim Alvefur <zash@zash.se>
parents: 12355
diff changeset
59 local expected = "a7ffc6f8bf1ed76651c14756a061d662f580ff4de43b49fa82d80a4b80f8434a"
36e769c64054 util.hashes: Add SHA3 bindings
Kim Alvefur <zash@zash.se>
parents: 12355
diff changeset
60 assert.equal(expected, hashes.sha3_256("", true));
36e769c64054 util.hashes: Add SHA3 bindings
Kim Alvefur <zash@zash.se>
parents: 12355
diff changeset
61 end);
36e769c64054 util.hashes: Add SHA3 bindings
Kim Alvefur <zash@zash.se>
parents: 12355
diff changeset
62 end);
36e769c64054 util.hashes: Add SHA3 bindings
Kim Alvefur <zash@zash.se>
parents: 12355
diff changeset
63 describe("512", function ()
36e769c64054 util.hashes: Add SHA3 bindings
Kim Alvefur <zash@zash.se>
parents: 12355
diff changeset
64 it("works", function ()
36e769c64054 util.hashes: Add SHA3 bindings
Kim Alvefur <zash@zash.se>
parents: 12355
diff changeset
65 local expected = "a69f73cca23a9ac5c8b567dc185a756e97c982164fe25859e0d1dcc1475c80a615b2123af1f5f94c11e3e9402c3ac558f500199d95b6d3e301758586281dcd26"
36e769c64054 util.hashes: Add SHA3 bindings
Kim Alvefur <zash@zash.se>
parents: 12355
diff changeset
66 assert.equal(expected, hashes.sha3_512("", true));
36e769c64054 util.hashes: Add SHA3 bindings
Kim Alvefur <zash@zash.se>
parents: 12355
diff changeset
67 end);
36e769c64054 util.hashes: Add SHA3 bindings
Kim Alvefur <zash@zash.se>
parents: 12355
diff changeset
68 end);
36e769c64054 util.hashes: Add SHA3 bindings
Kim Alvefur <zash@zash.se>
parents: 12355
diff changeset
69 end);
36e769c64054 util.hashes: Add SHA3 bindings
Kim Alvefur <zash@zash.se>
parents: 12355
diff changeset
70
12836
dbe9781fd278 util.hashes: Add HKDF-HMAC-SHA256/HKDF-HMAC-SHA384
Matthew Wild <mwild1@gmail.com>
parents: 12564
diff changeset
71 describe("HKDF", function ()
dbe9781fd278 util.hashes: Add HKDF-HMAC-SHA256/HKDF-HMAC-SHA384
Matthew Wild <mwild1@gmail.com>
parents: 12564
diff changeset
72 describe("HMAC-SHA256", function ()
dbe9781fd278 util.hashes: Add HKDF-HMAC-SHA256/HKDF-HMAC-SHA384
Matthew Wild <mwild1@gmail.com>
parents: 12564
diff changeset
73 describe("RFC 5869", function ()
dbe9781fd278 util.hashes: Add HKDF-HMAC-SHA256/HKDF-HMAC-SHA384
Matthew Wild <mwild1@gmail.com>
parents: 12564
diff changeset
74 it("test vector A.1", function ()
dbe9781fd278 util.hashes: Add HKDF-HMAC-SHA256/HKDF-HMAC-SHA384
Matthew Wild <mwild1@gmail.com>
parents: 12564
diff changeset
75 local ikm = hex.decode("0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b");
dbe9781fd278 util.hashes: Add HKDF-HMAC-SHA256/HKDF-HMAC-SHA384
Matthew Wild <mwild1@gmail.com>
parents: 12564
diff changeset
76 local salt = hex.decode("000102030405060708090a0b0c");
dbe9781fd278 util.hashes: Add HKDF-HMAC-SHA256/HKDF-HMAC-SHA384
Matthew Wild <mwild1@gmail.com>
parents: 12564
diff changeset
77 local info = hex.decode("f0f1f2f3f4f5f6f7f8f9");
dbe9781fd278 util.hashes: Add HKDF-HMAC-SHA256/HKDF-HMAC-SHA384
Matthew Wild <mwild1@gmail.com>
parents: 12564
diff changeset
78
dbe9781fd278 util.hashes: Add HKDF-HMAC-SHA256/HKDF-HMAC-SHA384
Matthew Wild <mwild1@gmail.com>
parents: 12564
diff changeset
79 local expected = "3cb25f25faacd57a90434f64d0362f2a2d2d0a90cf1a5a4c5db02d56ecc4c5bf34007208d5b887185865";
dbe9781fd278 util.hashes: Add HKDF-HMAC-SHA256/HKDF-HMAC-SHA384
Matthew Wild <mwild1@gmail.com>
parents: 12564
diff changeset
80
dbe9781fd278 util.hashes: Add HKDF-HMAC-SHA256/HKDF-HMAC-SHA384
Matthew Wild <mwild1@gmail.com>
parents: 12564
diff changeset
81 local ret = hashes.hkdf_hmac_sha256(42, ikm, salt, info);
dbe9781fd278 util.hashes: Add HKDF-HMAC-SHA256/HKDF-HMAC-SHA384
Matthew Wild <mwild1@gmail.com>
parents: 12564
diff changeset
82 assert.equal(expected, hex.encode(ret));
dbe9781fd278 util.hashes: Add HKDF-HMAC-SHA256/HKDF-HMAC-SHA384
Matthew Wild <mwild1@gmail.com>
parents: 12564
diff changeset
83 end);
dbe9781fd278 util.hashes: Add HKDF-HMAC-SHA256/HKDF-HMAC-SHA384
Matthew Wild <mwild1@gmail.com>
parents: 12564
diff changeset
84
dbe9781fd278 util.hashes: Add HKDF-HMAC-SHA256/HKDF-HMAC-SHA384
Matthew Wild <mwild1@gmail.com>
parents: 12564
diff changeset
85 it("test vector A.2", function ()
dbe9781fd278 util.hashes: Add HKDF-HMAC-SHA256/HKDF-HMAC-SHA384
Matthew Wild <mwild1@gmail.com>
parents: 12564
diff changeset
86 local ikm = hex.decode("000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f");
dbe9781fd278 util.hashes: Add HKDF-HMAC-SHA256/HKDF-HMAC-SHA384
Matthew Wild <mwild1@gmail.com>
parents: 12564
diff changeset
87 local salt = hex.decode("606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeaf");
dbe9781fd278 util.hashes: Add HKDF-HMAC-SHA256/HKDF-HMAC-SHA384
Matthew Wild <mwild1@gmail.com>
parents: 12564
diff changeset
88 local info = hex.decode("b0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedfe0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff");
dbe9781fd278 util.hashes: Add HKDF-HMAC-SHA256/HKDF-HMAC-SHA384
Matthew Wild <mwild1@gmail.com>
parents: 12564
diff changeset
89
dbe9781fd278 util.hashes: Add HKDF-HMAC-SHA256/HKDF-HMAC-SHA384
Matthew Wild <mwild1@gmail.com>
parents: 12564
diff changeset
90 local expected = "b11e398dc80327a1c8e7f78c596a49344f012eda2d4efad8a050cc4c19afa97c59045a99cac7827271cb41c65e590e09da3275600c2f09b8367793a9aca3db71cc30c58179ec3e87c14c01d5c1f3434f1d87";
dbe9781fd278 util.hashes: Add HKDF-HMAC-SHA256/HKDF-HMAC-SHA384
Matthew Wild <mwild1@gmail.com>
parents: 12564
diff changeset
91
dbe9781fd278 util.hashes: Add HKDF-HMAC-SHA256/HKDF-HMAC-SHA384
Matthew Wild <mwild1@gmail.com>
parents: 12564
diff changeset
92 local ret = hashes.hkdf_hmac_sha256(82, ikm, salt, info);
dbe9781fd278 util.hashes: Add HKDF-HMAC-SHA256/HKDF-HMAC-SHA384
Matthew Wild <mwild1@gmail.com>
parents: 12564
diff changeset
93 assert.equal(expected, hex.encode(ret));
dbe9781fd278 util.hashes: Add HKDF-HMAC-SHA256/HKDF-HMAC-SHA384
Matthew Wild <mwild1@gmail.com>
parents: 12564
diff changeset
94 end);
dbe9781fd278 util.hashes: Add HKDF-HMAC-SHA256/HKDF-HMAC-SHA384
Matthew Wild <mwild1@gmail.com>
parents: 12564
diff changeset
95
dbe9781fd278 util.hashes: Add HKDF-HMAC-SHA256/HKDF-HMAC-SHA384
Matthew Wild <mwild1@gmail.com>
parents: 12564
diff changeset
96 it("test vector A.3", function ()
dbe9781fd278 util.hashes: Add HKDF-HMAC-SHA256/HKDF-HMAC-SHA384
Matthew Wild <mwild1@gmail.com>
parents: 12564
diff changeset
97 local ikm = hex.decode("0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b");
dbe9781fd278 util.hashes: Add HKDF-HMAC-SHA256/HKDF-HMAC-SHA384
Matthew Wild <mwild1@gmail.com>
parents: 12564
diff changeset
98 local salt = "";
dbe9781fd278 util.hashes: Add HKDF-HMAC-SHA256/HKDF-HMAC-SHA384
Matthew Wild <mwild1@gmail.com>
parents: 12564
diff changeset
99 local info = "";
dbe9781fd278 util.hashes: Add HKDF-HMAC-SHA256/HKDF-HMAC-SHA384
Matthew Wild <mwild1@gmail.com>
parents: 12564
diff changeset
100
dbe9781fd278 util.hashes: Add HKDF-HMAC-SHA256/HKDF-HMAC-SHA384
Matthew Wild <mwild1@gmail.com>
parents: 12564
diff changeset
101 local expected = "8da4e775a563c18f715f802a063c5a31b8a11f5c5ee1879ec3454e5f3c738d2d9d201395faa4b61a96c8";
dbe9781fd278 util.hashes: Add HKDF-HMAC-SHA256/HKDF-HMAC-SHA384
Matthew Wild <mwild1@gmail.com>
parents: 12564
diff changeset
102
dbe9781fd278 util.hashes: Add HKDF-HMAC-SHA256/HKDF-HMAC-SHA384
Matthew Wild <mwild1@gmail.com>
parents: 12564
diff changeset
103 local ret = hashes.hkdf_hmac_sha256(42, ikm, salt, info);
dbe9781fd278 util.hashes: Add HKDF-HMAC-SHA256/HKDF-HMAC-SHA384
Matthew Wild <mwild1@gmail.com>
parents: 12564
diff changeset
104 assert.equal(expected, hex.encode(ret));
dbe9781fd278 util.hashes: Add HKDF-HMAC-SHA256/HKDF-HMAC-SHA384
Matthew Wild <mwild1@gmail.com>
parents: 12564
diff changeset
105 end);
dbe9781fd278 util.hashes: Add HKDF-HMAC-SHA256/HKDF-HMAC-SHA384
Matthew Wild <mwild1@gmail.com>
parents: 12564
diff changeset
106 end);
dbe9781fd278 util.hashes: Add HKDF-HMAC-SHA256/HKDF-HMAC-SHA384
Matthew Wild <mwild1@gmail.com>
parents: 12564
diff changeset
107 end);
dbe9781fd278 util.hashes: Add HKDF-HMAC-SHA256/HKDF-HMAC-SHA384
Matthew Wild <mwild1@gmail.com>
parents: 12564
diff changeset
108 end);