From: <fma...@bo...> - 2002-10-29 21:42:31
|
Dear friends, I'm having a problem with this program: /* START...*/ 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 =3D ( "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 =3D 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 =3D 2; KeyPairGenerator kpg =3D KeyPairGenerator.getInstance("RSA"); Signature[] sigs =3D 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 =3D Cipher.getInstance("RSA"); int s; // key strength for (int i =3D 1; i < k; i++) { // s =3D 384 + 128 * i; s =3D 512; System.out.println("\nTest #" + (i) + " (" + s + "-bit modulus)\n"); System.out.print(" Generating keypair "); kpg.initialize(s, prng); System.out.print(". "); KeyPair pair =3D kpg.generateKeyPair(); System.out.print(". "); PrivateKey sk =3D pair.getPrivate(); System.out.print(". "); PublicKey pk =3D pair.getPublic(); System.out.println(". Done!\n"); System.out.print(" Testing Signatures \n"); for (int j =3D 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, Signat= ure 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 =3D alg.sign(); System.out.println(" Verifying with same " + s + "-bit key using " + alg.getAlgorithm() + "..."); alg.initVerify(pk); alg.update(message); boolean ok =3D alg.verify(signature); if (ok) System.out.println("Verificacao ok!\n"); } catch (Throwable e) { System.out.println(e); } } } /* END...*/ The result is: -------------------- 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 k= ey Signing with a 512-bit key using RIPEMD160/RSA/PKCS#1... java.security.InvalidKeyException: RIPEMD160/RSA/PKCS#1: Not an RSA priva= te key What does this mean? Where is the error? Thanks! Francisco Magalh=E3es 226-7500/226-7474/9981-3252 ICQ 145605801 S=E3o Lu=EDs - Patrim=F4nio da Humanidade |