public static byte[] whirlpool(byte[] data, int off, int len) {
		byte source[];
		if(off <= 0) {
			source = data;
		} else {
			source = new byte[len];
			for(int i = 0; i < len; i++)
				source[i] = data[off + i];
			}
		Whirlpool whirlpool = new Whirlpool();
		whirlpool.NESSIEinit();
		whirlpool.NESSIEadd(source, len * 8);
		byte digest[] = new byte[64];
		whirlpool.NESSIEfinalize(digest);
		return digest;
	}