Posted on 2009-12-11 12:20
S.l.e!ep.¢% 閱讀(406)
評論(0) 編輯 收藏 引用
openssl之EVP系列之1---算法封裝
??? ---根據(jù)openssl doc\crypto\EVP.pod翻譯和自己的理解寫成
??? (作者:DragonKing, Mail: wzhah@263.net ,發(fā)布于:http://openssl.126.com 之openssl專業(yè)論壇,版本:openssl-0.9.7)
???
??? EVP系列的函數(shù)定義包含在"evp.h"里面,這是一系列封裝了openssl加密庫里面所有算法的函數(shù)。通過這樣的統(tǒng)一的封裝,使得只需要在初始化參數(shù)的時候做很少的改變,就可以使用相同的代碼但采用不同的加密算法進(jìn)行數(shù)據(jù)的加密和解密。
??? EVP系列函數(shù)主要封裝了三大類型的算法,要支持全部這些算法,請調(diào)用OpenSSL_add_all_algorithms函數(shù),下面分別就其結(jié)構(gòu)作一個簡單的介紹。
??? 【公開密鑰算法】
??? 函數(shù)名稱:EVP_Seal*...*,EVP_Open*...*
??? 功能描述:該系列函數(shù)封裝提供了公開密鑰算法的加密和解密功能,實現(xiàn)了電子信封的功能。
??? 相關(guān)文件:p_seal.c,p_open.c
??? 【數(shù)字簽名算法】
??? 函數(shù)名稱:EVP_Sign*...*,EVP_Verify*...*
??? 功能描述:該系列函數(shù)封裝提供了數(shù)字簽名算法和功能。
??? 相關(guān)文件:p_sign.c,p_verify.c
??? 【對稱加密算法】
??? 函數(shù)名稱:EVP_Encrypt*...*
??? 功能描述:該系列函數(shù)封裝提供了對稱加密算法的功能。
??? 相關(guān)文件:evp_enc.c,p_enc.c,p_dec.c,e_*.c
??? 【信息摘要算法】
??? 函數(shù)名稱:EVP_Digest*...*
??? 功能描述:該系列函數(shù)封裝實現(xiàn)了多種信息摘要算法。
??? 相關(guān)文件:digest.c,m_*.c
??? 【信息編碼算法】
??? 函數(shù)名稱:EVP_Encode*...*
??? 功能描述:該系列函數(shù)封裝實現(xiàn)了ASCII碼與二進(jìn)制碼之間的轉(zhuǎn)換函數(shù)和功能。
??? 相關(guān)文件:encode.c
???
??? 注意:
??? 自從出現(xiàn)engin版本以后,所有對稱加密算法和摘要算法可以用ENGINE模塊實現(xiàn)的算法代替。如果ENGINE模塊實現(xiàn)的對稱加密和信息摘要函數(shù)被注冊為缺省的實現(xiàn)算法,那么當(dāng)使用各種EVP函數(shù)時,軟件編譯的時候會自動將該實現(xiàn)模塊連接進(jìn)去。
本文來自CSDN博客,轉(zhuǎn)載請標(biāo)明出處:http://blog.csdn.net/gdwzh/archive/2003/02/12/19227.aspx