5656 * MLK_CONFIG_API_PARAMETER_SET or MLK_CONFIG_API_NAMESPACE_PREFIX,
5757 * nor include a configuration.
5858 *
59+ * - MLK_CONFIG_API_QUALIFIER [optional]
60+ *
61+ * Any custom attribute or declspec needed for public APIs functions.
62+ *
5963 * # Multi-level builds
6064 *
6165 * This header specifies a build of mlkem-native for a fixed security level.
128132#define MLK_API_MUST_CHECK_RETURN_VALUE
129133#endif
130134
135+
136+ #ifdef MLK_CONFIG_API_QUALIFIER
137+ #define MLK_API_QUALIFIER MLK_CONFIG_API_QUALIFIER
138+ #else
139+ #define MLK_API_QUALIFIER
140+ #endif
141+
131142#include <stdint.h>
132143
133144/*************************************************
149160 * Specification: Implements @[FIPS203, Algorithm 16, ML-KEM.KeyGen_Internal]
150161 *
151162 **************************************************/
152- MLK_API_MUST_CHECK_RETURN_VALUE
153- int MLK_API_NAMESPACE ( keypair_derand )(
163+ MLK_API_QUALIFIER MLK_API_MUST_CHECK_RETURN_VALUE int MLK_API_NAMESPACE (
164+ keypair_derand )(
154165 uint8_t pk [MLKEM_PUBLICKEYBYTES (MLK_CONFIG_API_PARAMETER_SET )],
155166 uint8_t sk [MLKEM_SECRETKEYBYTES (MLK_CONFIG_API_PARAMETER_SET )],
156167 const uint8_t coins [2 * MLKEM_SYMBYTES ]);
@@ -173,10 +184,9 @@ int MLK_API_NAMESPACE(keypair_derand)(
173184 * Specification: Implements @[FIPS203, Algorithm 19, ML-KEM.KeyGen]
174185 *
175186 **************************************************/
176- MLK_API_MUST_CHECK_RETURN_VALUE
177- int MLK_API_NAMESPACE (keypair )(
178- uint8_t pk [MLKEM_PUBLICKEYBYTES (MLK_CONFIG_API_PARAMETER_SET )],
179- uint8_t sk [MLKEM_SECRETKEYBYTES (MLK_CONFIG_API_PARAMETER_SET )]);
187+ MLK_API_QUALIFIER MLK_API_MUST_CHECK_RETURN_VALUE int MLK_API_NAMESPACE (
188+ keypair )(uint8_t pk [MLKEM_PUBLICKEYBYTES (MLK_CONFIG_API_PARAMETER_SET )],
189+ uint8_t sk [MLKEM_SECRETKEYBYTES (MLK_CONFIG_API_PARAMETER_SET )]);
180190#endif /* !MLK_CONFIG_NO_RANDOMIZED_API */
181191
182192/*************************************************
@@ -201,8 +211,8 @@ int MLK_API_NAMESPACE(keypair)(
201211 * Specification: Implements @[FIPS203, Algorithm 17, ML-KEM.Encaps_Internal]
202212 *
203213 **************************************************/
204- MLK_API_MUST_CHECK_RETURN_VALUE
205- int MLK_API_NAMESPACE ( enc_derand )(
214+ MLK_API_QUALIFIER MLK_API_MUST_CHECK_RETURN_VALUE int MLK_API_NAMESPACE (
215+ enc_derand )(
206216 uint8_t ct [MLKEM_CIPHERTEXTBYTES (MLK_CONFIG_API_PARAMETER_SET )],
207217 uint8_t ss [MLKEM_BYTES ],
208218 const uint8_t pk [MLKEM_PUBLICKEYBYTES (MLK_CONFIG_API_PARAMETER_SET )],
@@ -229,8 +239,7 @@ int MLK_API_NAMESPACE(enc_derand)(
229239 * Specification: Implements @[FIPS203, Algorithm 20, ML-KEM.Encaps]
230240 *
231241 **************************************************/
232- MLK_API_MUST_CHECK_RETURN_VALUE
233- int MLK_API_NAMESPACE (enc )(
242+ MLK_API_QUALIFIER MLK_API_MUST_CHECK_RETURN_VALUE int MLK_API_NAMESPACE (enc )(
234243 uint8_t ct [MLKEM_CIPHERTEXTBYTES (MLK_CONFIG_API_PARAMETER_SET )],
235244 uint8_t ss [MLKEM_BYTES ],
236245 const uint8_t pk [MLKEM_PUBLICKEYBYTES (MLK_CONFIG_API_PARAMETER_SET )]);
@@ -256,8 +265,7 @@ int MLK_API_NAMESPACE(enc)(
256265 * Specification: Implements @[FIPS203, Algorithm 21, ML-KEM.Decaps]
257266 *
258267 **************************************************/
259- MLK_API_MUST_CHECK_RETURN_VALUE
260- int MLK_API_NAMESPACE (dec )(
268+ MLK_API_QUALIFIER MLK_API_MUST_CHECK_RETURN_VALUE int MLK_API_NAMESPACE (dec )(
261269 uint8_t ss [MLKEM_BYTES ],
262270 const uint8_t ct [MLKEM_CIPHERTEXTBYTES (MLK_CONFIG_API_PARAMETER_SET )],
263271 const uint8_t sk [MLKEM_SECRETKEYBYTES (MLK_CONFIG_API_PARAMETER_SET )]);
@@ -277,8 +285,8 @@ int MLK_API_NAMESPACE(dec)(
277285 * Specification: Implements @[FIPS203, Section 7.2, 'modulus check']
278286 *
279287 **************************************************/
280- MLK_API_MUST_CHECK_RETURN_VALUE
281- int MLK_API_NAMESPACE ( check_pk )(
288+ MLK_API_QUALIFIER MLK_API_MUST_CHECK_RETURN_VALUE int MLK_API_NAMESPACE (
289+ check_pk )(
282290 const uint8_t pk [MLKEM_PUBLICKEYBYTES (MLK_CONFIG_API_PARAMETER_SET )]);
283291
284292/*************************************************
@@ -297,8 +305,8 @@ int MLK_API_NAMESPACE(check_pk)(
297305 * Specification: Implements @[FIPS203, Section 7.3, 'hash check']
298306 *
299307 **************************************************/
300- MLK_API_MUST_CHECK_RETURN_VALUE
301- int MLK_API_NAMESPACE ( check_sk )(
308+ MLK_API_QUALIFIER MLK_API_MUST_CHECK_RETURN_VALUE int MLK_API_NAMESPACE (
309+ check_sk )(
302310 const uint8_t sk [MLKEM_SECRETKEYBYTES (MLK_CONFIG_API_PARAMETER_SET )]);
303311
304312/****************************** SUPERCOP API *********************************/
0 commit comments