libcrux_core.h (2815B)
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_core_H 15 #define libcrux_core_H 16 17 #include "eurydice_glue.h" 18 19 #if defined(__cplusplus) 20 extern "C" { 21 #endif 22 23 /** 24 A monomorphic instance of libcrux_ml_kem.types.MlKemPrivateKey 25 with const generics 26 - $3168size_t 27 */ 28 typedef struct libcrux_ml_kem_types_MlKemPrivateKey_83_s { 29 uint8_t value[3168U]; 30 } libcrux_ml_kem_types_MlKemPrivateKey_83; 31 32 /** 33 A monomorphic instance of libcrux_ml_kem.types.MlKemPublicKey 34 with const generics 35 - $1568size_t 36 */ 37 typedef struct libcrux_ml_kem_types_MlKemPublicKey_64_s { 38 uint8_t value[1568U]; 39 } libcrux_ml_kem_types_MlKemPublicKey_64; 40 41 typedef struct libcrux_ml_kem_mlkem1024_MlKem1024KeyPair_s { 42 libcrux_ml_kem_types_MlKemPrivateKey_83 sk; 43 libcrux_ml_kem_types_MlKemPublicKey_64 pk; 44 } libcrux_ml_kem_mlkem1024_MlKem1024KeyPair; 45 46 /** 47 A monomorphic instance of libcrux_ml_kem.types.MlKemCiphertext 48 with const generics 49 - $1568size_t 50 */ 51 typedef struct libcrux_ml_kem_types_MlKemCiphertext_64_s { 52 uint8_t value[1568U]; 53 } libcrux_ml_kem_types_MlKemCiphertext_64; 54 55 /** 56 A monomorphic instance of libcrux_ml_kem.types.MlKemPrivateKey 57 with const generics 58 - $2400size_t 59 */ 60 typedef struct libcrux_ml_kem_types_MlKemPrivateKey_d9_s { 61 uint8_t value[2400U]; 62 } libcrux_ml_kem_types_MlKemPrivateKey_d9; 63 64 /** 65 A monomorphic instance of libcrux_ml_kem.types.MlKemPublicKey 66 with const generics 67 - $1184size_t 68 */ 69 typedef struct libcrux_ml_kem_types_MlKemPublicKey_30_s { 70 uint8_t value[1184U]; 71 } libcrux_ml_kem_types_MlKemPublicKey_30; 72 73 typedef struct libcrux_ml_kem_mlkem768_MlKem768KeyPair_s { 74 libcrux_ml_kem_types_MlKemPrivateKey_d9 sk; 75 libcrux_ml_kem_types_MlKemPublicKey_30 pk; 76 } libcrux_ml_kem_mlkem768_MlKem768KeyPair; 77 78 typedef struct libcrux_ml_kem_mlkem768_MlKem768Ciphertext_s { 79 uint8_t value[1088U]; 80 } libcrux_ml_kem_mlkem768_MlKem768Ciphertext; 81 82 /** 83 A monomorphic instance of K. 84 with types libcrux_ml_kem_types_MlKemCiphertext[[$1088size_t]], 85 uint8_t[32size_t] 86 87 */ 88 typedef struct tuple_c2_s { 89 libcrux_ml_kem_mlkem768_MlKem768Ciphertext fst; 90 uint8_t snd[32U]; 91 } tuple_c2; 92 93 /** 94 A monomorphic instance of K. 95 with types libcrux_ml_kem_types_MlKemCiphertext[[$1568size_t]], 96 uint8_t[32size_t] 97 98 */ 99 typedef struct tuple_fa_s { 100 libcrux_ml_kem_types_MlKemCiphertext_64 fst; 101 uint8_t snd[32U]; 102 } tuple_fa; 103 104 #if defined(__cplusplus) 105 } 106 #endif 107 108 #define libcrux_core_H_DEFINED 109 #endif /* libcrux_core_H */