使用OpenSSL生成RSA公钥/私钥? [英] Generate RSA public/private key with OpenSSL?
问题描述
create_rsa_key()
函数如何创建私有和公共?而$ code> pCipher 来自哪里?而$ pcszPassphrase
的要点是什么? 我会解释一下,如果它是某种伪代码,这个是我想做的,粗体是那些我不知道如何做的:
- 生成私钥和公钥作为十六进制(客户端)中的缓冲区
- 将公钥安全地发送到另一个端点(客户端)
- 使用AES256 CBC(服务器)使用随机256位密码加密某些数据
- 使用公钥(服务器)加密密码
- 将加密数据发送到客户端(服务器)
- 使用私钥(客户端)解密加密的256位密码
- 解密文件
基本上我知道如何处理AES加密/解密和通信协议,已经实现了,我的问题是RSA,我需要十六进制格式不是base64或pem,因为我正在使用s ockets和发送和存储为二进制数据。
正如IRC所讨论的那样,create_rsa_key问题的答案由 https://stackoverflow.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://stackoverflow.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.
这篇关于使用OpenSSL生成RSA公钥/私钥?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!