且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

使用OpenSSL生成RSA公钥/私钥?

更新时间:2022-10-17 21:52:27

正如IRC所讨论的那样,create_rsa_key问题的答案由 https://***.com/a/29589818/37923 - 这不是为了这样工作。



pcszPassphrase意味着是保护私钥的密码/短语。它将由用户提供,但不是要求。


The main problem is that I'm quite new to C, and the OpenSSL documentation is not clear enough for me, I've tried using Reading and writing rsa keys to a pem file in C, but I don't quite understand it. For example, how does the create_rsa_key() function creates both the private and the public? And where does pCipher come from? And what's the point of the pcszPassphrase?

I'll explain as if it was some sort of pseudocode, this is what I want to do, and the parts in bold are those I don't know how to do it:

  • generate private key and public key as buffers in hex (client)
  • send the public key to the other endpoint safely (client)
  • encrypt some data with a random 256 bit password using AES256 CBC (server)
  • encrypt the password using the public key (server)
  • send the encrypted data to the client (server)
  • decrypt the encrypted 256 bit password using the private key (client)
  • decrypt the file

Basically I know how to handle AES encryption/decryption and the communication protocol, they're already implemented anyway, my issue is RSA, and I need hex format not base64 or pem as I'm working with sockets and sending and storing as binary data.

As discussed on IRC, the answer to the create_rsa_key question is addressed by https://***.com/a/29589818/37923 - it's not meant to work that way.

pcszPassphrase is meant to be the password/phrase to protect the private key. It would be provided by the user, but isn't a requirement.