1.2系统功能需求
1.2.1认证中心
功能模块描述如图1所示。
图1 认证中心功能模块图
①功能清单
(1)证书请求管理:显示系统接收到的证书请求;查看证书请求的内容;删除不合法的证书请求;对证书请求进行签发。
(2)已签证书管理:显示系统已经签发且没有被吊销的证书;查看已签发证书的内容;吊销不安全的证书。
(3)吊销列表管理:生成吊销列表;查看生成的吊销列表的内容。
1.2客户端
功能:生成私钥和证书请求:根据用户输入的信息生成用户的私钥和相应的证书请求。
1.3系统性能
时间特性要求:系统接收到证书请求后应在1秒内将证书请求显示在系统的证书请求管理模块中。系统完成底层操作应在数秒内完成,以不使界面出现停顿感[3]。
输入输出要求:客户端的信息输入要符合OpenSSL对数据的要求。
1.4运行环境
操作系统:Fedora 10(Linux verison 2.6.27.5)
开发工具:GCC 4.3.2,GDB 6.8,GTK+-2.0
依赖软件:OpenSSL 0.9.8
2.系统详细设计与实现
2.1程序系统的结构
认证中心模块如图2所示。
图2 认证中心模块图
客户端模块如图3所示。
图3 客户端模块图
系统对OpenSSL调用的方式:系统使用OpenSSL的应用程序实现各个功能。系统创建一个子进程,子进程执行OpenSSL程序;父进程等待子进程的结束,并根据子进程结束返回值判断功能的完成情况。
在系统程序中,对OpenSSL应用程序的调用存在于各个功能键的回调函数中。当功能键被触发,程序执行回调函数调用OpenSSL应用程序。
2.2认证中心设计
2.2.1初始化模块
功能:初始化系统的工作目录和配置文件。
输入项:用户信息
输出项:工作目录和配置文件
系统配置文件:系统配置文件存放于用户主目录下的.dcs目录下。配置文件保存系统的工作主目录的路径。
系统的工作目录结构:
(1)工作主目录:由用户输入信息决定。
(2)子目录有conf,private,cacert,reqs,newcerts,usercerts,crl,.tmp。各个子目录的作用如下:
conf:存放认证中心的配置文件。
private:存放认证中心的私钥。
cacert:存放认证中心的自签名数字证书。
reqs:存放认证中心接收到的证书请求。
newcerts:存放认证中心签发生成的数字证书的备份。
usercerts:存放认证中心签发生成的数字证书。
crl:存放数字证书的吊销列表。
.tmp:存放临时数据。、
初始化流程逻辑,如图4所示。
图4 初始化流程图
初始化模块组成控件如表1所示。
表1 初始化模块控件表
控件 控件名称 功能
第一页 Label label 显示信息
第二页 Entry entry 显示选择的目录
GtkWidget filechooser 选择目录
第三页 Entry entry_on 输入组织名
Entry entry_oun 输入组织部门
Entry entry_cn 输入通用名
Entry entry_email 输入电子邮件
第四页 Entry entry1 输入密码 GTK+OpenSSL数字签名算法设计及实现(2):http://www.751com.cn/jisuanji/lunwen_2697.html