CryptoDataHub 0.12.6__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (70) hide show
  1. CryptoDataHub-0.12.6.dist-info/LICENSE.txt +373 -0
  2. CryptoDataHub-0.12.6.dist-info/METADATA +119 -0
  3. CryptoDataHub-0.12.6.dist-info/RECORD +70 -0
  4. CryptoDataHub-0.12.6.dist-info/WHEEL +5 -0
  5. CryptoDataHub-0.12.6.dist-info/top_level.txt +1 -0
  6. cryptodatahub/__init__.py +0 -0
  7. cryptodatahub/__setup__.py +10 -0
  8. cryptodatahub/common/__init__.py +0 -0
  9. cryptodatahub/common/algorithm.py +164 -0
  10. cryptodatahub/common/attack-named.json +74 -0
  11. cryptodatahub/common/attack-type.json +58 -0
  12. cryptodatahub/common/authentication.json +113 -0
  13. cryptodatahub/common/block-cipher-mode.json +75 -0
  14. cryptodatahub/common/block-cipher.json +474 -0
  15. cryptodatahub/common/certificate-transparency-log.json +2394 -0
  16. cryptodatahub/common/client.json +20 -0
  17. cryptodatahub/common/dhparam-well-known.json +1975 -0
  18. cryptodatahub/common/ecparam-well-known.json +1868 -0
  19. cryptodatahub/common/entity.json +269 -0
  20. cryptodatahub/common/entity.py +110 -0
  21. cryptodatahub/common/exception.py +28 -0
  22. cryptodatahub/common/grade.py +200 -0
  23. cryptodatahub/common/hash.json +273 -0
  24. cryptodatahub/common/key-exchange.json +140 -0
  25. cryptodatahub/common/key.py +571 -0
  26. cryptodatahub/common/mac.json +404 -0
  27. cryptodatahub/common/named-group.json +902 -0
  28. cryptodatahub/common/parameter.py +149 -0
  29. cryptodatahub/common/root-certificate.json +19240 -0
  30. cryptodatahub/common/server.json +56 -0
  31. cryptodatahub/common/signature.json +233 -0
  32. cryptodatahub/common/standard.json +57 -0
  33. cryptodatahub/common/stores.py +323 -0
  34. cryptodatahub/common/types.py +524 -0
  35. cryptodatahub/common/utils.py +112 -0
  36. cryptodatahub/common/vulnerability.json +2 -0
  37. cryptodatahub/dnsrec/__init__.py +0 -0
  38. cryptodatahub/dnsrec/algorithm.json +114 -0
  39. cryptodatahub/dnsrec/algorithm.py +87 -0
  40. cryptodatahub/dnsrec/digest-type.json +26 -0
  41. cryptodatahub/dnsrec/rr-type.json +805 -0
  42. cryptodatahub/ssh/__init__.py +0 -0
  43. cryptodatahub/ssh/algorithm.py +194 -0
  44. cryptodatahub/ssh/compression-algorithm.json +24 -0
  45. cryptodatahub/ssh/elliptic-curve-identifier.json +50 -0
  46. cryptodatahub/ssh/encryption-algorithm.json +587 -0
  47. cryptodatahub/ssh/host-key-algorithm.json +482 -0
  48. cryptodatahub/ssh/kex-algorithm.json +709 -0
  49. cryptodatahub/ssh/mac-algorithm.json +566 -0
  50. cryptodatahub/tls/__init__.py +0 -0
  51. cryptodatahub/tls/algorithm.py +324 -0
  52. cryptodatahub/tls/certificate-compression-algorithm.json +14 -0
  53. cryptodatahub/tls/cipher-kind.json +171 -0
  54. cryptodatahub/tls/cipher-suite-extension.json +10 -0
  55. cryptodatahub/tls/cipher-suite.json +5098 -0
  56. cryptodatahub/tls/client.json +4757 -0
  57. cryptodatahub/tls/client.py +220 -0
  58. cryptodatahub/tls/compression-method.json +20 -0
  59. cryptodatahub/tls/ec-point-format.json +20 -0
  60. cryptodatahub/tls/extension-type.json +282 -0
  61. cryptodatahub/tls/grease-one-byte.json +34 -0
  62. cryptodatahub/tls/grease-two-byte.json +66 -0
  63. cryptodatahub/tls/hash-and-signature-algorithm.json +266 -0
  64. cryptodatahub/tls/named-curve.json +292 -0
  65. cryptodatahub/tls/next-protocol-name.json +20 -0
  66. cryptodatahub/tls/protocol-name.json +71 -0
  67. cryptodatahub/tls/psk-key-exchange-mode.json +10 -0
  68. cryptodatahub/tls/token-binding-paramater.json +14 -0
  69. cryptodatahub/tls/version.json +154 -0
  70. cryptodatahub/tls/version.py +17 -0
