SSL\u CTX\u使用\u私钥\u文件如何提供密码
SSL_CTX_use_PrivateKey_file函数或SSL_CTX_check_private_key函数在终端中为我的私钥请求密码。我想在一些OpenSSL函数中传递这个密码,这样其中一个函数就不会在终端中询问它。我的应用程序将从命令行或对话框窗口获取密码。您正在寻找的功能是:SSL\u CTX\u使用\u私钥\u文件如何提供密码,c,terminal,openssl,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
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);
有关更多信息,请参见手册页。对不起,我没有足够的声誉来支持你的帖子。您的解决方案很好,但我没有此功能的手册页。@nintyfan无需担心;我用一个链接更新了我的答案,链接到了手册的官方网络版本。当你有足够的代表时,请随时回来投票: