/******************************************************************************************************************** 声明:本文档根据openssl源代码、SSLeay 文档以及其它相关材料写成,转载需经本站授权,商业用途不得转载.本人能力有限,如有问题欢迎交流与指正。本站也欢迎原创作者投搞。 作者:Rainbow(不经历风雨,怎么见彩虹) 网站: 论坛:/forum/forum.html 邮件:rainbow_zrh@sina.com webmaster@infosecurity.org.cn OpenSSL版本:openssl-0.9.7d 投搞时间:2004-8-1 *********************************************************************************************************************/ 【相关操作函数】 X509_REQ * X509_to_X509_REQ(X509 *x, EVP_PKEY *pkey, const EVP_MD *md); X509 * X509_REQ_to_X509(X509_REQ *r, int days,EVP_PKEY *pkey); int X509_REQ_digest(const X509_REQ *data,const EVP_MD *type,unsigned char *md, unsigned int *len); X509_REQ *X509_REQ_dup(X509_REQ *req); 【X509_to_X509_REQ】 用X509证书结构直接生成一个证书请求结构,其中x就是证书结构,pkey是公钥,md是散列算法,操作的过程就是将证书里的主题名与公钥填充到X509_REQ证书请求结构中,然后用指定的pkey与md进行签名,成功返回X509_REQ证书请求结构。 【X509_REQ_to_X509】 从证书请求结构直接生成一个X509证书,其中的day就是证书的有效期(多少天),pkey就是用于签名的私钥。操作过程:从证书请求结构取出主题,将它填充到X509的主题与签发者中,取出公钥填充到X509公钥域里,有MD5与私钥进行签名,所以这样生成证书应用是一张自签名的证书。 【X509_REQ_digest】 将X509_REQ用指定的散列算法type进行散列。结果在md中,len是结果的长度。 【X509_REQ_dup】 复制一份X509_REQ结构。它是宏定义,实际上是由ASN1_dup函数来完成复制工作。
|