【问题标题】:SSL_CTX_use_PrivateKey_file how to give passwordSSL_CTX_use_PrivateKey_file 如何提供密码
【发布时间】:2015-05-30 13:15:40
【问题描述】:

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

【问题讨论】:

    标签: c terminal openssl


    【解决方案1】:

    你要找的功能是:

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

    【讨论】:

    • 抱歉,我没有足够的声望来支持你的帖子。您的解决方案很好,但我没有此功能的手册页。
    • @nintyfan 不用担心;我使用手册页的官方网络版本的链接更新了我的答案。当您有足够的代表时,请随时回来并为答案投票:)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-02-19
    • 2013-05-31
    • 1970-01-01
    • 2016-01-10
    • 2016-07-12
    • 2013-08-02
    相关资源
    最近更新 更多