gpt4 book ai didi

c++ - SSL_CTX_use_PrivateKey_file 在 Linux 下失败

转载 作者:太空宇宙 更新时间:2023-11-04 09:57:12 32 4
gpt4 key购买 nike

我试图在 Linux 下的 OpenSSL 中使用 SSL_CTX_use_PrivateKey_file 函数,但它返回 false。周围的代码已经从 Windows 移植过来,一切运行良好。是否有一些必须根据系统不同而不同的事情?

我已经在 Ubuntu 下自己编译了 OpenSSL 库(默认配置等),并且正在使用适用于 Windows 的预编译二进制文件(从 OpenSSL 站点链接)。

证书和 key 都在 .pem 文件中。此外,还设置了密码。

下面基本上就是做了什么;

SSL_CTX_set_default_passwd_cb( pContext, passwdCallback );
SSL_CTX_set_default_passwd_cb_userdata( pContext, (void*)this );
SSL_CTX_use_certificate_file( pContext, strCertificateFile, SSL_FILETYPE_PEM );
SSL_CTX_use_Privatekey_file( pContext, strPrivateKeyFile, SSL_FILETYPE_PEM ); // fail in Linux but work fine in Windows

有没有人有想法?

最佳答案

为了简单起见,我从密码回调中删除了所有代码,并使用了简单的 pBuf = "mypass"; return 6; 这将是回调函数的最低限度。这很好用。

那么 Windows 代码和 Linux 代码之间有什么不同呢?好吧,分别调用 strcpy_sstrcpy 是代码中的唯一区别。这两者之间有什么不同(附加验证参数除外)?

为了验证字符串复制操作是否成功,代码简单地检查是否等于 0。但是,这两个复制函数对其返回值有不同的规范。 Microsoft 将“strcpy”的返回行为从“0 表示错误”更改为“0 表示成功”。 唉...

关于c++ - SSL_CTX_use_PrivateKey_file 在 Linux 下失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2028862/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com