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

原创 2003年04月22日 08:57:00
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)
    所以,其功能和使用方法跟前面介绍过的EVP_DecryptUpdate相同,请参考相应的文章。成功执行返回1,否则返回0。
    【EVP_OpenFinal】
    事实上,该函数调用EVP_DecryptFinal_ex完成了其功能,所以其使用方法跟功能跟函数EVP_DecryptFinal_ex是一样的,参考该函数说明就可以。唯一不同的是,本函数还调用EVP_DecryptInit_ex(ctx,NULL,NULL,NULL,NULL)再次进行了初始化工作。成功执行返回1,否则返回0。
    

openssl之EVP系列之4---EVP_Encrypt系列函数详解(一)

openssl之EVP系列之4---EVP_Encrypt系列函数详解(一)    ---根据openssl doc/crypto/EVP_EncryptInit.pod和doc/ssleay.txt...
  • gdwzh
  • gdwzh
  • 2003年02月21日 09:09
  • 13693

Openssl之PEM系列

1.PEM编码文件结构介绍  PEM全称是Privacy Enhanced Mail,该标准定义了加密一个准备要发送邮件的标准,主要用来将各种对象保存成PEM格式,并将PEM格式的各种对象读取到相应...
  • tanyjin
  • tanyjin
  • 2017年03月13日 10:36
  • 546

数学之美系列完整版(最新全集列表)

数学之美系列完整版(最新全集列表)作者:吴军, Google 研究员 来源:Google黑板报 数学之美 一 统计语言模型 数学之美 二 谈谈中文分词 数学之美 三 隐含马尔可夫模型...
  • happylife1527
  • happylife1527
  • 2012年10月23日 09:15
  • 908

hdu 2045 不容易系列之(3)―― LELE的RPG难题

是一道递推找规律的题,首先易知f(1)=3;f(2)=6;f(3)=6;f(4)=18; 现在考虑n>3的情况,若第n-1个格子和第一个格子不同,则为f(n-1); 若第n-1个格子和第1个格子相...
  • u013008291
  • u013008291
  • 2014年10月14日 22:07
  • 1151

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

openssl之EVP系列之12---EVP_Seal系列函数介绍    ---根据openssl doc/crypto/EVP_SealInit.pod翻译和自己的理解写成    (作者:Drago...
  • gdwzh
  • gdwzh
  • 2003年04月10日 09:28
  • 3781

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

openssl之EVP系列之10---EVP_Sign系列函数介绍    ---根据openssl doc/crypto/EVP_SignInit.pod翻译    (作者:DragonKing, M...
  • gdwzh
  • gdwzh
  • 2003年03月24日 12:12
  • 6002

HDU 不容易系列之(4)——考新郎(组合错排)

题目:http://acm.hdu.edu.cn/showproblem.php?pid=2049 思想基础:全部元素错排参见http://blog.csdn.net/liuweiyuxiang/a...
  • liuweiyuxiang
  • liuweiyuxiang
  • 2016年04月03日 23:43
  • 670

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

openssl之EVP系列之11---EVP_Verify系列函数介绍    ---根据openssl doc/crypto/EVP_VerifyInit.pod翻译和自己的理解写成    (作者:D...
  • gdwzh
  • gdwzh
  • 2003年04月03日 08:53
  • 5650

OpenSSL之EVP(二)——EVP系列函数介绍

EVP系列函数摘要函数典型的摘要函数主要有: 1) EVP_md5 返回 md5 的 EVP_MD。 2) EVP_sha1 返回 sha1 的 EVP_MD。 3) EVP_sha256 ...
  • scuyxi
  • scuyxi
  • 2017年03月06日 23:45
  • 380

Openssl之BIO系列

1.BIO-抽象的IO接口 其实包含了很多种接口,用通用的函数接口,主要控制在BIO_METHOD中的不同实现函数控制,我初步估计了一下,大概有14种,包括4种filter型和10种source...
  • i7thTool
  • i7thTool
  • 2016年03月03日 10:30
  • 2446
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:openssl之EVP系列之13---EVP_Open系列函数介绍
举报原因:
原因补充:

(最多只允许输入30个字)