import java.io.*; import java.security.*; class GeneraFirmaLRYS { public static void main(String [] args) { if(args.length != 1) { System.out.println("Sintaxis del programa: GeneraFirmaLRYS ArchivoaFirmar.txt"); } else try { KeyPairGenerator genClave = KeyPairGenerator.getInstance("RSA"); SecureRandom aleatorio = SecureRandom.getInstance("SHA1PRNG", "SUN"); genClave.initialize(1024, aleatorio); KeyPair pardeClaves = genClave.generateKeyPair(); PrivateKey privada = pardeClaves.getPrivate(); PublicKey publica = pardeClaves.getPublic(); Signature firma = Signature.getInstance("MD5withRSA"); firma.initSign(privada); FileInputStream archivo = new FileInputStream(args[0]); BufferedInputStream buferEntrada = new BufferedInputStream(archivo); byte[] buffer = new byte[1024]; int longitud; while(buferEntrada.available() != 0) { longitud = buferEntrada.read(buffer); firma.update(buffer, 0, longitud); } buferEntrada.close(); byte[] firmaReal = firma.sign(); FileOutputStream archivoFirma = new FileOutputStream("FirmaLRYS.bin"); archivoFirma.write(firmaReal); archivoFirma.close(); byte[] clave = publica.getEncoded(); FileOutputStream clavePublica = new FileOutputStream("ClavePublicaLRYS.bin"); clavePublica.write(clave); clavePublica.close(); } catch(Exception e) { System.out.println("El error es " + e); } } }