Marshalling PKCS8 Private Keys in Go
Timbul persoalan mengenai ketersediaan kaedah untuk mengawal kunci peribadi PKCS8 dalam Go 1.5. Fungsi serupa, seperti x509.MarshalPKCS1PrivateKey, dicari.
Penyelesaian Tersuai
Menariknya, tiada fungsi standard untuk menyusun kunci peribadi PKCS8 dalam Go. Walau bagaimanapun, penyelesaian tersuai disediakan di bawah:
<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>
Fungsi tersuai ini, rsa2pkcs8, boleh digunakan untuk mengawal kunci peribadi PKCS8 dalam Go 1.5.
Atas ialah kandungan terperinci Bagaimana Saya Boleh Marshal PKCS8 Private Keys dalam Go 1.5?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!