zoukankan      html  css  js  c++  java
  • 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. 个人报告

  • 相关阅读:
    sqlalchemy 转json 的几种常用方式
    程序员的思维模型指南
    软件的本质
    Python数据模型及Pythonic编程
    Linux Kernel C语言编程范式
    U-Boot内存管理
    Linux网络文件系统的实现与调试
    Linux内核内存管理架构
    Linux多核并行编程关键技术
    Go/Python/Erlang编程语言对比分析及示例
  • 原文地址:https://www.cnblogs.com/wyf20175217/p/12828371.html
Copyright © 2011-2022 走看看