Authlib 1.6.4__tar.gz → 1.6.5__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {authlib-1.6.4 → authlib-1.6.5}/Authlib.egg-info/PKG-INFO +1 -1
- {authlib-1.6.4 → authlib-1.6.5}/PKG-INFO +1 -1
- {authlib-1.6.4 → authlib-1.6.5}/authlib/consts.py +1 -1
- {authlib-1.6.4 → authlib-1.6.5}/authlib/jose/rfc7515/jws.py +5 -0
- authlib-1.6.5/authlib/jose/rfc7518/jwe_zips.py +34 -0
- {authlib-1.6.4 → authlib-1.6.5}/authlib/jose/util.py +6 -0
- {authlib-1.6.4 → authlib-1.6.5}/authlib/oauth2/rfc6749/parameters.py +8 -3
- {authlib-1.6.4 → authlib-1.6.5}/authlib/oauth2/rfc7591/endpoint.py +25 -6
- authlib-1.6.4/authlib/jose/rfc7518/jwe_zips.py +0 -23
- {authlib-1.6.4 → authlib-1.6.5}/Authlib.egg-info/SOURCES.txt +0 -0
- {authlib-1.6.4 → authlib-1.6.5}/Authlib.egg-info/dependency_links.txt +0 -0
- {authlib-1.6.4 → authlib-1.6.5}/Authlib.egg-info/requires.txt +0 -0
- {authlib-1.6.4 → authlib-1.6.5}/Authlib.egg-info/top_level.txt +0 -0
- {authlib-1.6.4 → authlib-1.6.5}/LICENSE +0 -0
- {authlib-1.6.4 → authlib-1.6.5}/MANIFEST.in +0 -0
- {authlib-1.6.4 → authlib-1.6.5}/README.md +0 -0
- {authlib-1.6.4 → authlib-1.6.5}/authlib/__init__.py +0 -0
- {authlib-1.6.4 → authlib-1.6.5}/authlib/common/__init__.py +0 -0
- {authlib-1.6.4 → authlib-1.6.5}/authlib/common/encoding.py +0 -0
- {authlib-1.6.4 → authlib-1.6.5}/authlib/common/errors.py +0 -0
- {authlib-1.6.4 → authlib-1.6.5}/authlib/common/security.py +0 -0
- {authlib-1.6.4 → authlib-1.6.5}/authlib/common/urls.py +0 -0
- {authlib-1.6.4 → authlib-1.6.5}/authlib/deprecate.py +0 -0
- {authlib-1.6.4 → authlib-1.6.5}/authlib/integrations/__init__.py +0 -0
- {authlib-1.6.4 → authlib-1.6.5}/authlib/integrations/base_client/__init__.py +0 -0
- {authlib-1.6.4 → authlib-1.6.5}/authlib/integrations/base_client/async_app.py +0 -0
- {authlib-1.6.4 → authlib-1.6.5}/authlib/integrations/base_client/async_openid.py +0 -0
- {authlib-1.6.4 → authlib-1.6.5}/authlib/integrations/base_client/errors.py +0 -0
- {authlib-1.6.4 → authlib-1.6.5}/authlib/integrations/base_client/framework_integration.py +0 -0
- {authlib-1.6.4 → authlib-1.6.5}/authlib/integrations/base_client/registry.py +0 -0
- {authlib-1.6.4 → authlib-1.6.5}/authlib/integrations/base_client/sync_app.py +0 -0
- {authlib-1.6.4 → authlib-1.6.5}/authlib/integrations/base_client/sync_openid.py +0 -0
- {authlib-1.6.4 → authlib-1.6.5}/authlib/integrations/django_client/__init__.py +0 -0
- {authlib-1.6.4 → authlib-1.6.5}/authlib/integrations/django_client/apps.py +0 -0
- {authlib-1.6.4 → authlib-1.6.5}/authlib/integrations/django_client/integration.py +0 -0
- {authlib-1.6.4 → authlib-1.6.5}/authlib/integrations/django_oauth1/__init__.py +0 -0
- {authlib-1.6.4 → authlib-1.6.5}/authlib/integrations/django_oauth1/authorization_server.py +0 -0
- {authlib-1.6.4 → authlib-1.6.5}/authlib/integrations/django_oauth1/nonce.py +0 -0
- {authlib-1.6.4 → authlib-1.6.5}/authlib/integrations/django_oauth1/resource_protector.py +0 -0
- {authlib-1.6.4 → authlib-1.6.5}/authlib/integrations/django_oauth2/__init__.py +0 -0
- {authlib-1.6.4 → authlib-1.6.5}/authlib/integrations/django_oauth2/authorization_server.py +0 -0
- {authlib-1.6.4 → authlib-1.6.5}/authlib/integrations/django_oauth2/endpoints.py +0 -0
- {authlib-1.6.4 → authlib-1.6.5}/authlib/integrations/django_oauth2/requests.py +0 -0
- {authlib-1.6.4 → authlib-1.6.5}/authlib/integrations/django_oauth2/resource_protector.py +0 -0
- {authlib-1.6.4 → authlib-1.6.5}/authlib/integrations/django_oauth2/signals.py +0 -0
- {authlib-1.6.4 → authlib-1.6.5}/authlib/integrations/flask_client/__init__.py +0 -0
- {authlib-1.6.4 → authlib-1.6.5}/authlib/integrations/flask_client/apps.py +0 -0
- {authlib-1.6.4 → authlib-1.6.5}/authlib/integrations/flask_client/integration.py +0 -0
- {authlib-1.6.4 → authlib-1.6.5}/authlib/integrations/flask_oauth1/__init__.py +0 -0
- {authlib-1.6.4 → authlib-1.6.5}/authlib/integrations/flask_oauth1/authorization_server.py +0 -0
- {authlib-1.6.4 → authlib-1.6.5}/authlib/integrations/flask_oauth1/cache.py +0 -0
- {authlib-1.6.4 → authlib-1.6.5}/authlib/integrations/flask_oauth1/resource_protector.py +0 -0
- {authlib-1.6.4 → authlib-1.6.5}/authlib/integrations/flask_oauth2/__init__.py +0 -0
- {authlib-1.6.4 → authlib-1.6.5}/authlib/integrations/flask_oauth2/authorization_server.py +0 -0
- {authlib-1.6.4 → authlib-1.6.5}/authlib/integrations/flask_oauth2/errors.py +0 -0
- {authlib-1.6.4 → authlib-1.6.5}/authlib/integrations/flask_oauth2/requests.py +0 -0
- {authlib-1.6.4 → authlib-1.6.5}/authlib/integrations/flask_oauth2/resource_protector.py +0 -0
- {authlib-1.6.4 → authlib-1.6.5}/authlib/integrations/flask_oauth2/signals.py +0 -0
- {authlib-1.6.4 → authlib-1.6.5}/authlib/integrations/httpx_client/__init__.py +0 -0
- {authlib-1.6.4 → authlib-1.6.5}/authlib/integrations/httpx_client/assertion_client.py +0 -0
- {authlib-1.6.4 → authlib-1.6.5}/authlib/integrations/httpx_client/oauth1_client.py +0 -0
- {authlib-1.6.4 → authlib-1.6.5}/authlib/integrations/httpx_client/oauth2_client.py +0 -0
- {authlib-1.6.4 → authlib-1.6.5}/authlib/integrations/httpx_client/utils.py +0 -0
- {authlib-1.6.4 → authlib-1.6.5}/authlib/integrations/requests_client/__init__.py +0 -0
- {authlib-1.6.4 → authlib-1.6.5}/authlib/integrations/requests_client/assertion_session.py +0 -0
- {authlib-1.6.4 → authlib-1.6.5}/authlib/integrations/requests_client/oauth1_session.py +0 -0
- {authlib-1.6.4 → authlib-1.6.5}/authlib/integrations/requests_client/oauth2_session.py +0 -0
- {authlib-1.6.4 → authlib-1.6.5}/authlib/integrations/requests_client/utils.py +0 -0
- {authlib-1.6.4 → authlib-1.6.5}/authlib/integrations/sqla_oauth2/__init__.py +0 -0
- {authlib-1.6.4 → authlib-1.6.5}/authlib/integrations/sqla_oauth2/client_mixin.py +0 -0
- {authlib-1.6.4 → authlib-1.6.5}/authlib/integrations/sqla_oauth2/functions.py +0 -0
- {authlib-1.6.4 → authlib-1.6.5}/authlib/integrations/sqla_oauth2/tokens_mixins.py +0 -0
- {authlib-1.6.4 → authlib-1.6.5}/authlib/integrations/starlette_client/__init__.py +0 -0
- {authlib-1.6.4 → authlib-1.6.5}/authlib/integrations/starlette_client/apps.py +0 -0
- {authlib-1.6.4 → authlib-1.6.5}/authlib/integrations/starlette_client/integration.py +0 -0
- {authlib-1.6.4 → authlib-1.6.5}/authlib/jose/__init__.py +0 -0
- {authlib-1.6.4 → authlib-1.6.5}/authlib/jose/drafts/__init__.py +0 -0
- {authlib-1.6.4 → authlib-1.6.5}/authlib/jose/drafts/_jwe_algorithms.py +0 -0
- {authlib-1.6.4 → authlib-1.6.5}/authlib/jose/drafts/_jwe_enc_cryptodome.py +0 -0
- {authlib-1.6.4 → authlib-1.6.5}/authlib/jose/drafts/_jwe_enc_cryptography.py +0 -0
- {authlib-1.6.4 → authlib-1.6.5}/authlib/jose/errors.py +0 -0
- {authlib-1.6.4 → authlib-1.6.5}/authlib/jose/jwk.py +0 -0
- {authlib-1.6.4 → authlib-1.6.5}/authlib/jose/rfc7515/__init__.py +0 -0
- {authlib-1.6.4 → authlib-1.6.5}/authlib/jose/rfc7515/models.py +0 -0
- {authlib-1.6.4 → authlib-1.6.5}/authlib/jose/rfc7516/__init__.py +0 -0
- {authlib-1.6.4 → authlib-1.6.5}/authlib/jose/rfc7516/jwe.py +0 -0
- {authlib-1.6.4 → authlib-1.6.5}/authlib/jose/rfc7516/models.py +0 -0
- {authlib-1.6.4 → authlib-1.6.5}/authlib/jose/rfc7517/__init__.py +0 -0
- {authlib-1.6.4 → authlib-1.6.5}/authlib/jose/rfc7517/_cryptography_key.py +0 -0
- {authlib-1.6.4 → authlib-1.6.5}/authlib/jose/rfc7517/asymmetric_key.py +0 -0
- {authlib-1.6.4 → authlib-1.6.5}/authlib/jose/rfc7517/base_key.py +0 -0
- {authlib-1.6.4 → authlib-1.6.5}/authlib/jose/rfc7517/jwk.py +0 -0
- {authlib-1.6.4 → authlib-1.6.5}/authlib/jose/rfc7517/key_set.py +0 -0
- {authlib-1.6.4 → authlib-1.6.5}/authlib/jose/rfc7518/__init__.py +0 -0
- {authlib-1.6.4 → authlib-1.6.5}/authlib/jose/rfc7518/ec_key.py +0 -0
- {authlib-1.6.4 → authlib-1.6.5}/authlib/jose/rfc7518/jwe_algs.py +0 -0
- {authlib-1.6.4 → authlib-1.6.5}/authlib/jose/rfc7518/jwe_encs.py +0 -0
- {authlib-1.6.4 → authlib-1.6.5}/authlib/jose/rfc7518/jws_algs.py +0 -0
- {authlib-1.6.4 → authlib-1.6.5}/authlib/jose/rfc7518/oct_key.py +0 -0
- {authlib-1.6.4 → authlib-1.6.5}/authlib/jose/rfc7518/rsa_key.py +0 -0
- {authlib-1.6.4 → authlib-1.6.5}/authlib/jose/rfc7518/util.py +0 -0
- {authlib-1.6.4 → authlib-1.6.5}/authlib/jose/rfc7519/__init__.py +0 -0
- {authlib-1.6.4 → authlib-1.6.5}/authlib/jose/rfc7519/claims.py +0 -0
- {authlib-1.6.4 → authlib-1.6.5}/authlib/jose/rfc7519/jwt.py +0 -0
- {authlib-1.6.4 → authlib-1.6.5}/authlib/jose/rfc8037/__init__.py +0 -0
- {authlib-1.6.4 → authlib-1.6.5}/authlib/jose/rfc8037/jws_eddsa.py +0 -0
- {authlib-1.6.4 → authlib-1.6.5}/authlib/jose/rfc8037/okp_key.py +0 -0
- {authlib-1.6.4 → authlib-1.6.5}/authlib/oauth1/__init__.py +0 -0
- {authlib-1.6.4 → authlib-1.6.5}/authlib/oauth1/client.py +0 -0
- {authlib-1.6.4 → authlib-1.6.5}/authlib/oauth1/errors.py +0 -0
- {authlib-1.6.4 → authlib-1.6.5}/authlib/oauth1/rfc5849/__init__.py +0 -0
- {authlib-1.6.4 → authlib-1.6.5}/authlib/oauth1/rfc5849/authorization_server.py +0 -0
- {authlib-1.6.4 → authlib-1.6.5}/authlib/oauth1/rfc5849/base_server.py +0 -0
- {authlib-1.6.4 → authlib-1.6.5}/authlib/oauth1/rfc5849/client_auth.py +0 -0
- {authlib-1.6.4 → authlib-1.6.5}/authlib/oauth1/rfc5849/errors.py +0 -0
- {authlib-1.6.4 → authlib-1.6.5}/authlib/oauth1/rfc5849/models.py +0 -0
- {authlib-1.6.4 → authlib-1.6.5}/authlib/oauth1/rfc5849/parameters.py +0 -0
- {authlib-1.6.4 → authlib-1.6.5}/authlib/oauth1/rfc5849/resource_protector.py +0 -0
- {authlib-1.6.4 → authlib-1.6.5}/authlib/oauth1/rfc5849/rsa.py +0 -0
- {authlib-1.6.4 → authlib-1.6.5}/authlib/oauth1/rfc5849/signature.py +0 -0
- {authlib-1.6.4 → authlib-1.6.5}/authlib/oauth1/rfc5849/util.py +0 -0
- {authlib-1.6.4 → authlib-1.6.5}/authlib/oauth1/rfc5849/wrapper.py +0 -0
- {authlib-1.6.4 → authlib-1.6.5}/authlib/oauth2/__init__.py +0 -0
- {authlib-1.6.4 → authlib-1.6.5}/authlib/oauth2/auth.py +0 -0
- {authlib-1.6.4 → authlib-1.6.5}/authlib/oauth2/base.py +0 -0
- {authlib-1.6.4 → authlib-1.6.5}/authlib/oauth2/client.py +0 -0
- {authlib-1.6.4 → authlib-1.6.5}/authlib/oauth2/rfc6749/__init__.py +0 -0
- {authlib-1.6.4 → authlib-1.6.5}/authlib/oauth2/rfc6749/authenticate_client.py +0 -0
- {authlib-1.6.4 → authlib-1.6.5}/authlib/oauth2/rfc6749/authorization_server.py +0 -0
- {authlib-1.6.4 → authlib-1.6.5}/authlib/oauth2/rfc6749/errors.py +0 -0
- {authlib-1.6.4 → authlib-1.6.5}/authlib/oauth2/rfc6749/grants/__init__.py +0 -0
- {authlib-1.6.4 → authlib-1.6.5}/authlib/oauth2/rfc6749/grants/authorization_code.py +0 -0
- {authlib-1.6.4 → authlib-1.6.5}/authlib/oauth2/rfc6749/grants/base.py +0 -0
- {authlib-1.6.4 → authlib-1.6.5}/authlib/oauth2/rfc6749/grants/client_credentials.py +0 -0
- {authlib-1.6.4 → authlib-1.6.5}/authlib/oauth2/rfc6749/grants/implicit.py +0 -0
- {authlib-1.6.4 → authlib-1.6.5}/authlib/oauth2/rfc6749/grants/refresh_token.py +0 -0
- {authlib-1.6.4 → authlib-1.6.5}/authlib/oauth2/rfc6749/grants/resource_owner_password_credentials.py +0 -0
- {authlib-1.6.4 → authlib-1.6.5}/authlib/oauth2/rfc6749/hooks.py +0 -0
- {authlib-1.6.4 → authlib-1.6.5}/authlib/oauth2/rfc6749/models.py +0 -0
- {authlib-1.6.4 → authlib-1.6.5}/authlib/oauth2/rfc6749/requests.py +0 -0
- {authlib-1.6.4 → authlib-1.6.5}/authlib/oauth2/rfc6749/resource_protector.py +0 -0
- {authlib-1.6.4 → authlib-1.6.5}/authlib/oauth2/rfc6749/token_endpoint.py +0 -0
- {authlib-1.6.4 → authlib-1.6.5}/authlib/oauth2/rfc6749/util.py +0 -0
- {authlib-1.6.4 → authlib-1.6.5}/authlib/oauth2/rfc6749/wrappers.py +0 -0
- {authlib-1.6.4 → authlib-1.6.5}/authlib/oauth2/rfc6750/__init__.py +0 -0
- {authlib-1.6.4 → authlib-1.6.5}/authlib/oauth2/rfc6750/errors.py +0 -0
- {authlib-1.6.4 → authlib-1.6.5}/authlib/oauth2/rfc6750/parameters.py +0 -0
- {authlib-1.6.4 → authlib-1.6.5}/authlib/oauth2/rfc6750/token.py +0 -0
- {authlib-1.6.4 → authlib-1.6.5}/authlib/oauth2/rfc6750/validator.py +0 -0
- {authlib-1.6.4 → authlib-1.6.5}/authlib/oauth2/rfc7009/__init__.py +0 -0
- {authlib-1.6.4 → authlib-1.6.5}/authlib/oauth2/rfc7009/parameters.py +0 -0
- {authlib-1.6.4 → authlib-1.6.5}/authlib/oauth2/rfc7009/revocation.py +0 -0
- {authlib-1.6.4 → authlib-1.6.5}/authlib/oauth2/rfc7521/__init__.py +0 -0
- {authlib-1.6.4 → authlib-1.6.5}/authlib/oauth2/rfc7521/client.py +0 -0
- {authlib-1.6.4 → authlib-1.6.5}/authlib/oauth2/rfc7523/__init__.py +0 -0
- {authlib-1.6.4 → authlib-1.6.5}/authlib/oauth2/rfc7523/assertion.py +0 -0
- {authlib-1.6.4 → authlib-1.6.5}/authlib/oauth2/rfc7523/auth.py +0 -0
- {authlib-1.6.4 → authlib-1.6.5}/authlib/oauth2/rfc7523/client.py +0 -0
- {authlib-1.6.4 → authlib-1.6.5}/authlib/oauth2/rfc7523/jwt_bearer.py +0 -0
- {authlib-1.6.4 → authlib-1.6.5}/authlib/oauth2/rfc7523/token.py +0 -0
- {authlib-1.6.4 → authlib-1.6.5}/authlib/oauth2/rfc7523/validator.py +0 -0
- {authlib-1.6.4 → authlib-1.6.5}/authlib/oauth2/rfc7591/__init__.py +0 -0
- {authlib-1.6.4 → authlib-1.6.5}/authlib/oauth2/rfc7591/claims.py +0 -0
- {authlib-1.6.4 → authlib-1.6.5}/authlib/oauth2/rfc7591/errors.py +0 -0
- {authlib-1.6.4 → authlib-1.6.5}/authlib/oauth2/rfc7592/__init__.py +0 -0
- {authlib-1.6.4 → authlib-1.6.5}/authlib/oauth2/rfc7592/endpoint.py +0 -0
- {authlib-1.6.4 → authlib-1.6.5}/authlib/oauth2/rfc7636/__init__.py +0 -0
- {authlib-1.6.4 → authlib-1.6.5}/authlib/oauth2/rfc7636/challenge.py +0 -0
- {authlib-1.6.4 → authlib-1.6.5}/authlib/oauth2/rfc7662/__init__.py +0 -0
- {authlib-1.6.4 → authlib-1.6.5}/authlib/oauth2/rfc7662/introspection.py +0 -0
- {authlib-1.6.4 → authlib-1.6.5}/authlib/oauth2/rfc7662/models.py +0 -0
- {authlib-1.6.4 → authlib-1.6.5}/authlib/oauth2/rfc7662/token_validator.py +0 -0
- {authlib-1.6.4 → authlib-1.6.5}/authlib/oauth2/rfc8414/__init__.py +0 -0
- {authlib-1.6.4 → authlib-1.6.5}/authlib/oauth2/rfc8414/models.py +0 -0
- {authlib-1.6.4 → authlib-1.6.5}/authlib/oauth2/rfc8414/well_known.py +0 -0
- {authlib-1.6.4 → authlib-1.6.5}/authlib/oauth2/rfc8628/__init__.py +0 -0
- {authlib-1.6.4 → authlib-1.6.5}/authlib/oauth2/rfc8628/device_code.py +0 -0
- {authlib-1.6.4 → authlib-1.6.5}/authlib/oauth2/rfc8628/endpoint.py +0 -0
- {authlib-1.6.4 → authlib-1.6.5}/authlib/oauth2/rfc8628/errors.py +0 -0
- {authlib-1.6.4 → authlib-1.6.5}/authlib/oauth2/rfc8628/models.py +0 -0
- {authlib-1.6.4 → authlib-1.6.5}/authlib/oauth2/rfc8693/__init__.py +0 -0
- {authlib-1.6.4 → authlib-1.6.5}/authlib/oauth2/rfc9068/__init__.py +0 -0
- {authlib-1.6.4 → authlib-1.6.5}/authlib/oauth2/rfc9068/claims.py +0 -0
- {authlib-1.6.4 → authlib-1.6.5}/authlib/oauth2/rfc9068/introspection.py +0 -0
- {authlib-1.6.4 → authlib-1.6.5}/authlib/oauth2/rfc9068/revocation.py +0 -0
- {authlib-1.6.4 → authlib-1.6.5}/authlib/oauth2/rfc9068/token.py +0 -0
- {authlib-1.6.4 → authlib-1.6.5}/authlib/oauth2/rfc9068/token_validator.py +0 -0
- {authlib-1.6.4 → authlib-1.6.5}/authlib/oauth2/rfc9101/__init__.py +0 -0
- {authlib-1.6.4 → authlib-1.6.5}/authlib/oauth2/rfc9101/authorization_server.py +0 -0
- {authlib-1.6.4 → authlib-1.6.5}/authlib/oauth2/rfc9101/discovery.py +0 -0
- {authlib-1.6.4 → authlib-1.6.5}/authlib/oauth2/rfc9101/errors.py +0 -0
- {authlib-1.6.4 → authlib-1.6.5}/authlib/oauth2/rfc9101/registration.py +0 -0
- {authlib-1.6.4 → authlib-1.6.5}/authlib/oauth2/rfc9207/__init__.py +0 -0
- {authlib-1.6.4 → authlib-1.6.5}/authlib/oauth2/rfc9207/parameter.py +0 -0
- {authlib-1.6.4 → authlib-1.6.5}/authlib/oidc/__init__.py +0 -0
- {authlib-1.6.4 → authlib-1.6.5}/authlib/oidc/core/__init__.py +0 -0
- {authlib-1.6.4 → authlib-1.6.5}/authlib/oidc/core/claims.py +0 -0
- {authlib-1.6.4 → authlib-1.6.5}/authlib/oidc/core/errors.py +0 -0
- {authlib-1.6.4 → authlib-1.6.5}/authlib/oidc/core/grants/__init__.py +0 -0
- {authlib-1.6.4 → authlib-1.6.5}/authlib/oidc/core/grants/code.py +0 -0
- {authlib-1.6.4 → authlib-1.6.5}/authlib/oidc/core/grants/hybrid.py +0 -0
- {authlib-1.6.4 → authlib-1.6.5}/authlib/oidc/core/grants/implicit.py +0 -0
- {authlib-1.6.4 → authlib-1.6.5}/authlib/oidc/core/grants/util.py +0 -0
- {authlib-1.6.4 → authlib-1.6.5}/authlib/oidc/core/models.py +0 -0
- {authlib-1.6.4 → authlib-1.6.5}/authlib/oidc/core/userinfo.py +0 -0
- {authlib-1.6.4 → authlib-1.6.5}/authlib/oidc/core/util.py +0 -0
- {authlib-1.6.4 → authlib-1.6.5}/authlib/oidc/discovery/__init__.py +0 -0
- {authlib-1.6.4 → authlib-1.6.5}/authlib/oidc/discovery/models.py +0 -0
- {authlib-1.6.4 → authlib-1.6.5}/authlib/oidc/discovery/well_known.py +0 -0
- {authlib-1.6.4 → authlib-1.6.5}/authlib/oidc/registration/__init__.py +0 -0
- {authlib-1.6.4 → authlib-1.6.5}/authlib/oidc/registration/claims.py +0 -0
- {authlib-1.6.4 → authlib-1.6.5}/pyproject.toml +0 -0
- {authlib-1.6.4 → authlib-1.6.5}/setup.cfg +0 -0
- {authlib-1.6.4 → authlib-1.6.5}/setup.py +0 -0
|
@@ -34,6 +34,8 @@ class JsonWebSignature:
|
|
|
34
34
|
]
|
|
35
35
|
)
|
|
36
36
|
|
|
37
|
+
MAX_CONTENT_LENGTH: int = 256000
|
|
38
|
+
|
|
37
39
|
#: Defined available JWS algorithms in the registry
|
|
38
40
|
ALGORITHMS_REGISTRY = {}
|
|
39
41
|
|
|
@@ -89,6 +91,9 @@ class JsonWebSignature:
|
|
|
89
91
|
|
|
90
92
|
.. _`Section 7.1`: https://tools.ietf.org/html/rfc7515#section-7.1
|
|
91
93
|
"""
|
|
94
|
+
if len(s) > self.MAX_CONTENT_LENGTH:
|
|
95
|
+
raise ValueError("Serialization is too long.")
|
|
96
|
+
|
|
92
97
|
try:
|
|
93
98
|
s = to_bytes(s)
|
|
94
99
|
signing_input, signature_segment = s.rsplit(b".", 1)
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import zlib
|
|
2
|
+
|
|
3
|
+
from ..rfc7516 import JsonWebEncryption
|
|
4
|
+
from ..rfc7516 import JWEZipAlgorithm
|
|
5
|
+
|
|
6
|
+
GZIP_HEAD = bytes([120, 156])
|
|
7
|
+
MAX_SIZE = 250 * 1024
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
class DeflateZipAlgorithm(JWEZipAlgorithm):
|
|
11
|
+
name = "DEF"
|
|
12
|
+
description = "DEFLATE"
|
|
13
|
+
|
|
14
|
+
def compress(self, s: bytes) -> bytes:
|
|
15
|
+
"""Compress bytes data with DEFLATE algorithm."""
|
|
16
|
+
data = zlib.compress(s)
|
|
17
|
+
# https://datatracker.ietf.org/doc/html/rfc1951
|
|
18
|
+
# since DEF is always gzip, we can drop gzip headers and tail
|
|
19
|
+
return data[2:-4]
|
|
20
|
+
|
|
21
|
+
def decompress(self, s: bytes) -> bytes:
|
|
22
|
+
"""Decompress DEFLATE bytes data."""
|
|
23
|
+
if s.startswith(GZIP_HEAD):
|
|
24
|
+
decompressor = zlib.decompressobj()
|
|
25
|
+
else:
|
|
26
|
+
decompressor = zlib.decompressobj(-zlib.MAX_WBITS)
|
|
27
|
+
value = decompressor.decompress(s, MAX_SIZE)
|
|
28
|
+
if decompressor.unconsumed_tail:
|
|
29
|
+
raise ValueError(f"Decompressed string exceeds {MAX_SIZE} bytes")
|
|
30
|
+
return value
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
def register_jwe_rfc7518():
|
|
34
|
+
JsonWebEncryption.register_algorithm(DeflateZipAlgorithm())
|
|
@@ -7,6 +7,9 @@ from authlib.jose.errors import DecodeError
|
|
|
7
7
|
|
|
8
8
|
|
|
9
9
|
def extract_header(header_segment, error_cls):
|
|
10
|
+
if len(header_segment) > 256000:
|
|
11
|
+
raise ValueError("Value of header is too long")
|
|
12
|
+
|
|
10
13
|
header_data = extract_segment(header_segment, error_cls, "header")
|
|
11
14
|
|
|
12
15
|
try:
|
|
@@ -20,6 +23,9 @@ def extract_header(header_segment, error_cls):
|
|
|
20
23
|
|
|
21
24
|
|
|
22
25
|
def extract_segment(segment, error_cls, name="payload"):
|
|
26
|
+
if len(segment) > 256000:
|
|
27
|
+
raise ValueError(f"Value of {name} is too long")
|
|
28
|
+
|
|
23
29
|
try:
|
|
24
30
|
return urlsafe_b64decode(segment)
|
|
25
31
|
except (TypeError, binascii.Error) as exc:
|
|
@@ -54,9 +54,14 @@ def prepare_grant_uri(
|
|
|
54
54
|
if state:
|
|
55
55
|
params.append(("state", state))
|
|
56
56
|
|
|
57
|
-
for k in kwargs:
|
|
58
|
-
if
|
|
59
|
-
|
|
57
|
+
for k, value in kwargs.items():
|
|
58
|
+
if value is not None:
|
|
59
|
+
if isinstance(value, (list, tuple)):
|
|
60
|
+
for v in value:
|
|
61
|
+
if v is not None:
|
|
62
|
+
params.append((to_unicode(k), v))
|
|
63
|
+
else:
|
|
64
|
+
params.append((to_unicode(k), value))
|
|
60
65
|
|
|
61
66
|
return add_params_to_uri(uri, params)
|
|
62
67
|
|
|
@@ -4,6 +4,7 @@ import time
|
|
|
4
4
|
|
|
5
5
|
from authlib.common.security import generate_token
|
|
6
6
|
from authlib.consts import default_json_headers
|
|
7
|
+
from authlib.deprecate import deprecate
|
|
7
8
|
from authlib.jose import JoseError
|
|
8
9
|
from authlib.jose import JsonWebToken
|
|
9
10
|
|
|
@@ -41,7 +42,7 @@ class ClientRegistrationEndpoint:
|
|
|
41
42
|
request.credential = token
|
|
42
43
|
|
|
43
44
|
client_metadata = self.extract_client_metadata(request)
|
|
44
|
-
client_info = self.generate_client_info()
|
|
45
|
+
client_info = self.generate_client_info(request)
|
|
45
46
|
body = {}
|
|
46
47
|
body.update(client_metadata)
|
|
47
48
|
body.update(client_info)
|
|
@@ -91,10 +92,28 @@ class ClientRegistrationEndpoint:
|
|
|
91
92
|
except JoseError as exc:
|
|
92
93
|
raise InvalidSoftwareStatementError() from exc
|
|
93
94
|
|
|
94
|
-
def generate_client_info(self):
|
|
95
|
+
def generate_client_info(self, request):
|
|
95
96
|
# https://tools.ietf.org/html/rfc7591#section-3.2.1
|
|
96
|
-
|
|
97
|
-
|
|
97
|
+
try:
|
|
98
|
+
client_id = self.generate_client_id(request)
|
|
99
|
+
except TypeError: # pragma: no cover
|
|
100
|
+
client_id = self.generate_client_id()
|
|
101
|
+
deprecate(
|
|
102
|
+
"generate_client_id takes a 'request' parameter. "
|
|
103
|
+
"It will become mandatory in coming releases",
|
|
104
|
+
version="1.8",
|
|
105
|
+
)
|
|
106
|
+
|
|
107
|
+
try:
|
|
108
|
+
client_secret = self.generate_client_secret(request)
|
|
109
|
+
except TypeError: # pragma: no cover
|
|
110
|
+
client_secret = self.generate_client_secret()
|
|
111
|
+
deprecate(
|
|
112
|
+
"generate_client_secret takes a 'request' parameter. "
|
|
113
|
+
"It will become mandatory in coming releases",
|
|
114
|
+
version="1.8",
|
|
115
|
+
)
|
|
116
|
+
|
|
98
117
|
client_id_issued_at = int(time.time())
|
|
99
118
|
client_secret_expires_at = 0
|
|
100
119
|
return dict(
|
|
@@ -114,13 +133,13 @@ class ClientRegistrationEndpoint:
|
|
|
114
133
|
def create_endpoint_request(self, request):
|
|
115
134
|
return self.server.create_json_request(request)
|
|
116
135
|
|
|
117
|
-
def generate_client_id(self):
|
|
136
|
+
def generate_client_id(self, request):
|
|
118
137
|
"""Generate ``client_id`` value. Developers MAY rewrite this method
|
|
119
138
|
to use their own way to generate ``client_id``.
|
|
120
139
|
"""
|
|
121
140
|
return generate_token(42)
|
|
122
141
|
|
|
123
|
-
def generate_client_secret(self):
|
|
142
|
+
def generate_client_secret(self, request):
|
|
124
143
|
"""Generate ``client_secret`` value. Developers MAY rewrite this method
|
|
125
144
|
to use their own way to generate ``client_secret``.
|
|
126
145
|
"""
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
import zlib
|
|
2
|
-
|
|
3
|
-
from ..rfc7516 import JsonWebEncryption
|
|
4
|
-
from ..rfc7516 import JWEZipAlgorithm
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
class DeflateZipAlgorithm(JWEZipAlgorithm):
|
|
8
|
-
name = "DEF"
|
|
9
|
-
description = "DEFLATE"
|
|
10
|
-
|
|
11
|
-
def compress(self, s):
|
|
12
|
-
"""Compress bytes data with DEFLATE algorithm."""
|
|
13
|
-
data = zlib.compress(s)
|
|
14
|
-
# drop gzip headers and tail
|
|
15
|
-
return data[2:-4]
|
|
16
|
-
|
|
17
|
-
def decompress(self, s):
|
|
18
|
-
"""Decompress DEFLATE bytes data."""
|
|
19
|
-
return zlib.decompress(s, -zlib.MAX_WBITS)
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
def register_jwe_rfc7518():
|
|
23
|
-
JsonWebEncryption.register_algorithm(DeflateZipAlgorithm())
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{authlib-1.6.4 → authlib-1.6.5}/authlib/oauth2/rfc6749/grants/resource_owner_password_credentials.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|