项目简介
本项目由两大部分构成。一是运用Go语言编写的轻量级、跨平台命令行工具Orwell Spark v3,其具备RSA密钥对的生成、签名、验签、加密和解密能力,还能实现多文件统一签名。二是用于处理X.509证书、证书请求(CSR)和证书撤销列表(CRL)的Go语言库,可进行证书和CSR的生成、解析、签名验证,以及CRL的生成和验证。
项目的主要特性和功能
Orwell Spark v3部分
- 支持自定义输出文件名的RSA密钥对生成。
- 支持文件签名和验签,签名文件采用Base64编码,方便传输与查看,可对多文件统一签名和验证。
- 新增文件加密和解密功能。
X.509证书处理库部分
- 实现证书和CSR的生成、解析和签名验证。
- 支持CRL的生成和验证。
- 能进行扩展键用途(EKU)的检查。
- 可验证名称约束(Name Constraints)。
- 具备系统根证书的错误处理能力。
- 可在证书验证过程中构建路径。
安装使用步骤
Orwell Spark v3使用步骤
假设用户已下载源码文件并完成编译,以在Linux的shell中运行为例(Windows可使用命令提示符或Powershell):
1. 生成密钥对:使用命令gen
,可选参数-k
指定输出密钥对的文件名,默认名称为key
。
shell
$ spark3 gen
shell
$ spark3 gen -k "rsa_key"
2. 文件签名:使用命令sign
,参数-f
指定待签名的文件,-k
指定签名使用的私钥,-o
指定输出的签名文件名(可缺省)。
shell
$ spark3 sign -f "file01.txt file02.c" -k "key01" -o "mysign.sgn"
3. 验证签名:使用命令verify
,参数-f
指定被签名的文件,-k
指定验证签名需要的公钥,-s
指定签名文件。
shell
$ spark3 verify -f "file01.txt file02.c" -k "key01" -s "mysign.sgn"
4. 文件加密:使用命令encode
,参数-f
指定待加密的文件,-k
指定加密使用的公钥,-o
指定加密后文件的文件名(不指定默认为encrypted
)。
shell
$ spark3 -f "file01.txt" -k "key01" -o "f1.enc"
5. 文件解密:使用命令decode
,参数-f
指定待解密的文件,-k
指定解密使用的私钥,-o
指定解密后的文件名(不指定默认为decrypted
)。
shell
$ spark3 -f "f1.enc" -k "key01" -o "f1.txt"
X.509证书处理库使用步骤
- 导入
crypto/x509
包。 - 使用
x509
包中的函数进行证书和CSR的生成、解析、签名验证等操作。 - 使用
x509
包中的函数进行CRL的生成和验证。 - 根据需要处理证书验证过程中可能出现的错误。
注意事项
- 在处理证书和CRL时,需要确保正确处理内存释放,避免内存泄漏。
- 对于与特定操作系统相关的功能(如macOS的Security框架),可能需要额外的依赖或环境配置。
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】