Object 在Java卡中将对象转换为字节[]

Object 在Java卡中将对象转换为字节[],object,serialization,deserialization,smartcard,javacard,Object,Serialization,Deserialization,Smartcard,Javacard,在Java卡小程序中,如何将对象(公钥的实例)转换为字节[],反之亦然 我使用的是Java卡2.1.1和JCDK 2.1.2。Java卡不提供任何内置机制来将公钥对象(或一般对象)序列化为字节数组,或将字节数组反序列化为对象 因此,您需要手动执行此类序列化/反序列化。对于实现PublicKey接口的对象,这意味着您首先需要确定它是哪种类型的键对象,例如RSAPublicKey。例如,如果您知道公钥是一个RSAPublicKey,则可以提取类型(getType())、大小(getSize())、指

在Java卡小程序中,如何将对象(公钥的实例)转换为字节[],反之亦然


我使用的是Java卡2.1.1和JCDK 2.1.2。

Java卡不提供任何内置机制来将
公钥
对象(或一般对象)序列化为字节数组,或将字节数组反序列化为对象


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

'KeyPair pair=new KeyPair(KeyPair.ALG_RSA,(short)1024);pair.genKeyPair();'我正在使用这些代码来生成密钥对,您能给我一个示例来获取和设置密钥对的公钥为,并使用字节数组(byte[])吗?使用getType()获取公钥类型后,您可以对密钥执行强制转换。之后,您可以使用key接口方法设置密钥或将密钥放入字节数组,例如RSAPrivateKey.getExponent(字节[]缓冲区,短偏移量)、RSAPrivateKey.setExponent(字节[]缓冲区,短偏移量,短长度)等。有关详细信息,请查看javadoc