tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

libcrux_mlkem1024.h (3485B)


      1 /*
      2 * SPDX-FileCopyrightText: 2025 Cryspen Sarl <info@cryspen.com>
      3 *
      4 * SPDX-License-Identifier: MIT or Apache-2.0
      5 *
      6 * This code was generated with the following revisions:
      7 * Charon: 667d2fc98984ff7f3df989c2367e6c1fa4a000e7
      8 * Eurydice: 2381cbc416ef2ad0b561c362c500bc84f36b6785
      9 * Karamel: 80f5435f2fc505973c469a4afcc8d875cddd0d8b
     10 * F*: 71d8221589d4d438af3706d89cb653cf53e18aab
     11 * Libcrux: 68dfed5a4a9e40277f62828471c029afed1ecdcc
     12 */
     13 
     14 #ifndef libcrux_mlkem1024_H
     15 #define libcrux_mlkem1024_H
     16 
     17 #include "eurydice_glue.h"
     18 
     19 #if defined(__cplusplus)
     20 extern "C" {
     21 #endif
     22 
     23 #include "libcrux_core.h"
     24 
     25 #define LIBCRUX_ML_KEM_MLKEM1024_VECTOR_U_COMPRESSION_FACTOR ((size_t)11U)
     26 
     27 #define LIBCRUX_ML_KEM_MLKEM1024_C1_BLOCK_SIZE               \
     28    (LIBCRUX_ML_KEM_CONSTANTS_COEFFICIENTS_IN_RING_ELEMENT * \
     29     LIBCRUX_ML_KEM_MLKEM1024_VECTOR_U_COMPRESSION_FACTOR / (size_t)8U)
     30 
     31 #define LIBCRUX_ML_KEM_MLKEM1024_RANK ((size_t)4U)
     32 
     33 #define LIBCRUX_ML_KEM_MLKEM1024_C1_SIZE \
     34    (LIBCRUX_ML_KEM_MLKEM1024_C1_BLOCK_SIZE * LIBCRUX_ML_KEM_MLKEM1024_RANK)
     35 
     36 #define LIBCRUX_ML_KEM_MLKEM1024_VECTOR_V_COMPRESSION_FACTOR ((size_t)5U)
     37 
     38 #define LIBCRUX_ML_KEM_MLKEM1024_C2_SIZE                     \
     39    (LIBCRUX_ML_KEM_CONSTANTS_COEFFICIENTS_IN_RING_ELEMENT * \
     40     LIBCRUX_ML_KEM_MLKEM1024_VECTOR_V_COMPRESSION_FACTOR / (size_t)8U)
     41 
     42 #define LIBCRUX_ML_KEM_MLKEM1024_CPA_PKE_CIPHERTEXT_SIZE \
     43    (LIBCRUX_ML_KEM_MLKEM1024_C1_SIZE + LIBCRUX_ML_KEM_MLKEM1024_C2_SIZE)
     44 
     45 #define LIBCRUX_ML_KEM_MLKEM1024_T_AS_NTT_ENCODED_SIZE       \
     46    (LIBCRUX_ML_KEM_MLKEM1024_RANK *                         \
     47     LIBCRUX_ML_KEM_CONSTANTS_COEFFICIENTS_IN_RING_ELEMENT * \
     48     LIBCRUX_ML_KEM_CONSTANTS_BITS_PER_COEFFICIENT / (size_t)8U)
     49 
     50 #define LIBCRUX_ML_KEM_MLKEM1024_CPA_PKE_PUBLIC_KEY_SIZE \
     51    (LIBCRUX_ML_KEM_MLKEM1024_T_AS_NTT_ENCODED_SIZE + (size_t)32U)
     52 
     53 #define LIBCRUX_ML_KEM_MLKEM1024_CPA_PKE_SECRET_KEY_SIZE     \
     54    (LIBCRUX_ML_KEM_MLKEM1024_RANK *                         \
     55     LIBCRUX_ML_KEM_CONSTANTS_COEFFICIENTS_IN_RING_ELEMENT * \
     56     LIBCRUX_ML_KEM_CONSTANTS_BITS_PER_COEFFICIENT / (size_t)8U)
     57 
     58 #define LIBCRUX_ML_KEM_MLKEM1024_ETA1 ((size_t)2U)
     59 
     60 #define LIBCRUX_ML_KEM_MLKEM1024_ETA1_RANDOMNESS_SIZE \
     61    (LIBCRUX_ML_KEM_MLKEM1024_ETA1 * (size_t)64U)
     62 
     63 #define LIBCRUX_ML_KEM_MLKEM1024_ETA2 ((size_t)2U)
     64 
     65 #define LIBCRUX_ML_KEM_MLKEM1024_ETA2_RANDOMNESS_SIZE \
     66    (LIBCRUX_ML_KEM_MLKEM1024_ETA2 * (size_t)64U)
     67 
     68 #define LIBCRUX_ML_KEM_MLKEM1024_IMPLICIT_REJECTION_HASH_INPUT_SIZE \
     69    (LIBCRUX_ML_KEM_CONSTANTS_SHARED_SECRET_SIZE +                  \
     70     LIBCRUX_ML_KEM_MLKEM1024_CPA_PKE_CIPHERTEXT_SIZE)
     71 
     72 typedef libcrux_ml_kem_types_MlKemCiphertext_64
     73    libcrux_ml_kem_mlkem1024_MlKem1024Ciphertext;
     74 
     75 typedef libcrux_ml_kem_types_MlKemPrivateKey_83
     76    libcrux_ml_kem_mlkem1024_MlKem1024PrivateKey;
     77 
     78 typedef libcrux_ml_kem_types_MlKemPublicKey_64
     79    libcrux_ml_kem_mlkem1024_MlKem1024PublicKey;
     80 
     81 #define LIBCRUX_ML_KEM_MLKEM1024_RANKED_BYTES_PER_RING_ELEMENT \
     82    (LIBCRUX_ML_KEM_MLKEM1024_RANK *                           \
     83     LIBCRUX_ML_KEM_CONSTANTS_BITS_PER_RING_ELEMENT / (size_t)8U)
     84 
     85 #define LIBCRUX_ML_KEM_MLKEM1024_SECRET_KEY_SIZE        \
     86    (LIBCRUX_ML_KEM_MLKEM1024_CPA_PKE_SECRET_KEY_SIZE + \
     87     LIBCRUX_ML_KEM_MLKEM1024_CPA_PKE_PUBLIC_KEY_SIZE + \
     88     LIBCRUX_ML_KEM_CONSTANTS_H_DIGEST_SIZE +           \
     89     LIBCRUX_ML_KEM_CONSTANTS_SHARED_SECRET_SIZE)
     90 
     91 #if defined(__cplusplus)
     92 }
     93 #endif
     94 
     95 #define libcrux_mlkem1024_H_DEFINED
     96 #endif /* libcrux_mlkem1024_H */