ReactOS 0.4.17-dev-1005-g171e1de
sc_lib_mldsa.h File Reference
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  _SYMCRYPT_MLDSA_POLYELEMENT
 
struct  _SYMCRYPT_MLDSA_INTERNAL_PARAMS
 

Macros

#define SYMCRYPT_MLDSA_Q   (8380417)
 
#define SYMCRYPT_MLDSA_R_LOG2   (32)
 
#define SYMCRYPT_MLDSA_ROOT_SEED_SIZE   (32)
 
#define SYMCRYPT_MLDSA_PUBLIC_SEED_SIZE   (32)
 
#define SYMCRYPT_MLDSA_PUBLIC_KEY_HASH_SIZE   SYMCRYPT_SHAKE256_RESULT_SIZE
 
#define SYMCRYPT_MLDSA_PRIVATE_SIGNING_SEED_SIZE   (32)
 
#define SYMCRYPT_MLDSA_PRIVATE_VECTOR_SEED_SIZE   (64)
 
#define SYMCRYPT_MLDSA_SIGNING_RANDOM_SIZE   (32)
 
#define SYMCRYPT_MLDSA_SUPPORTED_HASH_OID_SIZE   (11)
 
#define SYMCRYPT_FLAG_MLDSA_EXTERNALMU   (0x1)
 
#define SYMCRYPT_MLDSA_VECTOR_MAX_LENGTH   (8)
 
#define SYMCRYPT_MLDSA_MATRIX_MAX_NROWS   (8)
 
#define SYMCRYPT_MLDSA_MATRIX_MAX_NCOLS   (7)
 
#define SYMCRYPT_INTERNAL_MLDSA_SIZEOF_POLYELEMENT   ( sizeof( SYMCRYPT_MLDSA_POLYELEMENT ) )
 
#define SYMCRYPT_INTERNAL_MLDSA_SIZEOF_VECTOR(_nElems)   ( sizeof( SYMCRYPT_MLDSA_VECTOR ) + ( _nElems * sizeof( SYMCRYPT_MLDSA_POLYELEMENT ) ) )
 
#define SYMCRYPT_INTERNAL_MLDSA_SIZEOF_MATRIX(_nRows, _nCols)   ( sizeof( SYMCRYPT_MLDSA_MATRIX ) + ( _nRows * _nCols * sizeof( SYMCRYPT_MLDSA_POLYELEMENT ) ) )
 
#define SYMCRYPT_INTERNAL_MLDSA_SIZEOF_KEY(_nRows, _nCols)
 
#define SYMCRYPT_INTERNAL_MLDSA_VECTOR_ELEMENT_OFFSET(_row)   ( sizeof( SYMCRYPT_MLDSA_VECTOR ) + (_row * SYMCRYPT_INTERNAL_MLDSA_SIZEOF_POLYELEMENT) )
 
#define SYMCRYPT_INTERNAL_MLDSA_VECTOR_ELEMENT(_row, _pVector)   ((PSYMCRYPT_MLDSA_POLYELEMENT) ( ((PBYTE) (_pVector)) + SYMCRYPT_INTERNAL_MLDSA_VECTOR_ELEMENT_OFFSET( _row ) ))
 
#define SYMCRYPT_INTERNAL_MLDSA_MATRIX_ELEMENT_OFFSET(_row, _col, _pMatrix)   ( sizeof( SYMCRYPT_MLDSA_MATRIX ) + ((_row * (_pMatrix)->nCols + _col) * SYMCRYPT_INTERNAL_MLDSA_SIZEOF_POLYELEMENT) )
 
#define SYMCRYPT_INTERNAL_MLDSA_MATRIX_ELEMENT(_row, _col, _pMatrix)   ((PSYMCRYPT_MLDSA_POLYELEMENT) ( ((PBYTE) (_pMatrix)) + SYMCRYPT_INTERNAL_MLDSA_MATRIX_ELEMENT_OFFSET( _row, _col, _pMatrix ) ))
 
#define SYMCRYPT_INTERNAL_MLDSA_SIZEOF_ENCODED_VECTOR(_pVector, _nBitsPerCoeff)   ( ((_pVector)->nElems * SYMCRYPT_MLWE_POLYNOMIAL_COEFFICIENTS * (_nBitsPerCoeff) ) / 8u )
 
#define SYMCRYPT_INTERNAL_MLDSA_SHORT_COEFFICIENT_ENCODE_DECODE(_val, _bound)   ( _bound - _val )
 

Typedefs

typedef struct _SYMCRYPT_MLDSA_POLYELEMENT SYMCRYPT_MLDSA_POLYELEMENT
 
typedef struct _SYMCRYPT_MLDSA_POLYELEMENT * PSYMCRYPT_MLDSA_POLYELEMENT
 
typedef const SYMCRYPT_MLDSA_POLYELEMENT * PCSYMCRYPT_MLDSA_POLYELEMENT
 
typedef const SYMCRYPT_MLDSA_VECTOR * PCSYMCRYPT_MLDSA_VECTOR
 
typedef const SYMCRYPT_MLDSA_MATRIX * PCSYMCRYPT_MLDSA_MATRIX
 
typedef struct _SYMCRYPT_MLDSA_INTERNAL_PARAMS SYMCRYPT_MLDSA_INTERNAL_PARAMS
 
typedef struct _SYMCRYPT_MLDSA_INTERNAL_PARAMS * PSYMCRYPT_MLDSA_INTERNAL_PARAMS
 
typedef const SYMCRYPT_MLDSA_INTERNAL_PARAMS * PCSYMCRYPT_MLDSA_INTERNAL_PARAMS
 
typedef const SYMCRYPT_MLDSAKEY * PCSYMCRYPT_MLDSAKEY
 

Functions

typedef _Struct_size_bytes_ (cbTotalSize) struct _SYMCRYPT_MLDSA_VECTOR
 
SYMCRYPT_ERROR SYMCRYPT_CALL SymCryptMlDsaKeyGenerateEx (_Inout_ PSYMCRYPT_MLDSAKEY pkMlDsakey, _In_reads_(cbRootSeed) PCBYTE pbRootSeed, SIZE_T cbRootSeed, UINT32 flags)
 
SYMCRYPT_ERROR SYMCRYPT_CALL SymCryptMlDsaSignEx (_In_ PCSYMCRYPT_MLDSAKEY pkMlDsakey, _In_reads_(cbInput) PCBYTE pbInput, SIZE_T cbInput, _In_reads_opt_(cbContext) PCBYTE pbContext, _In_range_(0, SYMCRYPT_MLDSA_CONTEXT_MAX_LENGTH) SIZE_T cbContext, _In_reads_opt_(cbHashOid) PCBYTE pbHashOid, SIZE_T cbHashOid, _In_reads_(cbRandom) PCBYTE pbRandom, SIZE_T cbRandom, UINT32 flags, _Out_writes_(cbSignature) PBYTE pbSignature, SIZE_T cbSignature)
 
