同样是HMAC初始化,凭什么你可以不传算法标识?
原创
利刃信安
利刃信安
利刃信安
2026年8月5日 08:00
北京
在小说阅读器读本章
去阅读
同样是HMAC初始化,凭什么你可以不传算法标识?
01
0016 SKF
带密钥的杂凑运算初始化
- 原型
ULONG DEVAPI SKF\_HMACInit(HANDLE hKey,HANDLE \*phHMac)
- 功能描述
三步式带密钥的数据杂凑运算的第一步。
- 参数
hKey [IN] 密钥句柄。
phHmac [OUT] HMAC对象句柄。
- 返回值
SAR\_OK:成功。
其他:错误码。
02
0018 SDF
带密钥的杂凑运算初始化
- 原型
LONG SDF\_HMACInit(HANDLE hSessionHadle,HANDLE hKeyHandle,ULONF uiAlgID)
- 功能描述
三步式带密钥的数据杂凑运算第一步。
- 参数
hSessionHandle [in] 与设备建立的会话句柄
hKeyHandle [in] 指定的密钥句柄
uiAlgID [in] 指定杂凑算法标识
- 返回值
0 成功
非0 失败,返回错误代码
03
正确调用
0016 SKF
...c
/\ 第1步:导入会话密钥(7.6.19),在此用 SGD\_SM3\_HMAC 标记 HMAC 密钥用途 \/
rv = SKF\_ImportSessionKey(hContainer, SGD\_SM3\_HMAC,
(ECCCIPHERBLOB \)pbWrapedData, ulWrapedLen, \phKey);
/\ 第2步:带密钥的杂凑运算初始化(7.6.36),无需算法参数 \/
rv = SKF\_HMACInit(hKey, \*phHMac);
/\ 第3步:带密钥的单包杂凑运算(7.6.37)或带密钥的多包杂凑运算 + 带密钥的杂凑运算结束(7.6.38 + 7.6.39) \/
rv = SKF\_HMAC(hHMac, \pbData, ulDataLenth, \pbHashData, \*pulHashLen);
涉及会话密钥算法标识的函数包括:
...Code
RSA 生成导出会话密钥 SKF\_RSAExportSessionKey
ECC 生成并导出会话密钥 SKF\_ECCExportSessionKey
ECC 生成密钥协商参数并输出 SKF\_GenerateAgreementDataWithECC
ECC 产生协商数据并计算会话密钥 SKF\_GenerateAgreementDataAndKeyWithECC
导入会话密钥 SKF\_ImportSessionKey
SM9 生成密钥协商参数并输出 SKF\_SM9GenerateAgreementData
SM9 产生协商数据并计算会话密钥 SKF\_SM9GenerateAgreementDataAndKey
SM9 密钥解封装 SKF\_SM9KeyDecapsulate
0018 SDF
...c
/\ 第1步:生成会话密钥并用密钥加密密钥加密输出,同时返回密钥句柄。加密模式为ECB模式(SDF 的密钥句柄不绑定用途) \/
rv = SDF\_GenerateKeyWithKEK(hSessionHandle, uiKeyBits, uiAlgID,
uiKEKIndex, \pucKey, \puiKeyLength, \*phKeyHandle);
/\* 第2步:带密钥的杂凑运算初始化(6.6.2)
\ uiAlgID 指定杂凑算法标识:SGD\_SM3 \/
rv = SDF\_HMACInit(hSessionHandle, hKeyHandle, SGD\_SM3); /\ 指定杂凑算法标识 \/
rv = SDF\_HMACUpdate(hSessionHandle, \pucData, uiDataLenth); /\ 6.6.3 \*/
rv = SDF\_HMACFinal(hSessionHandle, \pucHMac, \puiHMacLength); /\ 6.6.4 \/
带外部密钥的杂凑运算初始化(GM/T 0018-2023 §6.8.13):密钥不落设备、没有句柄时,算法标识同样在 init 显式传入:
...c
LONG SDF\_ExternalKeyHMACInit(HANDLE hSessionHandle, ULONG uiAlgID,BYTE \*pucKey, ULONG uiKeyLength);
我是利刃信安,网络安全和密码安全、数据安全领域的小白。
如果你觉得今天这篇有收获,欢迎点赞、在看、转发三连,我们下篇见
点赞
在看
转发
如有疑问,请联系:Mannix6
版权声明
本站仅做备份收录,仅供研究与教学参考之用。
读者将信息用于其他用途的,全部法律及连带责任由读者自行承担,本站不承担任何责任。










评论