0

我正在按照以下步骤使用 SHA1 算法使用两个不同的 API 计算 HMAC,并且两个输出都不匹配。

1) 我首先通过BouncyCastle API使用 SHA1 算法为给定的数据和密钥计算 HMAC 。

2) 我们使用PKCS11 API(Pkcs11Interop)为 HSM(Thales) 中的数据和密钥计算 HMAC 。

当我们比较 1 和 2 的结果时,数据不匹配。

充气城堡代码:

        HMAC hmac = HMACSHA1.Create();

        String key = "BC55B4580589775F887890A7ACA5E624";

        hmac.Key = Util.HexStringToByteArray(key);

        byte[] modInput = Util.HexStringToByteArray("000000000000000000000006000080012b0601040181e438010102041603");

        String ki = Util.ByteArrayToHexString(hmac.ComputeHash(modInput));

PKCS11 代码:

       ObjectHandle k = FindObjectByLabel(keyLabel);//same key as above

       Mechanism m = new Mechanism(CKM.CKM_SHA_1_HMAC);

      **//We have verified that both key and data value are the same**
      return mSession.Connection.Sign(m, k, data);

有人可以帮忙吗?

4

0 回答 0