SYMCRYPT_ERROR SYMCRYPT_CALL SymCryptMlDsaVerifyEx (_In_ PCSYMCRYPT_MLDSAKEY pkMlDsakey, _In_reads_(cbInput) PCBYTE pbInput, SIZE_T cbInput, _In_reads_opt_(cbContext) PCBYTE pbContext, _In_range_(0, SYMCRYPT_MLDSA_CONTEXT_MAX_LENGTH) SIZE_T cbContext, _In_reads_opt_(cbHashOid) PCBYTE pbHashOid, SIZE_T cbHashOid, _In_reads_(cbSignature) PCBYTE pbSignature, SIZE_T cbSignature, UINT32 flags)
 
 _Success_ (TRUE) PSYMCRYPT_MLDSAKEY SYMCRYPT_CALL SymCryptMlDsakeyInitialize(_In_ PCSYMCRYPT_MLDSA_INTERNAL_PARAMS pInternalParams
 
 _Out_writes_bytes_ (cbKey) PBYTE pbKey
 
VOID SYMCRYPT_CALL SymCryptMlDsakeyComputeT (_In_ PCSYMCRYPT_MLDSA_MATRIX pmA, _In_ PCSYMCRYPT_MLDSA_VECTOR pvs1, _In_ PCSYMCRYPT_MLDSA_VECTOR pvs2, _Inout_ PSYMCRYPT_MLDSA_VECTOR pvt0, _Inout_ PSYMCRYPT_MLDSA_VECTOR pvt1, _Inout_ PSYMCRYPT_MLDSA_VECTOR pvTmp, _Inout_ PSYMCRYPT_MLDSA_POLYELEMENT peTmp)
 
UINT32 SYMCRYPT_CALL SymCryptMlDsaMontReduce (UINT64 a)
 
UINT32 SYMCRYPT_CALL SymCryptMlDsaMontMul (UINT32 a, UINT32 b)
 
UINT32 SYMCRYPT_CALL SymCryptMlDsaModAdd (UINT32 a, UINT32 b)
 
UINT32 SYMCRYPT_CALL SymCryptMlDsaModSub (UINT32 a, UINT32 b)
 
VOID SYMCRYPT_CALL SymCryptMlDsaPolyElementSetZero (_Inout_ PSYMCRYPT_MLDSA_POLYELEMENT peDst)
 
VOID SYMCRYPT_CALL SymCryptMlDsaPolyElementNTT (_Inout_ PSYMCRYPT_MLDSA_POLYELEMENT peSrc)
 
VOID SYMCRYPT_CALL SymCryptMlDsaPolyElementINTT (_Inout_ PSYMCRYPT_MLDSA_POLYELEMENT peSrc)
 
VOID SYMCRYPT_CALL SymCryptMlDsaPolyElementMulR (_Inout_ PSYMCRYPT_MLDSA_POLYELEMENT peSrc)
 
VOID SYMCRYPT_CALL SymCryptMlDsaPolyElementMontMul (_In_ PCSYMCRYPT_MLDSA_POLYELEMENT peSrc1, _In_ PCSYMCRYPT_MLDSA_POLYELEMENT peSrc2, _Out_ PSYMCRYPT_MLDSA_POLYELEMENT peDst)
 
VOID SYMCRYPT_CALL SymCryptMlDsaPolyElementAdd (_In_ PCSYMCRYPT_MLDSA_POLYELEMENT peSrc1, _In_ PCSYMCRYPT_MLDSA_POLYELEMENT peSrc2, _Out_ PSYMCRYPT_MLDSA_POLYELEMENT peDst)
 
VOID SYMCRYPT_CALL SymCryptMlDsaPolyElementSub (_In_ PCSYMCRYPT_MLDSA_POLYELEMENT peSrc1, _In_ PCSYMCRYPT_MLDSA_POLYELEMENT peSrc2, _Out_ PSYMCRYPT_MLDSA_POLYELEMENT peDst)
 
VOID SYMCRYPT_CALL SymCryptMlDsaVectorCopy (_In_ PCSYMCRYPT_MLDSA_VECTOR pvSrc, _Inout_ PSYMCRYPT_MLDSA_VECTOR pvDst)
 
VOID SYMCRYPT_CALL SymCryptMlDsaVectorSetZero (_Inout_ PSYMCRYPT_MLDSA_VECTOR pvDst)
 
VOID SYMCRYPT_CALL SymCryptMlDsaVectorAdd (_In_ PCSYMCRYPT_MLDSA_VECTOR pvSrc1, _In_ PCSYMCRYPT_MLDSA_VECTOR pvSrc2, _Inout_ PSYMCRYPT_MLDSA_VECTOR pvDst)
 
VOID SYMCRYPT_CALL SymCryptMlDsaVectorSub (_In_ PCSYMCRYPT_MLDSA_VECTOR pvSrc1, _In_ PCSYMCRYPT_MLDSA_VECTOR pvSrc2, _Inout_ PSYMCRYPT_MLDSA_VECTOR pvDst)
 
VOID SYMCRYPT_CALL SymCryptMlDsaVectorPolyElementMontMul (_In_ PCSYMCRYPT_MLDSA_VECTOR pvSrc1, _In_ PCSYMCRYPT_MLDSA_POLYELEMENT peSrc2, _Inout_ PSYMCRYPT_MLDSA_VECTOR pvDst)
 
VOID SYMCRYPT_CALL SymCryptMlDsaVectorNTT (_Inout_ PSYMCRYPT_MLDSA_VECTOR pvSrc)
 
VOID SYMCRYPT_CALL SymCryptMlDsaVectorINTT (_Inout_ PSYMCRYPT_MLDSA_VECTOR pvSrc)
 
PSYMCRYPT_MLDSA_MATRIX SYMCRYPT_CALL SymCryptMlDsaMatrixCreate (_Out_writes_(cbBuffer) PBYTE pbBuffer, UINT32 cbBuffer, UINT8 nRows, UINT8 nCols)
 
VOID SYMCRYPT_CALL SymCryptMlDsaMatrixVectorMontMul (_In_ PCSYMCRYPT_MLDSA_MATRIX pmSrc1, _In_ PCSYMCRYPT_MLDSA_VECTOR pvSrc2, _Inout_ PSYMCRYPT_MLDSA_VECTOR pvDst, _Inout_ PSYMCRYPT_MLDSA_POLYELEMENT peTmp)
 
VOID SYMCRYPT_CALL SymCryptMlDsaRejNttPoly (_In_reads_(cbRejNttPolySeed) PCBYTE pbRejNttPolySeed, SIZE_T cbRejNttPolySeed, _Inout_ PSYMCRYPT_MLDSA_POLYELEMENT peDst)
 
VOID SYMCRYPT_CALL SymCryptMlDsaExpandA (_In_reads_(cbPublicSeed) PCBYTE pbPublicSeed, SIZE_T cbPublicSeed, _Inout_ PSYMCRYPT_MLDSA_MATRIX pmA)
 
FORCEINLINE INT8 SYMCRYPT_CALL SymCryptMlDsaCoeffFromHalfByte (_In_ PCSYMCRYPT_MLDSA_INTERNAL_PARAMS pParams, _In_range_(0, 15) UINT8 halfByte)
 
VOID SYMCRYPT_CALL SymCryptMlDsaRejBoundedPoly (_In_ PCSYMCRYPT_MLDSA_INTERNAL_PARAMS pParams, _In_reads_(cbRejBoundedPolySeed) PCBYTE pbRejBoundedPolySeed, SIZE_T cbRejBoundedPolySeed, _Inout_ PSYMCRYPT_MLDSA_POLYELEMENT peDst)
 
VOID SYMCRYPT_CALL SymCryptMlDsaExpandS (_In_ PCSYMCRYPT_MLDSA_INTERNAL_PARAMS pParams, _In_reads_(cbPrivateVectorSeed) PCBYTE pbPrivateVectorSeed, SIZE_T cbPrivateVectorSeed, _Inout_ PSYMCRYPT_MLDSA_VECTOR pvs1, _Inout_ PSYMCRYPT_MLDSA_VECTOR pvs2)
 
VOID SYMCRYPT_CALL SymCryptMlDsaSampleInBall (_In_ PCSYMCRYPT_MLDSA_INTERNAL_PARAMS pParams, _In_reads_(cbCommitmentHash) PCBYTE pbCommitmentHash, SIZE_T cbCommitmentHash, _Inout_ PSYMCRYPT_MLDSA_POLYELEMENT peChallenge)
 
VOID SYMCRYPT_CALL SymCryptMlDsaExpandMask (_In_ PCSYMCRYPT_MLDSA_INTERNAL_PARAMS pParams, _Inout_ PSYMCRYPT_SHAKE256_STATE pShakeState, _In_reads_(cbPrivateRandom) PCBYTE pbPrivateRandom, SIZE_T cbPrivateRandom, _In_ UINT16 counter, _Inout_ PSYMCRYPT_MLDSA_VECTOR pvMask)
 
VOID SYMCRYPT_CALL SymCryptMlDsaMakeHint (_In_ PCSYMCRYPT_MLDSA_INTERNAL_PARAMS pParams, _Inout_ PSYMCRYPT_MLDSA_VECTOR pvWMinusCs2, _Inout_ PSYMCRYPT_MLDSA_VECTOR pvWMinusCs2PlusCt0, _Inout_ PSYMCRYPT_MLDSA_VECTOR pvDst, _Out_ UINT32 *nBitsSet)
 
VOID SYMCRYPT_CALL SymCryptMlDsaUseHint (_In_ PCSYMCRYPT_MLDSA_INTERNAL_PARAMS pParams, _In_ PCSYMCRYPT_MLDSA_VECTOR pvHint, _Inout_ PSYMCRYPT_MLDSA_VECTOR pvCommitment)
 
VOID SYMCRYPT_CALL SymCryptMlDsaPolyElementEncode (_In_ PCSYMCRYPT_MLDSA_POLYELEMENT peSrc, UINT32 nBitsPerCoefficient, UINT32 signedCoefficientBound, _Out_writes_(nBitsPerCoefficient *(SYMCRYPT_MLWE_POLYNOMIAL_COEFFICIENTS/8)) PBYTE pbDst)
 
SYMCRYPT_ERROR SYMCRYPT_CALL SymCryptMlDsaPolyElementDecode (_In_reads_bytes_(nBitsPerCoefficient *(SYMCRYPT_MLWE_POLYNOMIAL_COEFFICIENTS/8)) PCBYTE pbSrc, UINT32 nBitsPerCoefficient, UINT32 signedCoefficientBound, _Inout_ PSYMCRYPT_MLDSA_POLYELEMENT peDst)
 
VOID SYMCRYPT_CALL SymCryptMlDsaVectorEncode (_In_ PCSYMCRYPT_MLDSA_VECTOR pvSrc, UINT32 nBitsPerCoefficient, UINT32 signedCoefficientBound, _Out_writes_(pvSrc->nElems *nBitsPerCoefficient *(SYMCRYPT_MLWE_POLYNOMIAL_COEFFICIENTS/8)) PBYTE pbDst)
 
SYMCRYPT_ERROR SYMCRYPT_CALL SymCryptMlDsaVectorDecode (_In_reads_bytes_(pvDst->nElems *nBitsPerCoefficient *(SYMCRYPT_MLWE_POLYNOMIAL_COEFFICIENTS/8)) PCBYTE pbSrc, UINT32 nBitsPerCoefficient, UINT32 signedCoefficientBound, _Inout_ PSYMCRYPT_MLDSA_VECTOR pvDst)
 
SYMCRYPT_ERROR SYMCRYPT_CALL SymCryptMlDsaPkEncode (_In_ PCSYMCRYPT_MLDSAKEY pkMlDsakey, _Out_writes_(cbDst) PBYTE pbDst, SIZE_T cbDst)
 
SYMCRYPT_ERROR SYMCRYPT_CALL SymCryptMlDsaPkDecode (_In_reads_(cbSrc) PCBYTE pbSrc, SIZE_T cbSrc, UINT32 flags, _Inout_ PSYMCRYPT_MLDSAKEY pkMlDsakey)
 
SYMCRYPT_ERROR SYMCRYPT_CALL SymCryptMlDsaSkEncode (_In_ PCSYMCRYPT_MLDSAKEY pKey, _Out_writes_(cbDst) PBYTE pbDst, SIZE_T cbDst)
 
SYMCRYPT_ERROR SYMCRYPT_CALL SymCryptMlDsaSkDecode (_In_reads_(cbSrc) PCBYTE pbSrc, SIZE_T cbSrc, UINT32 flags, _Inout_ PSYMCRYPT_MLDSAKEY pKey)
 
VOID SYMCRYPT_CALL SymCryptMlDsaSigEncode (_In_ PCSYMCRYPT_MLDSA_INTERNAL_PARAMS pParams, _In_reads_(cbCommitmentHash) PBYTE pbCommitmentHash, SIZE_T cbCommitmentHash, _In_ PCSYMCRYPT_MLDSA_VECTOR pvResponse, _In_ PCSYMCRYPT_MLDSA_VECTOR pvHint, _Out_writes_(cbDst) PBYTE pbDst, SIZE_T cbDst)
 
SYMCRYPT_ERROR SYMCRYPT_CALL SymCryptMlDsaSigDecode (_In_ PCSYMCRYPT_MLDSA_INTERNAL_PARAMS pParams, _In_reads_(cbSig) PCBYTE pbSig, SIZE_T cbSig, _Out_writes_(cbCommitmentHash) PBYTE pbCommitmentHash, SIZE_T cbCommitmentHash, _Inout_ PSYMCRYPT_MLDSA_VECTOR pvResponse, _Inout_ PSYMCRYPT_MLDSA_VECTOR pvHint)
 
VOID SYMCRYPT_CALL SymCryptMlDsaHintBitPack (_In_ PCSYMCRYPT_MLDSA_INTERNAL_PARAMS pParams, _In_ PCSYMCRYPT_MLDSA_VECTOR pvSrc, _Out_writes_bytes_(pParams->nHintNonZeroCoeffs+pvSrc->nElems) PBYTE pbDst)
 
SYMCRYPT_ERROR SYMCRYPT_CALL SymCryptMlDsaHintBitUnpack (_In_ PCSYMCRYPT_MLDSA_INTERNAL_PARAMS pParams, _In_reads_bytes_(pParams->nHintNonZeroCoeffs+pvDst->nElems) PCBYTE pbSrc, _Inout_ PSYMCRYPT_MLDSA_VECTOR pvDst)
 
SYMCRYPT_ERROR SYMCRYPT_CALL SymCryptMlDsaGetInternalParamsFromParams (SYMCRYPT_MLDSA_PARAMS params, _Out_ PCSYMCRYPT_MLDSA_INTERNAL_PARAMS *pInternalParams)
 
SYMCRYPT_ERROR SYMCRYPT_CALL SymCryptHashMlDsaValidateHashAlgAndGetOid (_In_ PCSYMCRYPT_MLDSA_INTERNAL_PARAMS pParams, SYMCRYPT_PQDSA_HASH_ID hashAlg, SIZE_T cbHash, _Out_ PCSYMCRYPT_OID *ppOid)
 
FORCEINLINE INT32 SYMCRYPT_CALL SymCryptMlDsaModPlusMinus (UINT32 r, UINT32 modulus)
 
FORCEINLINE UINT32 SYMCRYPT_CALL SymCryptMlDsaPolyElementInfinityNorm (_In_ PCSYMCRYPT_MLDSA_POLYELEMENT peSrc)
 
UINT32 SYMCRYPT_CALL SymCryptMlDsaVectorInfinityNorm (_In_ PCSYMCRYPT_MLDSA_VECTOR pvSrc)
 
FORCEINLINE VOID SYMCRYPT_CALL SymCryptMlDsaDecompose (_In_ PCSYMCRYPT_MLDSA_INTERNAL_PARAMS pParams, _In_range_(0, SYMCRYPT_MLDSA_Q - 1) UINT32 r, _Out_opt_ UINT32 *puR1, _Out_opt_ UINT32 *puR0)
 
VOID SYMCRYPT_CALL SymCryptMlDsaVectorHighBits (_In_ PCSYMCRYPT_MLDSA_INTERNAL_PARAMS pParams, _In_ PCSYMCRYPT_MLDSA_VECTOR pvSrc, _Inout_ PSYMCRYPT_MLDSA_VECTOR pvDst)
 
VOID SYMCRYPT_CALL SymCryptMlDsaVectorLowBits (_In_ PCSYMCRYPT_MLDSA_INTERNAL_PARAMS pParams, _In_ PCSYMCRYPT_MLDSA_VECTOR pvSrc, _Inout_ PSYMCRYPT_MLDSA_VECTOR pvDst)
 
VOID SYMCRYPT_CALL SymCryptMlDsaPower2Round (_In_range_(0, SYMCRYPT_MLDSA_Q - 1) UINT32 r, _Out_ UINT32 *puR1, _Out_ UINT32 *puR0)
 
VOID SYMCRYPT_CALL SymCryptMlDsaPolyElementPower2Round (_In_ PCSYMCRYPT_MLDSA_POLYELEMENT peSrc, _Inout_ PSYMCRYPT_MLDSA_POLYELEMENT peDst1, _Inout_ PSYMCRYPT_MLDSA_POLYELEMENT peDst0)
 
VOID SYMCRYPT_CALL SymCryptMlDsaVectorPower2Round (_In_ PCSYMCRYPT_MLDSA_VECTOR pvSrc, _Inout_ PSYMCRYPT_MLDSA_VECTOR pvDst1, _Inout_ PSYMCRYPT_MLDSA_VECTOR pvDst0)
 
FORCEINLINE UINT32 SYMCRYPT_CALL SymCryptMlDsaSignedCoefficientModQ (INT32 coefficient)
 
 _Success_ (return !=NULL) PSYMCRYPT_MLDSA_INTERNAL_COMPUTATION_TEMPORARIES SYMCRYPT_CALL SymCryptMlDsaTemporariesAllocateAndInitialize(_In_ PCSYMCRYPT_MLDSA_INTERNAL_PARAMS pParams
 
VOID SYMCRYPT_CALL SymCryptMlDsaTemporariesFree (_In_ _Post_invalid_ PSYMCRYPT_MLDSA_INTERNAL_COMPUTATION_TEMPORARIES pTemporaries)
 

Variables

 SYMCRYPT_MLDSA_VECTOR
 
* PSYMCRYPT_MLDSA_VECTOR
 
 SYMCRYPT_MLDSA_MATRIX
 
* PSYMCRYPT_MLDSA_MATRIX
 
 SYMCRYPT_MLDSAKEY
 
* PSYMCRYPT_MLDSAKEY
 
 SYMCRYPT_MLDSA_INTERNAL_COMPUTATION_TEMPORARIES
 
* PSYMCRYPT_MLDSA_INTERNAL_COMPUTATION_TEMPORARIES
 
UINT32 cbKey
 
SIZE_T cbBuffer
 
UINT32 UINT8 nElems
 
UINT32 nRowVectors
 
UINT32 UINT32 nColVectors
 
UINT32 UINT32 UINT32 nPolyElements
 
UINT32 UINT32 UINT32 UINT32 cbScratch
 

Macro Definition Documentation

◆ SYMCRYPT_FLAG_MLDSA_EXTERNALMU

#define SYMCRYPT_FLAG_MLDSA_EXTERNALMU   (0x1)

Definition at line 60 of file sc_lib_mldsa.h.

◆ SYMCRYPT_INTERNAL_MLDSA_MATRIX_ELEMENT

#define SYMCRYPT_INTERNAL_MLDSA_MATRIX_ELEMENT (   _row,
  _col,
  _pMatrix 
)    ((PSYMCRYPT_MLDSA_POLYELEMENT) ( ((PBYTE) (_pMatrix)) + SYMCRYPT_INTERNAL_MLDSA_MATRIX_ELEMENT_OFFSET( _row, _col, _pMatrix ) ))

Definition at line 219 of file sc_lib_mldsa.h.

◆ SYMCRYPT_INTERNAL_MLDSA_MATRIX_ELEMENT_OFFSET

#define SYMCRYPT_INTERNAL_MLDSA_MATRIX_ELEMENT_OFFSET (   _row,
  _col,
  _pMatrix 
)    ( sizeof( SYMCRYPT_MLDSA_MATRIX ) + ((_row * (_pMatrix)->nCols + _col) * SYMCRYPT_INTERNAL_MLDSA_SIZEOF_POLYELEMENT) )

