❶ c盘里的SKFAPI是什么意思
《智能IC卡及智能密码钥匙密码应用接口规范》标准中公布了访问国密硬件的C语言API (下面简称SKF API),GmSSL通过ENGINE机制访问支持国密SKF API的国产密码硬件。 准确的说法应该是smart key function
❷ 签名密文数据生成异常
如果想要充分理解RSA签名密钥对,我们必须知道签名密钥对是什么,签名的意义,以及生成的签名密钥对存在哪里,以及整个签名密钥对的生成实现过程。
签名:
签名的定义需要自己在网上查找相关资料充分理解,这里不做详细定义性介绍,有一定基础后便可以理解这里的签名验签过程。我们收到的数据是(数据密文和数据签名作为一个整体数据块)经过会话密钥加密后数据,我们得到此密文后首先用会话密钥对密文进行解密,得到图中左侧原文和签名数据。然后对原始数据进行摘要运算,摘要运算只需要算法和设备句柄不需要密钥;然后再用签名公钥对签名数据解密,得到传输来的摘要数据;最后比对两个摘要是否正确,确定数据是否被篡改过。签名过程后面会在详细介绍
签名密钥对:非对称算法密钥对,包括签名公钥和签名私钥成对出现,公钥用来进行验签操作,私钥用来进行签名操作;签名密钥对必须UKEY内生成,加密密钥对要外面安全导入。
签名密钥对的存储:存储也就是说如何能够准确找到某个签名密钥对,PC端通过寻找设备句柄找到设备,然后通过寻找应用ID找到某个应用,在通过容器ID找到存储签名密钥对的容器,最后根据密钥ID找到索要使用的签名密钥对。这个过程是不变的,无论是CSP开发还是国密dll开发,原理不变,寻找方法改变而已。
生成签名密钥对的实现过程:
1:枚举设备,连接设备,得到设备句柄
2:通过设备句柄,应用名打开应用,打开容器
3:然后调用生成RSA签名密钥函数接口实现:
函数原型 ULONG DEVAPI SKF_GenRSAKeyPair (HCONTAINER hContainer, ULONG ulBitsLen, RSAPUBLICKEYBLOB *pBlob)
功能描述 生成 RSA 签名密钥对并输出签名公钥。
参数 hContainer [IN] 容器句柄。
ulBitsLen [IN] 密钥模长。
pBlob [OUT] 返回的 RSA 公钥数据结构。
容器句柄里存储的是设备句柄,应用ID,容器ID;输出的是签名公钥数据,不是公钥句柄。一定要注意流程和句柄存储位置。
❸ 国密中 SKF是什么缩写
《智能IC卡及智能密码钥匙密码应用接口规范》标准中公布了访问国密硬件的C语言API (下面简称SKF API),GmSSL通过ENGINE机制访问支持国密SKF API的国产密码硬件。
准确的说法应该是smart key function