分享
 
 
 

学习CRYPTO第二天

王朝other·作者佚名  2006-01-09
窄屏简体版  字體: |||超大  

因为是.net安全,所以必须在VC7上运行下面面的一些例子(今天害得我在VC6上运行,错误一大堆),上面介绍了CRYPTAPI的一些基础,下面我就不按照MSDN的往下看了,下面的几个专题是Hashing,Signing Data,Creating and Receiving Enveloped Data Messages以及Encrypting and Decrypting.这些专题等需要用到的时候再具体看吧。主要专注于证书的操作。不过cryptui.dll又要求是在windows 2003 Server版本才可以,哎,只好等晚上再去买盘了。

1,解码CERT_INFO结构

给定一个证书,第一步是调用函数CertCreateCertificateContext解码证书BLOB。当这个函数被调用,那么产生一个编码证书的复制品,创建一个CERT_CONETXT类型的结构和一个CERT_INFO类型的结构。一个certificate_context包含一个原始证书BLOB,一个CERT_CONETXT类型的结构以及一个CERT_INFO类型的结构。下面我们具体看看CERT_CONETXT以及CERT_INFO的结构(wincrypt.h):

typedef struct _CERT_CONTEXT {

DWORD dwCertEncodingType;

BYTE *pbCertEncoded;

DWORD cbCertEncoded;

PCERT_INFO pCertInfo;

HCERTSTORE hCertStore;

} CERT_CONTEXT, *PCERT_CONTEXT;

typedef const CERT_CONTEXT *PCCERT_CONTEXT;

typedef struct _CERT_INFO {

DWORD dwVersion;

CRYPT_INTEGER_BLOB SerialNumber;

CRYPT_ALGORITHM_IDENTIFIER SignatureAlgorithm;

CERT_NAME_BLOB Issuer;

FILETIME NotBefore;

FILETIME NotAfter;

CERT_NAME_BLOB Subject;

CERT_PUBLIC_KEY_INFO SubjectPublicKeyInfo;

CRYPT_BIT_BLOB IssuerUniqueId;

CRYPT_BIT_BLOB SubjectUniqueId;

DWORD cExtension;

PCERT_EXTENSION rgExtension;

} CERT_INFO, *PCERT_INFO;

typedef struct _CERT_EXTENSIONS {

DWORD cExtension;

PCERT_EXTENSION rgExtension;

} CERT_EXTENSIONS, *PCERT_EXTENSIONS;

由上面的三个结构可以明显的看出证书的存储过程。(具体参数意思可以由参数名看出来)

2,编码一个CERT_INFO结构

编码过程和解码过程是相反的,下面事例如何增加签发者到CERT_INFO结构中。

1,创建一个包含签发者名字的字符串。

2,创建一个CERT_RDN_ATTR结构的数组,它初始化后能够包含刚刚创建的字符串。

3,创建一个CERT_RDN结构的数组,它包含刚刚初始化的CERT_RDN_ATTR结构的数组

4,创建一个CERT_NAME_INFO结构指向刚刚创建的CERT_RDN结构的数组的指针

5,调用CryptEncodeObject函数来获取输出编码后BLOB的长度。

6,为BLOB分配内存空间

7,再次调用CryptEncodeObject函数,将有关编码信息写入

8,设置CERT_INFO结构中的Issuer.cbData为第5步得到的长度,设置Issuer.pbData为第6步得到的地址,那么现在签发者就存在于CERT_INFO结构中了。

添加一个编码后的扩展信息到CERT_INFO结构中

1,初始化一个扩展信息结构。

2,调用CryptEncodeObject,来获取所需空间大小。

3,分配空间

4,再次调用CryptEncodeObject来获取编码后的信息。

5,创建一个CERT_EXTENSION结构数组

6,初始化CERT_EXTENSION,并且在CERT_EXTENSION中添加刚刚编码后的信息。

7,初始化CERT_INFO结构的rgExtension,并且把他指向CERT_EXTENSION结构数组

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有