CryptoDataHub 0.11.2__tar.gz → 0.12.2__tar.gz
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.
Potentially problematic release.
This version of CryptoDataHub might be problematic. Click here for more details.
- {CryptoDataHub-0.11.2 → CryptoDataHub-0.12.2}/CHANGELOG.rst +31 -1
- {CryptoDataHub-0.11.2 → CryptoDataHub-0.12.2}/CryptoDataHub.egg-info/PKG-INFO +1 -1
- {CryptoDataHub-0.11.2 → CryptoDataHub-0.12.2}/PKG-INFO +1 -1
- {CryptoDataHub-0.11.2 → CryptoDataHub-0.12.2}/cryptodatahub/__setup__.py +1 -1
- {CryptoDataHub-0.11.2 → CryptoDataHub-0.12.2}/cryptodatahub/common/algorithm.py +1 -1
- {CryptoDataHub-0.11.2 → CryptoDataHub-0.12.2}/cryptodatahub/common/authentication.json +7 -0
- {CryptoDataHub-0.11.2 → CryptoDataHub-0.12.2}/cryptodatahub/common/block-cipher-mode.json +1 -7
- {CryptoDataHub-0.11.2 → CryptoDataHub-0.12.2}/cryptodatahub/common/block-cipher.json +16 -2
- {CryptoDataHub-0.11.2 → CryptoDataHub-0.12.2}/cryptodatahub/common/hash.json +42 -4
- {CryptoDataHub-0.11.2 → CryptoDataHub-0.12.2}/cryptodatahub/common/key.py +9 -9
- {CryptoDataHub-0.11.2 → CryptoDataHub-0.12.2}/cryptodatahub/common/mac.json +56 -0
- {CryptoDataHub-0.11.2 → CryptoDataHub-0.12.2}/cryptodatahub/common/parameter.py +10 -2
- {CryptoDataHub-0.11.2 → CryptoDataHub-0.12.2}/cryptodatahub/common/signature.json +7 -0
- {CryptoDataHub-0.11.2 → CryptoDataHub-0.12.2}/cryptodatahub/common/stores.py +12 -6
- {CryptoDataHub-0.11.2 → CryptoDataHub-0.12.2}/cryptodatahub/common/types.py +1 -1
- {CryptoDataHub-0.11.2 → CryptoDataHub-0.12.2}/cryptodatahub/ssh/algorithm.py +17 -15
- {CryptoDataHub-0.11.2 → CryptoDataHub-0.12.2}/cryptodatahub/ssh/compression-algorithm.json +4 -0
- {CryptoDataHub-0.11.2 → CryptoDataHub-0.12.2}/cryptodatahub/ssh/encryption-algorithm.json +215 -0
- {CryptoDataHub-0.11.2 → CryptoDataHub-0.12.2}/cryptodatahub/ssh/host-key-algorithm.json +157 -7
- {CryptoDataHub-0.11.2 → CryptoDataHub-0.12.2}/cryptodatahub/ssh/kex-algorithm.json +326 -18
- {CryptoDataHub-0.11.2 → CryptoDataHub-0.12.2}/cryptodatahub/ssh/mac-algorithm.json +169 -31
- {CryptoDataHub-0.11.2 → CryptoDataHub-0.12.2}/cryptodatahub/tls/algorithm.py +23 -27
- {CryptoDataHub-0.11.2 → CryptoDataHub-0.12.2}/cryptodatahub/tls/cipher-kind.json +1 -1
- {CryptoDataHub-0.11.2 → CryptoDataHub-0.12.2}/cryptodatahub/tls/client.py +5 -5
- {CryptoDataHub-0.11.2 → CryptoDataHub-0.12.2}/CryptoDataHub.egg-info/SOURCES.txt +0 -0
- {CryptoDataHub-0.11.2 → CryptoDataHub-0.12.2}/CryptoDataHub.egg-info/dependency_links.txt +0 -0
- {CryptoDataHub-0.11.2 → CryptoDataHub-0.12.2}/CryptoDataHub.egg-info/requires.txt +0 -0
- {CryptoDataHub-0.11.2 → CryptoDataHub-0.12.2}/CryptoDataHub.egg-info/top_level.txt +0 -0
- {CryptoDataHub-0.11.2 → CryptoDataHub-0.12.2}/LICENSE.txt +0 -0
- {CryptoDataHub-0.11.2 → CryptoDataHub-0.12.2}/MANIFEST.in +0 -0
- {CryptoDataHub-0.11.2 → CryptoDataHub-0.12.2}/README.rst +0 -0
- {CryptoDataHub-0.11.2 → CryptoDataHub-0.12.2}/cryptodatahub/__init__.py +0 -0
- {CryptoDataHub-0.11.2 → CryptoDataHub-0.12.2}/cryptodatahub/common/__init__.py +0 -0
- {CryptoDataHub-0.11.2 → CryptoDataHub-0.12.2}/cryptodatahub/common/attack-named.json +0 -0
- {CryptoDataHub-0.11.2 → CryptoDataHub-0.12.2}/cryptodatahub/common/attack-type.json +0 -0
- {CryptoDataHub-0.11.2 → CryptoDataHub-0.12.2}/cryptodatahub/common/certificate-transparency-log.json +0 -0
- {CryptoDataHub-0.11.2 → CryptoDataHub-0.12.2}/cryptodatahub/common/client.json +0 -0
- {CryptoDataHub-0.11.2 → CryptoDataHub-0.12.2}/cryptodatahub/common/dhparam-well-known.json +0 -0
- {CryptoDataHub-0.11.2 → CryptoDataHub-0.12.2}/cryptodatahub/common/entity.json +0 -0
- {CryptoDataHub-0.11.2 → CryptoDataHub-0.12.2}/cryptodatahub/common/entity.py +0 -0
- {CryptoDataHub-0.11.2 → CryptoDataHub-0.12.2}/cryptodatahub/common/exception.py +0 -0
- {CryptoDataHub-0.11.2 → CryptoDataHub-0.12.2}/cryptodatahub/common/grade.py +0 -0
- {CryptoDataHub-0.11.2 → CryptoDataHub-0.12.2}/cryptodatahub/common/key-exchange.json +0 -0
- {CryptoDataHub-0.11.2 → CryptoDataHub-0.12.2}/cryptodatahub/common/named-group.json +0 -0
- {CryptoDataHub-0.11.2 → CryptoDataHub-0.12.2}/cryptodatahub/common/root-certificate.json +0 -0
- {CryptoDataHub-0.11.2 → CryptoDataHub-0.12.2}/cryptodatahub/common/server.json +0 -0
- {CryptoDataHub-0.11.2 → CryptoDataHub-0.12.2}/cryptodatahub/common/standard.json +0 -0
- {CryptoDataHub-0.11.2 → CryptoDataHub-0.12.2}/cryptodatahub/common/utils.py +0 -0
- {CryptoDataHub-0.11.2 → CryptoDataHub-0.12.2}/cryptodatahub/common/vulnerability.json +0 -0
- {CryptoDataHub-0.11.2 → CryptoDataHub-0.12.2}/cryptodatahub/dnsrec/__init__.py +0 -0
- {CryptoDataHub-0.11.2 → CryptoDataHub-0.12.2}/cryptodatahub/dnsrec/algorithm.json +0 -0
- {CryptoDataHub-0.11.2 → CryptoDataHub-0.12.2}/cryptodatahub/dnsrec/algorithm.py +0 -0
- {CryptoDataHub-0.11.2 → CryptoDataHub-0.12.2}/cryptodatahub/dnsrec/digest-type.json +0 -0
- {CryptoDataHub-0.11.2 → CryptoDataHub-0.12.2}/cryptodatahub/dnsrec/rr-type.json +0 -0
- {CryptoDataHub-0.11.2 → CryptoDataHub-0.12.2}/cryptodatahub/ssh/__init__.py +0 -0
- {CryptoDataHub-0.11.2 → CryptoDataHub-0.12.2}/cryptodatahub/ssh/elliptic-curve-identifier.json +0 -0
- {CryptoDataHub-0.11.2 → CryptoDataHub-0.12.2}/cryptodatahub/tls/__init__.py +0 -0
- {CryptoDataHub-0.11.2 → CryptoDataHub-0.12.2}/cryptodatahub/tls/certificate-compression-algorithm.json +0 -0
- {CryptoDataHub-0.11.2 → CryptoDataHub-0.12.2}/cryptodatahub/tls/cipher-suite-extension.json +0 -0
- {CryptoDataHub-0.11.2 → CryptoDataHub-0.12.2}/cryptodatahub/tls/cipher-suite.json +0 -0
- {CryptoDataHub-0.11.2 → CryptoDataHub-0.12.2}/cryptodatahub/tls/client.json +0 -0
- {CryptoDataHub-0.11.2 → CryptoDataHub-0.12.2}/cryptodatahub/tls/compression-method.json +0 -0
- {CryptoDataHub-0.11.2 → CryptoDataHub-0.12.2}/cryptodatahub/tls/ec-point-format.json +0 -0
- {CryptoDataHub-0.11.2 → CryptoDataHub-0.12.2}/cryptodatahub/tls/extension-type.json +0 -0
- {CryptoDataHub-0.11.2 → CryptoDataHub-0.12.2}/cryptodatahub/tls/grease-one-byte.json +0 -0
- {CryptoDataHub-0.11.2 → CryptoDataHub-0.12.2}/cryptodatahub/tls/grease-two-byte.json +0 -0
- {CryptoDataHub-0.11.2 → CryptoDataHub-0.12.2}/cryptodatahub/tls/hash-and-signature-algorithm.json +0 -0
- {CryptoDataHub-0.11.2 → CryptoDataHub-0.12.2}/cryptodatahub/tls/named-curve.json +0 -0
- {CryptoDataHub-0.11.2 → CryptoDataHub-0.12.2}/cryptodatahub/tls/next-protocol-name.json +0 -0
- {CryptoDataHub-0.11.2 → CryptoDataHub-0.12.2}/cryptodatahub/tls/protocol-name.json +0 -0
- {CryptoDataHub-0.11.2 → CryptoDataHub-0.12.2}/cryptodatahub/tls/psk-key-exchange-mode.json +0 -0
- {CryptoDataHub-0.11.2 → CryptoDataHub-0.12.2}/cryptodatahub/tls/token-binding-paramater.json +0 -0
- {CryptoDataHub-0.11.2 → CryptoDataHub-0.12.2}/cryptodatahub/tls/version.json +0 -0
- {CryptoDataHub-0.11.2 → CryptoDataHub-0.12.2}/cryptodatahub/tls/version.py +0 -0
- {CryptoDataHub-0.11.2 → CryptoDataHub-0.12.2}/requirements.txt +0 -0
- {CryptoDataHub-0.11.2 → CryptoDataHub-0.12.2}/setup.cfg +0 -0
- {CryptoDataHub-0.11.2 → CryptoDataHub-0.12.2}/setup.py +0 -0
|
@@ -2,6 +2,36 @@
|
|
|
2
2
|
Changelog
|
|
3
3
|
=========
|
|
4
4
|
|
|
5
|
+
-------------------
|
|
6
|
+
0.12.2 - 2024-01-11
|
|
7
|
+
-------------------
|
|
8
|
+
|
|
9
|
+
Improvements
|
|
10
|
+
============
|
|
11
|
+
|
|
12
|
+
- Generic
|
|
13
|
+
|
|
14
|
+
- add metadata to documentation
|
|
15
|
+
- add getter for well-know DH parameter by parameter numbers
|
|
16
|
+
|
|
17
|
+
-------------------
|
|
18
|
+
0.12.1 - 2023-12-13
|
|
19
|
+
-------------------
|
|
20
|
+
|
|
21
|
+
Improvements
|
|
22
|
+
============
|
|
23
|
+
|
|
24
|
+
- SSH
|
|
25
|
+
|
|
26
|
+
- add missing compression algorithms (#16)
|
|
27
|
+
- add missing encryption algorithms (#16)
|
|
28
|
+
- add missing host key algorithms (#16)
|
|
29
|
+
- add missing KEX algorithms (#16)
|
|
30
|
+
|
|
31
|
+
- TLS
|
|
32
|
+
|
|
33
|
+
- add grade for SSL cipher kinds (#18)
|
|
34
|
+
|
|
5
35
|
-------------------
|
|
6
36
|
0.11.2 - 2023-11-13
|
|
7
37
|
-------------------
|
|
@@ -18,7 +48,7 @@ Refactor
|
|
|
18
48
|
|
|
19
49
|
- Generic
|
|
20
50
|
|
|
21
|
-
|
|
51
|
+
- move HTTP fetcher and digest generation to common utils
|
|
22
52
|
|
|
23
53
|
-------------------
|
|
24
54
|
0.11.1 - 2023-11-06
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
__title__ = 'CryptoDataHub'
|
|
4
4
|
__technical_name__ = __title__.lower()
|
|
5
|
-
__version__ = '0.
|
|
5
|
+
__version__ = '0.12.2'
|
|
6
6
|
__description__ = 'Repository of cryptography-related data'
|
|
7
7
|
__author__ = 'Szilárd Pfeiffer'
|
|
8
8
|
__author_email__ = 'coroner@pfeifferszilard.hu'
|
|
@@ -115,7 +115,7 @@ class MACParams(CryptoDataParamsOIDOptional, GradeableVulnerabilities):
|
|
|
115
115
|
MAC = CryptoDataEnumOIDBase('MAC', CryptoDataEnumOIDBase.get_json_records(MACParams))
|
|
116
116
|
|
|
117
117
|
|
|
118
|
-
@attr.s
|
|
118
|
+
@attr.s(frozen=True)
|
|
119
119
|
class MACModeParams(CryptoDataParamsEnumString, GradeableVulnerabilities):
|
|
120
120
|
name = attr.ib(validator=attr.validators.instance_of(six.string_types))
|
|
121
121
|
|
|
@@ -85,7 +85,7 @@
|
|
|
85
85
|
}
|
|
86
86
|
],
|
|
87
87
|
"key_size": 192,
|
|
88
|
-
"block_size":
|
|
88
|
+
"block_size": 128
|
|
89
89
|
},
|
|
90
90
|
"TWOFISH256": {
|
|
91
91
|
"name": "Twofish-256",
|
|
@@ -98,7 +98,7 @@
|
|
|
98
98
|
}
|
|
99
99
|
],
|
|
100
100
|
"key_size": 256,
|
|
101
|
-
"block_size":
|
|
101
|
+
"block_size": 128
|
|
102
102
|
},
|
|
103
103
|
"CAMELLIA_128": {
|
|
104
104
|
"name": "Camellia-128",
|
|
@@ -107,6 +107,13 @@
|
|
|
107
107
|
"key_size": 128,
|
|
108
108
|
"block_size": 128
|
|
109
109
|
},
|
|
110
|
+
"CAMELLIA_192": {
|
|
111
|
+
"name": "Camellia-192",
|
|
112
|
+
"long_name": null,
|
|
113
|
+
"vulnerabilities": null,
|
|
114
|
+
"key_size": 192,
|
|
115
|
+
"block_size": 128
|
|
116
|
+
},
|
|
110
117
|
"CAMELLIA_256": {
|
|
111
118
|
"name": "Camellia-256",
|
|
112
119
|
"long_name": null,
|
|
@@ -431,6 +438,13 @@
|
|
|
431
438
|
"key_size": 256,
|
|
432
439
|
"block_size": 128
|
|
433
440
|
},
|
|
441
|
+
"SM4": {
|
|
442
|
+
"name": "SM4",
|
|
443
|
+
"long_name": "ShangMi 4",
|
|
444
|
+
"vulnerabilities": [],
|
|
445
|
+
"key_size": 128,
|
|
446
|
+
"block_size": 128
|
|
447
|
+
},
|
|
434
448
|
"TRIPLE_DES": {
|
|
435
449
|
"name": "3DES",
|
|
436
450
|
"long_name": "Triple DES",
|
|
@@ -45,7 +45,7 @@
|
|
|
45
45
|
"named": null
|
|
46
46
|
}
|
|
47
47
|
],
|
|
48
|
-
"digest_size":
|
|
48
|
+
"digest_size": 128
|
|
49
49
|
},
|
|
50
50
|
"RIPEMD128": {
|
|
51
51
|
"name": "RIPEMD-128",
|
|
@@ -99,6 +99,19 @@
|
|
|
99
99
|
],
|
|
100
100
|
"digest_size": 160
|
|
101
101
|
},
|
|
102
|
+
"SHA1_96": {
|
|
103
|
+
"name": "SHA-1/96",
|
|
104
|
+
"long_name": "Secure Hash Algorithm 1 (96)",
|
|
105
|
+
"oid": null,
|
|
106
|
+
"vulnerabilities": [
|
|
107
|
+
{
|
|
108
|
+
"attack_type": "COLLISION",
|
|
109
|
+
"grade": "WEAK",
|
|
110
|
+
"named": null
|
|
111
|
+
}
|
|
112
|
+
],
|
|
113
|
+
"digest_size": 96
|
|
114
|
+
},
|
|
102
115
|
"SHA2_224": {
|
|
103
116
|
"name": "SHA-224",
|
|
104
117
|
"long_name": "Secure Hash Algorithm 2 (224)",
|
|
@@ -183,6 +196,13 @@
|
|
|
183
196
|
"vulnerabilities": null,
|
|
184
197
|
"digest_size": 256
|
|
185
198
|
},
|
|
199
|
+
"SM3": {
|
|
200
|
+
"name": "SM3",
|
|
201
|
+
"long_name": "ShangMi 3",
|
|
202
|
+
"oid": "1.2.156.10197.1.401",
|
|
203
|
+
"vulnerabilities": null,
|
|
204
|
+
"digest_size": 256
|
|
205
|
+
},
|
|
186
206
|
"TIGER_128": {
|
|
187
207
|
"name": "Tiger/128",
|
|
188
208
|
"long_name": null,
|
|
@@ -194,7 +214,13 @@
|
|
|
194
214
|
"name": "Tiger/128(96)",
|
|
195
215
|
"long_name": null,
|
|
196
216
|
"oid": null,
|
|
197
|
-
"vulnerabilities":
|
|
217
|
+
"vulnerabilities": [
|
|
218
|
+
{
|
|
219
|
+
"attack_type": "COLLISION",
|
|
220
|
+
"grade": "WEAK",
|
|
221
|
+
"named": null
|
|
222
|
+
}
|
|
223
|
+
],
|
|
198
224
|
"digest_size": 96
|
|
199
225
|
},
|
|
200
226
|
"TIGER_160": {
|
|
@@ -208,7 +234,13 @@
|
|
|
208
234
|
"name": "Tiger/160(96)",
|
|
209
235
|
"long_name": null,
|
|
210
236
|
"oid": null,
|
|
211
|
-
"vulnerabilities":
|
|
237
|
+
"vulnerabilities": [
|
|
238
|
+
{
|
|
239
|
+
"attack_type": "COLLISION",
|
|
240
|
+
"grade": "WEAK",
|
|
241
|
+
"named": null
|
|
242
|
+
}
|
|
243
|
+
],
|
|
212
244
|
"digest_size": 96
|
|
213
245
|
},
|
|
214
246
|
"TIGER_192": {
|
|
@@ -222,7 +254,13 @@
|
|
|
222
254
|
"name": "Tiger/192(96)",
|
|
223
255
|
"long_name": null,
|
|
224
256
|
"oid": null,
|
|
225
|
-
"vulnerabilities":
|
|
257
|
+
"vulnerabilities": [
|
|
258
|
+
{
|
|
259
|
+
"attack_type": "COLLISION",
|
|
260
|
+
"grade": "WEAK",
|
|
261
|
+
"named": null
|
|
262
|
+
}
|
|
263
|
+
],
|
|
226
264
|
"digest_size": 96
|
|
227
265
|
},
|
|
228
266
|
"WHIRLPOOL": {
|
|
@@ -37,7 +37,7 @@ class _PublicKeySizeGradeable(GradeableVulnerabilities):
|
|
|
37
37
|
return 'public key size'
|
|
38
38
|
|
|
39
39
|
|
|
40
|
-
@attr.s
|
|
40
|
+
@attr.s(frozen=True)
|
|
41
41
|
class PublicKeySize(GradeableComplex):
|
|
42
42
|
_FINITE_FIELD_TYPES = [Authentication.RSA, Authentication.DSS, KeyExchange.ADH, KeyExchange.DH, KeyExchange.DHE]
|
|
43
43
|
_ELLIPTIC_CURVE_TYPES = [Authentication.ECDSA, Authentication.EDDSA, KeyExchange.ECDH, KeyExchange.ECDHE]
|
|
@@ -110,12 +110,12 @@ def convert_public_key_size(key_exchange):
|
|
|
110
110
|
return _PublicKeySizeConverter(key_exchange)
|
|
111
111
|
|
|
112
112
|
|
|
113
|
-
@attr.s
|
|
113
|
+
@attr.s(frozen=True)
|
|
114
114
|
class PublicKeyParamBase(object):
|
|
115
115
|
pass
|
|
116
116
|
|
|
117
117
|
|
|
118
|
-
@attr.s
|
|
118
|
+
@attr.s(frozen=True)
|
|
119
119
|
class PublicKeyParamsDsa(PublicKeyParamBase):
|
|
120
120
|
prime = attr.ib(validator=attr.validators.instance_of(six.integer_types))
|
|
121
121
|
generator = attr.ib(validator=attr.validators.instance_of(six.integer_types))
|
|
@@ -123,7 +123,7 @@ class PublicKeyParamsDsa(PublicKeyParamBase):
|
|
|
123
123
|
public_key_value = attr.ib(validator=attr.validators.instance_of(six.integer_types))
|
|
124
124
|
|
|
125
125
|
|
|
126
|
-
@attr.s
|
|
126
|
+
@attr.s(frozen=True)
|
|
127
127
|
class PublicKeyParamsEcdsa(PublicKeyParamBase):
|
|
128
128
|
named_group = attr.ib(validator=attr.validators.instance_of(NamedGroup))
|
|
129
129
|
point_x = attr.ib(validator=attr.validators.instance_of(six.integer_types))
|
|
@@ -143,19 +143,19 @@ class PublicKeyParamsEcdsa(PublicKeyParamBase):
|
|
|
143
143
|
return bytes(asn1crypto.keys.ECPointBitString.from_coords(self.point_x, self.point_y))
|
|
144
144
|
|
|
145
145
|
|
|
146
|
-
@attr.s
|
|
146
|
+
@attr.s(frozen=True)
|
|
147
147
|
class PublicKeyParamsEddsa(PublicKeyParamBase):
|
|
148
148
|
curve_type = attr.ib(validator=attr.validators.instance_of(NamedGroup))
|
|
149
149
|
key_data = attr.ib(validator=attr.validators.instance_of((bytes, bytearray)))
|
|
150
150
|
|
|
151
151
|
|
|
152
|
-
@attr.s
|
|
152
|
+
@attr.s(frozen=True)
|
|
153
153
|
class PublicKeyParamsRsa(PublicKeyParamBase):
|
|
154
154
|
modulus = attr.ib(validator=attr.validators.instance_of(six.integer_types))
|
|
155
155
|
public_exponent = attr.ib(validator=attr.validators.instance_of(six.integer_types))
|
|
156
156
|
|
|
157
157
|
|
|
158
|
-
@attr.s(eq=False)
|
|
158
|
+
@attr.s(eq=False, frozen=True)
|
|
159
159
|
class PublicKey(object):
|
|
160
160
|
_public_key = attr.ib(validator=attr.validators.instance_of(asn1crypto.keys.PublicKeyInfo))
|
|
161
161
|
|
|
@@ -363,7 +363,7 @@ class PublicKeySigned(PublicKey):
|
|
|
363
363
|
raise NotImplementedError()
|
|
364
364
|
|
|
365
365
|
|
|
366
|
-
@attr.s(eq=False, init=False)
|
|
366
|
+
@attr.s(eq=False, init=False, frozen=True)
|
|
367
367
|
class PublicKeyX509Base(PublicKeySigned): # pylint: disable=too-many-public-methods
|
|
368
368
|
_EV_OIDS_BY_CA = {
|
|
369
369
|
'A-Trust': ('1.2.40.0.17.1.22', ),
|
|
@@ -424,7 +424,7 @@ class PublicKeyX509Base(PublicKeySigned): # pylint: disable=too-many-public-met
|
|
|
424
424
|
def __init__(self, certificate):
|
|
425
425
|
super(PublicKeySigned, self).__init__(certificate.public_key)
|
|
426
426
|
|
|
427
|
-
self
|
|
427
|
+
object.__setattr__(self, '_certificate', certificate)
|
|
428
428
|
|
|
429
429
|
@classmethod
|
|
430
430
|
def _get_type_name(cls):
|
|
@@ -31,6 +31,54 @@
|
|
|
31
31
|
"digest_size": 256,
|
|
32
32
|
"hash_algorithm": null
|
|
33
33
|
},
|
|
34
|
+
"CBCMAC_3DES": {
|
|
35
|
+
"name": "CBC-MAC 3DES",
|
|
36
|
+
"long_name": null,
|
|
37
|
+
"oid": null,
|
|
38
|
+
"vulnerabilities": null,
|
|
39
|
+
"digest_size": 64,
|
|
40
|
+
"hash_algorithm": null
|
|
41
|
+
},
|
|
42
|
+
"CBCMAC_AES": {
|
|
43
|
+
"name": "CBC-MAC AES",
|
|
44
|
+
"long_name": null,
|
|
45
|
+
"oid": null,
|
|
46
|
+
"vulnerabilities": null,
|
|
47
|
+
"digest_size": 128,
|
|
48
|
+
"hash_algorithm": null
|
|
49
|
+
},
|
|
50
|
+
"CBCMAC_BLOWFISH": {
|
|
51
|
+
"name": "CBC-MAC Blowfish",
|
|
52
|
+
"long_name": null,
|
|
53
|
+
"oid": null,
|
|
54
|
+
"vulnerabilities": null,
|
|
55
|
+
"digest_size": 64,
|
|
56
|
+
"hash_algorithm": null
|
|
57
|
+
},
|
|
58
|
+
"CBCMAC_DES": {
|
|
59
|
+
"name": "CBC-MAC DES",
|
|
60
|
+
"long_name": null,
|
|
61
|
+
"oid": null,
|
|
62
|
+
"vulnerabilities": null,
|
|
63
|
+
"digest_size": 64,
|
|
64
|
+
"hash_algorithm": null
|
|
65
|
+
},
|
|
66
|
+
"CBCMAC_RIJNDAEL": {
|
|
67
|
+
"name": "CBC-MAC Rijndael",
|
|
68
|
+
"long_name": null,
|
|
69
|
+
"oid": null,
|
|
70
|
+
"vulnerabilities": null,
|
|
71
|
+
"digest_size": 128,
|
|
72
|
+
"hash_algorithm": null
|
|
73
|
+
},
|
|
74
|
+
"CBCMAC_TWOFISH": {
|
|
75
|
+
"name": "CBC-MAC Twofish",
|
|
76
|
+
"long_name": null,
|
|
77
|
+
"oid": null,
|
|
78
|
+
"vulnerabilities": null,
|
|
79
|
+
"digest_size": 128,
|
|
80
|
+
"hash_algorithm": null
|
|
81
|
+
},
|
|
34
82
|
"CRYPTICORE": {
|
|
35
83
|
"name": "CryptiCore",
|
|
36
84
|
"long_name": "CryptiCore (Badger)",
|
|
@@ -239,6 +287,14 @@
|
|
|
239
287
|
"digest_size": null,
|
|
240
288
|
"hash_algorithm": "SHA3_512"
|
|
241
289
|
},
|
|
290
|
+
"SM3": {
|
|
291
|
+
"name": "SM3",
|
|
292
|
+
"long_name": "ShangMi 3",
|
|
293
|
+
"oid": "1.2.156.10197.1.401.2",
|
|
294
|
+
"vulnerabilities": [],
|
|
295
|
+
"digest_size": null,
|
|
296
|
+
"hash_algorithm": "SM3"
|
|
297
|
+
},
|
|
242
298
|
"TIGER_128": {
|
|
243
299
|
"name": "Tiger/128",
|
|
244
300
|
"long_name": null,
|
|
@@ -48,7 +48,7 @@ class DHParameterNumbers(object):
|
|
|
48
48
|
return self.p == other.p and self.g == other.g and (self.q is None or self.q == other.q)
|
|
49
49
|
|
|
50
50
|
|
|
51
|
-
@attr.s(eq=False)
|
|
51
|
+
@attr.s(eq=False, frozen=True)
|
|
52
52
|
class DHParamWellKnownParams(CryptoDataParamsBase, GradeableVulnerabilities):
|
|
53
53
|
parameter_numbers = attr.ib(
|
|
54
54
|
converter=convert_dict_to_object(DHParameterNumbers),
|
|
@@ -77,4 +77,12 @@ class DHParamWellKnownParams(CryptoDataParamsBase, GradeableVulnerabilities):
|
|
|
77
77
|
return '{}-bit {} {} DH parameter'.format(self.key_size, self.source.value.name, self.name)
|
|
78
78
|
|
|
79
79
|
|
|
80
|
-
|
|
80
|
+
class DHParamWellKnownBase(CryptoDataEnumBase):
|
|
81
|
+
@classmethod
|
|
82
|
+
def from_parameter_numbers(cls, parameter_numbers):
|
|
83
|
+
return cls._from_attr('parameter_numbers', parameter_numbers)
|
|
84
|
+
|
|
85
|
+
|
|
86
|
+
DHParamWellKnown = DHParamWellKnownBase(
|
|
87
|
+
'DHParamWellKnown', DHParamWellKnownBase.get_json_records(DHParamWellKnownParams)
|
|
88
|
+
)
|
|
@@ -41,7 +41,7 @@ CertificateTransparencyLogStateType = enum.Enum(
|
|
|
41
41
|
)
|
|
42
42
|
|
|
43
43
|
|
|
44
|
-
@attr.s
|
|
44
|
+
@attr.s(frozen=True)
|
|
45
45
|
class CertificateTransparencyLogState(CryptoDataParamsBase):
|
|
46
46
|
state_type = attr.ib(
|
|
47
47
|
converter=convert_enum(CertificateTransparencyLogStateType),
|
|
@@ -53,7 +53,7 @@ class CertificateTransparencyLogState(CryptoDataParamsBase):
|
|
|
53
53
|
)
|
|
54
54
|
|
|
55
55
|
|
|
56
|
-
@attr.s
|
|
56
|
+
@attr.s(frozen=True)
|
|
57
57
|
class CertificateTransparencyLogTemporalInterval(CryptoDataParamsBase):
|
|
58
58
|
start_inclusive = attr.ib(
|
|
59
59
|
converter=convert_datetime(),
|
|
@@ -65,7 +65,7 @@ class CertificateTransparencyLogTemporalInterval(CryptoDataParamsBase):
|
|
|
65
65
|
)
|
|
66
66
|
|
|
67
67
|
|
|
68
|
-
@attr.s
|
|
68
|
+
@attr.s(frozen=True)
|
|
69
69
|
class CertificateTransparencyLogParamsBase(CryptoDataParamsBase):
|
|
70
70
|
log_id = attr.ib(
|
|
71
71
|
converter=convert_base64_data(),
|
|
@@ -75,7 +75,8 @@ class CertificateTransparencyLogParamsBase(CryptoDataParamsBase):
|
|
|
75
75
|
|
|
76
76
|
|
|
77
77
|
class CertificateTransparencyLogUnknown(CertificateTransparencyLogParamsBase):
|
|
78
|
-
|
|
78
|
+
def __str__(self):
|
|
79
|
+
return str(self.log_id)
|
|
79
80
|
|
|
80
81
|
|
|
81
82
|
@attr.s(frozen=True)
|
|
@@ -131,6 +132,11 @@ class CertificateTransparencyLogParams( # pylint: disable=too-many-instance-att
|
|
|
131
132
|
if self.mmd < 1:
|
|
132
133
|
raise ValueError(self.mmd)
|
|
133
134
|
|
|
135
|
+
def __str__(self):
|
|
136
|
+
return '{} ({})'.format(
|
|
137
|
+
self.description, self.log_id
|
|
138
|
+
)
|
|
139
|
+
|
|
134
140
|
@classmethod
|
|
135
141
|
def description_to_enum_item_name(cls, description):
|
|
136
142
|
name = name_to_enum_item_name(description)
|
|
@@ -208,7 +214,7 @@ def convert_root_certificate_params():
|
|
|
208
214
|
return _RootCertificateParamCertificateConverter()
|
|
209
215
|
|
|
210
216
|
|
|
211
|
-
@attr.s
|
|
217
|
+
@attr.s(frozen=True)
|
|
212
218
|
class RootCertificateTrustStoreConstraint(CryptoDataParamsBase):
|
|
213
219
|
owner = attr.ib(
|
|
214
220
|
converter=convert_enum(Entity),
|
|
@@ -221,7 +227,7 @@ class RootCertificateTrustStoreConstraint(CryptoDataParamsBase):
|
|
|
221
227
|
)
|
|
222
228
|
|
|
223
229
|
|
|
224
|
-
@attr.s
|
|
230
|
+
@attr.s(frozen=True)
|
|
225
231
|
class RootCertificateParams(CryptoDataParamsFetchedBase):
|
|
226
232
|
certificate = attr.ib(
|
|
227
233
|
converter=convert_root_certificate_params(),
|
|
@@ -502,7 +502,7 @@ class CryptoDataEnumBase(enum.Enum):
|
|
|
502
502
|
@classmethod
|
|
503
503
|
def _from_attr(cls, attr_name, value):
|
|
504
504
|
for item in cls:
|
|
505
|
-
if getattr(item.value, attr_name)
|
|
505
|
+
if value == getattr(item.value, attr_name):
|
|
506
506
|
return item
|
|
507
507
|
|
|
508
508
|
raise InvalidValue(value, cls, attr_name)
|
|
@@ -27,7 +27,7 @@ from cryptodatahub.common.types import (
|
|
|
27
27
|
)
|
|
28
28
|
|
|
29
29
|
|
|
30
|
-
@attr.s
|
|
30
|
+
@attr.s(frozen=True)
|
|
31
31
|
class SshAlgorithmParams(CryptoDataParamsEnumString, GradeableComplex):
|
|
32
32
|
@property
|
|
33
33
|
@abc.abstractmethod
|
|
@@ -52,15 +52,15 @@ class SshAlgorithmParams(CryptoDataParamsEnumString, GradeableComplex):
|
|
|
52
52
|
attr.validate(self)
|
|
53
53
|
|
|
54
54
|
|
|
55
|
-
@attr.s
|
|
55
|
+
@attr.s(frozen=True)
|
|
56
56
|
class EncryptionAlgorithmParams(SshAlgorithmParams):
|
|
57
57
|
cipher = attr.ib(
|
|
58
58
|
converter=convert_enum(BlockCipher),
|
|
59
|
-
validator=attr.validators.optional(attr.validators.instance_of(
|
|
59
|
+
validator=attr.validators.optional(attr.validators.instance_of(BlockCipher))
|
|
60
60
|
)
|
|
61
61
|
mode = attr.ib(
|
|
62
62
|
converter=convert_enum(BlockCipherMode),
|
|
63
|
-
validator=attr.validators.optional(attr.validators.instance_of(
|
|
63
|
+
validator=attr.validators.optional(attr.validators.instance_of(BlockCipherMode))
|
|
64
64
|
)
|
|
65
65
|
|
|
66
66
|
@property
|
|
@@ -68,16 +68,16 @@ class EncryptionAlgorithmParams(SshAlgorithmParams):
|
|
|
68
68
|
return ('cipher', 'mode')
|
|
69
69
|
|
|
70
70
|
|
|
71
|
-
@attr.s
|
|
71
|
+
@attr.s(frozen=True)
|
|
72
72
|
class MacAlgorithmParams(SshAlgorithmParams):
|
|
73
73
|
truncated_size = attr.ib(validator=attr.validators.optional(attr.validators.instance_of(int)))
|
|
74
74
|
mac = attr.ib(
|
|
75
75
|
converter=convert_enum(MAC),
|
|
76
|
-
validator=attr.validators.optional(attr.validators.instance_of(
|
|
76
|
+
validator=attr.validators.optional(attr.validators.instance_of(MAC))
|
|
77
77
|
)
|
|
78
78
|
mode = attr.ib(
|
|
79
79
|
converter=convert_enum(MACMode),
|
|
80
|
-
validator=attr.validators.optional(attr.validators.instance_of(
|
|
80
|
+
validator=attr.validators.optional(attr.validators.instance_of(MACMode))
|
|
81
81
|
)
|
|
82
82
|
|
|
83
83
|
@property
|
|
@@ -92,11 +92,11 @@ class MacAlgorithmParams(SshAlgorithmParams):
|
|
|
92
92
|
return ('mac', 'mode')
|
|
93
93
|
|
|
94
94
|
|
|
95
|
-
@attr.s
|
|
95
|
+
@attr.s(frozen=True)
|
|
96
96
|
class KexAlgorithmParams(SshAlgorithmParams):
|
|
97
97
|
kex = attr.ib(
|
|
98
98
|
converter=convert_enum(KeyExchange),
|
|
99
|
-
validator=attr.validators.optional(attr.validators.instance_of(
|
|
99
|
+
validator=attr.validators.optional(attr.validators.instance_of(KeyExchange))
|
|
100
100
|
)
|
|
101
101
|
key_parameter = attr.ib(
|
|
102
102
|
converter=convert_variadic((convert_enum(NamedGroup), convert_enum(DHParamWellKnown))),
|
|
@@ -106,7 +106,7 @@ class KexAlgorithmParams(SshAlgorithmParams):
|
|
|
106
106
|
)
|
|
107
107
|
exchange_hash = attr.ib(
|
|
108
108
|
converter=convert_enum(Hash),
|
|
109
|
-
validator=attr.validators.optional(attr.validators.instance_of(
|
|
109
|
+
validator=attr.validators.optional(attr.validators.instance_of(Hash))
|
|
110
110
|
)
|
|
111
111
|
key_size = attr.ib(validator=attr.validators.optional(attr.validators.instance_of(int)))
|
|
112
112
|
|
|
@@ -136,20 +136,22 @@ class SshHostKeyType(enum.Enum):
|
|
|
136
136
|
HOST_KEY = 'host key'
|
|
137
137
|
HOST_CERTIFICATE = 'host certificate'
|
|
138
138
|
PGP_KEY = 'PGP key'
|
|
139
|
+
SECURE_KEY = 'secure key'
|
|
140
|
+
SECURE_CERTIFICATE = 'secure certificate'
|
|
139
141
|
SPKI_KEY = 'SPKI key'
|
|
140
142
|
X509_CERTIFICATE = 'X.509 certificate'
|
|
141
143
|
X509_CERTIFICATE_CHAIN = 'X.509 certificate chain'
|
|
142
144
|
|
|
143
145
|
|
|
144
|
-
@attr.s
|
|
146
|
+
@attr.s(frozen=True)
|
|
145
147
|
class HostKeyAlgorithmParams(SshAlgorithmParams):
|
|
146
148
|
key_type = attr.ib(
|
|
147
149
|
converter=convert_enum(SshHostKeyType),
|
|
148
|
-
validator=attr.validators.instance_of(
|
|
150
|
+
validator=attr.validators.instance_of(SshHostKeyType)
|
|
149
151
|
)
|
|
150
152
|
signature = attr.ib(
|
|
151
153
|
converter=convert_enum(Signature),
|
|
152
|
-
validator=attr.validators.optional(attr.validators.instance_of(
|
|
154
|
+
validator=attr.validators.optional(attr.validators.instance_of(Signature))
|
|
153
155
|
)
|
|
154
156
|
|
|
155
157
|
@property
|
|
@@ -157,14 +159,14 @@ class HostKeyAlgorithmParams(SshAlgorithmParams):
|
|
|
157
159
|
return ('signature',)
|
|
158
160
|
|
|
159
161
|
|
|
160
|
-
@attr.s
|
|
162
|
+
@attr.s(frozen=True)
|
|
161
163
|
class CompressionAlgorithmParams(CryptoDataParamsEnumString, GradeableVulnerabilities):
|
|
162
164
|
@classmethod
|
|
163
165
|
def get_gradeable_name(cls):
|
|
164
166
|
return 'compression'
|
|
165
167
|
|
|
166
168
|
|
|
167
|
-
@attr.s
|
|
169
|
+
@attr.s(frozen=True)
|
|
168
170
|
class EllipticCurveIdentifierParams(CryptoDataParamsEnumString):
|
|
169
171
|
named_group = attr.ib(
|
|
170
172
|
converter=convert_enum(NamedGroup),
|