public void macOnly(byte[] buffer){
		int i = 0, j, n = buffer.length;
		int t;
		
		/* Handle any previously buffered bytes. */
		if(this.nbuf != 0){
			while(this.nbuf != 0 && n != 0){
				this.mbuf ^= buffer[i++] << (32 - this.nbuf);
				this.nbuf -= 8;
				
				n--;
			}
			
			/* Not a whole word yet. */
			if(this.nbuf != 0){
				return;			
			}
			
			/* LFSR already cycled. */
			this.macFunc(this.mbuf);
		}
			
		/* Handle whole words. */
		j = n & ~0x03;
		
		while(i < j){
			/* Cycle register. */
			this.cycle();
			
			/* Shift 4 bytes into one word. */
			t =	((buffer[i + 3] & 0xFF) << 24) |
				((buffer[i + 2] & 0xFF) << 16) |
				((buffer[i + 1] & 0xFF) << 8)  |
				((buffer[i    ] & 0xFF));
			
			this.macFunc(t);
			
			i += 4;
		}
		
		/* Handle any trailing bytes. */
		n &= 0x03;
		
		if(n != 0){
			/* Cycle register. */
			this.cycle();
			
			this.mbuf = 0;
			this.nbuf = 32;
			
			while(this.nbuf != 0 && n != 0){
				this.mbuf ^= buffer[i++] << (32 - this.nbuf);
				this.nbuf -= 8;
				
				n--;
			}
		}
	}