Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/62.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 从文件中加载RSA密钥_C_Cryptography_Openssl_Rsa - Fatal编程技术网

C 从文件中加载RSA密钥

C 从文件中加载RSA密钥,c,cryptography,openssl,rsa,C,Cryptography,Openssl,Rsa,我使用openSSL命令创建了2个文件:1个用于RSA公钥,1个用于RSA私钥。如何使用C恢复RSA密钥 具体而言,我有以下功能: RSA_public_encrypt(read_num, in_buf, out_buf, public_key, RSA_PKCS1_PADDING); RSA_private_decrypt(read_num, in_buf, out_buf, private_key, RSA_PKCS1_PADDING); 第四个参数public_key和private_k

我使用openSSL命令创建了2个文件:1个用于RSA公钥,1个用于RSA私钥。如何使用C恢复RSA密钥

具体而言,我有以下功能:

RSA_public_encrypt(read_num, in_buf, out_buf, public_key, RSA_PKCS1_PADDING);
RSA_private_decrypt(read_num, in_buf, out_buf, private_key, RSA_PKCS1_PADDING);
第四个参数public_key和private_key必须是RSA类型。但我只有openSSL命令生成的2个文本文件:

File 1: 
-----BEGIN RSA PRIVATE KEY-----
MIICXAIBAAKBgQDP78B9GZ9ZFG6OnZ1PU+9BPoyLRuYJr3rSX470XjbJhmlq9DTn
NvG1pxWxrd5tjlmMWD4AkHqD7E87AafvQEiABdUXwf30LatT1w6tlyQWkM/HCN5k
....
npF+nDtKmGteLJVp5x7HHMnZaRbvcV2oUtgdmIMbqVYgbPkwO2tUfUPA6zg1fzhy
nNzQ35e/Hi0fgSHZib0CQEe4e4txXzkezomkWqwuGL8Qqp8iCbBn44mzxXTBvAQl
muFu93C/ULMzRoq4cpPgl3sS0F9s7+zR18SERerFvfc=
-----END RSA PRIVATE KEY-----

File 2:
-----BEGIN PUBLIC KEY-----
MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDP78B9GZ9ZFG6OnZ1PU+9BPoyL
RuYJr3rSX470XjbJhmlq9DTnNvG1pxWxrd5tjlmMWD4AkHqD7E87AafvQEiABdUX
wf30LatT1w6tlyQWkM/HCN5kmK5WzPUYbI1q5xGy7Eox9sJ6cNwMUOT+MSDhErgB
gkgF6uG1yGrxuEVk/QIDAQAB
-----END PUBLIC KEY-----
现在,我将这两个文件读入一个char[]数组。接下来我要做的是将这2个数组转换成2个RSA密钥(客户端的公钥和服务器的私钥),这样我就可以使用RSA公钥加密和RSA私钥解密函数


谢谢

查看中的I/O函数,特别是


recover,recover=read是什么意思?注意,您不应该公开您的私钥,即使是部分私钥!请看这篇文章如果您使用的是PEM格式,公钥读取器应该是
PEM\u read\u RSA\u PUBKEY
。看见
RSA *PEM_read_RSAPrivateKey(FILE *fp, RSA **x,
                                    pem_password_cb *cb, void *u);

RSA *PEM_read_RSAPublicKey(FILE *fp, RSA **x,
                                    pem_password_cb *cb, void *u);