Definition at line 218 of file sc_lib_mldsa.h.

◆ SYMCRYPT_INTERNAL_MLDSA_SHORT_COEFFICIENT_ENCODE_DECODE

#define SYMCRYPT_INTERNAL_MLDSA_SHORT_COEFFICIENT_ENCODE_DECODE (   _val,
  _bound 
)    ( _bound - _val )

Definition at line 228 of file sc_lib_mldsa.h.

◆ SYMCRYPT_INTERNAL_MLDSA_SIZEOF_ENCODED_VECTOR

#define SYMCRYPT_INTERNAL_MLDSA_SIZEOF_ENCODED_VECTOR (   _pVector,
  _nBitsPerCoeff 
)    ( ((_pVector)->nElems * SYMCRYPT_MLWE_POLYNOMIAL_COEFFICIENTS * (_nBitsPerCoeff) ) / 8u )

Definition at line 221 of file sc_lib_mldsa.h.

◆ SYMCRYPT_INTERNAL_MLDSA_SIZEOF_KEY

#define SYMCRYPT_INTERNAL_MLDSA_SIZEOF_KEY (   _nRows,
  _nCols 
)
Value:
( sizeof( SYMCRYPT_MLDSAKEY) + \
SYMCRYPT_INTERNAL_MLDSA_SIZEOF_VECTOR( _nCols ) + \
#define SYMCRYPT_INTERNAL_MLDSA_SIZEOF_VECTOR(_nElems)
Definition: sc_lib_mldsa.h:209
SYMCRYPT_MLDSAKEY
Definition: sc_lib_mldsa.h:173
#define SYMCRYPT_INTERNAL_MLDSA_SIZEOF_MATRIX(_nRows, _nCols)
Definition: sc_lib_mldsa.h:210

Definition at line 211 of file sc_lib_mldsa.h.

◆ SYMCRYPT_INTERNAL_MLDSA_SIZEOF_MATRIX

#define SYMCRYPT_INTERNAL_MLDSA_SIZEOF_MATRIX (   _nRows,
  _nCols 
)    ( sizeof( SYMCRYPT_MLDSA_MATRIX ) + ( _nRows * _nCols * sizeof( SYMCRYPT_MLDSA_POLYELEMENT ) ) )

Definition at line 210 of file sc_lib_mldsa.h.

◆ SYMCRYPT_INTERNAL_MLDSA_SIZEOF_POLYELEMENT

#define SYMCRYPT_INTERNAL_MLDSA_SIZEOF_POLYELEMENT   ( sizeof( SYMCRYPT_MLDSA_POLYELEMENT ) )

Definition at line 208 of file sc_lib_mldsa.h.

