1 /* SPDX-License-Identifier: GPL-2.0 OR BSD-3-Clause */
2 /*
3  * Copyright (c) 2023, Oracle and/or its affiliates.
4  *
5  * TLS Protocol definitions
6  *
7  * From https://www.iana.org/assignments/tls-parameters/tls-parameters.xhtml
8  */
9 
10 #ifndef _TLS_PROT_H
11 #define _TLS_PROT_H
12 
13 /*
14  * TLS Record protocol: ContentType
15  */
16 enum {
17 	TLS_RECORD_TYPE_CHANGE_CIPHER_SPEC = 20,
18 	TLS_RECORD_TYPE_ALERT = 21,
19 	TLS_RECORD_TYPE_HANDSHAKE = 22,
20 	TLS_RECORD_TYPE_DATA = 23,
21 	TLS_RECORD_TYPE_HEARTBEAT = 24,
22 	TLS_RECORD_TYPE_TLS12_CID = 25,
23 	TLS_RECORD_TYPE_ACK = 26,
24 };
25 
26 /*
27  * TLS Alert protocol: AlertLevel
28  */
29 enum {
30 	TLS_ALERT_LEVEL_WARNING = 1,
31 	TLS_ALERT_LEVEL_FATAL = 2,
32 };
33 
34 /*
35  * TLS Alert protocol: AlertDescription
36  */
37 enum {
38 	TLS_ALERT_DESC_CLOSE_NOTIFY = 0,
39 	TLS_ALERT_DESC_UNEXPECTED_MESSAGE = 10,
40 	TLS_ALERT_DESC_BAD_RECORD_MAC = 20,
41 	TLS_ALERT_DESC_RECORD_OVERFLOW = 22,
42 	TLS_ALERT_DESC_HANDSHAKE_FAILURE = 40,
43 	TLS_ALERT_DESC_BAD_CERTIFICATE = 42,
44 	TLS_ALERT_DESC_UNSUPPORTED_CERTIFICATE = 43,
45 	TLS_ALERT_DESC_CERTIFICATE_REVOKED = 44,
46 	TLS_ALERT_DESC_CERTIFICATE_EXPIRED = 45,
47 	TLS_ALERT_DESC_CERTIFICATE_UNKNOWN = 46,
48 	TLS_ALERT_DESC_ILLEGAL_PARAMETER = 47,
49 	TLS_ALERT_DESC_UNKNOWN_CA = 48,
50 	TLS_ALERT_DESC_ACCESS_DENIED = 49,
51 	TLS_ALERT_DESC_DECODE_ERROR = 50,
52 	TLS_ALERT_DESC_DECRYPT_ERROR = 51,
53 	TLS_ALERT_DESC_TOO_MANY_CIDS_REQUESTED	= 52,
54 	TLS_ALERT_DESC_PROTOCOL_VERSION = 70,
55 	TLS_ALERT_DESC_INSUFFICIENT_SECURITY = 71,
56 	TLS_ALERT_DESC_INTERNAL_ERROR = 80,
57 	TLS_ALERT_DESC_INAPPROPRIATE_FALLBACK = 86,
58 	TLS_ALERT_DESC_USER_CANCELED = 90,
59 	TLS_ALERT_DESC_MISSING_EXTENSION = 109,
60 	TLS_ALERT_DESC_UNSUPPORTED_EXTENSION = 110,
61 	TLS_ALERT_DESC_UNRECOGNIZED_NAME = 112,
62 	TLS_ALERT_DESC_BAD_CERTIFICATE_STATUS_RESPONSE = 113,
63 	TLS_ALERT_DESC_UNKNOWN_PSK_IDENTITY = 115,
64 	TLS_ALERT_DESC_CERTIFICATE_REQUIRED = 116,
65 	TLS_ALERT_DESC_NO_APPLICATION_PROTOCOL = 120,
66 };
67 
68 #endif /* _TLS_PROT_H */
69