GTK+OpenSSL数字签名算法设计及实现(2)
时间:2017-02-09 10:45 来源:毕业论文 作者:毕业论文 点击:次
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 输入密码 (责任编辑:qin) |