import java.io.*;

public class Test {

	public static void main(String args[] ) {
		try {
		Simetric s = new Simetric();
		s.generaClau();
		s.xifra("testfile","testfile.crypt");
		s.guardaClauPBE("keysaved.pbe","geheim");
		s.llegeixClauPBE("keysaved.pbe","geheim");

		s.desxifra("testfile.crypt","testfile.decrypt");

		Test.compare("testfile","testfile.decrypt");
		System.out.println("PBE OK");


		s = new Simetric();
		s.generaClau();
		s.xifra("testfile","testfile.crypt");

		s.guardaClau("keysaved");
		s.llegeixClau("keysaved");

		s.desxifra("testfile.crypt","testfile.decrypt");

		Test.compare("testfile","testfile.decrypt");
		System.out.println("sin PBE OK tambien");

		}

		catch (Exception e) {
			System.out.println(e);
		}
	}


	public static boolean compare(String e, String z) throws Exception
	{
		FileInputStream fis1 = new FileInputStream(new File(e));
		FileInputStream fis2 = new FileInputStream(new File(z));

		int b1 = 0;
		int b2 = 0;


		while ( (b1=fis1.read()) >= 0 ) {
			b2 = fis2.read();
			if (b1!=b2) {
				fis1.close();
				fis2.close();
				throw new 
			  Exception(e+" y "+z+" no equales ("+b1+" "+b2+")");
			}
		}
		fis1.close();
		fis2.close();
		return true;
	}
}

