Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SSL\u CTX\u使用\u私钥\u文件如何提供密码_C_Terminal_Openssl - Fatal编程技术网

SSL\u CTX\u使用\u私钥\u文件如何提供密码

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

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);

有关更多信息,请参见手册页。

对不起,我没有足够的声誉来支持你的帖子。您的解决方案很好,但我没有此功能的手册页。@nintyfan无需担心;我用一个链接更新了我的答案,链接到了手册的官方网络版本。当你有足够的代表时,请随时回来投票: