pq_crypto 0.6.2 → 0.6.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG.md +5 -0
- data/ext/pqcrypto/pqcrypto_version.h +1 -1
- data/ext/pqcrypto/vendor/.vendored +4 -4
- data/ext/pqcrypto/vendor/mlkem-native/README.md +6 -3
- data/ext/pqcrypto/vendor/mlkem-native/RELEASE.md +22 -0
- data/ext/pqcrypto/vendor/mlkem-native/mlkem/mlkem_native.c +77 -36
- data/ext/pqcrypto/vendor/mlkem-native/mlkem/mlkem_native.h +135 -146
- data/ext/pqcrypto/vendor/mlkem-native/mlkem/mlkem_native_asm.S +116 -72
- data/ext/pqcrypto/vendor/mlkem-native/mlkem/mlkem_native_config.h +351 -415
- data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/cbmc.h +43 -20
- data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/common.h +16 -8
- data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/compress.c +57 -31
- data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/compress.h +260 -349
- data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/debug.h +17 -24
- data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/fips202/fips202.c +35 -37
- data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/fips202/fips202.h +43 -57
- data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/fips202/fips202x4.c +14 -15
- data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/fips202/fips202x4.h +5 -4
- data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/fips202/keccakf1600.c +42 -6
- data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/fips202/native/aarch64/src/fips202_native_aarch64.h +31 -20
- data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/fips202/native/aarch64/src/{keccak_f1600_x1_scalar_asm.S → keccak_f1600_x1_scalar_aarch64_asm.S} +10 -10
- data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/fips202/native/aarch64/src/{keccak_f1600_x1_v84a_asm.S → keccak_f1600_x1_v84a_aarch64_asm.S} +10 -10
- data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/fips202/native/aarch64/src/{keccak_f1600_x2_v84a_asm.S → keccak_f1600_x2_v84a_aarch64_asm.S} +10 -10
- data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/fips202/native/aarch64/src/{keccak_f1600_x4_v8a_scalar_hybrid_asm.S → keccak_f1600_x4_v8a_scalar_hybrid_aarch64_asm.S} +10 -10
- data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/fips202/native/aarch64/src/{keccak_f1600_x4_v8a_v84a_scalar_hybrid_asm.S → keccak_f1600_x4_v8a_v84a_scalar_hybrid_aarch64_asm.S} +10 -10
- data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/fips202/native/aarch64/src/keccakf1600_round_constants.c +10 -9
- data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/fips202/native/aarch64/x1_scalar.h +2 -1
- data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/fips202/native/aarch64/x1_v84a.h +1 -1
- data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/fips202/native/aarch64/x2_v84a.h +4 -2
- data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/fips202/native/aarch64/x4_v8a_scalar.h +2 -2
- data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/fips202/native/aarch64/x4_v8a_v84a_scalar.h +1 -1
- data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/fips202/native/armv81m/src/fips202_native_armv81m.h +2 -1
- data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/fips202/native/armv81m/src/keccak_f1600_x4_mve.S +55 -9
- data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/fips202/native/armv81m/src/keccakf1600_round_constants.c +26 -25
- data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/fips202/native/armv81m/src/state_extract_bytes_x4_mve.S +58 -14
- data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/fips202/native/armv81m/src/state_xor_bytes_x4_mve.S +57 -16
- data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/fips202/native/auto.h +2 -1
- data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/fips202/native/x86_64/keccak_f1600_x4_avx2.h +2 -2
- data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/fips202/native/x86_64/src/fips202_native_x86_64.h +10 -7
- data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/fips202/native/x86_64/src/{keccak_f1600_x4_avx2.S → keccak_f1600_x4_avx2_asm.S} +13 -11
- data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/fips202/native/x86_64/src/keccakf1600_constants.c +12 -11
- data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/indcpa.c +167 -136
- data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/indcpa.h +75 -68
- data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/kem.h +135 -157
- data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/aarch64/meta.h +15 -13
- data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/aarch64/src/aarch64_zetas.c +143 -135
- data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/aarch64/src/arith_native_aarch64.h +52 -46
- data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/aarch64/src/{intt.S → intt_aarch64_asm.S} +10 -10
- data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/aarch64/src/{ntt.S → ntt_aarch64_asm.S} +10 -10
- data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/aarch64/src/{poly_mulcache_compute_asm.S → poly_mulcache_compute_aarch64_asm.S} +10 -10
- data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/aarch64/src/{poly_reduce_asm.S → poly_reduce_aarch64_asm.S} +10 -10
- data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/aarch64/src/{poly_tobytes_asm.S → poly_tobytes_aarch64_asm.S} +10 -10
- data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/aarch64/src/{poly_tomont_asm.S → poly_tomont_aarch64_asm.S} +10 -12
- data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/aarch64/src/{polyvec_basemul_acc_montgomery_cached_asm_k2.S → polyvec_basemul_acc_montgomery_cached_k2_aarch64_asm.S} +10 -10
- data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/aarch64/src/{polyvec_basemul_acc_montgomery_cached_asm_k3.S → polyvec_basemul_acc_montgomery_cached_k3_aarch64_asm.S} +10 -10
- data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/aarch64/src/{polyvec_basemul_acc_montgomery_cached_asm_k4.S → polyvec_basemul_acc_montgomery_cached_k4_aarch64_asm.S} +10 -10
- data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/aarch64/src/{rej_uniform_asm.S → rej_uniform_aarch64_asm.S} +12 -12
- data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/aarch64/src/rej_uniform_table.c +514 -513
- data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/api.h +254 -253
- data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/meta.h +6 -1
- data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/ppc64le/README.md +6 -0
- data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/ppc64le/meta.h +77 -0
- data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/ppc64le/src/arith_native_ppc64le.h +24 -0
- data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/ppc64le/src/consts.c +299 -0
- data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/ppc64le/src/consts.h +34 -0
- data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/ppc64le/src/intt_ppc_asm.S +3222 -0
- data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/ppc64le/src/ntt_ppc_asm.S +1651 -0
- data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/ppc64le/src/poly_tomont_ppc_asm.S +294 -0
- data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/ppc64le/src/reduce_ppc_asm.S +710 -0
- data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/riscv64/meta.h +5 -0
- data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/riscv64/src/rv64v_debug.c +18 -16
- data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/riscv64/src/rv64v_debug.h +19 -24
- data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/riscv64/src/rv64v_poly.c +53 -65
- data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/x86_64/meta.h +20 -20
- data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/x86_64/src/arith_native_x86_64.h +106 -88
- data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/x86_64/src/compress_consts.c +45 -35
- data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/x86_64/src/compress_consts.h +8 -8
- data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/x86_64/src/consts.c +1 -1
- data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/x86_64/src/consts.h +1 -1
- data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/x86_64/src/{intt.S → intt_avx2_asm.S} +8 -8
- data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/x86_64/src/{ntt.S → ntt_avx2_asm.S} +8 -8
- data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/x86_64/src/{nttfrombytes.S → nttfrombytes_avx2_asm.S} +8 -8
- data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/x86_64/src/{ntttobytes.S → ntttobytes_avx2_asm.S} +8 -8
- data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/x86_64/src/{nttunpack.S → nttunpack_avx2_asm.S} +8 -8
- data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/x86_64/src/{poly_compress_d10.S → poly_compress_d10_avx2_asm.S} +9 -9
- data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/x86_64/src/{poly_compress_d11.S → poly_compress_d11_avx2_asm.S} +9 -9
- data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/x86_64/src/{poly_compress_d4.S → poly_compress_d4_avx2_asm.S} +9 -9
- data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/x86_64/src/{poly_compress_d5.S → poly_compress_d5_avx2_asm.S} +9 -9
- data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/x86_64/src/{poly_decompress_d10.S → poly_decompress_d10_avx2_asm.S} +9 -9
- data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/x86_64/src/{poly_decompress_d11.S → poly_decompress_d11_avx2_asm.S} +9 -9
- data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/x86_64/src/{poly_decompress_d4.S → poly_decompress_d4_avx2_asm.S} +9 -9
- data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/x86_64/src/{poly_decompress_d5.S → poly_decompress_d5_avx2_asm.S} +9 -9
- data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/x86_64/src/{mulcache_compute.S → poly_mulcache_compute_avx2_asm.S} +8 -8
- data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/x86_64/src/{polyvec_basemul_acc_montgomery_cached_asm_k2.S → polyvec_basemul_acc_montgomery_cached_k2_avx2_asm.S} +8 -8
- data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/x86_64/src/{polyvec_basemul_acc_montgomery_cached_asm_k3.S → polyvec_basemul_acc_montgomery_cached_k3_avx2_asm.S} +8 -8
- data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/x86_64/src/{polyvec_basemul_acc_montgomery_cached_asm_k4.S → polyvec_basemul_acc_montgomery_cached_k4_avx2_asm.S} +8 -8
- data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/x86_64/src/{reduce.S → reduce_avx2_asm.S} +8 -8
- data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/x86_64/src/{rej_uniform_asm.S → rej_uniform_avx2_asm.S} +9 -9
- data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/x86_64/src/rej_uniform_table.c +514 -513
- data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/x86_64/src/{tomont.S → tomont_avx2_asm.S} +8 -8
- data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/poly.c +61 -57
- data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/poly.h +89 -116
- data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/poly_k.c +31 -32
- data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/poly_k.h +226 -301
- data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/randombytes.h +21 -29
- data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/sampling.c +68 -63
- data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/sampling.h +37 -48
- data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/sys.h +44 -2
- data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/verify.h +141 -159
- data/lib/pq_crypto/version.rb +1 -1
- data/script/vendor_libs.rb +3 -3
- metadata +47 -38
|
@@ -112,13 +112,13 @@
|
|
|
112
112
|
/****************************** Error codes ***********************************/
|
|
113
113
|
|
|
114
114
|
/* Generic failure condition */
|
|
115
|
-
#define MLK_ERR_FAIL -1
|
|
115
|
+
#define MLK_ERR_FAIL (-1)
|
|
116
116
|
/* An allocation failed. This can only happen if MLK_CONFIG_CUSTOM_ALLOC_FREE
|
|
117
117
|
* is defined and the provided MLK_CUSTOM_ALLOC can fail. */
|
|
118
|
-
#define MLK_ERR_OUT_OF_MEMORY -2
|
|
118
|
+
#define MLK_ERR_OUT_OF_MEMORY (-2)
|
|
119
119
|
/* An rng failure occured. Might be due to insufficient entropy or
|
|
120
120
|
* system misconfiguration. */
|
|
121
|
-
#define MLK_ERR_RNG_FAIL -3
|
|
121
|
+
#define MLK_ERR_RNG_FAIL (-3)
|
|
122
122
|
|
|
123
123
|
/****************************** Function API **********************************/
|
|
124
124
|
|
|
@@ -170,7 +170,7 @@
|
|
|
170
170
|
#define MLK_API_NAMESPACE(sym) \
|
|
171
171
|
MLK_API_CONCAT_UNDERSCORE(MLK_CONFIG_API_NAMESPACE_PREFIX, sym)
|
|
172
172
|
|
|
173
|
-
#if defined(__GNUC__) || defined(
|
|
173
|
+
#if defined(__GNUC__) || defined(__clang__)
|
|
174
174
|
#define MLK_API_MUST_CHECK_RETURN_VALUE __attribute__((warn_unused_result))
|
|
175
175
|
#else
|
|
176
176
|
#define MLK_API_MUST_CHECK_RETURN_VALUE
|
|
@@ -191,28 +191,26 @@ extern "C"
|
|
|
191
191
|
{
|
|
192
192
|
#endif
|
|
193
193
|
|
|
194
|
-
|
|
195
|
-
*
|
|
196
|
-
*
|
|
197
|
-
*
|
|
198
|
-
*
|
|
199
|
-
*
|
|
200
|
-
*
|
|
201
|
-
*
|
|
202
|
-
*
|
|
203
|
-
*
|
|
204
|
-
*
|
|
205
|
-
*
|
|
206
|
-
*
|
|
207
|
-
*
|
|
208
|
-
*
|
|
209
|
-
*
|
|
210
|
-
*
|
|
211
|
-
*
|
|
212
|
-
*
|
|
213
|
-
|
|
214
|
-
*
|
|
215
|
-
**************************************************/
|
|
194
|
+
/**
|
|
195
|
+
* Generate a public/private keypair for the ML-KEM key encapsulation mechanism.
|
|
196
|
+
*
|
|
197
|
+
* @spec{Implements @[FIPS203, Algorithm 16, ML-KEM.KeyGen_Internal].}
|
|
198
|
+
*
|
|
199
|
+
* @param[out] pk Output public key, an array of
|
|
200
|
+
* MLKEM{512,768,1024}_PUBLICKEYBYTES bytes.
|
|
201
|
+
* @param[out] sk Output private key, an array of
|
|
202
|
+
* MLKEM{512,768,1024}_SECRETKEYBYTES bytes.
|
|
203
|
+
* @param[in] coins Input randomness, an array of 2*MLKEM_SYMBYTES uniformly
|
|
204
|
+
* random bytes.
|
|
205
|
+
* @param context Application context. Only present when
|
|
206
|
+
* MLK_CONFIG_CONTEXT_PARAMETER is defined; type set by
|
|
207
|
+
* MLK_CONFIG_CONTEXT_PARAMETER_TYPE.
|
|
208
|
+
*
|
|
209
|
+
* @retval 0 Success.
|
|
210
|
+
* @retval MLK_ERR_FAIL MLK_CONFIG_KEYGEN_PCT enabled and PCT failed.
|
|
211
|
+
* @retval MLK_ERR_OUT_OF_MEMORY MLK_CONFIG_CUSTOM_ALLOC_FREE was used and
|
|
212
|
+
* MLK_CUSTOM_ALLOC returned NULL.
|
|
213
|
+
*/
|
|
216
214
|
MLK_API_QUALIFIER
|
|
217
215
|
MLK_API_MUST_CHECK_RETURN_VALUE
|
|
218
216
|
int MLK_API_NAMESPACE(keypair_derand)(
|
|
@@ -227,27 +225,25 @@ int MLK_API_NAMESPACE(keypair_derand)(
|
|
|
227
225
|
|
|
228
226
|
|
|
229
227
|
#if !defined(MLK_CONFIG_NO_RANDOMIZED_API)
|
|
230
|
-
|
|
231
|
-
*
|
|
232
|
-
*
|
|
233
|
-
*
|
|
234
|
-
*
|
|
235
|
-
*
|
|
236
|
-
*
|
|
237
|
-
*
|
|
238
|
-
*
|
|
239
|
-
*
|
|
240
|
-
*
|
|
241
|
-
*
|
|
242
|
-
*
|
|
243
|
-
*
|
|
244
|
-
*
|
|
245
|
-
*
|
|
246
|
-
*
|
|
247
|
-
*
|
|
248
|
-
|
|
249
|
-
*
|
|
250
|
-
**************************************************/
|
|
228
|
+
/**
|
|
229
|
+
* Generate a public/private keypair for the ML-KEM key encapsulation mechanism.
|
|
230
|
+
*
|
|
231
|
+
* @spec{Implements @[FIPS203, Algorithm 19, ML-KEM.KeyGen].}
|
|
232
|
+
*
|
|
233
|
+
* @param[out] pk Output public key, an array of
|
|
234
|
+
* MLKEM{512,768,1024}_PUBLICKEYBYTES bytes.
|
|
235
|
+
* @param[out] sk Output private key, an array of
|
|
236
|
+
* MLKEM{512,768,1024}_SECRETKEYBYTES bytes.
|
|
237
|
+
* @param context Application context. Only present when
|
|
238
|
+
* MLK_CONFIG_CONTEXT_PARAMETER is defined; type set by
|
|
239
|
+
* MLK_CONFIG_CONTEXT_PARAMETER_TYPE.
|
|
240
|
+
*
|
|
241
|
+
* @retval 0 Success.
|
|
242
|
+
* @retval MLK_ERR_FAIL MLK_CONFIG_KEYGEN_PCT enabled and PCT failed.
|
|
243
|
+
* @retval MLK_ERR_OUT_OF_MEMORY MLK_CONFIG_CUSTOM_ALLOC_FREE was used and
|
|
244
|
+
* MLK_CUSTOM_ALLOC returned NULL.
|
|
245
|
+
* @retval MLK_ERR_RNG_FAIL Random number generation failed.
|
|
246
|
+
*/
|
|
251
247
|
MLK_API_QUALIFIER
|
|
252
248
|
MLK_API_MUST_CHECK_RETURN_VALUE
|
|
253
249
|
int MLK_API_NAMESPACE(keypair)(
|
|
@@ -260,30 +256,27 @@ int MLK_API_NAMESPACE(keypair)(
|
|
|
260
256
|
);
|
|
261
257
|
#endif /* !MLK_CONFIG_NO_RANDOMIZED_API */
|
|
262
258
|
|
|
263
|
-
|
|
264
|
-
*
|
|
265
|
-
*
|
|
266
|
-
*
|
|
267
|
-
*
|
|
268
|
-
*
|
|
269
|
-
*
|
|
270
|
-
*
|
|
271
|
-
*
|
|
272
|
-
*
|
|
273
|
-
*
|
|
274
|
-
*
|
|
275
|
-
*
|
|
276
|
-
*
|
|
277
|
-
*
|
|
278
|
-
*
|
|
279
|
-
*
|
|
280
|
-
*
|
|
281
|
-
*
|
|
282
|
-
*
|
|
283
|
-
|
|
284
|
-
* Specification: Implements @[FIPS203, Algorithm 17, ML-KEM.Encaps_Internal]
|
|
285
|
-
*
|
|
286
|
-
**************************************************/
|
|
259
|
+
/**
|
|
260
|
+
* Generate ciphertext and shared secret for a given public key.
|
|
261
|
+
*
|
|
262
|
+
* @spec{Implements @[FIPS203, Algorithm 17, ML-KEM.Encaps_Internal].}
|
|
263
|
+
*
|
|
264
|
+
* @param[out] ct Output ciphertext, an array of
|
|
265
|
+
* MLKEM{512,768,1024}_CIPHERTEXTBYTES bytes.
|
|
266
|
+
* @param[out] ss Output shared secret, an array of MLKEM_BYTES bytes.
|
|
267
|
+
* @param[in] pk Input public key, an array of
|
|
268
|
+
* MLKEM{512,768,1024}_PUBLICKEYBYTES bytes.
|
|
269
|
+
* @param[in] coins Input randomness, an array of MLKEM_SYMBYTES bytes.
|
|
270
|
+
* @param context Application context. Only present when
|
|
271
|
+
* MLK_CONFIG_CONTEXT_PARAMETER is defined; type set by
|
|
272
|
+
* MLK_CONFIG_CONTEXT_PARAMETER_TYPE.
|
|
273
|
+
*
|
|
274
|
+
* @retval 0 Success.
|
|
275
|
+
* @retval MLK_ERR_FAIL The 'modulus check' @[FIPS203, Section 7.2]
|
|
276
|
+
* for the public key failed.
|
|
277
|
+
* @retval MLK_ERR_OUT_OF_MEMORY MLK_CONFIG_CUSTOM_ALLOC_FREE was used and
|
|
278
|
+
* MLK_CUSTOM_ALLOC returned NULL.
|
|
279
|
+
*/
|
|
287
280
|
MLK_API_QUALIFIER
|
|
288
281
|
MLK_API_MUST_CHECK_RETURN_VALUE
|
|
289
282
|
int MLK_API_NAMESPACE(enc_derand)(
|
|
@@ -298,29 +291,27 @@ int MLK_API_NAMESPACE(enc_derand)(
|
|
|
298
291
|
);
|
|
299
292
|
|
|
300
293
|
#if !defined(MLK_CONFIG_NO_RANDOMIZED_API)
|
|
301
|
-
|
|
302
|
-
*
|
|
303
|
-
*
|
|
304
|
-
*
|
|
305
|
-
*
|
|
306
|
-
*
|
|
307
|
-
*
|
|
308
|
-
*
|
|
309
|
-
*
|
|
310
|
-
*
|
|
311
|
-
*
|
|
312
|
-
*
|
|
313
|
-
*
|
|
314
|
-
*
|
|
315
|
-
*
|
|
316
|
-
*
|
|
317
|
-
*
|
|
318
|
-
*
|
|
319
|
-
*
|
|
320
|
-
*
|
|
321
|
-
|
|
322
|
-
*
|
|
323
|
-
**************************************************/
|
|
294
|
+
/**
|
|
295
|
+
* Generate ciphertext and shared secret for a given public key.
|
|
296
|
+
*
|
|
297
|
+
* @spec{Implements @[FIPS203, Algorithm 20, ML-KEM.Encaps].}
|
|
298
|
+
*
|
|
299
|
+
* @param[out] ct Output ciphertext, an array of
|
|
300
|
+
* MLKEM{512,768,1024}_CIPHERTEXTBYTES bytes.
|
|
301
|
+
* @param[out] ss Output shared secret, an array of MLKEM_BYTES bytes.
|
|
302
|
+
* @param[in] pk Input public key, an array of
|
|
303
|
+
* MLKEM{512,768,1024}_PUBLICKEYBYTES bytes.
|
|
304
|
+
* @param context Application context. Only present when
|
|
305
|
+
* MLK_CONFIG_CONTEXT_PARAMETER is defined; type set by
|
|
306
|
+
* MLK_CONFIG_CONTEXT_PARAMETER_TYPE.
|
|
307
|
+
*
|
|
308
|
+
* @retval 0 Success.
|
|
309
|
+
* @retval MLK_ERR_FAIL The 'modulus check' @[FIPS203, Section 7.2]
|
|
310
|
+
* for the public key failed.
|
|
311
|
+
* @retval MLK_ERR_OUT_OF_MEMORY MLK_CONFIG_CUSTOM_ALLOC_FREE was used and
|
|
312
|
+
* MLK_CUSTOM_ALLOC returned NULL.
|
|
313
|
+
* @retval MLK_ERR_RNG_FAIL Random number generation failed.
|
|
314
|
+
*/
|
|
324
315
|
MLK_API_QUALIFIER
|
|
325
316
|
MLK_API_MUST_CHECK_RETURN_VALUE
|
|
326
317
|
int MLK_API_NAMESPACE(enc)(
|
|
@@ -334,28 +325,26 @@ int MLK_API_NAMESPACE(enc)(
|
|
|
334
325
|
);
|
|
335
326
|
#endif /* !MLK_CONFIG_NO_RANDOMIZED_API */
|
|
336
327
|
|
|
337
|
-
|
|
338
|
-
*
|
|
339
|
-
*
|
|
340
|
-
*
|
|
341
|
-
*
|
|
342
|
-
*
|
|
343
|
-
*
|
|
344
|
-
*
|
|
345
|
-
*
|
|
346
|
-
*
|
|
347
|
-
*
|
|
348
|
-
*
|
|
349
|
-
*
|
|
350
|
-
*
|
|
351
|
-
*
|
|
352
|
-
*
|
|
353
|
-
*
|
|
354
|
-
*
|
|
355
|
-
*
|
|
356
|
-
|
|
357
|
-
*
|
|
358
|
-
**************************************************/
|
|
328
|
+
/**
|
|
329
|
+
* Generate shared secret for a given ciphertext and private key.
|
|
330
|
+
*
|
|
331
|
+
* @spec{Implements @[FIPS203, Algorithm 21, ML-KEM.Decaps].}
|
|
332
|
+
*
|
|
333
|
+
* @param[out] ss Output shared secret, an array of MLKEM_BYTES bytes.
|
|
334
|
+
* @param[in] ct Input ciphertext, an array of
|
|
335
|
+
* MLKEM{512,768,1024}_CIPHERTEXTBYTES bytes.
|
|
336
|
+
* @param[in] sk Input private key, an array of
|
|
337
|
+
* MLKEM{512,768,1024}_SECRETKEYBYTES bytes.
|
|
338
|
+
* @param context Application context. Only present when
|
|
339
|
+
* MLK_CONFIG_CONTEXT_PARAMETER is defined; type set by
|
|
340
|
+
* MLK_CONFIG_CONTEXT_PARAMETER_TYPE.
|
|
341
|
+
*
|
|
342
|
+
* @retval 0 Success.
|
|
343
|
+
* @retval MLK_ERR_FAIL The 'hash check' @[FIPS203, Section 7.3]
|
|
344
|
+
* for the secret key failed.
|
|
345
|
+
* @retval MLK_ERR_OUT_OF_MEMORY MLK_CONFIG_CUSTOM_ALLOC_FREE was used and
|
|
346
|
+
* MLK_CUSTOM_ALLOC returned NULL.
|
|
347
|
+
*/
|
|
359
348
|
MLK_API_QUALIFIER
|
|
360
349
|
MLK_API_MUST_CHECK_RETURN_VALUE
|
|
361
350
|
int MLK_API_NAMESPACE(dec)(
|
|
@@ -369,23 +358,23 @@ int MLK_API_NAMESPACE(dec)(
|
|
|
369
358
|
);
|
|
370
359
|
|
|
371
360
|
|
|
372
|
-
|
|
373
|
-
*
|
|
361
|
+
/**
|
|
362
|
+
* Implements modulus check mandated by FIPS 203, i.e., ensures that
|
|
363
|
+
* coefficients are in [0,q-1].
|
|
374
364
|
*
|
|
375
|
-
*
|
|
376
|
-
* i.e., ensures that coefficients are in [0,q-1].
|
|
365
|
+
* @spec{Implements @[FIPS203, Section 7.2, 'modulus check'].}
|
|
377
366
|
*
|
|
378
|
-
*
|
|
379
|
-
*
|
|
367
|
+
* @param[in] pk Input public key, an array of
|
|
368
|
+
* MLKEM{512,768,1024}_PUBLICKEYBYTES bytes.
|
|
369
|
+
* @param context Application context. Only present when
|
|
370
|
+
* MLK_CONFIG_CONTEXT_PARAMETER is defined; type set by
|
|
371
|
+
* MLK_CONFIG_CONTEXT_PARAMETER_TYPE.
|
|
380
372
|
*
|
|
381
|
-
*
|
|
382
|
-
*
|
|
383
|
-
*
|
|
384
|
-
*
|
|
385
|
-
|
|
386
|
-
* Specification: Implements @[FIPS203, Section 7.2, 'modulus check']
|
|
387
|
-
*
|
|
388
|
-
**************************************************/
|
|
373
|
+
* @retval 0 Success.
|
|
374
|
+
* @retval MLK_ERR_FAIL Modulus check failed.
|
|
375
|
+
* @retval MLK_ERR_OUT_OF_MEMORY MLK_CONFIG_CUSTOM_ALLOC_FREE was used and
|
|
376
|
+
* MLK_CUSTOM_ALLOC returned NULL.
|
|
377
|
+
*/
|
|
389
378
|
MLK_API_QUALIFIER
|
|
390
379
|
MLK_API_MUST_CHECK_RETURN_VALUE
|
|
391
380
|
int MLK_API_NAMESPACE(check_pk)(
|
|
@@ -396,24 +385,23 @@ int MLK_API_NAMESPACE(check_pk)(
|
|
|
396
385
|
#endif
|
|
397
386
|
);
|
|
398
387
|
|
|
399
|
-
|
|
400
|
-
*
|
|
401
|
-
*
|
|
402
|
-
* Description: Implements public key hash check mandated by FIPS 203,
|
|
403
|
-
* i.e., ensures that
|
|
404
|
-
* sk[768𝑘+32 ∶ 768𝑘+64] = H(pk)= H(sk[384𝑘 : 768𝑘+32])
|
|
405
|
-
*
|
|
406
|
-
* Arguments: - const uint8_t *sk: pointer to input private key, an array of
|
|
407
|
-
* MLKEM{512,768,1024}_SECRETKEYBYTES bytes.
|
|
388
|
+
/**
|
|
389
|
+
* Implements public key hash check mandated by FIPS 203, i.e., ensures that
|
|
390
|
+
* sk[768𝑘+32 ∶ 768𝑘+64] = H(pk) = H(sk[384𝑘 : 768𝑘+32]).
|
|
408
391
|
*
|
|
409
|
-
*
|
|
410
|
-
* - MLK_ERR_FAIL: If the public key hash check failed.
|
|
411
|
-
* - MLK_ERR_OUT_OF_MEMORY: If MLK_CONFIG_CUSTOM_ALLOC_FREE is
|
|
412
|
-
* used and an allocation via MLK_CUSTOM_ALLOC returned NULL.
|
|
392
|
+
* @spec{Implements @[FIPS203, Section 7.3, 'hash check'].}
|
|
413
393
|
*
|
|
414
|
-
*
|
|
394
|
+
* @param[in] sk Input private key, an array of
|
|
395
|
+
* MLKEM{512,768,1024}_SECRETKEYBYTES bytes.
|
|
396
|
+
* @param context Application context. Only present when
|
|
397
|
+
* MLK_CONFIG_CONTEXT_PARAMETER is defined; type set by
|
|
398
|
+
* MLK_CONFIG_CONTEXT_PARAMETER_TYPE.
|
|
415
399
|
*
|
|
416
|
-
|
|
400
|
+
* @retval 0 Success.
|
|
401
|
+
* @retval MLK_ERR_FAIL Public key hash check failed.
|
|
402
|
+
* @retval MLK_ERR_OUT_OF_MEMORY MLK_CONFIG_CUSTOM_ALLOC_FREE was used and
|
|
403
|
+
* MLK_CUSTOM_ALLOC returned NULL.
|
|
404
|
+
*/
|
|
417
405
|
MLK_API_QUALIFIER
|
|
418
406
|
MLK_API_MUST_CHECK_RETURN_VALUE
|
|
419
407
|
int MLK_API_NAMESPACE(check_sk)(
|
|
@@ -465,7 +453,6 @@ int MLK_API_NAMESPACE(check_sk)(
|
|
|
465
453
|
#undef MLK_API_NAMESPACE
|
|
466
454
|
#undef MLK_API_MUST_CHECK_RETURN_VALUE
|
|
467
455
|
#undef MLK_API_QUALIFIER
|
|
468
|
-
#undef MLK_API_LEGACY_CONFIG
|
|
469
456
|
|
|
470
457
|
#endif /* MLK_CONFIG_API_NO_SUPERCOP */
|
|
471
458
|
#endif /* !MLK_CONFIG_API_CONSTANTS_ONLY */
|
|
@@ -535,4 +522,6 @@ int MLK_API_NAMESPACE(check_sk)(
|
|
|
535
522
|
MLK_MAX3_(MLK_TOTAL_ALLOC_1024_KEYPAIR, MLK_TOTAL_ALLOC_1024_ENCAPS, \
|
|
536
523
|
MLK_TOTAL_ALLOC_1024_DECAPS)
|
|
537
524
|
|
|
525
|
+
#undef MLK_API_LEGACY_CONFIG
|
|
526
|
+
|
|
538
527
|
#endif /* !MLK_H */
|
|
@@ -60,53 +60,59 @@
|
|
|
60
60
|
|
|
61
61
|
#if defined(MLK_CONFIG_USE_NATIVE_BACKEND_ARITH)
|
|
62
62
|
#if defined(MLK_SYS_AARCH64)
|
|
63
|
-
#include "src/native/aarch64/src/
|
|
64
|
-
#include "src/native/aarch64/src/
|
|
65
|
-
#include "src/native/aarch64/src/
|
|
66
|
-
#include "src/native/aarch64/src/
|
|
67
|
-
#include "src/native/aarch64/src/
|
|
68
|
-
#include "src/native/aarch64/src/
|
|
69
|
-
#include "src/native/aarch64/src/
|
|
70
|
-
#include "src/native/aarch64/src/
|
|
71
|
-
#include "src/native/aarch64/src/
|
|
72
|
-
#include "src/native/aarch64/src/
|
|
63
|
+
#include "src/native/aarch64/src/intt_aarch64_asm.S"
|
|
64
|
+
#include "src/native/aarch64/src/ntt_aarch64_asm.S"
|
|
65
|
+
#include "src/native/aarch64/src/poly_mulcache_compute_aarch64_asm.S"
|
|
66
|
+
#include "src/native/aarch64/src/poly_reduce_aarch64_asm.S"
|
|
67
|
+
#include "src/native/aarch64/src/poly_tobytes_aarch64_asm.S"
|
|
68
|
+
#include "src/native/aarch64/src/poly_tomont_aarch64_asm.S"
|
|
69
|
+
#include "src/native/aarch64/src/polyvec_basemul_acc_montgomery_cached_k2_aarch64_asm.S"
|
|
70
|
+
#include "src/native/aarch64/src/polyvec_basemul_acc_montgomery_cached_k3_aarch64_asm.S"
|
|
71
|
+
#include "src/native/aarch64/src/polyvec_basemul_acc_montgomery_cached_k4_aarch64_asm.S"
|
|
72
|
+
#include "src/native/aarch64/src/rej_uniform_aarch64_asm.S"
|
|
73
73
|
#endif /* MLK_SYS_AARCH64 */
|
|
74
74
|
#if defined(MLK_SYS_X86_64)
|
|
75
|
-
#include "src/native/x86_64/src/
|
|
76
|
-
#include "src/native/x86_64/src/
|
|
77
|
-
#include "src/native/x86_64/src/
|
|
78
|
-
#include "src/native/x86_64/src/
|
|
79
|
-
#include "src/native/x86_64/src/
|
|
80
|
-
#include "src/native/x86_64/src/
|
|
81
|
-
#include "src/native/x86_64/src/
|
|
82
|
-
#include "src/native/x86_64/src/
|
|
83
|
-
#include "src/native/x86_64/src/
|
|
84
|
-
#include "src/native/x86_64/src/
|
|
85
|
-
#include "src/native/x86_64/src/
|
|
86
|
-
#include "src/native/x86_64/src/
|
|
87
|
-
#include "src/native/x86_64/src/
|
|
88
|
-
#include "src/native/x86_64/src/
|
|
89
|
-
#include "src/native/x86_64/src/
|
|
90
|
-
#include "src/native/x86_64/src/
|
|
91
|
-
#include "src/native/x86_64/src/
|
|
92
|
-
#include "src/native/x86_64/src/
|
|
93
|
-
#include "src/native/x86_64/src/
|
|
94
|
-
#include "src/native/x86_64/src/
|
|
75
|
+
#include "src/native/x86_64/src/intt_avx2_asm.S"
|
|
76
|
+
#include "src/native/x86_64/src/ntt_avx2_asm.S"
|
|
77
|
+
#include "src/native/x86_64/src/nttfrombytes_avx2_asm.S"
|
|
78
|
+
#include "src/native/x86_64/src/ntttobytes_avx2_asm.S"
|
|
79
|
+
#include "src/native/x86_64/src/nttunpack_avx2_asm.S"
|
|
80
|
+
#include "src/native/x86_64/src/poly_compress_d10_avx2_asm.S"
|
|
81
|
+
#include "src/native/x86_64/src/poly_compress_d11_avx2_asm.S"
|
|
82
|
+
#include "src/native/x86_64/src/poly_compress_d4_avx2_asm.S"
|
|
83
|
+
#include "src/native/x86_64/src/poly_compress_d5_avx2_asm.S"
|
|
84
|
+
#include "src/native/x86_64/src/poly_decompress_d10_avx2_asm.S"
|
|
85
|
+
#include "src/native/x86_64/src/poly_decompress_d11_avx2_asm.S"
|
|
86
|
+
#include "src/native/x86_64/src/poly_decompress_d4_avx2_asm.S"
|
|
87
|
+
#include "src/native/x86_64/src/poly_decompress_d5_avx2_asm.S"
|
|
88
|
+
#include "src/native/x86_64/src/poly_mulcache_compute_avx2_asm.S"
|
|
89
|
+
#include "src/native/x86_64/src/polyvec_basemul_acc_montgomery_cached_k2_avx2_asm.S"
|
|
90
|
+
#include "src/native/x86_64/src/polyvec_basemul_acc_montgomery_cached_k3_avx2_asm.S"
|
|
91
|
+
#include "src/native/x86_64/src/polyvec_basemul_acc_montgomery_cached_k4_avx2_asm.S"
|
|
92
|
+
#include "src/native/x86_64/src/reduce_avx2_asm.S"
|
|
93
|
+
#include "src/native/x86_64/src/rej_uniform_avx2_asm.S"
|
|
94
|
+
#include "src/native/x86_64/src/tomont_avx2_asm.S"
|
|
95
95
|
#endif /* MLK_SYS_X86_64 */
|
|
96
96
|
#if defined(MLK_SYS_RISCV64)
|
|
97
97
|
#endif
|
|
98
|
+
#if defined(MLK_SYS_PPC64LE)
|
|
99
|
+
#include "src/native/ppc64le/src/intt_ppc_asm.S"
|
|
100
|
+
#include "src/native/ppc64le/src/ntt_ppc_asm.S"
|
|
101
|
+
#include "src/native/ppc64le/src/poly_tomont_ppc_asm.S"
|
|
102
|
+
#include "src/native/ppc64le/src/reduce_ppc_asm.S"
|
|
103
|
+
#endif /* MLK_SYS_PPC64LE */
|
|
98
104
|
#endif /* MLK_CONFIG_USE_NATIVE_BACKEND_ARITH */
|
|
99
105
|
|
|
100
106
|
#if defined(MLK_CONFIG_USE_NATIVE_BACKEND_FIPS202)
|
|
101
107
|
#if defined(MLK_SYS_AARCH64)
|
|
102
|
-
#include "src/fips202/native/aarch64/src/
|
|
103
|
-
#include "src/fips202/native/aarch64/src/
|
|
104
|
-
#include "src/fips202/native/aarch64/src/
|
|
105
|
-
#include "src/fips202/native/aarch64/src/
|
|
106
|
-
#include "src/fips202/native/aarch64/src/
|
|
108
|
+
#include "src/fips202/native/aarch64/src/keccak_f1600_x1_scalar_aarch64_asm.S"
|
|
109
|
+
#include "src/fips202/native/aarch64/src/keccak_f1600_x1_v84a_aarch64_asm.S"
|
|
110
|
+
#include "src/fips202/native/aarch64/src/keccak_f1600_x2_v84a_aarch64_asm.S"
|
|
111
|
+
#include "src/fips202/native/aarch64/src/keccak_f1600_x4_v8a_scalar_hybrid_aarch64_asm.S"
|
|
112
|
+
#include "src/fips202/native/aarch64/src/keccak_f1600_x4_v8a_v84a_scalar_hybrid_aarch64_asm.S"
|
|
107
113
|
#endif /* MLK_SYS_AARCH64 */
|
|
108
114
|
#if defined(MLK_SYS_X86_64)
|
|
109
|
-
#include "src/fips202/native/x86_64/src/
|
|
115
|
+
#include "src/fips202/native/x86_64/src/keccak_f1600_x4_avx2_asm.S"
|
|
110
116
|
#endif
|
|
111
117
|
#if defined(MLK_SYS_ARMV81M_MVE)
|
|
112
118
|
#include "src/fips202/native/armv81m/src/keccak_f1600_x4_mve.S"
|
|
@@ -234,6 +240,8 @@
|
|
|
234
240
|
#undef MLK_FIPS202_HEADER_FILE
|
|
235
241
|
#undef MLK_FREE
|
|
236
242
|
#undef MLK_INTERNAL_API
|
|
243
|
+
#undef MLK_INTERNAL_DATA_DECLARATION
|
|
244
|
+
#undef MLK_INTERNAL_DATA_DEFINITION
|
|
237
245
|
#undef MLK_NAMESPACE
|
|
238
246
|
#undef MLK_NAMESPACE_K
|
|
239
247
|
#undef MLK_NAMESPACE_PREFIX
|
|
@@ -386,8 +394,11 @@
|
|
|
386
394
|
#undef MLK_HAVE_INLINE_ASM
|
|
387
395
|
#undef MLK_INLINE
|
|
388
396
|
#undef MLK_MUST_CHECK_RETURN_VALUE
|
|
397
|
+
#undef MLK_NOINLINE
|
|
389
398
|
#undef MLK_RESTRICT
|
|
390
399
|
#undef MLK_STATIC_TESTABLE
|
|
400
|
+
#undef MLK_SYSV_ABI
|
|
401
|
+
#undef MLK_SYSV_ABI_SUPPORTED
|
|
391
402
|
#undef MLK_SYS_AARCH64
|
|
392
403
|
#undef MLK_SYS_AARCH64_EB
|
|
393
404
|
#undef MLK_SYS_APPLE
|
|
@@ -467,11 +478,11 @@
|
|
|
467
478
|
#undef MLK_FIPS202_NATIVE_AARCH64_AUTO_H
|
|
468
479
|
/* mlkem/src/fips202/native/aarch64/src/fips202_native_aarch64.h */
|
|
469
480
|
#undef MLK_FIPS202_NATIVE_AARCH64_SRC_FIPS202_NATIVE_AARCH64_H
|
|
470
|
-
#undef
|
|
471
|
-
#undef
|
|
472
|
-
#undef
|
|
473
|
-
#undef
|
|
474
|
-
#undef
|
|
481
|
+
#undef mlk_keccak_f1600_x1_scalar_aarch64_asm
|
|
482
|
+
#undef mlk_keccak_f1600_x1_v84a_aarch64_asm
|
|
483
|
+
#undef mlk_keccak_f1600_x2_v84a_aarch64_asm
|
|
484
|
+
#undef mlk_keccak_f1600_x4_v8a_scalar_hybrid_aarch64_asm
|
|
485
|
+
#undef mlk_keccak_f1600_x4_v8a_v84a_scalar_hybrid_aarch64_asm
|
|
475
486
|
#undef mlk_keccakf1600_round_constants
|
|
476
487
|
/* mlkem/src/fips202/native/aarch64/x1_scalar.h */
|
|
477
488
|
#undef MLK_FIPS202_AARCH64_NEED_X1_SCALAR
|
|
@@ -504,7 +515,7 @@
|
|
|
504
515
|
#undef MLK_USE_FIPS202_X4_NATIVE
|
|
505
516
|
/* mlkem/src/fips202/native/x86_64/src/fips202_native_x86_64.h */
|
|
506
517
|
#undef MLK_FIPS202_NATIVE_X86_64_SRC_FIPS202_NATIVE_X86_64_H
|
|
507
|
-
#undef
|
|
518
|
+
#undef mlk_keccak_f1600_x4_avx2_asm
|
|
508
519
|
#undef mlk_keccak_rho56
|
|
509
520
|
#undef mlk_keccak_rho8
|
|
510
521
|
#undef mlk_keccakf1600_round_constants
|
|
@@ -563,16 +574,16 @@
|
|
|
563
574
|
#undef mlk_aarch64_ntt_zetas_layer67
|
|
564
575
|
#undef mlk_aarch64_zetas_mulcache_native
|
|
565
576
|
#undef mlk_aarch64_zetas_mulcache_twisted_native
|
|
566
|
-
#undef
|
|
567
|
-
#undef
|
|
568
|
-
#undef
|
|
569
|
-
#undef
|
|
570
|
-
#undef
|
|
571
|
-
#undef
|
|
572
|
-
#undef
|
|
573
|
-
#undef
|
|
574
|
-
#undef
|
|
575
|
-
#undef
|
|
577
|
+
#undef mlk_intt_aarch64_asm
|
|
578
|
+
#undef mlk_ntt_aarch64_asm
|
|
579
|
+
#undef mlk_poly_mulcache_compute_aarch64_asm
|
|
580
|
+
#undef mlk_poly_reduce_aarch64_asm
|
|
581
|
+
#undef mlk_poly_tobytes_aarch64_asm
|
|
582
|
+
#undef mlk_poly_tomont_aarch64_asm
|
|
583
|
+
#undef mlk_polyvec_basemul_acc_montgomery_cached_k2_aarch64_asm
|
|
584
|
+
#undef mlk_polyvec_basemul_acc_montgomery_cached_k3_aarch64_asm
|
|
585
|
+
#undef mlk_polyvec_basemul_acc_montgomery_cached_k4_aarch64_asm
|
|
586
|
+
#undef mlk_rej_uniform_aarch64_asm
|
|
576
587
|
#undef mlk_rej_uniform_table
|
|
577
588
|
#endif /* MLK_SYS_AARCH64 */
|
|
578
589
|
#if defined(MLK_SYS_X86_64)
|
|
@@ -603,27 +614,27 @@
|
|
|
603
614
|
/* mlkem/src/native/x86_64/src/arith_native_x86_64.h */
|
|
604
615
|
#undef MLK_AVX2_REJ_UNIFORM_BUFLEN
|
|
605
616
|
#undef MLK_NATIVE_X86_64_SRC_ARITH_NATIVE_X86_64_H
|
|
606
|
-
#undef
|
|
607
|
-
#undef
|
|
608
|
-
#undef
|
|
609
|
-
#undef
|
|
610
|
-
#undef
|
|
611
|
-
#undef
|
|
612
|
-
#undef
|
|
613
|
-
#undef
|
|
614
|
-
#undef
|
|
615
|
-
#undef
|
|
616
|
-
#undef
|
|
617
|
-
#undef
|
|
618
|
-
#undef
|
|
619
|
-
#undef
|
|
620
|
-
#undef
|
|
621
|
-
#undef
|
|
622
|
-
#undef
|
|
623
|
-
#undef
|
|
624
|
-
#undef
|
|
617
|
+
#undef mlk_invntt_avx2_asm
|
|
618
|
+
#undef mlk_ntt_avx2_asm
|
|
619
|
+
#undef mlk_nttfrombytes_avx2_asm
|
|
620
|
+
#undef mlk_ntttobytes_avx2_asm
|
|
621
|
+
#undef mlk_nttunpack_avx2_asm
|
|
622
|
+
#undef mlk_poly_compress_d10_avx2_asm
|
|
623
|
+
#undef mlk_poly_compress_d11_avx2_asm
|
|
624
|
+
#undef mlk_poly_compress_d4_avx2_asm
|
|
625
|
+
#undef mlk_poly_compress_d5_avx2_asm
|
|
626
|
+
#undef mlk_poly_decompress_d10_avx2_asm
|
|
627
|
+
#undef mlk_poly_decompress_d11_avx2_asm
|
|
628
|
+
#undef mlk_poly_decompress_d4_avx2_asm
|
|
629
|
+
#undef mlk_poly_decompress_d5_avx2_asm
|
|
630
|
+
#undef mlk_poly_mulcache_compute_avx2_asm
|
|
631
|
+
#undef mlk_polyvec_basemul_acc_montgomery_cached_k2_avx2_asm
|
|
632
|
+
#undef mlk_polyvec_basemul_acc_montgomery_cached_k3_avx2_asm
|
|
633
|
+
#undef mlk_polyvec_basemul_acc_montgomery_cached_k4_avx2_asm
|
|
634
|
+
#undef mlk_reduce_avx2_asm
|
|
635
|
+
#undef mlk_rej_uniform_avx2_asm
|
|
625
636
|
#undef mlk_rej_uniform_table
|
|
626
|
-
#undef
|
|
637
|
+
#undef mlk_tomont_avx2_asm
|
|
627
638
|
/* mlkem/src/native/x86_64/src/compress_consts.h */
|
|
628
639
|
#undef MLK_NATIVE_X86_64_SRC_COMPRESS_CONSTS_H
|
|
629
640
|
#undef mlk_compress_d10_data
|
|
@@ -677,5 +688,38 @@
|
|
|
677
688
|
#undef mlk_debug_check_bounds_int16m1
|
|
678
689
|
#undef mlk_debug_check_bounds_int16m2
|
|
679
690
|
#endif /* MLK_SYS_RISCV64 */
|
|
691
|
+
#if defined(MLK_SYS_PPC64LE)
|
|
692
|
+
/*
|
|
693
|
+
* Undefine macros from native code (Arith, PPC64LE)
|
|
694
|
+
*/
|
|
695
|
+
/* mlkem/src/native/ppc64le/meta.h */
|
|
696
|
+
#undef MLK_ARITH_BACKEND_NAME
|
|
697
|
+
#undef MLK_ARITH_BACKEND_PPC64LE_DEFAULT
|
|
698
|
+
#undef MLK_NATIVE_PPC64LE_META_H
|
|
699
|
+
#undef MLK_USE_NATIVE_INTT
|
|
700
|
+
#undef MLK_USE_NATIVE_NTT
|
|
701
|
+
#undef MLK_USE_NATIVE_POLY_REDUCE
|
|
702
|
+
#undef MLK_USE_NATIVE_POLY_TOMONT
|
|
703
|
+
/* mlkem/src/native/ppc64le/src/arith_native_ppc64le.h */
|
|
704
|
+
#undef MLK_NATIVE_PPC64LE_SRC_ARITH_NATIVE_PPC64LE_H
|
|
705
|
+
#undef mlk_intt_ppc_asm
|
|
706
|
+
#undef mlk_ntt_ppc_asm
|
|
707
|
+
#undef mlk_poly_tomont_ppc_asm
|
|
708
|
+
#undef mlk_reduce_ppc_asm
|
|
709
|
+
/* mlkem/src/native/ppc64le/src/consts.h */
|
|
710
|
+
#undef MLK_NATIVE_PPC64LE_SRC_CONSTS_H
|
|
711
|
+
#undef MLK_PPC_C20159_OFFSET
|
|
712
|
+
#undef MLK_PPC_NQ_OFFSET
|
|
713
|
+
#undef MLK_PPC_N_INV_OFFSET
|
|
714
|
+
#undef MLK_PPC_N_INV_TW_OFFSET
|
|
715
|
+
#undef MLK_PPC_Q_OFFSET
|
|
716
|
+
#undef MLK_PPC_TOMONT_OFFSET
|
|
717
|
+
#undef MLK_PPC_TOMONT_TW_OFFSET
|
|
718
|
+
#undef MLK_PPC_ZETA_INTT_OFFSET
|
|
719
|
+
#undef MLK_PPC_ZETA_INTT_TW_OFFSET
|
|
720
|
+
#undef MLK_PPC_ZETA_NTT_OFFSET
|
|
721
|
+
#undef MLK_PPC_ZETA_NTT_TW_OFFSET
|
|
722
|
+
#undef mlk_ppc_qdata
|
|
723
|
+
#endif /* MLK_SYS_PPC64LE */
|
|
680
724
|
#endif /* MLK_CONFIG_USE_NATIVE_BACKEND_ARITH */
|
|
681
725
|
#endif /* !MLK_CONFIG_MONOBUILD_KEEP_SHARED_HEADERS */
|