5 #ifndef _INC_cKeyECPPair_H
6 #define _INC_cKeyECPPair_H
14 #include "../Hash/cHashWrap.h"
15 #include "../File/cASNReader.h"
16 #include "../File/cASNWriterRev.h"
17 #include "../Math/cBigInteger.h"
39 HRESULT MakeSignatureSeed(BYTE* pOut,
const cBigInteger& d,
const BYTE* buf,
size_t nSizeBuf)
const;
79 virtual HRESULT CheckPublicPrivatePair(
const cKeyBase* pKeyPrivate)
const override;
80 virtual HRESULT VerifySignature(
SSL_Hash_TYPE eHashType,
const BYTE* pHash,
size_t nSizeHash,
const BYTE* pSig,
size_t nSizeSig)
const override;
#define GRAYCALL
declare calling convention for static functions so everyone knows the arg passing scheme....
Definition: GrayCore.h:36
#define GRAYLIB_LINK
Definition: GrayLibBase.h:35
INT32 HRESULT
_WIN32 style error codes. INT32
Definition: SysTypes.h:465
Definition: cASNReader.h:22
Definition: cASNWriterRev.h:22
Definition: cBigInteger.h:18
void SetNullVal()
Definition: cBigInteger.h:224
void SetCopyInt(const cBigInteger &x)
Definition: cBigInteger.cpp:173
BIT_ENUM_t m_nPBits
number of used bits in P. m_P.get_Highest1Bit();
Definition: cECPGroupParams.h:124
Definition: cECPGroup.h:34
void SetEmptyECPGroup()
Definition: cECPGroup.cpp:1245
HRESULT SetCopyECP(const cECPGroup &rSrc)
Definition: cECPGroup.cpp:25
Definition: cECPGroupParams.h:41
void SetCopyPoint(const cECPPoint &Q)
Definition: cECPGroupParams.cpp:16
void SetEmptyPoint()
Definition: cECPGroupParams.h:62
Definition: cKeyBase.h:56
@ VALTYPE_ECP
cECPPoint* for cKeyECPPair and derived (cKeyECDSA).
Definition: cKeyBase.h:68
Definition: cKeyECPPair.h:24
cECPPoint m_Q
our public value
Definition: cKeyECPPair.h:34
void SetCopyKey(const cKeyECPPair &key)
Definition: cKeyECPPair.h:71
UNITTEST_FRIEND(cKeyECPPair)
cKeyECPPair() noexcept
Definition: cKeyECPPair.h:43
virtual int GetKeyValues(cValue *items) const override
Interface with the debug module. get debug values.
Definition: cKeyECPPair.h:55
virtual ~cKeyECPPair()
Definition: cKeyECPPair.h:46
virtual void SetZeroKey() override
Secure zero the key.
Definition: cKeyECPPair.h:63
cECPGroup m_grp
Elliptic curve and base point.
Definition: cKeyECPPair.h:32
cBigInteger m_d
our secret value
Definition: cKeyECPPair.h:33
virtual size_t get_KeySize() const override
Get key size in bytes.
Definition: cKeyECPPair.h:50
Definition: cKeyTypeDef.h:22
Definition: cKeyECPPair.h:120
cKeyTypeECDH()
Definition: cKeyECPPair.h:125
virtual bool HasKeyType(SSL_Key_TYPE eKeyType) const noexcept
Tell if the context implements this type (e.g. ECKEY can do ECDSA)
Definition: cKeyECPPair.h:129
Definition: cKeyECPPair.h:96
virtual cKeyBase * AllocKey() const
Allocate a new context.
Definition: cKeyECPPair.h:113
cKeyTypeEC(SSL_Key_TYPE eKeyType, const char *name)
Definition: cKeyECPPair.h:105
virtual bool HasKeyType(SSL_Key_TYPE eKeyType) const noexcept
Tell if the context implements this type (e.g. ECKEY can do ECDSA)
Definition: cKeyECPPair.h:109
cKeyTypeEC() noexcept
Definition: cKeyECPPair.h:101
ECPGroup_TYPE
Definition: cECPGroupParams.h:28
UNITTEST2_PREDEF(cQuadtree)
SSL_Key_TYPE
Definition: cKeyBase.h:24
@ SSL_Key_ECDSA
SSL_KeyExchange_ECDHE_ECDSA.
Definition: cKeyBase.h:32
@ SSL_Key_ECKEY_DH
OID_EC_ALG_ECDH.
Definition: cKeyBase.h:31
@ SSL_Key_ECKEY
SSL_KeyExchange_ECDH_RSA = "EC PRIVATE KEY" = k_pszPEM_EC.
Definition: cKeyBase.h:30
SSL_Hash_TYPE
Definition: cHashCode.h:23
Definition: cKeyBase.h:74
const char * m_pszName
Definition: cKeyBase.h:78
const void * m_pValue
e.g. const cBigInt* if VALTYPE_RSA
Definition: cKeyBase.h:79
VALTYPE_TYPE m_eValueType
type of value.
Definition: cKeyBase.h:77
static constexpr size_t GetSizeBytes(BIT_ENUM_t nBits) noexcept
Definition: cBits.h:54