openssl之EVP系列之1---算法封装
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函数时,软件编译的时候会自己主动将该实现模块连接进去。
openssl之EVP系列之1---算法封装的更多相关文章
- openssl之EVP系列之7---信息摘要算法结构概述
openssl之EVP系列之7---信息摘要算法结构概述 ---依据openssl doc/crypto/EVP_DigestInit.pod翻译和自己的理解写成 (作者:Dragon ...
- openssl之EVP系列之12---EVP_Seal系列函数介绍
openssl之EVP系列之12---EVP_Seal系列函数介绍 ---依据openssl doc/crypto/EVP_SealInit.pod翻译和自己的理解写成 (作者:Dra ...
- openssl之EVP系列之2---对称加密算法概述
openssl之EVP系列之2---对称加密算法概述 ---依据openssl doc/crypto/EVP_EncryptInit.pod和doc/ssleay.txt cipher.doc ...
- openssl之EVP系列之13---EVP_Open系列函数介绍
openssl之EVP系列之13---EVP_Open系列函数介绍 ---依据openssl doc/crypto/EVP_OpenInit.pod翻译和自己的理解写成 (作者:Dra ...
- openssl之EVP系列之9---EVP_Digest系列函数的一个样例
openssl之EVP系列之9---EVP_Digest系列函数的一个样例 ---依据openssl doc/crypto/EVP_DigestInit.pod翻译 (作者:Drago ...
- openssl之EVP系列之8---EVP_Digest系列函数具体解释
openssl之EVP系列之8---EVP_Digest系列函数具体解释 ---依据openssl doc/crypto/EVP_DigestInit.pod翻译和自己的理解写成 (作 ...
- openssl之EVP系列之11---EVP_Verify系列函数介绍
openssl之EVP系列之11---EVP_Verify系列函数介绍 ---依据openssl doc/crypto/EVP_VerifyInit.pod翻译和自己的理解写成 (作者 ...
- openssl之EVP系列之6---EVP_Encrypt系列函数编程架构及样例
openssl之EVP系列之6---EVP_Encrypt系列函数编程架构及样例 ---依据openssl doc/crypto/EVP_EncryptInit.pod和doc/ssleay. ...
- openssl之EVP系列之10---EVP_Sign系列函数介绍
openssl之EVP系列之10---EVP_Sign系列函数介绍 ---依据openssl doc/crypto/EVP_SignInit.pod翻译 (作者:DragonKing, ...
随机推荐
- [Swust OJ 1084]--Mzx0821月赛系列之情书(双线程dp)
题目链接:http://acm.swust.edu.cn/problem/1084/ Time limit(ms): 1000 Memory limit(kb): 65535 Descriptio ...
- BZOJ 1787: [Ahoi2008]Meet 紧急集合( 树链剖分 )
这道题用 LCA 就可以水过去 , 但是我太弱了 QAQ 倍增写LCA总是写残...于是就写了树链剖分... 其实也不难写 , 线段树也不用用到 , 自己YY一下然后搞一搞就过了...速度还挺快的好像 ...
- zIndex属性在IE中无效
在ie中他的子类的zindex就以父类为准: <!doctype html> <html> <head> <meta charset="utf-8& ...
- oracle11g dataguard 完全手册(转)
转自:http://www.cnblogs.com/tippoint/archive/2013/04/18/3029019.html 一.前言: 网络上关于dataguard的配置文章很多,但是很 ...
- CPU自制入门——笔记
最近在看日本人的那本书<CPU自制入门>就开始自己捣鼓.把工程方到QuartusII 里面后发现编译不通过,总是提示找不到头文件.工程的目录架构是这个样子的 而.v文件中的.h 是这么包含 ...
- HTML 5 Web Storage 使用
在html中,可以使用 Web Storage API 来保存数据在浏览器客户端,这样可以避免重复从服务器加载数据. 有两种API, sessionStorage 和 localStorage ,它们 ...
- linux 远程桌面工具NX
1.在linux服务器上需要安装3个文件,下载地址为: http://www.nomachine.com/download-package.php?Prod_Id=1977 nxclient-3.4. ...
- PLSQL Developer过期要注冊表
打开执行输入 regedit 打表注冊表 删除 HKEY_CURRENT_USER\Software\Allround Automations HKEY_CURRENT_USER\Software\M ...
- SQLyog 注册码
用户名: 随意填写 秘钥: ccbfc13e-c31d-42ce-8939-3c7e63ed5417a56ea5da-f30b-4fb1-8a05-95f346a9b20ba0fe8645-3916- ...
- Hibernate 一对一关联映射
package com.entity; import javax.persistence.Entity; import javax.persistence.OneToOne; @Entity publ ...