Rumah > pembangunan bahagian belakang > Golang > Bagaimana untuk Marshal Kunci Peribadi PKCS8 dalam Go 1.5?

Bagaimana untuk Marshal Kunci Peribadi PKCS8 dalam Go 1.5?

Mary-Kate Olsen
Lepaskan: 2024-10-30 03:02:02
asal
259 orang telah melayarinya

How to Marshal a PKCS8 Private Key in Go 1.5?

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>
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan