通过OpenSSL/Tongsuo配置文件openssl.cnf使用KAE
当需要使用OpenSSL配置文件调用KAE时,需要在配置文件openssl.cnf中添加KAE相关配置参数。通过配置文件方式使用KAE,可以使用户的APP在非常小的修改量情况下使用加速器功能。
如下所示,仅需调用一次此初始化API即可完成相应的配置工作:
OPENSSL_init_crypto(OPENSSL_INIT_LOAD_CONFIG, NULL); //加载配置文件并初始化

新建openssl.cnf需要添加如下配置信息。
openssl_conf=openssl_def [openssl_def] engines=engine_section [engine_section] kae=kae_section [kae_section] engine_id=kae #openssl版本为1.1.1x dynamic_path=/usr/local/lib/engines-1.1/kae.so #openssl版本为3.0.x设置为如下路径 #dynamic_path=/usr/local/lib/engines-3.0/kae.so KAE_CMD_ENABLE_ASYNC=1 KAE_CMD_ENABLE_SM3=1 KAE_CMD_ENABLE_SM4=1 default_algorithms=ALL init=1

- KAE_CMD_ENABLE_ASYNC为可选配置,0表示不使能异步功能,1表示使能异步功能,默认使能。
- KAE_CMD_ENABLE_SM3为可选配置,0表示不使能SM3加速功能,1表示使能SM3加速功能,默认使能。
- KAE_CMD_ENABLE_SM4为可选配置,0表示不使能SM4加速功能,1表示使能SM4加速功能,默认使能。
- default_algorithms=ALL表示所有算法优先查找KAE加速引擎,若引擎不支持,则切换OpenSSL进行计算。
设置OPENSSL_CONF环境变量:
1 | export OPENSSL_CONF=/home/app/openssl.cnf #该路径为openssl.cnf存放路径 |
使用OpenSSL配置文件示例如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | #include <stdio.h> #include <stdlib.h> /* OpenSSL headers */ #include <openssl/bio.h> #include <openssl/err.h> #include <openssl/engine.h> int main(int argc, char **argv) { /* Initializing OpenSSL */ ERR_load_BIO_strings(); /* Load openssl configure */ OPENSSL_init_crypto(OPENSSL_INIT_LOAD_CONFIG, NULL); ENGINE *e = ENGINE_by_id("kae"); /*指定KAE加速引擎用于RSA加解密,如果初始时使用ENGINE_set_default_RSA(ENGINE *e);则无需传入e*/ RSA *rsa = RSA_new_method(e); /*The user code*/ …… ENGINE_free(e); } |
父主题: KAE的应用