11#define PRIME_LENGTH_BITS 256
69 if ( pGroupData !=
NULL )
71 cbScalar = ( *( pGroupData->
pCurveParams ) )->cbFieldLength;
72 cbPoint = 2 * cbScalar;
75 if ( pcbScalar !=
NULL )
77 *pcbScalar = cbScalar;
80 if ( pcbPoint !=
NULL )
115 scError = SYMCRYPT_MEMORY_ALLOCATION_FAILURE;
133 if( peSqrtArg !=
NULL )
213 scError = SYMCRYPT_MEMORY_ALLOCATION_FAILURE;
280 if( scError != SYMCRYPT_NO_ERROR )
327 if( scError != SYMCRYPT_NO_ERROR )
409 if( scError != SYMCRYPT_NO_ERROR )
423 if( scError != SYMCRYPT_NO_ERROR )
433 if( scError != SYMCRYPT_NO_ERROR )
447 if( scError != SYMCRYPT_NO_ERROR )
516 scError = SYMCRYPT_MEMORY_ALLOCATION_FAILURE;
525 scError = SYMCRYPT_MEMORY_ALLOCATION_FAILURE;
532 scError = SYMCRYPT_MEMORY_ALLOCATION_FAILURE;
539 scError = SYMCRYPT_MEMORY_ALLOCATION_FAILURE;
559 scError = SYMCRYPT_MEMORY_ALLOCATION_FAILURE;
564 memcpy( &abSeedKey[0], pbMac1, 6 );
566 memcpy( &abSeedKey[0], pbMac2, 6 );
569 if( minMac > maxMac )
586 notFoundMask = (
UINT32)-1;
591 while( notFoundMask != 0 ||
counter < 40 )
596 scError = SYMCRYPT_INVALID_ARGUMENT;
625 if( scError != SYMCRYPT_NO_ERROR )
647 if( scError != SYMCRYPT_NO_ERROR )
652 solutionMask &= notFoundMask;
672 if( scError != SYMCRYPT_NO_ERROR )
680 notFoundMask &= ~solutionMask;
684 if( scError != SYMCRYPT_NO_ERROR)
689 if( pbCounter !=
NULL )
691 *pbCounter =
pState->counter;
720 if( peCubic !=
NULL )
732 if( poPWECandidate !=
NULL )
735 poPWECandidate =
NULL;
738 if( scError != SYMCRYPT_NO_ERROR )
743 if( pbScratch !=
NULL )
762 SIZE_T cbPasswordIdentifier,
793 if ( pGroupData ==
NULL)
795 scError = SYMCRYPT_INVALID_ARGUMENT;
803 scError = SYMCRYPT_MEMORY_ALLOCATION_FAILURE;
811 cbIkm = cbPassword + cbPasswordIdentifier;
833 if( pbScratch ==
NULL || pbPwdValue ==
NULL || piU1 ==
NULL || piU2 ==
NULL ||
836 scError = SYMCRYPT_MEMORY_ALLOCATION_FAILURE;
842 memcpy( pbScratch, pbPassword, cbPassword );
843 if( pbPasswordIdentifier )
845 memcpy( pbScratch + cbPassword, pbPasswordIdentifier, cbPasswordIdentifier );
849 if( scError != SYMCRYPT_NO_ERROR )
858 if( scError != SYMCRYPT_NO_ERROR )
865 if( scError != SYMCRYPT_NO_ERROR )
877 if( scError != SYMCRYPT_NO_ERROR )
884 if( scError != SYMCRYPT_NO_ERROR )
893 if( scError != SYMCRYPT_NO_ERROR )
956 if( pbPwdValue !=
NULL )
963 if( pbScratch !=
NULL )
987 SIZE_T cbPasswordIdentifier,
995 pbPasswordIdentifier,
996 cbPasswordIdentifier,
1019 BYTE macBuffer[16] = { 0 };
1047 if ( pGroupData ==
NULL )
1049 scError = SYMCRYPT_INVALID_ARGUMENT;
1057 scError = SYMCRYPT_MEMORY_ALLOCATION_FAILURE;
1070 scError = SYMCRYPT_MEMORY_ALLOCATION_FAILURE;
1077 scError = SYMCRYPT_MEMORY_ALLOCATION_FAILURE;
1084 scError = SYMCRYPT_MEMORY_ALLOCATION_FAILURE;
1102 scError = SYMCRYPT_MEMORY_ALLOCATION_FAILURE;
1106 memcpy( &macBuffer[0], pbMacA, 6 );
1108 memcpy( &macBuffer[0], pbMacB, 6 );
1111 if( minMac > maxMac )
1127 pMacAlgorithm->
expandKeyFunc(&hmacKey, hmacKeyBytes, cbHMACOutputSize);
1129 pMacAlgorithm->
initFunc( &hmacState, &hmacKey );
1130 pMacAlgorithm->
appendFunc( &hmacState, macBuffer, 12 );
1131 pMacAlgorithm->
resultFunc( &hmacState, valBytes );
1140 if( peVal ==
NULL || peTmp ==
NULL )
1142 scError = SYMCRYPT_MEMORY_ALLOCATION_FAILURE;
1147 if( scError != SYMCRYPT_NO_ERROR )
1166 if( scError != SYMCRYPT_NO_ERROR )
1172 if( scError != SYMCRYPT_NO_ERROR )
1178 if( scError != SYMCRYPT_NO_ERROR )
1215 if( pbScratch !=
NULL )
1222 if( scError != SYMCRYPT_NO_ERROR )
1310 if( peTmp ==
NULL || piTmp ==
NULL || poPoint ==
NULL || pbScratch ==
NULL )
1312 scError = SYMCRYPT_MEMORY_ALLOCATION_FAILURE;
1318 if( scError != SYMCRYPT_NO_ERROR )
1331 if( scError != SYMCRYPT_NO_ERROR )
1348 if( scError != SYMCRYPT_NO_ERROR )
1367 if( poPoint !=
NULL )
1373 if( pbScratch !=
NULL )
1400 SIZE_T cbPeerCommitScalar,
1402 SIZE_T cbPeerCommitElement,
1432 if( pbScratch ==
NULL || peCommitScalarSum ==
NULL || poPeerCommitElement ==
NULL || poTmp ==
NULL || piTmp ==
NULL )
1434 scError = SYMCRYPT_MEMORY_ALLOCATION_FAILURE;
1440 if( scError != SYMCRYPT_NO_ERROR )
1450 scError = SYMCRYPT_INVALID_ARGUMENT;
1461 pbPeerCommitElement,
1462 cbPeerCommitElement,
1465 poPeerCommitElement,
1469 if( scError != SYMCRYPT_NO_ERROR )
1480 scError = SYMCRYPT_INVALID_ARGUMENT;
1492 if( scError != SYMCRYPT_NO_ERROR )
1507 if( scError != SYMCRYPT_NO_ERROR )
1521 if( scError != SYMCRYPT_NO_ERROR )
1527 if( scError != SYMCRYPT_NO_ERROR )
1534 if( peCommitScalarSum !=
NULL )
1537 peCommitScalarSum =
NULL;
1540 if( poPeerCommitElement !=
NULL )
1543 poPeerCommitElement =
NULL;
1558 if( pbScratch !=
NULL )
1579 pbPeerCommitElement,
#define PRIME_LENGTH_BITS
PCSYMCRYPT_SAE_GROUP_DATA SymCryptSaeFindGroupData(SYMCRYPT_802_11_SAE_GROUP ianaGroup)
SYMCRYPT_ERROR SymCryptModSqrt(_In_ PSYMCRYPT_MODULUS pmMod, _In_ PSYMCRYPT_MODELEMENT peVal, _Out_ PUINT32 puIsQuadraticResidue, _Out_opt_ PSYMCRYPT_MODELEMENT peSqrtArg, _Out_writes_bytes_(cbScratch) PBYTE pbScratch, SIZE_T cbScratch)
SYMCRYPT_ERROR SymCrypt802_11SaeCustomInitH2EGeneric(_Out_ PSYMCRYPT_802_11_SAE_CUSTOM_STATE pState, SYMCRYPT_802_11_SAE_GROUP group, _In_reads_(cbPT) PCBYTE pbPT, SIZE_T cbPT, _In_reads_(6) PCBYTE pbMacA, _In_reads_(6) PCBYTE pbMacB, _Inout_updates_opt_(cbRand) PBYTE pbRand, SIZE_T cbRand, _Inout_updates_opt_(cbMask) PBYTE pbMask, SIZE_T cbMask)
SYMCRYPT_ERROR SymCrypt802_11SaeCustomCreatePTGeneric(SYMCRYPT_802_11_SAE_GROUP group, _In_reads_(cbSsid) PCBYTE pbSsid, SIZE_T cbSsid, _In_reads_(cbPassword) PCBYTE pbPassword, SIZE_T cbPassword, _In_reads_opt_(cbPasswordIdentifier) PCBYTE pbPasswordIdentifier, SIZE_T cbPasswordIdentifier, _Out_writes_(cbPT) PBYTE pbPT, SIZE_T cbPT)
struct _SYMCRYPT_SAE_GROUP_DATA * PSYMCRYPT_SAE_GROUP_DATA
SYMCRYPT_ERROR SymCrypt802_11SaeCustomCommitProcess(_In_ PCSYMCRYPT_802_11_SAE_CUSTOM_STATE pState, _In_reads_(32) PCBYTE pbPeerCommitScalar, _In_reads_(64) PCBYTE pbPeerCommitElement, _Out_writes_(32) PBYTE pbSharedSecret, _Out_writes_(32) PBYTE pbScalarSum)
SYMCRYPT_ERROR SymCrypt802_11SaeCustomCommitCreate(_In_ PCSYMCRYPT_802_11_SAE_CUSTOM_STATE pState, _Out_writes_(32) PBYTE pbCommitScalar, _Out_writes_(64) PBYTE pbCommitElement)
SYMCRYPT_ERROR SymCrypt802_11SaeCustomInit(_Out_ PSYMCRYPT_802_11_SAE_CUSTOM_STATE pState, _In_reads_(6) PCBYTE pbMac1, _In_reads_(6) PCBYTE pbMac2, _In_reads_(cbPassword) PCBYTE pbPassword, SIZE_T cbPassword, _Out_opt_ PBYTE pbCounter, _Inout_updates_opt_(32) PBYTE pbRand, _Inout_updates_opt_(32) PBYTE pbMask)
SYMCRYPT_ERROR SymCrypt802_11SaeCustomSetRandMask(_Inout_ PSYMCRYPT_802_11_SAE_CUSTOM_STATE pState, _Inout_updates_opt_(cbRand) PBYTE pbRand, SIZE_T cbRand, _Inout_updates_opt_(cbMask) PBYTE pbMask, SIZE_T cbMask, _Out_writes_bytes_(cbScratch) PBYTE pbScratch, SIZE_T cbScratch)
const SYMCRYPT_SAE_GROUP_DATA g_ianaData[]
SYMCRYPT_ERROR SymCrypt802_11SaeCustomCommitCreateGeneric(_In_ PCSYMCRYPT_802_11_SAE_CUSTOM_STATE pState, _Out_writes_(cbCommitScalar) PBYTE pbCommitScalar, SIZE_T cbCommitScalar, _Out_writes_(cbCommitElement) PBYTE pbCommitElement, SIZE_T cbCommitElement)
struct _SYMCRYPT_SAE_GROUP_DATA SYMCRYPT_SAE_GROUP_DATA
const SYMCRYPT_SAE_GROUP_DATA * PCSYMCRYPT_SAE_GROUP_DATA
SYMCRYPT_ERROR SymCryptSswu(_In_ PSYMCRYPT_ECURVE pCurve, _In_ INT32 z, _In_ PSYMCRYPT_MODELEMENT peU, _Out_ PSYMCRYPT_ECPOINT poP, _Out_writes_bytes_(cbScratch) PBYTE pbScratch, SIZE_T cbScratch)
SYMCRYPT_ERROR SymCrypt802_11SaeCustomCreatePT(_In_reads_(cbSsid) PCBYTE pbSsid, SIZE_T cbSsid, _In_reads_(cbPassword) PCBYTE pbPassword, SIZE_T cbPassword, _In_reads_opt_(cbPasswordIdentifier) PCBYTE pbPasswordIdentifier, SIZE_T cbPasswordIdentifier, _Out_writes_(64) PBYTE pbPT)
SYMCRYPT_ERROR SymCrypt802_11SaeCustomInitH2E(_Out_ PSYMCRYPT_802_11_SAE_CUSTOM_STATE pState, _In_reads_(64) PCBYTE pbPT, _In_reads_(6) PCBYTE pbMacA, _In_reads_(6) PCBYTE pbMacB, _Inout_updates_opt_(32) PBYTE pbRand, _Inout_updates_opt_(32) PBYTE pbMask)
VOID SymCrypt802_11SaeCustomDestroy(_Inout_ PSYMCRYPT_802_11_SAE_CUSTOM_STATE pState)
VOID SymCrypt802_11SaeGetGroupSizes(SYMCRYPT_802_11_SAE_GROUP group, _Out_opt_ SIZE_T *pcbScalar, _Out_opt_ SIZE_T *pcbPoint)
SYMCRYPT_ERROR SymCrypt802_11SaeCustomCommitProcessGeneric(_In_ PCSYMCRYPT_802_11_SAE_CUSTOM_STATE pState, _In_reads_(cbPeerCommitScalar) PCBYTE pbPeerCommitScalar, SIZE_T cbPeerCommitScalar, _In_reads_(cbPeerCommitElement) PCBYTE pbPeerCommitElement, SIZE_T cbPeerCommitElement, _Out_writes_(cbSharedSecret) PBYTE pbSharedSecret, SIZE_T cbSharedSecret, _Out_writes_(cbScalarSum) PBYTE pbScalarSum, SIZE_T cbScalarSum)
COMPILER_DEPENDENT_UINT64 UINT64
static void cleanup(void)
GLint GLint GLint GLint GLint GLint y
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble * u
void SYMCRYPT_CALL SymCryptCallbackFree(void *ptr)
void *SYMCRYPT_CALL SymCryptCallbackAlloc(SIZE_T size)
#define memcpy(s1, s2, n)
#define _In_reads_opt_(s)
#define _Out_writes_bytes_(s)
#define _Inout_updates_opt_(s)
BYTE abSeed[SYMCRYPT_LMS_MAX_N]
#define SYMCRYPT_ARRAY_SIZE(_x)
UINT32 UINT32 UINT32 UINT32 cbScratch
PSYMCRYPT_MAC_EXPAND_KEY expandKeyFunc
PSYMCRYPT_MAC_RESULT resultFunc
PSYMCRYPT_MAC_APPEND appendFunc
PSYMCRYPT_MAC_INIT initFunc
const PCSYMCRYPT_ECURVE_PARAMS * pCurveParams
const PCSYMCRYPT_MAC * macAlgorithm
SYMCRYPT_802_11_SAE_GROUP group
VOID SYMCRYPT_CALL SymCryptEcurveFree(_Out_ PSYMCRYPT_ECURVE pCurve)
#define SYMCRYPT_ASSERT(_x)
SYMCRYPT_ERROR SYMCRYPT_CALL SymCryptHkdfExpandKey(_Out_ PSYMCRYPT_HKDF_EXPANDED_KEY pExpandedKey, _In_ PCSYMCRYPT_MAC macAlgorithm, _In_reads_(cbIkm) PCBYTE pbIkm, SIZE_T cbIkm, _In_reads_opt_(cbSalt) PCBYTE pbSalt, SIZE_T cbSalt)
FORCEINLINE VOID SYMCRYPT_CALL SymCryptWipeKnownSize(_Out_writes_bytes_(cbData) PVOID pbData, SIZE_T cbData)
const PCSYMCRYPT_ECURVE_PARAMS SymCryptEcurveParamsNistP384
SYMCRYPT_ERROR SYMCRYPT_CALL SymCryptHmacSha256ExpandKey(_Out_ PSYMCRYPT_HMAC_SHA256_EXPANDED_KEY pExpandedKey, _In_reads_opt_(cbKey) PCBYTE pbKey, SIZE_T cbKey)
const PCSYMCRYPT_MAC SymCryptHmacSha256Algorithm
#define SYMCRYPT_STORE_LSBFIRST16(p, v)
VOID SYMCRYPT_CALL SymCryptWipe(_Out_writes_bytes_(cbData) PVOID pbData, SIZE_T cbData)
#define SYMCRYPT_LOAD_MSBFIRST64(p)
#define SYMCRYPT_HMAC_SHA256_RESULT_SIZE
SYMCRYPT_ERROR SYMCRYPT_CALL SymCryptHkdfDerive(_In_ PCSYMCRYPT_HKDF_EXPANDED_KEY pExpandedKey, _In_reads_opt_(cbInfo) PCBYTE pbInfo, SIZE_T cbInfo, _Out_writes_(cbResult) PBYTE pbResult, SIZE_T cbResult)
@ SYMCRYPT_ECPOINT_FORMAT_X
@ SYMCRYPT_ECPOINT_FORMAT_XY
const PCSYMCRYPT_ECURVE_PARAMS SymCryptEcurveParamsNistP256
const PCSYMCRYPT_MAC SymCryptHmacSha384Algorithm
PSYMCRYPT_ECURVE SYMCRYPT_CALL SymCryptEcurveAllocate(_In_ PCSYMCRYPT_ECURVE_PARAMS pParams, _In_ UINT32 flags)
VOID SYMCRYPT_CALL SymCryptHmacSha256Result(_Inout_ PSYMCRYPT_HMAC_SHA256_STATE pState, _Out_writes_(SYMCRYPT_HMAC_SHA256_RESULT_SIZE) PBYTE pbResult)
#define SYMCRYPT_STORE_MSBFIRST64(p, v)
@ SYMCRYPT_NUMBER_FORMAT_MSB_FIRST
VOID SYMCRYPT_CALL SymCryptHmacSha256Init(_Out_ PSYMCRYPT_HMAC_SHA256_STATE pState, _In_ PCSYMCRYPT_HMAC_SHA256_EXPANDED_KEY pExpandedKey)
VOID SYMCRYPT_CALL SymCryptHmacSha256Append(_Inout_ PSYMCRYPT_HMAC_SHA256_STATE pState, _In_reads_(cbData) PCBYTE pbData, SIZE_T cbData)
#define SYMCRYPT_MASK32_EQ(_a, _b)
SYMCRYPT_MODELEMENT * PSYMCRYPT_MODELEMENT
SYMCRYPT_MAGIC_FIELD SYMCRYPT_HMAC_SHA256_STATE
#define SYMCRYPT_BYTES_FROM_BITS(bits)
#define SYMCRYPT_MAX(_a, _b)
SYMCRYPT_MAGIC_FIELD SYMCRYPT_HMAC_SHA256_EXPANDED_KEY
SYMCRYPT_ECPOINT * PSYMCRYPT_ECPOINT
PSYMCRYPT_COMMON_HASH_STATE pState
SYMCRYPT_MODULUS * PSYMCRYPT_MODULUS
SYMCRYPT_INT * PSYMCRYPT_INT
const SYMCRYPT_ECURVE * PCSYMCRYPT_ECURVE
SYMCRYPT_ECURVE * PSYMCRYPT_ECURVE
#define SYMCRYPT_INTERNAL_SCRATCH_BYTES_FOR_SCALAR_ECURVE_OPERATIONS(_pCurve, _nPoints)
VOID SYMCRYPT_CALL SymCryptEcpointAdd(_In_ PCSYMCRYPT_ECURVE pCurve, _In_ PCSYMCRYPT_ECPOINT poSrc1, _In_ PCSYMCRYPT_ECPOINT poSrc2, _Out_ PSYMCRYPT_ECPOINT poDst, UINT32 flags, _Out_writes_bytes_opt_(cbScratch) PBYTE pbScratch, SIZE_T cbScratch)
UINT32 SYMCRYPT_CALL SymCryptIntGetValueLsbits32(_In_ PCSYMCRYPT_INT piSrc)
SYMCRYPT_ERROR SYMCRYPT_CALL SymCryptEcpointSetValue(_In_ PCSYMCRYPT_ECURVE pCurve, _In_reads_bytes_(cbSrc) PCBYTE pbSrc, SIZE_T cbSrc, SYMCRYPT_NUMBER_FORMAT nformat, SYMCRYPT_ECPOINT_FORMAT eformat, _Out_ PSYMCRYPT_ECPOINT poDst, UINT32 flags, _Out_writes_bytes_(cbScratch) PBYTE pbScratch, SIZE_T cbScratch)
UINT32 SYMCRYPT_CALL SymCryptIntIsLessThan(_In_ PCSYMCRYPT_INT piSrc1, _In_ PCSYMCRYPT_INT piSrc2)
VOID SYMCRYPT_CALL SymCryptIntToModElement(_In_ PCSYMCRYPT_INT piSrc, _In_ PCSYMCRYPT_MODULUS pmMod, _Out_ PSYMCRYPT_MODELEMENT peDst, _Out_writes_bytes_(cbScratch) PBYTE pbScratch, SIZE_T cbScratch)
VOID SymCryptModElementMaskedCopy(_In_ PCSYMCRYPT_MODULUS pmMod, _In_ PCSYMCRYPT_MODELEMENT peSrc, _Out_ PSYMCRYPT_MODELEMENT peDst, UINT32 mask)
VOID SYMCRYPT_CALL SymCryptIntDivPow2(_In_ PCSYMCRYPT_INT piSrc, SIZE_T exp, _Out_ PSYMCRYPT_INT piDst)
const SYMCRYPT_802_11_SAE_CUSTOM_STATE * PCSYMCRYPT_802_11_SAE_CUSTOM_STATE
struct _SYMCRYPT_802_11_SAE_CUSTOM_STATE * PSYMCRYPT_802_11_SAE_CUSTOM_STATE
SYMCRYPT_ERROR SYMCRYPT_CALL SymCryptEcpointScalarMul(_In_ PCSYMCRYPT_ECURVE pCurve, _In_ PCSYMCRYPT_INT piScalar, _In_opt_ PCSYMCRYPT_ECPOINT poSrc, UINT32 flags, _Out_ PSYMCRYPT_ECPOINT poDst, _Out_writes_bytes_opt_(cbScratch) PBYTE pbScratch, SIZE_T cbScratch)
VOID SYMCRYPT_CALL SymCryptIntCopy(_In_ PCSYMCRYPT_INT piSrc, _Out_ PSYMCRYPT_INT piDst)
VOID SymCryptEcpointMaskedCopy(_In_ PCSYMCRYPT_ECURVE pCurve, _In_ PCSYMCRYPT_ECPOINT poSrc, _Out_ PSYMCRYPT_ECPOINT poDst, UINT32 mask)
UINT32 SYMCRYPT_CALL SymCryptEcpointIsZero(_In_ PCSYMCRYPT_ECURVE pCurve, _In_ PCSYMCRYPT_ECPOINT poSrc, _Out_writes_bytes_opt_(cbScratch) PBYTE pbScratch, SIZE_T cbScratch)
UINT32 SYMCRYPT_CALL SymCryptModElementIsZero(_In_ PCSYMCRYPT_MODULUS pmMod, _In_ PCSYMCRYPT_MODELEMENT peSrc)
UINT32 SymCryptDigitsFromBits(UINT32 nBits)
UINT32 SYMCRYPT_CALL SymCryptModElementIsEqual(_In_ PCSYMCRYPT_MODULUS pmMod, _In_ PCSYMCRYPT_MODELEMENT peSrc1, _In_ PCSYMCRYPT_MODELEMENT peSrc2)
VOID SYMCRYPT_CALL SymCryptModSetRandom(_In_ PCSYMCRYPT_MODULUS pmMod, _Out_ PSYMCRYPT_MODELEMENT peDst, UINT32 flags, _Out_writes_bytes_(cbScratch) PBYTE pbScratch, SIZE_T cbScratch)
SYMCRYPT_ERROR SYMCRYPT_CALL SymCryptModElementSetValue(_In_reads_bytes_(cbSrc) PCBYTE pbSrc, SIZE_T cbSrc, SYMCRYPT_NUMBER_FORMAT format, PCSYMCRYPT_MODULUS pmMod, _Out_ PSYMCRYPT_MODELEMENT peDst, _Out_writes_bytes_(cbScratch) PBYTE pbScratch, SIZE_T cbScratch)
VOID SymCryptModElementCopy(_In_ PCSYMCRYPT_MODULUS pmMod, _In_ PCSYMCRYPT_MODELEMENT peSrc, _Out_ PSYMCRYPT_MODELEMENT peDst)
SYMCRYPT_ERROR SYMCRYPT_CALL SymCryptModElementGetValue(PCSYMCRYPT_MODULUS pmMod, _In_ PCSYMCRYPT_MODELEMENT peSrc, _Out_writes_bytes_(cbDst) PBYTE pbDst, SIZE_T cbDst, SYMCRYPT_NUMBER_FORMAT format, _Out_writes_bytes_(cbScratch) PBYTE pbScratch, SIZE_T cbScratch)
#define SYMCRYPT_SCRATCH_BYTES_FOR_SCALAR_ECURVE_OPERATIONS(_pCurve)
VOID SYMCRYPT_CALL SymCryptModNeg(_In_ PCSYMCRYPT_MODULUS pmMod, _In_ PCSYMCRYPT_MODELEMENT peSrc, _Out_ PSYMCRYPT_MODELEMENT peDst, _Out_writes_bytes_(cbScratch) PBYTE pbScratch, SIZE_T cbScratch)
#define SYMCRYPT_FLAG_MODULUS_PRIME
SYMCRYPT_ERROR SYMCRYPT_CALL SymCryptIntSetValue(_In_reads_bytes_(cbSrc) PCBYTE pbSrc, SIZE_T cbSrc, SYMCRYPT_NUMBER_FORMAT format, _Out_ PSYMCRYPT_INT piDst)
VOID SYMCRYPT_CALL SymCryptModMul(_In_ PCSYMCRYPT_MODULUS pmMod, _In_ PCSYMCRYPT_MODELEMENT peSrc1, _In_ PCSYMCRYPT_MODELEMENT peSrc2, _Out_ PSYMCRYPT_MODELEMENT peDst, _Out_writes_bytes_(cbScratch) PBYTE pbScratch, SIZE_T cbScratch)
SYMCRYPT_ERROR SYMCRYPT_CALL SymCryptModInv(_In_ PCSYMCRYPT_MODULUS pmMod, _In_ PCSYMCRYPT_MODELEMENT peSrc, _Out_ PSYMCRYPT_MODELEMENT peDst, UINT32 flags, _Out_writes_bytes_(cbScratch) PBYTE pbScratch, SIZE_T cbScratch)
VOID SYMCRYPT_CALL SymCryptModElementSetValueUint32(UINT32 value, _In_ PCSYMCRYPT_MODULUS pmMod, _Out_ PSYMCRYPT_MODELEMENT peDst, _Out_writes_bytes_(cbScratch) PBYTE pbScratch, SIZE_T cbScratch)
UINT32 SYMCRYPT_CALL SymCryptIntAddUint32(_In_ PCSYMCRYPT_INT piSrc1, UINT32 u32Src2, _Out_ PSYMCRYPT_INT piDst)
PSYMCRYPT_ECPOINT SYMCRYPT_CALL SymCryptEcpointAllocate(_In_ PCSYMCRYPT_ECURVE pCurve)
#define SYMCRYPT_SCRATCH_BYTES_FOR_COMMON_MOD_OPERATIONS(_nDigits)
UINT32 SYMCRYPT_CALL SymCryptEcpointOnCurve(_In_ PCSYMCRYPT_ECURVE pCurve, _In_ PCSYMCRYPT_ECPOINT poSrc, _Out_writes_bytes_opt_(cbScratch) PBYTE pbScratch, SIZE_T cbScratch)
UINT32 SYMCRYPT_CALL SymCryptEcurveDigitsofFieldElement(_In_ PCSYMCRYPT_ECURVE pCurve)
VOID SYMCRYPT_CALL SymCryptModAdd(_In_ PCSYMCRYPT_MODULUS pmMod, _In_ PCSYMCRYPT_MODELEMENT peSrc1, _In_ PCSYMCRYPT_MODELEMENT peSrc2, _Out_ PSYMCRYPT_MODELEMENT peDst, _Out_writes_bytes_(cbScratch) PBYTE pbScratch, SIZE_T cbScratch)
VOID SYMCRYPT_CALL SymCryptModElementToInt(_In_ PCSYMCRYPT_MODULUS pmMod, _In_ PCSYMCRYPT_MODELEMENT peSrc, _Out_ PSYMCRYPT_INT piDst, _Out_writes_bytes_(cbScratch) PBYTE pbScratch, SIZE_T cbScratch)
PSYMCRYPT_INT SYMCRYPT_CALL SymCryptIntAllocate(UINT32 nDigits)
UINT32 SYMCRYPT_CALL SymCryptIntSubUint32(_In_ PCSYMCRYPT_INT piSrc1, UINT32 Src2, _Out_ PSYMCRYPT_INT piDst)
VOID SYMCRYPT_CALL SymCryptModSquare(_In_ PCSYMCRYPT_MODULUS pmMod, _In_ PCSYMCRYPT_MODELEMENT peSrc, _Out_ PSYMCRYPT_MODELEMENT peDst, _Out_writes_bytes_(cbScratch) PBYTE pbScratch, SIZE_T cbScratch)
VOID SYMCRYPT_CALL SymCryptEcpointFree(_In_ PCSYMCRYPT_ECURVE pCurve, _Out_ PSYMCRYPT_ECPOINT poDst)
PSYMCRYPT_INT SYMCRYPT_CALL SymCryptIntFromModulus(_In_ PSYMCRYPT_MODULUS pmSrc)
#define SYMCRYPT_SCRATCH_BYTES_FOR_COMMON_ECURVE_OPERATIONS(_pCurve)
#define SYMCRYPT_FLAG_MODRANDOM_ALLOW_MINUSONE
VOID SYMCRYPT_CALL SymCryptEcpointNegate(_In_ PCSYMCRYPT_ECURVE pCurve, _Inout_ PSYMCRYPT_ECPOINT poSrc, UINT32 mask, _Out_writes_bytes_opt_(cbScratch) PBYTE pbScratch, SIZE_T cbScratch)
UINT32 SYMCRYPT_CALL SymCryptIntIsEqualUint32(_In_ PCSYMCRYPT_INT piSrc1, _In_ UINT32 u32Src2)
VOID SYMCRYPT_CALL SymCryptIntFree(_Out_ PSYMCRYPT_INT piObj)
VOID SYMCRYPT_CALL SymCryptIntSetValueUint32(UINT32 u32Src, _Out_ PSYMCRYPT_INT piDst)
VOID SYMCRYPT_CALL SymCryptIntToModulus(_In_ PCSYMCRYPT_INT piSrc, _Out_ PSYMCRYPT_MODULUS pmDst, UINT32 averageOperations, UINT32 flags, _Out_writes_bytes_(cbScratch) PBYTE pbScratch, SIZE_T cbScratch)
UINT32 SYMCRYPT_CALL SymCryptEcurveDigitsofScalarMultiplier(_In_ PCSYMCRYPT_ECURVE pCurve)
VOID SYMCRYPT_CALL SymCryptModExp(_In_ PCSYMCRYPT_MODULUS pmMod, _In_ PCSYMCRYPT_MODELEMENT peBase, _In_ PCSYMCRYPT_INT piExp, UINT32 nBitsExp, UINT32 flags, _Out_ PSYMCRYPT_MODELEMENT peDst, _Out_writes_bytes_(cbScratch) PBYTE pbScratch, SIZE_T cbScratch)
VOID SYMCRYPT_CALL SymCryptModElementSetValueNegUint32(UINT32 value, _In_ PCSYMCRYPT_MODULUS pmMod, _Out_ PSYMCRYPT_MODELEMENT peDst, _Out_writes_bytes_(cbScratch) PBYTE pbScratch, SIZE_T cbScratch)
#define SYMCRYPT_SCRATCH_BYTES_FOR_GETSET_VALUE_ECURVE_OPERATIONS(_pCurve)
PSYMCRYPT_MODULUS SYMCRYPT_CALL SymCryptModulusAllocate(UINT32 nDigits)
VOID SYMCRYPT_CALL SymCryptModulusFree(_Out_ PSYMCRYPT_MODULUS pmObj)
VOID SYMCRYPT_CALL SymCryptModElementFree(_In_ PCSYMCRYPT_MODULUS pmMod, _Out_ PSYMCRYPT_MODELEMENT peObj)
#define SYMCRYPT_SAE_MAX_HMAC_OUTPUT_SIZE_BYTES
#define SYMCRYPT_FLAG_DATA_PUBLIC
PSYMCRYPT_MODELEMENT SYMCRYPT_CALL SymCryptModElementAllocate(_In_ PCSYMCRYPT_MODULUS pmMod)
#define SYMCRYPT_SAE_MAX_EC_POINT_SIZE_BYTES
#define SYMCRYPT_SCRATCH_BYTES_FOR_MODEXP(_nDigits)
SYMCRYPT_ERROR SYMCRYPT_CALL SymCryptEcpointGetValue(_In_ PCSYMCRYPT_ECURVE pCurve, _In_ PCSYMCRYPT_ECPOINT poSrc, SYMCRYPT_NUMBER_FORMAT nformat, SYMCRYPT_ECPOINT_FORMAT eformat, _Out_writes_bytes_(cbDst) PBYTE pbDst, SIZE_T cbDst, UINT32 flags, _Out_writes_bytes_(cbScratch) PBYTE pbScratch, SIZE_T cbScratch)
enum _SYMCRYPT_802_11_SAE_GROUP SYMCRYPT_802_11_SAE_GROUP