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