GM/T 0102-2020 密码设备应用接口符合性检测规范.pdf
- 文档部分内容预览:
确认函数返回值为零而且会话句柄值变为零,否则函数调用失败; d) 调用关闭设备函数,确认函数返回值为零而且设备句柄值变为零,则函数调用 成功。 6.3.4的基础上进行。
6.3.6获取设备信息
以1024字节长度数据缓冲区地址为参数循环调用产生随机数函数128次,每次 调用成功后将数据缓冲区的数据写入同一二进制文件并对缓冲区填零,最终生成 128K字节大小的随机数文件; 1 将步骤g循环执行1000次,每次采用不同的二进制文件,最终生成1000个 128K字节大小的随机数文件; 调用关闭会话函数,确认函数返回值为零而且会话句柄值变为零; 调用关闭设备函数,确认函数返回值为零而且设备句柄值变为零; 将步骤h)生成的1000个128K字节大小的随机数文件导人到随机性检测平台 进行随机性检测,通过检测则产生随机数函数调用成功
6.3.8获取私钥使用权限
医药标准6.3.9释放私钥使用权限
c)调用关闭设备函数,确认函数返回值为零而且设备句柄值变为零 注:本测试应在6.3.8的基础上进行。
c)调用关闭设备函数,确认函数返回值为零而且设备句柄值变为零
6.4密钥管理类接口测试
需测试的密钥管理类函数接口如表2所示
6.4.2导出RSA签名公钥
4.3导出RSA加密公钥
创建 )会话句柄和设备句柄并初始化为零值: b) 调用打开设备函数,获取设备句柄; 调用创建会话函数,获取会话句柄; d 分别用1到n(厂家提供最大索引值)索引值并创建相应密钥输出缓冲区、密钥长 度变量和密钥句柄指针,依次调用本函数,调用返回值应为0; 调用关闭会话函数,确认函数返回值为零而且会话句柄值变为零; 调用关闭设备函数,确认函数返回值为零而目设备句柄值变为零
注:公钥加密数据时填充方式与PKCS#1v1
6.4.7导入会话密钥并用内部RSA私钥解密
6.4.9导出ECC签名公钥
调用创建会话函数,获取会话句柄; 分别用1到n(厂家提供最大索引值)索引值并创建相应输出密钥密文缓冲区和 输出密钥密文长度变量,相对应地将6.4.5中输出的1到n段密钥密文及密钥长 度,以及任取一对6.4.4中产生的2048位模长RSA密钥对为参数,依次调用本 函数,调用返回值应为0; 调用关闭会话函数,确认函数返回值为零而且会话句柄值变为零; 调用关闭设备函数,确认函数返回值 各包插值恋光
6.4.10导出ECC加密公销
索引值)对ECC加密密钥对并在设备内部存储; D) 创建(定义)会话句柄和设备句柄并初始化为零值; 调用打开设备函数,获取设备句柄; 调用创建会话函数,获取会话句柄; e 分别用1到n(厂家提供最大索引值)索引值并创建导出公钥缓冲区(大小为EC CrefPublicKey结构体),依次调用本函数,调用返回值应为O; 调用关闭会话函数,确认函数返回值为零而且会话句柄值变为零; S 调用关闭设备函数,确认函数返回值为零而且设备句柄值变为零, 租设务摄
6.4.11产生ECC密钥对并输出
GM/T 01022020
h)将外部公钥地址,缓冲区地址,及密钥句柄指针为参数调用本函数,调用返回值 应为0; i)调用关闭会话函数,确认函数返回值为零而且会话句柄值变为零; )调用关闭设备函数,确认函数返回值为零而且设备句柄值变为零
6.4.14导入会话密钥并用内部ECC私钥解密
GM/T 01022020
要求协商的密钥长度 参与密钥协商的发起方ID值 发起方ID长度 返回的发起方ECC公钥结构 返回的发起方临时ECC公钥结构 返回的协商句柄,用于计算协商密钥 成功
测试步骤:a) 创建(定义)会话句柄和设备句柄并初始化为零值; 调用打开设备函数,获取设备句柄; c 调用创建会话函数,获取会话句柄; d) 采用GB/T35276中的用户身份标识ID默认值作为发起方ID,分别用1到n(厂 家提供最大索引值)索引值并指定协商密钥长度、创建相应发起方公钥输出缓冲 区和发起方临时公钥输出缓冲区并创建发起方协商句柄指针,依次调用本函数, 调用返回值应为0。 注:为协商会话密钥,协商的发起方应首先调用本函数。本测试输出的n个发起方ECC公钥结构、发起方临时 ECC公钥结构和协商句柄保存至6.4.16和6.4.17使用。当采用GB/T32918.5—2017中附录B的SM2椭圆曲 线密钥交换参数和输人数据时,相应的输出数据应该和GB/T32918.5一2017中附录B的结果参考数据一致。
注:为协商会话密钥,协商的发起方应首先调用本函数。本测试输出的n个发起方ECC公钥结构、发起方临时 ECC公钥结构和协商句柄保存至6.4.16和6.4.17使用。当采用GB/T32918.5一2017中附录B的SM2椭圆曲 线密钥交换参数和输人数据时,相应的输出数据应该和GB/T32918.5一2017中附录B的结果参考数据一致。
6.4.16计算会话密钥
沿用6.4.15中的设备句柄和会话句柄; b 采用GB/T35276中的用户身份标识ID默认值作为响应方ID,分别用1到n(厂 家提供最大索引值)索引值并分别相对应地将6.4.15中输出的1到n个协商句柄 和6.4.17中输出的1到n个响应方ECC公钥结构和响应方临时ECC公钼结构
相对应密钥长度,以及新创建密钥句柄指针作为参数,依次调用本函数,调用返回 值应为0; c 以6.4.17中产生的1到n(厂家提供最大索引值)段明文数据和IV并分别以上 步骤中输出的1到n个会话密钥句柄为参数调用6.6.2对称加密函数,输出1到 n段密文数据,和6.4.17中输出的1到n段密文数据应分别匹配相同; d) 调用关闭会话函数,确认函数返回值为零而且会话句柄值变为零; e) 调用关闭设备函数,确认函数返回值为零而且设备句柄值变为零。 主:本测试应在6.4.15和6.4.17的基础上进行,协商的发起方获得响应方的协商参数后调用本函数,计算会话密 钥。使用SM2算法计算会话密钥的过程见GB/T35276。会话密钥计算完成后,应销毁协商句柄并释放为协 商句柄分配的内存等资源。本测试的c)步骤成功,则测试6.4.15到6.4.17均为成功;本测试的c)步骤失败,则 测试6.4.15到6.4.17均为失败。本步骤产生的会话密钥句柄保存至6.4.27和6.4.28使用,
6.4.17产生协商数据并计算会话密钥
原型: HANDLEhSessionHandle, ULONGuiISKIndex, ULONG uiKeyBits, BYTE*pucResponseID, ULONGuiResponseIDLength, BYTE*pucSponsorID, ULONGuiSponsorIDLength, ECCrefPublicKey*pucSponsorPublicKey, ECCrefPublicKey*pucSponsorTmpPublicKey, ECCrefPublicKey*pucResponsePublicKey, ECCrefPublicKey*pucResponseTmpPublicKey, HANDLE * phKeyHandle) 描述: 使用ECC密钥协商算法,产生协商参数并计算会话密钥,同时返回产生的协商参数和 密钥句柄。 参数: hSessionHandle[in] 与设备建立的会话句柄 uiISKIndex[in] 密码设备内部存储加密私钥的索引值,该私钥用于参 与密钥协商 uiKeyBits[in] 协商后要求输出的密钥长度 pucResponselD[in] 响应方ID值 uiResponselDLength[in] 响应方ID长度 pucSponsorID[in] 发起方ID值 uiSponsorIDLength[in] 发起方ID长度 pucSponsorPublicKeyLin] 外部输人的发起方ECC公钥结构 pucSponsorTmpPublicKey[in]外部输人的发起方临时ECC公钥结构 pucResponsePublicKey[out] 返回的响应方ECC公钥结构 pucResponseTmpPublicKey[out]返回的响应方临时ECC公钥结构 phKeyHandle[out] 返回的密钥句柄 返回值: 0 成功 非0 失败,返回错误代码
GM/T 01022020
a)用6.4.15中的设备句柄和会话句柄; D 采用GB/T35276中的用户身份标识ID默认值作为发起方和响应方ID,分别用 6.4.15中输出的1到n个发起方ECC公钥结构和发起方临时ECC公钥结构,密 钥长度,对应本函数索引值(此处对应关系为6.4.15中索引值i对应本函数中的 索引值为i十1对n取模))以及创建相应响应方公钥输出缓冲区和响应方临时公 钥输出缓冲区并创建响应方密钥句柄指针作为参数,依次调用本函数,每次调用 返回值应为0; 随机产生1到n(厂家提供最大索引值)段明文数据和IV并分别以上一步骤中输 出的1到n个会话密钥句柄依次调用6.6.2对称加密函数,输出1到n段密文
6.4.19生成会话密钥并用密钥加密密钥加客
生成会话密钥并用密钥加密密钥加密输出
GM/T01022020
算法标识,指定对称加密算法 密码设备内部存储密钥加密密钥的索引值 缓冲区指针,用于存放输人的密钥密文 输人的密钥密文长度 返回的密钥句柄 成功 失败,返回错误代码
uiKEKIndex[in] 密码设备内部存储密钥加密密钥的索引值 pucKey[in] 缓冲区指针,用于存放输人的密钥密文 puiKeyLength[in] 输人的密钥密文长度 phKeyHandle[out] 返回的密钥句柄 返回值: 0 成功 非0 失败,返回错误代码 测试步骤: a 创建(定义)会话句柄和设备句柄并初始化为零值; b) 调用打开设备函数,获取设备句柄; C) 调用创建会话函数,获取会话句柄; 按照GB/T33560的分组密码算法标识表和厂商申报支持算法逐一指定对称算 法标识ID; e) 对应步骤d)中指定的每种算法ID,分别用1到n(厂家提供最大索引值)索引值 及6.4.19中输出的相对应的1到n个密钥密文及其长度并创建密钥输出句柄调 用本函数,调用返回值应为0; f) 调用关闭会话函数,确认函数返回值为零而且会话句柄值变为零; g) 调用关闭设备函数,确认函数返回值为零而且设备句柄值变为零。 注,加密模式使用ECB模式
注:加密模式使用ECB模
6.4.21计算IKE工作密钥
GM/T 01022020
计算IKE工作密钥并用外部ECC公钥加密输
6.4.23计算IPSEC会话密钥
创建(定义)会话句柄和设备句柄并初始化为零值; b) 调用打开设备函数,获取设备句柄; 调用创建会话函数,获取会话句柄; d) 采用6.4.21中产生的发起方nonce和响应方nonce并按照GB/T36968的相关 要求产生安全参数索引SPI及各参数长度作为输人,协议ID采用ESP协议 (GB/T36968定义),PRF算法标识采用SM3密码杂凑算法标识(GB/T33560
螺旋钢管标准6.4.24计算IPSEC会话密钥并用外部ECC公钥加密输出
缓冲区指针,用于存放返回的加密密钥密文 返回的加密密钥句柄 杂凑密钥长度 缓冲区指针,用于存放返回的杂密钥密文 返回的杂凑密钥句柄 成功
4.25计算SSL工作密销
GM/T 01022020
a)创建(定义)会话句柄和设备句柄并初始化为零值: 调用打开设备函数,获取设备句柄; 调用创建会话函数,获取会话句柄; d) 按照GM/T0024的相关要求产生预主密钥、客户端随机数、服务端随机数,用以 上参数及其长度作为输人,PRF算法标识采用SM3密码杂凑算法标识 (GB/T33560定义),外部ECC公钥算法标识采用SM2椭圆曲线加密算法 (GB/T33560定义),分别创建客户端杂凑密钥、服务端杂凑密钥、客户端加密密 钥、服务端加密密钥句柄及相应的公钥加密结构缓冲区,并按照GM/T0024的 相关要求设定各自的密钥长度,调用本函数,调用返回值应为0; e) 调用关闭会话函数,确认函数返回值为零而且会话句柄值变为零; f 调用关闭设备函数,确认函数返回值为零而且设备句柄值变为零。
6.4.27计算SSL工作密钥(ECDHE
步:a) 创建(定义)会话句柄和设备句柄并初始化为零值: b) 调用打开设备函数,获取设备句柄; C 调用创建会话函数,获取会话句柄; d 使用6.4.16产生的任一会话密钥句柄作为预主密钥句柄,按照GM/T0024的相 关要求产生客户端随机数、服务端随机数及其长度作为输人,PRF算法标识采用 SM3密码杂凑算法标识(GB/T33560定义),分别创建客户端杂凑密钥、服务端 杂凑密钥、客户端加密密钥、服务端加密密钥句柄并按照GM/T0024的相关要
接地线标准GM/T01022020
求设定各自的密钥长度,调用本函数,调用返回值应为0; e)调用关闭会话函数,确认函数返回值为零而且会话句柄值变为零; f)调用关闭设备函数,确认函数返回值为零而且设备句柄值变为零。
....- 检测标准 设备标准
- 相关专题: