將RSA 金鑰從PKCS#1 轉換為X.509 格式
在OpenSSL 中,RSA 金鑰可以以兩種格式保存:
.NET 可以處理 ASN.1/DER 編碼金鑰 (PKCS#1) 和 PEM 編碼金鑰 (X.509)。要將 PKCS#1 金鑰轉換為 X.509 金鑰:
1。使用 PEM_write_bio_PUBKEY 而不是 PEM_write_bio_RSAPublicKey:
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中文網其他相關文章!