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:
.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>
Nota Tambahan
Pautan Berkaitan
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!