-
Notifications
You must be signed in to change notification settings - Fork 58
Expand file tree
/
Copy pathlibcrux_mlkem512.h
More file actions
98 lines (72 loc) · 3.47 KB
/
Copy pathlibcrux_mlkem512.h
File metadata and controls
98 lines (72 loc) · 3.47 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
/*
* SPDX-FileCopyrightText: 2024 Cryspen Sarl <info@cryspen.com>
*
* SPDX-License-Identifier: MIT or Apache-2.0
*
* This code was generated with the following revisions:
* Charon: 962f26311ccdf09a6a3cfeacbccafba22bf3d405
* Eurydice: e66abbc2119485abfafa17c1911bdbdada5b04f3
* Karamel: 7862fdc3899b718d39ec98568f78ec40592a622a
* F*: a32b316e521fa4f239b610ec8f1d15e78d62cbe8-dirty
* Libcrux: a1a608ad503a9e3f8f017e9c2082ccf929194c41
*/
#ifndef __libcrux_mlkem512_H
#define __libcrux_mlkem512_H
#if defined(__cplusplus)
extern "C" {
#endif
#include "eurydice_glue.h"
#include "libcrux_core.h"
#define LIBCRUX_ML_KEM_MLKEM512_VECTOR_U_COMPRESSION_FACTOR_512 ((size_t)10U)
#define LIBCRUX_ML_KEM_MLKEM512_C1_BLOCK_SIZE_512 \
(LIBCRUX_ML_KEM_CONSTANTS_COEFFICIENTS_IN_RING_ELEMENT * \
LIBCRUX_ML_KEM_MLKEM512_VECTOR_U_COMPRESSION_FACTOR_512 / (size_t)8U)
#define LIBCRUX_ML_KEM_MLKEM512_RANK_512 ((size_t)2U)
#define LIBCRUX_ML_KEM_MLKEM512_C1_SIZE_512 \
(LIBCRUX_ML_KEM_MLKEM512_C1_BLOCK_SIZE_512 * LIBCRUX_ML_KEM_MLKEM512_RANK_512)
#define LIBCRUX_ML_KEM_MLKEM512_VECTOR_V_COMPRESSION_FACTOR_512 ((size_t)4U)
#define LIBCRUX_ML_KEM_MLKEM512_C2_SIZE_512 \
(LIBCRUX_ML_KEM_CONSTANTS_COEFFICIENTS_IN_RING_ELEMENT * \
LIBCRUX_ML_KEM_MLKEM512_VECTOR_V_COMPRESSION_FACTOR_512 / (size_t)8U)
#define LIBCRUX_ML_KEM_MLKEM512_CPA_PKE_CIPHERTEXT_SIZE_512 \
(LIBCRUX_ML_KEM_MLKEM512_C1_SIZE_512 + LIBCRUX_ML_KEM_MLKEM512_C2_SIZE_512)
#define LIBCRUX_ML_KEM_MLKEM512_T_AS_NTT_ENCODED_SIZE_512 \
(LIBCRUX_ML_KEM_MLKEM512_RANK_512 * \
LIBCRUX_ML_KEM_CONSTANTS_COEFFICIENTS_IN_RING_ELEMENT * \
LIBCRUX_ML_KEM_CONSTANTS_BITS_PER_COEFFICIENT / (size_t)8U)
#define LIBCRUX_ML_KEM_MLKEM512_CPA_PKE_PUBLIC_KEY_SIZE_512 \
(LIBCRUX_ML_KEM_MLKEM512_T_AS_NTT_ENCODED_SIZE_512 + (size_t)32U)
#define LIBCRUX_ML_KEM_MLKEM512_CPA_PKE_SECRET_KEY_SIZE_512 \
(LIBCRUX_ML_KEM_MLKEM512_RANK_512 * \
LIBCRUX_ML_KEM_CONSTANTS_COEFFICIENTS_IN_RING_ELEMENT * \
LIBCRUX_ML_KEM_CONSTANTS_BITS_PER_COEFFICIENT / (size_t)8U)
#define LIBCRUX_ML_KEM_MLKEM512_ETA1 ((size_t)3U)
#define LIBCRUX_ML_KEM_MLKEM512_ETA1_RANDOMNESS_SIZE \
(LIBCRUX_ML_KEM_MLKEM512_ETA1 * (size_t)64U)
#define LIBCRUX_ML_KEM_MLKEM512_ETA2 ((size_t)2U)
#define LIBCRUX_ML_KEM_MLKEM512_ETA2_RANDOMNESS_SIZE \
(LIBCRUX_ML_KEM_MLKEM512_ETA2 * (size_t)64U)
#define LIBCRUX_ML_KEM_MLKEM512_IMPLICIT_REJECTION_HASH_INPUT_SIZE \
(LIBCRUX_ML_KEM_CONSTANTS_SHARED_SECRET_SIZE + \
LIBCRUX_ML_KEM_MLKEM512_CPA_PKE_CIPHERTEXT_SIZE_512)
typedef libcrux_ml_kem_types_MlKemCiphertext_e8
libcrux_ml_kem_mlkem512_MlKem512Ciphertext;
typedef libcrux_ml_kem_types_MlKemKeyPair_cb
libcrux_ml_kem_mlkem512_MlKem512KeyPair;
typedef libcrux_ml_kem_types_MlKemPrivateKey_5e
libcrux_ml_kem_mlkem512_MlKem512PrivateKey;
typedef libcrux_ml_kem_types_MlKemPublicKey_be
libcrux_ml_kem_mlkem512_MlKem512PublicKey;
#define LIBCRUX_ML_KEM_MLKEM512_RANKED_BYTES_PER_RING_ELEMENT_512 \
(LIBCRUX_ML_KEM_MLKEM512_RANK_512 * \
LIBCRUX_ML_KEM_CONSTANTS_BITS_PER_RING_ELEMENT / (size_t)8U)
#define LIBCRUX_ML_KEM_MLKEM512_SECRET_KEY_SIZE_512 \
(LIBCRUX_ML_KEM_MLKEM512_CPA_PKE_SECRET_KEY_SIZE_512 + \
LIBCRUX_ML_KEM_MLKEM512_CPA_PKE_PUBLIC_KEY_SIZE_512 + \
LIBCRUX_ML_KEM_CONSTANTS_H_DIGEST_SIZE + \
LIBCRUX_ML_KEM_CONSTANTS_SHARED_SECRET_SIZE)
#if defined(__cplusplus)
}
#endif
#define __libcrux_mlkem512_H_DEFINED
#endif