public byte [ ] decrypt ( final byte [ ] encryptedContent ) { FastByteBuffer fbb = new FastByteBuffer ( ) ; int length = encryptedContent . length ; int blockCount = length / blockSizeInBytes ; int offset = 0 ; for ( int i = 0 ; i < blockCount - 1 ; i ++ ) { byte [ ] decrypted = decryptBlock ( encryptedContent , offset ) ; fbb . append ( decrypted ) ; offset += blockSizeInBytes ; } // process last block byte [ ] decrypted = decryptBlock ( encryptedContent , offset ) ; // find terminator int ndx = blockSizeInBytes - 1 ; while ( ndx >= 0 ) { if ( decrypted [ ndx ] == TERMINATOR ) { break ; } ndx -- ; } fbb . append ( decrypted , 0 , ndx ) ; return fbb . toArray ( ) ; }
Decrypts the whole content block by block .