Maison > Article > développement back-end > Comment rassembler une clé privée PKCS8 dans 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>
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!