tls_test_kit 0.1.1 → 0.1.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/lib/tls_test_kit/tls_version_test.rb +32 -6
- metadata +5 -5
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 685d8867a7e572f2f8aec3c26038a296b436256bd957065794c1f405cc6025b1
|
4
|
+
data.tar.gz: 87323f7a8b63706d6aa950a3bae16f7a14530169686e6441f34bf7de25c85dc0
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f1c415d4fae0b170e12ed075c6105c464bfa59e1e665426dfabb8be90f72b33a76e3fa75403fd657db1ca433d1ad7f3598e1939e58db916a25aebc92982e4dd6
|
7
|
+
data.tar.gz: 4431510618b2ccb37336832ab222e04e71e6f1bac1792b2ace7135647f28057e068a498d774685e053ac0247295bd43f9804189a4d5426b6c7b0511f06353ae0
|
@@ -6,6 +6,8 @@ module TLSTestKit
|
|
6
6
|
)
|
7
7
|
id :tls_version_test
|
8
8
|
|
9
|
+
output :incorrectly_permitted_tls_versions_messages
|
10
|
+
|
9
11
|
class << self
|
10
12
|
def versions
|
11
13
|
{
|
@@ -59,6 +61,10 @@ module TLSTestKit
|
|
59
61
|
def version_required?(version)
|
60
62
|
required_versions.include? version
|
61
63
|
end
|
64
|
+
|
65
|
+
def incorrectly_permitted_tls_version_message_type
|
66
|
+
config.options[:incorrectly_permitted_tls_version_message_type] || 'error'
|
67
|
+
end
|
62
68
|
end
|
63
69
|
|
64
70
|
input :url
|
@@ -69,6 +75,8 @@ module TLSTestKit
|
|
69
75
|
port = uri.port
|
70
76
|
tls_support_verified = false
|
71
77
|
|
78
|
+
incorrectly_permitted_tls_versions = []
|
79
|
+
|
72
80
|
self.class.versions.each do |version, version_string|
|
73
81
|
http = Net::HTTP.new(host, port)
|
74
82
|
http.use_ssl = true
|
@@ -78,30 +86,48 @@ module TLSTestKit
|
|
78
86
|
begin
|
79
87
|
http.request_get(uri)
|
80
88
|
if self.class.version_forbidden? version
|
81
|
-
|
89
|
+
message =
|
90
|
+
"#{url} accepted #{version_string} connection even though #{version_string} connections should be denied. " \
|
91
|
+
'The system may deny content from being sent over this connection, but this must be manually verified.'
|
92
|
+
incorrectly_permitted_tls_versions << version_string
|
93
|
+
|
94
|
+
add_message(self.class.incorrectly_permitted_tls_version_message_type, message)
|
82
95
|
elsif self.class.version_required? version
|
83
|
-
add_message('info', "
|
96
|
+
add_message('info', "#{url} correctly accepted #{version_string} connection as required.")
|
84
97
|
tls_support_verified = true
|
85
98
|
else
|
86
|
-
add_message('info', "
|
99
|
+
add_message('info', "#{url} accepted #{version_string} connection.")
|
87
100
|
tls_support_verified = true
|
88
101
|
end
|
89
102
|
rescue StandardError => e
|
90
103
|
if self.class.version_required? version
|
91
|
-
add_message('error', "
|
104
|
+
add_message('error', "#{url} incorrectly denied #{version_string} connection: #{e.message}")
|
92
105
|
elsif self.class.version_forbidden? version
|
93
|
-
add_message('info', "
|
106
|
+
add_message('info', "#{url} correctly denied #{version_string} connection as required.")
|
94
107
|
else
|
95
|
-
add_message('info', "
|
108
|
+
add_message('info', "#{url} denied #{version_string} connection.")
|
96
109
|
end
|
97
110
|
end
|
98
111
|
end
|
99
112
|
|
113
|
+
if incorrectly_permitted_tls_versions.present?
|
114
|
+
count = incorrectly_permitted_tls_versions.length
|
115
|
+
message =
|
116
|
+
"#{url} did not deny TLS connections for #{'version'.pluralize(count)} " \
|
117
|
+
"#{incorrectly_permitted_tls_versions.join(', ')}. The system may deny content from being sent over this " \
|
118
|
+
'connection, but this must be manually verified.'
|
119
|
+
output incorrectly_permitted_tls_versions_messages: message
|
120
|
+
end
|
121
|
+
|
100
122
|
errors_found = messages.any? { |message| message[:type] == 'error' }
|
101
123
|
|
102
124
|
assert !errors_found, 'Server did not permit/deny the connections with the correct TLS versions'
|
103
125
|
|
104
126
|
assert tls_support_verified, 'Server did not support any allowed TLS versions.'
|
127
|
+
|
128
|
+
if incorrectly_permitted_tls_versions.present?
|
129
|
+
pass "Server accepted TLS connections using versions which should be denied: #{incorrectly_permitted_tls_versions.join(', ')}"
|
130
|
+
end
|
105
131
|
end
|
106
132
|
end
|
107
133
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: tls_test_kit
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Stephen MacVicar
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2022-
|
11
|
+
date: 2022-10-06 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: inferno_core
|
@@ -96,7 +96,7 @@ licenses:
|
|
96
96
|
metadata:
|
97
97
|
homepage_uri: https://github.com/inferno_framework/tls-test-kit
|
98
98
|
source_code_uri: https://github.com/inferno_framework/tls-test-kit
|
99
|
-
post_install_message:
|
99
|
+
post_install_message:
|
100
100
|
rdoc_options: []
|
101
101
|
require_paths:
|
102
102
|
- lib
|
@@ -112,7 +112,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
112
112
|
version: '0'
|
113
113
|
requirements: []
|
114
114
|
rubygems_version: 3.1.6
|
115
|
-
signing_key:
|
115
|
+
signing_key:
|
116
116
|
specification_version: 4
|
117
117
|
summary: Inferno tests for server TLS support
|
118
118
|
test_files: []
|