SSL_CTX_use_PrivateKey_file如何给出密码

时间:2015-03-26 13:35:24

标签: c terminal openssl

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

1 个答案:

答案 0 :(得分:3)

您正在寻找的功能是:

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