Utilisation des clés OpenSSL RSA dans .NET
Lors de la création d'une paire de clés RSA à l'aide d'OpenSSL RSA_generate_key(), il génère des clés publiques et privées dans le format pkcs#1 par défaut. Cependant, .NET s'attend à ce qu'ils soient au format x509.
Formats d'encodage PEM
Une clé codée PEM peut être écrite en utilisant deux formats :
Prise en charge .NET des formats de clé
.NET prend en charge à la fois les clés codées ASN.1/DER et les clés codées PEM qui écrivent la structure SubjectPublicKeyInfo, pas seulement la clé publique.
Conversion au format X509
Pour convertir la clé publique pkcs#1 au format x509, utilisez PEM_write_bio_PUBKEY au lieu de PEM_write_bio_RSAPublicKey dans votre code C. Ceci écrit la structure SubjectPublicKeyInfo.
Exemple de code
<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>
Notes supplémentaires
Liens connexes
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!