700 lines
21 KiB
C
700 lines
21 KiB
C
/*
|
|
* Copyright (c) The mlkem-native project authors
|
|
* SPDX-License-Identifier: Apache-2.0 OR ISC OR MIT
|
|
*/
|
|
|
|
/*
|
|
* WARNING: This file is auto-generated from scripts/autogen
|
|
* in the mlkem-native repository.
|
|
* Do not modify it directly.
|
|
*/
|
|
|
|
/******************************************************************************
|
|
*
|
|
* Single compilation unit (SCU) for fixed-level build of mlkem-native
|
|
*
|
|
* This compilation unit bundles together all source files for a build
|
|
* of mlkem-native for a fixed security level (MLKEM-512/768/1024).
|
|
*
|
|
* # API
|
|
*
|
|
* The API exposed by this file is described in mlkem_native.h.
|
|
*
|
|
* # Multi-level build
|
|
*
|
|
* If you want an SCU build of mlkem-native with support for multiple security
|
|
* levels, you need to include this file multiple times, and set
|
|
* MLK_CONFIG_MULTILEVEL_WITH_SHARED and MLK_CONFIG_MULTILEVEL_NO_SHARED
|
|
* appropriately. This is exemplified in examples/monolithic_build_multilevel
|
|
* and examples/monolithic_build_multilevel_native.
|
|
*
|
|
* # Configuration
|
|
*
|
|
* The following options from the mlkem-native configuration are relevant:
|
|
*
|
|
* - MLK_CONFIG_FIPS202_CUSTOM_HEADER
|
|
* Set this option if you use a custom FIPS202 implementation.
|
|
*
|
|
* - MLK_CONFIG_USE_NATIVE_BACKEND_ARITH
|
|
* Set this option if you want to include the native arithmetic backends
|
|
* in your build.
|
|
*
|
|
* - MLK_CONFIG_USE_NATIVE_BACKEND_FIPS202
|
|
* Set this option if you want to include the native FIPS202 backends
|
|
* in your build.
|
|
*
|
|
* - MLK_CONFIG_MONOBUILD_KEEP_SHARED_HEADERS
|
|
* Set this option if you want to keep the directives defined in
|
|
* level-independent headers. This is needed for a multi-level build.
|
|
*/
|
|
|
|
/* If parts of the mlkem-native source tree are not used,
|
|
* consider reducing this header via `unifdef`.
|
|
*
|
|
* Example:
|
|
* ```bash
|
|
* unifdef -UMLK_CONFIG_USE_NATIVE_BACKEND_ARITH mlkem_native.c
|
|
* ```
|
|
*/
|
|
|
|
#include "src/common.h"
|
|
|
|
#include "src/compress.c"
|
|
#include "src/debug.c"
|
|
#include "src/indcpa.c"
|
|
#include "src/kem.c"
|
|
#include "src/poly.c"
|
|
#include "src/poly_k.c"
|
|
#include "src/sampling.c"
|
|
#include "src/verify.c"
|
|
|
|
#if !defined(MLK_CONFIG_FIPS202_CUSTOM_HEADER)
|
|
#include "src/fips202/fips202.c"
|
|
#include "src/fips202/fips202x4.c"
|
|
#include "src/fips202/keccakf1600.c"
|
|
#endif
|
|
|
|
#if defined(MLK_CONFIG_USE_NATIVE_BACKEND_ARITH)
|
|
#if defined(MLK_SYS_AARCH64)
|
|
#include "src/native/aarch64/src/aarch64_zetas.c"
|
|
#include "src/native/aarch64/src/rej_uniform_table.c"
|
|
#endif
|
|
#if defined(MLK_SYS_X86_64)
|
|
#include "src/native/x86_64/src/compress_consts.c"
|
|
#include "src/native/x86_64/src/consts.c"
|
|
#include "src/native/x86_64/src/rej_uniform_table.c"
|
|
#endif
|
|
#if defined(MLK_SYS_RISCV64)
|
|
#include "src/native/riscv64/src/rv64v_debug.c"
|
|
#include "src/native/riscv64/src/rv64v_poly.c"
|
|
#endif
|
|
#if defined(MLK_SYS_PPC64LE)
|
|
#include "src/native/ppc64le/src/consts.c"
|
|
#endif
|
|
#endif /* MLK_CONFIG_USE_NATIVE_BACKEND_ARITH */
|
|
|
|
#if defined(MLK_CONFIG_USE_NATIVE_BACKEND_FIPS202)
|
|
#if defined(MLK_SYS_AARCH64)
|
|
#include "src/fips202/native/aarch64/src/keccakf1600_round_constants.c"
|
|
#endif
|
|
#if defined(MLK_SYS_X86_64)
|
|
#include "src/fips202/native/x86_64/src/keccakf1600_constants.c"
|
|
#endif
|
|
#if defined(MLK_SYS_ARMV81M_MVE)
|
|
#include "src/fips202/native/armv81m/src/keccak_f1600_x4_mve.c"
|
|
#include "src/fips202/native/armv81m/src/keccakf1600_round_constants.c"
|
|
#endif
|
|
#endif /* MLK_CONFIG_USE_NATIVE_BACKEND_FIPS202 */
|
|
|
|
/* Macro #undef's
|
|
*
|
|
* The following undefines macros from headers
|
|
* included by the source files imported above.
|
|
*
|
|
* This is to allow building and linking multiple builds
|
|
* of mlkem-native for varying parameter sets through concatenation
|
|
* of this file, as if the files had been compiled separately.
|
|
* If this is not relevant to you, you may remove the following.
|
|
*/
|
|
|
|
/*
|
|
* Undefine macros from MLK_CONFIG_PARAMETER_SET-specific files
|
|
*/
|
|
/* mlkem/mlkem_native.h */
|
|
#undef CRYPTO_BYTES
|
|
#undef CRYPTO_CIPHERTEXTBYTES
|
|
#undef CRYPTO_PUBLICKEYBYTES
|
|
#undef CRYPTO_SECRETKEYBYTES
|
|
#undef CRYPTO_SYMBYTES
|
|
#undef MLKEM1024_BYTES
|
|
#undef MLKEM1024_CIPHERTEXTBYTES
|
|
#undef MLKEM1024_PUBLICKEYBYTES
|
|
#undef MLKEM1024_SECRETKEYBYTES
|
|
#undef MLKEM1024_SYMBYTES
|
|
#undef MLKEM512_BYTES
|
|
#undef MLKEM512_CIPHERTEXTBYTES
|
|
#undef MLKEM512_PUBLICKEYBYTES
|
|
#undef MLKEM512_SECRETKEYBYTES
|
|
#undef MLKEM512_SYMBYTES
|
|
#undef MLKEM768_BYTES
|
|
#undef MLKEM768_CIPHERTEXTBYTES
|
|
#undef MLKEM768_PUBLICKEYBYTES
|
|
#undef MLKEM768_SECRETKEYBYTES
|
|
#undef MLKEM768_SYMBYTES
|
|
#undef MLKEM_BYTES
|
|
#undef MLKEM_CIPHERTEXTBYTES
|
|
#undef MLKEM_CIPHERTEXTBYTES_
|
|
#undef MLKEM_PUBLICKEYBYTES
|
|
#undef MLKEM_PUBLICKEYBYTES_
|
|
#undef MLKEM_SECRETKEYBYTES
|
|
#undef MLKEM_SECRETKEYBYTES_
|
|
#undef MLKEM_SYMBYTES
|
|
#undef MLK_API_CONCAT
|
|
#undef MLK_API_CONCAT_
|
|
#undef MLK_API_CONCAT_UNDERSCORE
|
|
#undef MLK_API_LEGACY_CONFIG
|
|
#undef MLK_API_MUST_CHECK_RETURN_VALUE
|
|
#undef MLK_API_NAMESPACE
|
|
#undef MLK_API_QUALIFIER
|
|
#undef MLK_CONFIG_API_CONSTANTS_ONLY
|
|
#undef MLK_CONFIG_API_NAMESPACE_PREFIX
|
|
#undef MLK_CONFIG_API_NO_SUPERCOP
|
|
#undef MLK_CONFIG_API_PARAMETER_SET
|
|
#undef MLK_CONFIG_API_QUALIFIER
|
|
#undef MLK_ERR_FAIL
|
|
#undef MLK_ERR_OUT_OF_MEMORY
|
|
#undef MLK_ERR_RNG_FAIL
|
|
#undef MLK_H
|
|
#undef MLK_MAX3_
|
|
#undef MLK_TOTAL_ALLOC_1024
|
|
#undef MLK_TOTAL_ALLOC_1024_DECAPS
|
|
#undef MLK_TOTAL_ALLOC_1024_ENCAPS
|
|
#undef MLK_TOTAL_ALLOC_1024_KEYPAIR
|
|
#undef MLK_TOTAL_ALLOC_1024_KEYPAIR_NO_PCT
|
|
#undef MLK_TOTAL_ALLOC_1024_KEYPAIR_PCT
|
|
#undef MLK_TOTAL_ALLOC_512
|
|
#undef MLK_TOTAL_ALLOC_512_DECAPS
|
|
#undef MLK_TOTAL_ALLOC_512_ENCAPS
|
|
#undef MLK_TOTAL_ALLOC_512_KEYPAIR
|
|
#undef MLK_TOTAL_ALLOC_512_KEYPAIR_NO_PCT
|
|
#undef MLK_TOTAL_ALLOC_512_KEYPAIR_PCT
|
|
#undef MLK_TOTAL_ALLOC_768
|
|
#undef MLK_TOTAL_ALLOC_768_DECAPS
|
|
#undef MLK_TOTAL_ALLOC_768_ENCAPS
|
|
#undef MLK_TOTAL_ALLOC_768_KEYPAIR
|
|
#undef MLK_TOTAL_ALLOC_768_KEYPAIR_NO_PCT
|
|
#undef MLK_TOTAL_ALLOC_768_KEYPAIR_PCT
|
|
#undef crypto_kem_check_pk
|
|
#undef crypto_kem_check_sk
|
|
#undef crypto_kem_dec
|
|
#undef crypto_kem_enc
|
|
#undef crypto_kem_enc_derand
|
|
#undef crypto_kem_keypair
|
|
#undef crypto_kem_keypair_derand
|
|
/* mlkem/src/common.h */
|
|
#undef MLK_ADD_PARAM_SET
|
|
#undef MLK_ALLOC
|
|
#undef MLK_APPLY
|
|
#undef MLK_ASM_FN_SIZE
|
|
#undef MLK_ASM_FN_SYMBOL
|
|
#undef MLK_ASM_NAMESPACE
|
|
#undef MLK_BUILD_INTERNAL
|
|
#undef MLK_COMMON_H
|
|
#undef MLK_CONCAT
|
|
#undef MLK_CONCAT_
|
|
#undef MLK_CONTEXT_PARAMETERS_0
|
|
#undef MLK_CONTEXT_PARAMETERS_1
|
|
#undef MLK_CONTEXT_PARAMETERS_2
|
|
#undef MLK_CONTEXT_PARAMETERS_3
|
|
#undef MLK_CONTEXT_PARAMETERS_4
|
|
#undef MLK_EMPTY_CU
|
|
#undef MLK_ERR_FAIL
|
|
#undef MLK_ERR_OUT_OF_MEMORY
|
|
#undef MLK_ERR_RNG_FAIL
|
|
#undef MLK_EXTERNAL_API
|
|
#undef MLK_FIPS202X4_HEADER_FILE
|
|
#undef MLK_FIPS202_HEADER_FILE
|
|
#undef MLK_FREE
|
|
#undef MLK_INTERNAL_API
|
|
#undef MLK_INTERNAL_DATA_DECLARATION
|
|
#undef MLK_INTERNAL_DATA_DEFINITION
|
|
#undef MLK_NAMESPACE
|
|
#undef MLK_NAMESPACE_K
|
|
#undef MLK_NAMESPACE_PREFIX
|
|
#undef MLK_NAMESPACE_PREFIX_K
|
|
#undef mlk_memcpy
|
|
#undef mlk_memset
|
|
/* mlkem/src/indcpa.h */
|
|
#undef MLK_INDCPA_H
|
|
#undef mlk_gen_matrix
|
|
#undef mlk_indcpa_dec
|
|
#undef mlk_indcpa_enc
|
|
#undef mlk_indcpa_keypair_derand
|
|
/* mlkem/src/kem.h */
|
|
#undef MLK_KEM_H
|
|
#undef mlk_kem_check_pk
|
|
#undef mlk_kem_check_sk
|
|
#undef mlk_kem_dec
|
|
#undef mlk_kem_enc
|
|
#undef mlk_kem_enc_derand
|
|
#undef mlk_kem_keypair
|
|
#undef mlk_kem_keypair_derand
|
|
/* mlkem/src/params.h */
|
|
#undef MLKEM_DU
|
|
#undef MLKEM_DV
|
|
#undef MLKEM_ETA1
|
|
#undef MLKEM_ETA2
|
|
#undef MLKEM_INDCCA_CIPHERTEXTBYTES
|
|
#undef MLKEM_INDCCA_PUBLICKEYBYTES
|
|
#undef MLKEM_INDCCA_SECRETKEYBYTES
|
|
#undef MLKEM_INDCPA_BYTES
|
|
#undef MLKEM_INDCPA_MSGBYTES
|
|
#undef MLKEM_INDCPA_PUBLICKEYBYTES
|
|
#undef MLKEM_INDCPA_SECRETKEYBYTES
|
|
#undef MLKEM_K
|
|
#undef MLKEM_N
|
|
#undef MLKEM_POLYBYTES
|
|
#undef MLKEM_POLYCOMPRESSEDBYTES_D10
|
|
#undef MLKEM_POLYCOMPRESSEDBYTES_D11
|
|
#undef MLKEM_POLYCOMPRESSEDBYTES_D4
|
|
#undef MLKEM_POLYCOMPRESSEDBYTES_D5
|
|
#undef MLKEM_POLYCOMPRESSEDBYTES_DU
|
|
#undef MLKEM_POLYCOMPRESSEDBYTES_DV
|
|
#undef MLKEM_POLYVECBYTES
|
|
#undef MLKEM_POLYVECCOMPRESSEDBYTES_DU
|
|
#undef MLKEM_Q
|
|
#undef MLKEM_Q_HALF
|
|
#undef MLKEM_SSBYTES
|
|
#undef MLKEM_SYMBYTES
|
|
#undef MLKEM_UINT12_LIMIT
|
|
#undef MLK_PARAMS_H
|
|
/* mlkem/src/poly_k.h */
|
|
#undef MLK_POLY_K_H
|
|
#undef mlk_poly_compress_du
|
|
#undef mlk_poly_compress_dv
|
|
#undef mlk_poly_decompress_du
|
|
#undef mlk_poly_decompress_dv
|
|
#undef mlk_poly_getnoise_eta1122_4x
|
|
#undef mlk_poly_getnoise_eta1_4x
|
|
#undef mlk_poly_getnoise_eta2
|
|
#undef mlk_poly_getnoise_eta2_4x
|
|
#undef mlk_polymat
|
|
#undef mlk_polyvec
|
|
#undef mlk_polyvec_add
|
|
#undef mlk_polyvec_basemul_acc_montgomery_cached
|
|
#undef mlk_polyvec_compress_du
|
|
#undef mlk_polyvec_decompress_du
|
|
#undef mlk_polyvec_frombytes
|
|
#undef mlk_polyvec_invntt_tomont
|
|
#undef mlk_polyvec_mulcache
|
|
#undef mlk_polyvec_mulcache_compute
|
|
#undef mlk_polyvec_ntt
|
|
#undef mlk_polyvec_reduce
|
|
#undef mlk_polyvec_tobytes
|
|
#undef mlk_polyvec_tomont
|
|
|
|
#if !defined(MLK_CONFIG_MONOBUILD_KEEP_SHARED_HEADERS)
|
|
/*
|
|
* Undefine macros from MLK_CONFIG_PARAMETER_SET-generic files
|
|
*/
|
|
/* mlkem/src/compress.h */
|
|
#undef MLK_COMPRESS_H
|
|
#undef mlk_poly_compress_d10
|
|
#undef mlk_poly_compress_d11
|
|
#undef mlk_poly_compress_d4
|
|
#undef mlk_poly_compress_d5
|
|
#undef mlk_poly_decompress_d10
|
|
#undef mlk_poly_decompress_d11
|
|
#undef mlk_poly_decompress_d4
|
|
#undef mlk_poly_decompress_d5
|
|
#undef mlk_poly_frombytes
|
|
#undef mlk_poly_frommsg
|
|
#undef mlk_poly_tobytes
|
|
#undef mlk_poly_tomsg
|
|
/* mlkem/src/debug.h */
|
|
#undef MLK_DEBUG_H
|
|
#undef mlk_assert
|
|
#undef mlk_assert_abs_bound
|
|
#undef mlk_assert_abs_bound_2d
|
|
#undef mlk_assert_bound
|
|
#undef mlk_assert_bound_2d
|
|
#undef mlk_debug_check_assert
|
|
#undef mlk_debug_check_bounds
|
|
/* mlkem/src/poly.h */
|
|
#undef MLK_INVNTT_BOUND
|
|
#undef MLK_NTT_BOUND
|
|
#undef MLK_POLY_H
|
|
#undef mlk_poly_add
|
|
#undef mlk_poly_invntt_tomont
|
|
#undef mlk_poly_mulcache_compute
|
|
#undef mlk_poly_ntt
|
|
#undef mlk_poly_reduce
|
|
#undef mlk_poly_sub
|
|
#undef mlk_poly_tomont
|
|
/* mlkem/src/randombytes.h */
|
|
#undef MLK_RANDOMBYTES_H
|
|
/* mlkem/src/sampling.h */
|
|
#undef MLK_SAMPLING_H
|
|
#undef mlk_poly_cbd2
|
|
#undef mlk_poly_cbd3
|
|
#undef mlk_poly_rej_uniform
|
|
#undef mlk_poly_rej_uniform_x4
|
|
/* mlkem/src/symmetric.h */
|
|
#undef MLK_SYMMETRIC_H
|
|
#undef MLK_XOF_RATE
|
|
#undef mlk_hash_g
|
|
#undef mlk_hash_h
|
|
#undef mlk_hash_j
|
|
#undef mlk_prf_eta
|
|
#undef mlk_prf_eta1
|
|
#undef mlk_prf_eta1_x4
|
|
#undef mlk_prf_eta2
|
|
#undef mlk_xof_absorb
|
|
#undef mlk_xof_ctx
|
|
#undef mlk_xof_init
|
|
#undef mlk_xof_release
|
|
#undef mlk_xof_squeezeblocks
|
|
#undef mlk_xof_x4_absorb
|
|
#undef mlk_xof_x4_ctx
|
|
#undef mlk_xof_x4_init
|
|
#undef mlk_xof_x4_release
|
|
#undef mlk_xof_x4_squeezeblocks
|
|
/* mlkem/src/sys.h */
|
|
#undef MLK_ALIGN
|
|
#undef MLK_ALIGN_UP
|
|
#undef MLK_ALWAYS_INLINE
|
|
#undef MLK_CET_ENDBR
|
|
#undef MLK_CT_TESTING_DECLASSIFY
|
|
#undef MLK_CT_TESTING_SECRET
|
|
#undef MLK_DEFAULT_ALIGN
|
|
#undef MLK_HAVE_INLINE_ASM
|
|
#undef MLK_INLINE
|
|
#undef MLK_MUST_CHECK_RETURN_VALUE
|
|
#undef MLK_NOINLINE
|
|
#undef MLK_RESTRICT
|
|
#undef MLK_STATIC_TESTABLE
|
|
#undef MLK_SYSV_ABI
|
|
#undef MLK_SYSV_ABI_SUPPORTED
|
|
#undef MLK_SYS_AARCH64
|
|
#undef MLK_SYS_AARCH64_EB
|
|
#undef MLK_SYS_APPLE
|
|
#undef MLK_SYS_ARMV81M_MVE
|
|
#undef MLK_SYS_BIG_ENDIAN
|
|
#undef MLK_SYS_H
|
|
#undef MLK_SYS_LINUX
|
|
#undef MLK_SYS_LITTLE_ENDIAN
|
|
#undef MLK_SYS_PPC64LE
|
|
#undef MLK_SYS_RISCV32
|
|
#undef MLK_SYS_RISCV64
|
|
#undef MLK_SYS_RISCV64_RVV
|
|
#undef MLK_SYS_WINDOWS
|
|
#undef MLK_SYS_X86_64
|
|
#undef MLK_SYS_X86_64_AVX2
|
|
/* mlkem/src/verify.h */
|
|
#undef MLK_USE_ASM_VALUE_BARRIER
|
|
#undef MLK_VERIFY_H
|
|
#undef mlk_ct_opt_blocker_u64
|
|
/* mlkem/src/cbmc.h */
|
|
#undef MLK_CBMC_H
|
|
#undef __contract__
|
|
#undef __loop__
|
|
|
|
#if !defined(MLK_CONFIG_FIPS202_CUSTOM_HEADER)
|
|
/*
|
|
* Undefine macros from FIPS-202 files
|
|
*/
|
|
/* mlkem/src/fips202/fips202.h */
|
|
#undef FIPS202_X4_DEFAULT_IMPLEMENTATION
|
|
#undef MLK_FIPS202_FIPS202_H
|
|
#undef SHA3_256_HASHBYTES
|
|
#undef SHA3_256_RATE
|
|
#undef SHA3_384_RATE
|
|
#undef SHA3_512_HASHBYTES
|
|
#undef SHA3_512_RATE
|
|
#undef SHAKE128_RATE
|
|
#undef SHAKE256_RATE
|
|
#undef mlk_sha3_256
|
|
#undef mlk_sha3_512
|
|
#undef mlk_shake128_absorb_once
|
|
#undef mlk_shake128_init
|
|
#undef mlk_shake128_release
|
|
#undef mlk_shake128_squeezeblocks
|
|
#undef mlk_shake256
|
|
/* mlkem/src/fips202/fips202x4.h */
|
|
#undef MLK_FIPS202_FIPS202X4_H
|
|
#undef mlk_shake128x4_absorb_once
|
|
#undef mlk_shake128x4_init
|
|
#undef mlk_shake128x4_release
|
|
#undef mlk_shake128x4_squeezeblocks
|
|
#undef mlk_shake256x4
|
|
/* mlkem/src/fips202/keccakf1600.h */
|
|
#undef MLK_FIPS202_KECCAKF1600_H
|
|
#undef MLK_KECCAK_LANES
|
|
#undef MLK_KECCAK_WAY
|
|
#undef mlk_keccakf1600_extract_bytes
|
|
#undef mlk_keccakf1600_permute
|
|
#undef mlk_keccakf1600_xor_bytes
|
|
#undef mlk_keccakf1600x4_extract_bytes
|
|
#undef mlk_keccakf1600x4_permute
|
|
#undef mlk_keccakf1600x4_xor_bytes
|
|
#endif /* !MLK_CONFIG_FIPS202_CUSTOM_HEADER */
|
|
|
|
#if defined(MLK_CONFIG_USE_NATIVE_BACKEND_FIPS202)
|
|
/* mlkem/src/fips202/native/api.h */
|
|
#undef MLK_FIPS202_NATIVE_API_H
|
|
#undef MLK_NATIVE_FUNC_FALLBACK
|
|
#undef MLK_NATIVE_FUNC_SUCCESS
|
|
/* mlkem/src/fips202/native/auto.h */
|
|
#undef MLK_FIPS202_NATIVE_AUTO_H
|
|
#if defined(MLK_SYS_AARCH64)
|
|
/*
|
|
* Undefine macros from native code (FIPS202, AArch64)
|
|
*/
|
|
/* mlkem/src/fips202/native/aarch64/auto.h */
|
|
#undef MLK_FIPS202_NATIVE_AARCH64_AUTO_H
|
|
/* mlkem/src/fips202/native/aarch64/src/fips202_native_aarch64.h */
|
|
#undef MLK_FIPS202_NATIVE_AARCH64_SRC_FIPS202_NATIVE_AARCH64_H
|
|
#undef mlk_keccak_f1600_x1_scalar_aarch64_asm
|
|
#undef mlk_keccak_f1600_x1_v84a_aarch64_asm
|
|
#undef mlk_keccak_f1600_x2_v84a_aarch64_asm
|
|
#undef mlk_keccak_f1600_x4_v8a_scalar_hybrid_aarch64_asm
|
|
#undef mlk_keccak_f1600_x4_v8a_v84a_scalar_hybrid_aarch64_asm
|
|
#undef mlk_keccakf1600_round_constants
|
|
/* mlkem/src/fips202/native/aarch64/x1_scalar.h */
|
|
#undef MLK_FIPS202_AARCH64_NEED_X1_SCALAR
|
|
#undef MLK_FIPS202_NATIVE_AARCH64_X1_SCALAR_H
|
|
#undef MLK_USE_FIPS202_X1_NATIVE
|
|
/* mlkem/src/fips202/native/aarch64/x1_v84a.h */
|
|
#undef MLK_FIPS202_AARCH64_NEED_X1_V84A
|
|
#undef MLK_FIPS202_NATIVE_AARCH64_X1_V84A_H
|
|
#undef MLK_USE_FIPS202_X1_NATIVE
|
|
/* mlkem/src/fips202/native/aarch64/x2_v84a.h */
|
|
#undef MLK_FIPS202_AARCH64_NEED_X2_V84A
|
|
#undef MLK_FIPS202_NATIVE_AARCH64_X2_V84A_H
|
|
#undef MLK_USE_FIPS202_X4_NATIVE
|
|
/* mlkem/src/fips202/native/aarch64/x4_v8a_scalar.h */
|
|
#undef MLK_FIPS202_AARCH64_NEED_X4_V8A_SCALAR_HYBRID
|
|
#undef MLK_FIPS202_NATIVE_AARCH64_X4_V8A_SCALAR_H
|
|
#undef MLK_USE_FIPS202_X4_NATIVE
|
|
/* mlkem/src/fips202/native/aarch64/x4_v8a_v84a_scalar.h */
|
|
#undef MLK_FIPS202_AARCH64_NEED_X4_V8A_V84A_SCALAR_HYBRID
|
|
#undef MLK_FIPS202_NATIVE_AARCH64_X4_V8A_V84A_SCALAR_H
|
|
#undef MLK_USE_FIPS202_X4_NATIVE
|
|
#endif /* MLK_SYS_AARCH64 */
|
|
#if defined(MLK_SYS_X86_64)
|
|
/*
|
|
* Undefine macros from native code (FIPS202, x86_64)
|
|
*/
|
|
/* mlkem/src/fips202/native/x86_64/keccak_f1600_x4_avx2.h */
|
|
#undef MLK_FIPS202_NATIVE_X86_64_KECCAK_F1600_X4_AVX2_H
|
|
#undef MLK_FIPS202_X86_64_NEED_X4_AVX2
|
|
#undef MLK_USE_FIPS202_X4_NATIVE
|
|
/* mlkem/src/fips202/native/x86_64/src/fips202_native_x86_64.h */
|
|
#undef MLK_FIPS202_NATIVE_X86_64_SRC_FIPS202_NATIVE_X86_64_H
|
|
#undef mlk_keccak_f1600_x4_avx2_asm
|
|
#undef mlk_keccak_rho56
|
|
#undef mlk_keccak_rho8
|
|
#undef mlk_keccakf1600_round_constants
|
|
#endif /* MLK_SYS_X86_64 */
|
|
#if defined(MLK_SYS_ARMV81M_MVE)
|
|
/*
|
|
* Undefine macros from native code (FIPS202, Armv8.1-M)
|
|
*/
|
|
/* mlkem/src/fips202/native/armv81m/mve.h */
|
|
#undef MLK_FIPS202_ARMV81M_NEED_X4
|
|
#undef MLK_FIPS202_NATIVE_ARMV81M
|
|
#undef MLK_FIPS202_NATIVE_ARMV81M_MVE_H
|
|
#undef MLK_USE_FIPS202_X4_EXTRACT_BYTES_NATIVE
|
|
#undef MLK_USE_FIPS202_X4_NATIVE
|
|
#undef MLK_USE_FIPS202_X4_XOR_BYTES_NATIVE
|
|
#undef mlk_keccak_f1600_x4_native_impl
|
|
/* mlkem/src/fips202/native/armv81m/src/fips202_native_armv81m.h */
|
|
#undef MLK_FIPS202_NATIVE_ARMV81M_SRC_FIPS202_NATIVE_ARMV81M_H
|
|
#undef mlk_keccak_f1600_x4_mve_asm
|
|
#undef mlk_keccak_f1600_x4_state_extract_bytes_asm
|
|
#undef mlk_keccak_f1600_x4_state_xor_bytes_asm
|
|
#undef mlk_keccakf1600_round_constants
|
|
#endif /* MLK_SYS_ARMV81M_MVE */
|
|
#endif /* MLK_CONFIG_USE_NATIVE_BACKEND_FIPS202 */
|
|
#if defined(MLK_CONFIG_USE_NATIVE_BACKEND_ARITH)
|
|
/* mlkem/src/native/api.h */
|
|
#undef MLK_INVNTT_BOUND
|
|
#undef MLK_NATIVE_API_H
|
|
#undef MLK_NATIVE_FUNC_FALLBACK
|
|
#undef MLK_NATIVE_FUNC_SUCCESS
|
|
#undef MLK_NTT_BOUND
|
|
/* mlkem/src/native/meta.h */
|
|
#undef MLK_NATIVE_META_H
|
|
#if defined(MLK_SYS_AARCH64)
|
|
/*
|
|
* Undefine macros from native code (Arith, AArch64)
|
|
*/
|
|
/* mlkem/src/native/aarch64/meta.h */
|
|
#undef MLK_ARITH_BACKEND_AARCH64
|
|
#undef MLK_NATIVE_AARCH64_META_H
|
|
#undef MLK_USE_NATIVE_INTT
|
|
#undef MLK_USE_NATIVE_NTT
|
|
#undef MLK_USE_NATIVE_POLYVEC_BASEMUL_ACC_MONTGOMERY_CACHED
|
|
#undef MLK_USE_NATIVE_POLY_MULCACHE_COMPUTE
|
|
#undef MLK_USE_NATIVE_POLY_REDUCE
|
|
#undef MLK_USE_NATIVE_POLY_TOBYTES
|
|
#undef MLK_USE_NATIVE_POLY_TOMONT
|
|
#undef MLK_USE_NATIVE_REJ_UNIFORM
|
|
/* mlkem/src/native/aarch64/src/arith_native_aarch64.h */
|
|
#undef MLK_NATIVE_AARCH64_SRC_ARITH_NATIVE_AARCH64_H
|
|
#undef mlk_aarch64_invntt_zetas_layer12345
|
|
#undef mlk_aarch64_invntt_zetas_layer67
|
|
#undef mlk_aarch64_ntt_zetas_layer12345
|
|
#undef mlk_aarch64_ntt_zetas_layer67
|
|
#undef mlk_aarch64_zetas_mulcache_native
|
|
#undef mlk_aarch64_zetas_mulcache_twisted_native
|
|
#undef mlk_intt_aarch64_asm
|
|
#undef mlk_ntt_aarch64_asm
|
|
#undef mlk_poly_mulcache_compute_aarch64_asm
|
|
#undef mlk_poly_reduce_aarch64_asm
|
|
#undef mlk_poly_tobytes_aarch64_asm
|
|
#undef mlk_poly_tomont_aarch64_asm
|
|
#undef mlk_polyvec_basemul_acc_montgomery_cached_k2_aarch64_asm
|
|
#undef mlk_polyvec_basemul_acc_montgomery_cached_k3_aarch64_asm
|
|
#undef mlk_polyvec_basemul_acc_montgomery_cached_k4_aarch64_asm
|
|
#undef mlk_rej_uniform_aarch64_asm
|
|
#undef mlk_rej_uniform_table
|
|
#endif /* MLK_SYS_AARCH64 */
|
|
#if defined(MLK_SYS_X86_64)
|
|
/*
|
|
* Undefine macros from native code (Arith, X86_64)
|
|
*/
|
|
/* mlkem/src/native/x86_64/meta.h */
|
|
#undef MLK_ARITH_BACKEND_X86_64_DEFAULT
|
|
#undef MLK_NATIVE_X86_64_META_H
|
|
#undef MLK_USE_NATIVE_INTT
|
|
#undef MLK_USE_NATIVE_NTT
|
|
#undef MLK_USE_NATIVE_NTT_CUSTOM_ORDER
|
|
#undef MLK_USE_NATIVE_POLYVEC_BASEMUL_ACC_MONTGOMERY_CACHED
|
|
#undef MLK_USE_NATIVE_POLY_COMPRESS_D10
|
|
#undef MLK_USE_NATIVE_POLY_COMPRESS_D11
|
|
#undef MLK_USE_NATIVE_POLY_COMPRESS_D4
|
|
#undef MLK_USE_NATIVE_POLY_COMPRESS_D5
|
|
#undef MLK_USE_NATIVE_POLY_DECOMPRESS_D10
|
|
#undef MLK_USE_NATIVE_POLY_DECOMPRESS_D11
|
|
#undef MLK_USE_NATIVE_POLY_DECOMPRESS_D4
|
|
#undef MLK_USE_NATIVE_POLY_DECOMPRESS_D5
|
|
#undef MLK_USE_NATIVE_POLY_FROMBYTES
|
|
#undef MLK_USE_NATIVE_POLY_MULCACHE_COMPUTE
|
|
#undef MLK_USE_NATIVE_POLY_REDUCE
|
|
#undef MLK_USE_NATIVE_POLY_TOBYTES
|
|
#undef MLK_USE_NATIVE_POLY_TOMONT
|
|
#undef MLK_USE_NATIVE_REJ_UNIFORM
|
|
/* mlkem/src/native/x86_64/src/arith_native_x86_64.h */
|
|
#undef MLK_AVX2_REJ_UNIFORM_BUFLEN
|
|
#undef MLK_NATIVE_X86_64_SRC_ARITH_NATIVE_X86_64_H
|
|
#undef mlk_invntt_avx2_asm
|
|
#undef mlk_ntt_avx2_asm
|
|
#undef mlk_nttfrombytes_avx2_asm
|
|
#undef mlk_ntttobytes_avx2_asm
|
|
#undef mlk_nttunpack_avx2_asm
|
|
#undef mlk_poly_compress_d10_avx2_asm
|
|
#undef mlk_poly_compress_d11_avx2_asm
|
|
#undef mlk_poly_compress_d4_avx2_asm
|
|
#undef mlk_poly_compress_d5_avx2_asm
|
|
#undef mlk_poly_decompress_d10_avx2_asm
|
|
#undef mlk_poly_decompress_d11_avx2_asm
|
|
#undef mlk_poly_decompress_d4_avx2_asm
|
|
#undef mlk_poly_decompress_d5_avx2_asm
|
|
#undef mlk_poly_mulcache_compute_avx2_asm
|
|
#undef mlk_polyvec_basemul_acc_montgomery_cached_k2_avx2_asm
|
|
#undef mlk_polyvec_basemul_acc_montgomery_cached_k3_avx2_asm
|
|
#undef mlk_polyvec_basemul_acc_montgomery_cached_k4_avx2_asm
|
|
#undef mlk_reduce_avx2_asm
|
|
#undef mlk_rej_uniform_avx2_asm
|
|
#undef mlk_rej_uniform_table
|
|
#undef mlk_tomont_avx2_asm
|
|
/* mlkem/src/native/x86_64/src/compress_consts.h */
|
|
#undef MLK_NATIVE_X86_64_SRC_COMPRESS_CONSTS_H
|
|
#undef mlk_compress_d10_data
|
|
#undef mlk_compress_d11_data
|
|
#undef mlk_compress_d4_data
|
|
#undef mlk_compress_d5_data
|
|
#undef mlk_decompress_d10_data
|
|
#undef mlk_decompress_d11_data
|
|
#undef mlk_decompress_d4_data
|
|
#undef mlk_decompress_d5_data
|
|
/* mlkem/src/native/x86_64/src/consts.h */
|
|
#undef MLK_AVX2_BACKEND_DATA_OFFSET_MULCACHE_TWIDDLES
|
|
#undef MLK_AVX2_BACKEND_DATA_OFFSET_REVIDXB
|
|
#undef MLK_AVX2_BACKEND_DATA_OFFSET_REVIDXD
|
|
#undef MLK_AVX2_BACKEND_DATA_OFFSET_ZETAS_EXP
|
|
#undef MLK_NATIVE_X86_64_SRC_CONSTS_H
|
|
#undef mlk_qdata
|
|
#endif /* MLK_SYS_X86_64 */
|
|
#if defined(MLK_SYS_RISCV64)
|
|
/*
|
|
* Undefine macros from native code (Arith, RISC-V 64)
|
|
*/
|
|
/* mlkem/src/native/riscv64/meta.h */
|
|
#undef MLK_ARITH_BACKEND_RISCV64
|
|
#undef MLK_NATIVE_RISCV64_META_H
|
|
#undef MLK_USE_NATIVE_INTT
|
|
#undef MLK_USE_NATIVE_NTT
|
|
#undef MLK_USE_NATIVE_POLYVEC_BASEMUL_ACC_MONTGOMERY_CACHED
|
|
#undef MLK_USE_NATIVE_POLY_MULCACHE_COMPUTE
|
|
#undef MLK_USE_NATIVE_POLY_REDUCE
|
|
#undef MLK_USE_NATIVE_POLY_TOMONT
|
|
#undef MLK_USE_NATIVE_REJ_UNIFORM
|
|
/* mlkem/src/native/riscv64/src/arith_native_riscv64.h */
|
|
#undef MLK_NATIVE_RISCV64_SRC_ARITH_NATIVE_RISCV64_H
|
|
#undef mlk_rv64v_poly_add
|
|
#undef mlk_rv64v_poly_basemul_mont_add_k2
|
|
#undef mlk_rv64v_poly_basemul_mont_add_k3
|
|
#undef mlk_rv64v_poly_basemul_mont_add_k4
|
|
#undef mlk_rv64v_poly_invntt_tomont
|
|
#undef mlk_rv64v_poly_ntt
|
|
#undef mlk_rv64v_poly_reduce
|
|
#undef mlk_rv64v_poly_sub
|
|
#undef mlk_rv64v_poly_tomont
|
|
#undef mlk_rv64v_rej_uniform
|
|
/* mlkem/src/native/riscv64/src/rv64v_debug.h */
|
|
#undef MLK_NATIVE_RISCV64_SRC_RV64V_DEBUG_H
|
|
#undef mlk_assert_abs_bound_int16m1
|
|
#undef mlk_assert_abs_bound_int16m2
|
|
#undef mlk_assert_bound_int16m1
|
|
#undef mlk_assert_bound_int16m2
|
|
#undef mlk_debug_check_bounds_int16m1
|
|
#undef mlk_debug_check_bounds_int16m2
|
|
#endif /* MLK_SYS_RISCV64 */
|
|
#if defined(MLK_SYS_PPC64LE)
|
|
/*
|
|
* Undefine macros from native code (Arith, PPC64LE)
|
|
*/
|
|
/* mlkem/src/native/ppc64le/meta.h */
|
|
#undef MLK_ARITH_BACKEND_NAME
|
|
#undef MLK_ARITH_BACKEND_PPC64LE_DEFAULT
|
|
#undef MLK_NATIVE_PPC64LE_META_H
|
|
#undef MLK_USE_NATIVE_INTT
|
|
#undef MLK_USE_NATIVE_NTT
|
|
#undef MLK_USE_NATIVE_POLY_REDUCE
|
|
#undef MLK_USE_NATIVE_POLY_TOMONT
|
|
/* mlkem/src/native/ppc64le/src/arith_native_ppc64le.h */
|
|
#undef MLK_NATIVE_PPC64LE_SRC_ARITH_NATIVE_PPC64LE_H
|
|
#undef mlk_intt_ppc_asm
|
|
#undef mlk_ntt_ppc_asm
|
|
#undef mlk_poly_tomont_ppc_asm
|
|
#undef mlk_reduce_ppc_asm
|
|
/* mlkem/src/native/ppc64le/src/consts.h */
|
|
#undef MLK_NATIVE_PPC64LE_SRC_CONSTS_H
|
|
#undef MLK_PPC_C20159_OFFSET
|
|
#undef MLK_PPC_NQ_OFFSET
|
|
#undef MLK_PPC_N_INV_OFFSET
|
|
#undef MLK_PPC_N_INV_TW_OFFSET
|
|
#undef MLK_PPC_Q_OFFSET
|
|
#undef MLK_PPC_TOMONT_OFFSET
|
|
#undef MLK_PPC_TOMONT_TW_OFFSET
|
|
#undef MLK_PPC_ZETA_INTT_OFFSET
|
|
#undef MLK_PPC_ZETA_INTT_TW_OFFSET
|
|
#undef MLK_PPC_ZETA_NTT_OFFSET
|
|
#undef MLK_PPC_ZETA_NTT_TW_OFFSET
|
|
#undef mlk_ppc_qdata
|
|
#endif /* MLK_SYS_PPC64LE */
|
|
#endif /* MLK_CONFIG_USE_NATIVE_BACKEND_ARITH */
|
|
#endif /* !MLK_CONFIG_MONOBUILD_KEEP_SHARED_HEADERS */
|