119
120
121
122
123
124
125
126
127
128
129
130
|
# File 'lib/keystores/jks/pkcs8_key.rb', line 119
def to_pkcs8
params = self.params
integer = OpenSSL::ASN1::Integer.new(OpenSSL::BN.new('0'))
oid = OpenSSL::ASN1::ObjectId.new('DSA')
p = OpenSSL::ASN1::Integer.new(OpenSSL::BN.new(params['p']))
q = OpenSSL::ASN1::Integer.new(OpenSSL::BN.new(params['q']))
g = OpenSSL::ASN1::Integer.new(OpenSSL::BN.new(params['g']))
param_sequence = OpenSSL::ASN1::Sequence.new([p, q, g])
sequence = OpenSSL::ASN1::Sequence.new([oid, param_sequence])
octet_string = OpenSSL::ASN1::OctetString.new(OpenSSL::ASN1::Integer.new(OpenSSL::BN.new(params['priv_key'])).to_der)
OpenSSL::ASN1::Sequence.new([integer, sequence, octet_string])
end
|