.NET での OpenSSL RSA キーの使用
OpenSSL RSA_generate_key() を使用して RSA キー ペアを作成すると、公開キーと秘密キーが生成されます。デフォルトでは pkcs#1 形式です。ただし、.NET は x509 形式であることを想定しています。
PEM エンコード形式
PEM エンコードされたキーは、次の 2 つの形式を使用して書き込むことができます:
.NET でのキー形式のサポート
.NET は、SubjectPublicKeyInfo 構造体を書き込む ASN.1/DER エンコードされたキーと PEM エンコードされたキーの両方をサポートします。
X509 形式への変換
pkcs#1 公開鍵を x509 形式に変換するには、C コードで PEM_write_bio_RSAPublicKey の代わりに PEM_write_bio_PUBKEY を使用します。これにより、SubjectPublicKeyInfo 構造体が書き込まれます。
コード例
<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>
追加メモ
関連リンク
以上がOpenSSL RSA キーを .NET 用の X.509 形式に変換するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。