Heim  >  Artikel  >  Backend-Entwicklung  >  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
Mary-Kate OlsenOriginal
2024-10-26 16:41:30354Durchsuche

 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>

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!

Stellungnahme:
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