Module: SSLTool::KeyHelper
Defined Under Namespace
Classes: KeyMalformedError, KeyNotFoundError, KeyNotPresentError
Instance Method Summary
collapse
Instance Method Details
#find_private_key_for_certificate(cert, keys) ⇒ Object
41
42
43
|
# File 'lib/ssltool/key_helper.rb', line 41
def find_private_key_for_certificate(cert, keys)
keys.find { |key| cert.check_private_key(key) }
end
|
#find_private_key_for_certificate!(cert, keys) ⇒ Object
45
46
47
48
49
50
|
# File 'lib/ssltool/key_helper.rb', line 45
def find_private_key_for_certificate!(cert, keys)
raise KeyNotPresentError if keys.empty?
key = find_private_key_for_certificate(cert, keys)
return key if key
raise KeyNotFoundError.new(cert, keys)
end
|
#key(s) ⇒ Object
26
27
28
29
30
31
32
33
34
35
|
# File 'lib/ssltool/key_helper.rb', line 26
def key(s)
error = -> { raise KeyMalformedError, "Key appears to be malformed, or is passphrase-protected." }
case s
when /\A-----BEGIN EC PRIVATE KEY/ then OpenSSL::PKey::EC.new(s, '')
when /\A-----BEGIN (RSA )?PRIVATE KEY/ then OpenSSL::PKey::RSA.new(s, '')
else error[]
end
rescue OpenSSL::PKey::ECError, OpenSSL::PKey::RSAError => e
error[]
end
|
#keys(*pems) ⇒ Object
37
38
39
|
# File 'lib/ssltool/key_helper.rb', line 37
def keys(*pems)
pems.flatten.map { |s| key(s) }
end
|