加密API研究
一、标准内容
1. Crypto API
加密API是一种提供加密操作接口的技术,为应用程序提供在软件和硬件之间的通信方式。加密API通常提供对数据的加密、解密、签名、验证和密钥管理等功能。这些API的存在使开发者可以方便地集成加密功能,提高应用程序的安全性。此外,Crypto API通常支持多种加密算法,如对称加密和非对称加密算法。
2. RAS公司的PKCS#11标准
PKCS#11是RSA公司提出的标准,旨在为加密设备提供统一的API。PKCS#11定义了一组函数,通过这些函数可以与加密设备进行通信和操作。这些函数包括设备初始化、密钥管理、数据加密/解密、签名/验证等操作。PKCS#11标准在业内得到了广泛的应用,许多厂商都提供符合PKCS#11规范的设备和软件。
3. 中国商用密码标准
-
GMT 0016-2012 智能密码钥匙密码应用接口规范:
定义了智能密码钥匙的密码应用接口,为应用程序提供了与智能密码钥匙通信的规范。通过该规范,应用程序可以实现对智能密码钥匙的初始化、密钥管理、数据加密/解密等操作。
-
GMT 0018-2012密码设备应用接口规范:
该标准规定了密码设备的应用接口,为应用程序提供了与密码设备通信的规范。应用程序可以通过该接口对密码设备进行初始化、密钥管理、数据加密/解密、签名/验证等操作。
二、函数分类
1. 设备管理类
(1)16标准:
(2)18标准:
2. 访问控制类
(1)16标准:
3. 应用管理类
(1)16标准:
4. 文件管理类
(1)16标准:
(2)18标准:
5. 容器服务类
(1)16标准:
(2)18标准:
6. 密码服务类
(1)16标准:
(2)18标准:
三、调用不同接口的代码
-
crypto API
龙脉密码钥匙驱动实例工具等\mToken-GM3000\csp\samples\CryptAPI\VC\EncryptDecryptFile\EncryptFile.sln
-
PKCS#11标准
龙脉密码钥匙驱动实例工具等\mToken-GM3000\pkcs11\windows\samples\PKCStest\PKCStest.sln
-
GMT 0018-2012密码设备应用接口规范
龙脉密码钥匙驱动实例工具等\mToken-GM3000\skf\samples\windows\EncryptData\EncryptData.sln