6 #ifndef _INC_cCipherGCM_H
7 #define _INC_cCipherGCM_H
24 static const size_t k_BlockAlign = 16;
25 static const UINT64 k_last4[k_BlockAlign];
28 UINT64 m_HL[k_BlockAlign];
29 UINT64 m_HH[k_BlockAlign];
33 BYTE m_base_ectr[k_BlockAlign];
34 BYTE m_y[k_BlockAlign];
35 BYTE m_buf[k_BlockAlign];
39 void MultiplyGCM(
const BYTE x[k_BlockAlign], BYTE pOutput[k_BlockAlign]);
54 virtual HRESULT SetCipherKey(
const void* pKeyData,
size_t nKeySize)
override;
56 virtual HRESULT AuthEncrypt(BYTE* pOutput,
const BYTE* pInput,
size_t nSize,
57 const BYTE* pIV,
size_t nSizeIV,
58 const BYTE* pAdd,
size_t nSizeAdd,
59 BYTE* pTag,
size_t nSizeTag)
override;
61 virtual HRESULT AuthDecrypt(BYTE* pOutput,
const BYTE* pInput,
size_t nSize,
62 const BYTE* pIV,
size_t nSizeIV,
63 const BYTE* pAdd,
size_t nSizeAdd,
64 const BYTE* pTag,
size_t nSizeTag)
override;
73 HRESULT StartGCM(
const BYTE* pIV,
size_t nSizeIV,
const BYTE* pAdd,
size_t nSizeAdd);
86 HRESULT UpdateGCM(BYTE* pOutput,
const BYTE* pInput,
size_t nSize);
93 HRESULT FinishGCM(BYTE* pTag,
size_t nSizeTag);
#define GRAYLIB_LINK
Definition: GrayLibBase.h:35
INT32 HRESULT
_WIN32 style error codes. INT32
Definition: SysTypes.h:465
Definition: cCipherTypeDef.h:67
Definition: cCipherGCM.h:99
cCipherAlgGCM_AES()
Definition: cCipherGCM.h:103
virtual cCipherBase * AllocCipherAlg(bool bEncodeMode) const
Definition: cCipherGCM.h:106
Definition: cCipherGCM.h:113
virtual cCipherBase * AllocCipherAlg(bool bEncodeMode) const
Definition: cCipherGCM.h:120
cCipherAlgGCM_Camellia()
Definition: cCipherGCM.h:117
Definition: cCipherBase.h:125
Definition: cCipherBase.h:234
Definition: cCipherGCM.h:18
cCipherGCM(bool bEncodeMode, CipherAlgorithm_TYPE eCipherAlgorithm)
Definition: cCipherGCM.h:43
UNITTEST_FRIEND(cCipherGCM)
UINT64 m_len
Total data length.
Definition: cCipherGCM.h:31
UINT64 m_add_len
Total pAdd length.
Definition: cCipherGCM.h:32
virtual ~cCipherGCM()
Definition: cCipherGCM.h:49
CipherAlgorithm_TYPE
Definition: cCipherBase.h:22
@ CipherAlgorithm_AES
Definition: cCipherBase.h:29
@ CipherAlgorithm_GCM_AES
Definition: cCipherBase.h:34
@ CipherAlgorithm_Camellia
Definition: cCipherBase.h:30
@ CipherAlgorithm_GCM_Camellia
Definition: cCipherBase.h:35