Maison > développement back-end > Golang > Comment rassembler les clés privées PKCS8 dans Go 1.5 ?

Comment rassembler les clés privées PKCS8 dans Go 1.5 ?

Mary-Kate Olsen
Libérer: 2024-10-26 16:41:30
original
512 Les gens l'ont consulté

 How to Marshal PKCS8 Private Keys in Go 1.5?

Marshalling de la clé privée PKCS8 dans Go

Les clés privées PKCS8 peuvent-elles être marshalées dans Go 1.5 ? Plus précisément, existe-t-il une méthode similaire à x509.MarshalPKCS1PrivateKey pour PKCS8 ?

Solution :

Malgré l'absence de fonction standard pour cette tâche, une solution personnalisée est disponible :

<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>
Copier après la connexion

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!

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