class OpenSSL::PKey::RSA

Public Instance Methods

to_pkcs8() click to toggle source
# File lib/keystores/jks/pkcs8_key.rb, line 74
def to_pkcs8
  integer = OpenSSL::ASN1::Integer.new(OpenSSL::BN.new('0'))
  oid = OpenSSL::ASN1::ObjectId.new('rsaEncryption')
  sequence = OpenSSL::ASN1::Sequence.new([oid, OpenSSL::ASN1::Null.new(nil)])

  params = self.params
  version = OpenSSL::ASN1::Integer.new(OpenSSL::BN.new('0'))
  n = OpenSSL::ASN1::Integer.new(OpenSSL::BN.new(params['n']))
  e = OpenSSL::ASN1::Integer.new(OpenSSL::BN.new(params['e']))
  d = OpenSSL::ASN1::Integer.new(OpenSSL::BN.new(params['d']))
  p = OpenSSL::ASN1::Integer.new(OpenSSL::BN.new(params['p']))
  q = OpenSSL::ASN1::Integer.new(OpenSSL::BN.new(params['q']))
  dmp1 = OpenSSL::ASN1::Integer.new(OpenSSL::BN.new(params['dmp1']))
  dmq1 = OpenSSL::ASN1::Integer.new(OpenSSL::BN.new(params['dmq1']))
  iqmp = OpenSSL::ASN1::Integer.new(OpenSSL::BN.new(params['iqmp']))

  params_sequence = OpenSSL::ASN1::Sequence.new([version, n, e, d, p, q, dmp1, dmq1, iqmp])

  octet_string = OpenSSL::ASN1::OctetString.new(params_sequence.to_der)
  OpenSSL::ASN1::Sequence.new([integer, sequence, octet_string])
end
to_pkcs8_der() click to toggle source
# File lib/keystores/jks/pkcs8_key.rb, line 96
def to_pkcs8_der
  to_pkcs8.to_der
end
to_pkcs8_pem() click to toggle source
# File lib/keystores/jks/pkcs8_key.rb, line 100
def to_pkcs8_pem
  to_pkcs8.to_pem
end