iPXE
crypto.h
Go to the documentation of this file.
1#ifndef CONFIG_CRYPTO_H
2#define CONFIG_CRYPTO_H
3
4/** @file
5 *
6 * Cryptographic configuration
7 *
8 */
9
10FILE_LICENCE ( GPL2_OR_LATER_OR_UBDL );
11FILE_SECBOOT ( PERMITTED );
12
13/** Minimum TLS version */
14#define TLS_VERSION_MIN TLS_VERSION_TLS_1_1
15
16/** Maximum TLS version */
17#define TLS_VERSION_MAX TLS_VERSION_TLS_1_2
18
19/** Public-key exchange algorithm */
20#define CRYPTO_EXCHANGE_PUBKEY
21
22/** DHE key exchange algorithm */
23#define CRYPTO_EXCHANGE_DHE
24
25/** ECDHE key exchange algorithm */
26#define CRYPTO_EXCHANGE_ECDHE
27
28/** RSA public-key algorithm */
29#define CRYPTO_PUBKEY_RSA
30
31/** ECDSA public-key algorithm */
32#define CRYPTO_PUBKEY_ECDSA
33
34/** AES-CBC block cipher */
35#define CRYPTO_CIPHER_AES_CBC
36
37/** AES-GCM block cipher */
38#define CRYPTO_CIPHER_AES_GCM
39
40/** MD4 digest algorithm */
41//#define CRYPTO_DIGEST_MD4
42
43/** MD5 digest algorithm */
44//#define CRYPTO_DIGEST_MD5
45
46/** SHA-1 digest algorithm */
47#define CRYPTO_DIGEST_SHA1
48
49/** SHA-224 digest algorithm */
50#define CRYPTO_DIGEST_SHA224
51
52/** SHA-256 digest algorithm */
53#define CRYPTO_DIGEST_SHA256
54
55/** SHA-384 digest algorithm */
56#define CRYPTO_DIGEST_SHA384
57
58/** SHA-512 digest algorithm */
59#define CRYPTO_DIGEST_SHA512
60
61/** SHA-512/224 digest algorithm */
62//#define CRYPTO_DIGEST_SHA512_224
63
64/** SHA-512/256 digest algorithm */
65//#define CRYPTO_DIGEST_SHA512_256
66
67/** X25519 elliptic curve */
68#define CRYPTO_CURVE_X25519
69
70/** P-256 elliptic curve */
71#define CRYPTO_CURVE_P256
72
73/** P-384 elliptic curve */
74#define CRYPTO_CURVE_P384
75
76/** FFDHE2048 finite field */
77#define CRYPTO_GROUP_FFDHE2048
78
79/** FFDHE3072 finite field */
80#define CRYPTO_GROUP_FFDHE3072
81
82/** FFDHE4096 finite field */
83#define CRYPTO_GROUP_FFDHE4096
84
85/** MODP2048 finite field */
86#define CRYPTO_GROUP_MODP2048
87
88/** MODP3072 finite field */
89#define CRYPTO_GROUP_MODP3072
90
91/** MODP4096 finite field */
92#define CRYPTO_GROUP_MODP4096
93
94/** Margin of error (in seconds) allowed in signed timestamps
95 *
96 * We default to allowing a reasonable margin of error: 12 hours to
97 * allow for the local time zone being non-GMT, plus 30 minutes to
98 * allow for general clock drift.
99 */
100#define TIMESTAMP_ERROR_MARGIN ( ( 12 * 60 + 30 ) * 60 )
101
102/** Default cross-signed certificate source
103 *
104 * This is the default location from which iPXE will attempt to
105 * download cross-signed certificates in order to complete a
106 * certificate chain.
107 */
108#define CROSSCERT "http://ca.ipxe.org/auto"
109
110/** Perform OCSP checks when applicable
111 *
112 * Some CAs provide non-functional OCSP servers, and some clients are
113 * forced to operate on networks without access to the OCSP servers.
114 * Allow the user to explicitly disable the use of OCSP checks.
115 */
116#define OCSP_CHECK
117
118#include <config/named.h>
119#include NAMED_CONFIG(crypto.h)
120#include <config/local/crypto.h>
121#include LOCAL_NAMED_CONFIG(crypto.h)
122
123#endif /* CONFIG_CRYPTO_H */
#define FILE_LICENCE(_licence)
Declare a particular licence as applying to a file.
Definition compiler.h:921
#define FILE_SECBOOT(_status)
Declare a file's UEFI Secure Boot permission status.
Definition compiler.h:951
Named configurations.