summaryrefslogtreecommitdiffstats
path: root/installerbuilder/libinstaller/3rdparty/p7zip_9.04/unix/CPP/7zip/Crypto/MyAes.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'installerbuilder/libinstaller/3rdparty/p7zip_9.04/unix/CPP/7zip/Crypto/MyAes.cpp')
-rw-r--r--installerbuilder/libinstaller/3rdparty/p7zip_9.04/unix/CPP/7zip/Crypto/MyAes.cpp57
1 files changed, 57 insertions, 0 deletions
diff --git a/installerbuilder/libinstaller/3rdparty/p7zip_9.04/unix/CPP/7zip/Crypto/MyAes.cpp b/installerbuilder/libinstaller/3rdparty/p7zip_9.04/unix/CPP/7zip/Crypto/MyAes.cpp
new file mode 100644
index 000000000..5b0d1e8a4
--- /dev/null
+++ b/installerbuilder/libinstaller/3rdparty/p7zip_9.04/unix/CPP/7zip/Crypto/MyAes.cpp
@@ -0,0 +1,57 @@
+// Crypto/MyAes.cpp
+
+#include "StdAfx.h"
+
+#include "MyAes.h"
+
+namespace NCrypto {
+
+struct CAesTabInit { CAesTabInit() { AesGenTables();} } g_AesTabInit;
+
+STDMETHODIMP CAesCbcEncoder::Init() { return S_OK; }
+
+STDMETHODIMP_(UInt32) CAesCbcEncoder::Filter(Byte *data, UInt32 size)
+{
+ return (UInt32)AesCbc_Encode(&Aes, data, size);
+}
+
+STDMETHODIMP CAesCbcEncoder::SetKey(const Byte *data, UInt32 size)
+{
+ if ((size & 0x7) != 0 || size < 16 || size > 32)
+ return E_INVALIDARG;
+ Aes_SetKeyEncode(&Aes.aes, data, size);
+ return S_OK;
+}
+
+STDMETHODIMP CAesCbcEncoder::SetInitVector(const Byte *data, UInt32 size)
+{
+ if (size != AES_BLOCK_SIZE)
+ return E_INVALIDARG;
+ AesCbc_Init(&Aes, data);
+ return S_OK;
+}
+
+STDMETHODIMP CAesCbcDecoder::Init() { return S_OK; }
+
+STDMETHODIMP_(UInt32) CAesCbcDecoder::Filter(Byte *data, UInt32 size)
+{
+ return (UInt32)AesCbc_Decode(&Aes, data, size);
+}
+
+STDMETHODIMP CAesCbcDecoder::SetKey(const Byte *data, UInt32 size)
+{
+ if ((size & 0x7) != 0 || size < 16 || size > 32)
+ return E_INVALIDARG;
+ Aes_SetKeyDecode(&Aes.aes, data, size);
+ return S_OK;
+}
+
+STDMETHODIMP CAesCbcDecoder::SetInitVector(const Byte *data, UInt32 size)
+{
+ if (size != AES_BLOCK_SIZE)
+ return E_INVALIDARG;
+ AesCbc_Init(&Aes, data);
+ return S_OK;
+}
+
+}