Embedded SDK
Embedded SDK
Loading...
Searching...
No Matches
cx_mlkem_params.c
Go to the documentation of this file.
1/*****************************************************************************
2 * (c) 2026 Ledger SAS.
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 *****************************************************************************/
21#include "lcx_mlkem.h"
22
24 /* ML-KEM-512 */
25 {.k = 2,
26 .eta1 = 3,
27 .eta2 = 2,
28 .du = 10,
29 .dv = 4,
30 .polyvec_bytes = MLKEM512_POLYVECBYTES,
31 .polyvec_compressed_bytes = MLKEM512_POLYVECCOMPRESSEDBYTES,
32 .poly_compressed_dv_bytes = MLKEM512_POLYCOMPRESSEDBYTES_DV,
33 .indcpa_pk_bytes = MLKEM512_INDCPA_PUBLICKEYBYTES,
34 .indcpa_sk_bytes = MLKEM512_INDCPA_SECRETKEYBYTES,
35 .indcpa_ct_bytes = MLKEM512_INDCPA_BYTES,
36 .pk_bytes = MLKEM512_PUBLICKEYBYTES,
37 .sk_bytes = MLKEM512_SECRETKEYBYTES,
38 .ct_bytes = MLKEM512_CIPHERTEXTBYTES },
39 /* ML-KEM-768 */
40 {.k = 3,
41 .eta1 = 2,
42 .eta2 = 2,
43 .du = 10,
44 .dv = 4,
45 .polyvec_bytes = MLKEM768_POLYVECBYTES,
46 .polyvec_compressed_bytes = MLKEM768_POLYVECCOMPRESSEDBYTES,
47 .poly_compressed_dv_bytes = MLKEM768_POLYCOMPRESSEDBYTES_DV,
48 .indcpa_pk_bytes = MLKEM768_INDCPA_PUBLICKEYBYTES,
49 .indcpa_sk_bytes = MLKEM768_INDCPA_SECRETKEYBYTES,
50 .indcpa_ct_bytes = MLKEM768_INDCPA_BYTES,
51 .pk_bytes = MLKEM768_PUBLICKEYBYTES,
52 .sk_bytes = MLKEM768_SECRETKEYBYTES,
53 .ct_bytes = MLKEM768_CIPHERTEXTBYTES },
54 /* ML-KEM-1024 */
55 {.k = 4,
56 .eta1 = 2,
57 .eta2 = 2,
58 .du = 11,
59 .dv = 5,
60 .polyvec_bytes = MLKEM1024_POLYVECBYTES,
61 .polyvec_compressed_bytes = MLKEM1024_POLYVECCOMPRESSEDBYTES,
62 .poly_compressed_dv_bytes = MLKEM1024_POLYCOMPRESSEDBYTES_DV,
63 .indcpa_pk_bytes = MLKEM1024_INDCPA_PUBLICKEYBYTES,
64 .indcpa_sk_bytes = MLKEM1024_INDCPA_SECRETKEYBYTES,
65 .indcpa_ct_bytes = MLKEM1024_INDCPA_BYTES,
66 .pk_bytes = MLKEM1024_PUBLICKEYBYTES,
67 .sk_bytes = MLKEM1024_SECRETKEYBYTES,
68 .ct_bytes = MLKEM1024_CIPHERTEXTBYTES}
69};
const MLKEM_param_info_t MLKEM_PARAM[MLKEM_NUM_PARAM_SETS]
Lookup table of ML-KEM parameter sets indexed by MLKEM_param_t.
#define MLKEM1024_INDCPA_PUBLICKEYBYTES
Definition lcx_mlkem.h:136
#define MLKEM1024_POLYCOMPRESSEDBYTES_DV
Definition lcx_mlkem.h:131
#define MLKEM1024_POLYVECCOMPRESSEDBYTES
Definition lcx_mlkem.h:133
#define MLKEM1024_POLYVECBYTES
Definition lcx_mlkem.h:129
#define MLKEM1024_CIPHERTEXTBYTES
Definition lcx_mlkem.h:149
#define MLKEM1024_SECRETKEYBYTES
Definition lcx_mlkem.h:146
#define MLKEM1024_INDCPA_SECRETKEYBYTES
Definition lcx_mlkem.h:138
#define MLKEM1024_PUBLICKEYBYTES
Definition lcx_mlkem.h:144
#define MLKEM1024_INDCPA_BYTES
Definition lcx_mlkem.h:140
#define MLKEM512_CIPHERTEXTBYTES
Definition lcx_mlkem.h:80
#define MLKEM512_POLYCOMPRESSEDBYTES_DV
Definition lcx_mlkem.h:61
#define MLKEM512_INDCPA_SECRETKEYBYTES
Definition lcx_mlkem.h:68
#define MLKEM512_SECRETKEYBYTES
Definition lcx_mlkem.h:77
#define MLKEM512_POLYVECBYTES
Definition lcx_mlkem.h:59
#define MLKEM512_POLYVECCOMPRESSEDBYTES
Definition lcx_mlkem.h:63
#define MLKEM512_INDCPA_BYTES
Definition lcx_mlkem.h:71
#define MLKEM512_PUBLICKEYBYTES
Definition lcx_mlkem.h:75
#define MLKEM512_INDCPA_PUBLICKEYBYTES
Definition lcx_mlkem.h:66
#define MLKEM768_POLYCOMPRESSEDBYTES_DV
Definition lcx_mlkem.h:96
#define MLKEM768_POLYVECCOMPRESSEDBYTES
Definition lcx_mlkem.h:98
#define MLKEM768_SECRETKEYBYTES
Definition lcx_mlkem.h:112
#define MLKEM768_INDCPA_SECRETKEYBYTES
Definition lcx_mlkem.h:103
#define MLKEM768_INDCPA_BYTES
Definition lcx_mlkem.h:106
#define MLKEM768_CIPHERTEXTBYTES
Definition lcx_mlkem.h:115
#define MLKEM768_PUBLICKEYBYTES
Definition lcx_mlkem.h:110
#define MLKEM768_INDCPA_PUBLICKEYBYTES
Definition lcx_mlkem.h:101
#define MLKEM768_POLYVECBYTES
Definition lcx_mlkem.h:94
#define MLKEM_NUM_PARAM_SETS
Definition lcx_mlkem.h:45
ML-KEM (Module-Lattice Key Encapsulation Mechanism) public API.
ML-KEM parameter set descriptor holding all derived sizes.
Definition lcx_mlkem.h:168