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

    ---依据openssl doc/crypto/EVP_OpenInit.pod翻译和自己的理解写成

    (作者:DragonKing, Mail: wzhah@263.net ,公布于:http://openssl.cn 之openssl专业论坛,版本号:openssl-0.9.7)

    本系列函数相对于EVP_Seal系列函数,是进行信封加密的。它将公钥加密了的密钥加密出来。然后进行数据的解密。其定义的函数例如以下(openssl/evp.h):

     int EVP_OpenInit(EVP_CIPHER_CTX *ctx,EVP_CIPHER *type,unsigned char *ek,

     int ekl,unsigned char *iv,EVP_PKEY *priv);

     int EVP_OpenUpdate(EVP_CIPHER_CTX *ctx, unsigned char *out,

     int *outl, unsigned char *in, int inl);

     int EVP_OpenFinal(EVP_CIPHER_CTX *ctx, unsigned char *out,

     int *outl);

    【EVP_OpenInit】

    该函数初始化一个用来加密数据的ctx结构。

它使用參数priv的私钥解密參数ek里面长度为ekl字节的加密密钥。參数iv是初始化向量。假设參数type设定的加密算法长度是可变的,那么密钥长度就会被设置为解密得到的密钥的长度。假设加密算法长度是固定的,那么得到的解密密钥的长度就必须跟固定算法长度同样才行。

成功运行返回密钥的长度,否则返回0。

    跟函数EVP_DecryptInit一样。该函数也能够分成多次调用,首次调用应该将參数priv设置为NULL,再次调用的时候应该将type设置为NULL。

    【EVP_OpenUpdate】

    该函数是一个宏定义函数,事实上际定义例如以下:

    #define EVP_OpenUpdate(a,b,c,d,e) EVP_DecryptUpdate(a,b,c,d,e)

openssl之EVP系列之13---EVP_Open系列函数介绍的更多相关文章

  1. 13.翻译系列:Code-First方式配置多对多关系【EF 6 Code-First系列】

    原文链接:https://www.entityframeworktutorial.net/code-first/configure-many-to-many-relationship-in-code- ...

  2. openssl之EVP系列之1---算法封装

    openssl之EVP系列之1---算法封装     ---依据openssl doc/crypto/EVP.pod翻译和自己的理解写成     (作者:DragonKing, Mail: wzhah ...

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

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

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

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

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

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

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

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

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

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

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

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

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

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

随机推荐

  1. 【Linux】shell编程案例

    一.随机生成字符文件名 1.需求描述: 使用for循环在/usr/test目录下创建10个html文件,其中每个文件需要包含10个随机小写字母加固定字符串test,案例名称如下: 以下为示例: 2.代 ...

  2. C#与Java同步加密解密DES算法

    在实际项目中,往往前端和后端使用不同的语言.比如使用C#开发客户端,使用Java开发服务器端.有时出于安全性考虑需要将字符加密传输后,由服务器解密获取.本文介绍一种采用DES算法的C#与Java同步加 ...

  3. sql如何通过当前日期获取上周,上上周,上上上周的起始日期(周一_周七)

    当前时间周的起始日期(以周一为例)select DATEADD(week,DATEDIFF(week,0,getdate()),0)上周起始:select dateadd(week,-1,DATEAD ...

  4. SICK TiM561激光雷达的使用

    TIM系列激光扫描传感器原理: 激光发射器发出激光脉冲,当激光碰到物体后,部分激光反射回激光接收器.通过计算发射/接收脉冲时间差,可以计算出距离值.激光扫描器连续不停的发射激光脉冲,由旋转的光学机构将 ...

  5. 3299 有序数组合并求第K大问题

    题目描述 Description 给出两个有序数组A和B(从小到大有序),合并两个有序数组后新数组c也有序,询问c数组中第k大的数 假设不计入输入输出复杂度,你能否给出一个O(logN)的方法? 输入 ...

  6. 【win7 + win server 2008】设置定时任务,设置.bat 文件去执行php脚本 == 用来配合爬虫程序简直不要太爽

    Windows Server 2008中使用计划任务定时执行BAT bat进行PHP脚本的执行 一.首先进行任务管理器设置  每隔1分钟执行.BAT 文件配置 首先Windows Server 200 ...

  7. mongodb的serverstatus

    MongoDB shell version: 2.0.5 connecting to: test { "host" : "TENCENT64.site", -- ...

  8. 【MyBatis】MyBatis之如何配置

    1,MyBatis简介 MyBatis 是支持普通 SQL查询,存储过程和高级映射的优秀持久层框架.MyBatis 消除了几乎所有的JDBC代码和参数的手工设置以及结果集的检索.MyBatis 使用简 ...

  9. Spring MVC @PathVariable被截断

    一.问题描述 一个控制器提供RESTful访问信息: @RequestMapping(method = RequestMethod.GET, value = Routes.BLAH_GET + &qu ...

  10. mysql FullText全文索引的问题

    今天有同学问题,搜索ip的时候怎样能把 select ip from tabelx where ip like '%192.168.0.1%' 这种句子的性能优化. 的确,使用 like %x 的方式 ...