blob: 60b13845f40559d21da7dc98cc231a632c385f00 [file] [log] [blame]
// 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