Botan 3.7.1
Crypto and TLS for C&
cmce_types.h
Go to the documentation of this file.
1/*
2 * Classic McEliece Types
3 * (C) 2023 Jack Lloyd
4 * 2023,2024 Fabian Albert, Amos Treiber - Rohde & Schwarz Cybersecurity
5 *
6 * Botan is released under the Simplified BSD License (see license.txt)
7 **/
8
9#ifndef BOTAN_CMCE_TYPES_H_
10#define BOTAN_CMCE_TYPES_H_
11
12#include <botan/secmem.h>
13#include <botan/strong_type.h>
14#include <botan/internal/bitvector.h>
15
16namespace Botan {
17
18/// Represents a GF(q) element
20
21/// Represents a GF(q) modulus
23
24/// Represents an element of a permuation (pi in spec). Used in field ordering creation.
26
27/// Represents a permutation (pi in spec). Used in field ordering creation.
28using CmcePermutation = Strong<secure_vector<uint16_t>, struct CmcePermutation_>;
29
30/// Represents initial delta of keygen
31using CmceInitialSeed = Strong<secure_vector<uint8_t>, struct CmceInitialSeed_>;
32
33/// Represents a delta (can be altered; final value stored in private key)
34using CmceKeyGenSeed = Strong<secure_vector<uint8_t>, struct CmceKeyGenSeed_>;
35
36// Represents the sigma_2*q bits of E=PRG(delta) used by the field ordering algorithm (see CMCE ISO 8.3 Step 4)
37using CmceOrderingBits = Strong<secure_vector<uint8_t>, struct CmceOrderingBits_>;
38
39// Represents the sigma_1*t bits of E=PRG(delta) used by the irreducible algorithm (see CMCE ISO 8.3 Step 5)
40using CmceIrreducibleBits = Strong<secure_vector<uint8_t>, struct CmceIrreducibleBits_>;
41
42/// Represents s of private key
43using CmceRejectionSeed = Strong<secure_vector<uint8_t>, struct CmceRejectionSeed_>;
44
45/// Represents c of private key
47
48/// Represents e of encapsulation
50
51/// Represents C of decapsulation
53
54} // namespace Botan
55#endif // BOTAN_CMCE_TYPES_H_