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---算法封装的更多相关文章

  1. openssl之EVP系列之7---信息摘要算法结构概述

    openssl之EVP系列之7---信息摘要算法结构概述     ---依据openssl doc/crypto/EVP_DigestInit.pod翻译和自己的理解写成     (作者:Dragon ...

  2. openssl之EVP系列之12---EVP_Seal系列函数介绍

    openssl之EVP系列之12---EVP_Seal系列函数介绍     ---依据openssl doc/crypto/EVP_SealInit.pod翻译和自己的理解写成     (作者:Dra ...

  3. openssl之EVP系列之2---对称加密算法概述

    openssl之EVP系列之2---对称加密算法概述     ---依据openssl doc/crypto/EVP_EncryptInit.pod和doc/ssleay.txt cipher.doc ...

  4. openssl之EVP系列之13---EVP_Open系列函数介绍

    openssl之EVP系列之13---EVP_Open系列函数介绍     ---依据openssl doc/crypto/EVP_OpenInit.pod翻译和自己的理解写成     (作者:Dra ...

  5. openssl之EVP系列之9---EVP_Digest系列函数的一个样例

    openssl之EVP系列之9---EVP_Digest系列函数的一个样例     ---依据openssl doc/crypto/EVP_DigestInit.pod翻译     (作者:Drago ...

  6. openssl之EVP系列之8---EVP_Digest系列函数具体解释

    openssl之EVP系列之8---EVP_Digest系列函数具体解释     ---依据openssl doc/crypto/EVP_DigestInit.pod翻译和自己的理解写成     (作 ...

  7. openssl之EVP系列之11---EVP_Verify系列函数介绍

    openssl之EVP系列之11---EVP_Verify系列函数介绍     ---依据openssl doc/crypto/EVP_VerifyInit.pod翻译和自己的理解写成     (作者 ...

  8. openssl之EVP系列之6---EVP_Encrypt系列函数编程架构及样例

    openssl之EVP系列之6---EVP_Encrypt系列函数编程架构及样例     ---依据openssl doc/crypto/EVP_EncryptInit.pod和doc/ssleay. ...

  9. openssl之EVP系列之10---EVP_Sign系列函数介绍

    openssl之EVP系列之10---EVP_Sign系列函数介绍     ---依据openssl doc/crypto/EVP_SignInit.pod翻译     (作者:DragonKing, ...

随机推荐

  1. BZOJ 2134: 单选错位( 期望 )

    第i个填到第i+1个的期望得分显然是1/max(a[i],a[i+1]).根据期望的线性性, 我们只需将每个选项的期望值累加即可. ---------------------------------- ...

  2. Android的WiFi开启与关闭

    注意:要首先注册开启和关闭WiFi的权限, <?xml version="1.0" encoding="utf-8"?> <manifest ...

  3. windows和centos用cutycapt截网页的图

    centos下:(主要参考http://loosky.net/2816.html) (1)安装qt47 增加qt47的源 vim /etc/yum.repos.d/atrpms.repo //加入如下 ...

  4. zzuli求最大值

    1786: 求最大值 Time Limit: 1 Sec  Memory Limit: 128 MB Submit: 134  Solved: 28SubmitStatusWeb Board Desc ...

  5. in window js 未定义和undifined的区别

    浏览器报错:未定义和undifined不是同一概念,前者是没有申明,后者是没有赋值. 1: <html>     <body>         <script>   ...

  6. Nmon 性能:分析 AIX 和 Linux 性能的免费工具

    原文摘自: http://www.ibm.com/developerworks/cn/aix/library/analyze_aix/ 官网:http://www.ibm.com/developerw ...

  7. hibernate 一对多映射

    package com.entity.onetomany; import java.util.ArrayList; import java.util.List; import javax.persis ...

  8. Python 第五篇(下):系统标准模块(shutil、logging、shelve、configparser、subprocess、xml、yaml、自定义模块)

    目录: shutil logging模块 shelve configparser subprocess xml处理 yaml处理 自定义模块 一,系统标准模块: 1.shutil:是一种高层次的文件操 ...

  9. IOS 新消息通知提示-声音、震动

    一.APNS 1.注册 [[UIApplication sharedApplication] registerForRemoteNotificationTypes:UIRemoteNotificati ...

  10. 15-UIKit(view布局、Autoresizing)

    目录: 1. 纯代码布局 2. 在View中进行代码布局 3. Autoresizing 回到顶部 1. 纯代码布局 纯代码布局分VC下和V下 [MX1-layout-code] 在VC下覆盖view ...