74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
|
# 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
|