@@ -10487,11 +10487,7 @@ ArithImp<ImpXxx, AlgMlKemkeySetValue>::~ArithImp()
1048710487// //////////////////////////////////////////////////////////////////////////
1048810488
1048910489// Table with the ML-DSA keys' sizes and pointers to keys
10490- struct {
10491- SIZE_T keySize;
10492- SYMCRYPT_MLDSA_PARAMS params;
10493- PSYMCRYPT_MLDSAKEY pkMlDsakey;
10494- } CONCAT2(g_precomputedMlDsaKeys, ImpXxx)[] = {
10490+ SYMCRYPT_PERF_MLDSAKEY CONCAT2 (g_precomputedMlDsaKeys, ImpXxx)[] = {
1049510491 { PERF_KEY_MLDSA_44, SYMCRYPT_MLDSA_PARAMS_MLDSA44, NULL },
1049610492 { PERF_KEY_MLDSA_65, SYMCRYPT_MLDSA_PARAMS_MLDSA65, NULL },
1049710493 { PERF_KEY_MLDSA_87, SYMCRYPT_MLDSA_PARAMS_MLDSA87, NULL },
@@ -10526,7 +10522,7 @@ SetupSymCryptMlDsaKey<ImpXxx>( PBYTE pbKey, SIZE_T keySize )
1052610522
1052710523 CHECK ( bFound, " Invalid ML-DSA parameter set (key size)" );
1052810524
10529- *((PSYMCRYPT_MLDSAKEY *) pbKey) = CONCAT2 (g_precomputedMlDsaKeys, ImpXxx)[i]. pkMlDsakey ;
10525+ *((PSYMCRYPT_PERF_MLDSAKEY *) pbKey) = &( CONCAT2 (g_precomputedMlDsaKeys, ImpXxx)[i]) ;
1053010526}
1053110527
1053210528template <>
@@ -10538,7 +10534,7 @@ algImpKeyPerfFunction<ImpXxx, AlgMlDsa>( PBYTE pbKey, PBYTE buf2, PBYTE buf3, SI
1053810534
1053910535 SYMCRYPT_ERROR scError = SYMCRYPT_NO_ERROR;
1054010536 SYMCRYPT_MLDSA_PARAMS params = SYMCRYPT_MLDSA_PARAMS_NULL;
10541- PSYMCRYPT_MLDSAKEY* ppkMlDsakey = (PSYMCRYPT_MLDSAKEY *) pbKey;
10537+ PSYMCRYPT_PERF_MLDSAKEY* ppKeyInfo = (PSYMCRYPT_PERF_MLDSAKEY *) pbKey;
1054210538
1054310539 switch ( keySize )
1054410540 {
@@ -10558,7 +10554,7 @@ algImpKeyPerfFunction<ImpXxx, AlgMlDsa>( PBYTE pbKey, PBYTE buf2, PBYTE buf3, SI
1055810554
1055910555 SetupSymCryptMlDsaKey<ImpXxx>( pbKey, keySize );
1056010556
10561- scError = ScShimSymCryptMlDsakeyGenerate ( *ppkMlDsakey , 0 );
10557+ scError = ScShimSymCryptMlDsakeyGenerate ( (*ppKeyInfo)-> pkMlDsakey , 0 );
1056210558 CHECK ( scError == SYMCRYPT_NO_ERROR, " SymCryptMlDsakeyGenerate" );
1056310559}
1056410560
@@ -10567,17 +10563,17 @@ VOID
1056710563algImpDataPerfFunction<ImpXxx, AlgMlDsa>( PBYTE pbKey, PBYTE pbMessage, PBYTE pbSignature, SIZE_T cbData )
1056810564{
1056910565 SYMCRYPT_ERROR scError = SYMCRYPT_NO_ERROR;
10570- PCSYMCRYPT_MLDSAKEY* ppkMlDsakey = (PCSYMCRYPT_MLDSAKEY *) pbKey;
10566+ PSYMCRYPT_PERF_MLDSAKEY* ppKeyInfo = (PSYMCRYPT_PERF_MLDSAKEY *) pbKey;
1057110567 SIZE_T cbSignature = 0 ;
1057210568
1057310569 scError = ScShimSymCryptMlDsaSizeofSignatureFromParams (
10574- (SYMCRYPT_MLDSA_PARAMS) (*ppkMlDsakey)-> pParams ->params ,
10570+ (*ppKeyInfo) ->params ,
1057510571 &cbSignature );
1057610572 CHECK ( scError == SYMCRYPT_NO_ERROR, " SymCryptMlDsaSizeofSignatureFromParams" );
1057710573 CHECK ( cbSignature <= PERF_BUFFER_SIZE, " Signature buffer too small" );
1057810574
1057910575 scError = ScShimSymCryptMlDsaSign (
10580- *ppkMlDsakey ,
10576+ (*ppKeyInfo)-> pkMlDsakey ,
1058110577 pbMessage, cbData,
1058210578 nullptr , 0 , // context
1058310579 0 , // flags
@@ -10590,17 +10586,17 @@ VOID
1059010586algImpDecryptPerfFunction<ImpXxx, AlgMlDsa>( PBYTE pbKey, PBYTE pbMessage, PBYTE pbSignature, SIZE_T cbData )
1059110587{
1059210588 SYMCRYPT_ERROR scError = SYMCRYPT_NO_ERROR;
10593- PCSYMCRYPT_MLDSAKEY* ppkMlDsakey = (PCSYMCRYPT_MLDSAKEY *) pbKey;
10589+ PSYMCRYPT_PERF_MLDSAKEY* ppKeyInfo = (PSYMCRYPT_PERF_MLDSAKEY *) pbKey;
1059410590 SIZE_T cbSignature = 0 ;
1059510591
1059610592 scError = ScShimSymCryptMlDsaSizeofSignatureFromParams (
10597- (SYMCRYPT_MLDSA_PARAMS) (*ppkMlDsakey)-> pParams ->params ,
10593+ (*ppKeyInfo) ->params ,
1059810594 &cbSignature );
1059910595 CHECK ( scError == SYMCRYPT_NO_ERROR, " SymCryptMlDsaSizeofSignatureFromParams" );
1060010596 CHECK ( cbSignature <= PERF_BUFFER_SIZE, " Signature buffer too small" );
1060110597
1060210598 scError = ScShimSymCryptMlDsaVerify (
10603- *ppkMlDsakey ,
10599+ (*ppKeyInfo)-> pkMlDsakey ,
1060410600 pbMessage, cbData,
1060510601 nullptr , 0 , // context
1060610602 pbSignature, cbSignature,
@@ -10641,6 +10637,8 @@ PqDsaImp<ImpXxx, AlgMlDsa>::setKey(
1064110637 state.pKey = ScShimSymCryptMlDsakeyAllocate ( testMldsakey->params );
1064210638 CHECK ( state.pKey != nullptr , " SymCryptMlDsakeyAllocate" );
1064310639
10640+ state.params = testMldsakey->params ;
10641+
1064410642 scError = ScShimSymCryptMlDsakeySetValue (
1064510643 testMldsakey->abKeyBlob ,
1064610644 testMldsakey->cbKeyBlob ,
@@ -10663,7 +10661,7 @@ PqDsaImp<ImpXxx, AlgMlDsa>::getBlobFromKey(
1066310661 SIZE_T cbExpected = 0 ;
1066410662
1066510663 scError = ScShimSymCryptMlDsaSizeofKeyFormatFromParams (
10666- (SYMCRYPT_MLDSA_PARAMS) state.pKey -> pParams -> params ,
10664+ state.params ,
1066710665 (SYMCRYPT_MLDSAKEY_FORMAT) keyFormat,
1066810666 &cbExpected );
1066910667 CHECK ( scError == SYMCRYPT_NO_ERROR, " SymCryptMlDsaSizeofKeyFormatFromParams" );
0 commit comments