◆ SYMCRYPT_INTERNAL_MLDSA_SIZEOF_VECTOR

#define SYMCRYPT_INTERNAL_MLDSA_SIZEOF_VECTOR (   _nElems)    ( sizeof( SYMCRYPT_MLDSA_VECTOR ) + ( _nElems * sizeof( SYMCRYPT_MLDSA_POLYELEMENT ) ) )

Definition at line 209 of file sc_lib_mldsa.h.

◆ SYMCRYPT_INTERNAL_MLDSA_VECTOR_ELEMENT

#define SYMCRYPT_INTERNAL_MLDSA_VECTOR_ELEMENT (   _row,
  _pVector 
)    ((PSYMCRYPT_MLDSA_POLYELEMENT) ( ((PBYTE) (_pVector)) + SYMCRYPT_INTERNAL_MLDSA_VECTOR_ELEMENT_OFFSET( _row ) ))

Definition at line 217 of file sc_lib_mldsa.h.

◆ SYMCRYPT_INTERNAL_MLDSA_VECTOR_ELEMENT_OFFSET

#define SYMCRYPT_INTERNAL_MLDSA_VECTOR_ELEMENT_OFFSET (   _row)    ( sizeof( SYMCRYPT_MLDSA_VECTOR ) + (_row * SYMCRYPT_INTERNAL_MLDSA_SIZEOF_POLYELEMENT) )

Definition at line 216 of file sc_lib_mldsa.h.

◆ SYMCRYPT_MLDSA_MATRIX_MAX_NCOLS

#define SYMCRYPT_MLDSA_MATRIX_MAX_NCOLS   (7)

Definition at line 71 of file sc_lib_mldsa.h.

◆ SYMCRYPT_MLDSA_MATRIX_MAX_NROWS

#define SYMCRYPT_MLDSA_MATRIX_MAX_NROWS   (8)

Definition at line 70 of file sc_lib_mldsa.h.

◆ SYMCRYPT_MLDSA_PRIVATE_SIGNING_SEED_SIZE

#define SYMCRYPT_MLDSA_PRIVATE_SIGNING_SEED_SIZE   (32)

Definition at line 38 of file sc_lib_mldsa.h.

◆ SYMCRYPT_MLDSA_PRIVATE_VECTOR_SEED_SIZE

#define SYMCRYPT_MLDSA_PRIVATE_VECTOR_SEED_SIZE   (64)

Definition at line 43 of file sc_lib_mldsa.h.

◆ SYMCRYPT_MLDSA_PUBLIC_KEY_HASH_SIZE

#define SYMCRYPT_MLDSA_PUBLIC_KEY_HASH_SIZE   SYMCRYPT_SHAKE256_RESULT_SIZE

Definition at line 33 of file sc_lib_mldsa.h.

◆ SYMCRYPT_MLDSA_PUBLIC_SEED_SIZE

#define SYMCRYPT_MLDSA_PUBLIC_SEED_SIZE   (32)

Definition at line 28 of file sc_lib_mldsa.h.

◆ SYMCRYPT_MLDSA_Q

#define SYMCRYPT_MLDSA_Q   (8380417)

Definition at line 13 of file sc_lib_mldsa.h.

◆ SYMCRYPT_MLDSA_R_LOG2

#define SYMCRYPT_MLDSA_R_LOG2   (32)

Definition at line 18 of file sc_lib_mldsa.h.

◆ SYMCRYPT_MLDSA_ROOT_SEED_SIZE

#define SYMCRYPT_MLDSA_ROOT_SEED_SIZE   (32)

Definition at line 23 of file sc_lib_mldsa.h.

◆ SYMCRYPT_MLDSA_SIGNING_RANDOM_SIZE

#define SYMCRYPT_MLDSA_SIGNING_RANDOM_SIZE   (32)

Definition at line 48 of file sc_lib_mldsa.h.

◆ SYMCRYPT_MLDSA_SUPPORTED_HASH_OID_SIZE

#define SYMCRYPT_MLDSA_SUPPORTED_HASH_OID_SIZE   (11)

Definition at line 55 of file sc_lib_mldsa.h.

◆ SYMCRYPT_MLDSA_VECTOR_MAX_LENGTH

#define SYMCRYPT_MLDSA_VECTOR_MAX_LENGTH   (8)

Definition at line 69 of file sc_lib_mldsa.h.

Typedef Documentation

◆ PCSYMCRYPT_MLDSA_INTERNAL_PARAMS

◆ PCSYMCRYPT_MLDSA_MATRIX

◆ PCSYMCRYPT_MLDSA_POLYELEMENT

◆ PCSYMCRYPT_MLDSA_VECTOR

◆ PCSYMCRYPT_MLDSAKEY

Definition at line 174 of file sc_lib_mldsa.h.

◆ PSYMCRYPT_MLDSA_INTERNAL_PARAMS

◆ PSYMCRYPT_MLDSA_POLYELEMENT

◆ SYMCRYPT_MLDSA_INTERNAL_PARAMS

◆ SYMCRYPT_MLDSA_POLYELEMENT

Function Documentation

◆ _Out_writes_bytes_()

_Out_writes_bytes_ ( cbKey  )

◆ _Struct_size_bytes_()

typedef _Struct_size_bytes_ ( cbTotalSize  )

Definition at line 73 of file sc_lib_mldsa.h.

