RSA键是对称的,您可以使用任何一个作为私钥或公钥,只是您选择的一个问题(但DSA键不对称).下面的程序生成两个2048位长的RSA密钥,然后将它们保存到文件中并将它们读回到内存中.这应该给你的想法如何做到这一点.
#include
#include
#include
#include
#include
#include
#include
#include
#include
const char* pcszPassphrase = "open sezamee";
static void gen_callback(int iWhat, int inPrime, void* pParam);
static void init_openssl(void);
static void cleanup_openssl(void);
static int passwd_callback(char *pcszBuff,int size,int rwflag, void *pPass);
static EVP_PKEY* create_rsa_key(void);
static void handle_openssl_error(void);
int main(int argc, char **argv)
{
int iRet = EXIT_SUCCESS;
EVP_PKEY* pPrivKey = NULL;
EVP_PKEY* pPubKey = NULL;
FILE* pFile = NULL;
const EVP_CIPHER* pCipher = NULL;
init_openssl(