main
 1# frozen_string_literal: true
 2
 3RSpec.describe Xml::Kit::Fingerprint do
 4  describe '#sha' do
 5    let(:key_pair) { generate_key_pair('password') }
 6    let(:certificate) { key_pair[0] }
 7    let(:x509) { OpenSSL::X509::Certificate.new(certificate) }
 8
 9    it 'returns the SHA256' do
10      sha256 = OpenSSL::Digest::SHA256.new.hexdigest(x509.to_der).upcase.scan(/../).join(':')
11      expect(described_class.new(certificate).algorithm(OpenSSL::Digest::SHA256)).to eql(sha256)
12    end
13
14    it 'returns the SHA1' do
15      sha1 = OpenSSL::Digest::SHA1.new.hexdigest(x509.to_der).upcase.scan(/../).join(':')
16      expect(described_class.new(certificate).algorithm(OpenSSL::Digest::SHA1)).to eql(sha1)
17    end
18  end
19
20  it 'produces correct hash keys' do
21    certificate, = generate_key_pair('password')
22    items = {}
23    items[described_class.new(certificate)] = 'HI'
24    items[described_class.new(certificate)] = 'BYE'
25    expect(items.keys.count).to be(1)
26  end
27end