py2docfx 0.1.20.dev2243675__py3-none-any.whl → 0.1.20.dev2245022__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.
- py2docfx/venv/venv1/Lib/site-packages/cryptography/__about__.py +1 -1
- py2docfx/venv/venv1/Lib/site-packages/cryptography/__init__.py +0 -13
- py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/_oid.py +8 -0
- py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/asn1/__init__.py +10 -0
- py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/asn1/asn1.py +116 -0
- py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/backends/openssl/backend.py +3 -9
- py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/bindings/_rust/declarative_asn1.pyi +32 -0
- py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/bindings/_rust/openssl/kdf.pyi +23 -0
- py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/bindings/_rust/x509.pyi +1 -13
- py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/bindings/openssl/_conditional.py +16 -0
- py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/bindings/openssl/binding.py +16 -1
- py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/primitives/asymmetric/padding.py +0 -2
- py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/primitives/asymmetric/rsa.py +8 -0
- py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/primitives/ciphers/algorithms.py +0 -47
- py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/primitives/kdf/hkdf.py +6 -91
- py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/primitives/kdf/kbkdf.py +1 -3
- py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/primitives/serialization/ssh.py +1 -1
- py2docfx/venv/venv1/Lib/site-packages/cryptography/utils.py +0 -2
- py2docfx/venv/venv1/Lib/site-packages/cryptography/x509/name.py +2 -3
- {py2docfx-0.1.20.dev2243675.dist-info → py2docfx-0.1.20.dev2245022.dist-info}/METADATA +1 -1
- {py2docfx-0.1.20.dev2243675.dist-info → py2docfx-0.1.20.dev2245022.dist-info}/RECORD +23 -20
- {py2docfx-0.1.20.dev2243675.dist-info → py2docfx-0.1.20.dev2245022.dist-info}/WHEEL +0 -0
- {py2docfx-0.1.20.dev2243675.dist-info → py2docfx-0.1.20.dev2245022.dist-info}/top_level.txt +0 -0
|
@@ -4,10 +4,6 @@
|
|
|
4
4
|
|
|
5
5
|
from __future__ import annotations
|
|
6
6
|
|
|
7
|
-
import sys
|
|
8
|
-
import warnings
|
|
9
|
-
|
|
10
|
-
from cryptography import utils
|
|
11
7
|
from cryptography.__about__ import __author__, __copyright__, __version__
|
|
12
8
|
|
|
13
9
|
__all__ = [
|
|
@@ -15,12 +11,3 @@ __all__ = [
|
|
|
15
11
|
"__copyright__",
|
|
16
12
|
"__version__",
|
|
17
13
|
]
|
|
18
|
-
|
|
19
|
-
if sys.version_info[:2] == (3, 7):
|
|
20
|
-
warnings.warn(
|
|
21
|
-
"Python 3.7 is no longer supported by the Python core team "
|
|
22
|
-
"and support for it is deprecated in cryptography. The next release "
|
|
23
|
-
"of cryptography will remove support for Python 3.7.",
|
|
24
|
-
utils.CryptographyDeprecationWarning,
|
|
25
|
-
stacklevel=2,
|
|
26
|
-
)
|
|
@@ -166,6 +166,10 @@ class HashAlgorithmOID:
|
|
|
166
166
|
SHA3_256 = ObjectIdentifier("1.3.6.1.4.1.37476.3.2.1.99.7.256")
|
|
167
167
|
SHA3_384 = ObjectIdentifier("1.3.6.1.4.1.37476.3.2.1.99.7.384")
|
|
168
168
|
SHA3_512 = ObjectIdentifier("1.3.6.1.4.1.37476.3.2.1.99.7.512")
|
|
169
|
+
SHA3_224_NIST = ObjectIdentifier("2.16.840.1.101.3.4.2.7")
|
|
170
|
+
SHA3_256_NIST = ObjectIdentifier("2.16.840.1.101.3.4.2.8")
|
|
171
|
+
SHA3_384_NIST = ObjectIdentifier("2.16.840.1.101.3.4.2.9")
|
|
172
|
+
SHA3_512_NIST = ObjectIdentifier("2.16.840.1.101.3.4.2.10")
|
|
169
173
|
|
|
170
174
|
|
|
171
175
|
class PublicKeyAlgorithmOID:
|
|
@@ -290,6 +294,10 @@ _OID_NAMES = {
|
|
|
290
294
|
HashAlgorithmOID.SHA3_256: "sha3_256",
|
|
291
295
|
HashAlgorithmOID.SHA3_384: "sha3_384",
|
|
292
296
|
HashAlgorithmOID.SHA3_512: "sha3_512",
|
|
297
|
+
HashAlgorithmOID.SHA3_224_NIST: "sha3_224",
|
|
298
|
+
HashAlgorithmOID.SHA3_256_NIST: "sha3_256",
|
|
299
|
+
HashAlgorithmOID.SHA3_384_NIST: "sha3_384",
|
|
300
|
+
HashAlgorithmOID.SHA3_512_NIST: "sha3_512",
|
|
293
301
|
PublicKeyAlgorithmOID.DSA: "dsaEncryption",
|
|
294
302
|
PublicKeyAlgorithmOID.EC_PUBLIC_KEY: "id-ecPublicKey",
|
|
295
303
|
PublicKeyAlgorithmOID.RSAES_PKCS1_v1_5: "rsaEncryption",
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
# This file is dual licensed under the terms of the Apache License, Version
|
|
2
|
+
# 2.0, and the BSD License. See the LICENSE file in the root of this repository
|
|
3
|
+
# for complete details.
|
|
4
|
+
|
|
5
|
+
from cryptography.hazmat.asn1.asn1 import encode_der, sequence
|
|
6
|
+
|
|
7
|
+
__all__ = [
|
|
8
|
+
"encode_der",
|
|
9
|
+
"sequence",
|
|
10
|
+
]
|
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
# This file is dual licensed under the terms of the Apache License, Version
|
|
2
|
+
# 2.0, and the BSD License. See the LICENSE file in the root of this repository
|
|
3
|
+
# for complete details.
|
|
4
|
+
|
|
5
|
+
from __future__ import annotations
|
|
6
|
+
|
|
7
|
+
import dataclasses
|
|
8
|
+
import sys
|
|
9
|
+
import typing
|
|
10
|
+
|
|
11
|
+
if sys.version_info < (3, 11):
|
|
12
|
+
import typing_extensions
|
|
13
|
+
|
|
14
|
+
# We use the `include_extras` parameter of `get_type_hints`, which was
|
|
15
|
+
# added in Python 3.9. This can be replaced by the `typing` version
|
|
16
|
+
# once the min version is >= 3.9
|
|
17
|
+
if sys.version_info < (3, 9):
|
|
18
|
+
get_type_hints = typing_extensions.get_type_hints
|
|
19
|
+
else:
|
|
20
|
+
get_type_hints = typing.get_type_hints
|
|
21
|
+
else:
|
|
22
|
+
get_type_hints = typing.get_type_hints
|
|
23
|
+
|
|
24
|
+
from cryptography.hazmat.bindings._rust import declarative_asn1
|
|
25
|
+
|
|
26
|
+
T = typing.TypeVar("T", covariant=True)
|
|
27
|
+
U = typing.TypeVar("U")
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
encode_der = declarative_asn1.encode_der
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
def _normalize_field_type(
|
|
34
|
+
field_type: typing.Any, field_name: str
|
|
35
|
+
) -> declarative_asn1.AnnotatedType:
|
|
36
|
+
annotation = declarative_asn1.Annotation()
|
|
37
|
+
|
|
38
|
+
if hasattr(field_type, "__asn1_root__"):
|
|
39
|
+
annotated_root = field_type.__asn1_root__
|
|
40
|
+
if not isinstance(annotated_root, declarative_asn1.AnnotatedType):
|
|
41
|
+
raise TypeError(f"unsupported root type: {annotated_root}")
|
|
42
|
+
return annotated_root
|
|
43
|
+
else:
|
|
44
|
+
rust_field_type = declarative_asn1.non_root_python_to_rust(field_type)
|
|
45
|
+
|
|
46
|
+
return declarative_asn1.AnnotatedType(rust_field_type, annotation)
|
|
47
|
+
|
|
48
|
+
|
|
49
|
+
def _annotate_fields(
|
|
50
|
+
raw_fields: dict[str, type],
|
|
51
|
+
) -> dict[str, declarative_asn1.AnnotatedType]:
|
|
52
|
+
fields = {}
|
|
53
|
+
for field_name, field_type in raw_fields.items():
|
|
54
|
+
# Recursively normalize the field type into something that the
|
|
55
|
+
# Rust code can understand.
|
|
56
|
+
annotated_field_type = _normalize_field_type(field_type, field_name)
|
|
57
|
+
fields[field_name] = annotated_field_type
|
|
58
|
+
|
|
59
|
+
return fields
|
|
60
|
+
|
|
61
|
+
|
|
62
|
+
def _register_asn1_sequence(cls: type[U]) -> None:
|
|
63
|
+
raw_fields = get_type_hints(cls, include_extras=True)
|
|
64
|
+
root = declarative_asn1.AnnotatedType(
|
|
65
|
+
declarative_asn1.Type.Sequence(cls, _annotate_fields(raw_fields)),
|
|
66
|
+
declarative_asn1.Annotation(),
|
|
67
|
+
)
|
|
68
|
+
|
|
69
|
+
setattr(cls, "__asn1_root__", root)
|
|
70
|
+
|
|
71
|
+
|
|
72
|
+
# Due to https://github.com/python/mypy/issues/19731, we can't define an alias
|
|
73
|
+
# for `dataclass_transform` that conditionally points to `typing` or
|
|
74
|
+
# `typing_extensions` depending on the Python version (like we do for
|
|
75
|
+
# `get_type_hints`).
|
|
76
|
+
# We work around it by making the whole decorated class conditional on the
|
|
77
|
+
# Python version.
|
|
78
|
+
if sys.version_info < (3, 11):
|
|
79
|
+
|
|
80
|
+
@typing_extensions.dataclass_transform(kw_only_default=True)
|
|
81
|
+
def sequence(cls: type[U]) -> type[U]:
|
|
82
|
+
# We use `dataclasses.dataclass` to add an __init__ method
|
|
83
|
+
# to the class with keyword-only parameters.
|
|
84
|
+
if sys.version_info >= (3, 10):
|
|
85
|
+
dataclass_cls = dataclasses.dataclass(
|
|
86
|
+
repr=False,
|
|
87
|
+
eq=False,
|
|
88
|
+
# `match_args` was added in Python 3.10 and defaults
|
|
89
|
+
# to True
|
|
90
|
+
match_args=False,
|
|
91
|
+
# `kw_only` was added in Python 3.10 and defaults to
|
|
92
|
+
# False
|
|
93
|
+
kw_only=True,
|
|
94
|
+
)(cls)
|
|
95
|
+
else:
|
|
96
|
+
dataclass_cls = dataclasses.dataclass(
|
|
97
|
+
repr=False,
|
|
98
|
+
eq=False,
|
|
99
|
+
)(cls)
|
|
100
|
+
_register_asn1_sequence(dataclass_cls)
|
|
101
|
+
return dataclass_cls
|
|
102
|
+
|
|
103
|
+
else:
|
|
104
|
+
|
|
105
|
+
@typing.dataclass_transform(kw_only_default=True)
|
|
106
|
+
def sequence(cls: type[U]) -> type[U]:
|
|
107
|
+
# Only add an __init__ method, with keyword-only
|
|
108
|
+
# parameters.
|
|
109
|
+
dataclass_cls = dataclasses.dataclass(
|
|
110
|
+
repr=False,
|
|
111
|
+
eq=False,
|
|
112
|
+
match_args=False,
|
|
113
|
+
kw_only=True,
|
|
114
|
+
)(cls)
|
|
115
|
+
_register_asn1_sequence(dataclass_cls)
|
|
116
|
+
return dataclass_cls
|
|
@@ -260,9 +260,7 @@ class Backend:
|
|
|
260
260
|
return self._lib.Cryptography_HAS_EVP_PKEY_DHX == 1
|
|
261
261
|
|
|
262
262
|
def x25519_supported(self) -> bool:
|
|
263
|
-
|
|
264
|
-
return False
|
|
265
|
-
return True
|
|
263
|
+
return not self._fips_enabled
|
|
266
264
|
|
|
267
265
|
def x448_supported(self) -> bool:
|
|
268
266
|
if self._fips_enabled:
|
|
@@ -274,9 +272,7 @@ class Backend:
|
|
|
274
272
|
)
|
|
275
273
|
|
|
276
274
|
def ed25519_supported(self) -> bool:
|
|
277
|
-
|
|
278
|
-
return False
|
|
279
|
-
return True
|
|
275
|
+
return not self._fips_enabled
|
|
280
276
|
|
|
281
277
|
def ed448_supported(self) -> bool:
|
|
282
278
|
if self._fips_enabled:
|
|
@@ -294,9 +290,7 @@ class Backend:
|
|
|
294
290
|
)
|
|
295
291
|
|
|
296
292
|
def poly1305_supported(self) -> bool:
|
|
297
|
-
|
|
298
|
-
return False
|
|
299
|
-
return True
|
|
293
|
+
return not self._fips_enabled
|
|
300
294
|
|
|
301
295
|
def pkcs7_supported(self) -> bool:
|
|
302
296
|
return (
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
# This file is dual licensed under the terms of the Apache License, Version
|
|
2
|
+
# 2.0, and the BSD License. See the LICENSE file in the root of this repository
|
|
3
|
+
# for complete details.
|
|
4
|
+
import typing
|
|
5
|
+
|
|
6
|
+
def encode_der(value: typing.Any) -> bytes: ...
|
|
7
|
+
def non_root_python_to_rust(cls: type) -> Type: ...
|
|
8
|
+
|
|
9
|
+
# Type is a Rust enum with tuple variants. For now, we express the type
|
|
10
|
+
# annotations like this:
|
|
11
|
+
class Type:
|
|
12
|
+
Sequence: typing.ClassVar[type]
|
|
13
|
+
PyInt: typing.ClassVar[type]
|
|
14
|
+
|
|
15
|
+
class Annotation:
|
|
16
|
+
def __new__(
|
|
17
|
+
cls,
|
|
18
|
+
) -> Annotation: ...
|
|
19
|
+
|
|
20
|
+
class AnnotatedType:
|
|
21
|
+
inner: Type
|
|
22
|
+
annotation: Annotation
|
|
23
|
+
|
|
24
|
+
def __new__(cls, inner: Type, annotation: Annotation) -> AnnotatedType: ...
|
|
25
|
+
|
|
26
|
+
class AnnotatedTypeObject:
|
|
27
|
+
annotated_type: AnnotatedType
|
|
28
|
+
value: typing.Any
|
|
29
|
+
|
|
30
|
+
def __new__(
|
|
31
|
+
cls, annotated_type: AnnotatedType, value: typing.Any
|
|
32
|
+
) -> AnnotatedTypeObject: ...
|
|
@@ -47,3 +47,26 @@ class Argon2id:
|
|
|
47
47
|
def verify_phc_encoded(
|
|
48
48
|
cls, key_material: bytes, phc_encoded: str, secret: bytes | None = None
|
|
49
49
|
) -> None: ...
|
|
50
|
+
|
|
51
|
+
class HKDF:
|
|
52
|
+
def __init__(
|
|
53
|
+
self,
|
|
54
|
+
algorithm: HashAlgorithm,
|
|
55
|
+
length: int,
|
|
56
|
+
salt: bytes | None,
|
|
57
|
+
info: bytes | None,
|
|
58
|
+
backend: typing.Any = None,
|
|
59
|
+
): ...
|
|
60
|
+
def derive(self, key_material: Buffer) -> bytes: ...
|
|
61
|
+
def verify(self, key_material: bytes, expected_key: bytes) -> None: ...
|
|
62
|
+
|
|
63
|
+
class HKDFExpand:
|
|
64
|
+
def __init__(
|
|
65
|
+
self,
|
|
66
|
+
algorithm: HashAlgorithm,
|
|
67
|
+
length: int,
|
|
68
|
+
info: bytes | None,
|
|
69
|
+
backend: typing.Any = None,
|
|
70
|
+
): ...
|
|
71
|
+
def derive(self, key_material: Buffer) -> bytes: ...
|
|
72
|
+
def verify(self, key_material: bytes, expected_key: bytes) -> None: ...
|
|
@@ -198,7 +198,6 @@ class CertificateSigningRequest:
|
|
|
198
198
|
def tbs_certrequest_bytes(self) -> bytes: ...
|
|
199
199
|
@property
|
|
200
200
|
def is_signature_valid(self) -> bool: ...
|
|
201
|
-
def get_attribute_for_oid(self, oid: x509.ObjectIdentifier) -> bytes: ...
|
|
202
201
|
|
|
203
202
|
class PolicyBuilder:
|
|
204
203
|
def time(self, time: datetime.datetime) -> PolicyBuilder: ...
|
|
@@ -278,10 +277,6 @@ class ClientVerifier:
|
|
|
278
277
|
@property
|
|
279
278
|
def policy(self) -> Policy: ...
|
|
280
279
|
@property
|
|
281
|
-
def validation_time(self) -> datetime.datetime: ...
|
|
282
|
-
@property
|
|
283
|
-
def max_chain_depth(self) -> int: ...
|
|
284
|
-
@property
|
|
285
280
|
def store(self) -> Store: ...
|
|
286
281
|
def verify(
|
|
287
282
|
self,
|
|
@@ -293,12 +288,6 @@ class ServerVerifier:
|
|
|
293
288
|
@property
|
|
294
289
|
def policy(self) -> Policy: ...
|
|
295
290
|
@property
|
|
296
|
-
def subject(self) -> x509.verification.Subject: ...
|
|
297
|
-
@property
|
|
298
|
-
def validation_time(self) -> datetime.datetime: ...
|
|
299
|
-
@property
|
|
300
|
-
def max_chain_depth(self) -> int: ...
|
|
301
|
-
@property
|
|
302
291
|
def store(self) -> Store: ...
|
|
303
292
|
def verify(
|
|
304
293
|
self,
|
|
@@ -309,5 +298,4 @@ class ServerVerifier:
|
|
|
309
298
|
class Store:
|
|
310
299
|
def __init__(self, certs: list[x509.Certificate]) -> None: ...
|
|
311
300
|
|
|
312
|
-
class VerificationError(Exception):
|
|
313
|
-
pass
|
|
301
|
+
class VerificationError(Exception): ...
|
|
@@ -81,6 +81,12 @@ def cryptography_has_tlsv13_hs_functions() -> list[str]:
|
|
|
81
81
|
]
|
|
82
82
|
|
|
83
83
|
|
|
84
|
+
def cryptography_has_ssl_verify_client_post_handshake() -> list[str]:
|
|
85
|
+
return [
|
|
86
|
+
"SSL_verify_client_post_handshake",
|
|
87
|
+
]
|
|
88
|
+
|
|
89
|
+
|
|
84
90
|
def cryptography_has_engine() -> list[str]:
|
|
85
91
|
return [
|
|
86
92
|
"ENGINE_by_id",
|
|
@@ -155,6 +161,10 @@ def cryptography_has_get_extms_support() -> list[str]:
|
|
|
155
161
|
return ["SSL_get_extms_support"]
|
|
156
162
|
|
|
157
163
|
|
|
164
|
+
def cryptography_has_ssl_get0_group_name() -> list[str]:
|
|
165
|
+
return ["SSL_get0_group_name"]
|
|
166
|
+
|
|
167
|
+
|
|
158
168
|
# This is a mapping of
|
|
159
169
|
# {condition: function-returning-names-dependent-on-that-condition} so we can
|
|
160
170
|
# loop over them and delete unsupported names at runtime. It will be removed
|
|
@@ -172,6 +182,9 @@ CONDITIONAL_NAMES = {
|
|
|
172
182
|
"Cryptography_HAS_TLSv1_3_HS_FUNCTIONS": (
|
|
173
183
|
cryptography_has_tlsv13_hs_functions
|
|
174
184
|
),
|
|
185
|
+
"Cryptography_HAS_SSL_VERIFY_CLIENT_POST_HANDSHAKE": (
|
|
186
|
+
cryptography_has_ssl_verify_client_post_handshake
|
|
187
|
+
),
|
|
175
188
|
"Cryptography_HAS_ENGINE": cryptography_has_engine,
|
|
176
189
|
"Cryptography_HAS_VERIFIED_CHAIN": cryptography_has_verified_chain,
|
|
177
190
|
"Cryptography_HAS_SRTP": cryptography_has_srtp,
|
|
@@ -188,4 +201,7 @@ CONDITIONAL_NAMES = {
|
|
|
188
201
|
cryptography_has_ssl_op_ignore_unexpected_eof
|
|
189
202
|
),
|
|
190
203
|
"Cryptography_HAS_GET_EXTMS_SUPPORT": cryptography_has_get_extms_support,
|
|
204
|
+
"Cryptography_HAS_SSL_GET0_GROUP_NAME": (
|
|
205
|
+
cryptography_has_ssl_get0_group_name
|
|
206
|
+
),
|
|
191
207
|
}
|
|
@@ -16,6 +16,7 @@ import cryptography
|
|
|
16
16
|
from cryptography.exceptions import InternalError
|
|
17
17
|
from cryptography.hazmat.bindings._rust import _openssl, openssl
|
|
18
18
|
from cryptography.hazmat.bindings.openssl._conditional import CONDITIONAL_NAMES
|
|
19
|
+
from cryptography.utils import CryptographyDeprecationWarning
|
|
19
20
|
|
|
20
21
|
|
|
21
22
|
def _openssl_assert(ok: bool) -> None:
|
|
@@ -57,7 +58,7 @@ class Binding:
|
|
|
57
58
|
OpenSSL API wrapper.
|
|
58
59
|
"""
|
|
59
60
|
|
|
60
|
-
lib: typing.ClassVar = None
|
|
61
|
+
lib: typing.ClassVar[typing.Any] = None
|
|
61
62
|
ffi = _openssl.ffi
|
|
62
63
|
_lib_loaded = False
|
|
63
64
|
_init_lock = threading.Lock()
|
|
@@ -120,3 +121,17 @@ if (
|
|
|
120
121
|
UserWarning,
|
|
121
122
|
stacklevel=2,
|
|
122
123
|
)
|
|
124
|
+
|
|
125
|
+
if (
|
|
126
|
+
not openssl.CRYPTOGRAPHY_IS_LIBRESSL
|
|
127
|
+
and not openssl.CRYPTOGRAPHY_IS_BORINGSSL
|
|
128
|
+
and not openssl.CRYPTOGRAPHY_IS_AWSLC
|
|
129
|
+
and not openssl.CRYPTOGRAPHY_OPENSSL_300_OR_GREATER
|
|
130
|
+
):
|
|
131
|
+
warnings.warn(
|
|
132
|
+
"You are using OpenSSL < 3.0. Support for OpenSSL < 3.0 is deprecated "
|
|
133
|
+
"and will be removed in the next release. Please upgrade to OpenSSL "
|
|
134
|
+
"3.0 or later.",
|
|
135
|
+
CryptographyDeprecationWarning,
|
|
136
|
+
stacklevel=2,
|
|
137
|
+
)
|
|
@@ -91,8 +91,6 @@ class MGF(metaclass=abc.ABCMeta):
|
|
|
91
91
|
|
|
92
92
|
|
|
93
93
|
class MGF1(MGF):
|
|
94
|
-
MAX_LENGTH = _MaxLength()
|
|
95
|
-
|
|
96
94
|
def __init__(self, algorithm: hashes.HashAlgorithm):
|
|
97
95
|
if not isinstance(algorithm, hashes.HashAlgorithm):
|
|
98
96
|
raise TypeError("Expected instance of hashes.HashAlgorithm.")
|
|
@@ -184,6 +184,8 @@ def rsa_crt_iqmp(p: int, q: int) -> int:
|
|
|
184
184
|
"""
|
|
185
185
|
Compute the CRT (q ** -1) % p value from RSA primes p and q.
|
|
186
186
|
"""
|
|
187
|
+
if p <= 1 or q <= 1:
|
|
188
|
+
raise ValueError("Values can't be <= 1")
|
|
187
189
|
return _modinv(q, p)
|
|
188
190
|
|
|
189
191
|
|
|
@@ -192,6 +194,8 @@ def rsa_crt_dmp1(private_exponent: int, p: int) -> int:
|
|
|
192
194
|
Compute the CRT private_exponent % (p - 1) value from the RSA
|
|
193
195
|
private_exponent (d) and p.
|
|
194
196
|
"""
|
|
197
|
+
if private_exponent <= 1 or p <= 1:
|
|
198
|
+
raise ValueError("Values can't be <= 1")
|
|
195
199
|
return private_exponent % (p - 1)
|
|
196
200
|
|
|
197
201
|
|
|
@@ -200,6 +204,8 @@ def rsa_crt_dmq1(private_exponent: int, q: int) -> int:
|
|
|
200
204
|
Compute the CRT private_exponent % (q - 1) value from the RSA
|
|
201
205
|
private_exponent (d) and q.
|
|
202
206
|
"""
|
|
207
|
+
if private_exponent <= 1 or q <= 1:
|
|
208
|
+
raise ValueError("Values can't be <= 1")
|
|
203
209
|
return private_exponent % (q - 1)
|
|
204
210
|
|
|
205
211
|
|
|
@@ -220,6 +226,8 @@ def rsa_recover_private_exponent(e: int, p: int, q: int) -> int:
|
|
|
220
226
|
#
|
|
221
227
|
# TODO: Replace with lcm(p - 1, q - 1) once the minimum
|
|
222
228
|
# supported Python version is >= 3.9.
|
|
229
|
+
if e <= 1 or p <= 1 or q <= 1:
|
|
230
|
+
raise ValueError("Values can't be <= 1")
|
|
223
231
|
lambda_n = (p - 1) * (q - 1) // gcd(p - 1, q - 1)
|
|
224
232
|
return _modinv(e, lambda_n)
|
|
225
233
|
|
|
@@ -100,53 +100,6 @@ utils.deprecated(
|
|
|
100
100
|
name="TripleDES",
|
|
101
101
|
)
|
|
102
102
|
|
|
103
|
-
utils.deprecated(
|
|
104
|
-
Blowfish,
|
|
105
|
-
__name__,
|
|
106
|
-
"Blowfish has been moved to "
|
|
107
|
-
"cryptography.hazmat.decrepit.ciphers.algorithms.Blowfish and "
|
|
108
|
-
"will be removed from "
|
|
109
|
-
"cryptography.hazmat.primitives.ciphers.algorithms in 45.0.0.",
|
|
110
|
-
utils.DeprecatedIn37,
|
|
111
|
-
name="Blowfish",
|
|
112
|
-
)
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
utils.deprecated(
|
|
116
|
-
CAST5,
|
|
117
|
-
__name__,
|
|
118
|
-
"CAST5 has been moved to "
|
|
119
|
-
"cryptography.hazmat.decrepit.ciphers.algorithms.CAST5 and "
|
|
120
|
-
"will be removed from "
|
|
121
|
-
"cryptography.hazmat.primitives.ciphers.algorithms in 45.0.0.",
|
|
122
|
-
utils.DeprecatedIn37,
|
|
123
|
-
name="CAST5",
|
|
124
|
-
)
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
utils.deprecated(
|
|
128
|
-
IDEA,
|
|
129
|
-
__name__,
|
|
130
|
-
"IDEA has been moved to "
|
|
131
|
-
"cryptography.hazmat.decrepit.ciphers.algorithms.IDEA and "
|
|
132
|
-
"will be removed from "
|
|
133
|
-
"cryptography.hazmat.primitives.ciphers.algorithms in 45.0.0.",
|
|
134
|
-
utils.DeprecatedIn37,
|
|
135
|
-
name="IDEA",
|
|
136
|
-
)
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
utils.deprecated(
|
|
140
|
-
SEED,
|
|
141
|
-
__name__,
|
|
142
|
-
"SEED has been moved to "
|
|
143
|
-
"cryptography.hazmat.decrepit.ciphers.algorithms.SEED and "
|
|
144
|
-
"will be removed from "
|
|
145
|
-
"cryptography.hazmat.primitives.ciphers.algorithms in 45.0.0.",
|
|
146
|
-
utils.DeprecatedIn37,
|
|
147
|
-
name="SEED",
|
|
148
|
-
)
|
|
149
|
-
|
|
150
103
|
|
|
151
104
|
class ChaCha20(CipherAlgorithm):
|
|
152
105
|
name = "ChaCha20"
|
|
@@ -4,98 +4,13 @@
|
|
|
4
4
|
|
|
5
5
|
from __future__ import annotations
|
|
6
6
|
|
|
7
|
-
import
|
|
8
|
-
|
|
9
|
-
from cryptography import utils
|
|
10
|
-
from cryptography.exceptions import AlreadyFinalized, InvalidKey
|
|
11
|
-
from cryptography.hazmat.primitives import constant_time, hashes, hmac
|
|
7
|
+
from cryptography.hazmat.bindings._rust import openssl as rust_openssl
|
|
12
8
|
from cryptography.hazmat.primitives.kdf import KeyDerivationFunction
|
|
13
9
|
|
|
10
|
+
HKDF = rust_openssl.kdf.HKDF
|
|
11
|
+
HKDFExpand = rust_openssl.kdf.HKDFExpand
|
|
14
12
|
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
self,
|
|
18
|
-
algorithm: hashes.HashAlgorithm,
|
|
19
|
-
length: int,
|
|
20
|
-
salt: bytes | None,
|
|
21
|
-
info: bytes | None,
|
|
22
|
-
backend: typing.Any = None,
|
|
23
|
-
):
|
|
24
|
-
self._algorithm = algorithm
|
|
25
|
-
|
|
26
|
-
if salt is None:
|
|
27
|
-
salt = b"\x00" * self._algorithm.digest_size
|
|
28
|
-
else:
|
|
29
|
-
utils._check_bytes("salt", salt)
|
|
30
|
-
|
|
31
|
-
self._salt = salt
|
|
32
|
-
|
|
33
|
-
self._hkdf_expand = HKDFExpand(self._algorithm, length, info)
|
|
34
|
-
|
|
35
|
-
def _extract(self, key_material: utils.Buffer) -> bytes:
|
|
36
|
-
h = hmac.HMAC(self._salt, self._algorithm)
|
|
37
|
-
h.update(key_material)
|
|
38
|
-
return h.finalize()
|
|
39
|
-
|
|
40
|
-
def derive(self, key_material: utils.Buffer) -> bytes:
|
|
41
|
-
utils._check_byteslike("key_material", key_material)
|
|
42
|
-
return self._hkdf_expand.derive(self._extract(key_material))
|
|
43
|
-
|
|
44
|
-
def verify(self, key_material: bytes, expected_key: bytes) -> None:
|
|
45
|
-
if not constant_time.bytes_eq(self.derive(key_material), expected_key):
|
|
46
|
-
raise InvalidKey
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
class HKDFExpand(KeyDerivationFunction):
|
|
50
|
-
def __init__(
|
|
51
|
-
self,
|
|
52
|
-
algorithm: hashes.HashAlgorithm,
|
|
53
|
-
length: int,
|
|
54
|
-
info: bytes | None,
|
|
55
|
-
backend: typing.Any = None,
|
|
56
|
-
):
|
|
57
|
-
self._algorithm = algorithm
|
|
58
|
-
|
|
59
|
-
max_length = 255 * algorithm.digest_size
|
|
60
|
-
|
|
61
|
-
if length > max_length:
|
|
62
|
-
raise ValueError(
|
|
63
|
-
f"Cannot derive keys larger than {max_length} octets."
|
|
64
|
-
)
|
|
65
|
-
|
|
66
|
-
self._length = length
|
|
67
|
-
|
|
68
|
-
if info is None:
|
|
69
|
-
info = b""
|
|
70
|
-
else:
|
|
71
|
-
utils._check_bytes("info", info)
|
|
72
|
-
|
|
73
|
-
self._info = info
|
|
74
|
-
|
|
75
|
-
self._used = False
|
|
76
|
-
|
|
77
|
-
def _expand(self, key_material: utils.Buffer) -> bytes:
|
|
78
|
-
output = [b""]
|
|
79
|
-
counter = 1
|
|
80
|
-
|
|
81
|
-
while self._algorithm.digest_size * (len(output) - 1) < self._length:
|
|
82
|
-
h = hmac.HMAC(key_material, self._algorithm)
|
|
83
|
-
h.update(output[-1])
|
|
84
|
-
h.update(self._info)
|
|
85
|
-
h.update(bytes([counter]))
|
|
86
|
-
output.append(h.finalize())
|
|
87
|
-
counter += 1
|
|
88
|
-
|
|
89
|
-
return b"".join(output)[: self._length]
|
|
90
|
-
|
|
91
|
-
def derive(self, key_material: utils.Buffer) -> bytes:
|
|
92
|
-
utils._check_byteslike("key_material", key_material)
|
|
93
|
-
if self._used:
|
|
94
|
-
raise AlreadyFinalized
|
|
95
|
-
|
|
96
|
-
self._used = True
|
|
97
|
-
return self._expand(key_material)
|
|
13
|
+
KeyDerivationFunction.register(HKDF)
|
|
14
|
+
KeyDerivationFunction.register(HKDFExpand)
|
|
98
15
|
|
|
99
|
-
|
|
100
|
-
if not constant_time.bytes_eq(self.derive(key_material), expected_key):
|
|
101
|
-
raise InvalidKey
|
|
16
|
+
__all__ = ["HKDF", "HKDFExpand"]
|
|
@@ -117,9 +117,7 @@ class _KBKDFDeriver:
|
|
|
117
117
|
raise TypeError("value must be of type int")
|
|
118
118
|
|
|
119
119
|
value_bin = utils.int_to_bytes(1, value)
|
|
120
|
-
|
|
121
|
-
return False
|
|
122
|
-
return True
|
|
120
|
+
return 1 <= len(value_bin) <= 4
|
|
123
121
|
|
|
124
122
|
def derive(
|
|
125
123
|
self, key_material: utils.Buffer, prf_output_size: int
|
|
@@ -22,12 +22,10 @@ class CryptographyDeprecationWarning(UserWarning):
|
|
|
22
22
|
# ubiquity of their use. They should not be removed until we agree on when that
|
|
23
23
|
# cycle ends.
|
|
24
24
|
DeprecatedIn36 = CryptographyDeprecationWarning
|
|
25
|
-
DeprecatedIn37 = CryptographyDeprecationWarning
|
|
26
25
|
DeprecatedIn40 = CryptographyDeprecationWarning
|
|
27
26
|
DeprecatedIn41 = CryptographyDeprecationWarning
|
|
28
27
|
DeprecatedIn42 = CryptographyDeprecationWarning
|
|
29
28
|
DeprecatedIn43 = CryptographyDeprecationWarning
|
|
30
|
-
DeprecatedIn45 = CryptographyDeprecationWarning
|
|
31
29
|
|
|
32
30
|
|
|
33
31
|
# If you're wondering why we don't use `Buffer`, it's because `Buffer` would
|
|
@@ -144,9 +144,8 @@ class NameAttribute(typing.Generic[NameAttributeValueType]):
|
|
|
144
144
|
)
|
|
145
145
|
if not isinstance(value, bytes):
|
|
146
146
|
raise TypeError("value must be bytes for BitString")
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
raise TypeError("value argument must be a str")
|
|
147
|
+
elif not isinstance(value, str):
|
|
148
|
+
raise TypeError("value argument must be a str")
|
|
150
149
|
|
|
151
150
|
length_limits = _NAMEOID_LENGTH_LIMIT.get(oid)
|
|
152
151
|
if length_limits is not None:
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: py2docfx
|
|
3
|
-
Version: 0.1.20.
|
|
3
|
+
Version: 0.1.20.dev2245022
|
|
4
4
|
Summary: A package built based on Sphinx which download source code package and generate yaml files supported by docfx.
|
|
5
5
|
Author: Microsoft Corporation
|
|
6
6
|
License: MIT License
|
|
@@ -2114,27 +2114,30 @@ py2docfx/venv/venv1/Lib/site-packages/charset_normalizer/utils.py,sha256=XtWIQeO
|
|
|
2114
2114
|
py2docfx/venv/venv1/Lib/site-packages/charset_normalizer/version.py,sha256=laniWEeVCCfwRgYLf_rZ2f0qWaNwWTEXQEfUUL_MMvw,123
|
|
2115
2115
|
py2docfx/venv/venv1/Lib/site-packages/charset_normalizer/cli/__init__.py,sha256=d9MUx-1V_qD3x9igIy4JT4oC5CU0yjulk7QyZWeRFhg,144
|
|
2116
2116
|
py2docfx/venv/venv1/Lib/site-packages/charset_normalizer/cli/__main__.py,sha256=-pdJCyPywouPyFsC8_eTSgTmvh1YEvgjsvy1WZ0XjaA,13027
|
|
2117
|
-
py2docfx/venv/venv1/Lib/site-packages/cryptography/__about__.py,sha256=
|
|
2118
|
-
py2docfx/venv/venv1/Lib/site-packages/cryptography/__init__.py,sha256=
|
|
2117
|
+
py2docfx/venv/venv1/Lib/site-packages/cryptography/__about__.py,sha256=HjdAcA_KYjHqUBwpMwL9tWqMW9w6tjGjuY2kG2mTvic,445
|
|
2118
|
+
py2docfx/venv/venv1/Lib/site-packages/cryptography/__init__.py,sha256=mthuUrTd4FROCpUYrTIqhjz6s6T9djAZrV7nZ1oMm2o,364
|
|
2119
2119
|
py2docfx/venv/venv1/Lib/site-packages/cryptography/exceptions.py,sha256=835EWILc2fwxw-gyFMriciC2SqhViETB10LBSytnDIc,1087
|
|
2120
2120
|
py2docfx/venv/venv1/Lib/site-packages/cryptography/fernet.py,sha256=3Cvxkh0KJSbX8HbnCHu4wfCW7U0GgfUA3v_qQ8a8iWc,6963
|
|
2121
2121
|
py2docfx/venv/venv1/Lib/site-packages/cryptography/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
2122
|
-
py2docfx/venv/venv1/Lib/site-packages/cryptography/utils.py,sha256=
|
|
2122
|
+
py2docfx/venv/venv1/Lib/site-packages/cryptography/utils.py,sha256=bZAjFC5KVpfmF29qS_18vvpW3mKxmdiRALcusHhTTkg,4301
|
|
2123
2123
|
py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/__init__.py,sha256=5IwrLWrVp0AjEr_4FdWG_V057NSJGY_W4egNNsuct0g,455
|
|
2124
|
-
py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/_oid.py,sha256=
|
|
2124
|
+
py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/_oid.py,sha256=p8ThjwJB56Ci_rAIrjyJ1f8VjgD6e39es2dh8JIUBOw,17240
|
|
2125
|
+
py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/asn1/__init__.py,sha256=hS_EWx3wVvZzfbCcNV8hzcDnyMM8H-BhIoS1TipUosk,293
|
|
2126
|
+
py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/asn1/asn1.py,sha256=eMEThEXa19LQjcyVofgHsW6tsZnjp3ddH7bWkkcxfLM,3860
|
|
2125
2127
|
py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/backends/__init__.py,sha256=O5jvKFQdZnXhKeqJ-HtulaEL9Ni7mr1mDzZY5kHlYhI,361
|
|
2126
2128
|
py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/backends/openssl/__init__.py,sha256=p3jmJfnCag9iE5sdMrN6VvVEu55u46xaS_IjoI0SrmA,305
|
|
2127
|
-
py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/backends/openssl/backend.py,sha256=
|
|
2129
|
+
py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/backends/openssl/backend.py,sha256=tV5AxBoFJ2GfA0DMWSY-0TxQJrpQoexzI9R4Kybb--4,10215
|
|
2128
2130
|
py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/bindings/__init__.py,sha256=s9oKCQ2ycFdXoERdS1imafueSkBsL9kvbyfghaauZ9Y,180
|
|
2129
2131
|
py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/bindings/_rust/__init__.pyi,sha256=KhqLhXFPArPzzJ7DYO9Fl8FoXB_BagAd_r4Dm_Ze9Xo,1257
|
|
2130
2132
|
py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/bindings/_rust/_openssl.pyi,sha256=mpNJLuYLbCVrd5i33FBTmWwL_55Dw7JPkSLlSX9Q7oI,230
|
|
2131
2133
|
py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/bindings/_rust/asn1.pyi,sha256=BrGjC8J6nwuS-r3EVcdXJB8ndotfY9mbQYOfpbPG0HA,354
|
|
2134
|
+
py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/bindings/_rust/declarative_asn1.pyi,sha256=2ECFmYue1EPkHEE2Bm7aLwkjB0mSUTpr23v9MN4pri4,892
|
|
2132
2135
|
py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/bindings/_rust/exceptions.pyi,sha256=exXr2xw_0pB1kk93cYbM3MohbzoUkjOms1ZMUi0uQZE,640
|
|
2133
2136
|
py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/bindings/_rust/ocsp.pyi,sha256=VPVWuKHI9EMs09ZLRYAGvR0Iz0mCMmEzXAkgJHovpoM,4020
|
|
2134
2137
|
py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/bindings/_rust/pkcs12.pyi,sha256=vEEd5wDiZvb8ZGFaziLCaWLzAwoG_tvPUxLQw5_uOl8,1605
|
|
2135
2138
|
py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/bindings/_rust/pkcs7.pyi,sha256=txGBJijqZshEcqra6byPNbnisIdlxzOSIHP2hl9arPs,1601
|
|
2136
2139
|
py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/bindings/_rust/test_support.pyi,sha256=PPhld-WkO743iXFPebeG0LtgK0aTzGdjcIsay1Gm5GE,757
|
|
2137
|
-
py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/bindings/_rust/x509.pyi,sha256=
|
|
2140
|
+
py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/bindings/_rust/x509.pyi,sha256=n9X0IQ6ICbdIi-ExdCFZoBgeY6njm3QOVAVZwDQdnbk,9784
|
|
2138
2141
|
py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/bindings/_rust/openssl/__init__.pyi,sha256=iOAMDyHoNwwCSZfZzuXDr64g4GpGUeDgEN-LjXqdrBM,1522
|
|
2139
2142
|
py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/bindings/_rust/openssl/aead.pyi,sha256=4Nddw6-ynzIB3w2W86WvkGKTLlTDk_6F5l54RHCuy3E,2688
|
|
2140
2143
|
py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/bindings/_rust/openssl/ciphers.pyi,sha256=LhPzHWSXJq4grAJXn6zSvSSdV-aYIIscHDwIPlJGGPs,1315
|
|
@@ -2146,15 +2149,15 @@ py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/bindings/_rust/openssl
|
|
|
2146
2149
|
py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/bindings/_rust/openssl/ed448.pyi,sha256=Yx49lqdnjsD7bxiDV1kcaMrDktug5evi5a6zerMiy2s,514
|
|
2147
2150
|
py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/bindings/_rust/openssl/hashes.pyi,sha256=OWZvBx7xfo_HJl41Nc--DugVyCVPIprZ3HlOPTSWH9g,984
|
|
2148
2151
|
py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/bindings/_rust/openssl/hmac.pyi,sha256=BXZn7NDjL3JAbYW0SQ8pg1iyC5DbQXVhUAiwsi8DFR8,702
|
|
2149
|
-
py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/bindings/_rust/openssl/kdf.pyi,sha256=
|
|
2152
|
+
py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/bindings/_rust/openssl/kdf.pyi,sha256=xXfFBb9QehHfDtEaxV_65Z0YK7NquOVIChpTLkgAs_k,2029
|
|
2150
2153
|
py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/bindings/_rust/openssl/keys.pyi,sha256=teIt8M6ZEMJrn4s3W0UnW0DZ-30Jd68WnSsKKG124l0,912
|
|
2151
2154
|
py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/bindings/_rust/openssl/poly1305.pyi,sha256=_SW9NtQ5FDlAbdclFtWpT4lGmxKIKHpN-4j8J2BzYfQ,585
|
|
2152
2155
|
py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/bindings/_rust/openssl/rsa.pyi,sha256=2OQCNSXkxgc-3uw1xiCCloIQTV6p9_kK79Yu0rhZgPc,1364
|
|
2153
2156
|
py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/bindings/_rust/openssl/x25519.pyi,sha256=ewn4GpQyb7zPwE-ni7GtyQgMC0A1mLuqYsSyqv6nI_s,523
|
|
2154
2157
|
py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/bindings/_rust/openssl/x448.pyi,sha256=juTZTmli8jO_5Vcufg-vHvx_tCyezmSLIh_9PU3TczI,505
|
|
2155
2158
|
py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/bindings/openssl/__init__.py,sha256=s9oKCQ2ycFdXoERdS1imafueSkBsL9kvbyfghaauZ9Y,180
|
|
2156
|
-
py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/bindings/openssl/_conditional.py,sha256=
|
|
2157
|
-
py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/bindings/openssl/binding.py,sha256=
|
|
2159
|
+
py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/bindings/openssl/_conditional.py,sha256=DMOpA_XN4l70zTc5_J9DpwlbQeUBRTWpfIJ4yRIn1-U,5791
|
|
2160
|
+
py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/bindings/openssl/binding.py,sha256=x8eocEmukO4cm7cHqfVmOoYY7CCXdoF1v1WhZQt9neo,4610
|
|
2158
2161
|
py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/decrepit/__init__.py,sha256=wHCbWfaefa-fk6THSw9th9fJUsStJo7245wfFBqmduA,216
|
|
2159
2162
|
py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/decrepit/ciphers/__init__.py,sha256=wHCbWfaefa-fk6THSw9th9fJUsStJo7245wfFBqmduA,216
|
|
2160
2163
|
py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/decrepit/ciphers/algorithms.py,sha256=YrKgHS4MfwWaMmPBYRymRRlC0phwWp9ycICFezeJPGk,2595
|
|
@@ -2175,22 +2178,22 @@ py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/primitives/asymmetric/
|
|
|
2175
2178
|
py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/primitives/asymmetric/ec.py,sha256=Vf5ig2PcS3PVnsb5N49Kx1uIkFBJyhg4BWXThDz5cug,12999
|
|
2176
2179
|
py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/primitives/asymmetric/ed25519.py,sha256=jZW5cs472wXXV3eB0sE1b8w64gdazwwU0_MT5UOTiXs,3700
|
|
2177
2180
|
py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/primitives/asymmetric/ed448.py,sha256=yAetgn2f2JYf0BO8MapGzXeThsvSMG5LmUCrxVOidAA,3729
|
|
2178
|
-
py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/primitives/asymmetric/padding.py,sha256=
|
|
2179
|
-
py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/primitives/asymmetric/rsa.py,sha256=
|
|
2181
|
+
py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/primitives/asymmetric/padding.py,sha256=vQ6l6gOg9HqcbOsvHrSiJRVLdEj9L4m4HkRGYziTyFA,2854
|
|
2182
|
+
py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/primitives/asymmetric/rsa.py,sha256=ZnKOo2f34MCCOupC03Y1uR-_jiSG5IrelHEmxaME3D4,8303
|
|
2180
2183
|
py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/primitives/asymmetric/types.py,sha256=LnsOJym-wmPUJ7Knu_7bCNU3kIiELCd6krOaW_JU08I,2996
|
|
2181
2184
|
py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/primitives/asymmetric/utils.py,sha256=DPTs6T4F-UhwzFQTh-1fSEpQzazH2jf2xpIro3ItF4o,790
|
|
2182
2185
|
py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/primitives/asymmetric/x25519.py,sha256=_4nQeZ3yJ3Lg0RpXnaqA-1yt6vbx1F-wzLcaZHwSpeE,3613
|
|
2183
2186
|
py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/primitives/asymmetric/x448.py,sha256=WKBLtuVfJqiBRro654fGaQAlvsKbqbNkK7c4A_ZCdV0,3642
|
|
2184
2187
|
py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/primitives/ciphers/__init__.py,sha256=eyEXmjk6_CZXaOPYDr7vAYGXr29QvzgWL2-4CSolLFs,680
|
|
2185
2188
|
py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/primitives/ciphers/aead.py,sha256=Fzlyx7w8KYQakzDp1zWgJnIr62zgZrgVh1u2h4exB54,634
|
|
2186
|
-
py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/primitives/ciphers/algorithms.py,sha256=
|
|
2189
|
+
py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/primitives/ciphers/algorithms.py,sha256=Q7ZJwcsx83Mgxv5y7r6CyJKSdsOwC-my-5A67-ma2vw,3407
|
|
2187
2190
|
py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/primitives/ciphers/base.py,sha256=aBC7HHBBoixebmparVr0UlODs3VD0A7B6oz_AaRjDv8,4253
|
|
2188
2191
|
py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/primitives/ciphers/modes.py,sha256=20stpwhDtbAvpH0SMf9EDHIciwmTF-JMBUOZ9bU8WiQ,8318
|
|
2189
2192
|
py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/primitives/kdf/__init__.py,sha256=4XibZnrYq4hh5xBjWiIXzaYW6FKx8hPbVaa_cB9zS64,750
|
|
2190
2193
|
py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/primitives/kdf/argon2.py,sha256=UFDNXG0v-rw3DqAQTB1UQAsQC2M5Ejg0k_6OCyhLKus,460
|
|
2191
2194
|
py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/primitives/kdf/concatkdf.py,sha256=Ua8KoLXXnzgsrAUmHpyKymaPt8aPRP0EHEaBz7QCQ9I,3737
|
|
2192
|
-
py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/primitives/kdf/hkdf.py,sha256=
|
|
2193
|
-
py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/primitives/kdf/kbkdf.py,sha256=
|
|
2195
|
+
py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/primitives/kdf/hkdf.py,sha256=M0lAEfRoc4kpp4-nwDj9yB-vNZukIOYEQrUlWsBNn9o,543
|
|
2196
|
+
py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/primitives/kdf/kbkdf.py,sha256=oZepvo4evhKkkJQWRDwaPoIbyTaFmDc5NPimxg6lfKg,9165
|
|
2194
2197
|
py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/primitives/kdf/pbkdf2.py,sha256=1WIwhELR0w8ztTpTu8BrFiYWmK3hUfJq08I79TxwieE,1957
|
|
2195
2198
|
py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/primitives/kdf/scrypt.py,sha256=XyWUdUUmhuI9V6TqAPOvujCSMGv1XQdg0a21IWCmO-U,590
|
|
2196
2199
|
py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/primitives/kdf/x963kdf.py,sha256=zLTcF665QFvXX2f8TS7fmBZTteXpFjKahzfjjQcCJyw,1999
|
|
@@ -2198,7 +2201,7 @@ py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/primitives/serializati
|
|
|
2198
2201
|
py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/primitives/serialization/base.py,sha256=ikq5MJIwp_oUnjiaBco_PmQwOTYuGi-XkYUYHKy8Vo0,615
|
|
2199
2202
|
py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/primitives/serialization/pkcs12.py,sha256=mS9cFNG4afzvseoc5e1MWoY2VskfL8N8Y_OFjl67luY,5104
|
|
2200
2203
|
py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/primitives/serialization/pkcs7.py,sha256=5OR_Tkysxaprn4FegvJIfbep9rJ9wok6FLWvWwQ5-Mg,13943
|
|
2201
|
-
py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/primitives/serialization/ssh.py,sha256=
|
|
2204
|
+
py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/primitives/serialization/ssh.py,sha256=hPV5obFznz0QhFfXFPOeQ8y6MsurA0xVMQiLnLESEs8,53700
|
|
2202
2205
|
py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/primitives/twofactor/__init__.py,sha256=tmMZGB-g4IU1r7lIFqASU019zr0uPp_wEBYcwdDCKCA,258
|
|
2203
2206
|
py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/primitives/twofactor/hotp.py,sha256=ivZo5BrcCGWLsqql4nZV0XXCjyGPi_iHfDFltGlOJwk,3256
|
|
2204
2207
|
py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/primitives/twofactor/totp.py,sha256=m5LPpRL00kp4zY8gTjr55Hfz9aMlPS53kHmVkSQCmdY,1652
|
|
@@ -2207,7 +2210,7 @@ py2docfx/venv/venv1/Lib/site-packages/cryptography/x509/base.py,sha256=OrmTw3y8B
|
|
|
2207
2210
|
py2docfx/venv/venv1/Lib/site-packages/cryptography/x509/certificate_transparency.py,sha256=JqoOIDhlwInrYMFW6IFn77WJ0viF-PB_rlZV3vs9MYc,797
|
|
2208
2211
|
py2docfx/venv/venv1/Lib/site-packages/cryptography/x509/extensions.py,sha256=QxYrqR6SF1qzR9ZraP8wDiIczlEVlAFuwDRVcltB6Tk,77724
|
|
2209
2212
|
py2docfx/venv/venv1/Lib/site-packages/cryptography/x509/general_name.py,sha256=sP_rV11Qlpsk4x3XXGJY_Mv0Q_s9dtjeLckHsjpLQoQ,7836
|
|
2210
|
-
py2docfx/venv/venv1/Lib/site-packages/cryptography/x509/name.py,sha256=
|
|
2213
|
+
py2docfx/venv/venv1/Lib/site-packages/cryptography/x509/name.py,sha256=ty0_xf0LnHwZAdEf-d8FLO1K4hGqx_7DsD3CHwoLJiY,15101
|
|
2211
2214
|
py2docfx/venv/venv1/Lib/site-packages/cryptography/x509/ocsp.py,sha256=Yey6NdFV1MPjop24Mj_VenjEpg3kUaMopSWOK0AbeBs,12699
|
|
2212
2215
|
py2docfx/venv/venv1/Lib/site-packages/cryptography/x509/oid.py,sha256=BUzgXXGVWilkBkdKPTm9R4qElE9gAGHgdYPMZAp7PJo,931
|
|
2213
2216
|
py2docfx/venv/venv1/Lib/site-packages/cryptography/x509/verification.py,sha256=gR2C2c-XZQtblZhT5T5vjSKOtCb74ef2alPVmEcwFlM,958
|
|
@@ -3911,7 +3914,7 @@ py2docfx/venv/venv1/Lib/site-packages/wheel/_commands/convert.py,sha256=0wSJMU0m
|
|
|
3911
3914
|
py2docfx/venv/venv1/Lib/site-packages/wheel/_commands/pack.py,sha256=o3iwjfRHl7N9ul-M2kHbewLJZnqBLAWf0tzUCwoiTMw,3078
|
|
3912
3915
|
py2docfx/venv/venv1/Lib/site-packages/wheel/_commands/tags.py,sha256=Rv2ySVb8-qX3osKp3uJgxcIMXkjt43XUD0-zvC6KvnY,4775
|
|
3913
3916
|
py2docfx/venv/venv1/Lib/site-packages/wheel/_commands/unpack.py,sha256=Y_J7ynxPSoFFTT7H0fMgbBlVErwyDGcObgme5MBuz58,1021
|
|
3914
|
-
py2docfx-0.1.20.
|
|
3915
|
-
py2docfx-0.1.20.
|
|
3916
|
-
py2docfx-0.1.20.
|
|
3917
|
-
py2docfx-0.1.20.
|
|
3917
|
+
py2docfx-0.1.20.dev2245022.dist-info/METADATA,sha256=2PILdvtFYd06AY7XJNP1yh6nq-pMCItMwUPATbuxWJA,548
|
|
3918
|
+
py2docfx-0.1.20.dev2245022.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
3919
|
+
py2docfx-0.1.20.dev2245022.dist-info/top_level.txt,sha256=5dH2uP81dczt_qQJ38wiZ-gzoVWasfiJALWRSjdbnYU,9
|
|
3920
|
+
py2docfx-0.1.20.dev2245022.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|