使用 OpenSSL 生成 RSA public/private 密钥?
Generate RSA public/private key with OpenSSL?
主要问题是我对C还很陌生,OpenSSL文档对我来说不够清楚,我试过使用Reading and writing rsa keys to a pem file in C,但我不太明白。例如,create_rsa_key()
函数如何同时创建 private 和 public? pCipher
从何而来? pcszPassphrase
的意义何在?
我会像伪代码一样解释,这是我想做的,粗体部分是我不知道怎么做的:
- 生成私钥和 public 密钥作为十六进制缓冲区(客户端)
- 将 public 密钥安全地发送到另一个端点(客户端)
- 使用 AES256 CBC(服务器)使用随机 256 位密码加密一些数据
- 使用 public 密钥(服务器)加密密码
- 发送加密后的数据给客户端(服务器)
- 使用私钥(客户端)解密加密后的256位密码
- 解密文件
基本上我知道如何处理 AES encryption/decryption 和通信协议,它们已经实现了,我的问题是 RSA,我需要十六进制格式而不是 base64 或 pem,因为我正在使用套接字并作为二进制数据发送和存储。
正如在 IRC 上讨论的那样,create_rsa_key 问题的答案由 解决 - 它不应该那样工作。
pcszPassphrase 是用来保护私钥的password/phrase。它将由用户提供,但不是必需的。
主要问题是我对C还很陌生,OpenSSL文档对我来说不够清楚,我试过使用Reading and writing rsa keys to a pem file in C,但我不太明白。例如,create_rsa_key()
函数如何同时创建 private 和 public? pCipher
从何而来? pcszPassphrase
的意义何在?
我会像伪代码一样解释,这是我想做的,粗体部分是我不知道怎么做的:
- 生成私钥和 public 密钥作为十六进制缓冲区(客户端)
- 将 public 密钥安全地发送到另一个端点(客户端)
- 使用 AES256 CBC(服务器)使用随机 256 位密码加密一些数据
- 使用 public 密钥(服务器)加密密码
- 发送加密后的数据给客户端(服务器)
- 使用私钥(客户端)解密加密后的256位密码
- 解密文件
基本上我知道如何处理 AES encryption/decryption 和通信协议,它们已经实现了,我的问题是 RSA,我需要十六进制格式而不是 base64 或 pem,因为我正在使用套接字并作为二进制数据发送和存储。
正如在 IRC 上讨论的那样,create_rsa_key 问题的答案由 解决 - 它不应该那样工作。
pcszPassphrase 是用来保护私钥的password/phrase。它将由用户提供,但不是必需的。