7 #ifndef _INC_cCipherAES_H
8 #define _INC_cCipherAES_H
43 inline static BYTE GetX(BYTE x)
45 return (BYTE)((x << 1) ^ ((x & 0x80) ? 0x1B : 0x00));
65 static const size_t k_BlockAlign = 16;
92 virtual HRESULT SetCipherKey(
const void* pKeyData,
size_t nKeySize)
override;
94 virtual HRESULT CipherModeECB(BYTE* pOutput,
const BYTE* pInput)
override;
95 virtual HRESULT CipherModeCBC(BYTE* pOutput,
const BYTE* pInput,
size_t nSize, BYTE* pIV)
override;
96 virtual HRESULT CipherModeCFB(BYTE* pOutput,
const BYTE* pInput,
size_t nSize, BYTE pIV[k_BlockAlign],
size_t* pnIVOffset)
override;
97 virtual HRESULT CipherModeCTR(BYTE* pOutput,
const BYTE* pInput,
size_t nSize, BYTE pNonceCounter[k_BlockAlign],
size_t* pNCOffset, BYTE pStreamBlock[k_BlockAlign] )
override;
99 virtual HRESULT Cipher(BYTE* pOutput,
const BYTE* pInput,
size_t nSizeBytes)
override;
#define GRAYLIB_LINK
Definition: GrayLibBase.h:35
INT32 HRESULT
_WIN32 style error codes. INT32
Definition: SysTypes.h:465
Definition: cCipherAES.h:18
Definition: cCipherAES.h:53
static const cCipherAESTable * s_T
static tables. constructed on demand.
Definition: cCipherAES.h:70
virtual size_t get_BlockAlignSize() const override
Definition: cCipherAES.h:85
cCipherAES(bool bEncodeMode)
Definition: cCipherAES.h:73
virtual ~cCipherAES()
Definition: cCipherAES.h:79
UNITTEST_FRIEND(cCipherAES)
int m_nRounds
number of rounds. based on key size.
Definition: cCipherAES.h:67
Definition: cCipherAES.h:105
virtual cCipherBase * AllocCipherAlg(bool bEncodeMode) const
Definition: cCipherAES.h:112
cCipherAlgAES()
Definition: cCipherAES.h:109
Definition: cCipherTypeDef.h:67
Definition: cCipherBase.h:125
@ CipherAlgorithm_AES
Definition: cCipherBase.h:29
static void Zero(void *pData, size_t nSizeBlock) noexcept
Definition: cMem.h:100
static void ZeroSecure(void *pData, size_t nSizeBlock) noexcept
Definition: cMem.h:110