Mengarang Kunci Peribadi PKCS8 dalam Go
Go 1.5 tidak mempunyai fungsi standard untuk menyusun kunci persendirian PKCS8. Walau bagaimanapun, kami boleh memanfaatkan penyelesaian tersuai.
Untuk menyusun kunci PKCS8, kami mentakrifkan struktur tersuai pkcs8Key yang mewakili format PKCS8. Ia termasuk medan untuk versi, algoritma kunci peribadi dan bait kunci peribadi sebenar.
Untuk kunci RSA, kami menggunakan fungsi rsa2pkcs8 untuk menukarnya kepada format PKCS8. Fungsi ini menetapkan versi kepada 0, menetapkan OID algoritma kunci persendirian yang sesuai dan mengawal kunci persendirian berformat 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>
Penyelesaian tersuai ini membolehkan kami menyusun kunci persendirian PKCS8 secara pemprograman, walaupun Go kekurangan majlis rasmi untuk tujuan ini.
Atas ialah kandungan terperinci Bagaimana untuk Marshal Kunci Peribadi PKCS8 dalam Go 1.5?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!