OpenSSL 对称加密算法中如何添加新算法 OpenSSL 是一个开源的加密算法库,它提供了对称加密算法、非对称加密算法、哈希算法等多种加密算法。OpenSSL 的对称加密算法中可以添加新算法,以满足不同的加密需求。下面我们将介绍如何在 OpenSSL 对称加密算法中添加新算法。 一、加载加密算法 在调用加密算法之前,需要加载加密算法函数和单向散列算法函数。OpenSSL 提供了 OpenSSL_add_all_algorithms 函数来加载所有加密算法和单向散列算法函数。该函数实现如下: void OpenSSL_add_all_algorithms(void) { OpenSSL_add_all_ciphers(); /* 加载加密算法 */ OpenSSL_add_all_digests(); /* 加载单向散列函数 */ } OpenSSL_add_all_ciphers 函数实现如下: void OpenSSL_add_all_ciphers(void) { EVP_add_cipher(EVP_rc2_cfb()); 。。。。。 PKCS12_PBE_add(); PKCS5_PBE_add(); } 这个过程的主要任务是向全局变量 names_lh 注册加密算法,如果添加了新的加密算法,必须向 names_lh 注册。 二、实现 EVP_add_cipher 函数 EVP_add_cipher 函数用于向 names_lh 注册新的加密算法。该函数实现如下: int EVP_add_cipher(EVP_CIPHER *c) { int r; r = OBJ_NAME_add(OBJ_nid2sn(c->nid), OBJ_NAME_TYPE_CIPHER_METH, (char *)c); if (r == 0) return(0); r = OBJ_NAME_add(OBJ_nid2ln(c->nid), OBJ_NAME_TYPE_CIPHER_METH, (char *)c); return(r); } 这个函数将新的加密算法注册到 names_lh 中。 三、添加 IDEA 加密算法 IDEA 加密算法是一个常用的对称加密算法。下面我们将介绍如何添加 IDEA 加密算法: #ifndef NO_IDEA EVP_add_cipher(EVP_idea_ecb()); /* 添加 EBC 加密模式 */ EVP_add_cipher(EVP_idea_cfb()); /* 添加 CFB 加密模式 */ EVP_add_cipher(EVP_idea_ofb()); /* 添加 OCF 加密模式 */ EVP_add_cipher(EVP_idea_cbc()); /* 添加 CBC 加密模式 */ EVP_add_cipher_alias(SN_idea_cbc, "IDEA"); /* 添加 cbc 加密算法的别名 “IDEA” */ EVP_add_cipher_alias(SN_idea_cbc, "idea"); /* 添加 cbc 加密算法的别名 “idea” */ #endif 在包括 IDEA 加密算法的情况下,OpenSSL 将会选择 IDEA 加密算法模块。 添加新算法到 OpenSSL 对称加密算法中需要加载加密算法、实现 EVP_add_cipher 函数和添加新的加密算法。通过这种方式,可以添加多种加密算法以满足不同的加密需求。
剩余20页未读,继续阅读
- 粉丝: 5
- 资源: 896
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
评论0