Não sei que classes você está usando, mas tipicamente um KeyPair tem dois métodos (getPublicKey e getPrivateKey). Uma vez você pegando as chaves (Key), você pode serializá-las com getEncoded, ou então encapsulá-las com SealedObject.
D
diegogalanti
Key pair não existe na versao ME do BC… e a Chave não tem o getEncoded
T
thingol
Ah, olhando na documentação:
você tem uma classe chamada AsymmetricCipherKeyPair, que tem os métodos getPrivateKey e getPublicKey, que retornam um objeto que implementa a interface KeyParameters. Provavelmente esse objeto é da classe RSAKeyParameters, e essa classe tem os métodos getExponent e getModulus (no caso de uma chave pública) e além disso, se ainda por cima for uma chave privada, é da classe RSAPrivateCrtKeyParameters
(veja os métodos na documentação).
Como você vai serializar o BigInteger aí fica por sua conta. Talvez você tenha de usar alguma das classes de ASN.1 também.
D
diegogalanti
trudo isso eu ja sabia… eh exatamente a serialização o problema…
T
thingol
Hum… o BouncyCastle (versão JavaME) disponibiliza o java.math.BigInteger?
Se ele fizer isso, então deve disponibilizar um método que converte esse BigInteger em bytes, que é o toByteArray.
Para você criar então um BigInteger a partir de um array de bytes, você então pode usar o construtor que recebe um array de bytes.
Outra forma, se você prefere formatos padronizados (ASN.1), é então dar uma lidinha na especificação PKCS#9 e usar as classes de ASN.1 do BouncyCastle para gerar arrays de bytes em formato PKCS#9, a partir dos BigIntegers que o BouncyCastle retorna.