lib/resources/dh_params.rb in inspec-1.51.15 vs lib/resources/dh_params.rb in inspec-1.51.18

- old
+ new

@@ -1,83 +1,83 @@ -# encoding: utf-8 -# author: Doc Walker - -require 'openssl' - -class DhParams < Inspec.resource(1) - name 'dh_params' - - 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 - " - - def initialize(filename) - @dh_params_path = filename - file = inspec.file(@dh_params_path) - return skip_resource "Unable to find DH parameters file #{@dh_params_path}" unless file.exist? - - begin - @dh_params = OpenSSL::PKey::DH.new file.content - rescue - @dh_params = nil - return skip_resource "Unable to load DH parameters #{@dh_params_path}" - end - 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 +# encoding: utf-8 +# author: Doc Walker + +require 'openssl' + +class DhParams < Inspec.resource(1) + name 'dh_params' + + 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 + " + + def initialize(filename) + @dh_params_path = filename + file = inspec.file(@dh_params_path) + return skip_resource "Unable to find DH parameters file #{@dh_params_path}" unless file.exist? + + begin + @dh_params = OpenSSL::PKey::DH.new file.content + rescue + @dh_params = nil + return skip_resource "Unable to load DH parameters #{@dh_params_path}" + end + 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