summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/DES.c4
-rw-r--r--src/block_template.c11
2 files changed, 15 insertions, 0 deletions
diff --git a/src/DES.c b/src/DES.c
index 5187870..65171fb 100644
--- a/src/DES.c
+++ b/src/DES.c
@@ -50,7 +50,11 @@ static void ltcseterr(int rc)
break;
case CRYPT_INVALID_KEYSIZE:
+#ifdef PCT_DES3_MODULE
PyErr_SetString(PyExc_ValueError, "Invalid key size (must be either 16 or 24 bytes long)");
+#else
+ PyErr_SetString(PyExc_ValueError, "Invalid key size (must be 8 bytes long)");
+#endif
break;
case CRYPT_INVALID_ROUNDS:
diff --git a/src/block_template.c b/src/block_template.c
index eec03d3..99aee43 100644
--- a/src/block_template.c
+++ b/src/block_template.c
@@ -159,6 +159,17 @@ ALGnew(PyObject *self, PyObject *args, PyObject *kwdict)
"Key cannot be the null string");
return NULL;
}
+ if (IVlen != 0 && mode == MODE_ECB)
+ {
+ PyErr_Format(PyExc_ValueError, "ECB mode does not use IV");
+ return NULL;
+ }
+ if (IVlen != 0 && mode == MODE_CTR)
+ {
+ PyErr_Format(PyExc_ValueError,
+ "CTR mode needs counter parameter, not IV");
+ return NULL;
+ }
if (IVlen != BLOCK_SIZE && mode != MODE_ECB && mode != MODE_CTR)
{
PyErr_Format(PyExc_ValueError,