Maison > développement back-end > Golang > Comment rassembler une clé privée PKCS8 dans Go 1.5 ?

Comment rassembler une clé privée PKCS8 dans Go 1.5 ?

Mary-Kate Olsen
Libérer: 2024-10-30 03:02:02
original
262 Les gens l'ont consulté

How to Marshal a PKCS8 Private Key in Go 1.5?

Rassemblement d'une clé privée PKCS8 dans Go

Go 1.5 ne dispose pas d'une fonction standard pour rassembler les clés privées PKCS8. Cependant, nous pouvons utiliser une solution personnalisée à la place.

Pour rassembler une clé PKCS8, nous définissons une structure personnalisée pkcs8Key qui représente le format PKCS8. Il comprend des champs pour la version, l'algorithme de clé privée et les octets réels de la clé privée.

Pour les clés RSA, nous utilisons la fonction rsa2pkcs8 pour les convertir au format PKCS8. Cette fonction définit la version sur 0, attribue l'OID de l'algorithme de clé privée approprié et rassemble la clé privée au format PKCS1.

<code class="go">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>
Copier après la connexion

Cette solution personnalisée nous permet de rassembler les clés privées PKCS8 par programme, même si Go manque une fonction officielle à cet effet.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal