py2docfx 0.1.16.dev2064350__py3-none-any.whl → 0.1.17__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/convert_prepare/environment.py +1 -3
- py2docfx/convert_prepare/get_source.py +1 -6
- py2docfx/convert_prepare/package_info.py +1 -1
- py2docfx/docfx_yaml/miss_reference.py +1 -1
- py2docfx/docfx_yaml/parameter_utils.py +58 -6
- py2docfx/docfx_yaml/tests/roots/test-translator-typing/code_with_typing.py +14 -0
- py2docfx/docfx_yaml/tests/roots/test-translator-typing/conf.py +18 -0
- py2docfx/docfx_yaml/tests/test_translator_typing.py +39 -0
- py2docfx/docfx_yaml/utils.py +2 -2
- py2docfx/venv/basevenv/Lib/site-packages/certifi/__init__.py +1 -1
- py2docfx/venv/basevenv/Lib/site-packages/certifi/core.py +1 -32
- py2docfx/venv/basevenv/Lib/site-packages/charset_normalizer/cli/__main__.py +62 -2
- py2docfx/venv/basevenv/Lib/site-packages/charset_normalizer/constant.py +17 -0
- py2docfx/venv/basevenv/Lib/site-packages/charset_normalizer/legacy.py +1 -3
- py2docfx/venv/basevenv/Lib/site-packages/charset_normalizer/md.py +19 -14
- py2docfx/venv/basevenv/Lib/site-packages/charset_normalizer/utils.py +6 -0
- py2docfx/venv/basevenv/Lib/site-packages/charset_normalizer/version.py +1 -1
- py2docfx/venv/basevenv/Lib/site-packages/packaging/__init__.py +1 -1
- py2docfx/venv/basevenv/Lib/site-packages/packaging/_elffile.py +1 -2
- py2docfx/venv/basevenv/Lib/site-packages/packaging/_manylinux.py +1 -2
- py2docfx/venv/basevenv/Lib/site-packages/packaging/_parser.py +1 -2
- py2docfx/venv/basevenv/Lib/site-packages/packaging/_tokenizer.py +5 -4
- py2docfx/venv/basevenv/Lib/site-packages/packaging/licenses/__init__.py +1 -1
- py2docfx/venv/basevenv/Lib/site-packages/packaging/markers.py +53 -22
- py2docfx/venv/basevenv/Lib/site-packages/packaging/metadata.py +1 -2
- py2docfx/venv/basevenv/Lib/site-packages/packaging/specifiers.py +1 -2
- py2docfx/venv/basevenv/Lib/site-packages/packaging/tags.py +39 -0
- py2docfx/venv/basevenv/Lib/site-packages/pkg_resources/__init__.py +6 -7
- py2docfx/venv/basevenv/Lib/site-packages/pygments/__init__.py +1 -1
- py2docfx/venv/basevenv/Lib/site-packages/pygments/lexers/_sql_builtins.py +106 -0
- py2docfx/venv/basevenv/Lib/site-packages/pygments/lexers/scripting.py +5 -3
- py2docfx/venv/basevenv/Lib/site-packages/pygments/lexers/sql.py +24 -118
- py2docfx/venv/basevenv/Lib/site-packages/requests/__version__.py +2 -2
- py2docfx/venv/basevenv/Lib/site-packages/requests/compat.py +12 -0
- py2docfx/venv/basevenv/Lib/site-packages/requests/models.py +3 -1
- py2docfx/venv/basevenv/Lib/site-packages/requests/utils.py +6 -16
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/__init__.py +0 -38
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/_discovery.py +33 -0
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/_distutils/command/build_scripts.py +1 -1
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/_distutils/command/config.py +0 -2
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/_distutils/compilers/C/tests/test_unix.py +63 -0
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/_distutils/compilers/C/unix.py +5 -6
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/_entry_points.py +4 -0
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/_normalization.py +0 -2
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/_path.py +12 -3
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/_reqs.py +1 -1
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/_scripts.py +361 -0
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/_shutil.py +6 -0
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/build_meta.py +25 -37
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/command/bdist_egg.py +9 -11
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/command/bdist_wheel.py +1 -1
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/command/build_ext.py +29 -28
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/command/develop.py +39 -179
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/command/easy_install.py +17 -2352
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/command/editable_wheel.py +14 -31
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/command/egg_info.py +0 -2
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/command/install.py +3 -55
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/command/install_scripts.py +5 -11
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/command/sdist.py +1 -1
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/compat/py310.py +11 -0
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/dist.py +10 -12
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/installer.py +34 -29
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/contexts.py +0 -14
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/fixtures.py +235 -0
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/integration/test_pbr.py +20 -0
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/test_build_meta.py +0 -24
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/test_develop.py +1 -64
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/test_dist.py +2 -2
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/test_dist_info.py +0 -63
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/test_editable_install.py +15 -41
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/test_egg_info.py +3 -2
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/test_scripts.py +12 -0
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/test_wheel.py +12 -36
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/test_windows_wrappers.py +3 -4
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/wheel.py +49 -24
- py2docfx/venv/basevenv/Lib/site-packages/snowballstemmer/__init__.py +6 -0
- py2docfx/venv/basevenv/Lib/site-packages/snowballstemmer/arabic_stemmer.py +798 -797
- py2docfx/venv/basevenv/Lib/site-packages/snowballstemmer/armenian_stemmer.py +212 -213
- py2docfx/venv/basevenv/Lib/site-packages/snowballstemmer/basestemmer.py +20 -54
- py2docfx/venv/basevenv/Lib/site-packages/snowballstemmer/basque_stemmer.py +202 -228
- py2docfx/venv/basevenv/Lib/site-packages/snowballstemmer/catalan_stemmer.py +370 -375
- py2docfx/venv/basevenv/Lib/site-packages/snowballstemmer/danish_stemmer.py +63 -61
- py2docfx/venv/basevenv/Lib/site-packages/snowballstemmer/dutch_porter_stemmer.py +466 -0
- py2docfx/venv/basevenv/Lib/site-packages/snowballstemmer/dutch_stemmer.py +1217 -343
- py2docfx/venv/basevenv/Lib/site-packages/snowballstemmer/english_stemmer.py +295 -264
- py2docfx/venv/basevenv/Lib/site-packages/snowballstemmer/esperanto_stemmer.py +588 -0
- py2docfx/venv/basevenv/Lib/site-packages/snowballstemmer/estonian_stemmer.py +850 -0
- py2docfx/venv/basevenv/Lib/site-packages/snowballstemmer/finnish_stemmer.py +144 -143
- py2docfx/venv/basevenv/Lib/site-packages/snowballstemmer/french_stemmer.py +308 -246
- py2docfx/venv/basevenv/Lib/site-packages/snowballstemmer/german_stemmer.py +224 -167
- py2docfx/venv/basevenv/Lib/site-packages/snowballstemmer/greek_stemmer.py +1314 -1313
- py2docfx/venv/basevenv/Lib/site-packages/snowballstemmer/hindi_stemmer.py +39 -38
- py2docfx/venv/basevenv/Lib/site-packages/snowballstemmer/hungarian_stemmer.py +231 -256
- py2docfx/venv/basevenv/Lib/site-packages/snowballstemmer/indonesian_stemmer.py +61 -64
- py2docfx/venv/basevenv/Lib/site-packages/snowballstemmer/irish_stemmer.py +101 -106
- py2docfx/venv/basevenv/Lib/site-packages/snowballstemmer/italian_stemmer.py +272 -272
- py2docfx/venv/basevenv/Lib/site-packages/snowballstemmer/lithuanian_stemmer.py +233 -240
- py2docfx/venv/basevenv/Lib/site-packages/snowballstemmer/nepali_stemmer.py +108 -134
- py2docfx/venv/basevenv/Lib/site-packages/snowballstemmer/norwegian_stemmer.py +108 -63
- py2docfx/venv/basevenv/Lib/site-packages/snowballstemmer/porter_stemmer.py +101 -108
- py2docfx/venv/basevenv/Lib/site-packages/snowballstemmer/portuguese_stemmer.py +241 -250
- py2docfx/venv/basevenv/Lib/site-packages/snowballstemmer/romanian_stemmer.py +332 -296
- py2docfx/venv/basevenv/Lib/site-packages/snowballstemmer/russian_stemmer.py +178 -179
- py2docfx/venv/basevenv/Lib/site-packages/snowballstemmer/serbian_stemmer.py +2331 -2332
- py2docfx/venv/basevenv/Lib/site-packages/snowballstemmer/spanish_stemmer.py +254 -259
- py2docfx/venv/basevenv/Lib/site-packages/snowballstemmer/swedish_stemmer.py +143 -70
- py2docfx/venv/basevenv/Lib/site-packages/snowballstemmer/tamil_stemmer.py +638 -1491
- py2docfx/venv/basevenv/Lib/site-packages/snowballstemmer/turkish_stemmer.py +326 -292
- py2docfx/venv/basevenv/Lib/site-packages/snowballstemmer/yiddish_stemmer.py +245 -246
- py2docfx/venv/basevenv/Lib/site-packages/urllib3/_version.py +2 -2
- py2docfx/venv/basevenv/Lib/site-packages/urllib3/connection.py +87 -38
- py2docfx/venv/basevenv/Lib/site-packages/urllib3/contrib/emscripten/fetch.py +20 -0
- py2docfx/venv/basevenv/Lib/site-packages/urllib3/poolmanager.py +17 -1
- py2docfx/venv/basevenv/Lib/site-packages/urllib3/response.py +53 -24
- py2docfx/venv/basevenv/Lib/site-packages/urllib3/util/request.py +12 -4
- py2docfx/venv/basevenv/Lib/site-packages/urllib3/util/ssl_.py +1 -1
- py2docfx/venv/venv1/Lib/site-packages/azure/core/_version.py +1 -1
- py2docfx/venv/venv1/Lib/site-packages/azure/core/pipeline/_base_async.py +1 -1
- py2docfx/venv/venv1/Lib/site-packages/azure/core/pipeline/transport/_aiohttp.py +1 -1
- py2docfx/venv/venv1/Lib/site-packages/azure/core/pipeline/transport/_base_async.py +2 -1
- py2docfx/venv/venv1/Lib/site-packages/azure/core/pipeline/transport/_requests_asyncio.py +1 -1
- py2docfx/venv/venv1/Lib/site-packages/azure/core/rest/_aiohttp.py +2 -2
- py2docfx/venv/venv1/Lib/site-packages/azure/core/rest/_requests_asyncio.py +1 -1
- py2docfx/venv/venv1/Lib/site-packages/azure/core/tracing/opentelemetry.py +13 -1
- py2docfx/venv/venv1/Lib/site-packages/azure/core/utils/_pipeline_transport_rest_shared_async.py +2 -1
- py2docfx/venv/venv1/Lib/site-packages/azure/core/utils/_utils.py +1 -1
- py2docfx/venv/venv1/Lib/site-packages/azure/identity/_constants.py +1 -0
- py2docfx/venv/venv1/Lib/site-packages/azure/identity/_credentials/default.py +23 -2
- py2docfx/venv/venv1/Lib/site-packages/azure/identity/_credentials/environment.py +12 -16
- py2docfx/venv/venv1/Lib/site-packages/azure/identity/_credentials/service_fabric.py +22 -1
- py2docfx/venv/venv1/Lib/site-packages/azure/identity/_credentials/user_password.py +10 -6
- py2docfx/venv/venv1/Lib/site-packages/azure/identity/_credentials/vscode.py +13 -4
- py2docfx/venv/venv1/Lib/site-packages/azure/identity/_internal/auth_code_redirect_handler.py +3 -5
- py2docfx/venv/venv1/Lib/site-packages/azure/identity/_internal/msal_client.py +2 -1
- py2docfx/venv/venv1/Lib/site-packages/azure/identity/_persistent_cache.py +3 -2
- py2docfx/venv/venv1/Lib/site-packages/azure/identity/_version.py +1 -1
- py2docfx/venv/venv1/Lib/site-packages/azure/identity/aio/_credentials/azd_cli.py +1 -1
- py2docfx/venv/venv1/Lib/site-packages/azure/identity/aio/_credentials/azure_cli.py +1 -1
- py2docfx/venv/venv1/Lib/site-packages/azure/identity/aio/_credentials/azure_powershell.py +1 -1
- py2docfx/venv/venv1/Lib/site-packages/azure/identity/aio/_credentials/chained.py +1 -1
- py2docfx/venv/venv1/Lib/site-packages/azure/identity/aio/_credentials/default.py +22 -2
- py2docfx/venv/venv1/Lib/site-packages/azure/identity/aio/_credentials/environment.py +2 -2
- py2docfx/venv/venv1/Lib/site-packages/azure/identity/aio/_credentials/service_fabric.py +17 -1
- py2docfx/venv/venv1/Lib/site-packages/azure/identity/aio/_credentials/vscode.py +4 -4
- py2docfx/venv/venv1/Lib/site-packages/certifi/__init__.py +1 -1
- py2docfx/venv/venv1/Lib/site-packages/certifi/core.py +1 -32
- py2docfx/venv/venv1/Lib/site-packages/charset_normalizer/cli/__main__.py +62 -2
- py2docfx/venv/venv1/Lib/site-packages/charset_normalizer/constant.py +17 -0
- py2docfx/venv/venv1/Lib/site-packages/charset_normalizer/legacy.py +1 -3
- py2docfx/venv/venv1/Lib/site-packages/charset_normalizer/md.py +19 -14
- py2docfx/venv/venv1/Lib/site-packages/charset_normalizer/utils.py +6 -0
- py2docfx/venv/venv1/Lib/site-packages/charset_normalizer/version.py +1 -1
- py2docfx/venv/venv1/Lib/site-packages/cryptography/__about__.py +2 -2
- py2docfx/venv/venv1/Lib/site-packages/cryptography/__init__.py +2 -2
- py2docfx/venv/venv1/Lib/site-packages/cryptography/fernet.py +2 -1
- py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/_oid.py +35 -2
- py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/backends/openssl/backend.py +33 -10
- py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/bindings/_rust/__init__.pyi +14 -5
- py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/bindings/_rust/ocsp.pyi +2 -2
- py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/bindings/_rust/openssl/__init__.pyi +3 -0
- py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/bindings/_rust/openssl/aead.pyi +49 -45
- py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/bindings/_rust/openssl/ciphers.pyi +2 -2
- py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/bindings/_rust/openssl/ed25519.pyi +2 -1
- py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/bindings/_rust/openssl/ed448.pyi +2 -1
- py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/bindings/_rust/openssl/hashes.pyi +10 -1
- py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/bindings/_rust/openssl/hmac.pyi +3 -2
- py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/bindings/_rust/openssl/kdf.pyi +8 -2
- py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/bindings/_rust/openssl/keys.pyi +3 -2
- py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/bindings/_rust/openssl/poly1305.pyi +6 -4
- py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/bindings/_rust/openssl/x25519.pyi +2 -1
- py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/bindings/_rust/openssl/x448.pyi +2 -1
- py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/bindings/_rust/pkcs12.pyi +9 -3
- py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/bindings/_rust/pkcs7.pyi +7 -6
- py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/bindings/_rust/test_support.pyi +2 -1
- py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/bindings/_rust/x509.pyi +79 -12
- py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/bindings/openssl/_conditional.py +9 -1
- py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/bindings/openssl/binding.py +2 -1
- py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/decrepit/ciphers/algorithms.py +5 -0
- py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/primitives/_cipheralgorithm.py +4 -2
- py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/primitives/_serialization.py +1 -2
- py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/primitives/asymmetric/dh.py +12 -0
- py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/primitives/asymmetric/dsa.py +16 -3
- py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/primitives/asymmetric/ec.py +47 -3
- py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/primitives/asymmetric/ed25519.py +16 -3
- py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/primitives/asymmetric/ed448.py +16 -3
- py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/primitives/asymmetric/rsa.py +14 -0
- py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/primitives/asymmetric/x25519.py +14 -1
- py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/primitives/asymmetric/x448.py +14 -1
- py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/primitives/ciphers/algorithms.py +6 -6
- py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/primitives/ciphers/base.py +5 -4
- py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/primitives/ciphers/modes.py +18 -18
- py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/primitives/hashes.py +5 -1
- py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/primitives/kdf/concatkdf.py +5 -4
- py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/primitives/kdf/hkdf.py +4 -4
- py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/primitives/kdf/kbkdf.py +7 -4
- py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/primitives/kdf/pbkdf2.py +1 -1
- py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/primitives/kdf/x963kdf.py +1 -1
- py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/primitives/padding.py +7 -121
- py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/primitives/serialization/__init__.py +2 -0
- py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/primitives/serialization/pkcs12.py +21 -1
- py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/primitives/serialization/pkcs7.py +48 -6
- py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/primitives/serialization/ssh.py +68 -18
- py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/primitives/twofactor/hotp.py +3 -2
- py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/primitives/twofactor/totp.py +2 -1
- py2docfx/venv/venv1/Lib/site-packages/cryptography/utils.py +15 -3
- py2docfx/venv/venv1/Lib/site-packages/cryptography/x509/__init__.py +3 -0
- py2docfx/venv/venv1/Lib/site-packages/cryptography/x509/base.py +39 -6
- py2docfx/venv/venv1/Lib/site-packages/cryptography/x509/extensions.py +100 -49
- py2docfx/venv/venv1/Lib/site-packages/cryptography/x509/name.py +27 -15
- py2docfx/venv/venv1/Lib/site-packages/cryptography/x509/ocsp.py +60 -25
- py2docfx/venv/venv1/Lib/site-packages/cryptography/x509/oid.py +2 -0
- py2docfx/venv/venv1/Lib/site-packages/cryptography/x509/verification.py +6 -0
- py2docfx/venv/venv1/Lib/site-packages/google/api_core/bidi.py +17 -4
- py2docfx/venv/venv1/Lib/site-packages/google/api_core/client_info.py +6 -0
- py2docfx/venv/venv1/Lib/site-packages/google/api_core/gapic_v1/client_info.py +1 -0
- py2docfx/venv/venv1/Lib/site-packages/google/api_core/retry/retry_base.py +13 -4
- py2docfx/venv/venv1/Lib/site-packages/google/api_core/retry/retry_streaming.py +7 -6
- py2docfx/venv/venv1/Lib/site-packages/google/api_core/retry/retry_streaming_async.py +8 -5
- py2docfx/venv/venv1/Lib/site-packages/google/api_core/retry/retry_unary.py +7 -6
- py2docfx/venv/venv1/Lib/site-packages/google/api_core/retry/retry_unary_async.py +7 -6
- py2docfx/venv/venv1/Lib/site-packages/google/api_core/version.py +1 -1
- py2docfx/venv/venv1/Lib/site-packages/google/auth/_default.py +2 -36
- py2docfx/venv/venv1/Lib/site-packages/google/auth/_helpers.py +240 -0
- py2docfx/venv/venv1/Lib/site-packages/google/auth/aio/_helpers.py +62 -0
- py2docfx/venv/venv1/Lib/site-packages/google/auth/aio/transport/aiohttp.py +6 -0
- py2docfx/venv/venv1/Lib/site-packages/google/auth/compute_engine/_metadata.py +5 -1
- py2docfx/venv/venv1/Lib/site-packages/google/auth/compute_engine/credentials.py +2 -1
- py2docfx/venv/venv1/Lib/site-packages/google/auth/identity_pool.py +91 -2
- py2docfx/venv/venv1/Lib/site-packages/google/auth/impersonated_credentials.py +75 -0
- py2docfx/venv/venv1/Lib/site-packages/google/auth/transport/__init__.py +1 -0
- py2docfx/venv/venv1/Lib/site-packages/google/auth/transport/_aiohttp_requests.py +8 -1
- py2docfx/venv/venv1/Lib/site-packages/google/auth/transport/_http_client.py +3 -1
- py2docfx/venv/venv1/Lib/site-packages/google/auth/transport/requests.py +4 -1
- py2docfx/venv/venv1/Lib/site-packages/google/auth/transport/urllib3.py +15 -5
- py2docfx/venv/venv1/Lib/site-packages/google/auth/version.py +1 -1
- py2docfx/venv/venv1/Lib/site-packages/google/oauth2/id_token.py +12 -0
- py2docfx/venv/venv1/Lib/site-packages/google/oauth2/webauthn_types.py +1 -1
- py2docfx/venv/venv1/Lib/site-packages/google/protobuf/__init__.py +1 -1
- py2docfx/venv/venv1/Lib/site-packages/google/protobuf/any.py +15 -1
- py2docfx/venv/venv1/Lib/site-packages/google/protobuf/any_pb2.py +3 -3
- py2docfx/venv/venv1/Lib/site-packages/google/protobuf/api_pb2.py +3 -3
- py2docfx/venv/venv1/Lib/site-packages/google/protobuf/compiler/plugin_pb2.py +3 -3
- py2docfx/venv/venv1/Lib/site-packages/google/protobuf/descriptor.py +15 -2
- py2docfx/venv/venv1/Lib/site-packages/google/protobuf/descriptor_pb2.py +258 -113
- py2docfx/venv/venv1/Lib/site-packages/google/protobuf/descriptor_pool.py +22 -8
- py2docfx/venv/venv1/Lib/site-packages/google/protobuf/duration_pb2.py +3 -3
- py2docfx/venv/venv1/Lib/site-packages/google/protobuf/empty_pb2.py +3 -3
- py2docfx/venv/venv1/Lib/site-packages/google/protobuf/field_mask_pb2.py +3 -3
- py2docfx/venv/venv1/Lib/site-packages/google/protobuf/internal/decoder.py +106 -23
- py2docfx/venv/venv1/Lib/site-packages/google/protobuf/internal/field_mask.py +3 -1
- py2docfx/venv/venv1/Lib/site-packages/google/protobuf/internal/python_edition_defaults.py +1 -1
- py2docfx/venv/venv1/Lib/site-packages/google/protobuf/internal/python_message.py +21 -18
- py2docfx/venv/venv1/Lib/site-packages/google/protobuf/internal/testing_refleaks.py +8 -2
- py2docfx/venv/venv1/Lib/site-packages/google/protobuf/internal/well_known_types.py +60 -43
- py2docfx/venv/venv1/Lib/site-packages/google/protobuf/json_format.py +4 -5
- py2docfx/venv/venv1/Lib/site-packages/google/protobuf/message_factory.py +16 -0
- py2docfx/venv/venv1/Lib/site-packages/google/protobuf/runtime_version.py +2 -2
- py2docfx/venv/venv1/Lib/site-packages/google/protobuf/source_context_pb2.py +3 -3
- py2docfx/venv/venv1/Lib/site-packages/google/protobuf/struct_pb2.py +3 -3
- py2docfx/venv/venv1/Lib/site-packages/google/protobuf/text_format.py +11 -7
- py2docfx/venv/venv1/Lib/site-packages/google/protobuf/timestamp_pb2.py +3 -3
- py2docfx/venv/venv1/Lib/site-packages/google/protobuf/type_pb2.py +3 -3
- py2docfx/venv/venv1/Lib/site-packages/google/protobuf/wrappers_pb2.py +3 -3
- py2docfx/venv/venv1/Lib/site-packages/google/rpc/error_details_pb2.py +29 -23
- py2docfx/venv/venv1/Lib/site-packages/google/rpc/error_details_pb2.pyi +41 -2
- py2docfx/venv/venv1/Lib/site-packages/msal/application.py +1 -0
- py2docfx/venv/venv1/Lib/site-packages/msal/individual_cache.py +9 -5
- py2docfx/venv/venv1/Lib/site-packages/msal/managed_identity.py +4 -5
- py2docfx/venv/venv1/Lib/site-packages/msal/sku.py +1 -1
- py2docfx/venv/venv1/Lib/site-packages/msal/throttled_http_client.py +58 -30
- py2docfx/venv/venv1/Lib/site-packages/opencensus/__init__.py +1 -1
- py2docfx/venv/venv1/Lib/site-packages/opencensus/ext/__init__.py +1 -1
- py2docfx/venv/venv1/Lib/site-packages/opencensus/ext/azure/__init__.py +1 -1
- py2docfx/venv/venv1/Lib/site-packages/opencensus/ext/azure/common/__init__.py +138 -138
- py2docfx/venv/venv1/Lib/site-packages/opencensus/ext/azure/common/exporter.py +93 -93
- py2docfx/venv/venv1/Lib/site-packages/opencensus/ext/azure/common/processor.py +63 -63
- py2docfx/venv/venv1/Lib/site-packages/opencensus/ext/azure/common/protocol.py +206 -206
- py2docfx/venv/venv1/Lib/site-packages/opencensus/ext/azure/common/storage.py +205 -205
- py2docfx/venv/venv1/Lib/site-packages/opencensus/ext/azure/common/transport.py +355 -355
- py2docfx/venv/venv1/Lib/site-packages/opencensus/ext/azure/common/utils.py +79 -79
- py2docfx/venv/venv1/Lib/site-packages/opencensus/ext/azure/common/version.py +15 -15
- py2docfx/venv/venv1/Lib/site-packages/opencensus/ext/azure/log_exporter/__init__.py +314 -314
- py2docfx/venv/venv1/Lib/site-packages/opencensus/ext/azure/metrics_exporter/__init__.py +190 -190
- py2docfx/venv/venv1/Lib/site-packages/opencensus/ext/azure/metrics_exporter/standard_metrics/__init__.py +62 -62
- py2docfx/venv/venv1/Lib/site-packages/opencensus/ext/azure/metrics_exporter/standard_metrics/cpu.py +50 -50
- py2docfx/venv/venv1/Lib/site-packages/opencensus/ext/azure/metrics_exporter/standard_metrics/http_requests.py +176 -176
- py2docfx/venv/venv1/Lib/site-packages/opencensus/ext/azure/metrics_exporter/standard_metrics/memory.py +42 -42
- py2docfx/venv/venv1/Lib/site-packages/opencensus/ext/azure/metrics_exporter/standard_metrics/process.py +87 -87
- py2docfx/venv/venv1/Lib/site-packages/opencensus/ext/azure/statsbeat/__init__.py +1 -1
- py2docfx/venv/venv1/Lib/site-packages/opencensus/ext/azure/statsbeat/state.py +50 -50
- py2docfx/venv/venv1/Lib/site-packages/opencensus/ext/azure/statsbeat/statsbeat.py +100 -100
- py2docfx/venv/venv1/Lib/site-packages/opencensus/ext/azure/statsbeat/statsbeat_metrics.py +480 -480
- py2docfx/venv/venv1/Lib/site-packages/opencensus/ext/azure/trace_exporter/__init__.py +236 -236
- py2docfx/venv/venv1/Lib/site-packages/packaging/__init__.py +1 -1
- py2docfx/venv/venv1/Lib/site-packages/packaging/_elffile.py +1 -2
- py2docfx/venv/venv1/Lib/site-packages/packaging/_manylinux.py +1 -2
- py2docfx/venv/venv1/Lib/site-packages/packaging/_parser.py +1 -2
- py2docfx/venv/venv1/Lib/site-packages/packaging/_tokenizer.py +5 -4
- py2docfx/venv/venv1/Lib/site-packages/packaging/licenses/__init__.py +1 -1
- py2docfx/venv/venv1/Lib/site-packages/packaging/markers.py +53 -22
- py2docfx/venv/venv1/Lib/site-packages/packaging/metadata.py +1 -2
- py2docfx/venv/venv1/Lib/site-packages/packaging/specifiers.py +1 -2
- py2docfx/venv/venv1/Lib/site-packages/packaging/tags.py +39 -0
- py2docfx/venv/venv1/Lib/site-packages/pkg_resources/__init__.py +6 -7
- py2docfx/venv/venv1/Lib/site-packages/requests/__version__.py +2 -2
- py2docfx/venv/venv1/Lib/site-packages/requests/compat.py +12 -0
- py2docfx/venv/venv1/Lib/site-packages/requests/models.py +3 -1
- py2docfx/venv/venv1/Lib/site-packages/requests/utils.py +6 -16
- py2docfx/venv/venv1/Lib/site-packages/rsa/__init__.py +2 -2
- py2docfx/venv/venv1/Lib/site-packages/rsa/asn1.py +52 -52
- py2docfx/venv/venv1/Lib/site-packages/rsa/cli.py +321 -321
- py2docfx/venv/venv1/Lib/site-packages/rsa/common.py +184 -184
- py2docfx/venv/venv1/Lib/site-packages/rsa/core.py +53 -53
- py2docfx/venv/venv1/Lib/site-packages/rsa/key.py +858 -858
- py2docfx/venv/venv1/Lib/site-packages/rsa/parallel.py +96 -96
- py2docfx/venv/venv1/Lib/site-packages/rsa/pem.py +134 -134
- py2docfx/venv/venv1/Lib/site-packages/rsa/pkcs1.py +485 -485
- py2docfx/venv/venv1/Lib/site-packages/rsa/pkcs1_v2.py +100 -100
- py2docfx/venv/venv1/Lib/site-packages/rsa/prime.py +198 -198
- py2docfx/venv/venv1/Lib/site-packages/rsa/py.typed +1 -1
- py2docfx/venv/venv1/Lib/site-packages/rsa/randnum.py +95 -95
- py2docfx/venv/venv1/Lib/site-packages/rsa/transform.py +72 -72
- py2docfx/venv/venv1/Lib/site-packages/rsa/util.py +97 -97
- py2docfx/venv/venv1/Lib/site-packages/setuptools/__init__.py +0 -38
- py2docfx/venv/venv1/Lib/site-packages/setuptools/_discovery.py +33 -0
- py2docfx/venv/venv1/Lib/site-packages/setuptools/_distutils/command/build_scripts.py +1 -1
- py2docfx/venv/venv1/Lib/site-packages/setuptools/_distutils/command/config.py +0 -2
- py2docfx/venv/venv1/Lib/site-packages/setuptools/_distutils/compilers/C/tests/test_unix.py +63 -0
- py2docfx/venv/venv1/Lib/site-packages/setuptools/_distutils/compilers/C/unix.py +5 -6
- py2docfx/venv/venv1/Lib/site-packages/setuptools/_entry_points.py +4 -0
- py2docfx/venv/venv1/Lib/site-packages/setuptools/_normalization.py +0 -2
- py2docfx/venv/venv1/Lib/site-packages/setuptools/_path.py +12 -3
- py2docfx/venv/venv1/Lib/site-packages/setuptools/_reqs.py +1 -1
- py2docfx/venv/venv1/Lib/site-packages/setuptools/_scripts.py +361 -0
- py2docfx/venv/venv1/Lib/site-packages/setuptools/_shutil.py +6 -0
- py2docfx/venv/venv1/Lib/site-packages/setuptools/build_meta.py +25 -37
- py2docfx/venv/venv1/Lib/site-packages/setuptools/command/bdist_egg.py +9 -11
- py2docfx/venv/venv1/Lib/site-packages/setuptools/command/bdist_wheel.py +1 -1
- py2docfx/venv/venv1/Lib/site-packages/setuptools/command/build_ext.py +29 -28
- py2docfx/venv/venv1/Lib/site-packages/setuptools/command/develop.py +39 -179
- py2docfx/venv/venv1/Lib/site-packages/setuptools/command/easy_install.py +17 -2352
- py2docfx/venv/venv1/Lib/site-packages/setuptools/command/editable_wheel.py +14 -31
- py2docfx/venv/venv1/Lib/site-packages/setuptools/command/egg_info.py +0 -2
- py2docfx/venv/venv1/Lib/site-packages/setuptools/command/install.py +3 -55
- py2docfx/venv/venv1/Lib/site-packages/setuptools/command/install_scripts.py +5 -11
- py2docfx/venv/venv1/Lib/site-packages/setuptools/command/sdist.py +1 -1
- py2docfx/venv/venv1/Lib/site-packages/setuptools/compat/py310.py +11 -0
- py2docfx/venv/venv1/Lib/site-packages/setuptools/dist.py +10 -12
- py2docfx/venv/venv1/Lib/site-packages/setuptools/installer.py +34 -29
- py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/contexts.py +0 -14
- py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/fixtures.py +235 -0
- py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/integration/test_pbr.py +20 -0
- py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/test_build_meta.py +0 -24
- py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/test_develop.py +1 -64
- py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/test_dist.py +2 -2
- py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/test_dist_info.py +0 -63
- py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/test_editable_install.py +15 -41
- py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/test_egg_info.py +3 -2
- py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/test_scripts.py +12 -0
- py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/test_wheel.py +12 -36
- py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/test_windows_wrappers.py +3 -4
- py2docfx/venv/venv1/Lib/site-packages/setuptools/wheel.py +49 -24
- py2docfx/venv/venv1/Lib/site-packages/typing_extensions.py +357 -703
- py2docfx/venv/venv1/Lib/site-packages/urllib3/_version.py +2 -2
- py2docfx/venv/venv1/Lib/site-packages/urllib3/connection.py +87 -38
- py2docfx/venv/venv1/Lib/site-packages/urllib3/contrib/emscripten/fetch.py +20 -0
- py2docfx/venv/venv1/Lib/site-packages/urllib3/poolmanager.py +17 -1
- py2docfx/venv/venv1/Lib/site-packages/urllib3/response.py +53 -24
- py2docfx/venv/venv1/Lib/site-packages/urllib3/util/request.py +12 -4
- py2docfx/venv/venv1/Lib/site-packages/urllib3/util/ssl_.py +1 -1
- {py2docfx-0.1.16.dev2064350.dist-info → py2docfx-0.1.17.dist-info}/METADATA +1 -1
- {py2docfx-0.1.16.dev2064350.dist-info → py2docfx-0.1.17.dist-info}/RECORD +374 -372
- {py2docfx-0.1.16.dev2064350.dist-info → py2docfx-0.1.17.dist-info}/WHEEL +1 -1
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/package_index.py +0 -1137
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/sandbox.py +0 -536
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/server.py +0 -86
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/test_easy_install.py +0 -1476
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/test_packageindex.py +0 -267
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/test_sandbox.py +0 -134
- py2docfx/venv/venv1/Lib/site-packages/azure/identity/_credentials/application.py +0 -119
- py2docfx/venv/venv1/Lib/site-packages/azure/identity/aio/_credentials/application.py +0 -121
- py2docfx/venv/venv1/Lib/site-packages/setuptools/package_index.py +0 -1137
- py2docfx/venv/venv1/Lib/site-packages/setuptools/sandbox.py +0 -536
- py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/server.py +0 -86
- py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/test_easy_install.py +0 -1476
- py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/test_packageindex.py +0 -267
- py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/test_sandbox.py +0 -134
- {py2docfx-0.1.16.dev2064350.dist-info → py2docfx-0.1.17.dist-info}/top_level.txt +0 -0
@@ -5,20 +5,19 @@
|
|
5
5
|
from __future__ import annotations
|
6
6
|
|
7
7
|
import abc
|
8
|
-
import typing
|
9
8
|
|
10
9
|
from cryptography import utils
|
11
|
-
from cryptography.exceptions import AlreadyFinalized
|
12
10
|
from cryptography.hazmat.bindings._rust import (
|
11
|
+
ANSIX923PaddingContext,
|
12
|
+
ANSIX923UnpaddingContext,
|
13
13
|
PKCS7PaddingContext,
|
14
14
|
PKCS7UnpaddingContext,
|
15
|
-
check_ansix923_padding,
|
16
15
|
)
|
17
16
|
|
18
17
|
|
19
18
|
class PaddingContext(metaclass=abc.ABCMeta):
|
20
19
|
@abc.abstractmethod
|
21
|
-
def update(self, data:
|
20
|
+
def update(self, data: utils.Buffer) -> bytes:
|
22
21
|
"""
|
23
22
|
Pads the provided bytes and returns any available data as bytes.
|
24
23
|
"""
|
@@ -38,74 +37,6 @@ def _byte_padding_check(block_size: int) -> None:
|
|
38
37
|
raise ValueError("block_size must be a multiple of 8.")
|
39
38
|
|
40
39
|
|
41
|
-
def _byte_padding_update(
|
42
|
-
buffer_: bytes | None, data: bytes, block_size: int
|
43
|
-
) -> tuple[bytes, bytes]:
|
44
|
-
if buffer_ is None:
|
45
|
-
raise AlreadyFinalized("Context was already finalized.")
|
46
|
-
|
47
|
-
utils._check_byteslike("data", data)
|
48
|
-
|
49
|
-
buffer_ += bytes(data)
|
50
|
-
|
51
|
-
finished_blocks = len(buffer_) // (block_size // 8)
|
52
|
-
|
53
|
-
result = buffer_[: finished_blocks * (block_size // 8)]
|
54
|
-
buffer_ = buffer_[finished_blocks * (block_size // 8) :]
|
55
|
-
|
56
|
-
return buffer_, result
|
57
|
-
|
58
|
-
|
59
|
-
def _byte_padding_pad(
|
60
|
-
buffer_: bytes | None,
|
61
|
-
block_size: int,
|
62
|
-
paddingfn: typing.Callable[[int], bytes],
|
63
|
-
) -> bytes:
|
64
|
-
if buffer_ is None:
|
65
|
-
raise AlreadyFinalized("Context was already finalized.")
|
66
|
-
|
67
|
-
pad_size = block_size // 8 - len(buffer_)
|
68
|
-
return buffer_ + paddingfn(pad_size)
|
69
|
-
|
70
|
-
|
71
|
-
def _byte_unpadding_update(
|
72
|
-
buffer_: bytes | None, data: bytes, block_size: int
|
73
|
-
) -> tuple[bytes, bytes]:
|
74
|
-
if buffer_ is None:
|
75
|
-
raise AlreadyFinalized("Context was already finalized.")
|
76
|
-
|
77
|
-
utils._check_byteslike("data", data)
|
78
|
-
|
79
|
-
buffer_ += bytes(data)
|
80
|
-
|
81
|
-
finished_blocks = max(len(buffer_) // (block_size // 8) - 1, 0)
|
82
|
-
|
83
|
-
result = buffer_[: finished_blocks * (block_size // 8)]
|
84
|
-
buffer_ = buffer_[finished_blocks * (block_size // 8) :]
|
85
|
-
|
86
|
-
return buffer_, result
|
87
|
-
|
88
|
-
|
89
|
-
def _byte_unpadding_check(
|
90
|
-
buffer_: bytes | None,
|
91
|
-
block_size: int,
|
92
|
-
checkfn: typing.Callable[[bytes], int],
|
93
|
-
) -> bytes:
|
94
|
-
if buffer_ is None:
|
95
|
-
raise AlreadyFinalized("Context was already finalized.")
|
96
|
-
|
97
|
-
if len(buffer_) != block_size // 8:
|
98
|
-
raise ValueError("Invalid padding bytes.")
|
99
|
-
|
100
|
-
valid = checkfn(buffer_)
|
101
|
-
|
102
|
-
if not valid:
|
103
|
-
raise ValueError("Invalid padding bytes.")
|
104
|
-
|
105
|
-
pad_size = buffer_[-1]
|
106
|
-
return buffer_[:-pad_size]
|
107
|
-
|
108
|
-
|
109
40
|
class PKCS7:
|
110
41
|
def __init__(self, block_size: int):
|
111
42
|
_byte_padding_check(block_size)
|
@@ -128,56 +59,11 @@ class ANSIX923:
|
|
128
59
|
self.block_size = block_size
|
129
60
|
|
130
61
|
def padder(self) -> PaddingContext:
|
131
|
-
return
|
62
|
+
return ANSIX923PaddingContext(self.block_size)
|
132
63
|
|
133
64
|
def unpadder(self) -> PaddingContext:
|
134
|
-
return
|
135
|
-
|
136
|
-
|
137
|
-
class _ANSIX923PaddingContext(PaddingContext):
|
138
|
-
_buffer: bytes | None
|
139
|
-
|
140
|
-
def __init__(self, block_size: int):
|
141
|
-
self.block_size = block_size
|
142
|
-
# TODO: more copies than necessary, we should use zero-buffer (#193)
|
143
|
-
self._buffer = b""
|
144
|
-
|
145
|
-
def update(self, data: bytes) -> bytes:
|
146
|
-
self._buffer, result = _byte_padding_update(
|
147
|
-
self._buffer, data, self.block_size
|
148
|
-
)
|
149
|
-
return result
|
65
|
+
return ANSIX923UnpaddingContext(self.block_size)
|
150
66
|
|
151
|
-
def _padding(self, size: int) -> bytes:
|
152
|
-
return bytes([0]) * (size - 1) + bytes([size])
|
153
67
|
|
154
|
-
|
155
|
-
|
156
|
-
self._buffer, self.block_size, self._padding
|
157
|
-
)
|
158
|
-
self._buffer = None
|
159
|
-
return result
|
160
|
-
|
161
|
-
|
162
|
-
class _ANSIX923UnpaddingContext(PaddingContext):
|
163
|
-
_buffer: bytes | None
|
164
|
-
|
165
|
-
def __init__(self, block_size: int):
|
166
|
-
self.block_size = block_size
|
167
|
-
# TODO: more copies than necessary, we should use zero-buffer (#193)
|
168
|
-
self._buffer = b""
|
169
|
-
|
170
|
-
def update(self, data: bytes) -> bytes:
|
171
|
-
self._buffer, result = _byte_unpadding_update(
|
172
|
-
self._buffer, data, self.block_size
|
173
|
-
)
|
174
|
-
return result
|
175
|
-
|
176
|
-
def finalize(self) -> bytes:
|
177
|
-
result = _byte_unpadding_check(
|
178
|
-
self._buffer,
|
179
|
-
self.block_size,
|
180
|
-
check_ansix923_padding,
|
181
|
-
)
|
182
|
-
self._buffer = None
|
183
|
-
return result
|
68
|
+
PaddingContext.register(ANSIX923PaddingContext)
|
69
|
+
PaddingContext.register(ANSIX923UnpaddingContext)
|
py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/primitives/serialization/__init__.py
CHANGED
@@ -33,6 +33,7 @@ from cryptography.hazmat.primitives.serialization.ssh import (
|
|
33
33
|
load_ssh_private_key,
|
34
34
|
load_ssh_public_identity,
|
35
35
|
load_ssh_public_key,
|
36
|
+
ssh_key_fingerprint,
|
36
37
|
)
|
37
38
|
|
38
39
|
__all__ = [
|
@@ -60,4 +61,5 @@ __all__ = [
|
|
60
61
|
"load_ssh_private_key",
|
61
62
|
"load_ssh_public_identity",
|
62
63
|
"load_ssh_public_key",
|
64
|
+
"ssh_key_fingerprint",
|
63
65
|
]
|
py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/primitives/serialization/pkcs12.py
CHANGED
@@ -5,6 +5,7 @@
|
|
5
5
|
from __future__ import annotations
|
6
6
|
|
7
7
|
import typing
|
8
|
+
from collections.abc import Iterable
|
8
9
|
|
9
10
|
from cryptography import x509
|
10
11
|
from cryptography.hazmat.bindings._rust import pkcs12 as rust_pkcs12
|
@@ -26,6 +27,7 @@ __all__ = [
|
|
26
27
|
"PKCS12PrivateKeyTypes",
|
27
28
|
"load_key_and_certificates",
|
28
29
|
"load_pkcs12",
|
30
|
+
"serialize_java_truststore",
|
29
31
|
"serialize_key_and_certificates",
|
30
32
|
]
|
31
33
|
|
@@ -118,11 +120,29 @@ _PKCS12CATypes = typing.Union[
|
|
118
120
|
]
|
119
121
|
|
120
122
|
|
123
|
+
def serialize_java_truststore(
|
124
|
+
certs: Iterable[PKCS12Certificate],
|
125
|
+
encryption_algorithm: serialization.KeySerializationEncryption,
|
126
|
+
) -> bytes:
|
127
|
+
if not certs:
|
128
|
+
raise ValueError("You must supply at least one cert")
|
129
|
+
|
130
|
+
if not isinstance(
|
131
|
+
encryption_algorithm, serialization.KeySerializationEncryption
|
132
|
+
):
|
133
|
+
raise TypeError(
|
134
|
+
"Key encryption algorithm must be a "
|
135
|
+
"KeySerializationEncryption instance"
|
136
|
+
)
|
137
|
+
|
138
|
+
return rust_pkcs12.serialize_java_truststore(certs, encryption_algorithm)
|
139
|
+
|
140
|
+
|
121
141
|
def serialize_key_and_certificates(
|
122
142
|
name: bytes | None,
|
123
143
|
key: PKCS12PrivateKeyTypes | None,
|
124
144
|
cert: x509.Certificate | None,
|
125
|
-
cas:
|
145
|
+
cas: Iterable[_PKCS12CATypes] | None,
|
126
146
|
encryption_algorithm: serialization.KeySerializationEncryption,
|
127
147
|
) -> bytes:
|
128
148
|
if key is not None and not isinstance(
|
@@ -10,12 +10,16 @@ import email.message
|
|
10
10
|
import email.policy
|
11
11
|
import io
|
12
12
|
import typing
|
13
|
+
from collections.abc import Iterable
|
13
14
|
|
14
15
|
from cryptography import utils, x509
|
15
16
|
from cryptography.exceptions import UnsupportedAlgorithm, _Reasons
|
16
17
|
from cryptography.hazmat.bindings._rust import pkcs7 as rust_pkcs7
|
17
18
|
from cryptography.hazmat.primitives import hashes, serialization
|
18
19
|
from cryptography.hazmat.primitives.asymmetric import ec, padding, rsa
|
20
|
+
from cryptography.hazmat.primitives.ciphers import (
|
21
|
+
algorithms,
|
22
|
+
)
|
19
23
|
from cryptography.utils import _check_byteslike
|
20
24
|
|
21
25
|
load_pem_pkcs7_certificates = rust_pkcs7.load_pem_pkcs7_certificates
|
@@ -35,6 +39,10 @@ PKCS7PrivateKeyTypes = typing.Union[
|
|
35
39
|
rsa.RSAPrivateKey, ec.EllipticCurvePrivateKey
|
36
40
|
]
|
37
41
|
|
42
|
+
ContentEncryptionAlgorithm = typing.Union[
|
43
|
+
typing.Type[algorithms.AES128], typing.Type[algorithms.AES256]
|
44
|
+
]
|
45
|
+
|
38
46
|
|
39
47
|
class PKCS7Options(utils.Enum):
|
40
48
|
Text = "Add text/plain MIME type"
|
@@ -48,7 +56,7 @@ class PKCS7Options(utils.Enum):
|
|
48
56
|
class PKCS7SignatureBuilder:
|
49
57
|
def __init__(
|
50
58
|
self,
|
51
|
-
data:
|
59
|
+
data: utils.Buffer | None = None,
|
52
60
|
signers: list[
|
53
61
|
tuple[
|
54
62
|
x509.Certificate,
|
@@ -63,7 +71,7 @@ class PKCS7SignatureBuilder:
|
|
63
71
|
self._signers = signers
|
64
72
|
self._additional_certs = additional_certs
|
65
73
|
|
66
|
-
def set_data(self, data:
|
74
|
+
def set_data(self, data: utils.Buffer) -> PKCS7SignatureBuilder:
|
67
75
|
_check_byteslike("data", data)
|
68
76
|
if self._data is not None:
|
69
77
|
raise ValueError("data may only be set once")
|
@@ -126,7 +134,7 @@ class PKCS7SignatureBuilder:
|
|
126
134
|
def sign(
|
127
135
|
self,
|
128
136
|
encoding: serialization.Encoding,
|
129
|
-
options:
|
137
|
+
options: Iterable[PKCS7Options],
|
130
138
|
backend: typing.Any = None,
|
131
139
|
) -> bytes:
|
132
140
|
if len(self._signers) == 0:
|
@@ -184,6 +192,8 @@ class PKCS7EnvelopeBuilder:
|
|
184
192
|
*,
|
185
193
|
_data: bytes | None = None,
|
186
194
|
_recipients: list[x509.Certificate] | None = None,
|
195
|
+
_content_encryption_algorithm: ContentEncryptionAlgorithm
|
196
|
+
| None = None,
|
187
197
|
):
|
188
198
|
from cryptography.hazmat.backends.openssl.backend import (
|
189
199
|
backend as ossl,
|
@@ -197,13 +207,18 @@ class PKCS7EnvelopeBuilder:
|
|
197
207
|
)
|
198
208
|
self._data = _data
|
199
209
|
self._recipients = _recipients if _recipients is not None else []
|
210
|
+
self._content_encryption_algorithm = _content_encryption_algorithm
|
200
211
|
|
201
212
|
def set_data(self, data: bytes) -> PKCS7EnvelopeBuilder:
|
202
213
|
_check_byteslike("data", data)
|
203
214
|
if self._data is not None:
|
204
215
|
raise ValueError("data may only be set once")
|
205
216
|
|
206
|
-
return PKCS7EnvelopeBuilder(
|
217
|
+
return PKCS7EnvelopeBuilder(
|
218
|
+
_data=data,
|
219
|
+
_recipients=self._recipients,
|
220
|
+
_content_encryption_algorithm=self._content_encryption_algorithm,
|
221
|
+
)
|
207
222
|
|
208
223
|
def add_recipient(
|
209
224
|
self,
|
@@ -221,17 +236,42 @@ class PKCS7EnvelopeBuilder:
|
|
221
236
|
*self._recipients,
|
222
237
|
certificate,
|
223
238
|
],
|
239
|
+
_content_encryption_algorithm=self._content_encryption_algorithm,
|
240
|
+
)
|
241
|
+
|
242
|
+
def set_content_encryption_algorithm(
|
243
|
+
self, content_encryption_algorithm: ContentEncryptionAlgorithm
|
244
|
+
) -> PKCS7EnvelopeBuilder:
|
245
|
+
if self._content_encryption_algorithm is not None:
|
246
|
+
raise ValueError("Content encryption algo may only be set once")
|
247
|
+
if content_encryption_algorithm not in {
|
248
|
+
algorithms.AES128,
|
249
|
+
algorithms.AES256,
|
250
|
+
}:
|
251
|
+
raise TypeError("Only AES128 and AES256 are supported")
|
252
|
+
|
253
|
+
return PKCS7EnvelopeBuilder(
|
254
|
+
_data=self._data,
|
255
|
+
_recipients=self._recipients,
|
256
|
+
_content_encryption_algorithm=content_encryption_algorithm,
|
224
257
|
)
|
225
258
|
|
226
259
|
def encrypt(
|
227
260
|
self,
|
228
261
|
encoding: serialization.Encoding,
|
229
|
-
options:
|
262
|
+
options: Iterable[PKCS7Options],
|
230
263
|
) -> bytes:
|
231
264
|
if len(self._recipients) == 0:
|
232
265
|
raise ValueError("Must have at least one recipient")
|
233
266
|
if self._data is None:
|
234
267
|
raise ValueError("You must add data to encrypt")
|
268
|
+
|
269
|
+
# The default content encryption algorithm is AES-128, which the S/MIME
|
270
|
+
# v3.2 RFC specifies as MUST support (https://datatracker.ietf.org/doc/html/rfc5751#section-2.7)
|
271
|
+
content_encryption_algorithm = (
|
272
|
+
self._content_encryption_algorithm or algorithms.AES128
|
273
|
+
)
|
274
|
+
|
235
275
|
options = list(options)
|
236
276
|
if not all(isinstance(x, PKCS7Options) for x in options):
|
237
277
|
raise ValueError("options must be from the PKCS7Options enum")
|
@@ -260,7 +300,9 @@ class PKCS7EnvelopeBuilder:
|
|
260
300
|
"Cannot use Binary and Text options at the same time"
|
261
301
|
)
|
262
302
|
|
263
|
-
return rust_pkcs7.encrypt_and_serialize(
|
303
|
+
return rust_pkcs7.encrypt_and_serialize(
|
304
|
+
self, content_encryption_algorithm, encoding, options
|
305
|
+
)
|
264
306
|
|
265
307
|
|
266
308
|
pkcs7_decrypt_der = rust_pkcs7.decrypt_der
|
@@ -169,20 +169,20 @@ def _ecdsa_key_type(public_key: ec.EllipticCurvePublicKey) -> bytes:
|
|
169
169
|
|
170
170
|
|
171
171
|
def _ssh_pem_encode(
|
172
|
-
data:
|
172
|
+
data: utils.Buffer,
|
173
173
|
prefix: bytes = _SK_START + b"\n",
|
174
174
|
suffix: bytes = _SK_END + b"\n",
|
175
175
|
) -> bytes:
|
176
176
|
return b"".join([prefix, _base64_encode(data), suffix])
|
177
177
|
|
178
178
|
|
179
|
-
def _check_block_size(data:
|
179
|
+
def _check_block_size(data: utils.Buffer, block_len: int) -> None:
|
180
180
|
"""Require data to be full blocks"""
|
181
181
|
if not data or len(data) % block_len != 0:
|
182
182
|
raise ValueError("Corrupt data: missing padding")
|
183
183
|
|
184
184
|
|
185
|
-
def _check_empty(data:
|
185
|
+
def _check_empty(data: utils.Buffer) -> None:
|
186
186
|
"""All data should have been parsed."""
|
187
187
|
if data:
|
188
188
|
raise ValueError("Corrupt data: unparsed data")
|
@@ -196,7 +196,9 @@ def _init_cipher(
|
|
196
196
|
) -> Cipher[modes.CBC | modes.CTR | modes.GCM]:
|
197
197
|
"""Generate key + iv and return cipher."""
|
198
198
|
if not password:
|
199
|
-
raise
|
199
|
+
raise TypeError(
|
200
|
+
"Key is password-protected, but password was not provided."
|
201
|
+
)
|
200
202
|
|
201
203
|
ciph = _SSH_CIPHERS[ciphername]
|
202
204
|
seed = _bcrypt_kdf(
|
@@ -251,14 +253,14 @@ def _to_mpint(val: int) -> bytes:
|
|
251
253
|
class _FragList:
|
252
254
|
"""Build recursive structure without data copy."""
|
253
255
|
|
254
|
-
flist: list[
|
256
|
+
flist: list[utils.Buffer]
|
255
257
|
|
256
|
-
def __init__(self, init: list[
|
258
|
+
def __init__(self, init: list[utils.Buffer] | None = None) -> None:
|
257
259
|
self.flist = []
|
258
260
|
if init:
|
259
261
|
self.flist.extend(init)
|
260
262
|
|
261
|
-
def put_raw(self, val:
|
263
|
+
def put_raw(self, val: utils.Buffer) -> None:
|
262
264
|
"""Add plain bytes"""
|
263
265
|
self.flist.append(val)
|
264
266
|
|
@@ -329,7 +331,7 @@ class _SSHFormatRSA:
|
|
329
331
|
return public_key, data
|
330
332
|
|
331
333
|
def load_private(
|
332
|
-
self, data: memoryview, pubfields
|
334
|
+
self, data: memoryview, pubfields, unsafe_skip_rsa_key_validation: bool
|
333
335
|
) -> tuple[rsa.RSAPrivateKey, memoryview]:
|
334
336
|
"""Make RSA private key from data."""
|
335
337
|
n, data = _get_mpint(data)
|
@@ -347,7 +349,9 @@ class _SSHFormatRSA:
|
|
347
349
|
private_numbers = rsa.RSAPrivateNumbers(
|
348
350
|
p, q, d, dmp1, dmq1, iqmp, public_numbers
|
349
351
|
)
|
350
|
-
private_key = private_numbers.private_key(
|
352
|
+
private_key = private_numbers.private_key(
|
353
|
+
unsafe_skip_rsa_key_validation=unsafe_skip_rsa_key_validation
|
354
|
+
)
|
351
355
|
return private_key, data
|
352
356
|
|
353
357
|
def encode_public(
|
@@ -403,7 +407,7 @@ class _SSHFormatDSA:
|
|
403
407
|
return public_key, data
|
404
408
|
|
405
409
|
def load_private(
|
406
|
-
self, data: memoryview, pubfields
|
410
|
+
self, data: memoryview, pubfields, unsafe_skip_rsa_key_validation: bool
|
407
411
|
) -> tuple[dsa.DSAPrivateKey, memoryview]:
|
408
412
|
"""Make DSA private key from data."""
|
409
413
|
(p, q, g, y), data = self.get_public(data)
|
@@ -483,7 +487,7 @@ class _SSHFormatECDSA:
|
|
483
487
|
return public_key, data
|
484
488
|
|
485
489
|
def load_private(
|
486
|
-
self, data: memoryview, pubfields
|
490
|
+
self, data: memoryview, pubfields, unsafe_skip_rsa_key_validation: bool
|
487
491
|
) -> tuple[ec.EllipticCurvePrivateKey, memoryview]:
|
488
492
|
"""Make ECDSA private key from data."""
|
489
493
|
(curve_name, point), data = self.get_public(data)
|
@@ -543,7 +547,7 @@ class _SSHFormatEd25519:
|
|
543
547
|
return public_key, data
|
544
548
|
|
545
549
|
def load_private(
|
546
|
-
self, data: memoryview, pubfields
|
550
|
+
self, data: memoryview, pubfields, unsafe_skip_rsa_key_validation: bool
|
547
551
|
) -> tuple[ed25519.Ed25519PrivateKey, memoryview]:
|
548
552
|
"""Make Ed25519 private key from data."""
|
549
553
|
(point,), data = self.get_public(data)
|
@@ -612,6 +616,13 @@ class _SSHFormatSKEd25519:
|
|
612
616
|
_, data = load_application(data)
|
613
617
|
return public_key, data
|
614
618
|
|
619
|
+
def get_public(self, data: memoryview) -> typing.NoReturn:
|
620
|
+
# Confusingly `get_public` is an entry point used by private key
|
621
|
+
# loading.
|
622
|
+
raise UnsupportedAlgorithm(
|
623
|
+
"sk-ssh-ed25519 private keys cannot be loaded"
|
624
|
+
)
|
625
|
+
|
615
626
|
|
616
627
|
class _SSHFormatSKECDSA:
|
617
628
|
"""
|
@@ -631,6 +642,13 @@ class _SSHFormatSKECDSA:
|
|
631
642
|
_, data = load_application(data)
|
632
643
|
return public_key, data
|
633
644
|
|
645
|
+
def get_public(self, data: memoryview) -> typing.NoReturn:
|
646
|
+
# Confusingly `get_public` is an entry point used by private key
|
647
|
+
# loading.
|
648
|
+
raise UnsupportedAlgorithm(
|
649
|
+
"sk-ecdsa-sha2-nistp256 private keys cannot be loaded"
|
650
|
+
)
|
651
|
+
|
634
652
|
|
635
653
|
_KEY_FORMATS = {
|
636
654
|
_SSH_RSA: _SSHFormatRSA(),
|
@@ -644,7 +662,7 @@ _KEY_FORMATS = {
|
|
644
662
|
}
|
645
663
|
|
646
664
|
|
647
|
-
def _lookup_kformat(key_type:
|
665
|
+
def _lookup_kformat(key_type: utils.Buffer):
|
648
666
|
"""Return valid format or throw error"""
|
649
667
|
if not isinstance(key_type, bytes):
|
650
668
|
key_type = memoryview(key_type).tobytes()
|
@@ -662,9 +680,11 @@ SSHPrivateKeyTypes = typing.Union[
|
|
662
680
|
|
663
681
|
|
664
682
|
def load_ssh_private_key(
|
665
|
-
data:
|
683
|
+
data: utils.Buffer,
|
666
684
|
password: bytes | None,
|
667
685
|
backend: typing.Any = None,
|
686
|
+
*,
|
687
|
+
unsafe_skip_rsa_key_validation: bool = False,
|
668
688
|
) -> SSHPrivateKeyTypes:
|
669
689
|
"""Load private key from OpenSSH custom encoding."""
|
670
690
|
utils._check_byteslike("data", data)
|
@@ -696,7 +716,7 @@ def load_ssh_private_key(
|
|
696
716
|
pubfields, pubdata = kformat.get_public(pubdata)
|
697
717
|
_check_empty(pubdata)
|
698
718
|
|
699
|
-
if
|
719
|
+
if ciphername != _NONE or kdfname != _NONE:
|
700
720
|
ciphername_bytes = ciphername.tobytes()
|
701
721
|
if ciphername_bytes not in _SSH_CIPHERS:
|
702
722
|
raise UnsupportedAlgorithm(
|
@@ -731,6 +751,10 @@ def load_ssh_private_key(
|
|
731
751
|
# should be no output from finalize
|
732
752
|
_check_empty(dec.finalize())
|
733
753
|
else:
|
754
|
+
if password:
|
755
|
+
raise TypeError(
|
756
|
+
"Password was given but private key is not encrypted."
|
757
|
+
)
|
734
758
|
# load secret data
|
735
759
|
edata, data = _get_sshstr(data)
|
736
760
|
_check_empty(data)
|
@@ -745,7 +769,11 @@ def load_ssh_private_key(
|
|
745
769
|
key_type, edata = _get_sshstr(edata)
|
746
770
|
if key_type != pub_key_type:
|
747
771
|
raise ValueError("Corrupt data: key type mismatch")
|
748
|
-
private_key, edata = kformat.load_private(
|
772
|
+
private_key, edata = kformat.load_private(
|
773
|
+
edata,
|
774
|
+
pubfields,
|
775
|
+
unsafe_skip_rsa_key_validation=unsafe_skip_rsa_key_validation,
|
776
|
+
)
|
749
777
|
# We don't use the comment
|
750
778
|
_, edata = _get_sshstr(edata)
|
751
779
|
|
@@ -1001,7 +1029,7 @@ def _get_ec_hash_alg(curve: ec.EllipticCurve) -> hashes.HashAlgorithm:
|
|
1001
1029
|
|
1002
1030
|
|
1003
1031
|
def _load_ssh_public_identity(
|
1004
|
-
data:
|
1032
|
+
data: utils.Buffer,
|
1005
1033
|
_legacy_dsa_allowed=False,
|
1006
1034
|
) -> SSHCertificate | SSHPublicKeyTypes:
|
1007
1035
|
utils._check_byteslike("data", data)
|
@@ -1121,8 +1149,30 @@ def _parse_exts_opts(exts_opts: memoryview) -> dict[bytes, bytes]:
|
|
1121
1149
|
return result
|
1122
1150
|
|
1123
1151
|
|
1152
|
+
def ssh_key_fingerprint(
|
1153
|
+
key: SSHPublicKeyTypes,
|
1154
|
+
hash_algorithm: hashes.MD5 | hashes.SHA256,
|
1155
|
+
) -> bytes:
|
1156
|
+
if not isinstance(hash_algorithm, (hashes.MD5, hashes.SHA256)):
|
1157
|
+
raise TypeError("hash_algorithm must be either MD5 or SHA256")
|
1158
|
+
|
1159
|
+
key_type = _get_ssh_key_type(key)
|
1160
|
+
kformat = _lookup_kformat(key_type)
|
1161
|
+
|
1162
|
+
f_pub = _FragList()
|
1163
|
+
f_pub.put_sshstr(key_type)
|
1164
|
+
kformat.encode_public(key, f_pub)
|
1165
|
+
|
1166
|
+
ssh_binary_data = f_pub.tobytes()
|
1167
|
+
|
1168
|
+
# Hash the binary data
|
1169
|
+
hash_obj = hashes.Hash(hash_algorithm)
|
1170
|
+
hash_obj.update(ssh_binary_data)
|
1171
|
+
return hash_obj.finalize()
|
1172
|
+
|
1173
|
+
|
1124
1174
|
def load_ssh_public_key(
|
1125
|
-
data:
|
1175
|
+
data: utils.Buffer, backend: typing.Any = None
|
1126
1176
|
) -> SSHPublicKeyTypes:
|
1127
1177
|
cert_or_key = _load_ssh_public_identity(data, _legacy_dsa_allowed=True)
|
1128
1178
|
public_key: SSHPublicKeyTypes
|
@@ -11,6 +11,7 @@ from urllib.parse import quote, urlencode
|
|
11
11
|
from cryptography.hazmat.primitives import constant_time, hmac
|
12
12
|
from cryptography.hazmat.primitives.hashes import SHA1, SHA256, SHA512
|
13
13
|
from cryptography.hazmat.primitives.twofactor import InvalidToken
|
14
|
+
from cryptography.utils import Buffer
|
14
15
|
|
15
16
|
HOTPHashTypes = typing.Union[SHA1, SHA256, SHA512]
|
16
17
|
|
@@ -44,7 +45,7 @@ def _generate_uri(
|
|
44
45
|
class HOTP:
|
45
46
|
def __init__(
|
46
47
|
self,
|
47
|
-
key:
|
48
|
+
key: Buffer,
|
48
49
|
length: int,
|
49
50
|
algorithm: HOTPHashTypes,
|
50
51
|
backend: typing.Any = None,
|
@@ -84,7 +85,7 @@ class HOTP:
|
|
84
85
|
try:
|
85
86
|
ctx.update(counter.to_bytes(length=8, byteorder="big"))
|
86
87
|
except OverflowError:
|
87
|
-
raise ValueError(f"Counter must be between 0 and {2
|
88
|
+
raise ValueError(f"Counter must be between 0 and {2**64 - 1}.")
|
88
89
|
|
89
90
|
hmac_value = ctx.finalize()
|
90
91
|
|
@@ -13,12 +13,13 @@ from cryptography.hazmat.primitives.twofactor.hotp import (
|
|
13
13
|
HOTPHashTypes,
|
14
14
|
_generate_uri,
|
15
15
|
)
|
16
|
+
from cryptography.utils import Buffer
|
16
17
|
|
17
18
|
|
18
19
|
class TOTP:
|
19
20
|
def __init__(
|
20
21
|
self,
|
21
|
-
key:
|
22
|
+
key: Buffer,
|
22
23
|
length: int,
|
23
24
|
algorithm: HOTPHashTypes,
|
24
25
|
time_step: int,
|
@@ -9,6 +9,7 @@ import sys
|
|
9
9
|
import types
|
10
10
|
import typing
|
11
11
|
import warnings
|
12
|
+
from collections.abc import Callable, Sequence
|
12
13
|
|
13
14
|
|
14
15
|
# We use a UserWarning subclass, instead of DeprecationWarning, because CPython
|
@@ -26,6 +27,17 @@ DeprecatedIn40 = CryptographyDeprecationWarning
|
|
26
27
|
DeprecatedIn41 = CryptographyDeprecationWarning
|
27
28
|
DeprecatedIn42 = CryptographyDeprecationWarning
|
28
29
|
DeprecatedIn43 = CryptographyDeprecationWarning
|
30
|
+
DeprecatedIn45 = CryptographyDeprecationWarning
|
31
|
+
|
32
|
+
|
33
|
+
# If you're wondering why we don't use `Buffer`, it's because `Buffer` would
|
34
|
+
# be more accurately named: Bufferable. It means something which has an
|
35
|
+
# `__buffer__`. Which means you can't actually treat the result as a buffer
|
36
|
+
# (and do things like take a `len()`).
|
37
|
+
if sys.version_info >= (3, 9):
|
38
|
+
Buffer = typing.Union[bytes, bytearray, memoryview]
|
39
|
+
else:
|
40
|
+
Buffer = typing.ByteString
|
29
41
|
|
30
42
|
|
31
43
|
def _check_bytes(name: str, value: bytes) -> None:
|
@@ -33,7 +45,7 @@ def _check_bytes(name: str, value: bytes) -> None:
|
|
33
45
|
raise TypeError(f"{name} must be bytes")
|
34
46
|
|
35
47
|
|
36
|
-
def _check_byteslike(name: str, value:
|
48
|
+
def _check_byteslike(name: str, value: Buffer) -> None:
|
37
49
|
try:
|
38
50
|
memoryview(value)
|
39
51
|
except TypeError:
|
@@ -81,7 +93,7 @@ class _ModuleWithDeprecations(types.ModuleType):
|
|
81
93
|
|
82
94
|
delattr(self._module, attr)
|
83
95
|
|
84
|
-
def __dir__(self) ->
|
96
|
+
def __dir__(self) -> Sequence[str]:
|
85
97
|
return ["_module", *dir(self._module)]
|
86
98
|
|
87
99
|
|
@@ -102,7 +114,7 @@ def deprecated(
|
|
102
114
|
return dv
|
103
115
|
|
104
116
|
|
105
|
-
def cached_property(func:
|
117
|
+
def cached_property(func: Callable) -> property:
|
106
118
|
cached_name = f"_cached_{func}"
|
107
119
|
sentinel = object()
|
108
120
|
|
@@ -66,6 +66,7 @@ from cryptography.x509.extensions import (
|
|
66
66
|
PolicyInformation,
|
67
67
|
PrecertificateSignedCertificateTimestamps,
|
68
68
|
PrecertPoison,
|
69
|
+
PrivateKeyUsagePeriod,
|
69
70
|
ProfessionInfo,
|
70
71
|
ReasonFlags,
|
71
72
|
SignedCertificateTimestamps,
|
@@ -115,6 +116,7 @@ OID_FRESHEST_CRL = ExtensionOID.FRESHEST_CRL
|
|
115
116
|
OID_INHIBIT_ANY_POLICY = ExtensionOID.INHIBIT_ANY_POLICY
|
116
117
|
OID_ISSUER_ALTERNATIVE_NAME = ExtensionOID.ISSUER_ALTERNATIVE_NAME
|
117
118
|
OID_KEY_USAGE = ExtensionOID.KEY_USAGE
|
119
|
+
OID_PRIVATE_KEY_USAGE_PERIOD = ExtensionOID.PRIVATE_KEY_USAGE_PERIOD
|
118
120
|
OID_NAME_CONSTRAINTS = ExtensionOID.NAME_CONSTRAINTS
|
119
121
|
OID_OCSP_NO_CHECK = ExtensionOID.OCSP_NO_CHECK
|
120
122
|
OID_POLICY_CONSTRAINTS = ExtensionOID.POLICY_CONSTRAINTS
|
@@ -233,6 +235,7 @@ __all__ = [
|
|
233
235
|
"PolicyInformation",
|
234
236
|
"PrecertPoison",
|
235
237
|
"PrecertificateSignedCertificateTimestamps",
|
238
|
+
"PrivateKeyUsagePeriod",
|
236
239
|
"ProfessionInfo",
|
237
240
|
"PublicKeyAlgorithmOID",
|
238
241
|
"RFC822Name",
|