/src/openssl/include/internal/tlsgroups.h
Line | Count | Source |
1 | | /* |
2 | | * Copyright 2017-2025 The OpenSSL Project Authors. All Rights Reserved. |
3 | | * |
4 | | * Licensed under the Apache License 2.0 (the "License"). You may not use |
5 | | * this file except in compliance with the License. You can obtain a copy |
6 | | * in the file LICENSE in the source distribution or at |
7 | | * https://www.openssl.org/source/license.html |
8 | | */ |
9 | | |
10 | | #ifndef OSSL_INTERNAL_TLSGROUPS_H |
11 | | #define OSSL_INTERNAL_TLSGROUPS_H |
12 | | #pragma once |
13 | | |
14 | | #define OSSL_TLS_GROUP_ID_sect163k1 0x0001 |
15 | | #define OSSL_TLS_GROUP_ID_sect163r1 0x0002 |
16 | | #define OSSL_TLS_GROUP_ID_sect163r2 0x0003 |
17 | | #define OSSL_TLS_GROUP_ID_sect193r1 0x0004 |
18 | | #define OSSL_TLS_GROUP_ID_sect193r2 0x0005 |
19 | | #define OSSL_TLS_GROUP_ID_sect233k1 0x0006 |
20 | | #define OSSL_TLS_GROUP_ID_sect233r1 0x0007 |
21 | | #define OSSL_TLS_GROUP_ID_sect239k1 0x0008 |
22 | | #define OSSL_TLS_GROUP_ID_sect283k1 0x0009 |
23 | | #define OSSL_TLS_GROUP_ID_sect283r1 0x000A |
24 | | #define OSSL_TLS_GROUP_ID_sect409k1 0x000B |
25 | | #define OSSL_TLS_GROUP_ID_sect409r1 0x000C |
26 | | #define OSSL_TLS_GROUP_ID_sect571k1 0x000D |
27 | | #define OSSL_TLS_GROUP_ID_sect571r1 0x000E |
28 | | #define OSSL_TLS_GROUP_ID_secp160k1 0x000F |
29 | | #define OSSL_TLS_GROUP_ID_secp160r1 0x0010 |
30 | | #define OSSL_TLS_GROUP_ID_secp160r2 0x0011 |
31 | | #define OSSL_TLS_GROUP_ID_secp192k1 0x0012 |
32 | | #define OSSL_TLS_GROUP_ID_secp192r1 0x0013 |
33 | | #define OSSL_TLS_GROUP_ID_secp224k1 0x0014 |
34 | | #define OSSL_TLS_GROUP_ID_secp224r1 0x0015 |
35 | | #define OSSL_TLS_GROUP_ID_secp256k1 0x0016 |
36 | | #define OSSL_TLS_GROUP_ID_secp256r1 0x0017 |
37 | | #define OSSL_TLS_GROUP_ID_secp384r1 0x0018 |
38 | | #define OSSL_TLS_GROUP_ID_secp521r1 0x0019 |
39 | | #define OSSL_TLS_GROUP_ID_brainpoolP256r1 0x001A |
40 | | #define OSSL_TLS_GROUP_ID_brainpoolP384r1 0x001B |
41 | | #define OSSL_TLS_GROUP_ID_brainpoolP512r1 0x001C |
42 | | #define OSSL_TLS_GROUP_ID_x25519 0x001D |
43 | | #define OSSL_TLS_GROUP_ID_x448 0x001E |
44 | | #define OSSL_TLS_GROUP_ID_brainpoolP256r1_tls13 0x001F |
45 | | #define OSSL_TLS_GROUP_ID_brainpoolP384r1_tls13 0x0020 |
46 | | #define OSSL_TLS_GROUP_ID_brainpoolP512r1_tls13 0x0021 |
47 | | #define OSSL_TLS_GROUP_ID_gc256A 0x0022 |
48 | | #define OSSL_TLS_GROUP_ID_gc256B 0x0023 |
49 | | #define OSSL_TLS_GROUP_ID_gc256C 0x0024 |
50 | | #define OSSL_TLS_GROUP_ID_gc256D 0x0025 |
51 | | #define OSSL_TLS_GROUP_ID_gc512A 0x0026 |
52 | | #define OSSL_TLS_GROUP_ID_gc512B 0x0027 |
53 | | #define OSSL_TLS_GROUP_ID_gc512C 0x0028 |
54 | | #define OSSL_TLS_GROUP_ID_curveSM2 0x0029 |
55 | | #define OSSL_TLS_GROUP_ID_ffdhe2048 0x0100 |
56 | | #define OSSL_TLS_GROUP_ID_ffdhe3072 0x0101 |
57 | | #define OSSL_TLS_GROUP_ID_ffdhe4096 0x0102 |
58 | | #define OSSL_TLS_GROUP_ID_ffdhe6144 0x0103 |
59 | | #define OSSL_TLS_GROUP_ID_ffdhe8192 0x0104 |
60 | | #define OSSL_TLS_GROUP_ID_mlkem512 0x0200 |
61 | | #define OSSL_TLS_GROUP_ID_mlkem768 0x0201 |
62 | | #define OSSL_TLS_GROUP_ID_mlkem1024 0x0202 |
63 | | #define OSSL_TLS_GROUP_ID_SecP256r1MLKEM768 0x11EB |
64 | | #define OSSL_TLS_GROUP_ID_X25519MLKEM768 0x11EC |
65 | | #define OSSL_TLS_GROUP_ID_SecP384r1MLKEM1024 0x11ED |
66 | | #define OSSL_TLS_GROUP_ID_curveSM2MLKEM768 0x11EE |
67 | | |
68 | | /* |
69 | | * RFC 7919: "Codepoints ... between 256 and 511, inclusive ... are set aside |
70 | | * for FFDHE groups" |
71 | | */ |
72 | | #define OSSL_TLS_GROUP_ID_FFDHE_START 0x0100 /* inclusive */ |
73 | | #define OSSL_TLS_GROUP_ID_FFDHE_END 0x01FF /* inclusive */ |
74 | | |
75 | | static ossl_inline int is_ecdhe_group(const uint16_t group_id) |
76 | 0 | { |
77 | 0 | /* This includes the usual EC groups, and also ECX, GOST ... */ |
78 | 0 | return group_id < OSSL_TLS_GROUP_ID_FFDHE_START; |
79 | 0 | } |
80 | | |
81 | | static ossl_inline int is_ffdhe_group(const uint16_t group_id) |
82 | 0 | { |
83 | 0 | return group_id >= OSSL_TLS_GROUP_ID_FFDHE_START |
84 | 0 | && group_id <= OSSL_TLS_GROUP_ID_FFDHE_END; |
85 | 0 | } |
86 | | |
87 | | #endif |