GMT0018标准规定的是公钥密码基础设施应用技术体系下服务类密码设备的应用接口标准。
(1)设备管理类函数(接口操作成功返回0,不成功返回非0错误代码)
SDF_OpenDevice\SDF_CloseDevice 打开/关闭设备
SDF_OpenSession\SDF_CloseSession 创建/关闭会话
SDF_GetDeviceInfo 获取设备信息
SDF_GenerateRandom 产生随机数
SDF_GetPrivateKeyAccessRight\SDF_ReleasePrivateKeyAccessRight 获取/释放私钥使用权限
(2)密钥管理类函数
SDF_ExportSignPublicKey_RSA\ECC 导出RSA/ECC签名公钥
SDF_ExportEncPublicKey_RSA\ECC 导出RSA/ECC加密公钥
SDF_GenerateKeyPair_RSA\ECC 产生并输出RSA/ECC密钥对
SDF_GenerateKeyWithIPK_RSA\ECC 产生会话密钥并用RSA/ECC内部加密公钥加密输出(IPK内部加密公钥指的是在密码设备内部存储的公钥,一般使用内部索引值。对应的内部加密私钥ISK用来解密)
SDF_GeneratefKeyWithEPK_RSA\ECC 产生会话密钥并用RSA/ECC外部加密公钥加密输出(EPK外部加密公钥指的是外部公钥,对应的解密是加密私钥不被本密码设备掌握)
SDF_ImportKeyWithISK_RSA\ECC 导入会话密钥并使用ISK解密
SDF_ExchangeDigitEnvelopeBaseOnRSA\ECC 基于RSA/ECC算法的数字信封转换
SDF_GenerateAgreementDataWithECC 生成密钥协商参数并输出
SDF_GenerateKeyWithECC 生成会话密钥
SDF_GenerateAgreementDataAndKeyWithECC 生成密钥协商参数并计算会话密钥
SDF_GenerateKeyWithKEK 生成会话密钥并使用KEK加密输出
SDF_ImportKeyWithKEK 导入会话密钥并使用KEK解密
SDF_DestroyKey 销毁会话密钥
(3)非对称密码算法运算类函数
SDF_ExternalPublicKeyOperation_RSA RSA外部公钥运算
SDF_InternalPublicKeyOperation_RSA RSA内部公钥运算
SDF_InternalPrivateKeyOperation_RSA RSA内部私钥运算
SDF_ExternalVerify_ECC ECC外部密钥验证
SDF_InternalSign_ECC ECC内部密钥签名
SDF_InternalVerify_ECC ECC内部密钥验证
SDF_ExternalEncrypte_ECC ECC外部密钥加密
(4)对称类运算函数
SDF_Encrypt 对称加密
SDF_Decrypt 对称解密
SDF_CalculateMAC 计算MAC
(5)杂凑运算类函数
SDF_HashInit 杂凑运算初始化
SDF_HashUpdate 多包杂凑运算
SDF_HashFinal 杂凑运算结束
(6)用户文件操作类函数
SDF_CreateFile 创建文件
SDF_ReadFile 读取文件
SDF_WriteFile 写文件
SDF_DeleteFile 删除文件
密钥管理安全要求:
(1)设备密钥的使用不对应用系统开放
(2)密钥必须用安全的方式产生并存储
(3)任何时间情况下,除公钥外的密钥均不能以明文形式出现在密码设备外
(4)密码设备内存储的密钥具备有效的密钥保护机制,防止解剖、探测和非法读取
(5)密码设备内存储的密钥具备权限控制机制,防止非法使用和导出