From 8a177c58e692f8852199868ff4845deac55b461b Mon Sep 17 00:00:00 2001 From: Jeffrey Walton Date: Tue, 9 May 2017 00:58:42 -0400 Subject: [PATCH] Add validation for W3C_PADDING InitializeDerivedAndReturnNewSizes This should have occurred with PR 368 or Commit 8e088b48654f --- filters.cpp | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/filters.cpp b/filters.cpp index ca85edc7..0b4b2e2d 100644 --- a/filters.cpp +++ b/filters.cpp @@ -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();