我想使用 javacard.security.Signature 类中的 ALG_HMAC_SHA1 方法。但是我的 javacard 框架版本是 2.2.1,所以 Signature 类不包括这个版本的这个方法。它在2.2.2之后包含了这个方法。是否可以在不升级框架版本的情况下使用此方法?
问问题
571 次
2 回答
4
您始终可以只使用在 2.2.2 框架中找到的值作为常量ALG_HMAC_SHA1
(= (byte)24
) 并将其传递给Signature.getInstance()
方法。所以使用值不是问题。但是,您要在其上运行小程序的智能卡硬件需要支持此算法才能使您能够使用。
因此,如果您的智能卡硬件支持 JC 2.2.1,则getInstance()
使用 的值调用该方法ALG_HMAC_SHA1
通常会导致CryptoException
带有原因 ( CryptoException.NO_SUCH_ALGORITHM
) 指示该算法不受支持且 JC 2.2.1 不支持任何 HMAC 算法)。直接使用公共常量可能会导致上传或安装失败。
在这里要清楚一点,我并不是建议为不同的框架版本编译可能会突然解决您的问题。我宁愿建议您不能简单地升级卡上可用的功能。
于 2013-12-11T16:39:54.263 回答