inspec/test/unit/resources/dh_params_test.rb

98 lines
3.8 KiB
Ruby

require "helper"
require "inspec/resource"
require "inspec/resources/dh_params"
describe "Inspec::Resources::DhParams" do
let(:resource_dh_params) { load_resource("dh_params", "dh_params.dh_pem") }
let(:modulus) do
# regex removes all whitespace
<<-EOF.gsub(/[[:space:]]+/, "")
00:8c:bd:f0:27:91:00:30:7e:92:c6:04:96:ad:21:
c8:b4:39:a3:1e:d5:c5:0b:fc:fd:b0:6e:32:b4:39:
06:da:23:bd:50:f9:1c:63:cd:b7:d6:a2:4d:37:42:
56:ec:1f:3c:26:d4:1f:79:75:41:69:21:92:1d:cd:
03:99:b9:21:ad:3e:a1:2b:ba:11:fa:fe:2c:a3:a7:
d5:9c:33:54:60:e9:c0:b7:26:a4:2e:50:92:bc:90:
b7:86:ac:39:3a:65:8b:be:0f:df:92:0d:f9:c5:b4:
3d:ce:0d:5b:aa:f7:1d:cd:e5:85:08:6c:7b:b2:6d:
d7:06:a7:1f:9f:27:4d:b6:f6:51:1a:2d:e2:1a:6c:
10:97:47:6b:6f:da:34:97:9d:08:13:bb:ec:77:ee:
2e:93:6d:4b:9f:52:e6:a4:fd:fd:76:98:a6:40:25:
65:47:11:2b:69:6c:f0:68:77:cc:c0:70:f5:75:6e:
9c:d7:93:ec:f7:a6:c4:36:14:73:a7:1e:c0:e8:90:
e5:c1:29:c0:41:3b:b4:51:ce:e7:25:b8:59:b3:e7:
4c:44:24:76:a2:59:ea:e6:41:45:eb:52:6f:d3:77:
f6:55:d3:8c:0f:16:25:1e:4a:1a:bb:23:84:52:53:
d5:05:f8:4d:1e:99:10:2e:41:a1:fb:e5:4b:19:a2:
0d:93
EOF
end
let(:output_as_pem) do
# regex removes all leading spaces
<<-EOF.gsub(/^[[:blank:]]+/, "")
-----BEGIN DH PARAMETERS-----
MIIBCAKCAQEAjL3wJ5EAMH6SxgSWrSHItDmjHtXFC/z9sG4ytDkG2iO9UPkcY823
1qJNN0JW7B88JtQfeXVBaSGSHc0DmbkhrT6hK7oR+v4so6fVnDNUYOnAtyakLlCS
vJC3hqw5OmWLvg/fkg35xbQ9zg1bqvcdzeWFCGx7sm3XBqcfnydNtvZRGi3iGmwQ
l0drb9o0l50IE7vsd+4uk21Ln1LmpP39dpimQCVlRxEraWzwaHfMwHD1dW6c15Ps
96bENhRzpx7A6JDlwSnAQTu0Uc7nJbhZs+dMRCR2olnq5kFF61Jv03f2VdOMDxYl
HkoauyOEUlPVBfhNHpkQLkGh++VLGaINkwIBAg==
-----END DH PARAMETERS-----
EOF
end
let(:output_as_text) do
# note: mock file loader munges first line of output w/ASCII-8BIT line
# regex removes 2 leading spaces
<<-EOF.gsub(/^[[:blank:]]{2}/, "")
PKCS#3 DH Parameters: (2048 bit)
prime:
00:8c:bd:f0:27:91:00:30:7e:92:c6:04:96:ad:21:
c8:b4:39:a3:1e:d5:c5:0b:fc:fd:b0:6e:32:b4:39:
06:da:23:bd:50:f9:1c:63:cd:b7:d6:a2:4d:37:42:
56:ec:1f:3c:26:d4:1f:79:75:41:69:21:92:1d:cd:
03:99:b9:21:ad:3e:a1:2b:ba:11:fa:fe:2c:a3:a7:
d5:9c:33:54:60:e9:c0:b7:26:a4:2e:50:92:bc:90:
b7:86:ac:39:3a:65:8b:be:0f:df:92:0d:f9:c5:b4:
3d:ce:0d:5b:aa:f7:1d:cd:e5:85:08:6c:7b:b2:6d:
d7:06:a7:1f:9f:27:4d:b6:f6:51:1a:2d:e2:1a:6c:
10:97:47:6b:6f:da:34:97:9d:08:13:bb:ec:77:ee:
2e:93:6d:4b:9f:52:e6:a4:fd:fd:76:98:a6:40:25:
65:47:11:2b:69:6c:f0:68:77:cc:c0:70:f5:75:6e:
9c:d7:93:ec:f7:a6:c4:36:14:73:a7:1e:c0:e8:90:
e5:c1:29:c0:41:3b:b4:51:ce:e7:25:b8:59:b3:e7:
4c:44:24:76:a2:59:ea:e6:41:45:eb:52:6f:d3:77:
f6:55:d3:8c:0f:16:25:1e:4a:1a:bb:23:84:52:53:
d5:05:f8:4d:1e:99:10:2e:41:a1:fb:e5:4b:19:a2:
0d:93
generator: 2 (0x2)
EOF
end
it "gets the resource_id for the current resource" do
_(resource_dh_params.resource_id).must_equal "dh_params.dh_pem"
end
it "parses the generator used for the Diffie-Hellman operation" do
_(resource_dh_params.send("generator")).must_equal 2
end
it "parses the modulus used for the Diffie-Hellman operation" do
_(resource_dh_params.send("modulus")).must_equal modulus
end
it "determines the prime length" do
_(resource_dh_params.send("prime_length")).must_equal 2048
end
it "verifies PEM output" do
_(resource_dh_params.send("pem")).must_equal output_as_pem
end
it "verifies text output" do
_(resource_dh_params.send("text"))
.must_match "DH Parameters: (2048 bit)"
end
end