怎么在libcurl使用gmssl?
curl(8.0.1)工程引用了gmssl(GmSSL 2.5.4 - OpenSSL 1.1.0d),但是没见能访问国密的网站,抓了一下包,没发现加密套件有国密算法。
我想在libcurl中使用gmssl,应该怎么办?
怎么在libcurl使用gmssl?
curl(8.0.1)工程引用了gmssl(GmSSL 2.5.4 - OpenSSL 1.1.0d),但是没见能访问国密的网站,抓了一下包,没发现加密套件有国密算法。
我想在libcurl中使用gmssl,应该怎么办?
首先需要确保gmssl已经正确安装并且可用。然后需要在libcurl的代码中使用gmssl的加密套件。可以通过以下步骤实现:
确认gmssl的安装路径,并将路径添加到libcurl的链接器选项中。
在libcurl的代码中使用以下代码启用gmssl的加密套件:
curl_easy_setopt(curl, CURLOPT_SSL_CIPHER_LIST, "DEFAULT@SECLEVEL=1");
SSL_CTX_set_cipher_list(ctx, "ALL");
STACK_OF(SSL_CIPHER) *ciphers = SSL_CTX_get_ciphers(ctx);
for(int i=0; i<sk_SSL_CIPHER_num(ciphers); i++) {
SSL_CIPHER *cipher = sk_SSL_CIPHER_value(ciphers, i);
const char *name = SSL_CIPHER_get_name(cipher);
// 检查是否包含国密算法
}
确认国密算法已经被服务器支持。可以通过抓包或者使用OpenSSL的s_client命令来确认。
如果以上步骤都已经完成,但是仍然无法访问国密网站,可能是因为服务器不支持国密算法或者使用了不同的加密套件。可以尝试使用其他加密套件或者与服务器管理员联系来解决问题。