Add validation for W3C_PADDING InitializeDerivedAndReturnNewSizes

This should have occurred with PR 368 or Commit 8e088b4865
pull/416/head
Jeffrey Walton 2017-05-09 00:58:42 -04:00
parent 6ca68e714b
commit 8a177c58e6
No known key found for this signature in database
GPG Key ID: B36AB348921B1838
1 changed files with 8 additions and 2 deletions

View File

@ -611,8 +611,14 @@ void StreamTransformationFilter::InitializeDerivedAndReturnNewSizes(const NameVa
else
m_padding = padding;
if (!isBlockCipher && (m_padding == PKCS_PADDING || m_padding == ONE_AND_ZEROS_PADDING))
throw InvalidArgument("StreamTransformationFilter: PKCS_PADDING and ONE_AND_ZEROS_PADDING cannot be used with " + m_cipher.AlgorithmName());
if (!isBlockCipher && (m_padding == PKCS_PADDING))
throw InvalidArgument("StreamTransformationFilter: PKCS_PADDING cannot be used with " + m_cipher.AlgorithmName());
if (!isBlockCipher && (m_padding == W3C_PADDING))
throw InvalidArgument("StreamTransformationFilter: W3C_PADDING cannot be used with " + m_cipher.AlgorithmName());
if (!isBlockCipher && (m_padding == ONE_AND_ZEROS_PADDING))
throw InvalidArgument("StreamTransformationFilter: ONE_AND_ZEROS_PADDING cannot be used with " + m_cipher.AlgorithmName());
firstSize = 0;
blockSize = m_cipher.MandatoryBlockSize();