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.

Responder a