我想使用 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 算法)。直接使用public常量会导致上传或安装失败。
在此澄清一下,我并不是说针对不同的框架版本进行编译可能会突然解决您的问题。我更愿意建议您不要简单地升级卡上可用的功能。
关于sha1 - 是否可以在 javacard 框架 2.2.1 版本中使用 'ALG_HMAC_SHA1' 类中的 'Signature' 方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20518988/