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