openssl之EVP系列之1---算法封装
2015-06-26 13:52
351 查看
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 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函数时,软件编译的时候会自动将该实现模块连接进去。
相关文章推荐
- 通过boundingRectWithSize:options:attributes:context:计算文本尺寸
- 用openssl创建公钥私钥证书的脚本
- linux常用查看硬件设备信息命令
- LNMP-Linux下Nginx+MySQL+PHP+phpMyAdmin+eAcelerator一键安装包
- hdu1299 Diophantus of Alexandria---素因子分解
- Linux history命令
- CentOS ISO to USB on Mac OS X
- 如何在centos6.5下安装wxPython
- shell expect
- I.MX6 Linux Serial Baud Rate hacking
- #JSP#Tomcat下使用JSP调用JavaBean显示ClassNotFoundException
- CentOS 6.6编译安装LAMP(Apache2+PHP+Mysql+PHPmyAdmin)
- CentOS 6.6编译安装LAMP(Apache2+PHP+Mysql+PHPmyAdmin)
- linux下mysql的root密码忘记解决方法
- nginx方面的书籍
- Linux ls 命令
- Android开发之旅:;HelloWorld项目的目录结构; android架构
- 认识 BASH 这个 Shell
- opencv下的Garbor滤波
- linux 计划任务Cron