public void update(byte[] in,int inOff,int len){
  while ((mOff != 0) && (len > 0)) {
    update(in[inOff]);
    inOff++;
    len--;
  }
  while (len > 16) {
    System.arraycopy(in,inOff,M,0,16);
    processCheckSum(M);
    processBlock(M);
    len-=16;
    inOff+=16;
  }
  while (len > 0) {
    update(in[inOff]);
    inOff++;
    len--;
  }
}

public void update ( byte [ ] in , int inOff , int len ) { while ( ( mOff != 0 ) && ( len > 0 ) ) { update ( in [ inOff ] ) ; inOff ++ ; len -- ; } while ( len > 16 ) { System . arraycopy ( in , inOff , M , 0 , 16 ) ; processCheckSum ( M ) ; processBlock ( M ) ; len -= 16 ; inOff += 16 ; } while ( len > 0 ) { update ( in [ inOff ] ) ; inOff ++ ; len -- ; } }
update the message digest with a block of bytes .
