blob: 787fdfac7c410af904cc45964989a1e17bacbe80 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
|
autoload :OpenSSL, 'openssl'
autoload :CertificateAuthority, 'certificate_authority'
require 'digest'
require 'digest/md5'
require 'digest/sha1'
module LeapCli; module X509
extend self
#
# returns a fingerprint of a x509 certificate
#
def fingerprint(digest, cert_file)
if cert_file.is_a? String
cert = OpenSSL::X509::Certificate.new(Util.read_file!(cert_file))
elsif cert_file.is_a? OpenSSL::X509::Certificate
cert = cert_file
elsif cert_file.is_a? CertificateAuthority::Certificate
cert = cert_file.openssl_body
end
digester = case digest
when "MD5" then Digest::MD5.new
when "SHA1" then Digest::SHA1.new
when "SHA256" then Digest::SHA256.new
when "SHA384" then Digest::SHA384.new
when "SHA512" then Digest::SHA512.new
end
digester.hexdigest(cert.to_der)
end
end; end
|