aboutsummaryrefslogtreecommitdiffstats
path: root/src/block/idea
diff options
context:
space:
mode:
authorlloyd <[email protected]>2012-11-29 18:58:54 +0000
committerlloyd <[email protected]>2012-11-29 18:58:54 +0000
commit12c128c1fbb483ae9042b47fc544adf0e55d0693 (patch)
tree46aa39dcfb055c84778fa842a2d66249f6d175c8 /src/block/idea
parent2d8dff7079d4a8eabd848bd0e88b38a2112b333e (diff)
Add new helper zap which zeros a vector, clears it, and then calls
shrink_to_fit to actually deallocate memory.
Diffstat (limited to 'src/block/idea')
-rw-r--r--src/block/idea/idea.cpp6
-rw-r--r--src/block/idea/idea.h2
2 files changed, 7 insertions, 1 deletions
diff --git a/src/block/idea/idea.cpp b/src/block/idea/idea.cpp
index 15062abdf..61a938c57 100644
--- a/src/block/idea/idea.cpp
+++ b/src/block/idea/idea.cpp
@@ -160,4 +160,10 @@ void IDEA::key_schedule(const byte key[], size_t)
DK[0] = mul_inv(EK[48]);
}
+void IDEA::clear()
+ {
+ zap(EK);
+ zap(DK);
+ }
+
}
diff --git a/src/block/idea/idea.h b/src/block/idea/idea.h
index 03ecb1f03..da5dc4cb6 100644
--- a/src/block/idea/idea.h
+++ b/src/block/idea/idea.h
@@ -21,7 +21,7 @@ class BOTAN_DLL IDEA : public Block_Cipher_Fixed_Params<8, 16>
void encrypt_n(const byte in[], byte out[], size_t blocks) const;
void decrypt_n(const byte in[], byte out[], size_t blocks) const;
- void clear() { EK.clear(); DK.clear(); }
+ void clear();
std::string name() const { return "IDEA"; }
BlockCipher* clone() const { return new IDEA; }
protected: