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