annotate spec/util_tlsref_spec.lua @ 14229:ce31fdde0ad1 default tip

net.unbound: Simplify conditional
author Kim Alvefur <zash@zash.se>
date Sat, 13 Jun 2026 11:35:18 +0200
parents 926f25af2ffe
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
14218
926f25af2ffe util.tlsref: New util library to encapsulate the Mozilla/TLSRef recommendations
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1 local tlsref = require "prosody.util.tlsref";
926f25af2ffe util.tlsref: New util library to encapsulate the Mozilla/TLSRef recommendations
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2
926f25af2ffe util.tlsref: New util library to encapsulate the Mozilla/TLSRef recommendations
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
3 describe("util.tlsref", function()
926f25af2ffe util.tlsref: New util library to encapsulate the Mozilla/TLSRef recommendations
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
4 local version_compare = require "prosody.util.human.io".simple_version_compare;
926f25af2ffe util.tlsref: New util library to encapsulate the Mozilla/TLSRef recommendations
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
5
926f25af2ffe util.tlsref: New util library to encapsulate the Mozilla/TLSRef recommendations
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
6 describe("default version", function()
926f25af2ffe util.tlsref: New util library to encapsulate the Mozilla/TLSRef recommendations
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
7 it("is not greater than latest version", function ()
926f25af2ffe util.tlsref: New util library to encapsulate the Mozilla/TLSRef recommendations
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
8 local default_version = tlsref.get_default_version();
926f25af2ffe util.tlsref: New util library to encapsulate the Mozilla/TLSRef recommendations
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
9 local latest_version = tlsref.get_latest_version();
926f25af2ffe util.tlsref: New util library to encapsulate the Mozilla/TLSRef recommendations
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
10 assert.equal(false, version_compare(latest_version, default_version));
926f25af2ffe util.tlsref: New util library to encapsulate the Mozilla/TLSRef recommendations
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
11 end);
926f25af2ffe util.tlsref: New util library to encapsulate the Mozilla/TLSRef recommendations
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
12
926f25af2ffe util.tlsref: New util library to encapsulate the Mozilla/TLSRef recommendations
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
13 it("is a known version", function ()
926f25af2ffe util.tlsref: New util library to encapsulate the Mozilla/TLSRef recommendations
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
14 assert.is_table(tlsref.get_profile(tlsref.get_default_version()));
926f25af2ffe util.tlsref: New util library to encapsulate the Mozilla/TLSRef recommendations
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
15 end);
926f25af2ffe util.tlsref: New util library to encapsulate the Mozilla/TLSRef recommendations
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
16 end);
926f25af2ffe util.tlsref: New util library to encapsulate the Mozilla/TLSRef recommendations
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
17
926f25af2ffe util.tlsref: New util library to encapsulate the Mozilla/TLSRef recommendations
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
18 describe("latest version", function ()
926f25af2ffe util.tlsref: New util library to encapsulate the Mozilla/TLSRef recommendations
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
19 it("is a known version", function ()
926f25af2ffe util.tlsref: New util library to encapsulate the Mozilla/TLSRef recommendations
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
20 assert.is_table(tlsref.get_profile("latest"));
926f25af2ffe util.tlsref: New util library to encapsulate the Mozilla/TLSRef recommendations
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
21 end);
926f25af2ffe util.tlsref: New util library to encapsulate the Mozilla/TLSRef recommendations
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
22
926f25af2ffe util.tlsref: New util library to encapsulate the Mozilla/TLSRef recommendations
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
23 it("is the first entry of get_valid_versions()", function ()
926f25af2ffe util.tlsref: New util library to encapsulate the Mozilla/TLSRef recommendations
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
24 local versions = tlsref.get_valid_versions();
926f25af2ffe util.tlsref: New util library to encapsulate the Mozilla/TLSRef recommendations
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
25 assert.equal(tlsref.get_latest_version(), versions[1]);
926f25af2ffe util.tlsref: New util library to encapsulate the Mozilla/TLSRef recommendations
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
26 end);
926f25af2ffe util.tlsref: New util library to encapsulate the Mozilla/TLSRef recommendations
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
27 end);
926f25af2ffe util.tlsref: New util library to encapsulate the Mozilla/TLSRef recommendations
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
28
926f25af2ffe util.tlsref: New util library to encapsulate the Mozilla/TLSRef recommendations
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
29 describe("get_valid_versions()", function ()
926f25af2ffe util.tlsref: New util library to encapsulate the Mozilla/TLSRef recommendations
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
30 it("returns versions in descending order", function ()
926f25af2ffe util.tlsref: New util library to encapsulate the Mozilla/TLSRef recommendations
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
31 local versions = tlsref.get_valid_versions();
926f25af2ffe util.tlsref: New util library to encapsulate the Mozilla/TLSRef recommendations
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
32 assert.is_true(#versions >= 1);
926f25af2ffe util.tlsref: New util library to encapsulate the Mozilla/TLSRef recommendations
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
33 for i = 1, #versions-1 do
926f25af2ffe util.tlsref: New util library to encapsulate the Mozilla/TLSRef recommendations
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
34 -- versions[i] must sort before versions[i+1]
926f25af2ffe util.tlsref: New util library to encapsulate the Mozilla/TLSRef recommendations
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
35 assert.equal(false, version_compare(versions[i], versions[i+1]));
926f25af2ffe util.tlsref: New util library to encapsulate the Mozilla/TLSRef recommendations
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
36 end
926f25af2ffe util.tlsref: New util library to encapsulate the Mozilla/TLSRef recommendations
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
37 end);
926f25af2ffe util.tlsref: New util library to encapsulate the Mozilla/TLSRef recommendations
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
38
926f25af2ffe util.tlsref: New util library to encapsulate the Mozilla/TLSRef recommendations
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
39 it("contains the default version", function ()
926f25af2ffe util.tlsref: New util library to encapsulate the Mozilla/TLSRef recommendations
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
40 local found = false;
926f25af2ffe util.tlsref: New util library to encapsulate the Mozilla/TLSRef recommendations
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
41 for _, v in ipairs(tlsref.get_valid_versions()) do
926f25af2ffe util.tlsref: New util library to encapsulate the Mozilla/TLSRef recommendations
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
42 if v == tlsref.get_default_version() then found = true; end
926f25af2ffe util.tlsref: New util library to encapsulate the Mozilla/TLSRef recommendations
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
43 end
926f25af2ffe util.tlsref: New util library to encapsulate the Mozilla/TLSRef recommendations
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
44 assert.is_true(found);
926f25af2ffe util.tlsref: New util library to encapsulate the Mozilla/TLSRef recommendations
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
45 end);
926f25af2ffe util.tlsref: New util library to encapsulate the Mozilla/TLSRef recommendations
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
46 end);
926f25af2ffe util.tlsref: New util library to encapsulate the Mozilla/TLSRef recommendations
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
47
926f25af2ffe util.tlsref: New util library to encapsulate the Mozilla/TLSRef recommendations
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
48 describe("get_valid_profile_names()", function ()
926f25af2ffe util.tlsref: New util library to encapsulate the Mozilla/TLSRef recommendations
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
49 it("returns an error for unknown versions", function ()
926f25af2ffe util.tlsref: New util library to encapsulate the Mozilla/TLSRef recommendations
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
50 local names, err = tlsref.get_valid_profile_names("0.0");
926f25af2ffe util.tlsref: New util library to encapsulate the Mozilla/TLSRef recommendations
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
51 assert.is_nil(names);
926f25af2ffe util.tlsref: New util library to encapsulate the Mozilla/TLSRef recommendations
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
52 assert.equal("unknown-version", err);
926f25af2ffe util.tlsref: New util library to encapsulate the Mozilla/TLSRef recommendations
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
53 end);
926f25af2ffe util.tlsref: New util library to encapsulate the Mozilla/TLSRef recommendations
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
54
926f25af2ffe util.tlsref: New util library to encapsulate the Mozilla/TLSRef recommendations
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
55 it("uses the default version when none is given", function ()
926f25af2ffe util.tlsref: New util library to encapsulate the Mozilla/TLSRef recommendations
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
56 assert.same(
926f25af2ffe util.tlsref: New util library to encapsulate the Mozilla/TLSRef recommendations
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
57 tlsref.get_valid_profile_names(tlsref.get_default_version()),
926f25af2ffe util.tlsref: New util library to encapsulate the Mozilla/TLSRef recommendations
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
58 tlsref.get_valid_profile_names()
926f25af2ffe util.tlsref: New util library to encapsulate the Mozilla/TLSRef recommendations
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
59 );
926f25af2ffe util.tlsref: New util library to encapsulate the Mozilla/TLSRef recommendations
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
60 end);
926f25af2ffe util.tlsref: New util library to encapsulate the Mozilla/TLSRef recommendations
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
61
926f25af2ffe util.tlsref: New util library to encapsulate the Mozilla/TLSRef recommendations
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
62 it("accepts 'latest' as a version", function ()
926f25af2ffe util.tlsref: New util library to encapsulate the Mozilla/TLSRef recommendations
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
63 assert.same(
926f25af2ffe util.tlsref: New util library to encapsulate the Mozilla/TLSRef recommendations
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
64 tlsref.get_valid_profile_names(tlsref.get_latest_version()),
926f25af2ffe util.tlsref: New util library to encapsulate the Mozilla/TLSRef recommendations
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
65 tlsref.get_valid_profile_names("latest")
926f25af2ffe util.tlsref: New util library to encapsulate the Mozilla/TLSRef recommendations
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
66 );
926f25af2ffe util.tlsref: New util library to encapsulate the Mozilla/TLSRef recommendations
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
67 end);
926f25af2ffe util.tlsref: New util library to encapsulate the Mozilla/TLSRef recommendations
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
68
926f25af2ffe util.tlsref: New util library to encapsulate the Mozilla/TLSRef recommendations
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
69 it("lists the most-preferred profile first", function ()
926f25af2ffe util.tlsref: New util library to encapsulate the Mozilla/TLSRef recommendations
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
70 for _, version in ipairs(tlsref.get_valid_versions()) do
926f25af2ffe util.tlsref: New util library to encapsulate the Mozilla/TLSRef recommendations
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
71 local names = tlsref.get_valid_profile_names(version);
926f25af2ffe util.tlsref: New util library to encapsulate the Mozilla/TLSRef recommendations
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
72 assert.equal("modern", names[1],
926f25af2ffe util.tlsref: New util library to encapsulate the Mozilla/TLSRef recommendations
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
73 ("most-preferred profile should be first for version %s"):format(version));
926f25af2ffe util.tlsref: New util library to encapsulate the Mozilla/TLSRef recommendations
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
74 end
926f25af2ffe util.tlsref: New util library to encapsulate the Mozilla/TLSRef recommendations
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
75 end);
926f25af2ffe util.tlsref: New util library to encapsulate the Mozilla/TLSRef recommendations
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
76 end);
926f25af2ffe util.tlsref: New util library to encapsulate the Mozilla/TLSRef recommendations
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
77
926f25af2ffe util.tlsref: New util library to encapsulate the Mozilla/TLSRef recommendations
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
78 describe("get_profile()", function ()
926f25af2ffe util.tlsref: New util library to encapsulate the Mozilla/TLSRef recommendations
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
79 it("returns the default profile of the default version when called with no arguments", function ()
926f25af2ffe util.tlsref: New util library to encapsulate the Mozilla/TLSRef recommendations
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
80 assert.equal(
926f25af2ffe util.tlsref: New util library to encapsulate the Mozilla/TLSRef recommendations
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
81 tlsref.get_profile(tlsref.get_default_version(), tlsref.get_default_profile_name()),
926f25af2ffe util.tlsref: New util library to encapsulate the Mozilla/TLSRef recommendations
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
82 tlsref.get_profile()
926f25af2ffe util.tlsref: New util library to encapsulate the Mozilla/TLSRef recommendations
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
83 );
926f25af2ffe util.tlsref: New util library to encapsulate the Mozilla/TLSRef recommendations
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
84 end);
926f25af2ffe util.tlsref: New util library to encapsulate the Mozilla/TLSRef recommendations
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
85
926f25af2ffe util.tlsref: New util library to encapsulate the Mozilla/TLSRef recommendations
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
86 it("resolves 'latest' to the latest version", function ()
926f25af2ffe util.tlsref: New util library to encapsulate the Mozilla/TLSRef recommendations
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
87 assert.equal(
926f25af2ffe util.tlsref: New util library to encapsulate the Mozilla/TLSRef recommendations
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
88 tlsref.get_profile(tlsref.get_latest_version()),
926f25af2ffe util.tlsref: New util library to encapsulate the Mozilla/TLSRef recommendations
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
89 tlsref.get_profile("latest")
926f25af2ffe util.tlsref: New util library to encapsulate the Mozilla/TLSRef recommendations
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
90 );
926f25af2ffe util.tlsref: New util library to encapsulate the Mozilla/TLSRef recommendations
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
91 end);
926f25af2ffe util.tlsref: New util library to encapsulate the Mozilla/TLSRef recommendations
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
92
926f25af2ffe util.tlsref: New util library to encapsulate the Mozilla/TLSRef recommendations
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
93 it("returns an error for unknown versions", function ()
926f25af2ffe util.tlsref: New util library to encapsulate the Mozilla/TLSRef recommendations
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
94 local profile, err = tlsref.get_profile("0.0");
926f25af2ffe util.tlsref: New util library to encapsulate the Mozilla/TLSRef recommendations
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
95 assert.is_nil(profile);
926f25af2ffe util.tlsref: New util library to encapsulate the Mozilla/TLSRef recommendations
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
96 assert.equal("unknown-version", err);
926f25af2ffe util.tlsref: New util library to encapsulate the Mozilla/TLSRef recommendations
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
97 end);
926f25af2ffe util.tlsref: New util library to encapsulate the Mozilla/TLSRef recommendations
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
98
926f25af2ffe util.tlsref: New util library to encapsulate the Mozilla/TLSRef recommendations
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
99 it("returns an error for unknown profile names", function ()
926f25af2ffe util.tlsref: New util library to encapsulate the Mozilla/TLSRef recommendations
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
100 local profile, err = tlsref.get_profile(nil, "no-such-profile");
926f25af2ffe util.tlsref: New util library to encapsulate the Mozilla/TLSRef recommendations
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
101 assert.is_nil(profile);
926f25af2ffe util.tlsref: New util library to encapsulate the Mozilla/TLSRef recommendations
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
102 assert.equal("unknown-profile", err);
926f25af2ffe util.tlsref: New util library to encapsulate the Mozilla/TLSRef recommendations
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
103 end);
926f25af2ffe util.tlsref: New util library to encapsulate the Mozilla/TLSRef recommendations
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
104
926f25af2ffe util.tlsref: New util library to encapsulate the Mozilla/TLSRef recommendations
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
105 it("returns an error for profiles absent from a given version", function ()
926f25af2ffe util.tlsref: New util library to encapsulate the Mozilla/TLSRef recommendations
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
106 -- 'old' was dropped from the 6.0 guidelines
926f25af2ffe util.tlsref: New util library to encapsulate the Mozilla/TLSRef recommendations
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
107 local profile, err = tlsref.get_profile("6.0", "old");
926f25af2ffe util.tlsref: New util library to encapsulate the Mozilla/TLSRef recommendations
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
108 assert.is_nil(profile);
926f25af2ffe util.tlsref: New util library to encapsulate the Mozilla/TLSRef recommendations
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
109 assert.equal("unknown-profile", err);
926f25af2ffe util.tlsref: New util library to encapsulate the Mozilla/TLSRef recommendations
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
110 end);
926f25af2ffe util.tlsref: New util library to encapsulate the Mozilla/TLSRef recommendations
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
111
926f25af2ffe util.tlsref: New util library to encapsulate the Mozilla/TLSRef recommendations
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
112 it("resolves every advertised version/profile combination", function ()
926f25af2ffe util.tlsref: New util library to encapsulate the Mozilla/TLSRef recommendations
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
113 for _, version in ipairs(tlsref.get_valid_versions()) do
926f25af2ffe util.tlsref: New util library to encapsulate the Mozilla/TLSRef recommendations
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
114 for _, name in ipairs(tlsref.get_valid_profile_names(version)) do
926f25af2ffe util.tlsref: New util library to encapsulate the Mozilla/TLSRef recommendations
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
115 local profile, err = tlsref.get_profile(version, name);
926f25af2ffe util.tlsref: New util library to encapsulate the Mozilla/TLSRef recommendations
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
116 assert.is_table(profile,
926f25af2ffe util.tlsref: New util library to encapsulate the Mozilla/TLSRef recommendations
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
117 ("get_profile(%q, %q) failed: %s"):format(version, name, err));
926f25af2ffe util.tlsref: New util library to encapsulate the Mozilla/TLSRef recommendations
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
118 end
926f25af2ffe util.tlsref: New util library to encapsulate the Mozilla/TLSRef recommendations
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
119 end
926f25af2ffe util.tlsref: New util library to encapsulate the Mozilla/TLSRef recommendations
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
120 end);
926f25af2ffe util.tlsref: New util library to encapsulate the Mozilla/TLSRef recommendations
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
121 end);
926f25af2ffe util.tlsref: New util library to encapsulate the Mozilla/TLSRef recommendations
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
122
926f25af2ffe util.tlsref: New util library to encapsulate the Mozilla/TLSRef recommendations
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
123 describe("get_default_profile_name()", function ()
926f25af2ffe util.tlsref: New util library to encapsulate the Mozilla/TLSRef recommendations
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
124 it("returns an error for unknown versions", function ()
926f25af2ffe util.tlsref: New util library to encapsulate the Mozilla/TLSRef recommendations
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
125 local name, err = tlsref.get_default_profile_name("0.0");
926f25af2ffe util.tlsref: New util library to encapsulate the Mozilla/TLSRef recommendations
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
126 assert.is_nil(name);
926f25af2ffe util.tlsref: New util library to encapsulate the Mozilla/TLSRef recommendations
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
127 assert.equal("unknown-version", err);
926f25af2ffe util.tlsref: New util library to encapsulate the Mozilla/TLSRef recommendations
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
128 end);
926f25af2ffe util.tlsref: New util library to encapsulate the Mozilla/TLSRef recommendations
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
129
926f25af2ffe util.tlsref: New util library to encapsulate the Mozilla/TLSRef recommendations
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
130 it("accepts 'latest' as a version", function ()
926f25af2ffe util.tlsref: New util library to encapsulate the Mozilla/TLSRef recommendations
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
131 assert.is_string(tlsref.get_default_profile_name("latest"));
926f25af2ffe util.tlsref: New util library to encapsulate the Mozilla/TLSRef recommendations
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
132 end);
926f25af2ffe util.tlsref: New util library to encapsulate the Mozilla/TLSRef recommendations
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
133
926f25af2ffe util.tlsref: New util library to encapsulate the Mozilla/TLSRef recommendations
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
134 it("returns a profile name valid for every version", function ()
926f25af2ffe util.tlsref: New util library to encapsulate the Mozilla/TLSRef recommendations
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
135 for _, version in ipairs(tlsref.get_valid_versions()) do
926f25af2ffe util.tlsref: New util library to encapsulate the Mozilla/TLSRef recommendations
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
136 local name = tlsref.get_default_profile_name(version);
926f25af2ffe util.tlsref: New util library to encapsulate the Mozilla/TLSRef recommendations
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
137 assert.is_string(name);
926f25af2ffe util.tlsref: New util library to encapsulate the Mozilla/TLSRef recommendations
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
138 assert.is_table(tlsref.get_profile(version, name),
926f25af2ffe util.tlsref: New util library to encapsulate the Mozilla/TLSRef recommendations
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
139 ("default profile %q missing from version %s"):format(name, version));
926f25af2ffe util.tlsref: New util library to encapsulate the Mozilla/TLSRef recommendations
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
140 end
926f25af2ffe util.tlsref: New util library to encapsulate the Mozilla/TLSRef recommendations
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
141 end);
926f25af2ffe util.tlsref: New util library to encapsulate the Mozilla/TLSRef recommendations
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
142 end);
926f25af2ffe util.tlsref: New util library to encapsulate the Mozilla/TLSRef recommendations
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
143
926f25af2ffe util.tlsref: New util library to encapsulate the Mozilla/TLSRef recommendations
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
144 describe("profile contents", function ()
926f25af2ffe util.tlsref: New util library to encapsulate the Mozilla/TLSRef recommendations
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
145 it("every profile specifies a TLS protocol version", function ()
926f25af2ffe util.tlsref: New util library to encapsulate the Mozilla/TLSRef recommendations
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
146 for _, version in ipairs(tlsref.get_valid_versions()) do
926f25af2ffe util.tlsref: New util library to encapsulate the Mozilla/TLSRef recommendations
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
147 for _, name in ipairs(tlsref.get_valid_profile_names(version)) do
926f25af2ffe util.tlsref: New util library to encapsulate the Mozilla/TLSRef recommendations
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
148 local profile = tlsref.get_profile(version, name);
926f25af2ffe util.tlsref: New util library to encapsulate the Mozilla/TLSRef recommendations
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
149 assert.is_string(profile.protocol);
926f25af2ffe util.tlsref: New util library to encapsulate the Mozilla/TLSRef recommendations
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
150 assert.truthy(profile.protocol:match("^tlsv1"),
926f25af2ffe util.tlsref: New util library to encapsulate the Mozilla/TLSRef recommendations
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
151 ("unexpected protocol %q in %s/%s"):format(profile.protocol, version, name));
926f25af2ffe util.tlsref: New util library to encapsulate the Mozilla/TLSRef recommendations
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
152 end
926f25af2ffe util.tlsref: New util library to encapsulate the Mozilla/TLSRef recommendations
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
153 end
926f25af2ffe util.tlsref: New util library to encapsulate the Mozilla/TLSRef recommendations
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
154 end);
926f25af2ffe util.tlsref: New util library to encapsulate the Mozilla/TLSRef recommendations
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
155
926f25af2ffe util.tlsref: New util library to encapsulate the Mozilla/TLSRef recommendations
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
156 it("every profile specifies TLS 1.3 ciphersuites and curves", function ()
926f25af2ffe util.tlsref: New util library to encapsulate the Mozilla/TLSRef recommendations
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
157 for _, version in ipairs(tlsref.get_valid_versions()) do
926f25af2ffe util.tlsref: New util library to encapsulate the Mozilla/TLSRef recommendations
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
158 for _, name in ipairs(tlsref.get_valid_profile_names(version)) do
926f25af2ffe util.tlsref: New util library to encapsulate the Mozilla/TLSRef recommendations
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
159 local profile = tlsref.get_profile(version, name);
926f25af2ffe util.tlsref: New util library to encapsulate the Mozilla/TLSRef recommendations
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
160 assert.is_table(profile.ciphersuites);
926f25af2ffe util.tlsref: New util library to encapsulate the Mozilla/TLSRef recommendations
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
161 assert.is_true(#profile.ciphersuites > 0);
926f25af2ffe util.tlsref: New util library to encapsulate the Mozilla/TLSRef recommendations
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
162 assert.is_table(profile.curveslist);
926f25af2ffe util.tlsref: New util library to encapsulate the Mozilla/TLSRef recommendations
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
163 assert.is_true(#profile.curveslist > 0);
926f25af2ffe util.tlsref: New util library to encapsulate the Mozilla/TLSRef recommendations
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
164 end
926f25af2ffe util.tlsref: New util library to encapsulate the Mozilla/TLSRef recommendations
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
165 end
926f25af2ffe util.tlsref: New util library to encapsulate the Mozilla/TLSRef recommendations
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
166 end);
926f25af2ffe util.tlsref: New util library to encapsulate the Mozilla/TLSRef recommendations
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
167 end);
926f25af2ffe util.tlsref: New util library to encapsulate the Mozilla/TLSRef recommendations
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
168 end);