openssl之pkcs7系列

openssl之pkcs7系列

ID:10193084

大小:19.86 KB

页数:8页

时间:2018-06-12

openssl之pkcs7系列_第1页
openssl之pkcs7系列_第2页
openssl之pkcs7系列_第3页
openssl之pkcs7系列_第4页
openssl之pkcs7系列_第5页
资源描述:

《openssl之pkcs7系列》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、openssl学习笔记之pkcs7-11.概述openssl之pkcs7介绍openssl实现了pkcs7(加密消息语法标准)。在中。p7包括6种数据内容:数据(data),签名数据(sign),数字信封数据(enveloped),签名数字信封数据(signed_and_enveloped),摘要数据(digest),加密数据(encrypted)。后面将一一介绍如何对6种数据类型进行封装。PKCS7结构体定义如下:typedefstructpkcs7_st{/*ThefollowingisnonNULLifitcontainsASN1encodingof*thisstructure*

2、/unsignedchar*asn1;longlength;#definePKCS7_S_HEADER0#definePKCS7_S_BODY1#definePKCS7_S_TAIL2intstate;/*usedduringprocessing*/intdetached;ASN1_OBJECT*type;/*contentasdefinedbythetype*//*allencryption/messagedigestsareappliedtothe'contents',*leavingoutthe'type'field.*/union{char*ptr;/*NID_pkcs7_da

3、ta*/ASN1_OCTET_STRING*data;/*NID_pkcs7_signed*/PKCS7_SIGNED*sign;/*NID_pkcs7_enveloped*/PKCS7_ENVELOPE*enveloped;/*NID_pkcs7_signedAndEnveloped*/PKCS7_SIGN_ENVELOPE*signed_and_enveloped;/*NID_pkcs7_digest*/PKCS7_DIGEST*digest;/*NID_pkcs7_encrypted*/PKCS7_ENCRYPT*encrypted;/*Anythingelse*/ASN1_TY

4、PE*other;}d;}PKCS7;数据(data):明文打包type为NID_pkcs7_data,ASN1_OCTET_STRING类型,即为简单的ASN1_STRING数据类型。签名数据(sign):把数据以及签名值打包,其中包括签名者的证书,CRL等,目的为确定发送者的身份。type为NID_pkcs7_signed。PKCS7_SIGNED类型的数据,PKCS7_SIGNED定义如下:typedefstructpkcs7_signed_st{ASN1_INTEGER*version;/*version1*///版本STACK_OF(X509_ALGOR)*md_algs;/

5、*mdused*///摘要算法STACK_OF(X509)*cert;/*[0]*///签名证书STACK_OF(X509_CRL)*crl;/*[1]*///证书吊销列表STACK_OF(PKCS7_SIGNER_INFO)*signer_info; 签名信息structpkcs7_st*contents; }PKCS7_SIGNED;数字信封数据(enveloped):使用接收者的公钥(从证书获取)加密数据。目的为保护数据,拥有私钥的接收者才能解开数据。type为NID_pkcs7_enveloped。PKCS7_ENVELOPE类型的数据,PKCS7_ENVELOPE定义如下ty

6、pedefstructpkcs7_enveloped_st{ASN1_INTEGER*version;/*version0*/STACK_OF(PKCS7_RECIP_INFO)*recipientinfo;//接收者的证书PKCS7_ENC_CONTENT*enc_data;//用接收者证书公钥加密的数据}PKCS7_ENVELOPE;签名数字信封数据(signed_and_enveloped)数字信封加签名type为NID_pkcs7_signedAndEnveloped。PKCS7_SIGN_ENVELOPE类型的数据,PKCS7_SIGN_ENVELOPE定义如下typedef

7、structpkcs7_signedandenveloped_st{ASN1_INTEGER*version;/*version1*/STACK_OF(X509_ALGOR)*md_algs;/*mdused*/STACK_OF(X509)*cert;/*[0]*/STACK_OF(X509_CRL)*crl;/*[1]*/STACK_OF(PKCS7_SIGNER_INFO)*signer_info;PKCS7_ENC_CONTENT*enc

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。