73 {
75 UINT8 nElems; // Number of PolyElements in the vector
76 UINT32 cbTotalSize; // Total size of the Vector
77
78 // Followed by:
79 // nElems PolyElements
unsigned char UINT8
Definition: actypes.h:128
#define _Field_range_(l, h)
Definition: no_sal2.h:380
SYMCRYPT_MLDSA_VECTOR
Definition: sc_lib_mldsa.h:80
#define SYMCRYPT_MLDSA_VECTOR_MAX_LENGTH
Definition: sc_lib_mldsa.h:69
UINT32 UINT8 nElems
Definition: sc_lib_mldsa.h:495
* PSYMCRYPT_MLDSA_VECTOR
Definition: sc_lib_mldsa.h:80
UINT32 cbTotalSize
uint32_t UINT32
Definition: typedefs.h:59

◆ _Success_() [1/2]

_Success_ ( return !  = NULL)

Definition at line 1028 of file fsctrl.c.

3189{
3191
3192 PVPB Vpb = Vcb->Vpb;
3193 PVPB OldVpb;
3194
3195 BOOLEAN Remount = FALSE;
3196
3197 PAGED_CODE();
3198
3199 UNREFERENCED_PARAMETER( IrpContext );
3200
3201 //
3202 // Check whether we are looking for a device only Mvcb.
3203 //
3204
3205 for (Link = CdData.VcbQueue.Flink;
3206 Link != &CdData.VcbQueue;
3207 Link = Link->Flink) {
3208
3209 *OldVcb = CONTAINING_RECORD( Link, VCB, VcbLinks );
3210
3211 //
3212 // Skip ourselves.
3213 //
3214
3215 if (Vcb == *OldVcb) { continue; }
3216
3217 //
3218 // Look at the Vpb and state of the previous Vcb.
3219 //
3220
3221 OldVpb = (*OldVcb)->Vpb;
3222
3223 if ((OldVpb != Vpb) &&
3224 (OldVpb->RealDevice == Vpb->RealDevice) &&
3225 ((*OldVcb)->VcbCondition == VcbNotMounted)) {
3226
3227 //
3228 // If the current disk is a raw disk then it can match a previous music or
3229 // raw disk.
3230 //
3231
3232 if (FlagOn( Vcb->VcbState, VCB_STATE_AUDIO_DISK)) {
3233
3234 if (FlagOn( (*OldVcb)->VcbState, VCB_STATE_AUDIO_DISK )) {
3235
3236 //
3237 // If we have both TOC then fail the remount if the lengths
3238 // are different or they don't match.
3239 //
3240
3241 if ((Vcb->TocLength != (*OldVcb)->TocLength) ||
3242 ((Vcb->TocLength != 0) &&
3243 !RtlEqualMemory( Vcb->CdromToc,
3244 (*OldVcb)->CdromToc,
3245 Vcb->TocLength ))) {
3246
3247 continue;
3248 }
3249
3250 Remount = TRUE;
3251 break;
3252 }
3253
3254 //
3255 // The current disk is not a raw disk. Go ahead and compare
3256 // serial numbers, volume label and TOC.
3257 //
3258
3259 }
3260 else if ((OldVpb->SerialNumber == Vpb->SerialNumber) &&
3261 (Vcb->TocLength == (*OldVcb)->TocLength) &&
3262 ((Vcb->TocLength == 0) || RtlEqualMemory( Vcb->CdromToc,
3263 (*OldVcb)->CdromToc,
3264 Vcb->TocLength )) &&
3265 (Vpb->VolumeLabelLength == OldVpb->VolumeLabelLength) &&
3266 (RtlEqualMemory( OldVpb->VolumeLabel,
3267 Vpb->VolumeLabel,
3268 Vpb->VolumeLabelLength ))) {
3269 //
3270 // Remember the old Vcb. Then set the return value to
3271 // TRUE and break.
3272 //
3273
3274 Remount = TRUE;
3275 break;
3276 }
3277 }
3278 }
3279
3280 return Remount;
3281}
#define PAGED_CODE()
unsigned char BOOLEAN
Definition: actypes.h:127
CD_DATA CdData
Definition: cddata.c:42
#define VCB_STATE_AUDIO_DISK
Definition: cdstruc.h:712
@ VcbNotMounted
Definition: cdstruc.h:490
#define TRUE
Definition: types.h:120
#define FALSE
Definition: types.h:117
#define FlagOn(_F, _SF)
Definition: ext2fs.h:179
IN OUT PVCB IN PDEVICE_OBJECT IN PVPB Vpb
Definition: fatprocs.h:1676
#define RtlEqualMemory(dst, src, len)
Definition: kdvm.h:18
#define UNREFERENCED_PARAMETER(P)
Definition: ntbasedef.h:329
#define Vcb
Definition: cdprocs.h:1415
LIST_ENTRY VcbQueue
Definition: cdstruc.h:334
Definition: typedefs.h:120
struct _LIST_ENTRY * Flink
Definition: typedefs.h:121
Definition: cdstruc.h:498
Definition: iotypes.h:189
WCHAR VolumeLabel[MAXIMUM_VOLUME_LABEL_LENGTH/sizeof(WCHAR)]
Definition: iotypes.h:198
USHORT VolumeLabelLength
Definition: iotypes.h:193
ULONG SerialNumber
Definition: iotypes.h:196
struct _DEVICE_OBJECT * RealDevice
Definition: iotypes.h:195
#define CONTAINING_RECORD(address, type, field)
Definition: typedefs.h:260
static int Link(const char **args)
Definition: vfdcmd.c:2414

◆ _Success_() [2/2]

_Success_ ( TRUE  )

◆ SymCryptHashMlDsaValidateHashAlgAndGetOid()

SYMCRYPT_ERROR SYMCRYPT_CALL SymCryptHashMlDsaValidateHashAlgAndGetOid ( _In_ PCSYMCRYPT_MLDSA_INTERNAL_PARAMS  pParams,
SYMCRYPT_PQDSA_HASH_ID  hashAlg,
SIZE_T  cbHash,
_Out_ PCSYMCRYPT_OID *  ppOid 
)

◆ SymCryptMlDsaCoeffFromHalfByte()

FORCEINLINE INT8 SYMCRYPT_CALL SymCryptMlDsaCoeffFromHalfByte ( _In_ PCSYMCRYPT_MLDSA_INTERNAL_PARAMS  pParams,
_In_range_(0, 15) UINT8  halfByte 
)

◆ SymCryptMlDsaDecompose()

FORCEINLINE VOID SYMCRYPT_CALL SymCryptMlDsaDecompose ( _In_ PCSYMCRYPT_MLDSA_INTERNAL_PARAMS  pParams,
_In_range_(0, SYMCRYPT_MLDSA_Q - 1) UINT32  r,
_Out_opt_ UINT32 *  puR1,
_Out_opt_ UINT32 *  puR0 
)

◆ SymCryptMlDsaExpandA()

VOID SYMCRYPT_CALL SymCryptMlDsaExpandA ( _In_reads_(cbPublicSeed) PCBYTE  pbPublicSeed,
SIZE_T  cbPublicSeed,
_Inout_ PSYMCRYPT_MLDSA_MATRIX  pmA 
)

◆ SymCryptMlDsaExpandMask()

VOID SYMCRYPT_CALL SymCryptMlDsaExpandMask ( _In_ PCSYMCRYPT_MLDSA_INTERNAL_PARAMS  pParams,
_Inout_ PSYMCRYPT_SHAKE256_STATE  pShakeState,
_In_reads_(cbPrivateRandom) PCBYTE  pbPrivateRandom,
SIZE_T  cbPrivateRandom,
_In_ UINT16  counter,
_Inout_ PSYMCRYPT_MLDSA_VECTOR  pvMask 
)

◆ SymCryptMlDsaExpandS()

VOID SYMCRYPT_CALL SymCryptMlDsaExpandS ( _In_ PCSYMCRYPT_MLDSA_INTERNAL_PARAMS  pParams,
_In_reads_(cbPrivateVectorSeed) PCBYTE  pbPrivateVectorSeed,
SIZE_T  cbPrivateVectorSeed,
_Inout_ PSYMCRYPT_MLDSA_VECTOR  pvs1,
_Inout_ PSYMCRYPT_MLDSA_VECTOR  pvs2 
)

◆ SymCryptMlDsaGetInternalParamsFromParams()

SYMCRYPT_ERROR SYMCRYPT_CALL SymCryptMlDsaGetInternalParamsFromParams ( SYMCRYPT_MLDSA_PARAMS  params,
_Out_ PCSYMCRYPT_MLDSA_INTERNAL_PARAMS *  pInternalParams 
)

◆ SymCryptMlDsaHintBitPack()

VOID SYMCRYPT_CALL SymCryptMlDsaHintBitPack ( _In_ PCSYMCRYPT_MLDSA_INTERNAL_PARAMS  pParams,
_In_ PCSYMCRYPT_MLDSA_VECTOR  pvSrc,
_Out_writes_bytes_(pParams->nHintNonZeroCoeffs+pvSrc->nElems) PBYTE  pbDst 
)

◆ SymCryptMlDsaHintBitUnpack()

SYMCRYPT_ERROR SYMCRYPT_CALL SymCryptMlDsaHintBitUnpack ( _In_ PCSYMCRYPT_MLDSA_INTERNAL_PARAMS  pParams,
_In_reads_bytes_(pParams->nHintNonZeroCoeffs+pvDst->nElems) PCBYTE  pbSrc,
_Inout_ PSYMCRYPT_MLDSA_VECTOR  pvDst 
)

◆ SymCryptMlDsakeyComputeT()

◆ SymCryptMlDsaKeyGenerateEx()

SYMCRYPT_ERROR SYMCRYPT_CALL SymCryptMlDsaKeyGenerateEx ( _Inout_ PSYMCRYPT_MLDSAKEY  pkMlDsakey,
_In_reads_(cbRootSeed) PCBYTE  pbRootSeed,
SIZE_T  cbRootSeed,
UINT32  flags 
)

◆ SymCryptMlDsaMakeHint()

VOID SYMCRYPT_CALL SymCryptMlDsaMakeHint ( _In_ PCSYMCRYPT_MLDSA_INTERNAL_PARAMS  pParams,
_Inout_ PSYMCRYPT_MLDSA_VECTOR  pvWMinusCs2,
_Inout_ PSYMCRYPT_MLDSA_VECTOR  pvWMinusCs2PlusCt0,
_Inout_ PSYMCRYPT_MLDSA_VECTOR  pvDst,
_Out_ UINT32 *  nBitsSet 
)

◆ SymCryptMlDsaMatrixCreate()

PSYMCRYPT_MLDSA_MATRIX SYMCRYPT_CALL SymCryptMlDsaMatrixCreate ( _Out_writes_(cbBuffer) PBYTE  pbBuffer,
UINT32  cbBuffer,
UINT8  nRows,
UINT8  nCols 
)

◆ SymCryptMlDsaMatrixVectorMontMul()

◆ SymCryptMlDsaModAdd()

UINT32 SYMCRYPT_CALL SymCryptMlDsaModAdd ( UINT32  a,
UINT32  b 
)

Definition at line 444 of file mldsa_primitives.c.

445{
448
449 UINT32 res = a + b;
450 UINT32 subtractionMask = SYMCRYPT_MASK32_LT( SYMCRYPT_MLDSA_Q - 1, res );
451
452 // If res >= Q, subtract Q
453 res = res - (SYMCRYPT_MLDSA_Q & subtractionMask);
454
455 return res;
456}
GLuint res
Definition: glext.h:9613
GLboolean GLboolean GLboolean b
Definition: glext.h:6204
GLboolean GLboolean GLboolean GLboolean a
Definition: glext.h:6204
#define b
Definition: ke_i.h:79
#define SYMCRYPT_MLDSA_Q
Definition: sc_lib_mldsa.h:13
#define SYMCRYPT_ASSERT(_x)
Definition: symcrypt.h:10807
#define SYMCRYPT_MASK32_LT(_a, _b)

Referenced by SymCryptMlDsaPolyElementAdd(), SymCryptMlDsaPolyElementINTT(), and SymCryptMlDsaPolyElementNTT().

◆ SymCryptMlDsaModPlusMinus()

FORCEINLINE INT32 SYMCRYPT_CALL SymCryptMlDsaModPlusMinus ( UINT32  r,
UINT32  modulus 
)

Definition at line 1850 of file mldsa_primitives.c.

1851{
1853
1854 // In most cases this function is used with even moduli, e.g. with Power2Round.
1855 // However, it's okay if the modulus is odd. FIPS 204 specifies that the output is in the range
1856 // (-ceil(modulus/2), floor(modulus/2) ]
1857 // = ( -((modulus + 1) // 2), modulus // 2 ]
1858 // = [ -modulus // 2, modulus // 2 ]
1859 const INT32 halfModulus = modulus >> 1;
1860
1861 // Mask for conditional subtraction: 0 if r <= (modulus/2), 0xFFFFFFFF otherwise
1862 UINT32 subtractionMask = SYMCRYPT_MASK32_LT( halfModulus, r );
1863
1864 INT32 r0 = (INT32) r - (modulus & subtractionMask);
1865 SYMCRYPT_ASSERT( r0 > -halfModulus && r0 <= halfModulus);
1866
1867 return r0;
1868}
GLdouble GLdouble GLdouble r
Definition: gl.h:2055
int32_t INT32
Definition: typedefs.h:58

Referenced by SymCryptMlDsaPolyElementInfinityNorm(), and SymCryptMlDsaPower2Round().

◆ SymCryptMlDsaModSub()

UINT32 SYMCRYPT_CALL SymCryptMlDsaModSub ( UINT32  a,
UINT32  b 
)

Definition at line 460 of file mldsa_primitives.c.

461{
464
465 UINT32 additionMask = SYMCRYPT_MASK32_LT( a, b );
466
467 // If a < b, result is negative, so we add Q
468 return (INT32) a - (INT32) b + (SYMCRYPT_MLDSA_Q & additionMask);
469}

Referenced by SymCryptMlDsaPolyElementINTT(), SymCryptMlDsaPolyElementNTT(), and SymCryptMlDsaPolyElementSub().

◆ SymCryptMlDsaMontMul()

UINT32 SYMCRYPT_CALL SymCryptMlDsaMontMul ( UINT32  a,
UINT32  b 
)

Definition at line 434 of file mldsa_primitives.c.

435{
438
439 return SymCryptMlDsaMontReduce((UINT64) a * b);
440}
COMPILER_DEPENDENT_UINT64 UINT64
Definition: actypes.h:131
UINT32 SYMCRYPT_CALL SymCryptMlDsaMontReduce(UINT64 a)

Referenced by SymCryptMlDsaPolyElementINTT(), SymCryptMlDsaPolyElementMontMul(), SymCryptMlDsaPolyElementMulR(), SymCryptMlDsaPolyElementNTT(), and SymCryptMlDsaVerifyEx().

◆ SymCryptMlDsaMontReduce()

UINT32 SYMCRYPT_CALL SymCryptMlDsaMontReduce ( UINT64  a)

Definition at line 418 of file mldsa_primitives.c.

419{
422
424 UINT32 additionMask = SYMCRYPT_MASK32_LT( res, 0 );
425
426 res = res + (SYMCRYPT_MLDSA_Q & additionMask);
428
429 return (UINT32) res;
430}
GLdouble GLdouble t
Definition: gl.h:2047
const GLfloat * m
Definition: glext.h:10848
#define SYMCRYPT_MLDSA_Q_INV
#define SYMCRYPT_MLDSA_R_LOG2
Definition: sc_lib_mldsa.h:18

Referenced by SymCryptMlDsaMontMul().

◆ SymCryptMlDsaPkDecode()

SYMCRYPT_ERROR SYMCRYPT_CALL SymCryptMlDsaPkDecode ( _In_reads_(cbSrc) PCBYTE  pbSrc,
SIZE_T  cbSrc,
UINT32  flags,
_Inout_ PSYMCRYPT_MLDSAKEY  pkMlDsakey 
)

◆ SymCryptMlDsaPkEncode()

SYMCRYPT_ERROR SYMCRYPT_CALL SymCryptMlDsaPkEncode ( _In_ PCSYMCRYPT_MLDSAKEY  pkMlDsakey,
_Out_writes_(cbDst) PBYTE  pbDst,
SIZE_T  cbDst 
)

◆ SymCryptMlDsaPolyElementAdd()

◆ SymCryptMlDsaPolyElementDecode()

SYMCRYPT_ERROR SYMCRYPT_CALL SymCryptMlDsaPolyElementDecode ( _In_reads_bytes_(nBitsPerCoefficient *(SYMCRYPT_MLWE_POLYNOMIAL_COEFFICIENTS/8)) PCBYTE  pbSrc,
UINT32  nBitsPerCoefficient,
UINT32  signedCoefficientBound,
_Inout_ PSYMCRYPT_MLDSA_POLYELEMENT  peDst 
)

◆ SymCryptMlDsaPolyElementEncode()

VOID SYMCRYPT_CALL SymCryptMlDsaPolyElementEncode ( _In_ PCSYMCRYPT_MLDSA_POLYELEMENT  peSrc,
UINT32  nBitsPerCoefficient,
UINT32  signedCoefficientBound,
_Out_writes_(nBitsPerCoefficient *(SYMCRYPT_MLWE_POLYNOMIAL_COEFFICIENTS/8)) PBYTE  pbDst 
)

◆ SymCryptMlDsaPolyElementInfinityNorm()

FORCEINLINE UINT32 SYMCRYPT_CALL SymCryptMlDsaPolyElementInfinityNorm ( _In_ PCSYMCRYPT_MLDSA_POLYELEMENT  peSrc)

◆ SymCryptMlDsaPolyElementINTT()

VOID SYMCRYPT_CALL SymCryptMlDsaPolyElementINTT ( _Inout_ PSYMCRYPT_MLDSA_POLYELEMENT  peSrc)

◆ SymCryptMlDsaPolyElementMontMul()

◆ SymCryptMlDsaPolyElementMulR()

VOID SYMCRYPT_CALL SymCryptMlDsaPolyElementMulR ( _Inout_ PSYMCRYPT_MLDSA_POLYELEMENT  peSrc)

◆ SymCryptMlDsaPolyElementNTT()

VOID SYMCRYPT_CALL SymCryptMlDsaPolyElementNTT ( _Inout_ PSYMCRYPT_MLDSA_POLYELEMENT  peSrc)

◆ SymCryptMlDsaPolyElementPower2Round()

VOID SYMCRYPT_CALL SymCryptMlDsaPolyElementPower2Round ( _In_ PCSYMCRYPT_MLDSA_POLYELEMENT  peSrc,
_Inout_ PSYMCRYPT_MLDSA_POLYELEMENT  peDst1,
_Inout_ PSYMCRYPT_MLDSA_POLYELEMENT  peDst0 
)

◆ SymCryptMlDsaPolyElementSetZero()

VOID SYMCRYPT_CALL SymCryptMlDsaPolyElementSetZero ( _Inout_ PSYMCRYPT_MLDSA_POLYELEMENT  peDst)

◆ SymCryptMlDsaPolyElementSub()

◆ SymCryptMlDsaPower2Round()

VOID SYMCRYPT_CALL SymCryptMlDsaPower2Round ( _In_range_(0, SYMCRYPT_MLDSA_Q - 1) UINT32  r,
_Out_ UINT32 *  puR1,
_Out_ UINT32 *  puR0 
)

◆ SymCryptMlDsaRejBoundedPoly()

VOID SYMCRYPT_CALL SymCryptMlDsaRejBoundedPoly ( _In_ PCSYMCRYPT_MLDSA_INTERNAL_PARAMS  pParams,
_In_reads_(cbRejBoundedPolySeed) PCBYTE  pbRejBoundedPolySeed,
SIZE_T  cbRejBoundedPolySeed,
_Inout_ PSYMCRYPT_MLDSA_POLYELEMENT  peDst 
)

◆ SymCryptMlDsaRejNttPoly()

VOID SYMCRYPT_CALL SymCryptMlDsaRejNttPoly ( _In_reads_(cbRejNttPolySeed) PCBYTE  pbRejNttPolySeed,
SIZE_T  cbRejNttPolySeed,
_Inout_ PSYMCRYPT_MLDSA_POLYELEMENT  peDst 
)

◆ SymCryptMlDsaSampleInBall()

VOID SYMCRYPT_CALL SymCryptMlDsaSampleInBall ( _In_ PCSYMCRYPT_MLDSA_INTERNAL_PARAMS  pParams,
_In_reads_(cbCommitmentHash) PCBYTE  pbCommitmentHash,
SIZE_T  cbCommitmentHash,
_Inout_ PSYMCRYPT_MLDSA_POLYELEMENT  peChallenge 
)

◆ SymCryptMlDsaSigDecode()

SYMCRYPT_ERROR SYMCRYPT_CALL SymCryptMlDsaSigDecode ( _In_ PCSYMCRYPT_MLDSA_INTERNAL_PARAMS  pParams,
_In_reads_(cbSig) PCBYTE  pbSig,
SIZE_T  cbSig,
_Out_writes_(cbCommitmentHash) PBYTE  pbCommitmentHash,
SIZE_T  cbCommitmentHash,
_Inout_ PSYMCRYPT_MLDSA_VECTOR  pvResponse,
_Inout_ PSYMCRYPT_MLDSA_VECTOR  pvHint 
)

◆ SymCryptMlDsaSigEncode()

VOID SYMCRYPT_CALL SymCryptMlDsaSigEncode ( _In_ PCSYMCRYPT_MLDSA_INTERNAL_PARAMS  pParams,
_In_reads_(cbCommitmentHash) PBYTE  pbCommitmentHash,
SIZE_T  cbCommitmentHash,
_In_ PCSYMCRYPT_MLDSA_VECTOR  pvResponse,
_In_ PCSYMCRYPT_MLDSA_VECTOR  pvHint,
_Out_writes_(cbDst) PBYTE  pbDst,
SIZE_T  cbDst 
)

◆ SymCryptMlDsaSignedCoefficientModQ()

FORCEINLINE UINT32 SYMCRYPT_CALL SymCryptMlDsaSignedCoefficientModQ ( INT32  coefficient)

Definition at line 2080 of file mldsa_primitives.c.

2081{
2083
2084 UINT32 result;
2085 UINT32 negativeMask = SYMCRYPT_MASK32_LT( coefficient, 0 );
2086
2087 result = coefficient + (SYMCRYPT_MLDSA_Q & negativeMask);
2089
2090 return result;
2091}
BYTE coefficient[512/16]
Definition: bcrypt.c:2463
GLuint64EXT * result
Definition: glext.h:11304

Referenced by SymCryptMlDsaDecompose(), SymCryptMlDsaPolyElementDecode(), SymCryptMlDsaPower2Round(), and SymCryptMlDsaRejBoundedPoly().

◆ SymCryptMlDsaSignEx()

SYMCRYPT_ERROR SYMCRYPT_CALL SymCryptMlDsaSignEx ( _In_ PCSYMCRYPT_MLDSAKEY  pkMlDsakey,
_In_reads_(cbInput) PCBYTE  pbInput,
SIZE_T  cbInput,
_In_reads_opt_(cbContext) PCBYTE  pbContext,
_In_range_(0, SYMCRYPT_MLDSA_CONTEXT_MAX_LENGTH) SIZE_T  cbContext,
_In_reads_opt_(cbHashOid) PCBYTE  pbHashOid,
SIZE_T  cbHashOid,
_In_reads_(cbRandom) PCBYTE  pbRandom,
SIZE_T  cbRandom,
UINT32  flags,
_Out_writes_(cbSignature) PBYTE  pbSignature,
SIZE_T  cbSignature 
)

◆ SymCryptMlDsaSkDecode()

SYMCRYPT_ERROR SYMCRYPT_CALL SymCryptMlDsaSkDecode ( _In_reads_(cbSrc) PCBYTE  pbSrc,
SIZE_T  cbSrc,
UINT32  flags,
_Inout_ PSYMCRYPT_MLDSAKEY  pKey 
)

◆ SymCryptMlDsaSkEncode()

SYMCRYPT_ERROR SYMCRYPT_CALL SymCryptMlDsaSkEncode ( _In_ PCSYMCRYPT_MLDSAKEY  pKey,
_Out_writes_(cbDst) PBYTE  pbDst,
SIZE_T  cbDst 
)

◆ SymCryptMlDsaTemporariesFree()

◆ SymCryptMlDsaUseHint()

◆ SymCryptMlDsaVectorAdd()

◆ SymCryptMlDsaVectorCopy()

VOID SYMCRYPT_CALL SymCryptMlDsaVectorCopy ( _In_ PCSYMCRYPT_MLDSA_VECTOR  pvSrc,
_Inout_ PSYMCRYPT_MLDSA_VECTOR  pvDst 
)

◆ SymCryptMlDsaVectorDecode()

SYMCRYPT_ERROR SYMCRYPT_CALL SymCryptMlDsaVectorDecode ( _In_reads_bytes_(pvDst->nElems *nBitsPerCoefficient *(SYMCRYPT_MLWE_POLYNOMIAL_COEFFICIENTS/8)) PCBYTE  pbSrc,
UINT32  nBitsPerCoefficient,
UINT32  signedCoefficientBound,
_Inout_ PSYMCRYPT_MLDSA_VECTOR  pvDst 
)

Definition at line 2274 of file mldsa_primitives.c.

2280{
2281 SYMCRYPT_ERROR scError = SYMCRYPT_NO_ERROR;
2282 PCBYTE pbCurr = pbSrc;
2283 const SIZE_T cbEncodedPoly = nBitsPerCoefficient * ( SYMCRYPT_MLWE_POLYNOMIAL_COEFFICIENTS / 8 );
2284
2285 for( UINT32 i = 0; i < pvDst->nElems; ++i )
2286 {
2288
2290 pbCurr,
2291 nBitsPerCoefficient,
2292 signedCoefficientBound,
2293 peElement );
2294 if( scError != SYMCRYPT_NO_ERROR )
2295 {
2296 // Side-channel safety: the validity of an imported key is public information.
2297 // See comment in SymCryptMlDsaPolyElementDecode.
2298 goto cleanup;
2299 }
2300
2301 pbCurr += cbEncodedPoly;
2302 }
2303
2304 SYMCRYPT_ASSERT( pbCurr == pbSrc + ( pvDst->nElems * cbEncodedPoly ) );
2305
2306cleanup:
2307 return scError;
2308}
static void cleanup(void)
Definition: main.c:1335
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
Definition: glfuncs.h:248
_Use_decl_annotations_ SYMCRYPT_ERROR SYMCRYPT_CALL SymCryptMlDsaPolyElementDecode(PCBYTE pbSrc, UINT32 nBitsPerCoefficient, UINT32 signedCoefficientBound, PSYMCRYPT_MLDSA_POLYELEMENT peDst)
#define SYMCRYPT_MLWE_POLYNOMIAL_COEFFICIENTS
Definition: sc_lib.h:4347
#define SYMCRYPT_INTERNAL_MLDSA_VECTOR_ELEMENT(_row, _pVector)
Definition: sc_lib_mldsa.h:217
SYMCRYPT_ERROR
Definition: symcrypt.h:227
PCBYTE pbSrc
const BYTE * PCBYTE
ULONG_PTR SIZE_T
Definition: typedefs.h:80

