2020_1课程设计—基于BC的证书格式转换工具的设计与实现—小组博客

一、设计方案及可行性分析

1. 设计方案

  • 基于B/S架构实现基于BouncyCastle的数字证书格式转换,涉及证书包括:pem证书、der证书、pfx证书、p7b证书链。

2. 可行性分析

  • BouncyCastle是一种用于 Java 平台的开放源码的轻量级密码术包,支持大量的密码术算法,能够提供数字证书转换所需要的类和方法。

二、详细设计思路

1. 系统体系结构,技术选择

  • 本项目使用的是java语言,实现基于BouncyCastle的证书格式转换工具设计与实现。

2. 说明程序中用到的关键数据类型的定义,绘制关键程序的流程图,以及各子模块间的调用关系图

前端部分

  • 检查是否提供符合要求的证书文件
  • 进行输入测试,判断文件输入类型与证书源格式是否一致;
  • 输入PFX证书所需要的私钥及加密密钥;
  • 介绍几种证书文件的相关信息;
  • 提供小组成员的博客链接

后台部分

  • 通过XML文件连接前端和后台;
  • 将前端的源格式和目标格式及证书文件、密钥等信息传到后台;
  • 判断源格式,将加载的证书文件读入字节数组;
  • 将证书文件转换为X509证书文件格式;
  • 判断目标格式,将X509证书文件转为所需格式;
  • 将转换后的证书文件输出到指定位置;
  • 转换成功跳转到成功界面;

3. 面向对象技术可以用UML建模

4.列出测试目的、测试内容、测试结果,并对结果进行分析

测试目的

  • 在已经确定好的条件下,对该系统进行测试,通过测试发现该系统中程序的错误或者漏洞,使该证书转换系统更完整、全面。

前端测试

  • 界面

  • 源格式与证书文件格式不符——若源格式与证书文件类型不同,则会报“证书源不匹配”的错误

  • 未加载证书文件——若未提供证书文件,则会报“请选择证书”的错误。

  • 正确输出证书文件——提供证书文件、源格式与证书文件格式相同则可以进行证书转换。

后台代码测试

  • JudgeCert部分非法输入退出测试

  • Read部分非法路径异常抛出测试

  • Write部分非法路径异常抛出测试

三、设计特色

1. 整体设计——基于BouncyCastle进行证书转换

  • BouncyCastle抽象包装了各种ASN1数据类型以及ASN1结构相关的解析和组装,使用BC包可以很方便的组装生成证书,因此我们的设计使用BC包实现各种格式证书的转换。

2.编程设计——读取写入证书,BC包的灵活运用

  • 我们使用BC提供的类,如PemReader、PemWriter等,将编程主要分为了三大部分:
    • 读取证书:从各种格式的证书读取文件,将其转化为X509Certificate对象
    • 写入证书:将X509Certificate对象转化为各种格式的证书
    • 整体拼接:写出主类,将各个部分拼接,并测试边界情况

3.前端设计——界面优化

  • 用户可以在网页直接选择要转换的源证书格式和目的证书格式
  • 用户可以在网页直接选择要转换的证书
  • 界面美观友好

四、源代码及注释

五、个人完成情况

1. 小组贡献排序及依据(每个人的工作量):

  • ①20175217 吴一凡:组织协调组内工作、证书转换代码编写、组内报告编写汇总、前端代码优化
  • ①20175205 侯颖:证书转换代码优化、前端代码编写、组内报告编写
  • ②20175234 赵诗玥:证书转换代码优化、单元测试、组内报告编写

2. 个人报告

posted @ 2020-05-04 21:44  20175217wyf  阅读(295)  评论(0编辑  收藏  举报