2021SC@SDUSC OpenSSL动态模块加载
发布时间
阅读量:
阅读量
2021SC@SDUSC
6 动态模块加载
6.1 动态库加载
用于在程序运行过程中引入所需模块的动态库加载函数,其具体实现方式在不同操作系统中存在差异。
此类动态加载函数通常具备以下主要功能:
1)实现动态库的加载操作
Windows平台采用LoadLibraryA函数;
Linux系统则使用dlopen函数;
上述函数在调用时通常需要传入动态库文件的名称作为参数。
2)获取目标函数的内存地址
Windows环境下通过GetProcAddress函数实现;
Linux系统中则依赖dlsym函数完成该功能;
这些接口在调用时一般需要提供目标函数的名称作为输入参数,并返回对应的内存地址。
3)执行动态库的卸载操作
Windows系统使用FreeLibrary函数;
Linux平台则通过dlclose函数进行处理。
6.2 DSO概述
DSO机制允许用户在运行时动态引入并调用动态库中的功能模块。
由于不同操作系统对动态库加载接口存在差异,OpenSSL的DSO组件对各类平台下的相关接口进行了统一封装,从而提升了代码在不同环境下的可移植性。OpenSSL中DSO功能的核心用途在于支持SSL协议所需的压缩算法以及硬件加速引擎(engine)的动态加载。
除基础封装功能外,OpenSSL的DSO模块
全部评论 (0)
还没有任何评论哟~
