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

Barbara Streisand
Freigeben: 2024-10-26 15:51:03
Original
218 Leute haben es durchsucht

How to Marshal PKCS8 Private Keys in Go?

Marshaling von privaten PKCS8-Schlüsseln in Go

In Go stellt sich die Frage, ob es in Version 1.5 eine bequeme Möglichkeit zum Marshallen von privaten PKCS8-Schlüsseln gibt . Ähnlich wie die x509.MarshalPKCS1PrivateKey-Funktion suchen Entwickler nach einem effizienten Mechanismus zum Konvertieren privater Schlüssel in serialisierte Daten.

Obwohl Go keine integrierte Funktion für diesen speziellen Zweck bereitstellt, gibt es eine benutzerdefinierte Lösung, die dieses Problem angeht Anforderung:

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

func rsa2pkcs8(key *rsa.PrivateKey) ([]byte, error) {
    var pkey pkcs8Key
    pkey.Version = 0 // Default version for PKCS8
    pkey.PrivateKeyAlgorithm = make([]asn1.ObjectIdentifier, 1)
    pkey.PrivateKeyAlgorithm[0] = asn1.ObjectIdentifier{1, 2, 840, 113549, 1, 1, 1} // RSA encryption algorithm OID
    pkey.PrivateKey = x509.MarshalPKCS1PrivateKey(key)

    return asn1.Marshal(pkey)
}
Nach dem Login kopieren

Mit dieser benutzerdefinierten Funktion, rsa2pkcs8, können Sie ein rsa.PrivateKey-Objekt in ein PKCS8-codiertes Byte-Array konvertieren. Es setzt die Version auf 0, gibt die OID des RSA-Verschlüsselungsalgorithmus an und bettet den gemarshallten privaten PKCS1-Schlüssel in das PrivateKey-Feld der pkcs8Key-Struktur ein. Durch den Aufruf von asn1.Marshal für diese Struktur erhalten Sie die serialisierten Daten, die den privaten PKCS8-Schlüssel darstellen.

Durch die Verwendung dieser Lösung erhalten Go-Entwickler die Möglichkeit, private PKCS8-Schlüssel zu Marshallen, was ihnen ein praktisches Dienstprogramm für verschiedene kryptografische Funktionen bietet Operationen und Datenaustauschszenarien.

Das obige ist der detaillierte Inhalt vonWie werden private PKCS8-Schlüssel in Go 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
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!