是否可以在javacard框架2.2.1版本中使用'Signature'类中的'ALG_HMAC_SHA1'方法?



我想使用javacard.security.Signature类中的ALG_HMAC_SHA1方法。但是我的javacard框架版本是2.2.1,所以Signature类在这个版本中不包括这个方法。包括2.2.2之后的方法。是否可以在不升级框架版本的情况下使用这种方法?

您可以始终使用在2.2.2框架中为常量ALG_HMAC_SHA1(=(byte)24)找到的值,并将其传递给Signature.getInstance()方法。因此,使用不是问题。但是,要在其上运行小程序的智能卡硬件需要支持此算法,以便您能够使用。

因此,如果您的智能卡硬件支持JC 2.2.1,则使用值ALG_HMAC_SHA1调用getInstance()方法通常会导致CryptoException,原因(CryptoException.NO_SUCH_ALGORITHM)表示不支持该算法,JC 2.2.1不支持任何HMAC算法)。直接使用公共常量可能会导致上传或安装失败。

这里需要明确的是,我并不是说为不同的框架版本编译可能会突然解决你的问题。我建议您可以而不是简单地升级卡上可用的功能。

HMAC算法不是什么大不了的。只要你的卡支持SHA-1,你就可以自己简单地实现算法。详细信息请参见RFC2104,测试向量请参见RFC2202。

BTW:你不能"升级框架版本";JavaCard的操作系统和JavaCard框架通常是不可变的(存储在ROM中)。你只能买一张不同的卡。。。

相关内容

最新更新