public byte [ ] encrypt ( final byte [ ] content ) { FastByteBuffer fbb = new FastByteBuffer ( ) ; int length = content . length + 1 ; int blockCount = length / blockSizeInBytes ; int remaining = length ; int offset = 0 ; for ( int i = 0 ; i < blockCount ; i ++ ) { if ( remaining == blockSizeInBytes ) { break ; } byte [ ] encrypted = encryptBlock ( content , offset ) ; fbb . append ( encrypted ) ; offset += blockSizeInBytes ; remaining -= blockSizeInBytes ; } if ( remaining != 0 ) { // process remaining bytes byte [ ] block = new byte [ blockSizeInBytes ] ; System . arraycopy ( content , offset , block , 0 , remaining - 1 ) ; block [ remaining - 1 ] = TERMINATOR ; byte [ ] encrypted = encryptBlock ( block , 0 ) ; fbb . append ( encrypted ) ; } return fbb . toArray ( ) ; }
Encrypts complete content block by block .