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

时间:2015-10-07 15:26:41

标签: object serialization deserialization smartcard javacard

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

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

1 个答案:

答案 0 :(得分:4)

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

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