SSL_CTX_use_PrivateKey_file 如何给密码

SSL_CTX_use_PrivateKey_file how to give password

SSL_CTX_use_PrivateKey_file 函数或 SSL_CTX_check_private_key 函数要求在终端中输入我的私钥密码。我想在某些 OpenSSL 函数中传递此密码,因此这些函数之一不会在终端中询问它。我的应用程序将从命令行或对话框 window.

获取密码

您要查找的函数是:

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) 手册页。