Params may contain additional initialization information like an Initialization Vector. If the block cipher can handle other block sizes, this can also be passed via params. This allows the calling routine to take care of allocating and freeing the memory used by that structure. Since this is the final call for an encryption or decryption operation, any non-integral block unit is padded to a full block and the ciphered. Padding should not be necessary for any of the tests we have specified.
Full blocks are always ciphered.