@@ -0,0 +1,220 @@
1
+ # -*- coding: utf-8 -*-
2
+
3
+ import collections
4
+ import enum
5
+ import six
6
+
7
+ import attr
8
+
9
+ from cryptodatahub.common.entity import Client
10
+ from cryptodatahub.common.types import (
11
+ ClientVersion,
12
+ CryptoDataEnumBase,
13
+ CryptoDataParamsBase,
14
+ convert_client_version,
15
+ convert_dict_to_object,
16
+ convert_enum,
17
+ convert_iterable,
18
+ )
19
+
20
+ from cryptodatahub.tls.algorithm import (
21
+ TlsCertificateCompressionAlgorithm,
22
+ TlsCipherSuite,
23
+ TlsCompressionMethod,
24
+ TlsECPointFormat,
25
+ TlsExtensionType,
26
+ TlsNamedCurve,
27
+ TlsProtocolName,
28
+ TlsPskKeyExchangeMode,
29
+ TlsSignatureAndHashAlgorithm,
30
+ TlsTokenBindingParamater,
31
+ )
32
+ from cryptodatahub.tls.version import TlsVersion
33
+
34
+
35
+ @attr.s(frozen=True)
36
+ class ClientTokenBindingParams(CryptoDataParamsBase):
37
+ parameters = attr.ib(
38
+ converter=convert_iterable(convert_enum(TlsTokenBindingParamater)),
39
+ validator=attr.validators.deep_iterable(attr.validators.instance_of(TlsTokenBindingParamater))
40
+ )
41
+ protocol_version = attr.ib(validator=attr.validators.instance_of(six.string_types))
42
+
43
+
44
+ @attr.s(frozen=True)
45
+ class ClientGreaseParams(CryptoDataParamsBase):
46
+ cipher_suites = attr.ib(default=False, validator=attr.validators.instance_of(bool))
47
+ extension_types = attr.ib(default=False, validator=attr.validators.instance_of(bool))
48
+ extensions = attr.ib(
49
+ default=[],
50
+ converter=convert_iterable(convert_enum(TlsExtensionType)),
51
+ validator=attr.validators.deep_iterable(attr.validators.instance_of(TlsExtensionType))
52
+ )
53
+
54
+
55
+ class ClientConfigurationChange(enum.IntEnum):
56
+ pass
57
+
58
+
59
+ @attr.s(frozen=True)
60
+ class ClientVersionedParamsBase(CryptoDataParamsBase):
61
+ client = attr.ib(converter=convert_enum(Client), validator=attr.validators.instance_of(Client))
62
+ first_version = attr.ib(converter=convert_client_version(), validator=attr.validators.instance_of(ClientVersion))
63
+ last_version = attr.ib(converter=convert_client_version(), validator=attr.validators.instance_of(ClientVersion))
64
+
65
+ def __str__(self):
66
+ return '{} ({} - {})'.format(
67
+ self.client.value, self.first_version, self.last_version
68
+ )
69
+
70
+
71
+ @attr.s(frozen=True)
72
+ class ClientVersionedParams(ClientVersionedParamsBase):
73
+ changes = attr.ib(
74
+ converter=frozenset,
75
+ validator=attr.validators.deep_iterable(attr.validators.instance_of(ClientConfigurationChange))
76
+ )
77
+
78
+
79
+ @attr.s(frozen=True)
80
+ class ClientExtensionParams(CryptoDataParamsBase): # pylint: disable=too-many-instance-attributes
81
+ application_layer_protocol_negotiation = attr.ib(
82
+ default=None,
83
+ converter=convert_iterable(convert_enum(TlsProtocolName)),
84
+ validator=attr.validators.optional(
85
+ attr.validators.deep_iterable(attr.validators.instance_of(TlsProtocolName))
86
+ )
87
+ )
88
+ application_layer_protocol_settings = attr.ib(
89
+ default=None,
90
+ converter=convert_iterable(convert_enum(TlsProtocolName)),
91
+ validator=attr.validators.optional(
92
+ attr.validators.deep_iterable(attr.validators.instance_of(TlsProtocolName))
93
+ )
94
+ )
95
+ compress_certificate = attr.ib(
96
+ default=None,
97
+ converter=convert_iterable(convert_enum(TlsCertificateCompressionAlgorithm)),
98
+ validator=attr.validators.optional(
99
+ attr.validators.deep_iterable(attr.validators.instance_of(TlsCertificateCompressionAlgorithm))
100
+ )
101
+ )
102
+ delegated_credentials = attr.ib(
103
+ default=None,
104
+ converter=convert_iterable(convert_enum(TlsSignatureAndHashAlgorithm)),
105
+ validator=attr.validators.optional(
106
+ attr.validators.deep_iterable(attr.validators.instance_of(TlsSignatureAndHashAlgorithm))
107
+ )
108
+ )
109
+ ec_point_formats = attr.ib(
110
+ default=None,
111
+ converter=convert_iterable(convert_enum(TlsECPointFormat)),
112
+ validator=attr.validators.optional(
113
+ attr.validators.deep_iterable(attr.validators.instance_of(TlsECPointFormat))
114
+ )
115
+ )
116
+ key_share = attr.ib(
117
+ default=None,
118
+ converter=convert_iterable(convert_enum(TlsNamedCurve)),
119
+ validator=attr.validators.optional(
120
+ attr.validators.deep_iterable(attr.validators.instance_of(TlsNamedCurve))
121
+ )
122
+ )
123
+ key_share_reserved = attr.ib(
124
+ default=None,
125
+ converter=convert_iterable(convert_enum(TlsNamedCurve)),
126
+ validator=attr.validators.optional(
127
+ attr.validators.deep_iterable(attr.validators.instance_of(TlsNamedCurve))
128
+ )
129
+ )
130
+ post_handshake_auth = attr.ib(default=None)
131
+ psk_key_exchange_modes = attr.ib(
132
+ default=None,
133
+ converter=convert_iterable(convert_enum(TlsPskKeyExchangeMode)),
134
+ validator=attr.validators.optional(
135
+ attr.validators.deep_iterable(attr.validators.instance_of(TlsPskKeyExchangeMode))
136
+ )
137
+ )
138
+ record_size_limit = attr.ib(default=None, validator=attr.validators.optional(attr.validators.instance_of(int)))
139
+ signature_algorithms = attr.ib(
140
+ default=None,
141
+ converter=convert_iterable(convert_enum(TlsSignatureAndHashAlgorithm)),
142
+ validator=attr.validators.optional(
143
+ attr.validators.deep_iterable(attr.validators.instance_of(TlsSignatureAndHashAlgorithm))
144
+ )
145
+ )
146
+ supported_groups = attr.ib(
147
+ default=None,
148
+ converter=convert_iterable(convert_enum(TlsNamedCurve)),
149
+ validator=attr.validators.optional(
150
+ attr.validators.deep_iterable(attr.validators.instance_of(TlsNamedCurve))
151
+ )
152
+ )
153
+ supported_versions = attr.ib(
154
+ default=None,
155
+ converter=convert_iterable(convert_enum(TlsVersion)),
156
+ validator=attr.validators.optional(
157
+ attr.validators.deep_iterable(attr.validators.instance_of(TlsVersion))
158
+ )
159
+ )
160
+ token_binding = attr.ib(
161
+ default=None,
162
+ converter=convert_dict_to_object(ClientTokenBindingParams),
163
+ validator=attr.validators.optional(attr.validators.instance_of(ClientTokenBindingParams))
164
+ )
165
+
166
+
167
+ @attr.s(frozen=True)
168
+ class ClientCapabilities(CryptoDataParamsBase): # pylint: disable=too-many-instance-attributes
169
+ tls_versions = attr.ib(
170
+ converter=convert_iterable(convert_enum(TlsVersion)),
171
+ validator=attr.validators.deep_iterable(attr.validators.instance_of(TlsVersion))
172
+ )
173
+ cipher_suites = attr.ib(
174
+ converter=convert_iterable(convert_enum(TlsCipherSuite)),
175
+ validator=attr.validators.deep_iterable(attr.validators.instance_of(TlsCipherSuite))
176
+ )
177
+ compression_methods = attr.ib(
178
+ converter=convert_iterable(convert_enum(TlsCompressionMethod)),
179
+ validator=attr.validators.deep_iterable(attr.validators.instance_of(TlsCompressionMethod))
180
+ )
181
+ fallback_scsv = attr.ib(validator=attr.validators.instance_of(bool))
182
+ empty_renegotiation_info_scsv = attr.ib(validator=attr.validators.instance_of(bool))
183
+ grease = attr.ib(
184
+ converter=convert_dict_to_object(ClientGreaseParams),
185
+ validator=attr.validators.instance_of(ClientGreaseParams)
186
+ )
187
+ extension_types = attr.ib(
188
+ converter=convert_iterable(convert_enum(TlsExtensionType)),
189
+ validator=attr.validators.deep_iterable(attr.validators.instance_of(TlsExtensionType))
190
+ )
191
+ extension_params = attr.ib(
192
+ converter=convert_dict_to_object(ClientExtensionParams),
193
+ validator=attr.validators.optional(attr.validators.instance_of(ClientExtensionParams))
194
+ )
195
+
196
+ def _asdict(self):
197
+ capabilities_dict = attr.asdict(self, dict_factory=collections.OrderedDict)
198
+
199
+ capabilities_dict['extension_params'] = collections.OrderedDict([
200
+ (param_name, param_value)
201
+ for param_name, param_value in capabilities_dict['extension_params'].items()
202
+ if param_value is not None
203
+ ])
204
+
205
+ return capabilities_dict
206
+
207
+
208
+ @attr.s(frozen=True)
209
+ class ClientParams(CryptoDataParamsBase): # pylint: disable=too-many-instance-attributes
210
+ meta = attr.ib(
211
+ converter=convert_dict_to_object(ClientVersionedParams),
212
+ validator=attr.validators.instance_of(ClientVersionedParams)
213
+ )
214
+ capabilities = attr.ib(
215
+ converter=convert_dict_to_object(ClientCapabilities),
216
+ validator=attr.validators.instance_of(ClientCapabilities)
217
+ )
218
+
219
+
220
+ TlsClient = CryptoDataEnumBase('TlsClient', CryptoDataEnumBase.get_json_records(ClientParams))
@@ -0,0 +1,20 @@
1
+ {
2
+ "NULL": {
3
+ "name": "null",
4
+ "long_name": "no compression",
5
+ "code": 0,
6
+ "_code_in_hex": "0x00"
7
+ },
8
+ "DEFLATE": {
9
+ "name": "DEFLATE",
10
+ "long_name": null,
11
+ "code": 1,
12
+ "_code_in_hex": "0x01"
13
+ },
14
+ "LZS": {
15
+ "name": "LZS",
16
+ "long_name": "Lempel-Ziv-Stac compression",
17
+ "code": 64,
18
+ "_code_in_hex": "0x40"
19
+ }
20
+ }
@@ -0,0 +1,20 @@
1
+ {
2
+ "UNCOMPRESSED": {
3
+ "name": "uncompressed",
4
+ "long_name": null,
5
+ "code": 0,
6
+ "_code_in_hex": "0x00"
7
+ },
8
+ "ANSIX962_COMPRESSED_PRIME": {
9
+ "name": "ANSI X.962 compressed prime",
10
+ "long_name": null,
11
+ "code": 1,
12
+ "_code_in_hex": "0x01"
13
+ },
14
+ "ANSIX962_COMPRESSED_CHAR2": {
15
+ "name": "ANSI X.962 compressed char2",
16
+ "long_name": null,
17
+ "code": 2,
18
+ "_code_in_hex": "0x02"
19
+ }
20
+ }
@@ -0,0 +1,282 @@
1
+ {
2
+ "SERVER_NAME": {
3
+ "_standard": "RFC6066",
4
+ "_code_in_hex": "0x0000",
5
+ "code": 0
6
+ },
7
+ "MAX_FRAGMENT_LENGTH": {
8
+ "_standard": "RFC6066",
9
+ "_code_in_hex": "0x0001",
10
+ "code": 1
11
+ },
12
+ "CLIENT_CERTIFICATE_URL": {
13
+ "_standard": "RFC6066",
14
+ "_code_in_hex": "0x0002",
15
+ "code": 2
16
+ },
17
+ "TRUSTED_CA_KEYS": {
18
+ "_standard": "RFC6066",
19
+ "_code_in_hex": "0x0003",
20
+ "code": 3
21
+ },
22
+ "TRUNCATED_HMAC": {
23
+ "_standard": "RFC6066",
24
+ "_code_in_hex": "0x0004",
25
+ "code": 4
26
+ },
27
+ "STATUS_REQUEST": {
28
+ "_standard": "RFC6066",
29
+ "_code_in_hex": "0x0005",
30
+ "code": 5
31
+ },
32
+ "USER_MAPPING": {
33
+ "_standard": "RFC4681",
34
+ "_code_in_hex": "0x0006",
35
+ "code": 6
36
+ },
37
+ "CLIENT_AUTHZ": {
38
+ "_standard": "RFC5878",
39
+ "_code_in_hex": "0x0007",
40
+ "code": 7
41
+ },
42
+ "SERVER_AUTHZ": {
43
+ "_standard": "RFC5878",
44
+ "_code_in_hex": "0x0008",
45
+ "code": 8
46
+ },
47
+ "CERT_TYPE": {
48
+ "_standard": "RFC6091",
49
+ "_code_in_hex": "0x0009",
50
+ "code": 9
51
+ },
52
+ "SUPPORTED_GROUPS": {
53
+ "_standard": "RFC-IETF-TLS-RFC",
54
+ "_code_in_hex": "0x000a",
55
+ "code": 10
56
+ },
57
+ "EC_POINT_FORMATS": {
58
+ "_standard": "RFC-IETF-TLS-RFC",
59
+ "_code_in_hex": "0x000b",
60
+ "code": 11
61
+ },
62
+ "SRP": {
63
+ "_standard": "RFC5054",
64
+ "_code_in_hex": "0x000c",
65
+ "code": 12
66
+ },
67
+ "SIGNATURE_ALGORITHMS": {
68
+ "_standard": "RFC5246",
69
+ "_code_in_hex": "0x000d",
70
+ "code": 13
71
+ },
72
+ "USE_SRTP": {
73
+ "_standard": "RFC5764",
74
+ "_code_in_hex": "0x000e",
75
+ "code": 14
76
+ },
77
+ "HEARTBEAT": {
78
+ "_standard": "RFC6520",
79
+ "_code_in_hex": "0x000f",
80
+ "code": 15
81
+ },
82
+ "APPLICATION_LAYER_PROTOCOL_NEGOTIATION": {
83
+ "_standard": "RFC7301",
84
+ "_code_in_hex": "0x0010",
85
+ "code": 16
86
+ },
87
+ "STATUS_REQUEST_V2": {
88
+ "_standard": "RFC6961",
89
+ "_code_in_hex": "0x0011",
90
+ "code": 17
91
+ },
92
+ "SIGNED_CERTIFICATE_TIMESTAMP": {
93
+ "_standard": "RFC6962",
94
+ "_code_in_hex": "0x0012",
95
+ "code": 18
96
+ },
97
+ "CLIENT_CERTIFICATE_TYPE": {
98
+ "_standard": "RFC7250",
99
+ "_code_in_hex": "0x0013",
100
+ "code": 19
101
+ },
102
+ "SERVER_CERTIFICATE_TYPE": {
103
+ "_standard": "RFC7250",
104
+ "_code_in_hex": "0x0014",
105
+ "code": 20
106
+ },
107
+ "PADDING": {
108
+ "_standard": "RFC7685",
109
+ "_code_in_hex": "0x0015",
110
+ "code": 21
111
+ },
112
+ "ENCRYPT_THEN_MAC": {
113
+ "_standard": "RFC7366",
114
+ "_code_in_hex": "0x0016",
115
+ "code": 22
116
+ },
117
+ "EXTENDED_MASTER_SECRET": {
118
+ "_standard": "RFC7627",
119
+ "_code_in_hex": "0x0017",
120
+ "code": 23
121
+ },
122
+ "TOKEN_BINDING": {
123
+ "_standard": "DRAFT-IETF-TOKBIND-NEGOTIATION",
124
+ "_code_in_hex": "0x0018",
125
+ "code": 24
126
+ },
127
+ "CACHED_INFO": {
128
+ "_standard": "RFC7924",
129
+ "_code_in_hex": "0x0019",
130
+ "code": 25
131
+ },
132
+ "COMPRESS_CERTIFICATE": {
133
+ "_standard": "RFC-ietf-tls-certificate-compression-09",
134
+ "_code_in_hex": "0x001b",
135
+ "code": 27
136
+ },
137
+ "RECORD_SIZE_LIMIT": {
138
+ "_standard": "RFC8849",
139
+ "_code_in_hex": "0x001c",
140
+ "code": 28
141
+ },
142
+ "PWD_PROTECT": {
143
+ "_standard": "RFC-HARKINS-TLS-DRAGONFLY-03",
144
+ "_code_in_hex": "0x001d",
145
+ "code": 29
146
+ },
147
+ "PWD_CLEAR": {
148
+ "_standard": "RFC-HARKINS-TLS-DRAGONFLY-03",
149
+ "_code_in_hex": "0x001e",
150
+ "code": 30
151
+ },
152
+ "PASSWORD_SALT": {
153
+ "_standard": "RFC-HARKINS-TLS-DRAGONFLY-03",
154
+ "_code_in_hex": "0x001f",
155
+ "code": 31
156
+ },
157
+ "TICKET_PINNING": {
158
+ "_standard": "RFC8672",
159
+ "_code_in_hex": "0x0020",
160
+ "code": 32
161
+ },
162
+ "TLS_CERT_WITH_EXTERN_PSK": {
163
+ "_standard": "RFC-IETF-TLS-TLS13-CERT-WITH-EXTERN-PSK-07",
164
+ "_code_in_hex": "0x0021",
165
+ "code": 33
166
+ },
167
+ "DELEGATED_CREDENTIALS": {
168
+ "_standard": "RFC-IETF-TLS-SUBCERTS-15",
169
+ "_code_in_hex": "0x0022",
170
+ "code": 34
171
+ },
172
+ "SESSION_TICKET": {
173
+ "_standard": "RFC4507",
174
+ "_code_in_hex": "0x0023",
175
+ "code": 35
176
+ },
177
+ "KEY_SHARE_RESERVED": {
178
+ "_standard": "DRAFT-IETF-TLS-TLS13-20",
179
+ "_code_in_hex": "0x0028",
180
+ "code": 40
181
+ },
182
+ "PRE_SHARED_KEY": {
183
+ "_standard": "DRAFT-IETF-TLS-TLS13-20",
184
+ "_code_in_hex": "0x0029",
185
+ "code": 41
186
+ },
187
+ "EARLY_DATA": {
188
+ "_standard": "DRAFT-IETF-TLS-TLS13-20",
189
+ "_code_in_hex": "0x002a",
190
+ "code": 42
191
+ },
192
+ "SUPPORTED_VERSIONS": {
193
+ "_standard": "DRAFT-IETF-TLS-TLS13-20",
194
+ "_code_in_hex": "0x002b",
195
+ "code": 43
196
+ },
197
+ "COOKIE": {
198
+ "_standard": "DRAFT-IETF-TLS-TLS13-20",
199
+ "_code_in_hex": "0x002c",
200
+ "code": 44
201
+ },
202
+ "PSK_KEY_EXCHANGE_MODES": {
203
+ "_standard": "DRAFT-IETF-TLS-TLS13-20",
204
+ "_code_in_hex": "0x002d",
205
+ "code": 45
206
+ },
207
+ "CERTIFICATE_AUTHORITIES": {
208
+ "_standard": "DRAFT-IETF-TLS-TLS13-20",
209
+ "_code_in_hex": "0x002f",
210
+ "code": 47
211
+ },
212
+ "OID_FILTERS": {
213
+ "_standard": "DRAFT-IETF-TLS-TLS13-20",
214
+ "_code_in_hex": "0x0030",
215
+ "code": 48
216
+ },
217
+ "POST_HANDSHAKE_AUTH": {
218
+ "_standard": "DRAFT-IETF-TLS-TLS13-20",
219
+ "_code_in_hex": "0x0031",
220
+ "code": 49
221
+ },
222
+ "SIGNATURE_ALGORITHMS_CERT": {
223
+ "_standard": "DRAFT-IETF-TLS-TLS13-23",
224
+ "_code_in_hex": "0x0032",
225
+ "code": 50
226
+ },
227
+ "KEY_SHARE": {
228
+ "_standard": "DRAFT-IETF-TLS-TLS13-23",
229
+ "_code_in_hex": "0x0033",
230
+ "code": 51
231
+ },
232
+ "TRANSPARENCY_INFO": {
233
+ "_standard": "DRAFT-IETF-TRANS-RFC6962-BIS",
234
+ "_code_in_hex": "0x0034",
235
+ "code": 52
236
+ },
237
+ "CONNECTION_ID": {
238
+ "_standard": "DRAFT-IETF-TLS-DTLS-CONNECTION-ID",
239
+ "_code_in_hex": "0x0035",
240
+ "code": 53
241
+ },
242
+ "EXTERNAL_ID_HASH": {
243
+ "_standard": "RFC-IETF-MMUSIC-SDP-UKS-07",
244
+ "_code_in_hex": "0x0037",
245
+ "code": 55
246
+ },
247
+ "EXTERNAL_SESSION_ID": {
248
+ "_standard": "RFC-IETF-MMUSIC-SDP-UKS-07",
249
+ "_code_in_hex": "0x0038",
250
+ "code": 56
251
+ },
252
+ "NEXT_PROTOCOL_NEGOTIATION": {
253
+ "_standard": "DRAFT-AGL-TLS-NEXTPROTONEG-04",
254
+ "_code_in_hex": "0x3374",
255
+ "code": 13172
256
+ },
257
+ "APPLICATION_LAYER_PROTOCOL_SETTINGS": {
258
+ "_standard": "DRAFT-VVV-TLS-ALPS",
259
+ "_code_in_hex": "0x4469",
260
+ "code": 17513
261
+ },
262
+ "CHANNEL_ID": {
263
+ "_standard": "DRAFT-BALFANZ-TLS-OBC-01",
264
+ "_code_in_hex": "0x7550",
265
+ "code": 30032
266
+ },
267
+ "ENCRYPTED_CLIENT_HELLO": {
268
+ "_standard": "DRAFT-IETF-TLS-ESNI",
269
+ "_code_in_hex": "0xfe0d",
270
+ "code": 65037
271
+ },
272
+ "RENEGOTIATION_INFO": {
273
+ "_standard": "DRAFT-AGL-TLS-NEXTPROTONEG-03",
274
+ "_code_in_hex": "0xff01",
275
+ "code": 65281
276
+ },
277
+ "SHORT_RECORD_HEADER": {
278
+ "_standard": "DRAFT-FOSSATI-TLS-EXT-HEADER",
279
+ "_code_in_hex": "0xff03",
280
+ "code": 65283
281
+ }
282
+ }
@@ -0,0 +1,34 @@
1
+ {
2
+ "GREASE_0B": {
3
+ "_code_in_hex": "0x0b",
4
+ "code": 11
5
+ },
6
+ "GREASE_2A": {
7
+ "_code_in_hex": "0x2a",
8
+ "code": 42
9
+ },
10
+ "GREASE_49": {
11
+ "_code_in_hex": "0x49",
12
+ "code": 73
13
+ },
14
+ "GREASE_68": {
15
+ "_code_in_hex": "0x68",
16
+ "code": 104
17
+ },
18
+ "GREASE_87": {
19
+ "_code_in_hex": "0x87",
20
+ "code": 135
21
+ },
22
+ "GREASE_A6": {
23
+ "_code_in_hex": "0xa6",
24
+ "code": 166
25
+ },
26
+ "GREASE_C5": {
27
+ "_code_in_hex": "0xc5",
28
+ "code": 197
29
+ },
30
+ "GREASE_E4": {
31
+ "_code_in_hex": "0xe4",
32
+ "code": 228
33
+ }
34
+ }
@@ -0,0 +1,66 @@
1
+ {
2
+ "GREASE_0A0A": {
3
+ "_code_in_hex": "0x0a0a",
4
+ "code": 2570
5
+ },
6
+ "GREASE_1A1A": {
7
+ "_code_in_hex": "0x1a1a",
8
+ "code": 6682
9
+ },
10
+ "GREASE_2A2A": {
11
+ "_code_in_hex": "0x2a2a",
12
+ "code": 10794
13
+ },
14
+ "GREASE_3A3A": {
15
+ "_code_in_hex": "0x3a3a",
16
+ "code": 14906
17
+ },
18
+ "GREASE_4A4A": {
19
+ "_code_in_hex": "0x4a4a",
20
+ "code": 19018
21
+ },
22
+ "GREASE_5A5A": {
23
+ "_code_in_hex": "0x5a5a",
24
+ "code": 23130
25
+ },
26
+ "GREASE_6A6A": {
27
+ "_code_in_hex": "0x6a6a",
28
+ "code": 27242
29
+ },
30
+ "GREASE_7A7A": {
31
+ "_code_in_hex": "0x7a7a",
32
+ "code": 31354
33
+ },
34
+ "GREASE_8A8A": {
35
+ "_code_in_hex": "0x8a8a",
36
+ "code": 35466
37
+ },
38
+ "GREASE_9A9A": {
39
+ "_code_in_hex": "0x9a9a",
40
+ "code": 39578
41
+ },
42
+ "GREASE_AAAA": {
43
+ "_code_in_hex": "0xaaaa",
44
+ "code": 43690
45
+ },
46
+ "GREASE_BABA": {
47
+ "_code_in_hex": "0xbaba",
48
+ "code": 47802
49
+ },
50
+ "GREASE_CACA": {
51
+ "_code_in_hex": "0xcaca",
52
+ "code": 51914
53
+ },
54
+ "GREASE_DADA": {
55
+ "_code_in_hex": "0xdada",
56
+ "code": 56026
57
+ },
58
+ "GREASE_EAEA": {
59
+ "_code_in_hex": "0xeaea",
60
+ "code": 60138
61
+ },
62
+ "GREASE_FAFA": {
63
+ "_code_in_hex": "0xfafa",
64
+ "code": 64250
65
+ }
66
+ }