我尝试在Openssl中为新定义的引擎添加新的摘要算法。我已将新的nids添加到文件crypto/objects/obj_mac.num
:
simple_cipher 920
id_simple_cipher 921
并将此行添加到crypto/objects/object.txt
:
!Cname id-simple_cipher
cryptopro 100 : simple_cipher : SIMPLE 28147-89
这到lvalues
数组:
0x2A,0x85,0x03,0x02,0x02,0x64, /* [5973] OBJ_id_simple_cipher */
当我编译Openssl时,以下行被添加到文件crypto/objects/obj_mac.h
:
#define SN_id_simple_cipher "simple_cipher"
#define LN_id_simple_cipher "SIMPLE 28147-89"
#define NID_id_simple_cipher 921
#define OBJ_id_simple_cipher OBJ_cryptopro,100L
这两行到nid_objs
中的crypto/objects/obj_dat.h
数组:
{NULL,NULL,NID_undef,0,NULL,0},
{"simple_cipher","SIMPLE 28147-89",NID_id_simple_cipher,6,
&(lvalues[5973]),0},
并且还将nid添加到此文件中的其他数组中。
但是当我尝试加载引擎或运行此命令openssl engine -c engine-name
时,我会导致分段错误。我认为这是因为添加了密码并且在为密码定义新的nid时我做错了什么。
当我将新定义的nid添加到此数组时,文件engines/simple/eng_simple.c
(我的引擎已定义)中有一个名为gost_cipher_nids
的数组,此seg故障发生。
我是openssl的新手,我非常感谢任何帮助。
我正在使用版本OpenSSL 1.0.1e-fips