Mercurial > vba-linux
annotate src/win32/7zip/7z/CPP/7zip/Crypto/RarAes.h @ 1:f9f4f1b99eed
importing src directory
author | Robert McIntyre <rlm@mit.edu> |
---|---|
date | Sat, 03 Mar 2012 10:31:27 -0600 |
parents | |
children |
rev | line source |
---|---|
rlm@1 | 1 // Crypto/RarAes.h |
rlm@1 | 2 |
rlm@1 | 3 #ifndef __CRYPTO_RAR_AES_H |
rlm@1 | 4 #define __CRYPTO_RAR_AES_H |
rlm@1 | 5 |
rlm@1 | 6 extern "C" |
rlm@1 | 7 { |
rlm@1 | 8 #include "../../../C/Aes.h" |
rlm@1 | 9 } |
rlm@1 | 10 |
rlm@1 | 11 #include "Common/Buffer.h" |
rlm@1 | 12 #include "Common/MyCom.h" |
rlm@1 | 13 |
rlm@1 | 14 #include "../ICoder.h" |
rlm@1 | 15 #include "../IPassword.h" |
rlm@1 | 16 |
rlm@1 | 17 namespace NCrypto { |
rlm@1 | 18 namespace NRar29 { |
rlm@1 | 19 |
rlm@1 | 20 const UInt32 kRarAesKeySize = 16; |
rlm@1 | 21 |
rlm@1 | 22 class CDecoder: |
rlm@1 | 23 public ICompressFilter, |
rlm@1 | 24 public ICompressSetDecoderProperties2, |
rlm@1 | 25 public ICryptoSetPassword, |
rlm@1 | 26 public CMyUnknownImp |
rlm@1 | 27 { |
rlm@1 | 28 Byte _salt[8]; |
rlm@1 | 29 bool _thereIsSalt; |
rlm@1 | 30 CByteBuffer buffer; |
rlm@1 | 31 Byte aesKey[kRarAesKeySize]; |
rlm@1 | 32 Byte aesInit[AES_BLOCK_SIZE]; |
rlm@1 | 33 bool _needCalculate; |
rlm@1 | 34 |
rlm@1 | 35 CAesCbc Aes; |
rlm@1 | 36 |
rlm@1 | 37 bool _rar350Mode; |
rlm@1 | 38 |
rlm@1 | 39 void Calculate(); |
rlm@1 | 40 |
rlm@1 | 41 public: |
rlm@1 | 42 |
rlm@1 | 43 MY_UNKNOWN_IMP2( |
rlm@1 | 44 ICryptoSetPassword, |
rlm@1 | 45 ICompressSetDecoderProperties2) |
rlm@1 | 46 |
rlm@1 | 47 STDMETHOD(Init)(); |
rlm@1 | 48 |
rlm@1 | 49 STDMETHOD_(UInt32, Filter)(Byte *data, UInt32 size); |
rlm@1 | 50 |
rlm@1 | 51 STDMETHOD(CryptoSetPassword)(const Byte *aData, UInt32 aSize); |
rlm@1 | 52 |
rlm@1 | 53 // ICompressSetDecoderProperties |
rlm@1 | 54 STDMETHOD(SetDecoderProperties2)(const Byte *data, UInt32 size); |
rlm@1 | 55 |
rlm@1 | 56 CDecoder(); |
rlm@1 | 57 void SetRar350Mode(bool rar350Mode) { _rar350Mode = rar350Mode; } |
rlm@1 | 58 }; |
rlm@1 | 59 |
rlm@1 | 60 }} |
rlm@1 | 61 |
rlm@1 | 62 #endif |