私はこのコードを持っています:
int importKey(){
FILE *fp=NULL;
RSA *pkey=NULL;
R_RSA_PRIVATE_KEY prk; //special structure
fp = fopen("sslcert/key.pem", "r");
fseek(fp, 0, SEEK_SET);
PEM_read_RSAPrivateKey(fp, &pkey, NULL, NULL);
if (!pkey)
{
fseek(fp, 0, SEEK_SET);
d2i_RSAPrivateKey_fp(fp, &pkey);
}
prk.bits=BN_num_bits(pkey->n);
return pkey; //check if pkey==0 or something else
}
.pem
を使用してコマンドラインから作成したファイルをfpに渡すと、これはうまく機能しますopenssl -pkcs12 -in file.pfx -out key.pem
。しかし、私が必要としているのは、その pfx ファイルを使用してfp = fopen()
コード内の秘密鍵を何らかの方法で「抽出」し、それをその RSA *pkey に保存し、同じ pfx ファイルから証明書を抽出して X509 *px509 変数に保存することです。それについて何か助けはありますか?
つまり、そのコマンドラインコマンドとしていくつかのルーチンを実行するには、実際にはいくつかのopenssl関数が必要です