Referenced by SymCryptMlDsaSigDecode(), and SymCryptMlDsaSkDecode().

◆ SymCryptMlDsaVectorEncode()

VOID SYMCRYPT_CALL SymCryptMlDsaVectorEncode ( _In_ PCSYMCRYPT_MLDSA_VECTOR  pvSrc,
UINT32  nBitsPerCoefficient,
UINT32  signedCoefficientBound,
_Out_writes_(pvSrc->nElems *nBitsPerCoefficient *(SYMCRYPT_MLWE_POLYNOMIAL_COEFFICIENTS/8)) PBYTE  pbDst 
)

◆ SymCryptMlDsaVectorHighBits()

◆ SymCryptMlDsaVectorInfinityNorm()

UINT32 SYMCRYPT_CALL SymCryptMlDsaVectorInfinityNorm ( _In_ PCSYMCRYPT_MLDSA_VECTOR  pvSrc)

◆ SymCryptMlDsaVectorINTT()

VOID SYMCRYPT_CALL SymCryptMlDsaVectorINTT ( _Inout_ PSYMCRYPT_MLDSA_VECTOR  pvSrc)

Definition at line 759 of file mldsa_primitives.c.

761{
762 for( UINT32 i = 0; i < pvSrc->nElems; ++i )
763 {
765 }
766}
_Use_decl_annotations_ VOID SYMCRYPT_CALL SymCryptMlDsaPolyElementINTT(PSYMCRYPT_MLDSA_POLYELEMENT peSrc)

