Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/61.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
C 为开放SSL设置密码_C_Encryption_Openssl - Fatal编程技术网

C 为开放SSL设置密码

C 为开放SSL设置密码,c,encryption,openssl,C,Encryption,Openssl,我想在每次系统启动时根据我的要求设置密码套装。但是,如果我考虑在SSLYCTXXSETIGIGHEPHELYLIST列表中意外地写入错误的密码字符串,它将无法添加密码,并且最终不会向系统连接HTTPS。为了解决这个问题,我计划添加一些恢复,在这种情况下,如果它无法设置用户定义的密码,它将使用默认字符串设置连接,这样我的系统在没有https连接的情况下不会启动。如果我将正确的字符串传递给SSL_CTX_set_cipher_list函数,它就会工作。理论上它似乎工作得很完美,但在实际应用中它失败得

我想在每次系统启动时根据我的要求设置密码套装。但是,如果我考虑在SSLYCTXXSETIGIGHEPHELYLIST列表中意外地写入错误的密码字符串,它将无法添加密码,并且最终不会向系统连接HTTPS。为了解决这个问题,我计划添加一些恢复,在这种情况下,如果它无法设置用户定义的密码,它将使用默认字符串设置连接,这样我的系统在没有https连接的情况下不会启动。如果我将正确的字符串传递给SSL_CTX_set_cipher_list函数,它就会工作。理论上它似乎工作得很完美,但在实际应用中它失败得很严重。这是我的代码

ret = SSL_CTX_set_cipher_list (pMudPort->pMudPortSSLState->pSSLCtx,"Temp");
    printf("Return = %d -------------------\n",ret);
if(!ret)
{
    printf("fail to set cipher -------------------\n");
    printf("setting to default -------------------\n");
    SSL_CTX_set_cipher_list (pMudPort->pMudPortSSLState->pSSLCtx,
                             pSSLConfiguration->pCipherList);
}
这里,, Temp只是为了确保它第一次失败。 即使我第二次重写密码字符串,我的系统也不支持https。
这是重新设置密码的正确方法还是我需要在重新分配密码之前清理一些东西

您对SSL\u CTX\u set\u cipher\u列表的第二次调用是否返回成功?显示您正在使用的pCipherList字符串。这是客户端还是服务器?@YSU:是的,我的第二次调用返回“1”,即成功。@jww:pCipherList=ALL:!阿努尔:!MD5@STRENGTH非常好用。我已经测试过了。所有的:…:FOO:BAR都可以用。如果至少有一个密码匹配,SSL_CTX_set_cipher_list3将成功。请参阅上的文档。你在追求一个不存在的问题。