如果使用c ++创建rsa公钥,则无法加载它

时间:2014-02-18 10:36:46

标签: openssl rsa

我使用RSA_generate_key方法在c ++中创建了rsa密钥对,并将公钥写入单独的文件。当我尝试通过命令行使用该公钥加密文本时,我收到“无法加载公钥”错误。请有人帮助我...

用于加密的命令

openssl rsautl -encrypt -inkey public.pem -in myfile.txt -out file.ssl

用于生成密钥的函数

RSA_generate_key(1024,3,0,0);

感谢。

1 个答案:

答案 0 :(得分:0)

  

我使用RSA_generate_key方法在c ++中创建了rsa密钥对,并将公钥写入单独的文件。

RSA_generate_key创建一个密钥对。你用什么来写一个文件的密钥?


  

openssl rsautl -encrypt -inkey public.pem -in myfile.txt -out file.ssl

     

我收到“无法加载公钥”错误。

根据rsautil(1)上的OpenSSL文档:

-inkey file

    the input key file, by default it should be an RSA private key. 

您需要使用-pubin

-pubin

    the input file is an RSA public key. 

  

用于生成密钥的函数:RSA_generate_key(1024,3,0,0);

您应该使用RSA_generate_key_ex。请参阅RSA_generate_key(3)上的OpenSSL文档。