在 Java Card 中创建 Cipher 实例时出现异常

问题描述

我使用的是 java 卡 3.0.4。 当我创建一个 Cipher 实例(来自 javacardx.crypto 包)时,如下所示:

Cipher.getInstance(Cipher.ALG_AES_BLOCK_128_CBC_nopAD,false);

我收到一个错误。无论我使用什么算法,都会发生同样的异常。

Cipher.getInstance(Cipher.ALG_RSA_nopAD,false); Cipher.getInstance(Cipher.ALG_AES_BLOCK_128_ECB_nopAD,假); ...

解决方法

尝试捕获错误并将其与文档中所有可能的异常进行匹配。很可能你会发现它没有实现

,

问题是我使用了很多实例创建,但不知何故内存已满。由于java卡没有正式的GC,所以即使在卡的电源断开后实例仍保留在内存中(我正在使用读卡器进行测试)。 所以我删除了未使用的变量并创建了一个类似单例的实例,而不是在每次调用中更新实例。 谢谢Paul Bastian