close the digest , producing the final digest value . the dofinal call leaves the digest reset . concode_field_sep int xOff concode_elem_sep int mOff concode_elem_sep byte[] S concode_elem_sep int COff concode_elem_sep int DIGEST_LENGTH concode_elem_sep byte[] C concode_elem_sep byte[] M concode_elem_sep byte[] X concode_field_sep void processCheckSum concode_elem_sep String getAlgorithmName concode_elem_sep int getDigestSize concode_elem_sep int getByteLength concode_elem_sep void reset concode_elem_sep void update concode_elem_sep void update concode_elem_sep void processBlock
int function ( byte [ ] arg0 , int arg1 ) { byte loc0 = ( byte ) ( M . length - mOff ) ; for ( int loc1 = mOff ; loc1 < M . length ; loc1 ++ ) { M [ loc1 ] = loc0 ; } processCheckSum ( M ) ; processBlock ( M ) ; processBlock ( C ) ; System . arraycopy ( X , xOff , arg0 , arg1 , 16 ) ; reset ( ) ; return DIGEST_LENGTH ; }