| // Crypto/MyAes.h |
| |
| #ifndef __CRYPTO_MY_AES_H |
| #define __CRYPTO_MY_AES_H |
| |
| #include "../../../C/Aes.h" |
| |
| #include "../../Common/MyCom.h" |
| |
| #include "../ICoder.h" |
| |
| namespace NCrypto { |
| |
| class CAesCbcCoder: |
| public ICompressFilter, |
| public ICryptoProperties, |
| public CMyUnknownImp |
| { |
| protected: |
| AES_CODE_FUNC _codeFunc; |
| AES_SET_KEY_FUNC _setKeyFunc; |
| unsigned _offset; |
| UInt32 _aes[AES_NUM_IVMRK_WORDS + 3]; |
| public: |
| CAesCbcCoder(); |
| MY_UNKNOWN_IMP1(ICryptoProperties) |
| STDMETHOD(Init)(); |
| STDMETHOD_(UInt32, Filter)(Byte *data, UInt32 size); |
| STDMETHOD(SetKey)(const Byte *data, UInt32 size); |
| STDMETHOD(SetInitVector)(const Byte *data, UInt32 size); |
| }; |
| |
| struct CAesCbcEncoder: public CAesCbcCoder { CAesCbcEncoder(); }; |
| struct CAesCbcDecoder: public CAesCbcCoder { CAesCbcDecoder(); }; |
| |
| } |
| |
| #endif |