analyze performance upgrade
This commit is contained in:
@@ -0,0 +1,503 @@
|
||||
"""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
|
||||
Reference in New Issue
Block a user