《openssl证书操作》PPT课件.ppt_第1页
《openssl证书操作》PPT课件.ppt_第2页
《openssl证书操作》PPT课件.ppt_第3页
《openssl证书操作》PPT课件.ppt_第4页
《openssl证书操作》PPT课件.ppt_第5页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第十一章openssl证书操作 u现有的数字证书大都采用x.509规范,主要有以下信息 组成:版本号、整数序列号(在同一个ca是唯一的)、 有效期(证书生效和失效的时间)、拥有者信息(姓名 、单位、组织、城市、国家等)、颁发者的信息、其他 扩展信息(证书的扩展用法、ca自定义的扩展项等)、 拥有者的公钥、ca对以上信息的签名。 u数字证书是各类实体在网上进行信息交流及行为的身份 证明,在网上事务的各个环节,参与的各方都需验证对 方证书的有效性,从容解决相互间的信任问题。 uOpenssl1实现了对x.509数字证书的所有操作。包括签 发数字证书、解析和验证证书等。在实际应用开发中, 针对证书应用,这里主要是用到证书的验证(验证其证 书链、有效期、吊销列表以及其他限制规则等)、证书 的解析(获得证书的版本、公钥、拥有者的信息、颁发 者信息、有效期)等操作。这些函数均定义在 openssl/x.509.h中。 11.1 函数介绍 涉及证书操作的主要函数有验证证书(验 证证书链、有效期、CRL)、解析证书( 获得证书的版本、序列号、颁发者信息、 主题信息、公钥、有效期等) 11.1.1 DER编码转换为内部结构体 函数d2i_X509 功能:把一个DER编码的证书数据转化成 openssl内部结构体,x509类型。 函数定义: X509 * d2i_X509(X509 * cert,unsigned char *d,int len); 参数说明: Cert:OUT X509结构体 D:inder编码的证书数据指针地址。 Len:in证书数据长度。 返回值:编码后的X509结构体数据。 11.1.2获得证书版本函数 X509_get_version 函数功能:获得证书版本 函数定义: #define X509_get_version(x) ASN1_INTEGER_get(x)-cert_info-version) 参数说明: x:in X509*结构体数据类型。 返回值:证书版本,数据类型“LONG” 11.1.3获得证书序列号函数 X509_get_serailNumber 函数功能:获得证书序列号。 函数定义: ASN1_INTEGER * X509_get_serailNumber(X509 *x) 参数说明: x:in X509*类型数据,证书。 返回值:整数序列号,数据类型“ASN1_INTEGER * ”。 11.1.4获得证书颁发者信息函数 X509_get_issuer_name 函数功能:获得证书颁发者信息。 函数定义: X509_get_issuer_name(x509 *a) 参数说明: a:inx509*类型数据,证书。 11.2.5获得证书拥有者函数 x509_get_subject_name 函数功能:获得证书使用者。 函数定义: x509_get_subject_name (x509 *a) 参数说明: X:inx509*类型数据,证书。 返回值:证书使用者信息,数据类型 “x509_name” 11.2.6获得证书有效期的起始函 数函数x509_get_notbefore 函数功能:获得证书有效期的起始日期 函数定义: #define x509_get_notbefore(x) 参数说明: x:in x509*类型数据,证书。 返回值:证书起始有效期,数据类型 ”asn1_time*” 11.2.7获得证书有效期的起始函 数函数x509_get_notafter 函数功能:获得证书有效期的终止日期 函数定义: #define x509_get_notafter(x) 参数说明: x:in x509*类型数据,证书。 返回值:证书起始终止日期,数据类型 ”asn1_time*” 11.2.8获得证书公钥函数 x509_get_pubkey 函数功能:获得证书的公钥 函数定义: EVP_PKEY * x509_get_pubkey (x509 *x) 参数说明: x:in x509*类型数据,证书。 返回值:证书使用者公钥 11.2.9 创建和释放证书存储区函数 x509_store_new、 x509_store_free 函数功能:创建和释放一个x509_store结构体, 主要用于验证证书。 函数定义: X509_store *x508_store_new(void); Void x509_store_free(x509_store *v) 11.2.10 向证书存储区添加证书函数 x509_store_add_cert 函数功能:添加信任的根证书到证书存储区。 函数定义: Int x509_store_add_cert(x509_store *ctx,x509 *x) 参数说明: X:inx509*类型数据,受信任的根证书 Ctx:inx509_store类型数据,证书存储区。 返回值:操作成功返回1,否则返回0。 11.2.11 向证书存储区添加证书吊销列 表函数x509_store_add_crl 函数功能:添加CRL到证书存储区。 函数定义: Int x509_store_add_crl(x509_store *ctx,x509_crl *x) 参数说明: X:inx509_crl*类型数据,证书吊销列表 Ctx:inx509_store类型数据,证书存储区。 返回值:操作成功返回1,否则返回0。 11.2.12 创建证书存储区上下文环境函 数x509_store_CTX_new 函数功能:为证书存储区上下文环境申请内存。 函数定义: x509_store_CTX *x509_store_ctx_new(void) 参数说明: 返回值:操作成功返回证书存储区上下文环境指针 ,否则返回null。 11.2.13 释放证书存储区上下文环境函 数x509_store_CTX_free 函数功能:为证书存储区上下文环境申请内存。 函数定义: Void x509_store_CTX_free(x509_store_ctx *ctx) Ctx:in待释放的证书存储区上下文环境。 参数说明: 返回值:无。 11.2.14 初始化证书存储区上下文环境 函数x509_store_CTX_init 函数功能:初始化证书存储区上下文环境,设置根证书,待 验证的证书、ca证书链。 函数定义: Int x509_store_CTX_init(x509_store_ctx *ctx, x509_store *store,x509 *x509,stack_of(x09)*chain) 参数说明: Ctx:in x509_store_CTX类型数据,上下文环境 Store:in x509_store*类型数据,根证书存储区。 Chain:instack_of(x509*)类型数据,证书链。 返回值:操作成功返回1,否则返回0。 11.2.15 验证证书函数x509_verify_cert 函数功能:验证证书,检查证书链,一次验证上级颁发者对 证书的签名,一直到根证书。检查证书是否过期,以及其 他策略。如果设置了CRL,还会检查该证书是否在吊销列 表中。此函数必须在调用了store_ctx_init后才能使用。 函数定义: Int x509_verify_cert(x509_store_ctx *ctx,) 参数说明: Ctx:in x509_store_CTX类型数据,上下文环境 返回值:操作成功返回1,否则返回0。 11.3 实例应用 了解了x509证书的主要函数后,下面将通 过一个实例来说明这些函数的用法。在实 际应用中,常常需

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论