我正在尝试在 java 中使用 Pkcs11 包装器计算 AES-MAC (RFC 4493)。并且似乎 hsm 发送了最后一个 AES-CBC 块,这不是预期的结果。这是我发送 PKCS11 请求的方式:
CK_MECHANISM mec = new CK_MECHANISM();
mec.mechanism = Mechanism.AES_MAC_GENERAL.getMechanismCode();
mec.pParameter = new MacGeneralParameters(16L).getPKCS11ParamsObject();
cryptoki.C_SignInit(ckiSession, mec, key, true);
Mac = cryptoki.C_Sign(ckiSession, data);
结果如下:
key = 00000000000000000000000000000000
data = 00000000000000000000000000000000
AES_CBC(key, data) = 66E94BD4EF8A2C3B884CFA59CA342B2E
cmac(key, data) = 66E94BD4EF8A2C3B884CFA59CA342B2E
expected cmac = 763CBCDE81DF9131BF897712C088EDAD
你能帮忙解决这个问题吗?
谢谢!