第一范文网 - 专业文章范例文档资料分享平台

PKI - 实验三 - 版本一

来源:用户分享 时间:2025/5/15 4:58:52 本文由loading 分享 下载这篇文档手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

电子科技大学信息与软件工程学院

标准实验报告

(实验)课程名称 PKI技术

电子科技大学教务处制表

报告评分:

指导教师签字:

电子科技大学

实验报告

学生姓名:杨岚青学号:2013220501019 指导教师:聂旭云 实验地点:三教407 实验时间: 2015.11.22

一、实验室名称:信息与软件工程学院通用计算机软件实验室 二、实验项目名称:OpenSSL证书操作 三、实验学时: 4 四、实验原理:

X.509 V3版本的数字证书包括以下内容:证书的版本、序列号、签名算法、证书签发者的信息、证书拥有者的信息、有效期(起始日期和终止日期)、用户的公钥、证书扩展信息(包括证书策略、密钥用途等)、签发者签名算法标识和签名的结果等。证书一般都是用DER编码。

OpenSSL可实现DER证书的数据转换,证书的验证、证书内容的获取等。具体用到的函数如下: (1) 证书转换函数

函数功能:把一个DER编码的证书数据转化为OpenSSL内部结构题,返回值为编码后的X509结构体数据。 函数定义:

X509 * d2i_X509(X509 **cert, unsigned char **d, int len); 参数说明:

cert:X509结构体。 (2) 证书版本获取函数

函数功能:获取证书的版本,返回值为证书版本号,长整型。 函数定义:

Long X509_get_version(cert); 参数说明:

cert:X509结构体。 (3) 证书序列号获取函数

函数功能:获取证书的序列号,返回值为证书的序列号,数据类型为“ASN1_INTEGER *”。 函数定义:

ASN1_INTEGER * X509_get_serialNumber(cert); 参数说明:

cert:X509结构体。

(4) 证书颁发者信息获取函数

函数功能:获取证书颁发者的信息,返回值数据类型为“X509_NAME *”。 函数定义:

X509_NAME * X509_get_issuer_name(cert); 参数说明:

cert:X509结构体。

(5) 证书拥有者信息获取函数

函数功能:获取证书使用者的信息,返回值数据类型为“X509_NAME *”。 函数定义:

X509_NAME * X509_get_subject_name(cert); 参数说明:

cert:X509结构体。 (6) 获取证书有效期函数

函数功能:获得证书的有效期的起始日期和终止日期,返回数据类型为“ANS1_TIME *”。 函数定义:

ANS1_TIME * X509_get_notbefore(cert); ANS1_TIME * X509_get_notafter(cert); 参数说明:

cert:X509结构体。 (7) 证书公钥获取函数

函数功能:获取证书上的公钥,返回数据类型为“EVP_PKEY*”。 函数定义:

EVP_PKEY * X509_get_pubkey(cert); cert:X509结构体。

(8) 证书存储区创建和释放函数

函数功能:创建和释放一个X509_STORE结构体,用于证书的验证过程。 函数定义:

X509_STORE *X509_STORE_new(void); Void X509_STORE_free(X509_STORE *v);

(9) 添加证书函数

函数功能:向证书存储区添加信任的根证书。 函数定义:

int X509_STORE_add_cert(X509_STORE *ctx, X509 *cert); 参数说明:

ctx:X509_STORE类型数据,证书存储区。 cert:X509结构体,受信任的根证书。 (10) 添加证书撤销列表函数

函数功能:向证书存储区添加证书撤销列表。 函数定义:

int X509_STORE_add_crl(X509_STORE *ctx, X509_CRT *x); 参数说明:

ctx:X509_STORE*类型数据,证书存储区。 x:X509_CRT *类型数据,证书撤销列表。 (11) 创建和释放证书存储区上下文函数

函数功能:为证书存储区上下文环境申请内存和释放内存。 函数定义:

X509_STORE_CTX * X509_STORE_CTX_new(void); void X509_STORE_CTX_free(X509_STORE *ctx); (12) 初始化证书存储区上下文函数

函数功能:初始化证书存储区上下文,设置根证书、待验证的证书、CA证书信任链。操作成功返回1,否则返回0。 函数定义:

Int X509_STORE_CTX_init(X509_STORE_CTX *ctx, X509_STORE *store, X509 *x509, STACK_OF(X509) *chain); 参数说明:

ctx :X509_STORE_CTX*类型数据,上下文。 store:X509_STORE*类型数据,根证书存储区。 chain:STACK_OF(X509) *,证书链。 (13) 验证证书函数

函数功能:检查证书链,依次验证上级CA对证书的签名,一直到根证书。检查证书是否过期,是否已撤销以及其他证书策略。 函数定义:

int X509_verify_cert(X509_STORE_CTX *ctx);

参数说明:ctx :X509_STORE_CTX*类型数据,上下文。

五、实验目的:

利用OpenSSL实现对X.509数字证书的操作,包括证书的读取、证书的验证。

搜索更多关于: PKI - 实验三 - 版本一 的文档
PKI - 实验三 - 版本一.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/c8wprf2zh742v3bu3zrbd_1.html(转载请注明文章来源)
热门推荐
Copyright © 2012-2023 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top