【扩展项操作函数】
这些函数主要是对证书的请求的扩展项进行读取与设置操作,
int X509_REQ_extension_nid(int nid);
int * X509_REQ_get_extension_nids(void);
void X509_REQ_set_extension_nids(int *nids);
STACK_OF(X509_EXTENSION) *X509_REQ_get_extensions(X509_REQ *req);
int X509_REQ_add_extensions_nid(X509_REQ *req, STACK_OF(X509_EXTENSION) *exts,int nid);
int X509_REQ_add_extensions(X509_REQ *req, STACK_OF(X509_EXTENSION) *exts);
【X509_REQ_extension_nid】
判断nid是否已经在内部nid_list列表中定义了。未定义返回0,否则返回1。
【X509_REQ_get_extension_nids】
返回已经定义的nid列表。
【X509_REQ_set_extension_nids】
设置定义好的nid列表。
【X509_REQ_get_extensions】
取出证书请求中的扩展项,过程是这样的,先从属性中将经过der编码的扩展项取出来,然后调用d2i_ASN1_SET_OF_X509_EXTENSION函数,将它转化成内部结构。
【X509_REQ_add_extensions】
将定义好,且赋了值的X509_EXTENSION扩展项加入证书请求中(其实是加到属性中,这在以后讲)。
【X509_REQ_add_extensions_nid】
功能与X509_REQ_add_extensions相同,只不过nid参数可以使用非标准的nid,其实X509_REQ_add_extensions就是通过调用这个函数是实现的,只不过使用了objects.h中定义的Extension Request标准定义。
#define NID_ext_req 172
阅读(5834) | 评论(0) | 转发(0) |