Gmssl编译参数项说明

前言

最近在整理电脑上项目资料,发现之前编译过nogmapi的gmssl库,因此整理记录下,方便以后回忆。

编译参数

Gmssl的编译参数基本上与OpenSSL的一致,同时又新增了一些配置参数项。gmssl/openssl配置脚本与大多数典型的软件包不同,它有自己的一套规则。详细的安装信息位于源码树下的Configure脚本文件中,如下所示:
在这里插入图片描述
Configure 脚本除了生成 Makefile 之外,还会根据 crypto/opensslconf.h.in生成crypto/opensslconf.h 头文件,该文件中中定义了许多宏。
linux下通过config脚本配置时最终也是调用的Configure脚本,config 脚本检查系统环境并调用 Configure 完成配置,config 脚本的作用相当于 config.guess。
下图是生成的opensslconf.h部分宏定义:
在这里插入图片描述
在 config 或 Configure 命令行上可以使用许多选项,具体如下

全局选项

第一类是全局性选项:

--openssldir=OPENSSLDIR
安装目录,默认是 /usr/local/ssl 。
--prefix=PREFIX
设置 lib include bin 目录的前缀,默认为 OPENSSLDIR 目录。
--install_prefix=DESTDIR
设置安装时以此目录作为"根"目录,通常用于打包,默认为空。
zlib
zlib-dynamic
no-zlib
使用静态的zlib压缩库、使用动态的zlib压缩库、不使用zlib压缩功能。
threads
no-threads
是否编译支持多线程的库。默认支持。
shared
no-shared
是否生成动态连接库。
asm
no-asm
是否在编译过程中使用汇编代码加快编译过程。
enable-sse2
no-sse2
启用/禁用SSE2指令集加速。如果你的CPU支持SSE2指令集,就可以打开,否则就要关闭。
gmp
no-gmp
启用/禁用GMP库
rfc3779
no-rfc3779
启用/禁用实现X509v3证书的IP地址扩展
krb5
no-krb5
启用/禁用 Kerberos 5 支持
ssl
no-ssl
ssl2
ssl3
no-ssl2
no-ssl3
tls
no-tls
启用/禁用 SSL(包含了SSL2/SSL3) TLS 协议支持。
dso
no-dso
启用/禁用调用其它动态链接库的功能。[提示]no-dso仅在no-shared的前提下可用。

算法选项

第二类用于禁用crypto目录下相应的子目录(主要是各种算法)。虽然理论上这些子目录都可以通过"no-*"语法禁用,但是实际上,为了能够最小安装libcrypto,libssl,openssl,其中的大部分目录都必须保留,实际可选的目录仅有如下这些

no-md2,no-md4,no-mdc2,no-ripemd
摘要算法
no-des,no-rc2,no-rc4,no-rc5,no-idea,no-bf,no-cast,no-camellia
对称加密算法
no-ec,no-dsa,no-ecdsa,no-dh,no-ecdh
非对称加密算法
no-comp
数据压缩算法
no-store
对象存储功能

其它选项

skf
no-skf
启用/禁用SKF相关接口
sdf
no-sdf
启用/禁用SDF相关接口
saf
no-saf
启用/禁用SAF相关接口
sof
no-sof
启用/禁用SOF相关接口

这些都是gmapi相关的接口,对应GM/T 0016、GM/T 0018、GM/T 0019、GM/T 0020等国密规范。

应用举例

小编在项目中想自己实现GM/T 0019规范中SAF类接口,由于gmssl中已声明定义了这些接口,若使用静态库,将导致其与我自己定义的接口冲突。故而通过这些选项将gmapi相关接口去除。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值