Openssl-环境准备
7月23日:OpenSSL的32位和64位编译,Windows和Linux系统的支持。
7月24日:OpenSSL源码调试与结构
OpenSSL
SSL作为一种协议,通常会与其它协议一同使用。
主要起到的作用就是在通讯的时候,将通讯的内容进行加密。
开源免费。本身内嵌了很多算法,除了实训安全数据传输,借助OpenSSL可以在写代码的时候帮我们高效完成任务。
Windows系统环境准备VS2022
Windows系统环境准备Perl5
Windows系统环境准备masm
(NASM全称The Netwide Assembler)
打开x86 Native Tools Command Prompt
perl Configure VC-WIN32
nmake
nmake install #安装好后有一个拷贝的过程
识别一个库是32位还是64位?
还是打开VS的Native Tools Prompt Command,使用dumpbin /Headers <文件名>
动态库和静态库的区别
Windows的动态库与静态库
动态库:A->B->D 比较小,需要完整的依赖顺序
->C
工具箱之ProcessExplorer
Windows高级编程全集视频课程
OpenSSL源码结构说明
Crypto文件夹,包含了OpenSSL主要的源代码
apps文件夹,OpenSSL可执行文件的源码,生成后的Openssl可执行文件.
其中的openssl.exe作为OpenSSL的命令行工具
有三处配置的地方:Configurations,config,configure
crypto占80%以上的重要性,包括各种算法的实现
demos:放了各种各样的示例
docs:帮助文件,man手册
engines:加密引擎。可以换成 硬件加速卡(比如 Intel QAT、/dev/crypto)、国密卡、甚至 纯汇编优化版本。
exporters/external:一些脚本工具
include:里边是各种头文件
test:很多很多的单元测试代码
关于使用openssl库的常见问题解决
常见错误:error while loading shared libraries: libcrypto.so.1.1: connot open shared object file:
No such file or directory
问题原因:
OpenSSL安装的默认位置:/usr/local/lib64
可执行文件链接库读取位置:/usr/lib64
解决方法:
1.临时改变动态库读取的路径 export LD_LIBRARY_PATH=<libcrypto.so所在路径>:$LD_LIBRARY_PATH
2.永久改变动态库读取路径
编辑/etc/ld.so.conf
在“include ld.so.conf.d/*.conf”下方增加”/usr/local/lib64”
保存后,执行/sbin/ldconfig -v
3.复制动态库到/usr/lib64
1 |
|
4.安装到/usr/lib64
make uninstall 卸载
打开openssl的MakeFile文件,找到LIBDIR,默认为LIB64,将其改为../LIB64
如何使用OpenSSL的静态库
gcc demo.c <静态库路径> -ldl -lpthread -o static_demo.out