c - SSL_CTX_use_PrivateKey_file 如何提供密码

标签 c terminal openssl

SSL_CTX_use_PrivateKey_file 函数或 SSL_CTX_check_private_key 函数在终端中要求我的私钥输入密码。我想在一些 OpenSSL 函数中传递这个密码,所以这些函数之一不会在终端中询问它。我的应用程序将从命令行或对话框窗口获取密码。

最佳答案

您正在寻找的功能是:

void SSL_CTX_set_default_passwd_cb(SSL_CTX *ctx, pem_password_cb *cb);

回调函数参数 pem_password_cb有签名:
int pem_passwd_cb(char *buf, int size, int rwflag, void *userdata);
buf是密码短语的目标缓冲区。 size给出缓冲区的大小。 rwflag指示密码是用于解密(读)还是加密(写)操作。
*userdata是应用程序可以指定传递给回调的任意数据。您可以设置 userdata通过函数:
void SSL_CTX_set_default_passwd_cb_userdata(SSL_CTX *ctx, void *u);

SSL_CTX_set_default_passwd_cb(3) 手册页了解更多信息。

关于c - SSL_CTX_use_PrivateKey_file 如何提供密码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29279869/

相关文章:

java - Java 中的按位运算符作用于两个字节

python - 如何从终端/命令提示符启动 PyCharm

nginx - CentOS 安装 nginx 失败

colors - IntelliJ IDEA Terminal 从 System?

javascript - 使用 OpenSSL 在 Ruby 中编码和字节错误?

ubuntu - 使用针对 OpenSSL 的静态和动态库的链接进行编译

c - 使用 fscanf 时无限循环

c - EDH-RSA-DES-CBC3-SHA 出现“无共享密码”错误

c - 看门狗:设备或资源忙

python - 从终端杀死linux中的python解释器