aboutsummaryrefslogtreecommitdiffstats
path: root/src/lib/block/des/des.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/block/des/des.cpp')
-rw-r--r--src/lib/block/des/des.cpp8
1 files changed, 8 insertions, 0 deletions
diff --git a/src/lib/block/des/des.cpp b/src/lib/block/des/des.cpp
index 15c2adb66..2881cfa9a 100644
--- a/src/lib/block/des/des.cpp
+++ b/src/lib/block/des/des.cpp
@@ -144,6 +144,8 @@ void des_decrypt(uint32_t& L, uint32_t& R,
*/
void DES::encrypt_n(const uint8_t in[], uint8_t out[], size_t blocks) const
{
+ verify_key_set(m_round_key.empty() == false);
+
for(size_t i = 0; i < blocks; ++i)
{
uint64_t T = (DES_IPTAB1[in[8*i+0]] ) | (DES_IPTAB1[in[8*i+1]] << 1) |
@@ -171,6 +173,8 @@ void DES::encrypt_n(const uint8_t in[], uint8_t out[], size_t blocks) const
*/
void DES::decrypt_n(const uint8_t in[], uint8_t out[], size_t blocks) const
{
+ verify_key_set(m_round_key.empty() == false);
+
for(size_t i = 0; i < blocks; ++i)
{
uint64_t T = (DES_IPTAB1[in[BLOCK_SIZE*i+0]] ) | (DES_IPTAB1[in[BLOCK_SIZE*i+1]] << 1) |
@@ -213,6 +217,8 @@ void DES::clear()
*/
void TripleDES::encrypt_n(const uint8_t in[], uint8_t out[], size_t blocks) const
{
+ verify_key_set(m_round_key.empty() == false);
+
for(size_t i = 0; i != blocks; ++i)
{
uint64_t T = (DES_IPTAB1[in[0]] ) | (DES_IPTAB1[in[1]] << 1) |
@@ -246,6 +252,8 @@ void TripleDES::encrypt_n(const uint8_t in[], uint8_t out[], size_t blocks) cons
*/
void TripleDES::decrypt_n(const uint8_t in[], uint8_t out[], size_t blocks) const
{
+ verify_key_set(m_round_key.empty() == false);
+
for(size_t i = 0; i != blocks; ++i)
{
uint64_t T = (DES_IPTAB1[in[0]] ) | (DES_IPTAB1[in[1]] << 1) |