/******************************************************************************************************************** 声明:本文档根据openssl源代码、SSLeay 文档以及其它相关材料写成,转载需经本站授权,商业用途不得转载.本人能力有限,如有问题欢迎交流与指正。本站也欢迎原创作者投搞。 作者:Rainbow(不经历风雨,怎么见彩虹) 网站: 论坛:/forum/forum.html 邮件:rainbow_zrh@sina.com webmaster@infosecurity.org.cn OpenSSL版本:openssl-0.9.7d 投搞时间:2004-8-1 *********************************************************************************************************************/ 【扩展项操作函数】 这些函数主要是对证书的请求的扩展项进行读取与设置操作, 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
|