我正在尝试在C中使用OpenSSL来发出https请求。 我的代码在OSX和Linux中运行得很好。它在Windows中存在严重问题。 我在下面的https://wiki.openssl.org/index.php/SSL/TLS_Client(页面底部)
中使用下载中的示例代码我可以从中获得一个好的(可能),所有后续尝试都失败了。
在visual studio中运行debug时,它会在int
行失败。 Visual Studio只是告诉我堆已损坏。我检查了文件权限,我检查了路径,在异常调试时检查变量,看起来所有变量都很好,但它似乎没有通过验证。我正在使用LibreSSL SDK。
SSL_CTX_load_verify_locations
我注意到如果我能够通过它,在那些罕见的事件上,而不是完全让它完成,只是停止调试,我可以再次运行到同一点而没有问题。
我尝试过使用不同的pem文件,以确保它不仅仅是被锁定的文件,但这并没有什么区别。
我很高兴调试更多,但我需要一些关于如何从VS获取更多信息的指示。
以下相关代码段:
const char *file_loc = "C:\\Users\\{USER}\\Desktop\\trusted-roots.pem";
res = SSL_CTX_load_verify_locations(ctx, file_loc, NULL);