With the C api for Apple's Common Crypto, why is it sometimes necessary to call both CCCryptorUpdate and CCCryptorFinal?
I read in the documentation that CCCryptorFinal is not needed when: 1. Encrypting or decrypting with a block cipher with padding disabled, when the total amount of data provided to CCCryptorUpdate() is an integral multiple of the block size. 2. Encrypting or decrypting with a stream cipher.
So it seems like it has something to do specifically with dealing with the padding for block cipher encrypted data, but I was hoping for more information.