Sha256: 240ecf20c9e51455d373dced5e355e6030d08ad8f543bfe64cc73f7aaa69d8a6

Contents?: true

Size: 1.72 KB

Versions: 99

Compression:

Stored size: 1.72 KB

Contents

# encoding: utf-8

require 'openssl'
require 'utils/file_reader'

class DhParams < Inspec.resource(1)
  name 'dh_params'
  supports platform: 'unix'
  desc '
    Use the `dh_params` InSpec audit resource to test Diffie-Hellman (DH)
    parameters.
  '

  example "
    describe dh_params('/path/to/file.dh_pem') do
      it { should be_dh_params }
      it { should be_valid }
      its('generator') { should eq 2 }
      its('modulus') { should eq '00:91:a0:15:89:e5:bc:38:93:12:02:fc:...' }
      its('prime_length') { should eq 2048 }
      its('pem') { should eq '-----BEGIN DH PARAMETERS...' }
      its('text') { should eq 'PKCS#3 DH Parameters: (2048 bit)...' }
    end
  "

  include FileReader

  def initialize(filename)
    @dh_params_path = filename
    @dh_params = OpenSSL::PKey::DH.new read_file_content(@dh_params_path)
  end

  # it { should be_dh_params }
  def dh_params?
    !@dh_params.nil?
  end

  # its('generator') { should eq 2 }
  def generator
    return if @dh_params.nil?
    @dh_params.g.to_i
  end

  # its('modulus') { should eq '00:91:a0:15:89:e5:bc:38:93:12:02:fc:...' }
  def modulus
    return if @dh_params.nil?
    '00:' + @dh_params.p.to_s(16).downcase.scan(/.{2}/).join(':')
  end

  # its('pem') { should eq '-----BEGIN DH PARAMETERS...' }
  def pem
    return if @dh_params.nil?
    @dh_params.to_pem
  end

  # its('prime_length') { should be 2048 }
  def prime_length
    return if @dh_params.nil?
    @dh_params.p.num_bits
  end

  # its('text') { should eq 'human-readable-text' }
  def text
    return if @dh_params.nil?
    @dh_params.to_text
  end

  # it { should be_valid }
  def valid?
    return if @dh_params.nil?
    @dh_params.params_ok?
  end

  def to_s
    "dh_params #{@dh_params_path}"
  end
end

Version data entries

99 entries across 99 versions & 2 rubygems

Version Path
inspec-core-3.7.1 lib/resources/dh_params.rb
inspec-3.7.1 lib/resources/dh_params.rb
inspec-core-3.6.6 lib/resources/dh_params.rb
inspec-3.6.6 lib/resources/dh_params.rb
inspec-core-3.6.4 lib/resources/dh_params.rb
inspec-3.6.4 lib/resources/dh_params.rb
inspec-core-2.3.28 lib/resources/dh_params.rb
inspec-2.3.28 lib/resources/dh_params.rb
inspec-core-3.6.2 lib/resources/dh_params.rb
inspec-3.6.2 lib/resources/dh_params.rb
inspec-core-3.5.0 lib/resources/dh_params.rb
inspec-3.5.0 lib/resources/dh_params.rb
inspec-core-3.4.1 lib/resources/dh_params.rb
inspec-3.4.1 lib/resources/dh_params.rb
inspec-core-3.3.14 lib/resources/dh_params.rb
inspec-3.3.14 lib/resources/dh_params.rb
inspec-core-3.2.6 lib/resources/dh_params.rb
inspec-3.2.6 lib/resources/dh_params.rb
inspec-core-3.1.3 lib/resources/dh_params.rb
inspec-3.1.3 lib/resources/dh_params.rb