question: public void init ( boolean encrypting , CipherParameters params ) throws IllegalArgumentException { if ( params instanceof ParametersWithIV ) { ParametersWithIV ivParam = ( ParametersWithIV ) params ; byte [ ] iv = ivParam . getIV ( ) ; if ( iv . length < IV . length ) { System . arraycopy ( iv , 0 , IV , IV . length - iv . length , iv . length ) ; for ( int i = 0 ; i < IV . length - iv . length ; i ++ ) { IV [ i ] = 0 ; } } else { System . arraycopy ( iv , 0 , IV , 0 , IV . length ) ; } reset ( ) ; if ( ivParam . getParameters ( ) != null ) { cipher . init ( true , ivParam . getParameters ( ) ) ; } } else { reset ( ) ; if ( params != null ) { cipher . init ( true , params ) ; } } }
target:  Initialise the cipher and, possibly, the initialisation vector (IV). If an IV isn't passed as part of the parameter, the IV will be all zeros. An IV which is too short is handled in FIPS compliant fashion.