rlm@1: // Crypto/MyAes.h rlm@1: rlm@1: #ifndef __CRYPTO_MY_AES_H rlm@1: #define __CRYPTO_MY_AES_H rlm@1: rlm@1: extern "C" rlm@1: { rlm@1: #include "../../../C/Aes.h" rlm@1: } rlm@1: rlm@1: #include "../../Common/MyCom.h" rlm@1: #include "../../Common/Types.h" rlm@1: rlm@1: #include "../ICoder.h" rlm@1: rlm@1: namespace NCrypto { rlm@1: rlm@1: class CAesCbcEncoder: rlm@1: public ICompressFilter, rlm@1: public ICryptoProperties, rlm@1: public CMyUnknownImp rlm@1: { rlm@1: CAesCbc Aes; rlm@1: public: rlm@1: MY_UNKNOWN_IMP1(ICryptoProperties) rlm@1: STDMETHOD(Init)(); rlm@1: STDMETHOD_(UInt32, Filter)(Byte *data, UInt32 size); rlm@1: STDMETHOD(SetKey)(const Byte *data, UInt32 size); rlm@1: STDMETHOD(SetInitVector)(const Byte *data, UInt32 size); rlm@1: }; rlm@1: rlm@1: class CAesCbcDecoder: rlm@1: public ICompressFilter, rlm@1: public ICryptoProperties, rlm@1: public CMyUnknownImp rlm@1: { rlm@1: CAesCbc Aes; rlm@1: public: rlm@1: MY_UNKNOWN_IMP1(ICryptoProperties) rlm@1: STDMETHOD(Init)(); rlm@1: STDMETHOD_(UInt32, Filter)(Byte *data, UInt32 size); rlm@1: STDMETHOD(SetKey)(const Byte *data, UInt32 size); rlm@1: STDMETHOD(SetInitVector)(const Byte *data, UInt32 size); rlm@1: }; rlm@1: rlm@1: } rlm@1: rlm@1: #endif