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] 
-------------------------------------------------------------------------

Responder a