lib/epics/client.rb in epics-2.1.0 vs lib/epics/client.rb in epics-2.1.1
- old
+ new
@@ -103,16 +103,14 @@
type = node.parent.last_element_child.content
modulus = Base64.decode64(node.at_xpath(".//*[local-name() = 'Modulus']").content)
exponent = Base64.decode64(node.at_xpath(".//*[local-name() = 'Exponent']").content)
- bank = OpenSSL::PKey::RSA.new
- if bank.respond_to?(:set_key)
- bank.set_key(OpenSSL::BN.new(modulus, 2), OpenSSL::BN.new(exponent, 2), nil)
- else
- bank.n = OpenSSL::BN.new(modulus, 2)
- bank.e = OpenSSL::BN.new(exponent, 2)
- end
+ sequence = []
+ sequence << OpenSSL::ASN1::Integer.new(OpenSSL::BN.new(modulus, 2))
+ sequence << OpenSSL::ASN1::Integer.new(OpenSSL::BN.new(exponent, 2))
+
+ bank = OpenSSL::PKey::RSA.new(OpenSSL::ASN1::Sequence(sequence).to_der)
self.keys["#{host_id.upcase}.#{type}"] = Epics::Key.new(bank)
end
[bank_x, bank_e]