import java.security.*;
import java.security.spec.*;
import java.io.*;


public class Test {
	public static void main( String args[] ) {

		FileSigner fs = new FileSigner() ;
		boolean b = false ;
		String a = "RSA";

		String priv = "private";
		String pub = "public";
		

		try {
			fs.generaClaus(a,1024);
			fs.signaFitxer("testfile.txt","testfilesigned",a);

			// cambio de claves 
			fs.guardaClaus(pub,priv);
			fs.carregaClaus(pub,priv,null);

			b = fs.verificaFitxer("testfile.txt","testfilesigned",a);
		}
		catch(Exception e) {
			System.out.println("ZONK!!!");
			System.out.println(e.toString());
		}
		if (b) {
			System.out.println("RSA OK");
 		}
		else {
			System.out.println("RSA NOTOK");
		}


		b = false ;
		a = "DSA";
		

		try {
			fs.generaClaus(a,1024);
			fs.signaFitxer("testfile.txt","testfilesigned",a);

			// cambio de claves 
			fs.guardaClaus(pub,priv);
			fs.carregaClaus(pub,priv,null);

			b = fs.verificaFitxer("testfile.txt","testfilesigned",a);
		}
		catch(Exception e) {
			System.out.println("ZONK!!!");
			System.out.println(e.toString());
		}
		if (b) {
			System.out.println("DSA OK");
 		}
		else {
			System.out.println("DSA NOTOK");
		}

	} 
}

