Advertisement

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)

还没有任何评论哟~