Referenced by SymCryptMlDsakeyComputeT(), SymCryptMlDsaPkEncode(), SymCryptMlDsaSignEx(), SymCryptMlDsaSkEncode(), and SymCryptMlDsaVerifyEx().

◆ SymCryptMlDsaVectorLowBits()

◆ SymCryptMlDsaVectorNTT()

VOID SYMCRYPT_CALL SymCryptMlDsaVectorNTT ( _Inout_ PSYMCRYPT_MLDSA_VECTOR  pvSrc)

◆ SymCryptMlDsaVectorPolyElementMontMul()

VOID SYMCRYPT_CALL SymCryptMlDsaVectorPolyElementMontMul ( _In_ PCSYMCRYPT_MLDSA_VECTOR  pvSrc1,
_In_ PCSYMCRYPT_MLDSA_POLYELEMENT  peSrc2,
_Inout_ PSYMCRYPT_MLDSA_VECTOR  pvDst 
)

◆ SymCryptMlDsaVectorPower2Round()

VOID SYMCRYPT_CALL SymCryptMlDsaVectorPower2Round ( _In_ PCSYMCRYPT_MLDSA_VECTOR  pvSrc,
_Inout_ PSYMCRYPT_MLDSA_VECTOR  pvDst1,
_Inout_ PSYMCRYPT_MLDSA_VECTOR  pvDst0 
)

◆ SymCryptMlDsaVectorSetZero()

VOID SYMCRYPT_CALL SymCryptMlDsaVectorSetZero ( _Inout_ PSYMCRYPT_MLDSA_VECTOR  pvDst)

◆ SymCryptMlDsaVectorSub()

◆ SymCryptMlDsaVerifyEx()

SYMCRYPT_ERROR SYMCRYPT_CALL SymCryptMlDsaVerifyEx ( _In_ PCSYMCRYPT_MLDSAKEY  pkMlDsakey,
_In_reads_(cbInput) PCBYTE  pbInput,
SIZE_T  cbInput,
_In_reads_opt_(cbContext) PCBYTE  pbContext,
_In_range_(0, SYMCRYPT_MLDSA_CONTEXT_MAX_LENGTH) SIZE_T  cbContext,
_In_reads_opt_(cbHashOid) PCBYTE  pbHashOid,
SIZE_T  cbHashOid,
_In_reads_(cbSignature) PCBYTE  pbSignature,
SIZE_T  cbSignature,
UINT32  flags 
)

Variable Documentation

◆ cbBuffer

UINT32 cbBuffer

Definition at line 405 of file sc_lib_mldsa.h.

Referenced by _HandleConfigureLPTPortCommandOK(), AboutProtocolInfo_QueryInfo(), AVISaveVW(), CoInternetQueryInfo(), ColorContext_GetProfileBytes(), CopyMemToClipboard(), DECLARE_INTERFACE_(), EditWindowProc(), GetClassFileOrMime(), GetEnhMetaFilePixelFormat(), GetGlyphOutlineA(), GetGlyphOutlineW(), GetGlyphOutlineWow(), GetLPTTransmissionRetryTimeout(), GetWinMetaFileBits(), HelDdSurfLock(), IntGetGlyphOutlineA(), IntGetGlyphOutlineW(), IntUnicodeStringToBuffer(), ITSProtocolInfo_QueryInfo(), JSProtocolInfo_QueryInfo(), LocalmonReadPort(), MimeHtmlProtocolInfo_QueryInfo(), netcon_secure_connect_setup(), netconn_secure_connect(), PathIsDirectoryA(), PathIsDirectoryW(), performance_tool_ProcessPMsg(), pointer_default(), POP3Transport_CallbackProcessQUITResponse(), QueryActCtxW(), read_ssl_chunk(), RegLoadMUIStringW(), ResProtocolInfo_QueryInfo(), SetContextAttributesA(), SetContextAttributesW(), SetWinMetaFileBits(), SHAddToRecentDocs(), sspi_wrap(), START_TEST(), StdMediaSample2_Construct(), SymCryptDivisorCreate(), SymCryptDlgroupCreate(), SymCryptDlkeyCreate(), SymCryptEckeyCreate(), SymCryptEcpointCreate(), SymCryptEcpointCreateEx(), SymCryptFdefDivisorCreate(), SymCryptFdefIntCreate(), SymCryptFdefModElementCreate(), SymCryptFdefModulusCreate(), SymCryptHbsGetDigit(), SymCryptHbsIncrementalTreehashInit(), SymCryptIntCreate(), SymCryptKeccakAppendBytes(), SymCryptMlDsaMatrixCreate(), SymCryptMlDsaPolyElementCreate(), SymCryptMlDsaVectorCreate(), SymCryptMlKemMatrixCreate(), SymCryptMlKemPolyElementAccumulatorCreate(), SymCryptMlKemPolyElementCreate(), SymCryptMlKemVectorCreate(), SymCryptModElementCreate(), SymCryptModulusCreate(), SymCryptRsakeyCreate(), SymCryptScsRotateBuffer(), SymCryptScsTableInit(), SymCryptScsTableSetBuffer(), test_communication(), test_cred_multiple_use(), test_null_auth_data(), testSignSeal(), thunk_SetContextAttributesA(), thunk_SetContextAttributesW(), UndoAlignRpcPtr(), update_n_stats_items(), WNetGetResourceInformationA(), and WNetGetResourceInformationW().

◆ cbKey

Definition at line 312 of file sc_lib_mldsa.h.

◆ cbScratch

Definition at line 1073 of file sc_lib_mldsa.h.

