将密钥对存储在代号为 one app 的设备中
Store keypair in the device in codename one app
我目前正在尝试代号为 one 的框架,我想知道是否有办法存储由 bouncy castle 库生成的密钥对?
我尝试使用 Storage 和 Preferences 来存储密钥,但总是产生相同的异常
java.io.IOException: Object type not supported: org.bouncycastle.asn1.pkcs.RSAPublicKey value: org.bouncycastle.asn1.pkcs.RSAPublicKey@581c
at com.codename1.io.Util.writeObject(Util.java:481)
at com.codename1.io.Storage.writeObject(Storage.java:227)
您需要保存与键相关的字节数组,而不是键对象。例如
byte[] b = key.toASN1Primitive().getEncoded();
并恢复:
RSAPublicKey key = RSAPublicKey.getInstance(b);
还没有尝试过,但查看代码我认为这应该可行。
我目前正在尝试代号为 one 的框架,我想知道是否有办法存储由 bouncy castle 库生成的密钥对?
我尝试使用 Storage 和 Preferences 来存储密钥,但总是产生相同的异常
java.io.IOException: Object type not supported: org.bouncycastle.asn1.pkcs.RSAPublicKey value: org.bouncycastle.asn1.pkcs.RSAPublicKey@581c
at com.codename1.io.Util.writeObject(Util.java:481)
at com.codename1.io.Storage.writeObject(Storage.java:227)
您需要保存与键相关的字节数组,而不是键对象。例如
byte[] b = key.toASN1Primitive().getEncoded();
并恢复:
RSAPublicKey key = RSAPublicKey.getInstance(b);
还没有尝试过,但查看代码我认为这应该可行。