summaryrefslogtreecommitdiff
path: root/filters.cpp
diff options
context:
space:
mode:
authorJeffrey Walton <noloader@gmail.com>2017-05-09 00:58:42 -0400
committerJeffrey Walton <noloader@gmail.com>2017-05-09 00:58:42 -0400
commit8a177c58e692f8852199868ff4845deac55b461b (patch)
treef776c284890cea526b8b4c70ed49d79fbfd68551 /filters.cpp
parent6ca68e714bf164641a6ce768fdd572568cb02391 (diff)
downloadcryptopp-git-8a177c58e692f8852199868ff4845deac55b461b.tar.gz
Add validation for W3C_PADDING InitializeDerivedAndReturnNewSizes
This should have occurred with PR 368 or Commit 8e088b48654f
Diffstat (limited to 'filters.cpp')
-rw-r--r--filters.cpp10
1 files 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();