Parece que o simples acto de enviar a mensagem para a ML é grande parte da solução. =) A string está codificada em Base64, qualquer das soluções anterior funciona desde que primeiro façamos *Base64.decode(strKey.getBytes())*
Em 18 de maio de 2010 23:55, Nuno Rosa <[email protected]> escreveu: > Olá, > Alguém que já tenha implementado soluções com pares de chaves/certificados > em Java? > > O meu problema é o seguinte, eu tenho uma chave privada gerada por um > provider com o algoritmo "SHA1withRSA" e formato "PKCS8" mas quando tento > gerar a chave para um objecto Java obtenho sempre o seguinte erro: > > *Exception in thread "main" java.io.IOException: corrupt private key* > * **at sun.security.pkcs.PKCS8Key.parseKey(PKCS8Key.java:104)* > * > * > Não tenho a certeza se esta é a maneira correcta de implementação, no > entanto como tentei foi: > Nota: o método sign tem uma assinatura *void sign(PrivateKey arg0);* > > final String strKey = "MIIEvwIBADANB...." > [...] > DerValue dv = new DerValue(strKey); > envelope.sign(PKCS8Key.parseKey(dv)); > > > > Outro método que tentei, sem resultados, foi implementar o interface do > seguinte modo: > > envelope.sign(new PrivateKey() { > PKCS8EncodedKeySpec spec = new PKCS8EncodedKeySpec(strKey.getBytes()); > @Override > public String getFormat() { > return spec.getFormat(); > } > @Override > public byte[] getEncoded() { > return spec.getEncoded(); > } > @Override > public String getAlgorithm() { > return "RSA"; > } > }); > > no entanto dispara a excepção: > > *Caused by: java.security.InvalidKeyException: invalid key format* > * **at sun.security.pkcs.PKCS8Key.decode(PKCS8Key.java:324)* > * **at sun.security.pkcs.PKCS8Key.decode(PKCS8Key.java:350)* > * > * > Entretanto estou a tentar criar um certificado *self-signed* com o > keytool, apenas para tentar perceber o funcionamento pois o ideal seria > utilizar o par de chaves geradas pelo "provider". > -- Recebeu esta mensagem porque está inscrito no grupo "Mailing List da Comunidade Portuguesa de Rich Internet Applications - www.riapt.org" dos Grupos do Google. Para publicar uma mensagem neste grupo, envie um e-mail para [email protected]. Para anular a inscrição neste grupo, envie um e-mail para [email protected]. Para ver mais opções, visite este grupo em http://groups.google.com/group/riapt?hl=pt-PT.
