用cpp和c语言包装国密的tls/ssl实现,包括cpp动态库,c语言native api接口库,测试代码等
根据传入的证书不同,可以同时支持国密和非国密。
最底层依赖TASSL库,用c风格在不同操作系统平台上封装,代码差异主要在对socket编程上,linux平台和windows平台的socket编程略有不同。
本代码在bcos的python sdk里先实现适配了,考虑到可以复用,则独立为一个项目。
在windows上,因开发环境使用的是msys2+mingw64,和msvc编译环境并不兼容
cpp_linux: cpp封装代码,linux centos7平台支持
cpp_win: cpp封装代码,windows平台支持,在msys2+mingw64上编译
cpp_common: 操作系统平台相关性不那么强的一些公共代码
获取TASSL代码:git clone https://github.com/jntass/TASSL (或gitee镜像)
进入TASSL目录,config
注意用shared选项生成动态库
./config shared
make clean ;make ;make install
此刻应在TASSL目录下生成libssl.so,libcrypto.so 等文件。
(todo: TASSL是否应编译成特定的名字,如libtassl.so,目前是默认的libssl.so)
是否安装TASSL的库到系统路径,取决于实际环境和需求。
export TASSL=[实际的TASSL目录,需要检索头文件,lib库等]
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:./:$TASSL
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:[能找到native_tassl_sock_wrap.so/dll运行依赖库的目录]
并确认环境变量生效
在windows环境上,MSYS2是MSYS的一个升级版,集成了pacman和Mingw-w64的Cygwin升级版, 提供了bash shell等linux环境(仿真)、版本控制软件(git/hg)和MinGW-w64 工具链(来自百度百科)
配置加速镜像:
编辑 /etc/pacman.d/mirrorlist.mingw64 ,在文件开头添加:
Server = https://mirrors.tuna.tsinghua.edu.cn/msys2/mingw/x86_64
编辑 /etc/pacman.d/mirrorlist.msys ,在文件开头添加:
Server = https://mirrors.tuna.tsinghua.edu.cn/msys2/msys/$arch
然后执行 pacman -Sy 刷新软件包数据即可。
pacman -S mingw-w64-x86_64-gcc mingw-w64-x86_64-cmake mingw-w64-x86_64-make mingw-w64-x86_64-pkg-config
升级核心包: pacman -S --needed filesystem msys2-runtime bash libreadline libiconv libarchive libgpgme libcurl pacman ncurses libintl, 之后需要关闭所有 MSYS2 shell,然后运行 autorebase.bat
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。