Class: TLSTestKit::TLSVersionTest

Inherits:
Inferno::Test
  • Object
show all
Defined in:
lib/tls_test_kit/tls_version_test.rb

Overview

Examples:

require 'tls_test_kit'

test from: :tls_version_test do
  config(
    inputs: {
      url: {
        title: 'URL whose TLS connections will be tested'
      }
    },
    options: {
      minimum_allowed_version: OpenSSL::SSL::TLS1_1_VERSION,
      maximum_allowed_version: OpenSSL::SSL::TLS1_2_VERSION,
      required_versions: [OpenSSL::SSL::TLS1_2_VERSION],
      incorrectly_permitted_tls_version_message_type: 'warning'
    }
  )
end

Class Method Summary collapse

Class Method Details

.allowed_versionsObject



55
56
57
58
59
60
61
62
63
64
# File 'lib/tls_test_kit/tls_version_test.rb', line 55

def allowed_versions
  @allowed_versions ||=
    version_keys.select do |version|
      minimum_allowed_index = version_keys.find_index(minimum_allowed_version) || 0
      maximum_allowed_index = version_keys.find_index(maximum_allowed_version) || version_keys.length - 1

      version_index = version_keys.find_index(version)
      version_index >= minimum_allowed_index && version_index <= maximum_allowed_index
  end
end

.incorrectly_permitted_tls_version_message_typeObject



83
84
85
# File 'lib/tls_test_kit/tls_version_test.rb', line 83

def incorrectly_permitted_tls_version_message_type
  config.options[:incorrectly_permitted_tls_version_message_type] || 'error'
end

.maximum_allowed_versionObject



50
51
52
53
# File 'lib/tls_test_kit/tls_version_test.rb', line 50

def maximum_allowed_version
  @maximum_allowed_version ||=
    config.options[:maximum_allowed_version].presence || version_keys.last
end

.minimum_allowed_versionObject



45
46
47
48
# File 'lib/tls_test_kit/tls_version_test.rb', line 45

def minimum_allowed_version
  @minimum_allowed_version ||=
    config.options[:minimum_allowed_version].presence || version_keys.first
end

.required_versionsObject



66
67
68
69
# File 'lib/tls_test_kit/tls_version_test.rb', line 66

def required_versions
  @required_versions ||=
    config.options[:required_versions].presence || []
end

.version_allowed?(version) ⇒ Boolean

Returns:

  • (Boolean)


71
72
73
# File 'lib/tls_test_kit/tls_version_test.rb', line 71

def version_allowed?(version)
  allowed_versions.include? version
end

.version_forbidden?(version) ⇒ Boolean

Returns:

  • (Boolean)


75
76
77
# File 'lib/tls_test_kit/tls_version_test.rb', line 75

def version_forbidden?(version)
  !version_allowed? version
end

.version_keysObject



41
42
43
# File 'lib/tls_test_kit/tls_version_test.rb', line 41

def version_keys
  @version_keys ||= versions.keys
end

.version_required?(version) ⇒ Boolean

Returns:

  • (Boolean)


79
80
81
# File 'lib/tls_test_kit/tls_version_test.rb', line 79

def version_required?(version)
  required_versions.include? version
end

.versionsObject



30
31
32
33
34
35
36
37
38
39
# File 'lib/tls_test_kit/tls_version_test.rb', line 30

def versions
  {
    OpenSSL::SSL::SSL2_VERSION => 'SSL 2.0',
    OpenSSL::SSL::SSL3_VERSION => 'SSL 3.0',
    OpenSSL::SSL::TLS1_VERSION => 'TLS 1.0',
    OpenSSL::SSL::TLS1_1_VERSION => 'TLS 1.1',
    OpenSSL::SSL::TLS1_2_VERSION => 'TLS 1.2',
    OpenSSL::SSL::TLS1_3_VERSION => 'TLS 1.3',
  }
end