6 #ifndef _INC_cCipherCamellia_H
7 #define _INC_cCipherCamellia_H
22 static const BYTE k_SIGMA_CHARS[6][8];
24 static const BYTE k_FSb[4][256];
26 static const BYTE k_shifts[2][4][4];
27 static const signed char k_indexes[2][4][20];
28 static const signed char k_transposes[2][20];
31 static const size_t k_BlockAlign = 16;
36 static void feistel(
const UINT32 x[2],
const UINT32 k[2], OUT UINT32 z[2]);
56 virtual HRESULT SetCipherKey(
const void* pKeyData,
size_t nKeySize)
override;
58 virtual HRESULT CipherModeECB(BYTE pOutput[k_BlockAlign],
const BYTE pInput[k_BlockAlign])
override;
59 virtual HRESULT CipherModeCBC(BYTE* pOutput,
const BYTE* pInput,
size_t nSize, BYTE* pIV)
override;
60 virtual HRESULT CipherModeCFB(BYTE* pOutput,
const BYTE* pInput,
size_t nSize, BYTE pIV[k_BlockAlign],
size_t* pnIVOffset)
override;
61 virtual HRESULT CipherModeCTR(BYTE* pOutput,
const BYTE* pInput,
size_t nSize, BYTE pNonceCounter[k_BlockAlign],
size_t* pNCOffset, BYTE pStreamBlock[k_BlockAlign] )
override;
63 virtual HRESULT Cipher(BYTE* pOutput,
const BYTE* pInput,
size_t nSize)
override;
#define GRAYLIB_LINK
Definition: GrayLibBase.h:35
INT32 HRESULT
_WIN32 style error codes. INT32
Definition: SysTypes.h:465
Definition: cCipherCamellia.h:69
cCipherAlgCamellia()
Definition: cCipherCamellia.h:73
virtual cCipherBase * AllocCipherAlg(bool bEncodeMode) const
Definition: cCipherCamellia.h:76
Definition: cCipherTypeDef.h:67
Definition: cCipherBase.h:125
Definition: cCipherCamellia.h:17
UNITTEST_FRIEND(cCipherCamellia)
virtual size_t get_BlockAlignSize() const override
Definition: cCipherCamellia.h:51
cCipherCamellia(bool bEncodeMode)
Definition: cCipherCamellia.h:39
int m_nRounds
number of rounds
Definition: cCipherCamellia.h:32
virtual ~cCipherCamellia()
Definition: cCipherCamellia.h:45
@ CipherAlgorithm_Camellia
Definition: cCipherBase.h:30
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