fn read_block_ciphertext(buffer: &mut Vec<u8>) -> [u8; 16]
Reads and removes the first block from the buffer. The size must be checked by the caller before calling this function, and it may panic otherwise.