Coverage Report

Created: 2026-02-22 06:11

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
/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