aboutsummaryrefslogtreecommitdiffstats
path: root/src/block/aes_ssse3
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/aes_ssse3
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/aes_ssse3')
-rw-r--r--src/block/aes_ssse3/aes_ssse3.cpp17
-rw-r--r--src/block/aes_ssse3/aes_ssse3.h6
2 files changed, 20 insertions, 3 deletions
diff --git a/src/block/aes_ssse3/aes_ssse3.cpp b/src/block/aes_ssse3/aes_ssse3.cpp
index 648f96d67..476b004bb 100644
--- a/src/block/aes_ssse3/aes_ssse3.cpp
+++ b/src/block/aes_ssse3/aes_ssse3.cpp
@@ -406,6 +406,12 @@ void AES_128_SSSE3::key_schedule(const byte keyb[], size_t)
_mm_storeu_si128(DK_mm, aes_schedule_mangle_last_dec(key));
}
+void AES_128_SSSE3::clear()
+ {
+ zap(EK);
+ zap(DK);
+ }
+
/*
* AES-192 Encryption
*/
@@ -507,6 +513,11 @@ void AES_192_SSSE3::key_schedule(const byte keyb[], size_t)
}
}
+void AES_192_SSSE3::clear()
+ {
+ zap(EK);
+ zap(DK);
+ }
/*
* AES-256 Encryption
@@ -588,4 +599,10 @@ void AES_256_SSSE3::key_schedule(const byte keyb[], size_t)
_mm_storeu_si128(DK_mm + 0, aes_schedule_mangle_last_dec(key2));
}
+void AES_256_SSSE3::clear()
+ {
+ zap(EK);
+ zap(DK);
+ }
+
}
diff --git a/src/block/aes_ssse3/aes_ssse3.h b/src/block/aes_ssse3/aes_ssse3.h
index 46bae1450..938abeae3 100644
--- a/src/block/aes_ssse3/aes_ssse3.h
+++ b/src/block/aes_ssse3/aes_ssse3.h
@@ -21,7 +21,7 @@ class BOTAN_DLL AES_128_SSSE3 : public Block_Cipher_Fixed_Params<16, 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() { zeroise(EK); zeroise(DK); }
+ void clear();
std::string name() const { return "AES-128"; }
BlockCipher* clone() const { return new AES_128_SSSE3; }
private:
@@ -39,7 +39,7 @@ class BOTAN_DLL AES_192_SSSE3 : public Block_Cipher_Fixed_Params<16, 24>
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() { zeroise(EK); zeroise(DK); }
+ void clear();
std::string name() const { return "AES-192"; }
BlockCipher* clone() const { return new AES_192_SSSE3; }
private:
@@ -57,7 +57,7 @@ class BOTAN_DLL AES_256_SSSE3 : public Block_Cipher_Fixed_Params<16, 32>
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() { zeroise(EK); zeroise(DK); }
+ void clear();
std::string name() const { return "AES-256"; }
BlockCipher* clone() const { return new AES_256_SSSE3; }
private: