生成 RSA 金鑰
為了生成 RSA 金鑰,必須首先使用 EVP_PKEY_new
分配 EVP_PKEY
:
EVP_PKEY *pkey;
pkey = EVP_PKEY_new();
還需要金鑰的指數,這將需要使用 BN_new
分配 BIGNUM
然後使用 BN_set_word
進行分配 :
BIGNUM *bn;
bn = BN_new();
BN_set_word(bn, RSA_F4);
要生成金鑰,請使用 RSA_new
建立一個新的 RSA
並呼叫 RSA_generate_key_ex
:
RSA *rsa;
rsa = RSA_new();
RSA_generate_key_ex(
rsa, /* pointer to the RSA structure */
2048, /* number of bits for the key - 2048 is a good value */
bn, /* exponent allocated earlier */
NULL, /* callback - can be NULL if progress isn't needed */
);
要將新生成的金鑰分配給 EVP_PKEY
結構,請呼叫 EVP_PKEY_assign_RSA
:
EVP_PKEY_assign_RSA(pkey, rsa);
當釋放 EVP_PKEY
結構時,RSA
結構將自動釋放。這是通過 EVP_PKEY_free
完成的 :
EVP_PKEY_free(pkey);