Heim > Backend-Entwicklung > Golang > Wie werden private PKCS8-Schlüssel in Go 1.5 gemarshallt?

Wie werden private PKCS8-Schlüssel in Go 1.5 gemarshallt?

Mary-Kate Olsen
Freigeben: 2024-10-26 16:41:30
Original
441 Leute haben es durchsucht

 How to Marshal PKCS8 Private Keys in Go 1.5?

Marshalling des privaten PKCS8-Schlüssels in Go

Können private PKCS8-Schlüssel in Go 1.5 gemarshallt werden? Gibt es insbesondere eine Methode ähnlich x509.MarshalPKCS1PrivateKey für PKCS8?

Lösung:

Obwohl es keine Standardfunktion für diese Aufgabe gibt, ist eine benutzerdefinierte Lösung verfügbar :

<code class="go">import (
    "crypto/rsa"
    "crypto/asn1"
    "crypto/x509"
)

type pkcs8Key struct {
    Version             int
    PrivateKeyAlgorithm []asn1.ObjectIdentifier
    PrivateKey          []byte
}


func rsa2pkcs8(key *rsa.PrivateKey) ([]byte, error) {
    var pkey pkcs8Key
    pkey.Version = 0
    pkey.PrivateKeyAlgorithm = make([]asn1.ObjectIdentifier, 1)
    pkey.PrivateKeyAlgorithm[0] = asn1.ObjectIdentifier{1, 2, 840, 113549, 1, 1, 1}
    pkey.PrivateKey = x509.MarshalPKCS1PrivateKey(key)

    return asn1.Marshal(pkey)
}</code>
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWie werden private PKCS8-Schlüssel in Go 1.5 gemarshallt?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage