5 #ifndef _INC_cKeyExDHM_H
6 #define _INC_cKeyExDHM_H
75 return m_len >= 64 && m_len <= 512;
86 virtual HRESULT MakeKeyExParams(BYTE* pOut,
size_t nSizeOut,
IRandomNoise* pRandom)
override;
92 virtual HRESULT ReadKeyEx(
const BYTE* pBuffer,
const BYTE* end)
override;
98 virtual HRESULT ReadKeyPublic(
const BYTE* pInput,
size_t nSizeIn)
override;
106 HRESULT MakePublicDHM(
size_t nSizeX, BYTE* pOutput,
size_t nOutputSize,
IRandomNoise* pRandom);
128 HRESULT ReadFromBlock(
const BYTE* dhmin,
size_t dhminlen);
#define GRAYLIB_LINK
Definition: GrayLibBase.h:35
INT32 HRESULT
_WIN32 style error codes. INT32
Definition: SysTypes.h:465
#define P(a, b, c, d, k, s, t)
Definition: cBigInteger.h:18
Definition: cBigUnsigned.h:22
Definition: cKeyExBase.h:15
Definition: cKeyExDHM.h:15
UNITTEST_FRIEND(cKeyExDHM)
size_t m_len
size(P) in chars
Definition: cKeyExDHM.h:36
cBigInteger m_K
key = GY^X mod P
Definition: cKeyExDHM.h:42
cBigInteger m_GY
peer = G^Y mod P
Definition: cKeyExDHM.h:41
static const char * k_default_G
DHM_RFC5114_MODP_1024_G.
Definition: cKeyExDHM.h:51
static const char * k_default_P
InitSSL SetKeyExDHMParams default params for RFC5114.
Definition: cKeyExDHM.h:50
cBigInteger m_Vi
blinding value
Definition: cKeyExDHM.h:45
cKeyExDHM() noexcept
Definition: cKeyExDHM.h:59
bool isKeyValid() const
Definition: cKeyExDHM.h:73
cBigUnsigned m_RP
cached R^2 mod P
Definition: cKeyExDHM.h:44
bool isKeyEx() const
Definition: cKeyExDHM.h:69
static const char * k_pszPEM
Definition: cKeyExDHM.h:34
cBigInteger m_GX
self = G^X mod P
Definition: cKeyExDHM.h:40
~cKeyExDHM()
Definition: cKeyExDHM.h:63
cBigUnsigned m_P
prime modulus. m_dhm_P
Definition: cKeyExDHM.h:37
cBigInteger m_G
generator. m_dhm_G
Definition: cKeyExDHM.h:38
cBigInteger m_Vf
un-blinding value
Definition: cKeyExDHM.h:46
cBigInteger m_XPrev
previous X
Definition: cKeyExDHM.h:47
UNITTEST2_PREDEF(cQuadtree)
char FILECHAR_t
a UTF8 char in a file name. like TCHAR
Definition: FileName.h:22