package fugue;

public class FugueHash {
	
	//parse a hex string with a message
	private static short[] parseStr(String msg){
		short[] sMsg=new short[msg.length()/2];
		for(int i=0;i0)
			return null; //Message length must be a multiple of 32 bits
		for(int i=0;i>7)) & 255);
            /* xor with x */
            x ^= s;
		}
		x ^= 99; /* 0x63 */
		
		return x;
	}
	
	/*
	private static short[][] AltSuperMix(short[][] U){
		short[][] M={{0x01,0x01,0x07,0x04},{0x04,0x01,0x01,0x07},{0x07,0x04,0x01,0x01},{0x01,0x07,0x04,0x01}};
		short[][] A=GFutils.GFmatrixmult(M,U);
		GFutils.dump(A,"M*U");

		short[][] B=new short[4][4];
		for(int i=0;i<4;i++){ //Diagonale
			for(int j=0;j<4;j++) //Spalten
				if(i!=j)
					B[i][i]=GFutils.GFadd(B[i][i],U[j][i]);
		}
		B=GFutils.GFmatrixmult(B,GFutils.GFmatrixTranspose(M));
		GFutils.dump(B,"SumMatrix * M^T");
		B=ROL(GFutils.GFmatrixAdd(A,B));
		
		return B;
	}
	
	private static short[][] ROL(short[][] M){
		short temp;
		
		for(int r=0;r>(8*i));

		padmsg=F256(padmsg,IV);
		return padmsg;
	}
	
}

Generated on Fri Sep 24 10:39:12 CEST 2010
Home