protected void _F ( byte [ ] dest , int offset , PRF prf , byte [ ] S , int c , int blockIndex ) { int hLen = prf . getHLen ( ) ; byte U_r [ ] = new byte [ hLen ] ; // U0 = S || INT (i); byte U_i [ ] = new byte [ S . length + 4 ] ; System . arraycopy ( S , 0 , U_i , 0 , S . length ) ; INT ( U_i , S . length , blockIndex ) ; for ( int i = 0 ; i < c ; i ++ ) { U_i = prf . doFinal ( U_i ) ; xor ( U_r , U_i ) ; } System . arraycopy ( U_r , 0 , dest , offset , hLen ) ; }
Function F .