wolfssl替换openssl

在嵌入式工程中,为了实现一个小的功能,引用了一个openssl,编译生成的固件太大了,flash装不下了。而wolfssl在满足基本需求的同时,又能大大减小固件的大小。wolfssl以前称为cyassl,它提供了一个针对嵌入式和rtos环境的嵌入式ssl/tls库。它具有完全的客户端和服务器支持,具有相互认证,并且可以在各种平台上使用,它非常容易编译。

wolfssl 除了本地API之外,wolfssl还提供了一个openssl兼容性头文件wolfssl/openssl/ssl.h ,以简化转换为使用wolfssl或帮助将现有的openssl应用程序移植到wolfssl。openssl兼容层将最常用的openssl命令的子集映射到wolfssl的本地API函数。这样在应用程序或项目中通过wolfssl轻松替换openssl,而无需更改大量代码。

1、下载

地址:https://www.wolfssl.com/download/

或者使用:https://www.softpedia.com/get/Programming/Components-Libraries/CyaSSL.shtml#download

2、编译

进入目录后,我们mkdir一个目录,用于编译后,头文件和lib的生成路径;

之后我们需要执行configure,执行configure的目的是为了生成Makefile。configure后面可以跟很多选项,比如指明编译链、安装路径、静态库或者动态库等。具体说明可以执行 ./configure –help。其中需要用–host选项来指明交叉编译链。

./configure --prefix=$(pwd)/ISVP --host=mips-linux-uclibc  --enable-openssh --enable-tlsv10 --enable-static --disable-shared CC=/opt/mips-gcc472-glibc216-64bit/bin/mips-linux-uclibc-gnu-gcc CXX=/opt/mips-gcc472-glibc216-64bit/bin/mips-linux-uclibc-gnu-g++  --without-zlib --with-pic=no

make

make install

在自己所建的目录中就可以得到响应的头文件和静态库

3、应用

我们知道libcurl要支持HTTPS就需要依赖openssl,因此我们直接使用wolfssl替换openssl,该替换是无需改动任何代码接口的,因此使用很方便。

libcurl依赖wolfssl,编译libcurl的方法和如下描述一样:https://blog.csdn.net/Swallow_he/article/details/98478466

之后我们使用HTTPClient访问加密的HTTPServer(https访问),得出所有的功能正常。

猜你喜欢

转载自blog.csdn.net/Swallow_he/article/details/101208041