RSA キーを PKCS#1 から X.509 形式に変換する
OpenSSL では、RSA キーを 2 つの形式で保存できます。
.NET は、ASN.1/DER でエンコードされたキー (PKCS#1) と PEM でエンコードされたキー (X.509) の両方を処理できます。 PKCS#1 キーを X.509 キーに変換するには:
1. PEM_write_bio_RSAPublicKey の代わりに PEM_write_bio_PUBKEY を使用します。
2. EVP_PKEY_set1_RSA を使用して RSA キーを EVP_PKEY に変換します:
コード例:
<code class="c++">#include <openssl/pem.h> #include <openssl/rsa.h> #include <openssl/evp.h> int main() { RSA *rsa = RSA_new(); BN_set_word(BN_new(), RSA_F4); RSA_generate_key_ex(rsa, 2048, NULL, NULL); EVP_PKEY *pkey = EVP_PKEY_new(); EVP_PKEY_set1_RSA(pkey, rsa); BIO *pem = BIO_new_file("rsa-public.pem", "w"); PEM_write_bio_PUBKEY(pem, pkey); RSA_free(rsa); EVP_PKEY_free(pkey); return 0; }</code>
このプログラムは RSA キー ペアを生成し、公開キーを X.509 形式に変換して、「rsa-public.pem」ファイルに保存します。
以上がOpenSSL で RSA キーを PKCS#1 から X.509 形式に変換するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。