Codenameone 在codename one应用程序中将密钥对存储在设备中

Codenameone 在codename one应用程序中将密钥对存储在设备中,codenameone,bouncycastle,Codenameone,Bouncycastle,我目前正在尝试代号为one的框架,我想知道是否有办法存储bouncy castle库生成的密钥对 我尝试使用存储和首选项存储密钥,但总是导致相同的异常 java.io.IOException:不支持对象类型:org.bounchycastle.asn1.pkcs.RSAPublicKey值:org.bounchycastle.asn1.pkcs。RSAPublicKey@581c 位于com.codename1.io.Util.writeObject(Util.java:481) 位于com.c

我目前正在尝试代号为one的框架,我想知道是否有办法存储bouncy castle库生成的密钥对

我尝试使用存储和首选项存储密钥,但总是导致相同的异常

java.io.IOException:不支持对象类型:org.bounchycastle.asn1.pkcs.RSAPublicKey值:org.bounchycastle.asn1.pkcs。RSAPublicKey@581c
位于com.codename1.io.Util.writeObject(Util.java:481)
位于com.codename1.io.Storage.writeObject(Storage.java:227)

您需要保存与密钥相关的字节数组,而不是密钥对象。例如

byte[] b = key.toASN1Primitive().getEncoded();
以及恢复:

RSAPublicKey key = RSAPublicKey.getInstance(b);
我还没有试过,但看看代码,我认为这应该行得通