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. php数组操作小结

    $x unset($x[3])      //key不重排

  2. php5.3升级到5.5

    在网站中发布中: / 开启调试模式 建议开发阶段开启 部署阶段注释或者设为falsedefine('APP_DEBUG',true); true没问题,改为:false就报错 报错如下: PHP Fa ...

  3. double 型变量的输入输出标准格式

    c语言double型变量标准输入格式: scanf("%lf",num); 标准输出格式: printf("%f\n",num); 注:有过输出用%lf输出OJ ...

  4. AppStore安装APP发生错误解决方法

    打开网络偏好设置 高级  -> DNS ->  +  ->  114.114.114.114

  5. Android 修改底部导航栏navigationbar的颜色

    Android 修改底部导航栏navigationbar的颜色 getWindow().setNavigationBarColor(Color.BLUE); //写法一 getWindow().set ...

  6. php 父类子类构造函数注意事项

    网上流传的2点: PHP的构造函数继承必须满足以下条件: 当父类有构造函数的声明时,子类也必须有声明,否则会出错. 在执行父类的构造函数时,必须在子类中引用parent关键字. 第1点不需要. 第二个 ...

  7. 2014Esri全球用户大会之标准和互操作

    1.   ArcGIS是一个开放协作的平台吗?Esri是怎样看待"开放"的? 是的,ArcGIS是一个开放协作的平台.Esri公司致力于支持我们的用户更加easy的在异构环境下工作 ...

  8. BZOJ 3011: [Usaco2012 Dec]Running Away From the Barn( dfs序 + 主席树 )

    子树操作, dfs序即可.然后计算<=L就直接在可持久化线段树上查询 -------------------------------------------------------------- ...

  9. Android 关于网址,电话号码,邮箱的正则表达式-最权威

    需求:判断网址是否合法 今天在写一个项目的时候,需要能够识别网址的功能,首先想到的是正则表达式 但是网址的类型多种多样,网络上各种表达式也一搜一大把,很难知道哪一位大神写的靠谱 发现:TextView ...

  10. Jquery学习笔记:利用find和children方法获取后代元素

    在很多场景下,需要根据一个已知的jquery对象,去查找其满足条件的后代节点. 这时可以利用 find函数和children来处理. find和children函数都可有一个参数,常见的是一个字符串, ...