Rumah > pembangunan bahagian belakang > C++ > Bagaimana untuk Menukar OpenSSL RSA Keys kepada Format X.509 untuk .NET?

Bagaimana untuk Menukar OpenSSL RSA Keys kepada Format X.509 untuk .NET?

DDD
Lepaskan: 2024-11-05 01:37:02
asal
514 orang telah melayarinya

How to Convert OpenSSL RSA Keys to X.509 Format for .NET?

Menggunakan OpenSSL RSA Keys dalam .NET

Apabila mencipta pasangan kunci RSA menggunakan OpenSSL RSA_generate_key(), ia menghasilkan kunci awam dan peribadi dalam format pkcs#1 secara lalai. Walau bagaimanapun, .NET menjangkakan ia berada dalam format x509.

Format Pengekodan PEM

Kunci berkod PEM boleh ditulis menggunakan dua format:

  • Tradisional (SubjectPublicKeyInfo): Termasuk OID untuk algoritma dan kunci awam.
  • PKCS (hanya kunci awam): Hanya mengandungi orang awam kunci.

.Sokongan .NET untuk Format Utama

.NET menyokong kedua-dua kekunci berkod ASN.1/DER dan kunci berkod PEM yang menulis struktur SubjectPublicKeyInfo, bukan hanya kunci awam.

Menukar kepada Format X509

Untuk menukar kunci awam pkcs#1 kepada format x509, gunakan PEM_write_bio_PUBKEY dan bukannya PEM_write_bio_RSAPublicKey dalam anda. Ini menulis struktur SubjectPublicKeyInfo.

Contoh Kod

<code class="cpp">...
// Convert RSA key to PKEY
EVP_KEY_ptr pkey(EVP_PKEY_new(), ::EVP_PKEY_free);
rc = EVP_PKEY_set1_RSA(pkey.get(), rsa.get());
ASSERT(rc == 1);
...
// Write SubjectPublicKeyInfo with OID in PEM
// Load with PEM_read_bio_PUBKEY
rc = PEM_write_bio_PUBKEY(pem2.get(), pkey.get());
ASSERT(rc == 1);
...</code>
Salin selepas log masuk

Nota Tambahan

  • Simpan kunci peribadi dengan selamat kerana ia diperlukan untuk menyahsulit mesej.
  • Fungsi set1 dalam EVP_PKEY_set1_RSA menambah kiraan rujukan untuk mengelakkan ralat percuma berganda.

Pautan Berkaitan

  • Menjana kunci peribadi RSA dengan OpenSSL: [Bagaimana untuk menjana kunci peribadi RSA menggunakan openssl?](https://stackoverflow.com/questions/26154252/how-to-generate-rsa-private-key -menggunakan-openssl)

Atas ialah kandungan terperinci Bagaimana untuk Menukar OpenSSL RSA Keys kepada Format X.509 untuk .NET?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan