class OpenSSL::PKey::DSA

See ruby-doc.org/stdlib/libdoc/openssl/rdoc/OpenSSL/PKey/DSA.html

Public Instance Methods

to_der_pkcs8() click to toggle source

Returns DSA (private) key in PKCS#8 DER format.

# File lib/openssl_pkcs8_pure.rb, line 15
def to_der_pkcs8
        #if public, just use x509 default output
        return to_der if !private?
        asn1=OpenSSL::ASN1.decode(to_der).value
        OpenSSL::ASN1::Sequence([
                OpenSSL::ASN1::Integer(0),
                OpenSSL::ASN1::Sequence([
                        OpenSSL::ASN1::ObjectId("DSA"),
                        OpenSSL::ASN1::Sequence([asn1[1],asn1[2],asn1[3]])
                ]),
                OpenSSL::ASN1::OctetString(asn1[5].to_der)
        ]).to_der
end
to_pem_pkcs8() click to toggle source

Returns DSA (private) key in PKCS#8 PEM format.

# File lib/openssl_pkcs8_pure.rb, line 29
def to_pem_pkcs8
        return to_pem if !private?
        body=RUBY_VERSION<'1.9' ? Base64.encode64(to_der_pkcs8) : Base64.strict_encode64(to_der_pkcs8).chars.each_slice(64).map(&:join).join("\n")+"\n"
        "-----BEGIN PRIVATE KEY-----\n"+body+"-----END PRIVATE KEY-----\n"
end