Validar firma java
Enviado por joshishio • 5 de Abril de 2016 • Tutorial • 722 Palabras (3 Páginas) • 239 Visitas
import java.io.*; /* Se importa el paquete de java.io porque contiene los m�todos de la entrada de archivos de datos a firmar */
import java.security.*; /* Se importa todo el paquete de java.security porque los m�todos para firmar archivos se encuentran dentro de este paquete */
import java.security.spec.*; /* Se importa el paquete java.security.spec, que contiene la clase X509 EncodedKeySpec. */
class ValFirma {
public static void main(String[] args) {
/* Valida una firma creada por el algoritmo Digital Signature Algorithm DSA */
if (args.length != 3) {
System.out.println("Debes cargar los archivos de: -clavepublica- firmadigital -y el documento original con extension");
}
else try{
/* Se carga el archivo codificado de la clave publica */
FileInputStream keyfis = new FileInputStream(args[0]);
byte[] encKey = new byte[keyfis.available()];
keyfis.read(encKey);
keyfis.close();
/* Se decodifca la clave publica utilizando el est�ndar X.509, asumiendo que ha generado con el constructor key-pair generator */
X509EncodedKeySpec pubKeySpec = new X509EncodedKeySpec(encKey);
KeyFactory keyFactory = KeyFactory.getInstance("DSA", "SUN");
PublicKey pubKey = keyFactory.generatePublic(pubKeySpec);
/* Se cargan los bytes de la firmadigital */
FileInputStream sigfis = new FileInputStream(args[1]);
byte[] sigToVerify = new byte[sigfis.available()];
sigfis.read(sigToVerify );
sigfis.close();
/* Se inicializa el objeto Signature para la validaci�n con la clave publica */
Signature sig = Signature.getInstance("SHA1withDSA", "SUN");
sig.initVerify(pubKey);
/* Se proporcionan al objeto Signature los datos a ser validados */
FileInputStream datafis = new FileInputStream(args[2]);
BufferedInputStream bufin = new BufferedInputStream(datafis);
byte[] buffer = new byte[1024];
int len;
while (bufin.available() != 0) {
len = bufin.read(buffer);
sig.update(buffer, 0, len);
};
bufin.close();
boolean verifies = sig.verify(sigToVerify);
/* Si la validaci�n es verdadera se
...