5.19 Disabling Cipher Padding in OpenSSL in CBC Mode
5.19.1 Problem
You're
encrypting in CBC or ECB mode, and the length of your data to encrypt
is always a multiple of the block size. You would like to avoid
padding because it adds an extra, unnecessary block of output.
5.19.2 Solution
OpenSSL has a function that can turn padding
on and off for a context object:
int EVP_CIPHER_CTX_set_padding(EVP_CIPHER_CTX *ctx, int pad);
5.19.3 Discussion
Particularly when you are implementing another encryption mode, you
may always be operating on block-sized chunks, and it can be
inconvenient to deal with padding. Alternatively, some odd protocol
may require a nonstandard padding scheme that causes you to pad the
data manually before encryption (and to remove the pad manually after
encryption).
The second argument of this function should be zero to turn padding
off, and non-zero to turn it on.
|