Files

504 lines
22 KiB
Python

"""TLS cipher-suite and version name tables, generated from ``tshark -G values``."""
from __future__ import annotations
CIPHER_SUITES: dict[int, str] = {
0: 'TLS_NULL_WITH_NULL_NULL',
1: 'TLS_RSA_WITH_NULL_MD5',
2: 'TLS_RSA_WITH_NULL_SHA',
3: 'TLS_RSA_EXPORT_WITH_RC4_40_MD5',
4: 'TLS_RSA_WITH_RC4_128_MD5',
5: 'TLS_RSA_WITH_RC4_128_SHA',
6: 'TLS_RSA_EXPORT_WITH_RC2_CBC_40_MD5',
7: 'TLS_RSA_WITH_IDEA_CBC_SHA',
8: 'TLS_RSA_EXPORT_WITH_DES40_CBC_SHA',
9: 'TLS_RSA_WITH_DES_CBC_SHA',
10: 'TLS_RSA_WITH_3DES_EDE_CBC_SHA',
11: 'TLS_DH_DSS_EXPORT_WITH_DES40_CBC_SHA',
12: 'TLS_DH_DSS_WITH_DES_CBC_SHA',
13: 'TLS_DH_DSS_WITH_3DES_EDE_CBC_SHA',
14: 'TLS_DH_RSA_EXPORT_WITH_DES40_CBC_SHA',
15: 'TLS_DH_RSA_WITH_DES_CBC_SHA',
16: 'TLS_DH_RSA_WITH_3DES_EDE_CBC_SHA',
17: 'TLS_DHE_DSS_EXPORT_WITH_DES40_CBC_SHA',
18: 'TLS_DHE_DSS_WITH_DES_CBC_SHA',
19: 'TLS_DHE_DSS_WITH_3DES_EDE_CBC_SHA',
20: 'TLS_DHE_RSA_EXPORT_WITH_DES40_CBC_SHA',
21: 'TLS_DHE_RSA_WITH_DES_CBC_SHA',
22: 'TLS_DHE_RSA_WITH_3DES_EDE_CBC_SHA',
23: 'TLS_DH_anon_EXPORT_WITH_RC4_40_MD5',
24: 'TLS_DH_anon_WITH_RC4_128_MD5',
25: 'TLS_DH_anon_EXPORT_WITH_DES40_CBC_SHA',
26: 'TLS_DH_anon_WITH_DES_CBC_SHA',
27: 'TLS_DH_anon_WITH_3DES_EDE_CBC_SHA',
28: 'SSL_FORTEZZA_KEA_WITH_NULL_SHA',
29: 'SSL_FORTEZZA_KEA_WITH_FORTEZZA_CBC_SHA',
30: 'TLS_KRB5_WITH_DES_CBC_SHA',
31: 'TLS_KRB5_WITH_3DES_EDE_CBC_SHA',
32: 'TLS_KRB5_WITH_RC4_128_SHA',
33: 'TLS_KRB5_WITH_IDEA_CBC_SHA',
34: 'TLS_KRB5_WITH_DES_CBC_MD5',
35: 'TLS_KRB5_WITH_3DES_EDE_CBC_MD5',
36: 'TLS_KRB5_WITH_RC4_128_MD5',
37: 'TLS_KRB5_WITH_IDEA_CBC_MD5',
38: 'TLS_KRB5_EXPORT_WITH_DES_CBC_40_SHA',
39: 'TLS_KRB5_EXPORT_WITH_RC2_CBC_40_SHA',
40: 'TLS_KRB5_EXPORT_WITH_RC4_40_SHA',
41: 'TLS_KRB5_EXPORT_WITH_DES_CBC_40_MD5',
42: 'TLS_KRB5_EXPORT_WITH_RC2_CBC_40_MD5',
43: 'TLS_KRB5_EXPORT_WITH_RC4_40_MD5',
44: 'TLS_PSK_WITH_NULL_SHA',
45: 'TLS_DHE_PSK_WITH_NULL_SHA',
46: 'TLS_RSA_PSK_WITH_NULL_SHA',
47: 'TLS_RSA_WITH_AES_128_CBC_SHA',
48: 'TLS_DH_DSS_WITH_AES_128_CBC_SHA',
49: 'TLS_DH_RSA_WITH_AES_128_CBC_SHA',
50: 'TLS_DHE_DSS_WITH_AES_128_CBC_SHA',
51: 'TLS_DHE_RSA_WITH_AES_128_CBC_SHA',
52: 'TLS_DH_anon_WITH_AES_128_CBC_SHA',
53: 'TLS_RSA_WITH_AES_256_CBC_SHA',
54: 'TLS_DH_DSS_WITH_AES_256_CBC_SHA',
55: 'TLS_DH_RSA_WITH_AES_256_CBC_SHA',
56: 'TLS_DHE_DSS_WITH_AES_256_CBC_SHA',
57: 'TLS_DHE_RSA_WITH_AES_256_CBC_SHA',
58: 'TLS_DH_anon_WITH_AES_256_CBC_SHA',
59: 'TLS_RSA_WITH_NULL_SHA256',
60: 'TLS_RSA_WITH_AES_128_CBC_SHA256',
61: 'TLS_RSA_WITH_AES_256_CBC_SHA256',
62: 'TLS_DH_DSS_WITH_AES_128_CBC_SHA256',
63: 'TLS_DH_RSA_WITH_AES_128_CBC_SHA256',
64: 'TLS_DHE_DSS_WITH_AES_128_CBC_SHA256',
65: 'TLS_RSA_WITH_CAMELLIA_128_CBC_SHA',
66: 'TLS_DH_DSS_WITH_CAMELLIA_128_CBC_SHA',
67: 'TLS_DH_RSA_WITH_CAMELLIA_128_CBC_SHA',
68: 'TLS_DHE_DSS_WITH_CAMELLIA_128_CBC_SHA',
69: 'TLS_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA',
70: 'TLS_DH_anon_WITH_CAMELLIA_128_CBC_SHA',
96: 'TLS_RSA_EXPORT1024_WITH_RC4_56_MD5',
97: 'TLS_RSA_EXPORT1024_WITH_RC2_CBC_56_MD5',
98: 'TLS_RSA_EXPORT1024_WITH_DES_CBC_SHA',
99: 'TLS_DHE_DSS_EXPORT1024_WITH_DES_CBC_SHA',
100: 'TLS_RSA_EXPORT1024_WITH_RC4_56_SHA',
101: 'TLS_DHE_DSS_EXPORT1024_WITH_RC4_56_SHA',
102: 'TLS_DHE_DSS_WITH_RC4_128_SHA',
103: 'TLS_DHE_RSA_WITH_AES_128_CBC_SHA256',
104: 'TLS_DH_DSS_WITH_AES_256_CBC_SHA256',
105: 'TLS_DH_RSA_WITH_AES_256_CBC_SHA256',
106: 'TLS_DHE_DSS_WITH_AES_256_CBC_SHA256',
107: 'TLS_DHE_RSA_WITH_AES_256_CBC_SHA256',
108: 'TLS_DH_anon_WITH_AES_128_CBC_SHA256',
109: 'TLS_DH_anon_WITH_AES_256_CBC_SHA256',
128: 'TLS_GOSTR341094_WITH_28147_CNT_IMIT',
129: 'TLS_GOSTR341001_WITH_28147_CNT_IMIT',
130: 'TLS_GOSTR341094_WITH_NULL_GOSTR3411',
131: 'TLS_GOSTR341001_WITH_NULL_GOSTR3411',
132: 'TLS_RSA_WITH_CAMELLIA_256_CBC_SHA',
133: 'TLS_DH_DSS_WITH_CAMELLIA_256_CBC_SHA',
134: 'TLS_DH_RSA_WITH_CAMELLIA_256_CBC_SHA',
135: 'TLS_DHE_DSS_WITH_CAMELLIA_256_CBC_SHA',
136: 'TLS_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA',
137: 'TLS_DH_anon_WITH_CAMELLIA_256_CBC_SHA',
138: 'TLS_PSK_WITH_RC4_128_SHA',
139: 'TLS_PSK_WITH_3DES_EDE_CBC_SHA',
140: 'TLS_PSK_WITH_AES_128_CBC_SHA',
141: 'TLS_PSK_WITH_AES_256_CBC_SHA',
142: 'TLS_DHE_PSK_WITH_RC4_128_SHA',
143: 'TLS_DHE_PSK_WITH_3DES_EDE_CBC_SHA',
144: 'TLS_DHE_PSK_WITH_AES_128_CBC_SHA',
145: 'TLS_DHE_PSK_WITH_AES_256_CBC_SHA',
146: 'TLS_RSA_PSK_WITH_RC4_128_SHA',
147: 'TLS_RSA_PSK_WITH_3DES_EDE_CBC_SHA',
148: 'TLS_RSA_PSK_WITH_AES_128_CBC_SHA',
149: 'TLS_RSA_PSK_WITH_AES_256_CBC_SHA',
150: 'TLS_RSA_WITH_SEED_CBC_SHA',
151: 'TLS_DH_DSS_WITH_SEED_CBC_SHA',
152: 'TLS_DH_RSA_WITH_SEED_CBC_SHA',
153: 'TLS_DHE_DSS_WITH_SEED_CBC_SHA',
154: 'TLS_DHE_RSA_WITH_SEED_CBC_SHA',
155: 'TLS_DH_anon_WITH_SEED_CBC_SHA',
156: 'TLS_RSA_WITH_AES_128_GCM_SHA256',
157: 'TLS_RSA_WITH_AES_256_GCM_SHA384',
158: 'TLS_DHE_RSA_WITH_AES_128_GCM_SHA256',
159: 'TLS_DHE_RSA_WITH_AES_256_GCM_SHA384',
160: 'TLS_DH_RSA_WITH_AES_128_GCM_SHA256',
161: 'TLS_DH_RSA_WITH_AES_256_GCM_SHA384',
162: 'TLS_DHE_DSS_WITH_AES_128_GCM_SHA256',
163: 'TLS_DHE_DSS_WITH_AES_256_GCM_SHA384',
164: 'TLS_DH_DSS_WITH_AES_128_GCM_SHA256',
165: 'TLS_DH_DSS_WITH_AES_256_GCM_SHA384',
166: 'TLS_DH_anon_WITH_AES_128_GCM_SHA256',
167: 'TLS_DH_anon_WITH_AES_256_GCM_SHA384',
168: 'TLS_PSK_WITH_AES_128_GCM_SHA256',
169: 'TLS_PSK_WITH_AES_256_GCM_SHA384',
170: 'TLS_DHE_PSK_WITH_AES_128_GCM_SHA256',
171: 'TLS_DHE_PSK_WITH_AES_256_GCM_SHA384',
172: 'TLS_RSA_PSK_WITH_AES_128_GCM_SHA256',
173: 'TLS_RSA_PSK_WITH_AES_256_GCM_SHA384',
174: 'TLS_PSK_WITH_AES_128_CBC_SHA256',
175: 'TLS_PSK_WITH_AES_256_CBC_SHA384',
176: 'TLS_PSK_WITH_NULL_SHA256',
177: 'TLS_PSK_WITH_NULL_SHA384',
178: 'TLS_DHE_PSK_WITH_AES_128_CBC_SHA256',
179: 'TLS_DHE_PSK_WITH_AES_256_CBC_SHA384',
180: 'TLS_DHE_PSK_WITH_NULL_SHA256',
181: 'TLS_DHE_PSK_WITH_NULL_SHA384',
182: 'TLS_RSA_PSK_WITH_AES_128_CBC_SHA256',
183: 'TLS_RSA_PSK_WITH_AES_256_CBC_SHA384',
184: 'TLS_RSA_PSK_WITH_NULL_SHA256',
185: 'TLS_RSA_PSK_WITH_NULL_SHA384',
186: 'TLS_RSA_WITH_CAMELLIA_128_CBC_SHA256',
187: 'TLS_DH_DSS_WITH_CAMELLIA_128_CBC_SHA256',
188: 'TLS_DH_RSA_WITH_CAMELLIA_128_CBC_SHA256',
189: 'TLS_DHE_DSS_WITH_CAMELLIA_128_CBC_SHA256',
190: 'TLS_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA256',
191: 'TLS_DH_anon_WITH_CAMELLIA_128_CBC_SHA256',
192: 'TLS_RSA_WITH_CAMELLIA_256_CBC_SHA256',
193: 'TLS_DH_DSS_WITH_CAMELLIA_256_CBC_SHA256',
194: 'TLS_DH_RSA_WITH_CAMELLIA_256_CBC_SHA256',
195: 'TLS_DHE_DSS_WITH_CAMELLIA_256_CBC_SHA256',
196: 'TLS_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA256',
197: 'TLS_DH_anon_WITH_CAMELLIA_256_CBC_SHA256',
198: 'TLS_SM4_GCM_SM3',
199: 'TLS_SM4_CCM_SM3',
255: 'TLS_EMPTY_RENEGOTIATION_INFO_SCSV',
2570: 'Reserved (GREASE)',
4865: 'TLS_AES_128_GCM_SHA256',
4866: 'TLS_AES_256_GCM_SHA384',
4867: 'TLS_CHACHA20_POLY1305_SHA256',
4868: 'TLS_AES_128_CCM_SHA256',
4869: 'TLS_AES_128_CCM_8_SHA256',
6682: 'Reserved (GREASE)',
10794: 'Reserved (GREASE)',
14906: 'Reserved (GREASE)',
19018: 'Reserved (GREASE)',
22016: 'TLS_FALLBACK_SCSV',
23130: 'Reserved (GREASE)',
27242: 'Reserved (GREASE)',
31354: 'Reserved (GREASE)',
35466: 'Reserved (GREASE)',
39578: 'Reserved (GREASE)',
43690: 'Reserved (GREASE)',
47802: 'Reserved (GREASE)',
49153: 'TLS_ECDH_ECDSA_WITH_NULL_SHA',
49154: 'TLS_ECDH_ECDSA_WITH_RC4_128_SHA',
49155: 'TLS_ECDH_ECDSA_WITH_3DES_EDE_CBC_SHA',
49156: 'TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA',
49157: 'TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA',
49158: 'TLS_ECDHE_ECDSA_WITH_NULL_SHA',
49159: 'TLS_ECDHE_ECDSA_WITH_RC4_128_SHA',
49160: 'TLS_ECDHE_ECDSA_WITH_3DES_EDE_CBC_SHA',
49161: 'TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA',
49162: 'TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA',
49163: 'TLS_ECDH_RSA_WITH_NULL_SHA',
49164: 'TLS_ECDH_RSA_WITH_RC4_128_SHA',
49165: 'TLS_ECDH_RSA_WITH_3DES_EDE_CBC_SHA',
49166: 'TLS_ECDH_RSA_WITH_AES_128_CBC_SHA',
49167: 'TLS_ECDH_RSA_WITH_AES_256_CBC_SHA',
49168: 'TLS_ECDHE_RSA_WITH_NULL_SHA',
49169: 'TLS_ECDHE_RSA_WITH_RC4_128_SHA',
49170: 'TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA',
49171: 'TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA',
49172: 'TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA',
49173: 'TLS_ECDH_anon_WITH_NULL_SHA',
49174: 'TLS_ECDH_anon_WITH_RC4_128_SHA',
49175: 'TLS_ECDH_anon_WITH_3DES_EDE_CBC_SHA',
49176: 'TLS_ECDH_anon_WITH_AES_128_CBC_SHA',
49177: 'TLS_ECDH_anon_WITH_AES_256_CBC_SHA',
49178: 'TLS_SRP_SHA_WITH_3DES_EDE_CBC_SHA',
49179: 'TLS_SRP_SHA_RSA_WITH_3DES_EDE_CBC_SHA',
49180: 'TLS_SRP_SHA_DSS_WITH_3DES_EDE_CBC_SHA',
49181: 'TLS_SRP_SHA_WITH_AES_128_CBC_SHA',
49182: 'TLS_SRP_SHA_RSA_WITH_AES_128_CBC_SHA',
49183: 'TLS_SRP_SHA_DSS_WITH_AES_128_CBC_SHA',
49184: 'TLS_SRP_SHA_WITH_AES_256_CBC_SHA',
49185: 'TLS_SRP_SHA_RSA_WITH_AES_256_CBC_SHA',
49186: 'TLS_SRP_SHA_DSS_WITH_AES_256_CBC_SHA',
49187: 'TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256',
49188: 'TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384',
49189: 'TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA256',
49190: 'TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA384',
49191: 'TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256',
49192: 'TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384',
49193: 'TLS_ECDH_RSA_WITH_AES_128_CBC_SHA256',
49194: 'TLS_ECDH_RSA_WITH_AES_256_CBC_SHA384',
49195: 'TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256',
49196: 'TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384',
49197: 'TLS_ECDH_ECDSA_WITH_AES_128_GCM_SHA256',
49198: 'TLS_ECDH_ECDSA_WITH_AES_256_GCM_SHA384',
49199: 'TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256',
49200: 'TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384',
49201: 'TLS_ECDH_RSA_WITH_AES_128_GCM_SHA256',
49202: 'TLS_ECDH_RSA_WITH_AES_256_GCM_SHA384',
49203: 'TLS_ECDHE_PSK_WITH_RC4_128_SHA',
49204: 'TLS_ECDHE_PSK_WITH_3DES_EDE_CBC_SHA',
49205: 'TLS_ECDHE_PSK_WITH_AES_128_CBC_SHA',
49206: 'TLS_ECDHE_PSK_WITH_AES_256_CBC_SHA',
49207: 'TLS_ECDHE_PSK_WITH_AES_128_CBC_SHA256',
49208: 'TLS_ECDHE_PSK_WITH_AES_256_CBC_SHA384',
49209: 'TLS_ECDHE_PSK_WITH_NULL_SHA',
49210: 'TLS_ECDHE_PSK_WITH_NULL_SHA256',
49211: 'TLS_ECDHE_PSK_WITH_NULL_SHA384',
49212: 'TLS_RSA_WITH_ARIA_128_CBC_SHA256',
49213: 'TLS_RSA_WITH_ARIA_256_CBC_SHA384',
49214: 'TLS_DH_DSS_WITH_ARIA_128_CBC_SHA256',
49215: 'TLS_DH_DSS_WITH_ARIA_256_CBC_SHA384',
49216: 'TLS_DH_RSA_WITH_ARIA_128_CBC_SHA256',
49217: 'TLS_DH_RSA_WITH_ARIA_256_CBC_SHA384',
49218: 'TLS_DHE_DSS_WITH_ARIA_128_CBC_SHA256',
49219: 'TLS_DHE_DSS_WITH_ARIA_256_CBC_SHA384',
49220: 'TLS_DHE_RSA_WITH_ARIA_128_CBC_SHA256',
49221: 'TLS_DHE_RSA_WITH_ARIA_256_CBC_SHA384',
49222: 'TLS_DH_anon_WITH_ARIA_128_CBC_SHA256',
49223: 'TLS_DH_anon_WITH_ARIA_256_CBC_SHA384',
49224: 'TLS_ECDHE_ECDSA_WITH_ARIA_128_CBC_SHA256',
49225: 'TLS_ECDHE_ECDSA_WITH_ARIA_256_CBC_SHA384',
49226: 'TLS_ECDH_ECDSA_WITH_ARIA_128_CBC_SHA256',
49227: 'TLS_ECDH_ECDSA_WITH_ARIA_256_CBC_SHA384',
49228: 'TLS_ECDHE_RSA_WITH_ARIA_128_CBC_SHA256',
49229: 'TLS_ECDHE_RSA_WITH_ARIA_256_CBC_SHA384',
49230: 'TLS_ECDH_RSA_WITH_ARIA_128_CBC_SHA256',
49231: 'TLS_ECDH_RSA_WITH_ARIA_256_CBC_SHA384',
49232: 'TLS_RSA_WITH_ARIA_128_GCM_SHA256',
49233: 'TLS_RSA_WITH_ARIA_256_GCM_SHA384',
49234: 'TLS_DHE_RSA_WITH_ARIA_128_GCM_SHA256',
49235: 'TLS_DHE_RSA_WITH_ARIA_256_GCM_SHA384',
49236: 'TLS_DH_RSA_WITH_ARIA_128_GCM_SHA256',
49237: 'TLS_DH_RSA_WITH_ARIA_256_GCM_SHA384',
49238: 'TLS_DHE_DSS_WITH_ARIA_128_GCM_SHA256',
49239: 'TLS_DHE_DSS_WITH_ARIA_256_GCM_SHA384',
49240: 'TLS_DH_DSS_WITH_ARIA_128_GCM_SHA256',
49241: 'TLS_DH_DSS_WITH_ARIA_256_GCM_SHA384',
49242: 'TLS_DH_anon_WITH_ARIA_128_GCM_SHA256',
49243: 'TLS_DH_anon_WITH_ARIA_256_GCM_SHA384',
49244: 'TLS_ECDHE_ECDSA_WITH_ARIA_128_GCM_SHA256',
49245: 'TLS_ECDHE_ECDSA_WITH_ARIA_256_GCM_SHA384',
49246: 'TLS_ECDH_ECDSA_WITH_ARIA_128_GCM_SHA256',
49247: 'TLS_ECDH_ECDSA_WITH_ARIA_256_GCM_SHA384',
49248: 'TLS_ECDHE_RSA_WITH_ARIA_128_GCM_SHA256',
49249: 'TLS_ECDHE_RSA_WITH_ARIA_256_GCM_SHA384',
49250: 'TLS_ECDH_RSA_WITH_ARIA_128_GCM_SHA256',
49251: 'TLS_ECDH_RSA_WITH_ARIA_256_GCM_SHA384',
49252: 'TLS_PSK_WITH_ARIA_128_CBC_SHA256',
49253: 'TLS_PSK_WITH_ARIA_256_CBC_SHA384',
49254: 'TLS_DHE_PSK_WITH_ARIA_128_CBC_SHA256',
49255: 'TLS_DHE_PSK_WITH_ARIA_256_CBC_SHA384',
49256: 'TLS_RSA_PSK_WITH_ARIA_128_CBC_SHA256',
49257: 'TLS_RSA_PSK_WITH_ARIA_256_CBC_SHA384',
49258: 'TLS_PSK_WITH_ARIA_128_GCM_SHA256',
49259: 'TLS_PSK_WITH_ARIA_256_GCM_SHA384',
49260: 'TLS_DHE_PSK_WITH_ARIA_128_GCM_SHA256',
49261: 'TLS_DHE_PSK_WITH_ARIA_256_GCM_SHA384',
49262: 'TLS_RSA_PSK_WITH_ARIA_128_GCM_SHA256',
49263: 'TLS_RSA_PSK_WITH_ARIA_256_GCM_SHA384',
49264: 'TLS_ECDHE_PSK_WITH_ARIA_128_CBC_SHA256',
49265: 'TLS_ECDHE_PSK_WITH_ARIA_256_CBC_SHA384',
49266: 'TLS_ECDHE_ECDSA_WITH_CAMELLIA_128_CBC_SHA256',
49267: 'TLS_ECDHE_ECDSA_WITH_CAMELLIA_256_CBC_SHA384',
49268: 'TLS_ECDH_ECDSA_WITH_CAMELLIA_128_CBC_SHA256',
49269: 'TLS_ECDH_ECDSA_WITH_CAMELLIA_256_CBC_SHA384',
49270: 'TLS_ECDHE_RSA_WITH_CAMELLIA_128_CBC_SHA256',
49271: 'TLS_ECDHE_RSA_WITH_CAMELLIA_256_CBC_SHA384',
49272: 'TLS_ECDH_RSA_WITH_CAMELLIA_128_CBC_SHA256',
49273: 'TLS_ECDH_RSA_WITH_CAMELLIA_256_CBC_SHA384',
49274: 'TLS_RSA_WITH_CAMELLIA_128_GCM_SHA256',
49275: 'TLS_RSA_WITH_CAMELLIA_256_GCM_SHA384',
49276: 'TLS_DHE_RSA_WITH_CAMELLIA_128_GCM_SHA256',
49277: 'TLS_DHE_RSA_WITH_CAMELLIA_256_GCM_SHA384',
49278: 'TLS_DH_RSA_WITH_CAMELLIA_128_GCM_SHA256',
49279: 'TLS_DH_RSA_WITH_CAMELLIA_256_GCM_SHA384',
49280: 'TLS_DHE_DSS_WITH_CAMELLIA_128_GCM_SHA256',
49281: 'TLS_DHE_DSS_WITH_CAMELLIA_256_GCM_SHA384',
49282: 'TLS_DH_DSS_WITH_CAMELLIA_128_GCM_SHA256',
49283: 'TLS_DH_DSS_WITH_CAMELLIA_256_GCM_SHA384',
49284: 'TLS_DH_anon_WITH_CAMELLIA_128_GCM_SHA256',
49285: 'TLS_DH_anon_WITH_CAMELLIA_256_GCM_SHA384',
49286: 'TLS_ECDHE_ECDSA_WITH_CAMELLIA_128_GCM_SHA256',
49287: 'TLS_ECDHE_ECDSA_WITH_CAMELLIA_256_GCM_SHA384',
49288: 'TLS_ECDH_ECDSA_WITH_CAMELLIA_128_GCM_SHA256',
49289: 'TLS_ECDH_ECDSA_WITH_CAMELLIA_256_GCM_SHA384',
49290: 'TLS_ECDHE_RSA_WITH_CAMELLIA_128_GCM_SHA256',
49291: 'TLS_ECDHE_RSA_WITH_CAMELLIA_256_GCM_SHA384',
49292: 'TLS_ECDH_RSA_WITH_CAMELLIA_128_GCM_SHA256',
49293: 'TLS_ECDH_RSA_WITH_CAMELLIA_256_GCM_SHA384',
49294: 'TLS_PSK_WITH_CAMELLIA_128_GCM_SHA256',
49295: 'TLS_PSK_WITH_CAMELLIA_256_GCM_SHA384',
49296: 'TLS_DHE_PSK_WITH_CAMELLIA_128_GCM_SHA256',
49297: 'TLS_DHE_PSK_WITH_CAMELLIA_256_GCM_SHA384',
49298: 'TLS_RSA_PSK_WITH_CAMELLIA_128_GCM_SHA256',
49299: 'TLS_RSA_PSK_WITH_CAMELLIA_256_GCM_SHA384',
49300: 'TLS_PSK_WITH_CAMELLIA_128_CBC_SHA256',
49301: 'TLS_PSK_WITH_CAMELLIA_256_CBC_SHA384',
49302: 'TLS_DHE_PSK_WITH_CAMELLIA_128_CBC_SHA256',
49303: 'TLS_DHE_PSK_WITH_CAMELLIA_256_CBC_SHA384',
49304: 'TLS_RSA_PSK_WITH_CAMELLIA_128_CBC_SHA256',
49305: 'TLS_RSA_PSK_WITH_CAMELLIA_256_CBC_SHA384',
49306: 'TLS_ECDHE_PSK_WITH_CAMELLIA_128_CBC_SHA256',
49307: 'TLS_ECDHE_PSK_WITH_CAMELLIA_256_CBC_SHA384',
49308: 'TLS_RSA_WITH_AES_128_CCM',
49309: 'TLS_RSA_WITH_AES_256_CCM',
49310: 'TLS_DHE_RSA_WITH_AES_128_CCM',
49311: 'TLS_DHE_RSA_WITH_AES_256_CCM',
49312: 'TLS_RSA_WITH_AES_128_CCM_8',
49313: 'TLS_RSA_WITH_AES_256_CCM_8',
49314: 'TLS_DHE_RSA_WITH_AES_128_CCM_8',
49315: 'TLS_DHE_RSA_WITH_AES_256_CCM_8',
49316: 'TLS_PSK_WITH_AES_128_CCM',
49317: 'TLS_PSK_WITH_AES_256_CCM',
49318: 'TLS_DHE_PSK_WITH_AES_128_CCM',
49319: 'TLS_DHE_PSK_WITH_AES_256_CCM',
49320: 'TLS_PSK_WITH_AES_128_CCM_8',
49321: 'TLS_PSK_WITH_AES_256_CCM_8',
49322: 'TLS_PSK_DHE_WITH_AES_128_CCM_8',
49323: 'TLS_PSK_DHE_WITH_AES_256_CCM_8',
49324: 'TLS_ECDHE_ECDSA_WITH_AES_128_CCM',
49325: 'TLS_ECDHE_ECDSA_WITH_AES_256_CCM',
49326: 'TLS_ECDHE_ECDSA_WITH_AES_128_CCM_8',
49327: 'TLS_ECDHE_ECDSA_WITH_AES_256_CCM_8',
49328: 'TLS_ECCPWD_WITH_AES_128_GCM_SHA256',
49329: 'TLS_ECCPWD_WITH_AES_256_GCM_SHA384',
49330: 'TLS_ECCPWD_WITH_AES_128_CCM_SHA256',
49331: 'TLS_ECCPWD_WITH_AES_256_CCM_SHA384',
49332: 'TLS_SHA256_SHA256',
49333: 'TLS_SHA384_SHA384',
49407: 'TLS_ECJPAKE_WITH_AES_128_CCM_8',
49408: 'TLS_GOSTR341112_256_WITH_KUZNYECHIK_CTR_OMAC',
49409: 'TLS_GOSTR341112_256_WITH_MAGMA_CTR_OMAC',
49410: 'TLS_GOSTR341112_256_WITH_28147_CNT_IMIT',
49411: 'TLS_GOSTR341112_256_WITH_KUZNYECHIK_MGM_L',
49412: 'TLS_GOSTR341112_256_WITH_MAGMA_MGM_L',
49413: 'TLS_GOSTR341112_256_WITH_KUZNYECHIK_MGM_S',
49414: 'TLS_GOSTR341112_256_WITH_MAGMA_MGM_S',
51914: 'Reserved (GREASE)',
52243: 'TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256',
52244: 'TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256',
52245: 'TLS_DHE_RSA_WITH_CHACHA20_POLY1305_SHA256',
52392: 'TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256',
52393: 'TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256',
52394: 'TLS_DHE_RSA_WITH_CHACHA20_POLY1305_SHA256',
52395: 'TLS_PSK_WITH_CHACHA20_POLY1305_SHA256',
52396: 'TLS_ECDHE_PSK_WITH_CHACHA20_POLY1305_SHA256',
52397: 'TLS_DHE_PSK_WITH_CHACHA20_POLY1305_SHA256',
52398: 'TLS_RSA_PSK_WITH_CHACHA20_POLY1305_SHA256',
53249: 'TLS_ECDHE_PSK_WITH_AES_128_GCM_SHA256',
53250: 'TLS_ECDHE_PSK_WITH_AES_256_GCM_SHA384',
53251: 'TLS_ECDHE_PSK_WITH_AES_128_CCM_8_SHA256',
53253: 'TLS_ECDHE_PSK_WITH_AES_128_CCM_SHA256',
56026: 'Reserved (GREASE)',
57345: 'ECDHE_SM1_SM3',
57347: 'ECC_SM1_SM3',
57349: 'IBSDH_SM1_SM3',
57351: 'IBC_SM1_SM3',
57353: 'RSA_SM1_SM3',
57354: 'RSA_SM1_SHA1',
57361: 'ECDHE_SM4_CBC_SM3',
57363: 'ECC_SM4_CBC_SM3',
57365: 'IBSDH_SM4_CBC_SM3',
57367: 'IBC_SM4_CBC_SM3',
57369: 'RSA_SM4_CBC_SM3',
57370: 'RSA_SM4_CBC_SHA1',
57372: 'RSA_SM4_CBC_SHA256',
57425: 'ECDHE_SM4_GCM_SM3',
57427: 'ECC_SM4_GCM_SM3',
57429: 'IBSDH_SM4_GCM_SM3',
57431: 'IBC_SM4_GCM_SM3',
57433: 'RSA_SM4_GCM_SM3',
57434: 'RSA_SM4_GCM_SHA256',
58384: 'TLS_RSA_WITH_ESTREAM_SALSA20_SHA1',
58385: 'TLS_RSA_WITH_SALSA20_SHA1',
58386: 'TLS_ECDHE_RSA_WITH_ESTREAM_SALSA20_SHA1',
58387: 'TLS_ECDHE_RSA_WITH_SALSA20_SHA1',
58388: 'TLS_ECDHE_ECDSA_WITH_ESTREAM_SALSA20_SHA1',
58389: 'TLS_ECDHE_ECDSA_WITH_SALSA20_SHA1',
58390: 'TLS_PSK_WITH_ESTREAM_SALSA20_SHA1',
58391: 'TLS_PSK_WITH_SALSA20_SHA1',
58392: 'TLS_ECDHE_PSK_WITH_ESTREAM_SALSA20_SHA1',
58393: 'TLS_ECDHE_PSK_WITH_SALSA20_SHA1',
58394: 'TLS_RSA_PSK_WITH_ESTREAM_SALSA20_SHA1',
58395: 'TLS_RSA_PSK_WITH_SALSA20_SHA1',
58396: 'TLS_DHE_PSK_WITH_ESTREAM_SALSA20_SHA1',
58397: 'TLS_DHE_PSK_WITH_SALSA20_SHA1',
58398: 'TLS_DHE_RSA_WITH_ESTREAM_SALSA20_SHA1',
58399: 'TLS_DHE_RSA_WITH_SALSA20_SHA1',
60138: 'Reserved (GREASE)',
64250: 'Reserved (GREASE)',
65278: 'SSL_RSA_FIPS_WITH_DES_CBC_SHA',
65279: 'SSL_RSA_FIPS_WITH_3DES_EDE_CBC_SHA',
65504: 'SSL_RSA_FIPS_WITH_3DES_EDE_CBC_SHA',
65505: 'SSL_RSA_FIPS_WITH_DES_CBC_SHA',
}
TLS_VERSIONS: dict[int, str] = {
0x0002: "SSL 2.0", 0x0300: "SSL 3.0", 0x0301: "TLS 1.0", 0x0302: "TLS 1.1",
0x0303: "TLS 1.2", 0x0304: "TLS 1.3",
}
# GREASE values (RFC 8701) are random placeholders and never a real cipher or version.
def is_grease(value: int) -> bool:
return (value & 0x0F0F) == 0x0A0A and ((value >> 8) & 0xFF) == (value & 0xFF)
def parse_int(raw) -> int | None:
"""Parse tshark numeric output given as decimal or 0x-prefixed hex."""
if raw is None:
return None
s = str(raw).strip()
if not s:
return None
try:
return int(s, 16) if s.lower().startswith("0x") else int(s)
except ValueError:
return None
def cipher_name(raw) -> str | None:
v = parse_int(raw)
if v is None:
return str(raw) if raw else None
return CIPHER_SUITES.get(v, f"0x{v:04x}")
def version_name(raw) -> str | None:
v = parse_int(raw)
if v is None:
return str(raw) if raw else None
if 0x7F00 <= v <= 0x7FFF:
return "TLS 1.3 (draft)"
return TLS_VERSIONS.get(v, f"0x{v:04x}")
# Cipher-suite properties used by the TLS detector.
def cipher_is_weak(name: str) -> str | None:
"""Return a reason when the suite is considered broken or obsolete, else None."""
n = (name or "").upper()
if not n or n.startswith("0X"):
return None
if "_NULL_" in n or n.endswith("_NULL") or "WITH_NULL" in n:
return "no encryption (NULL cipher)"
if "ANON" in n:
return "anonymous key exchange (no authentication)"
if "EXPORT" in n:
return "export-grade key length"
if "RC4" in n:
return "RC4 stream cipher"
if "_DES_" in n or "DES40" in n or "DES_CBC" in n and "3DES" not in n:
return "single DES"
if "3DES" in n:
return "3DES (Sweet32)"
if "IDEA" in n or "SEED" in n or "ARIA" in n and "GCM" not in n:
return "legacy block cipher"
if n.endswith("_MD5") or "_MD5" in n:
return "MD5 MAC"
return None
def cipher_is_legacy(name: str) -> str | None:
"""Return a reason when the suite lacks forward secrecy or an AEAD mode."""
n = (name or "").upper()
if not n or n.startswith("0X") or n.startswith("TLS_AES_") or n.startswith("TLS_CHACHA20_"):
return None
if cipher_is_weak(n):
return None
reasons = []
if not ("ECDHE" in n or "DHE" in n):
reasons.append("no forward secrecy (static key exchange)")
if "CBC" in n or n.endswith("_SHA") or n.endswith("_SHA256") and "GCM" not in n and "CCM" not in n and "CHACHA" not in n:
reasons.append("CBC / non-AEAD mode")
return "; ".join(reasons) or None