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
@@ -1,100 +1,100 @@
|
|
1
|
-
# Copyright 2011 Sybren A. Stüvel <sybren@stuvel.eu>
|
2
|
-
#
|
3
|
-
# Licensed under the Apache License, Version 2.0 (the "License");
|
4
|
-
# you may not use this file except in compliance with the License.
|
5
|
-
# You may obtain a copy of the License at
|
6
|
-
#
|
7
|
-
# https://www.apache.org/licenses/LICENSE-2.0
|
8
|
-
#
|
9
|
-
# Unless required by applicable law or agreed to in writing, software
|
10
|
-
# distributed under the License is distributed on an "AS IS" BASIS,
|
11
|
-
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
12
|
-
# See the License for the specific language governing permissions and
|
13
|
-
# limitations under the License.
|
14
|
-
|
15
|
-
"""Functions for PKCS#1 version 2 encryption and signing
|
16
|
-
|
17
|
-
This module implements certain functionality from PKCS#1 version 2. Main
|
18
|
-
documentation is RFC 2437: https://tools.ietf.org/html/rfc2437
|
19
|
-
"""
|
20
|
-
|
21
|
-
from rsa import (
|
22
|
-
common,
|
23
|
-
pkcs1,
|
24
|
-
transform,
|
25
|
-
)
|
26
|
-
|
27
|
-
|
28
|
-
def mgf1(seed: bytes, length: int, hasher: str = "SHA-1") -> bytes:
|
29
|
-
"""
|
30
|
-
MGF1 is a Mask Generation Function based on a hash function.
|
31
|
-
|
32
|
-
A mask generation function takes an octet string of variable length and a
|
33
|
-
desired output length as input, and outputs an octet string of the desired
|
34
|
-
length. The plaintext-awareness of RSAES-OAEP relies on the random nature of
|
35
|
-
the output of the mask generation function, which in turn relies on the
|
36
|
-
random nature of the underlying hash.
|
37
|
-
|
38
|
-
:param bytes seed: seed from which mask is generated, an octet string
|
39
|
-
:param int length: intended length in octets of the mask, at most 2^32(hLen)
|
40
|
-
:param str hasher: hash function (hLen denotes the length in octets of the hash
|
41
|
-
function output)
|
42
|
-
|
43
|
-
:return: mask, an octet string of length `length`
|
44
|
-
:rtype: bytes
|
45
|
-
|
46
|
-
:raise OverflowError: when `length` is too large for the specified `hasher`
|
47
|
-
:raise ValueError: when specified `hasher` is invalid
|
48
|
-
"""
|
49
|
-
|
50
|
-
try:
|
51
|
-
hash_length = pkcs1.HASH_METHODS[hasher]().digest_size
|
52
|
-
except KeyError as ex:
|
53
|
-
raise ValueError(
|
54
|
-
"Invalid `hasher` specified. Please select one of: {hash_list}".format(
|
55
|
-
hash_list=", ".join(sorted(pkcs1.HASH_METHODS.keys()))
|
56
|
-
)
|
57
|
-
) from ex
|
58
|
-
|
59
|
-
# If l > 2^32(hLen), output "mask too long" and stop.
|
60
|
-
if length > (2 ** 32 * hash_length):
|
61
|
-
raise OverflowError(
|
62
|
-
"Desired length should be at most 2**32 times the hasher's output "
|
63
|
-
"length ({hash_length} for {hasher} function)".format(
|
64
|
-
hash_length=hash_length,
|
65
|
-
hasher=hasher,
|
66
|
-
)
|
67
|
-
)
|
68
|
-
|
69
|
-
# Looping `counter` from 0 to ceil(l / hLen)-1, build `output` based on the
|
70
|
-
# hashes formed by (`seed` + C), being `C` an octet string of length 4
|
71
|
-
# generated by converting `counter` with the primitive I2OSP
|
72
|
-
output = b"".join(
|
73
|
-
pkcs1.compute_hash(
|
74
|
-
seed + transform.int2bytes(counter, fill_size=4),
|
75
|
-
method_name=hasher,
|
76
|
-
)
|
77
|
-
for counter in range(common.ceil_div(length, hash_length) + 1)
|
78
|
-
)
|
79
|
-
|
80
|
-
# Output the leading `length` octets of `output` as the octet string mask.
|
81
|
-
return output[:length]
|
82
|
-
|
83
|
-
|
84
|
-
__all__ = [
|
85
|
-
"mgf1",
|
86
|
-
]
|
87
|
-
|
88
|
-
if __name__ == "__main__":
|
89
|
-
print("Running doctests 1000x or until failure")
|
90
|
-
import doctest
|
91
|
-
|
92
|
-
for count in range(1000):
|
93
|
-
(failures, tests) = doctest.testmod()
|
94
|
-
if failures:
|
95
|
-
break
|
96
|
-
|
97
|
-
if count % 100 == 0 and count:
|
98
|
-
print("%i times" % count)
|
99
|
-
|
100
|
-
print("Doctests done")
|
1
|
+
# Copyright 2011 Sybren A. Stüvel <sybren@stuvel.eu>
|
2
|
+
#
|
3
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
4
|
+
# you may not use this file except in compliance with the License.
|
5
|
+
# You may obtain a copy of the License at
|
6
|
+
#
|
7
|
+
# https://www.apache.org/licenses/LICENSE-2.0
|
8
|
+
#
|
9
|
+
# Unless required by applicable law or agreed to in writing, software
|
10
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
11
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
12
|
+
# See the License for the specific language governing permissions and
|
13
|
+
# limitations under the License.
|
14
|
+
|
15
|
+
"""Functions for PKCS#1 version 2 encryption and signing
|
16
|
+
|
17
|
+
This module implements certain functionality from PKCS#1 version 2. Main
|
18
|
+
documentation is RFC 2437: https://tools.ietf.org/html/rfc2437
|
19
|
+
"""
|
20
|
+
|
21
|
+
from rsa import (
|
22
|
+
common,
|
23
|
+
pkcs1,
|
24
|
+
transform,
|
25
|
+
)
|
26
|
+
|
27
|
+
|
28
|
+
def mgf1(seed: bytes, length: int, hasher: str = "SHA-1") -> bytes:
|
29
|
+
"""
|
30
|
+
MGF1 is a Mask Generation Function based on a hash function.
|
31
|
+
|
32
|
+
A mask generation function takes an octet string of variable length and a
|
33
|
+
desired output length as input, and outputs an octet string of the desired
|
34
|
+
length. The plaintext-awareness of RSAES-OAEP relies on the random nature of
|
35
|
+
the output of the mask generation function, which in turn relies on the
|
36
|
+
random nature of the underlying hash.
|
37
|
+
|
38
|
+
:param bytes seed: seed from which mask is generated, an octet string
|
39
|
+
:param int length: intended length in octets of the mask, at most 2^32(hLen)
|
40
|
+
:param str hasher: hash function (hLen denotes the length in octets of the hash
|
41
|
+
function output)
|
42
|
+
|
43
|
+
:return: mask, an octet string of length `length`
|
44
|
+
:rtype: bytes
|
45
|
+
|
46
|
+
:raise OverflowError: when `length` is too large for the specified `hasher`
|
47
|
+
:raise ValueError: when specified `hasher` is invalid
|
48
|
+
"""
|
49
|
+
|
50
|
+
try:
|
51
|
+
hash_length = pkcs1.HASH_METHODS[hasher]().digest_size
|
52
|
+
except KeyError as ex:
|
53
|
+
raise ValueError(
|
54
|
+
"Invalid `hasher` specified. Please select one of: {hash_list}".format(
|
55
|
+
hash_list=", ".join(sorted(pkcs1.HASH_METHODS.keys()))
|
56
|
+
)
|
57
|
+
) from ex
|
58
|
+
|
59
|
+
# If l > 2^32(hLen), output "mask too long" and stop.
|
60
|
+
if length > (2 ** 32 * hash_length):
|
61
|
+
raise OverflowError(
|
62
|
+
"Desired length should be at most 2**32 times the hasher's output "
|
63
|
+
"length ({hash_length} for {hasher} function)".format(
|
64
|
+
hash_length=hash_length,
|
65
|
+
hasher=hasher,
|
66
|
+
)
|
67
|
+
)
|
68
|
+
|
69
|
+
# Looping `counter` from 0 to ceil(l / hLen)-1, build `output` based on the
|
70
|
+
# hashes formed by (`seed` + C), being `C` an octet string of length 4
|
71
|
+
# generated by converting `counter` with the primitive I2OSP
|
72
|
+
output = b"".join(
|
73
|
+
pkcs1.compute_hash(
|
74
|
+
seed + transform.int2bytes(counter, fill_size=4),
|
75
|
+
method_name=hasher,
|
76
|
+
)
|
77
|
+
for counter in range(common.ceil_div(length, hash_length) + 1)
|
78
|
+
)
|
79
|
+
|
80
|
+
# Output the leading `length` octets of `output` as the octet string mask.
|
81
|
+
return output[:length]
|
82
|
+
|
83
|
+
|
84
|
+
__all__ = [
|
85
|
+
"mgf1",
|
86
|
+
]
|
87
|
+
|
88
|
+
if __name__ == "__main__":
|
89
|
+
print("Running doctests 1000x or until failure")
|
90
|
+
import doctest
|
91
|
+
|
92
|
+
for count in range(1000):
|
93
|
+
(failures, tests) = doctest.testmod()
|
94
|
+
if failures:
|
95
|
+
break
|
96
|
+
|
97
|
+
if count % 100 == 0 and count:
|
98
|
+
print("%i times" % count)
|
99
|
+
|
100
|
+
print("Doctests done")
|
@@ -1,198 +1,198 @@
|
|
1
|
-
# Copyright 2011 Sybren A. Stüvel <sybren@stuvel.eu>
|
2
|
-
#
|
3
|
-
# Licensed under the Apache License, Version 2.0 (the "License");
|
4
|
-
# you may not use this file except in compliance with the License.
|
5
|
-
# You may obtain a copy of the License at
|
6
|
-
#
|
7
|
-
# https://www.apache.org/licenses/LICENSE-2.0
|
8
|
-
#
|
9
|
-
# Unless required by applicable law or agreed to in writing, software
|
10
|
-
# distributed under the License is distributed on an "AS IS" BASIS,
|
11
|
-
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
12
|
-
# See the License for the specific language governing permissions and
|
13
|
-
# limitations under the License.
|
14
|
-
|
15
|
-
"""Numerical functions related to primes.
|
16
|
-
|
17
|
-
Implementation based on the book Algorithm Design by Michael T. Goodrich and
|
18
|
-
Roberto Tamassia, 2002.
|
19
|
-
"""
|
20
|
-
|
21
|
-
import rsa.common
|
22
|
-
import rsa.randnum
|
23
|
-
|
24
|
-
__all__ = ["getprime", "are_relatively_prime"]
|
25
|
-
|
26
|
-
|
27
|
-
def gcd(p: int, q: int) -> int:
|
28
|
-
"""Returns the greatest common divisor of p and q
|
29
|
-
|
30
|
-
>>> gcd(48, 180)
|
31
|
-
12
|
32
|
-
"""
|
33
|
-
|
34
|
-
while q != 0:
|
35
|
-
(p, q) = (q, p % q)
|
36
|
-
return p
|
37
|
-
|
38
|
-
|
39
|
-
def get_primality_testing_rounds(number: int) -> int:
|
40
|
-
"""Returns minimum number of rounds for Miller-Rabing primality testing,
|
41
|
-
based on number bitsize.
|
42
|
-
|
43
|
-
According to NIST FIPS 186-4, Appendix C, Table C.3, minimum number of
|
44
|
-
rounds of M-R testing, using an error probability of 2 ** (-100), for
|
45
|
-
different p, q bitsizes are:
|
46
|
-
* p, q bitsize: 512; rounds: 7
|
47
|
-
* p, q bitsize: 1024; rounds: 4
|
48
|
-
* p, q bitsize: 1536; rounds: 3
|
49
|
-
See: http://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.186-4.pdf
|
50
|
-
"""
|
51
|
-
|
52
|
-
# Calculate number bitsize.
|
53
|
-
bitsize = rsa.common.bit_size(number)
|
54
|
-
# Set number of rounds.
|
55
|
-
if bitsize >= 1536:
|
56
|
-
return 3
|
57
|
-
if bitsize >= 1024:
|
58
|
-
return 4
|
59
|
-
if bitsize >= 512:
|
60
|
-
return 7
|
61
|
-
# For smaller bitsizes, set arbitrary number of rounds.
|
62
|
-
return 10
|
63
|
-
|
64
|
-
|
65
|
-
def miller_rabin_primality_testing(n: int, k: int) -> bool:
|
66
|
-
"""Calculates whether n is composite (which is always correct) or prime
|
67
|
-
(which theoretically is incorrect with error probability 4**-k), by
|
68
|
-
applying Miller-Rabin primality testing.
|
69
|
-
|
70
|
-
For reference and implementation example, see:
|
71
|
-
https://en.wikipedia.org/wiki/Miller%E2%80%93Rabin_primality_test
|
72
|
-
|
73
|
-
:param n: Integer to be tested for primality.
|
74
|
-
:type n: int
|
75
|
-
:param k: Number of rounds (witnesses) of Miller-Rabin testing.
|
76
|
-
:type k: int
|
77
|
-
:return: False if the number is composite, True if it's probably prime.
|
78
|
-
:rtype: bool
|
79
|
-
"""
|
80
|
-
|
81
|
-
# prevent potential infinite loop when d = 0
|
82
|
-
if n < 2:
|
83
|
-
return False
|
84
|
-
|
85
|
-
# Decompose (n - 1) to write it as (2 ** r) * d
|
86
|
-
# While d is even, divide it by 2 and increase the exponent.
|
87
|
-
d = n - 1
|
88
|
-
r = 0
|
89
|
-
|
90
|
-
while not (d & 1):
|
91
|
-
r += 1
|
92
|
-
d >>= 1
|
93
|
-
|
94
|
-
# Test k witnesses.
|
95
|
-
for _ in range(k):
|
96
|
-
# Generate random integer a, where 2 <= a <= (n - 2)
|
97
|
-
a = rsa.randnum.randint(n - 3) + 1
|
98
|
-
|
99
|
-
x = pow(a, d, n)
|
100
|
-
if x == 1 or x == n - 1:
|
101
|
-
continue
|
102
|
-
|
103
|
-
for _ in range(r - 1):
|
104
|
-
x = pow(x, 2, n)
|
105
|
-
if x == 1:
|
106
|
-
# n is composite.
|
107
|
-
return False
|
108
|
-
if x == n - 1:
|
109
|
-
# Exit inner loop and continue with next witness.
|
110
|
-
break
|
111
|
-
else:
|
112
|
-
# If loop doesn't break, n is composite.
|
113
|
-
return False
|
114
|
-
|
115
|
-
return True
|
116
|
-
|
117
|
-
|
118
|
-
def is_prime(number: int) -> bool:
|
119
|
-
"""Returns True if the number is prime, and False otherwise.
|
120
|
-
|
121
|
-
>>> is_prime(2)
|
122
|
-
True
|
123
|
-
>>> is_prime(42)
|
124
|
-
False
|
125
|
-
>>> is_prime(41)
|
126
|
-
True
|
127
|
-
"""
|
128
|
-
|
129
|
-
# Check for small numbers.
|
130
|
-
if number < 10:
|
131
|
-
return number in {2, 3, 5, 7}
|
132
|
-
|
133
|
-
# Check for even numbers.
|
134
|
-
if not (number & 1):
|
135
|
-
return False
|
136
|
-
|
137
|
-
# Calculate minimum number of rounds.
|
138
|
-
k = get_primality_testing_rounds(number)
|
139
|
-
|
140
|
-
# Run primality testing with (minimum + 1) rounds.
|
141
|
-
return miller_rabin_primality_testing(number, k + 1)
|
142
|
-
|
143
|
-
|
144
|
-
def getprime(nbits: int) -> int:
|
145
|
-
"""Returns a prime number that can be stored in 'nbits' bits.
|
146
|
-
|
147
|
-
>>> p = getprime(128)
|
148
|
-
>>> is_prime(p-1)
|
149
|
-
False
|
150
|
-
>>> is_prime(p)
|
151
|
-
True
|
152
|
-
>>> is_prime(p+1)
|
153
|
-
False
|
154
|
-
|
155
|
-
>>> from rsa import common
|
156
|
-
>>> common.bit_size(p) == 128
|
157
|
-
True
|
158
|
-
"""
|
159
|
-
|
160
|
-
assert nbits > 3 # the loop will hang on too small numbers
|
161
|
-
|
162
|
-
while True:
|
163
|
-
integer = rsa.randnum.read_random_odd_int(nbits)
|
164
|
-
|
165
|
-
# Test for primeness
|
166
|
-
if is_prime(integer):
|
167
|
-
return integer
|
168
|
-
|
169
|
-
# Retry if not prime
|
170
|
-
|
171
|
-
|
172
|
-
def are_relatively_prime(a: int, b: int) -> bool:
|
173
|
-
"""Returns True if a and b are relatively prime, and False if they
|
174
|
-
are not.
|
175
|
-
|
176
|
-
>>> are_relatively_prime(2, 3)
|
177
|
-
True
|
178
|
-
>>> are_relatively_prime(2, 4)
|
179
|
-
False
|
180
|
-
"""
|
181
|
-
|
182
|
-
d = gcd(a, b)
|
183
|
-
return d == 1
|
184
|
-
|
185
|
-
|
186
|
-
if __name__ == "__main__":
|
187
|
-
print("Running doctests 1000x or until failure")
|
188
|
-
import doctest
|
189
|
-
|
190
|
-
for count in range(1000):
|
191
|
-
(failures, tests) = doctest.testmod()
|
192
|
-
if failures:
|
193
|
-
break
|
194
|
-
|
195
|
-
if count % 100 == 0 and count:
|
196
|
-
print("%i times" % count)
|
197
|
-
|
198
|
-
print("Doctests done")
|
1
|
+
# Copyright 2011 Sybren A. Stüvel <sybren@stuvel.eu>
|
2
|
+
#
|
3
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
4
|
+
# you may not use this file except in compliance with the License.
|
5
|
+
# You may obtain a copy of the License at
|
6
|
+
#
|
7
|
+
# https://www.apache.org/licenses/LICENSE-2.0
|
8
|
+
#
|
9
|
+
# Unless required by applicable law or agreed to in writing, software
|
10
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
11
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
12
|
+
# See the License for the specific language governing permissions and
|
13
|
+
# limitations under the License.
|
14
|
+
|
15
|
+
"""Numerical functions related to primes.
|
16
|
+
|
17
|
+
Implementation based on the book Algorithm Design by Michael T. Goodrich and
|
18
|
+
Roberto Tamassia, 2002.
|
19
|
+
"""
|
20
|
+
|
21
|
+
import rsa.common
|
22
|
+
import rsa.randnum
|
23
|
+
|
24
|
+
__all__ = ["getprime", "are_relatively_prime"]
|
25
|
+
|
26
|
+
|
27
|
+
def gcd(p: int, q: int) -> int:
|
28
|
+
"""Returns the greatest common divisor of p and q
|
29
|
+
|
30
|
+
>>> gcd(48, 180)
|
31
|
+
12
|
32
|
+
"""
|
33
|
+
|
34
|
+
while q != 0:
|
35
|
+
(p, q) = (q, p % q)
|
36
|
+
return p
|
37
|
+
|
38
|
+
|
39
|
+
def get_primality_testing_rounds(number: int) -> int:
|
40
|
+
"""Returns minimum number of rounds for Miller-Rabing primality testing,
|
41
|
+
based on number bitsize.
|
42
|
+
|
43
|
+
According to NIST FIPS 186-4, Appendix C, Table C.3, minimum number of
|
44
|
+
rounds of M-R testing, using an error probability of 2 ** (-100), for
|
45
|
+
different p, q bitsizes are:
|
46
|
+
* p, q bitsize: 512; rounds: 7
|
47
|
+
* p, q bitsize: 1024; rounds: 4
|
48
|
+
* p, q bitsize: 1536; rounds: 3
|
49
|
+
See: http://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.186-4.pdf
|
50
|
+
"""
|
51
|
+
|
52
|
+
# Calculate number bitsize.
|
53
|
+
bitsize = rsa.common.bit_size(number)
|
54
|
+
# Set number of rounds.
|
55
|
+
if bitsize >= 1536:
|
56
|
+
return 3
|
57
|
+
if bitsize >= 1024:
|
58
|
+
return 4
|
59
|
+
if bitsize >= 512:
|
60
|
+
return 7
|
61
|
+
# For smaller bitsizes, set arbitrary number of rounds.
|
62
|
+
return 10
|
63
|
+
|
64
|
+
|
65
|
+
def miller_rabin_primality_testing(n: int, k: int) -> bool:
|
66
|
+
"""Calculates whether n is composite (which is always correct) or prime
|
67
|
+
(which theoretically is incorrect with error probability 4**-k), by
|
68
|
+
applying Miller-Rabin primality testing.
|
69
|
+
|
70
|
+
For reference and implementation example, see:
|
71
|
+
https://en.wikipedia.org/wiki/Miller%E2%80%93Rabin_primality_test
|
72
|
+
|
73
|
+
:param n: Integer to be tested for primality.
|
74
|
+
:type n: int
|
75
|
+
:param k: Number of rounds (witnesses) of Miller-Rabin testing.
|
76
|
+
:type k: int
|
77
|
+
:return: False if the number is composite, True if it's probably prime.
|
78
|
+
:rtype: bool
|
79
|
+
"""
|
80
|
+
|
81
|
+
# prevent potential infinite loop when d = 0
|
82
|
+
if n < 2:
|
83
|
+
return False
|
84
|
+
|
85
|
+
# Decompose (n - 1) to write it as (2 ** r) * d
|
86
|
+
# While d is even, divide it by 2 and increase the exponent.
|
87
|
+
d = n - 1
|
88
|
+
r = 0
|
89
|
+
|
90
|
+
while not (d & 1):
|
91
|
+
r += 1
|
92
|
+
d >>= 1
|
93
|
+
|
94
|
+
# Test k witnesses.
|
95
|
+
for _ in range(k):
|
96
|
+
# Generate random integer a, where 2 <= a <= (n - 2)
|
97
|
+
a = rsa.randnum.randint(n - 3) + 1
|
98
|
+
|
99
|
+
x = pow(a, d, n)
|
100
|
+
if x == 1 or x == n - 1:
|
101
|
+
continue
|
102
|
+
|
103
|
+
for _ in range(r - 1):
|
104
|
+
x = pow(x, 2, n)
|
105
|
+
if x == 1:
|
106
|
+
# n is composite.
|
107
|
+
return False
|
108
|
+
if x == n - 1:
|
109
|
+
# Exit inner loop and continue with next witness.
|
110
|
+
break
|
111
|
+
else:
|
112
|
+
# If loop doesn't break, n is composite.
|
113
|
+
return False
|
114
|
+
|
115
|
+
return True
|
116
|
+
|
117
|
+
|
118
|
+
def is_prime(number: int) -> bool:
|
119
|
+
"""Returns True if the number is prime, and False otherwise.
|
120
|
+
|
121
|
+
>>> is_prime(2)
|
122
|
+
True
|
123
|
+
>>> is_prime(42)
|
124
|
+
False
|
125
|
+
>>> is_prime(41)
|
126
|
+
True
|
127
|
+
"""
|
128
|
+
|
129
|
+
# Check for small numbers.
|
130
|
+
if number < 10:
|
131
|
+
return number in {2, 3, 5, 7}
|
132
|
+
|
133
|
+
# Check for even numbers.
|
134
|
+
if not (number & 1):
|
135
|
+
return False
|
136
|
+
|
137
|
+
# Calculate minimum number of rounds.
|
138
|
+
k = get_primality_testing_rounds(number)
|
139
|
+
|
140
|
+
# Run primality testing with (minimum + 1) rounds.
|
141
|
+
return miller_rabin_primality_testing(number, k + 1)
|
142
|
+
|
143
|
+
|
144
|
+
def getprime(nbits: int) -> int:
|
145
|
+
"""Returns a prime number that can be stored in 'nbits' bits.
|
146
|
+
|
147
|
+
>>> p = getprime(128)
|
148
|
+
>>> is_prime(p-1)
|
149
|
+
False
|
150
|
+
>>> is_prime(p)
|
151
|
+
True
|
152
|
+
>>> is_prime(p+1)
|
153
|
+
False
|
154
|
+
|
155
|
+
>>> from rsa import common
|
156
|
+
>>> common.bit_size(p) == 128
|
157
|
+
True
|
158
|
+
"""
|
159
|
+
|
160
|
+
assert nbits > 3 # the loop will hang on too small numbers
|
161
|
+
|
162
|
+
while True:
|
163
|
+
integer = rsa.randnum.read_random_odd_int(nbits)
|
164
|
+
|
165
|
+
# Test for primeness
|
166
|
+
if is_prime(integer):
|
167
|
+
return integer
|
168
|
+
|
169
|
+
# Retry if not prime
|
170
|
+
|
171
|
+
|
172
|
+
def are_relatively_prime(a: int, b: int) -> bool:
|
173
|
+
"""Returns True if a and b are relatively prime, and False if they
|
174
|
+
are not.
|
175
|
+
|
176
|
+
>>> are_relatively_prime(2, 3)
|
177
|
+
True
|
178
|
+
>>> are_relatively_prime(2, 4)
|
179
|
+
False
|
180
|
+
"""
|
181
|
+
|
182
|
+
d = gcd(a, b)
|
183
|
+
return d == 1
|
184
|
+
|
185
|
+
|
186
|
+
if __name__ == "__main__":
|
187
|
+
print("Running doctests 1000x or until failure")
|
188
|
+
import doctest
|
189
|
+
|
190
|
+
for count in range(1000):
|
191
|
+
(failures, tests) = doctest.testmod()
|
192
|
+
if failures:
|
193
|
+
break
|
194
|
+
|
195
|
+
if count % 100 == 0 and count:
|
196
|
+
print("%i times" % count)
|
197
|
+
|
198
|
+
print("Doctests done")
|
@@ -1 +1 @@
|
|
1
|
-
# Marker file for PEP 561. The rsa package uses inline types.
|
1
|
+
# Marker file for PEP 561. The rsa package uses inline types.
|