22 if( scError != SYMCRYPT_NO_ERROR )
35 if( pkMlDsakey ==
NULL )
92 scError = SYMCRYPT_MEMORY_ALLOCATION_FAILURE;
96 memcpy( pkMlDsakey->rootSeed, pbRootSeed, cbRootSeed );
110 SymCryptMlDsaExpandA( pkMlDsakey->publicSeed,
sizeof(pkMlDsakey->publicSeed), pkMlDsakey->pmA );
115 sizeof(privateVectorSeed),
129 pTemps->pvRowVectors[0],
130 pTemps->pePolyElements[0] );
137 if( scError != SYMCRYPT_NO_ERROR )
145 pkMlDsakey->publicKeyHash,
146 sizeof(pkMlDsakey->publicKeyHash) );
148 pkMlDsakey->hasRootSeed =
TRUE;
149 pkMlDsakey->hasPrivateKey =
TRUE;
172 SIZE_T cbPctSignature = 0;
177 if ( (
flags & ~allowedFlags ) != 0 )
179 scError = SYMCRYPT_INVALID_ARGUMENT;
184 if( scError != SYMCRYPT_NO_ERROR )
190 if( scError != SYMCRYPT_NO_ERROR )
202 cbPctSignature = pkMlDsakey->pParams->cbEncodedSignature;
205 if( pbPctSignature ==
NULL )
207 scError = SYMCRYPT_MEMORY_ALLOCATION_FAILURE;
215 pbPctSignature, cbPctSignature );
216 if( scError != SYMCRYPT_NO_ERROR )
218 scError = SYMCRYPT_FIPS_FAILURE;
225 pbPctSignature, cbPctSignature,
227 if( scError != SYMCRYPT_NO_ERROR )
229 scError = SYMCRYPT_FIPS_FAILURE;
238 if( pbPctSignature !=
NULL )
266 if ( (
flags & ~allowedFlags ) != 0 )
268 scError = SYMCRYPT_INVALID_ARGUMENT;
281 switch( mlDsakeyFormat )
286 scError = SYMCRYPT_WRONG_KEY_SIZE;
299 scError = SYMCRYPT_INVALID_ARGUMENT;
321 scError = SYMCRYPT_INVALID_ARGUMENT;
325 switch( mlDsakeyFormat )
342 scError = SYMCRYPT_BUFFER_TOO_SMALL;
346 if( !pkMlDsakey->hasRootSeed )
348 scError = SYMCRYPT_INCOMPATIBLE_FORMAT;
356 scError = SYMCRYPT_INVALID_ARGUMENT;
386 SYMCRYPT_ASSERT( cbSignature == pkMlDsakey->pParams->cbEncodedSignature );
398 UINT8 modeId = (pbHashOid ==
NULL) ? 0 : 1;
402 BYTE commitmentHash[64];
415 scError = SYMCRYPT_MEMORY_ALLOCATION_FAILURE;
447 SymCryptShake256Append( pShakeState, pkMlDsakey->privateSigningSeed,
sizeof(pkMlDsakey->privateSigningSeed) );
459 PBYTE pbW1Encoded = pTemps->pbScratch;
479 for(
UINT8 i = 0;
i < pvW->nElems; ++
i)
566 pvHint = pTemps->pvRowVectors[1];
608 (pkMlDsakey->hasPrivateKey ==
FALSE) ||
609 (cbSignature != pkMlDsakey->pParams->cbEncodedSignature) )
611 scError = SYMCRYPT_INVALID_ARGUMENT;
617 if( scError != SYMCRYPT_NO_ERROR )
635 if( scError != SYMCRYPT_NO_ERROR )
660 (pkMlDsakey->hasPrivateKey ==
FALSE) ||
662 (cbSignature != pkMlDsakey->pParams->cbEncodedSignature) )
664 scError = SYMCRYPT_INVALID_ARGUMENT;
670 if( scError != SYMCRYPT_NO_ERROR )
688 if( scError != SYMCRYPT_NO_ERROR )
718 (pkMlDsakey->hasPrivateKey ==
FALSE) ||
719 (cbSignature != pkMlDsakey->pParams->cbEncodedSignature) )
721 scError = SYMCRYPT_INVALID_ARGUMENT;
727 if( scError != SYMCRYPT_NO_ERROR )
737 if( scError != SYMCRYPT_NO_ERROR )
755 if( scError != SYMCRYPT_NO_ERROR )
787 SYMCRYPT_ASSERT( cbSignature == pkMlDsakey->pParams->cbEncodedSignature );
798 UINT8 modeId = (pbHashOid ==
NULL) ? 0 : 1;
801 BYTE commitmentHash[64];
802 BYTE recalculatedCommitmentHash[64];
803 UINT32 responseInfinityNorm;
816 scError = SYMCRYPT_MEMORY_ALLOCATION_FAILURE;
833 PBYTE pbw1Encoded = pTemps->pbScratch;
843 if( scError != SYMCRYPT_NO_ERROR )
854 scError = SYMCRYPT_SIGNATURE_VERIFICATION_FAILURE;
866 for(
UINT8 i = 0;
i < pvResponse->nElems; ++
i)
878 const UINT32 pow2DTimesR = 4214781;
879 for(
UINT8 i = 0;
i < pkMlDsakey->pvt1->nElems; ++
i)
946 scError = SYMCRYPT_SIGNATURE_VERIFICATION_FAILURE;
976 (cbSignature != pkMlDsakey->pParams->cbEncodedSignature) )
978 scError = SYMCRYPT_INVALID_ARGUMENT;
993 if( scError != SYMCRYPT_NO_ERROR )
1017 (cbSignature != pkMlDsakey->pParams->cbEncodedSignature) )
1019 scError = SYMCRYPT_INVALID_ARGUMENT;
1034 if( scError != SYMCRYPT_NO_ERROR )
1062 (cbSignature != pkMlDsakey->pParams->cbEncodedSignature) )
1064 scError = SYMCRYPT_INVALID_ARGUMENT;
1069 pkMlDsakey->pParams,
1073 if( scError != SYMCRYPT_NO_ERROR )
1089 if( scError != SYMCRYPT_NO_ERROR )
static void cleanup(void)
static const uint32_t k[]
GLenum const GLfloat * params
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 const GLfloat const GLdouble const GLfloat GLint i
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 const GLfloat const GLdouble const GLfloat GLint GLint GLint j
void SYMCRYPT_CALL SymCryptCallbackFree(void *ptr)
void *SYMCRYPT_CALL SymCryptCallbackAlloc(SIZE_T size)
SYMCRYPT_ERROR SYMCRYPT_CALL SymCryptCallbackRandom(BYTE *buf, SIZE_T size)
#define memcpy(s1, s2, n)
_Use_decl_annotations_ SYMCRYPT_ERROR SYMCRYPT_CALL SymCryptHashMlDsaSign(PCSYMCRYPT_MLDSAKEY pkMlDsakey, SYMCRYPT_PQDSA_HASH_ID hashAlg, PCBYTE pbHash, SIZE_T cbHash, PCBYTE pbContext, SIZE_T cbContext, UINT32 flags, PBYTE pbSignature, SIZE_T cbSignature)
_Use_decl_annotations_ SYMCRYPT_ERROR SYMCRYPT_CALL SymCryptExternalMuMlDsaVerify(PCSYMCRYPT_MLDSAKEY pkMlDsakey, PCBYTE pbMu, SIZE_T cbMu, PCBYTE pbSignature, SIZE_T cbSignature, UINT32 flags)
_Use_decl_annotations_ SYMCRYPT_ERROR SYMCRYPT_CALL SymCryptMlDsakeyGetValue(PCSYMCRYPT_MLDSAKEY pkMlDsakey, PBYTE pbDst, SIZE_T cbDst, SYMCRYPT_MLDSAKEY_FORMAT mlDsakeyFormat, UINT32 flags)
_Use_decl_annotations_ SYMCRYPT_ERROR SYMCRYPT_CALL SymCryptMlDsakeySetValue(PCBYTE pbSrc, SIZE_T cbSrc, SYMCRYPT_MLDSAKEY_FORMAT mlDsakeyFormat, UINT32 flags, PSYMCRYPT_MLDSAKEY pkMlDsakey)
_Use_decl_annotations_ SYMCRYPT_ERROR SYMCRYPT_CALL SymCryptHashMlDsaVerify(PCSYMCRYPT_MLDSAKEY pkMlDsakey, SYMCRYPT_PQDSA_HASH_ID hashAlg, PCBYTE pbHash, SIZE_T cbHash, PCBYTE pbContext, SIZE_T cbContext, PCBYTE pbSignature, SIZE_T cbSignature, UINT32 flags)
_Use_decl_annotations_ SYMCRYPT_ERROR SYMCRYPT_CALL SymCryptMlDsaSignEx(PCSYMCRYPT_MLDSAKEY pkMlDsakey, PCBYTE pbInput, SIZE_T cbInput, PCBYTE pbContext, SIZE_T cbContext, PCBYTE pbHashOid, SIZE_T cbHashOid, PCBYTE pbRandom, SIZE_T cbRandom, UINT32 flags, PBYTE pbSignature, SIZE_T cbSignature)
_Use_decl_annotations_ SYMCRYPT_ERROR SYMCRYPT_CALL SymCryptMlDsaSign(PCSYMCRYPT_MLDSAKEY pkMlDsakey, PCBYTE pbMessage, SIZE_T cbMessage, PCBYTE pbContext, SIZE_T cbContext, UINT32 flags, PBYTE pbSignature, SIZE_T cbSignature)
_Use_decl_annotations_ SYMCRYPT_ERROR SYMCRYPT_CALL SymCryptExternalMuMlDsaSign(PCSYMCRYPT_MLDSAKEY pkMlDsakey, PCBYTE pbMu, SIZE_T cbMu, UINT32 flags, PBYTE pbSignature, SIZE_T cbSignature)
_Use_decl_annotations_ SYMCRYPT_ERROR SYMCRYPT_CALL SymCryptMlDsaVerifyEx(PCSYMCRYPT_MLDSAKEY pkMlDsakey, PCBYTE pbInput, SIZE_T cbInput, PCBYTE pbContext, SIZE_T cbContext, PCBYTE pbHashOid, SIZE_T cbHashOid, PCBYTE pbSignature, SIZE_T cbSignature, UINT32 flags)
_Use_decl_annotations_ SYMCRYPT_ERROR SYMCRYPT_CALL SymCryptMlDsakeyGenerate(PSYMCRYPT_MLDSAKEY pkMlDsakey, UINT32 flags)
_Use_decl_annotations_ VOID SYMCRYPT_CALL SymCryptMlDsakeyFree(PSYMCRYPT_MLDSAKEY pkMlDsakey)
_Use_decl_annotations_ PSYMCRYPT_MLDSAKEY SYMCRYPT_CALL SymCryptMlDsakeyAllocate(SYMCRYPT_MLDSA_PARAMS params)
_Use_decl_annotations_ SYMCRYPT_ERROR SYMCRYPT_CALL SymCryptMlDsaKeyGenerateEx(PSYMCRYPT_MLDSAKEY pkMlDsakey, PCBYTE pbRootSeed, SIZE_T cbRootSeed, UINT32 flags)
_Use_decl_annotations_ SYMCRYPT_ERROR SYMCRYPT_CALL SymCryptMlDsaVerify(PCSYMCRYPT_MLDSAKEY pkMlDsakey, PCBYTE pbMessage, SIZE_T cbMessage, PCBYTE pbContext, SIZE_T cbContext, PCBYTE pbSignature, SIZE_T cbSignature, UINT32 flags)
_Use_decl_annotations_ SYMCRYPT_ERROR SYMCRYPT_CALL SymCryptMlDsaSkEncode(PCSYMCRYPT_MLDSAKEY pkMlDsakey, PBYTE pbDst, SIZE_T cbDst)
_Use_decl_annotations_ SYMCRYPT_ERROR SYMCRYPT_CALL SymCryptMlDsaGetInternalParamsFromParams(SYMCRYPT_MLDSA_PARAMS params, PCSYMCRYPT_MLDSA_INTERNAL_PARAMS *pInternalParams)
_Use_decl_annotations_ VOID SYMCRYPT_CALL SymCryptMlDsaVectorEncode(PCSYMCRYPT_MLDSA_VECTOR pvSrc, UINT32 nBitsPerCoefficient, UINT32 signedCoefficientBound, PBYTE pbDst)
_Use_decl_annotations_ VOID SYMCRYPT_CALL SymCryptMlDsaMatrixVectorMontMul(PCSYMCRYPT_MLDSA_MATRIX pmSrc1, PCSYMCRYPT_MLDSA_VECTOR pvSrc2, PSYMCRYPT_MLDSA_VECTOR pvDst, PSYMCRYPT_MLDSA_POLYELEMENT peTmp)
_Use_decl_annotations_ VOID SYMCRYPT_CALL SymCryptMlDsaExpandS(PCSYMCRYPT_MLDSA_INTERNAL_PARAMS pParams, PCBYTE pbPrivateVectorSeed, SIZE_T cbPrivateVectorSeed, PSYMCRYPT_MLDSA_VECTOR pvs1, PSYMCRYPT_MLDSA_VECTOR pvs2)
_Use_decl_annotations_ VOID SYMCRYPT_CALL SymCryptMlDsaVectorAdd(PCSYMCRYPT_MLDSA_VECTOR pvSrc1, PCSYMCRYPT_MLDSA_VECTOR pvSrc2, PSYMCRYPT_MLDSA_VECTOR pvDst)
_Use_decl_annotations_ SYMCRYPT_ERROR SYMCRYPT_CALL SymCryptMlDsaSkDecode(PCBYTE pbSrc, SIZE_T cbSrc, UINT32 flags, PSYMCRYPT_MLDSAKEY pkMlDsakey)
UINT32 SYMCRYPT_CALL SymCryptMlDsaMontMul(UINT32 a, UINT32 b)
_Use_decl_annotations_ PSYMCRYPT_MLDSA_INTERNAL_COMPUTATION_TEMPORARIES SYMCRYPT_CALL SymCryptMlDsaTemporariesAllocateAndInitialize(PCSYMCRYPT_MLDSA_INTERNAL_PARAMS pParams, UINT32 nRowVectors, UINT32 nColVectors, UINT32 nPolyElements, UINT32 cbScratch)
_Use_decl_annotations_ VOID SYMCRYPT_CALL SymCryptMlDsaVectorPolyElementMontMul(PCSYMCRYPT_MLDSA_VECTOR pvSrc1, PCSYMCRYPT_MLDSA_POLYELEMENT peSrc2, PSYMCRYPT_MLDSA_VECTOR pvDst)
_Use_decl_annotations_ VOID SYMCRYPT_CALL SymCryptMlDsaExpandMask(PCSYMCRYPT_MLDSA_INTERNAL_PARAMS pParams, PSYMCRYPT_SHAKE256_STATE pShakeState, PCBYTE pbPrivateRandom, SIZE_T cbPrivateRandom, UINT16 counter, PSYMCRYPT_MLDSA_VECTOR pvMask)
_Use_decl_annotations_ SYMCRYPT_ERROR SYMCRYPT_CALL SymCryptMlDsaPkDecode(PCBYTE pbSrc, SIZE_T cbSrc, UINT32 flags, PSYMCRYPT_MLDSAKEY pkMlDsakey)
_Use_decl_annotations_ VOID SYMCRYPT_CALL SymCryptMlDsaTemporariesFree(PSYMCRYPT_MLDSA_INTERNAL_COMPUTATION_TEMPORARIES pTemporaries)
_Use_decl_annotations_ VOID SYMCRYPT_CALL SymCryptMlDsakeyComputeT(PCSYMCRYPT_MLDSA_MATRIX pmA, PCSYMCRYPT_MLDSA_VECTOR pvs1, PCSYMCRYPT_MLDSA_VECTOR pvs2, PSYMCRYPT_MLDSA_VECTOR pvt0, PSYMCRYPT_MLDSA_VECTOR pvt1, PSYMCRYPT_MLDSA_VECTOR pvTmp, PSYMCRYPT_MLDSA_POLYELEMENT peTmp)
_Use_decl_annotations_ SYMCRYPT_ERROR SYMCRYPT_CALL SymCryptMlDsaSigDecode(PCSYMCRYPT_MLDSA_INTERNAL_PARAMS pParams, PCBYTE pbSig, SIZE_T cbSig, PBYTE pbCommitmentHash, SIZE_T cbCommitmentHash, PSYMCRYPT_MLDSA_VECTOR pvResponse, PSYMCRYPT_MLDSA_VECTOR pvHint)
_Use_decl_annotations_ VOID SYMCRYPT_CALL SymCryptMlDsaUseHint(PCSYMCRYPT_MLDSA_INTERNAL_PARAMS pParams, PCSYMCRYPT_MLDSA_VECTOR pvHint, PSYMCRYPT_MLDSA_VECTOR pvCommitment)
_Use_decl_annotations_ UINT32 SYMCRYPT_CALL SymCryptMlDsaVectorInfinityNorm(PCSYMCRYPT_MLDSA_VECTOR pvSrc)
_Use_decl_annotations_ VOID SYMCRYPT_CALL SymCryptMlDsaPolyElementMulR(PSYMCRYPT_MLDSA_POLYELEMENT peSrc)
_Use_decl_annotations_ VOID SYMCRYPT_CALL SymCryptMlDsaSigEncode(PCSYMCRYPT_MLDSA_INTERNAL_PARAMS pParams, PBYTE pbCommitmentHash, SIZE_T cbCommitmentHash, PCSYMCRYPT_MLDSA_VECTOR pvResponse, PCSYMCRYPT_MLDSA_VECTOR pvHint, PBYTE pbDst, SIZE_T cbDst)
_Use_decl_annotations_ VOID SYMCRYPT_CALL SymCryptMlDsaVectorSub(PCSYMCRYPT_MLDSA_VECTOR pvSrc1, PCSYMCRYPT_MLDSA_VECTOR pvSrc2, PSYMCRYPT_MLDSA_VECTOR pvDst)
_Use_decl_annotations_ VOID SYMCRYPT_CALL SymCryptMlDsaSampleInBall(PCSYMCRYPT_MLDSA_INTERNAL_PARAMS pParams, PCBYTE pbCommitmentHash, SIZE_T cbCommitmentHash, PSYMCRYPT_MLDSA_POLYELEMENT peChallenge)
_Use_decl_annotations_ PSYMCRYPT_MLDSAKEY SYMCRYPT_CALL SymCryptMlDsakeyInitialize(PCSYMCRYPT_MLDSA_INTERNAL_PARAMS pInternalParams, PBYTE pbKey, UINT32 cbKey)
_Use_decl_annotations_ VOID SYMCRYPT_CALL SymCryptMlDsaExpandA(PCBYTE pbPublicSeed, SIZE_T cbPublicSeed, PSYMCRYPT_MLDSA_MATRIX pmA)
VOID SYMCRYPT_CALL SymCryptMlDsaVectorINTT(_Inout_ PSYMCRYPT_MLDSA_VECTOR pvSrc)
_Use_decl_annotations_ VOID SYMCRYPT_CALL SymCryptMlDsaVectorHighBits(PCSYMCRYPT_MLDSA_INTERNAL_PARAMS pParams, PCSYMCRYPT_MLDSA_VECTOR pvSrc, PSYMCRYPT_MLDSA_VECTOR pvDst)
_Use_decl_annotations_ SYMCRYPT_ERROR SYMCRYPT_CALL SymCryptMlDsaPkEncode(PCSYMCRYPT_MLDSAKEY pkMlDsakey, PBYTE pbDst, SIZE_T cbDst)
_Use_decl_annotations_ VOID SYMCRYPT_CALL SymCryptMlDsaVectorNTT(PSYMCRYPT_MLDSA_VECTOR pvSrc)
_Use_decl_annotations_ VOID SYMCRYPT_CALL SymCryptMlDsaMakeHint(PCSYMCRYPT_MLDSA_INTERNAL_PARAMS pParams, PSYMCRYPT_MLDSA_VECTOR pvWMinusCs2, PSYMCRYPT_MLDSA_VECTOR pvWMinusCs2PlusCt0, PSYMCRYPT_MLDSA_VECTOR pvDst, UINT32 *nBitsSet)
_Use_decl_annotations_ VOID SYMCRYPT_CALL SymCryptMlDsaPolyElementNTT(PSYMCRYPT_MLDSA_POLYELEMENT peSrc)
_Use_decl_annotations_ VOID SYMCRYPT_CALL SymCryptMlDsaVectorLowBits(PCSYMCRYPT_MLDSA_INTERNAL_PARAMS pParams, PCSYMCRYPT_MLDSA_VECTOR pvSrc, PSYMCRYPT_MLDSA_VECTOR pvDst)
_Use_decl_annotations_ SYMCRYPT_ERROR SYMCRYPT_CALL SymCryptHashMlDsaValidateHashAlgAndGetOid(PCSYMCRYPT_MLDSA_INTERNAL_PARAMS pParams, SYMCRYPT_PQDSA_HASH_ID hashAlg, SIZE_T cbHash, PCSYMCRYPT_OID *ppOid)
#define _Use_decl_annotations_
#define UNREFERENCED_PARAMETER(P)
#define SYMCRYPT_MLWE_POLYNOMIAL_COEFFICIENTS
#define SYMCRYPT_RUN_SELFTEST_ONCE(AlgorithmSelftestFunction, AlgorithmSelftestFlag)
#define SYMCRYPT_MLDSA_PRIVATE_VECTOR_SEED_SIZE
#define SYMCRYPT_MLDSA_SIGNING_RANDOM_SIZE
#define SYMCRYPT_FLAG_MLDSA_EXTERNALMU
#define SYMCRYPT_MLDSA_ROOT_SEED_SIZE
#define SYMCRYPT_INTERNAL_MLDSA_SIZEOF_KEY(_nRows, _nCols)
#define SYMCRYPT_INTERNAL_MLDSA_VECTOR_ELEMENT(_row, _pVector)
* PSYMCRYPT_MLDSA_INTERNAL_COMPUTATION_TEMPORARIES
static const BYTE pbHash[]
UINT8 maskCoefficientRangeLog2
UINT32 w1EncodeCoefficientBitLength
UINT32 commitmentRoundingRange
UINT32 cbEncodedPublicKey
UINT8 nChallengeNonZeroCoeffs
UINT32 coeffs[SYMCRYPT_MLWE_POLYNOMIAL_COEFFICIENTS]
#define SYMCRYPT_ASSERT(_x)
VOID SYMCRYPT_CALL SymCryptShake256(_In_reads_(cbData) PCBYTE pbData, SIZE_T cbData, _Out_writes_(cbResult) PBYTE pbResult, SIZE_T cbResult)
#define SYMCRYPT_SHAKE256_RESULT_SIZE
@ SYMCRYPT_MLDSAKEY_FORMAT_PRIVATE_KEY
@ SYMCRYPT_MLDSAKEY_FORMAT_PRIVATE_SEED
@ SYMCRYPT_MLDSAKEY_FORMAT_PUBLIC_KEY
FORCEINLINE VOID SYMCRYPT_CALL SymCryptWipeKnownSize(_Out_writes_bytes_(cbData) PVOID pbData, SIZE_T cbData)
#define SYMCRYPT_MLDSA_CONTEXT_MAX_LENGTH
VOID SYMCRYPT_CALL SymCryptWipe(_Out_writes_bytes_(cbData) PVOID pbData, SIZE_T cbData)
enum _SYMCRYPT_PQDSA_HASH_ID SYMCRYPT_PQDSA_HASH_ID
VOID SYMCRYPT_CALL SymCryptShake256Result(_Inout_ PSYMCRYPT_SHAKE256_STATE pState, _Out_writes_(SYMCRYPT_SHAKE256_RESULT_SIZE) PBYTE pbResult)
VOID SYMCRYPT_CALL SymCryptShake256Append(_Inout_ PSYMCRYPT_SHAKE256_STATE pState, _In_reads_(cbData) PCBYTE pbData, SIZE_T cbData)
VOID SYMCRYPT_CALL SymCryptShake256Extract(_Inout_ PSYMCRYPT_SHAKE256_STATE pState, _Out_writes_(cbResult) PBYTE pbResult, SIZE_T cbResult, BOOLEAN bWipe)
VOID SYMCRYPT_CALL SymCryptShake256Init(_Out_ PSYMCRYPT_SHAKE256_STATE pState)
VOID SYMCRYPT_CALL SymCryptMlDsaSelftest(void)
#define SYMCRYPT_FLAG_KEY_NO_FIPS
enum _SYMCRYPT_MLDSA_PARAMS SYMCRYPT_MLDSA_PARAMS
BOOLEAN SYMCRYPT_CALL SymCryptEqual(_In_reads_(cbBytes) PCBYTE pbSrc1, _In_reads_(cbBytes) PCBYTE pbSrc2, SIZE_T cbBytes)
enum _SYMCRYPT_MLDSAKEY_FORMAT SYMCRYPT_MLDSAKEY_FORMAT
@ SYMCRYPT_SELFTEST_ALGORITHM_MLDSA
const SYMCRYPT_MLDSAKEY * PCSYMCRYPT_MLDSAKEY
SYMCRYPT_MLDSAKEY * PSYMCRYPT_MLDSAKEY
#define SYMCRYPT_CHECK_MAGIC(p)
SYMCRYPT_MAGIC_FIELD * PSYMCRYPT_SHAKE256_STATE