图书馆没有密码可用

时间:2015-09-15 14:31:34

标签: c++ macos ssl openssl

我目前正在尝试使用C ++和XCode在Mac上创建HTTPS连接。

守则相当简单:

SSL_load_error_strings();
ERR_load_BIO_strings();
OpenSSL_add_all_algorithms();

SSL * ssl;
BIO * bio;
SSL_CTX * ctx = SSL_CTX_new(SSLv23_client_method());

std::string host = host_IPv4 + ":443"; // host_IPv4 given as std::string

if(ctx == NULL){

    std::cout << ERR_reason_error_string(ERR_get_error()) << std::endl;

}

int load_error = SSL_CTX_load_verify_locations(ctx, "/path/to/ca.pem", NULL);

现在我将所有这些都放在一个函数中并将host_IPv4传递给它。该函数从main.cpp调用。

我的问题是ctx总是为NULL而我得到的错误是

  

库没有密码

我读了here我应该运行

SSL_library_init();

在任何其他SSL调用之前,但遗憾的是没有解决任何问题。无论我把代码放在哪里,仍然会得到相同的错误。

我在OS X 10.10上使用XCode 6.2和libssl 0.9.8以及libcrypto 0.9.8(他们预先安装了它们)。

有人有想法吗?

1 个答案:

答案 0 :(得分:1)

好的,这是我的错:

我将ctx定义为全局变量,这种方式发生在SSL的init()之前。