Referenced by SymCrypt802_11SaeCustomCommitCreateGeneric(), SymCrypt802_11SaeCustomCommitProcessGeneric(), SymCrypt802_11SaeCustomCreatePTGeneric(), SymCrypt802_11SaeCustomInit(), SymCrypt802_11SaeCustomInitH2EGeneric(), SymCrypt802_11SaeCustomSetRandMask(), SymCryptAesKwDecrypt(), SymCryptAesKwEncrypt(), SymCryptAesKwpDecrypt(), SymCryptAesKwpEncrypt(), SymCryptCrtGenerateForTwoCoprimes(), SymCryptCrtGenerateInverses(), SymCryptCrtSolve(), SymCryptDhSecretAgreement(), SymCryptDlgroupAutoCompleteNamedSafePrimeGroup(), SymCryptDlgroupGenerate(), SymCryptDlgroupGenerateGenG_FIPS(), SymCryptDlgroupGeneratePrimeP_FIPS(), SymCryptDlgroupGeneratePrimeQ_FIPS(), SymCryptDlgroupGetValue(), SymCryptDlgroupSetValue(), SymCryptDlgroupSetValueSafePrime(), SymCryptDlkeyGenerate(), SymCryptDlkeyGetValue(), SymCryptDlkeyPerformPublicKeyValidation(), SymCryptDlkeySetValue(), SymCryptDsaSignEx(), SymCryptDsaTruncateHash(), SymCryptDsaVerify(), SymCryptEcDhSecretAgreement(), SymCryptEcDsaSignEx(), SymCryptEcDsaTruncateHash(), SymCryptEcDsaVerify(), SymCryptEckeyGetValue(), SymCryptEckeyPerformPublicKeyValidation(), SymCryptEckeySetRandom(), SymCryptEckeySetValue(), SymCryptEcpointAdd(), SymCryptEcpointAddDiffNonZero(), SymCryptEcpointDouble(), SymCryptEcpointGenericSetRandom(), SymCryptEcpointGetValue(), SymCryptEcpointIsEqual(), SymCryptEcpointIsZero(), SymCryptEcpointMultiScalarMul(), SymCryptEcpointMultiScalarMulWnafWithInterleaving(), SymCryptEcpointNegate(), SymCryptEcpointOnCurve(), SymCryptEcpointScalarMul(), SymCryptEcpointScalarMulFixedWindow(), SymCryptEcpointSetDistinguishedPoint(), SymCryptEcpointSetRandom(), SymCryptEcpointSetValue(), SymCryptEcpointSetZero(), SymCryptEcpointTransform(), SymCryptEcurveCreate(), SymCryptFdefClaimScratch(), SymCryptFdefIntDivMod(), SymCryptFdefIntFindSmallDivisor(), SymCryptFdefIntMulMixedSize(), SymCryptFdefIntMulSameSize(), SymCryptFdefIntSquare(), SymCryptFdefIntToDivisor(), SymCryptFdefIntToModElement(), SymCryptFdefIntToModulus(), SymCryptFdefModAddGeneric(), SymCryptFdefModDivPow2(), SymCryptFdefModElementGetValue(), SymCryptFdefModElementSetValueGeneric(), SymCryptFdefModElementSetValueNegUint32(), SymCryptFdefModElementSetValueUint32Generic(), SymCryptFdefModElementToIntGeneric(), SymCryptFdefModInvGeneric(), SymCryptFdefModInvMontgomery(), SymCryptFdefModMulGeneric(), SymCryptFdefModMulMontgomery(), SymCryptFdefModNegGeneric(), SymCryptFdefModPreGetGeneric(), SymCryptFdefModPreGetMontgomery(), SymCryptFdefModSetPostGeneric(), SymCryptFdefModSetPostMontgomery(), SymCryptFdefModSetRandomGeneric(), SymCryptFdefModSquareGeneric(), SymCryptFdefModSquareMontgomery(), SymCryptFdefModSubGeneric(), SymCryptFdefModulusInitGeneric(), SymCryptFdefModulusInitMontgomery(), SymCryptFdefModulusInitMontgomeryInternal(), SymCryptFdefRawDivMod(), SymCryptIntDivMod(), SymCryptIntExtendedGcd(), SymCryptIntFindSmallDivisor(), SymCryptIntGenerateRandomPrime(), SymCryptIntMillerRabinPrimalityTest(), SymCryptIntMulMixedSize(), SymCryptIntMulSameSize(), SymCryptIntSquare(), SymCryptIntToDivisor(), SymCryptIntToModElement(), SymCryptIntToModulus(), SymCryptMlDsaTemporariesAllocateAndInitialize(), SymCryptModAdd(), SymCryptModDivPow2(), SymCryptModElementGetValue(), SymCryptModElementSetValue(), SymCryptModElementSetValueNegUint32(), SymCryptModElementSetValueUint32(), SymCryptModElementToInt(), SymCryptModExp(), SymCryptModExpGeneric(), SymCryptModExpPrecomputation(), SymCryptModExpSquareAndMultiply32(), SymCryptModExpWindowed(), SymCryptModInv(), SymCryptModMul(), SymCryptModMultiExp(), SymCryptModMultiExpGeneric(), SymCryptModMultiExpWnafWithInterleaving(), SymCryptModNeg(), SymCryptModSetRandom(), SymCryptModSqrt(), SymCryptModSquare(), SymCryptModSub(), SymCryptMontgomeryDoubleAndAdd(), SymCryptMontgomeryIsEqual(), SymCryptMontgomeryIsZero(), SymCryptMontgomeryPointScalarMul(), SymCryptMontgomerySetDistinguished(), SymCryptOfflinePrecomputation(), SymCryptPrecomputation(), SymCryptRsaCoreDec(), SymCryptRsaCoreDecCrt(), SymCryptRsaCoreEnc(), SymCryptRsaCoreVerifyInput(), SymCryptRsakeyCalculatePrimesFromPrivateExponent(), SymCryptRsakeyCalculatePrivateFields(), SymCryptRsakeyGenerate(), SymCryptRsakeyGetCrtValue(), SymCryptRsakeySetValueInternal(), SymCryptRsaOaepApplyEncryptionPadding(), SymCryptRsaOaepDecrypt(), SymCryptRsaOaepEncrypt(), SymCryptRsaOaepRemoveEncryptionPadding(), SymCryptRsaPkcs1Decrypt(), SymCryptRsaPkcs1Encrypt(), SymCryptRsaPkcs1Sign(), SymCryptRsaPkcs1Verify(), SymCryptRsaPkcs1VerifySignaturePadding(), SymCryptRsaPssApplySignaturePadding(), SymCryptRsaPssSign(), SymCryptRsaPssVerify(), SymCryptRsaPssVerifySignaturePadding(), SymCryptRsaRawDecrypt(), SymCryptRsaRawEncrypt(), SymCryptShortWeierstrassAdd(), SymCryptShortWeierstrassAddDiffNonZero(), SymCryptShortWeierstrassAddSideChannelUnsafe(), SymCryptShortWeierstrassDouble(), SymCryptShortWeierstrassDoubleSpecializedAm3(), SymCryptShortWeierstrassIsEqual(), SymCryptShortWeierstrassIsZero(), SymCryptShortWeierstrassNegate(), SymCryptShortWeierstrassOnCurve(), SymCryptShortWeierstrassSetDistinguished(), SymCryptShortWeierstrassSetZero(), SymCryptSswu(), SymCryptTwistedEdwardsAdd(), SymCryptTwistedEdwardsAddDiffNonZero(), SymCryptTwistedEdwardsDouble(), SymCryptTwistedEdwardsIsEqual(), SymCryptTwistedEdwardsIsZero(), SymCryptTwistedEdwardsNegate(), SymCryptTwistedEdwardsOnCurve(), SymCryptTwistedEdwardsSetDistinguished(), SymCryptTwistedEdwardsSetZero(), SymCryptXmssComputePublicRoot(), SymCryptXmssComputeSubtreeRoot(), SymCryptXmssCreateWotspPublickey(), SymCryptXmssSign(), SymCryptXmssTreeRootFromSignature(), SymCryptXmssTreeSignHash(), SymCryptXmssVerifyInternal(), and SymCryptXmssWotspPublickeyFromSignature().

◆ nColVectors

UINT32 UINT32 nColVectors

Definition at line 1071 of file sc_lib_mldsa.h.

Referenced by SymCryptMlDsaTemporariesAllocateAndInitialize().

◆ nElems

UINT32 UINT8 nElems

Definition at line 495 of file sc_lib_mldsa.h.

Referenced by _Struct_size_bytes_(), and SymCryptMlDsaVectorCreate().

◆ nPolyElements

UINT32 UINT32 UINT32 nPolyElements

Definition at line 1072 of file sc_lib_mldsa.h.

Referenced by SymCryptMlDsaTemporariesAllocateAndInitialize().

◆ nRowVectors

UINT32 nRowVectors

Definition at line 1070 of file sc_lib_mldsa.h.

Referenced by SymCryptMlDsaTemporariesAllocateAndInitialize().

◆ PSYMCRYPT_MLDSA_INTERNAL_COMPUTATION_TEMPORARIES

◆ PSYMCRYPT_MLDSA_MATRIX

* PSYMCRYPT_MLDSA_MATRIX

Definition at line 92 of file sc_lib_mldsa.h.

Referenced by SymCryptMlDsaMatrixCreate().

◆ PSYMCRYPT_MLDSA_VECTOR

◆ PSYMCRYPT_MLDSAKEY

Definition at line 173 of file sc_lib_mldsa.h.

◆ SYMCRYPT_MLDSA_INTERNAL_COMPUTATION_TEMPORARIES

SYMCRYPT_MLDSA_INTERNAL_COMPUTATION_TEMPORARIES

Definition at line 206 of file sc_lib_mldsa.h.

Referenced by SymCryptMlDsaTemporariesAllocateAndInitialize().

◆ SYMCRYPT_MLDSA_MATRIX

SYMCRYPT_MLDSA_MATRIX

Definition at line 92 of file sc_lib_mldsa.h.

Referenced by SymCryptMlDsaMatrixCreate().

◆ SYMCRYPT_MLDSA_VECTOR

SYMCRYPT_MLDSA_VECTOR

Definition at line 80 of file sc_lib_mldsa.h.

Referenced by SymCryptMlDsaVectorCreate().

◆ SYMCRYPT_MLDSAKEY

Definition at line 173 of file sc_lib_mldsa.h.