Closed yuanjilee closed 3 years ago
这里的的编译流程与curl官方无差别,只是需要通过指定--with-ssl
路径为openssl/gmssl/tassl
库你设备上的安装路径
build.sh
只是用于示例,里面的路径应该与你的不同
很感谢你的回复~
看了你的commit记录,应该是在 curl 的基础上做了gmssl 的双证书支持,很高兴遇到这个库。
我最近在调研 curl + gmssl 实现国密的方案,现在卡在了怎么通过 curl 去改变 TLS 握手支持国密的 sm2 加密,以及如何设置 ECDHE-SM2-WITH-SMS4-GCM-SM3 加密套件。
因为一直做移动端开发,所以对 curl 这块不熟悉,经过调研本来想着在 curl 的 curl_easy_setopt(_curl, CURLOPT_SSL_CTX_FUNCTION, *sslctx_function);
方法回调里拿到 sslctx,然后通过修改sslctx 初始化和设置 GMTLS_client_method
,但是又不知道该具体设置东西。
麻烦请教下:
期待您的回复~
TLS握手支持sm2这个是由套件决定的,只要套件是被ssl库所支持的,那就是可以支持的
curl使用ssl的时候对ssl接口封装极少,--ciphers
参数在此处有详细描述(里面介绍的实际就是openssl
支持的套件,所以你应该可以直接通过该参数达到效果。
你要在curl里设置gmssl相关的东西,可以换成“curl的哪些配置项会影响openssl”,我以前做测试的是够正常连接国密网站的,所以在你知道curl的局限性之前,建议把注意力放在如何使用curl上,而不是如何改它的代码
至于你想要做集成开发,其实更应该参考的openssl s_server
命令和openssl s_client
命令,你需要把curl看成是ssl库的调用者,所以它能为你带来的就是:很多轮子不用再造一次
十分感谢解惑~
给出的思路让我收获很多,同时也对TLS握手和curl 有了更深的认识。 最终找到了正确解决问题的思路,特来感谢。
麻烦问下这个库是要怎么编译? 执行 ./build.sh 就可以吗?但是路径里并没有看到国密源码或者 .a 库