将 Object 转换为 Java Card 中的 byte[]

Convert Object to byte[] in Java Card

如何在 Java 卡片小程序中将对象(PublicKey 的实例)转换为 byte[],反之亦然?

我正在使用 Java Card 2.1.1 和 JCDK 2.1.2。

Java Card 不提供任何内置机制来将 PublicKey 对象(或一般对象)序列化为字节数组或将字节数组反序列化回对象。

因此您需要手动执行此类操作 serialization/deserialization。对于实现 PublicKey 接口的对象,这意味着您首先需要找出它是哪种类型的关键对象,例如RSAPublicKey。例如,如果您知道 public 键是 RSAPublicKey,则可以提取类型 (getType())、大小 (getSize())、指数 (getExponent()) 和模数 (getModulus()) 参数并将它们存储到字节数组中。稍后,您可以通过提取这些值并使用 KeyBuilder.buildKey() 方法实例化一个新键来反序列化字节数组。