【相关操作函数】
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函数来完成复制工作。
阅读(2689) | 评论(0) | 转发(0) |