@@ -503,32 +503,58 @@ int getPrimaryParamEncKey(WOLFTPM2_DEV* pDev, WOLFTPM2_SESSION* session,
503503 return rc ;
504504}
505505
506- int parsePqcParamEncArg (const char * arg , TPM_ALG_ID * alg , int * paramSet )
506+ int parsePqcParamSet (const char * val , TPM_ALG_ID * alg , int * paramSet )
507507{
508- if (arg == NULL || alg == NULL || paramSet == NULL )
508+ int n ;
509+
510+ if (val == NULL || alg == NULL || paramSet == NULL )
509511 return 0 ;
510512#ifdef WOLFTPM_MLKEM
511- if (XSTRCMP (arg , "- mlkem" ) == 0 ||
512- XSTRNCMP (arg , "- mlkem=" , 7 ) == 0 ) {
513- int n = (arg [ 6 ] == '=' ) ? XATOI (& arg [ 7 ]) : 768 ;
513+ if (XSTRCMP (val , "mlkem" ) == 0 ||
514+ XSTRNCMP (val , "mlkem=" , 6 ) == 0 ) {
515+ n = (val [ 5 ] == '=' ) ? XATOI (& val [ 6 ]) : 768 ;
514516 * alg = TPM_ALG_MLKEM ;
515- * paramSet = (n == 512 ) ? TPM_MLKEM_512 :
516- (n == 1024 ) ? TPM_MLKEM_1024 : TPM_MLKEM_768 ;
517+ if (n == 512 )
518+ * paramSet = TPM_MLKEM_512 ;
519+ else if (n == 768 )
520+ * paramSet = TPM_MLKEM_768 ;
521+ else if (n == 1024 )
522+ * paramSet = TPM_MLKEM_1024 ;
523+ else {
524+ printf ("Invalid ML-KEM parameter set: %d (use 512, 768, or 1024)\n" ,
525+ n );
526+ return 0 ;
527+ }
517528 return 1 ;
518529 }
519530#endif
520531#ifdef WOLFTPM_MLDSA
521- if (XSTRCMP (arg , "- mldsa" ) == 0 ||
522- XSTRNCMP (arg , "- mldsa=" , 7 ) == 0 ) {
523- int n = (arg [ 6 ] == '=' ) ? XATOI (& arg [ 7 ]) : 65 ;
532+ if (XSTRCMP (val , "mldsa" ) == 0 ||
533+ XSTRNCMP (val , "mldsa=" , 6 ) == 0 ) {
534+ n = (val [ 5 ] == '=' ) ? XATOI (& val [ 6 ]) : 65 ;
524535 * alg = TPM_ALG_MLDSA ;
525- * paramSet = (n == 44 ) ? TPM_MLDSA_44 :
526- (n == 87 ) ? TPM_MLDSA_87 : TPM_MLDSA_65 ;
536+ if (n == 44 )
537+ * paramSet = TPM_MLDSA_44 ;
538+ else if (n == 65 )
539+ * paramSet = TPM_MLDSA_65 ;
540+ else if (n == 87 )
541+ * paramSet = TPM_MLDSA_87 ;
542+ else {
543+ printf ("Invalid ML-DSA parameter set: %d (use 44, 65, or 87)\n" , n );
544+ return 0 ;
545+ }
527546 return 1 ;
528547 }
529548#endif
530549 return 0 ;
531550}
551+
552+ int parsePqcParamEncArg (const char * arg , TPM_ALG_ID * alg , int * paramSet )
553+ {
554+ if (arg == NULL || arg [0 ] != '-' )
555+ return 0 ;
556+ return parsePqcParamSet (arg + 1 , alg , paramSet );
557+ }
532558#endif /* WOLFTPM_MLDSA || WOLFTPM_MLKEM */
533559
534560int getRSAkey (WOLFTPM2_DEV * pDev , WOLFTPM2_KEY * pStorageKey , WOLFTPM2_KEY * key ,
0 commit comments