Caro Francisco, Teria como Vc fazer algumas alterações no seu código para que possámos ter mais informações sobre o erro?
No código: catch(Throwable e) { System.out.println(e); } coloque: catch(Throwable e) { e.printStackTrace(); System.out.println(e); } Outra alteração é: - Altere seus métodos "getInstance" para explicitamente informar o provider da Cryptix. Algo do tipo Cipher.getInstance("RSA", "Cryptix"); //Verifique se o nome do provider é este mesmo. Espero um retorno. [ ]´s Luciano da Silva Coelho [EMAIL PROTECTED] Sun Certified Programmer for JAVA2 Sun Certified Web Component Developer for J2EE Sun Certified Instructor for JAVA2 e-Sec Tecnologia em Segurança de Dados www.esec.com.br Olá pessoal! Estou desenvolvendo uma aplicação usando a biblioteca de criptografia Cryptix. Gostaria de saber se algum de vcs usam ou já usaram isso, pois estou com alguns problemas no meu código. O problema está na linha alg.initSign(sk); que dispara a exceção java.security.InvalidKeyException: MD2/RSA/PKCS#1: Not an RSA private key Não entendo porque ele acha que não é uma chave RSA!!! Por favor ajudem! O resultado é o seguinte: ---------------------------------- Test #1 (512-bit modulus) Generating keypair . . . . Done! Testing Signatures Signing with a 512-bit key using MD2/RSA/PKCS#1... java.security.InvalidKeyException: MD2/RSA/PKCS#1: Not an RSA private key Signing with a 512-bit key using MD5/RSA/PKCS#1... java.security.InvalidKeyException: MD5/RSA/PKCS#1: Not an RSA private key Signing with a 512-bit key using SHA-1/RSA/PKCS#1... java.security.InvalidKeyException: SHA-1/RSA/PKCS#1: Not an RSA private key Signing with a 512-bit key using RIPEMD160/RSA/PKCS#1... java.security.InvalidKeyException: RIPEMD160/RSA/PKCS#1: Not an RSA private key ---------------------------------- O código completo é: /* INICIO...*/ import java.io.*; import java.lang.*; import cryptix.util.core.BI; import cryptix.util.core.Hex; import cryptix.util.test.BaseTest; import java.math.BigInteger; import java.security.KeyPair; import java.security.KeyPairGenerator; import java.security.PrivateKey; import java.security.PublicKey; import java.security.SecureRandom; import java.security.Signature; import xjava.security.Cipher; import xjava.security.interfaces.CryptixRSAPublicKey; import xjava.security.interfaces.CryptixRSAPrivateKey; import xjava.security.interfaces.RSAFactors; // BaseTest import java.io.PrintWriter; import java.io.StringWriter; import java.applet.Applet; public class RSAchico3 { // Constantes private static final byte[] message = ( "Je ne veux que du magnifique, et je ne travaille pas pour le " + "vulgaire des lecteurs --Giambattista BODONI (1740-1813)").getBytes(); private static final SecureRandom prng = new SecureRandom(); // Metodos public static void main (String[] args) throws Exception { java.security.Security.addProvider(new cryptix.provider.Cryptix()); new RSAchico3().engine(); } protected void engine() throws Exception { int k = 2; KeyPairGenerator kpg = KeyPairGenerator.getInstance("RSA"); Signature[] sigs = new Signature[] { Signature.getInstance("MD2/RSA/PKCS#1"), Signature.getInstance("MD5/RSA/PKCS#1"), Signature.getInstance("SHA-1/RSA/PKCS#1"), Signature.getInstance("RIPEMD160/RSA/PKCS#1"), }; Cipher cipher = Cipher.getInstance("RSA"); int s; // key strength for (int i = 1; i < k; i++) { // s = 384 + 128 * i; s = 512; System.out.println("\nTest #" + (i) + " (" + s + "-bit modulus)\n"); System.out.print(" Generating keypair "); kpg.initialize(s, prng); System.out.print(". "); KeyPair pair = kpg.generateKeyPair(); System.out.print(". "); PrivateKey sk = pair.getPrivate(); System.out.print(". "); PublicKey pk = pair.getPublic(); System.out.println(". Done!\n"); System.out.print(" Testing Signatures \n"); for (int j = 0; j < sigs.length; j++) { testSignature(s, pk, sk, sigs[j]); // out.print(". "); } // out.println("Done!\n"); //testEncryption(s, pk, sk, cipher); } } private void testSignature(int s, PublicKey pk, PrivateKey sk, Signature alg) { try { System.out.println(" Signing with a " + s + "-bit key using " + alg.getAlgorithm() + "..."); alg.initSign(sk); System.out.println("B\n"); alg.update(message); byte[] signature = alg.sign(); System.out.println(" Verifying with same " + s + "-bit key using " + alg.getAlgorithm() + "..."); alg.initVerify(pk); alg.update(message); boolean ok = alg.verify(signature); if (ok) System.out.println("Verificacao ok!\n"); } catch (Throwable e) { System.out.println(e); } } } /* FIM...*/ ------------------------------ LISTA SOUJAVA ---------------------------- http://www.soujava.org.br - Sociedade de Usuários Java da Sucesu-SP dúvidas mais comuns: http://www.soujava.org.br/faq.htm regras da lista: http://www.soujava.org.br/regras.htm historico: http://www.mail-archive.com/java-list%40soujava.org.br para sair da lista: envie email para [EMAIL PROTECTED] ------------------------------------------------------------------------- ------------------------------ LISTA SOUJAVA ---------------------------- http://www.soujava.org.br - Sociedade de Usuários Java da Sucesu-SP dúvidas mais comuns: http://www.soujava.org.br/faq.htm regras da lista: http://www.soujava.org.br/regras.htm historico: http://www.mail-archive.com/java-list%40soujava.org.br para sair da lista: envie email para [EMAIL PROTECTED] -------------------------------------------------------------------------