国密算法的ekey的使用
SKF密码设备
概述
SKF接口是国密标准中智能密码钥匙的C语言应用开发接口标准,目前很多国内密码密码设备厂商都为其产品提供了SKF接口的开发包。开发者可以通过统一的SKF接口开发密码应用,访问来自不同设备供应商的USB-Key、TF卡、智能卡等不同形态的密码设备,而无需和某一个设备供应商的专属设备或专属接口绑定。
设备逻辑
一个SKF API设备中可以包含一个或多个应用(Application),每个应用可以包含一个获多个容器(Container),每个容器中可以存放两对分别用于加密和签名的密钥对,以及两个相应的证书或证书链。每一个容器只能为ECC或RSA一种类型,一个容器中不能混用ECC密钥和RSA密钥。因此,在SKF API中提供公钥密码计算的接口通过Container Handle来引用公钥,容器的特性使得应用无需区分签名密钥和加密密钥,SKF API的实现会自动从容器中选择对应类型的密钥。
管理工具
开发者在获得密码设备后,首先需要对密码设备进行初始化,如设置密码、生成密钥容器、导入密钥和证书等。目前国内的SKF设备供应商通常不提供具备这些功能的管理工具,开发者需要通过SKF编程接口自行开发所需功能。GmSSL项目通过命令行工具提供了SKF设备的管理功能,开发者可以利用该工具,编写脚本完成大规模、自动化的SKF设备管理功能。
实验过程
生成证书
- 1.生成SM2密钥对
- 2.生成SM2自签证书作为根CA
- 3.生成SM2密钥对
- 4.生成证书请求CSR
- 5.用CA进行签名
- 6.验签
- 7.生成PKCS12格式的证书文件
导出证书
利用KEY型号为:mToken-GM3000导出: