SharonKoch / skf-labs

Repo for all the OWASP-SKF Docker lab examples
Apache License 2.0
0 stars 1 forks source link

Update dependency pyJWT to v2 #133

Open mend-for-github-com[bot] opened 4 weeks ago

mend-for-github-com[bot] commented 4 weeks ago

This PR contains the following updates:

Package Update Change
pyJWT major ==1.4.2 -> ==2.4.0

By merging this PR, the issue #4 will be automatically resolved and closed:

Severity CVSS Score CVE
High High 7.4 CVE-2022-29217

Release Notes

jpadilla/pyjwt (pyJWT) ### [`v2.4.0`](https://redirect.github.com/jpadilla/pyjwt/blob/HEAD/CHANGELOG.rst#v250-httpsgithubcomjpadillapyjwtcompare240250) [Compare Source](https://redirect.github.com/jpadilla/pyjwt/compare/2.3.0...2.4.0) Changed ``` - Skip keys with incompatible alg when loading JWKSet by @​DaGuich in `#​762 `__ - Remove support for python3.6 by @​sirosen in `#​777 `__ - Emit a deprecation warning for unsupported kwargs by @​sirosen in `#​776 `__ - Remove redundant wheel dep from pyproject.toml by @​mgorny in `#​765 `__ - Do not fail when an unusable key occurs by @​DaGuich in `#​762 `__ - Update audience typing by @​JulianMaurin in `#​782 `__ - Improve PyJWKSet error accuracy by @​JulianMaurin in `#​786 `__ - Mypy as pre-commit check + api_jws typing by @​JulianMaurin in `#​787 `__ Fixed ~~~~~ - Adjust expected exceptions in option merging tests for PyPy3 by @​mgorny in `#​763 `__ - Fixes for pyright on strict mode by @​brandon-leapyear in `#​747 `__ - docs: fix simple typo, iinstance -> isinstance by @​timgates42 in `#​774 `__ - Fix typo: priot -> prior by @​jdufresne in `#​780 `__ - Fix for headers disorder issue by @​kadabusha in `#​721 `__ Added ~~~~~ - Add to_jwk static method to ECAlgorithm by @​leonsmith in `#​732 `__ - Expose get_algorithm_by_name as new method by @​sirosen in `#​773 `__ - Add type hints to jwt/help.py and add missing types dependency by @​kkirsche in `#​784 `__ - Add cacheing functionality for JWK set by @​wuhaoyujerry in `#​781 `__ ``` ### [`v2.3.0`](https://redirect.github.com/jpadilla/pyjwt/blob/HEAD/CHANGELOG.rst#v240-httpsgithubcomjpadillapyjwtcompare230240) [Compare Source](https://redirect.github.com/jpadilla/pyjwt/compare/2.2.0...2.3.0) Security ``` - [CVE-2022-29217] Prevent key confusion through non-blocklisted public key formats. https://github.com/jpadilla/pyjwt/security/advisories/GHSA-ffqj-6fqr-9h24 Changed ~~~~~~~ - Explicit check the key for ECAlgorithm by @​estin in https://github.com/jpadilla/pyjwt/pull/713 - Raise DeprecationWarning for jwt.decode(verify=...) by @​akx in https://github.com/jpadilla/pyjwt/pull/742 Fixed ~~~~~ - Don't use implicit optionals by @​rekyungmin in https://github.com/jpadilla/pyjwt/pull/705 - documentation fix: show correct scope for decode_complete() by @​sseering in https://github.com/jpadilla/pyjwt/pull/661 - fix: Update copyright information by @​kkirsche in https://github.com/jpadilla/pyjwt/pull/729 - Don't mutate options dictionary in .decode_complete() by @​akx in https://github.com/jpadilla/pyjwt/pull/743 Added ~~~~~ - Add support for Python 3.10 by @​hugovk in https://github.com/jpadilla/pyjwt/pull/699 - api_jwk: Add PyJWKSet.__getitem__ by @​woodruffw in https://github.com/jpadilla/pyjwt/pull/725 - Update usage.rst by @​guneybilen in https://github.com/jpadilla/pyjwt/pull/727 - Docs: mention performance reasons for reusing RSAPrivateKey when encoding by @​dmahr1 in https://github.com/jpadilla/pyjwt/pull/734 - Fixed typo in usage.rst by @​israelabraham in https://github.com/jpadilla/pyjwt/pull/738 - Add detached payload support for JWS encoding and decoding by @​fviard in https://github.com/jpadilla/pyjwt/pull/723 - Replace various string interpolations with f-strings by @​akx in https://github.com/jpadilla/pyjwt/pull/744 - Update CHANGELOG.rst by @​hipertracker in https://github.com/jpadilla/pyjwt/pull/751 ``` ### [`v2.2.0`](https://redirect.github.com/jpadilla/pyjwt/blob/HEAD/CHANGELOG.rst#v230-httpsgithubcomjpadillapyjwtcompare220230) [Compare Source](https://redirect.github.com/jpadilla/pyjwt/compare/2.1.0...2.2.0) Fixed ``` - Revert "Remove arbitrary kwargs." `#​701 `__ Added ``` - Add exception chaining `#​702 `\__ ### [`v2.1.0`](https://redirect.github.com/jpadilla/pyjwt/blob/HEAD/CHANGELOG.rst#v220-httpsgithubcomjpadillapyjwtcompare210220) [Compare Source](https://redirect.github.com/jpadilla/pyjwt/compare/2.0.1...2.1.0) Changed ``` - Remove arbitrary kwargs. `#​657 `__ - Use timezone package as Python 3.5+ is required. `#​694 `__ Fixed ~~~~~ - Assume JWK without the "use" claim is valid for signing as per RFC7517 `#​668 `__ - Prefer `headers["alg"]` to `algorithm` in `jwt.encode()`. `#​673 `__ - Fix aud validation to support {'aud': null} case. `#​670 `__ - Make `typ` optional in JWT to be compliant with RFC7519. `#​644 `__ - Remove upper bound on cryptography version. `#​693 `__ Added ~~~~~ - Add support for Ed448/EdDSA. `#​675 `__ ``` ### [`v2.0.1`](https://redirect.github.com/jpadilla/pyjwt/blob/HEAD/CHANGELOG.rst#v210-httpsgithubcomjpadillapyjwtcompare201210) [Compare Source](https://redirect.github.com/jpadilla/pyjwt/compare/2.0.0...2.0.1) Changed ``` - Allow claims validation without making JWT signature validation mandatory. `#​608 `__ Fixed ~~~~~ - Remove padding from JWK test data. `#​628 `__ - Make `kty` mandatory in JWK to be compliant with RFC7517. `#​624 `__ - Allow JWK without `alg` to be compliant with RFC7517. `#​624 `__ - Allow to verify with private key on ECAlgorithm, as well as on Ed25519Algorithm. `#​645 `__ Added ~~~~~ - Add caching by default to PyJWKClient `#​611 `__ - Add missing exceptions.InvalidKeyError to jwt module __init__ imports `#​620 `__ - Add support for ES256K algorithm `#​629 `__ - Add `from_jwk()` to Ed25519Algorithm `#​621 `__ - Add `to_jwk()` to Ed25519Algorithm `#​643 `__ - Export `PyJWK` and `PyJWKSet` `#​652 `__ ``` ### [`v2.0.0`](https://redirect.github.com/jpadilla/pyjwt/blob/HEAD/CHANGELOG.rst#v201-httpsgithubcomjpadillapyjwtcompare200201) [Compare Source](https://redirect.github.com/jpadilla/pyjwt/compare/1.7.1...2.0.0) Changed ``` - Rename CHANGELOG.md to CHANGELOG.rst and include in docs `#​597 `__ Fixed ~~~~~ - Fix `from_jwk()` for all algorithms `#​598 `__ Added ~~~~~ ``` ### [`v1.7.1`](https://redirect.github.com/jpadilla/pyjwt/blob/HEAD/CHANGELOG.rst#v200-httpsgithubcomjpadillapyjwtcompare171200) [Compare Source](https://redirect.github.com/jpadilla/pyjwt/compare/1.7.0...1.7.1) Changed ``` Drop support for Python 2 and Python 3.0-3.5 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Python 3.5 is EOL so we decide to drop its support. Version ``1.7.1`` is the last one supporting Python 3.0-3.5. Require cryptography >= 3 ^^^^^^^^^^^^^^^^^^^^^^^^^ Drop support for PyCrypto and ECDSA ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ We've kept this around for a long time, mostly for environments that didn't allow installing cryptography. Drop CLI ^^^^^^^^ Dropped the included cli entry point. Improve typings ^^^^^^^^^^^^^^^ We no longer need to use mypy Python 2 compatibility mode (comments) ``jwt.encode(...)`` return type ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Tokens are returned as string instead of a byte string Dropped deprecated errors ^^^^^^^^^^^^^^^^^^^^^^^^^ Removed ``ExpiredSignature``, ``InvalidAudience``, and ``InvalidIssuer``. Use ``ExpiredSignatureError``, ``InvalidAudienceError``, and ``InvalidIssuerError`` instead. Dropped deprecated ``verify_expiration`` param in ``jwt.decode(...)`` ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Use ``jwt.decode(encoded, key, algorithms=["HS256"], options={"verify_exp": False})`` instead. Dropped deprecated ``verify`` param in ``jwt.decode(...)`` ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Use ``jwt.decode(encoded, key, options={"verify_signature": False})`` instead. Require explicit ``algorithms`` in ``jwt.decode(...)`` by default ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Example: ``jwt.decode(encoded, key, algorithms=["HS256"])``. Dropped deprecated ``require_*`` options in ``jwt.decode(...)`` ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ For example, instead of ``jwt.decode(encoded, key, algorithms=["HS256"], options={"require_exp": True})``, use ``jwt.decode(encoded, key, algorithms=["HS256"], options={"require": ["exp"]})``. And the old v1.x syntax ``jwt.decode(token, verify=False)`` is now: ``jwt.decode(jwt=token, key='secret', algorithms=['HS256'], options={"verify_signature": False})`` Added ~~~~~ Introduce better experience for JWKs ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Introduce ``PyJWK``, ``PyJWKSet``, and ``PyJWKClient``. .. code:: python import jwt from jwt import PyJWKClient token = "eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsImtpZCI6Ik5FRTFRVVJCT1RNNE16STVSa0ZETlRZeE9UVTFNRGcyT0Rnd1EwVXpNVGsxUWpZeVJrUkZRdyJ9.eyJpc3MiOiJodHRwczovL2Rldi04N2V2eDlydS5hdXRoMC5jb20vIiwic3ViIjoiYVc0Q2NhNzl4UmVMV1V6MGFFMkg2a0QwTzNjWEJWdENAY2xpZW50cyIsImF1ZCI6Imh0dHBzOi8vZXhwZW5zZXMtYXBpIiwiaWF0IjoxNTcyMDA2OTU0LCJleHAiOjE1NzIwMDY5NjQsImF6cCI6ImFXNENjYTc5eFJlTFdVejBhRTJINmtEME8zY1hCVnRDIiwiZ3R5IjoiY2xpZW50LWNyZWRlbnRpYWxzIn0.PUxE7xn52aTCohGiWoSdMBZGiYAHwE5FYie0Y1qUT68IHSTXwXVd6hn02HTah6epvHHVKA2FqcFZ4GGv5VTHEvYpeggiiZMgbxFrmTEY0csL6VNkX1eaJGcuehwQCRBKRLL3zKmA5IKGy5GeUnIbpPHLHDxr-GXvgFzsdsyWlVQvPX2xjeaQ217r2PtxDeqjlf66UYl6oY6AqNS8DH3iryCvIfCcybRZkc_hdy-6ZMoKT6Piijvk_aXdm7-QQqKJFHLuEqrVSOuBqqiNfVrG27QzAPuPOxvfXTVLXL2jek5meH6n-VWgrBdoMFH93QEszEDowDAEhQPHVs0xj7SIzA" kid = "NEE1QURBOTM4MzI5RkFDNTYxOTU1MDg2ODgwQ0UzMTk1QjYyRkRFQw" url = "https://dev-87evx9ru.auth0.com/.well-known/jwks.json" jwks_client = PyJWKClient(url) signing_key = jwks_client.get_signing_key_from_jwt(token) data = jwt.decode( token, signing_key.key, algorithms=["RS256"], audience="https://expenses-api", options={"verify_exp": False}, ) print(data) Support for JWKs containing ECDSA keys ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Add support for Ed25519 / EdDSA ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Pull Requests ``` - Add PyPy3 to the test matrix ([#​550](https://redirect.github.com/jpadilla/pyjwt/issues/550)) by [@​jdufresne](https://redirect.github.com/jdufresne) - Require tweak ([#​280](https://redirect.github.com/jpadilla/pyjwt/issues/280)) by [@​psafont](https://redirect.github.com/psafont) - Decode return type is dict\[str, Any] ([#​393](https://redirect.github.com/jpadilla/pyjwt/issues/393)) by [@​jacopofar](https://redirect.github.com/jacopofar) - Fix linter error in test_cli ([#​414](https://redirect.github.com/jpadilla/pyjwt/issues/414)) by [@​jaraco](https://redirect.github.com/jaraco) - Run mypy with tox ([#​421](https://redirect.github.com/jpadilla/pyjwt/issues/421)) by [@​jpadilla](https://redirect.github.com/jpadilla) - Document (and prefer) pyjwt\[crypto] req format ([#​426](https://redirect.github.com/jpadilla/pyjwt/issues/426)) by [@​gthb](https://redirect.github.com/gthb) - Correct type for json_encoder argument ([#​438](https://redirect.github.com/jpadilla/pyjwt/issues/438)) by [@​jdufresne](https://redirect.github.com/jdufresne) - Prefer https:// links where available ([#​439](https://redirect.github.com/jpadilla/pyjwt/issues/439)) by [@​jdufresne](https://redirect.github.com/jdufresne) - Pass python_requires argument to setuptools ([#​440](https://redirect.github.com/jpadilla/pyjwt/issues/440)) by [@​jdufresne](https://redirect.github.com/jdufresne) - Rename \[wheel] section to \[bdist_wheel] as the former is legacy ([#​441](https://redirect.github.com/jpadilla/pyjwt/issues/441)) by [@​jdufresne](https://redirect.github.com/jdufresne) - Remove setup.py test command in favor of pytest and tox ([#​442](https://redirect.github.com/jpadilla/pyjwt/issues/442)) by [@​jdufresne](https://redirect.github.com/jdufresne) - Fix mypy errors ([#​449](https://redirect.github.com/jpadilla/pyjwt/issues/449)) by [@​jpadilla](https://redirect.github.com/jpadilla) - DX Tweaks ([#​450](https://redirect.github.com/jpadilla/pyjwt/issues/450)) by [@​jpadilla](https://redirect.github.com/jpadilla) - Add support of python 3.8 ([#​452](https://redirect.github.com/jpadilla/pyjwt/issues/452)) by [@​Djailla](https://redirect.github.com/Djailla) - Fix 406 ([#​454](https://redirect.github.com/jpadilla/pyjwt/issues/454)) by [@​justinbaur](https://redirect.github.com/justinbaur) - Add support for [`Ed25519`](https://redirect.github.com/jpadilla/pyjwt/commit/Ed25519) / EdDSA, with unit tests ([#​455](https://redirect.github.com/jpadilla/pyjwt/issues/455)) by [@​Someguy123](https://redirect.github.com/Someguy123) - Remove Python 2.7 compatibility ([#​457](https://redirect.github.com/jpadilla/pyjwt/issues/457)) by [@​Djailla](https://redirect.github.com/Djailla) - Fix simple typo: encododed -> encoded ([#​462](https://redirect.github.com/jpadilla/pyjwt/issues/462)) by [@​timgates42](https://redirect.github.com/timgates42) - Enhance tracebacks. ([#​477](https://redirect.github.com/jpadilla/pyjwt/issues/477)) by [@​JulienPalard](https://redirect.github.com/JulienPalard) - Simplify `python_requires` ([#​478](https://redirect.github.com/jpadilla/pyjwt/issues/478)) by [@​michael-k](https://redirect.github.com/michael-k) - Document top-level .encode and .decode to close [#​459](https://redirect.github.com/jpadilla/pyjwt/issues/459) ([#​482](https://redirect.github.com/jpadilla/pyjwt/issues/482)) by [@​dimaqq](https://redirect.github.com/dimaqq) - Improve documentation for audience usage ([#​484](https://redirect.github.com/jpadilla/pyjwt/issues/484)) by [@​CorreyL](https://redirect.github.com/CorreyL) - Correct README on how to run tests locally ([#​489](https://redirect.github.com/jpadilla/pyjwt/issues/489)) by [@​jdufresne](https://redirect.github.com/jdufresne) - Fix `tox -e lint` warnings and errors ([#​490](https://redirect.github.com/jpadilla/pyjwt/issues/490)) by [@​jdufresne](https://redirect.github.com/jdufresne) - Run pyupgrade across project to use modern Python 3 conventions ([#​491](https://redirect.github.com/jpadilla/pyjwt/issues/491)) by [@​jdufresne](https://redirect.github.com/jdufresne) - Add Python-3-only trove classifier and remove "universal" from wheel ([#​492](https://redirect.github.com/jpadilla/pyjwt/issues/492)) by [@​jdufresne](https://redirect.github.com/jdufresne) - Emit warnings about user code, not pyjwt code ([#​494](https://redirect.github.com/jpadilla/pyjwt/issues/494)) by [@​mgedmin](https://redirect.github.com/mgedmin) - Move setup information to declarative setup.cfg ([#​495](https://redirect.github.com/jpadilla/pyjwt/issues/495)) by [@​jdufresne](https://redirect.github.com/jdufresne) - CLI options for verifying audience and issuer ([#​496](https://redirect.github.com/jpadilla/pyjwt/issues/496)) by [@​GeoffRichards](https://redirect.github.com/GeoffRichards) - Specify the target Python version for mypy ([#​497](https://redirect.github.com/jpadilla/pyjwt/issues/497)) by [@​jdufresne](https://redirect.github.com/jdufresne) - Remove unnecessary compatibility shims for Python 2 ([#​498](https://redirect.github.com/jpadilla/pyjwt/issues/498)) by [@​jdufresne](https://redirect.github.com/jdufresne) - Setup GH Actions ([#​499](https://redirect.github.com/jpadilla/pyjwt/issues/499)) by [@​jpadilla](https://redirect.github.com/jpadilla) - Implementation of ECAlgorithm.from_jwk ([#​500](https://redirect.github.com/jpadilla/pyjwt/issues/500)) by [@​jpadilla](https://redirect.github.com/jpadilla) - Remove cli entry point ([#​501](https://redirect.github.com/jpadilla/pyjwt/issues/501)) by [@​jpadilla](https://redirect.github.com/jpadilla) - Expose InvalidKeyError on jwt module ([#​503](https://redirect.github.com/jpadilla/pyjwt/issues/503)) by [@​russellcardullo](https://redirect.github.com/russellcardullo) - Avoid loading token twice in pyjwt.decode ([#​506](https://redirect.github.com/jpadilla/pyjwt/issues/506)) by [@​CaselIT](https://redirect.github.com/CaselIT) - Default links to stable version of documentation ([#​508](https://redirect.github.com/jpadilla/pyjwt/issues/508)) by [@​salcedo](https://redirect.github.com/salcedo) - Update README.md badges ([#​510](https://redirect.github.com/jpadilla/pyjwt/issues/510)) by [@​jpadilla](https://redirect.github.com/jpadilla) - Introduce better experience for JWKs ([#​511](https://redirect.github.com/jpadilla/pyjwt/issues/511)) by [@​jpadilla](https://redirect.github.com/jpadilla) - Fix tox conditional extras ([#​512](https://redirect.github.com/jpadilla/pyjwt/issues/512)) by [@​jpadilla](https://redirect.github.com/jpadilla) - Return tokens as string not bytes ([#​513](https://redirect.github.com/jpadilla/pyjwt/issues/513)) by [@​jpadilla](https://redirect.github.com/jpadilla) - Drop support for legacy contrib algorithms ([#​514](https://redirect.github.com/jpadilla/pyjwt/issues/514)) by [@​jpadilla](https://redirect.github.com/jpadilla) - Drop deprecation warnings ([#​515](https://redirect.github.com/jpadilla/pyjwt/issues/515)) by [@​jpadilla](https://redirect.github.com/jpadilla) - Update Auth0 sponsorship link ([#​519](https://redirect.github.com/jpadilla/pyjwt/issues/519)) by [@​Sambego](https://redirect.github.com/Sambego) - Update return type for jwt.encode ([#​521](https://redirect.github.com/jpadilla/pyjwt/issues/521)) by [@​moomoolive](https://redirect.github.com/moomoolive) - Run tests against Python 3.9 and add trove classifier ([#​522](https://redirect.github.com/jpadilla/pyjwt/issues/522)) by [@​michael-k](https://redirect.github.com/michael-k) - Removed redundant `default_backend()` ([#​523](https://redirect.github.com/jpadilla/pyjwt/issues/523)) by [@​rohitkg98](https://redirect.github.com/rohitkg98) - Documents how to use private keys with passphrases ([#​525](https://redirect.github.com/jpadilla/pyjwt/issues/525)) by [@​rayluo](https://redirect.github.com/rayluo) - Update version to 2.0.0a1 ([#​528](https://redirect.github.com/jpadilla/pyjwt/issues/528)) by [@​jpadilla](https://redirect.github.com/jpadilla) - Fix usage example ([#​530](https://redirect.github.com/jpadilla/pyjwt/issues/530)) by [@​nijel](https://redirect.github.com/nijel) - add EdDSA to docs ([#​531](https://redirect.github.com/jpadilla/pyjwt/issues/531)) by [@​CircleOnCircles](https://redirect.github.com/CircleOnCircles) - Remove support for EOL Python 3.5 ([#​532](https://redirect.github.com/jpadilla/pyjwt/issues/532)) by [@​jdufresne](https://redirect.github.com/jdufresne) - Upgrade to isort 5 and adjust configurations ([#​533](https://redirect.github.com/jpadilla/pyjwt/issues/533)) by [@​jdufresne](https://redirect.github.com/jdufresne) - Remove unused argument "verify" from PyJWS.decode() ([#​534](https://redirect.github.com/jpadilla/pyjwt/issues/534)) by [@​jdufresne](https://redirect.github.com/jdufresne) - Update typing syntax and usage for Python 3.6+ ([#​535](https://redirect.github.com/jpadilla/pyjwt/issues/535)) by [@​jdufresne](https://redirect.github.com/jdufresne) - Run pyupgrade to simplify code and use Python 3.6 syntax ([#​536](https://redirect.github.com/jpadilla/pyjwt/issues/536)) by [@​jdufresne](https://redirect.github.com/jdufresne) - Drop unknown pytest config option: strict ([#​537](https://redirect.github.com/jpadilla/pyjwt/issues/537)) by [@​jdufresne](https://redirect.github.com/jdufresne) - Upgrade black version and usage ([#​538](https://redirect.github.com/jpadilla/pyjwt/issues/538)) by [@​jdufresne](https://redirect.github.com/jdufresne) - Remove "Command line" sections from docs ([#​539](https://redirect.github.com/jpadilla/pyjwt/issues/539)) by [@​jdufresne](https://redirect.github.com/jdufresne) - Use existing key_path() utility function throughout tests ([#​540](https://redirect.github.com/jpadilla/pyjwt/issues/540)) by [@​jdufresne](https://redirect.github.com/jdufresne) - Replace force_bytes()/force_unicode() in tests with literals ([#​541](https://redirect.github.com/jpadilla/pyjwt/issues/541)) by [@​jdufresne](https://redirect.github.com/jdufresne) - Remove unnecessary Unicode decoding before json.loads() ([#​542](https://redirect.github.com/jpadilla/pyjwt/issues/542)) by [@​jdufresne](https://redirect.github.com/jdufresne) - Remove unnecessary force_bytes() calls prior to base64url_decode() ([#​543](https://redirect.github.com/jpadilla/pyjwt/issues/543)) by [@​jdufresne](https://redirect.github.com/jdufresne) - Remove deprecated arguments from docs ([#​544](https://redirect.github.com/jpadilla/pyjwt/issues/544)) by [@​jdufresne](https://redirect.github.com/jdufresne) - Update code blocks in docs ([#​545](https://redirect.github.com/jpadilla/pyjwt/issues/545)) by [@​jdufresne](https://redirect.github.com/jdufresne) - Refactor jwt/jwks_client.py without requests dependency ([#​546](https://redirect.github.com/jpadilla/pyjwt/issues/546)) by [@​jdufresne](https://redirect.github.com/jdufresne) - Tighten bytes/str boundaries and remove unnecessary coercing ([#​547](https://redirect.github.com/jpadilla/pyjwt/issues/547)) by [@​jdufresne](https://redirect.github.com/jdufresne) - Replace codecs.open() with builtin open() ([#​548](https://redirect.github.com/jpadilla/pyjwt/issues/548)) by [@​jdufresne](https://redirect.github.com/jdufresne) - Replace int_from_bytes() with builtin int.from_bytes() ([#​549](https://redirect.github.com/jpadilla/pyjwt/issues/549)) by [@​jdufresne](https://redirect.github.com/jdufresne) - Enforce .encode() return type using mypy ([#​551](https://redirect.github.com/jpadilla/pyjwt/issues/551)) by [@​jdufresne](https://redirect.github.com/jdufresne) - Prefer direct indexing over options.get() ([#​552](https://redirect.github.com/jpadilla/pyjwt/issues/552)) by [@​jdufresne](https://redirect.github.com/jdufresne) - Cleanup "noqa" comments ([#​553](https://redirect.github.com/jpadilla/pyjwt/issues/553)) by [@​jdufresne](https://redirect.github.com/jdufresne) - Replace merge_dict() with builtin dict unpacking generalizations ([#​555](https://redirect.github.com/jpadilla/pyjwt/issues/555)) by [@​jdufresne](https://redirect.github.com/jdufresne) - Do not mutate the input payload in PyJWT.encode() ([#​557](https://redirect.github.com/jpadilla/pyjwt/issues/557)) by [@​jdufresne](https://redirect.github.com/jdufresne) - Use direct indexing in PyJWKClient.get_signing_key_from_jwt() ([#​558](https://redirect.github.com/jpadilla/pyjwt/issues/558)) by [@​jdufresne](https://redirect.github.com/jdufresne) - Split PyJWT/PyJWS classes to tighten type interfaces ([#​559](https://redirect.github.com/jpadilla/pyjwt/issues/559)) by [@​jdufresne](https://redirect.github.com/jdufresne) - Simplify mocked_response test utility function ([#​560](https://redirect.github.com/jpadilla/pyjwt/issues/560)) by [@​jdufresne](https://redirect.github.com/jdufresne) - Autoupdate pre-commit hooks and apply them ([#​561](https://redirect.github.com/jpadilla/pyjwt/issues/561)) by [@​jdufresne](https://redirect.github.com/jdufresne) - Remove unused argument "payload" from PyJWS.\ *verify*\ signature() ([#​562](https://redirect.github.com/jpadilla/pyjwt/issues/562)) by [@​jdufresne](https://redirect.github.com/jdufresne) - Add utility functions to assist test skipping ([#​563](https://redirect.github.com/jpadilla/pyjwt/issues/563)) by [@​jdufresne](https://redirect.github.com/jdufresne) - Type hint jwt.utils module ([#​564](https://redirect.github.com/jpadilla/pyjwt/issues/564)) by [@​jdufresne](https://redirect.github.com/jdufresne) - Prefer ModuleNotFoundError over ImportError ([#​565](https://redirect.github.com/jpadilla/pyjwt/issues/565)) by [@​jdufresne](https://redirect.github.com/jdufresne) - Fix tox "manifest" environment to pass ([#​566](https://redirect.github.com/jpadilla/pyjwt/issues/566)) by [@​jdufresne](https://redirect.github.com/jdufresne) - Fix tox "docs" environment to pass ([#​567](https://redirect.github.com/jpadilla/pyjwt/issues/567)) by [@​jdufresne](https://redirect.github.com/jdufresne) - Simplify black configuration to be closer to upstream defaults ([#​568](https://redirect.github.com/jpadilla/pyjwt/issues/568)) by [@​jdufresne](https://redirect.github.com/jdufresne) - Use generator expressions ([#​569](https://redirect.github.com/jpadilla/pyjwt/issues/569)) by [@​jdufresne](https://redirect.github.com/jdufresne) - Simplify from_base64url_uint() ([#​570](https://redirect.github.com/jpadilla/pyjwt/issues/570)) by [@​jdufresne](https://redirect.github.com/jdufresne) - Drop lint environment from GitHub actions in favor of pre-commit.ci ([#​571](https://redirect.github.com/jpadilla/pyjwt/issues/571)) by [@​jdufresne](https://redirect.github.com/jdufresne) - \[pre-commit.ci] pre-commit autoupdate ([#​572](https://redirect.github.com/jpadilla/pyjwt/issues/572)) - Simplify tox configuration ([#​573](https://redirect.github.com/jpadilla/pyjwt/issues/573)) by [@​jdufresne](https://redirect.github.com/jdufresne) - Combine identical test functions using pytest.mark.parametrize() ([#​574](https://redirect.github.com/jpadilla/pyjwt/issues/574)) by [@​jdufresne](https://redirect.github.com/jdufresne) - Complete type hinting of jwks_client.py ([#​578](https://redirect.github.com/jpadilla/pyjwt/issues/578)) by [@​jdufresne](https://redirect.github.com/jdufresne) ### [`v1.7.0`](https://redirect.github.com/jpadilla/pyjwt/blob/HEAD/CHANGELOG.rst#v171-httpsgithubcomjpadillapyjwtcompare170171) [Compare Source](https://redirect.github.com/jpadilla/pyjwt/compare/1.6.4...1.7.0) Fixed ``` - Update test dependencies with pinned ranges - Fix pytest deprecation warnings ``` ### [`v1.6.4`](https://redirect.github.com/jpadilla/pyjwt/blob/HEAD/CHANGELOG.rst#v170-httpsgithubcomjpadillapyjwtcompare164170) [Compare Source](https://redirect.github.com/jpadilla/pyjwt/compare/1.6.3...1.6.4) Changed ``` - Remove CRLF line endings `#​353 `__ Fixed ~~~~~ - Update usage.rst `#​360 `__ Added ~~~~~ - Support for Python 3.7 `#​375 `__ `#​379 `__ `#​384 `__ ``` ### [`v1.6.3`](https://redirect.github.com/jpadilla/pyjwt/blob/HEAD/CHANGELOG.rst#v164-httpsgithubcomjpadillapyjwtcompare163164) [Compare Source](https://redirect.github.com/jpadilla/pyjwt/compare/1.6.1...1.6.3) Fixed ``` - Reverse an unintentional breaking API change to .decode() `#​352 `__ ``` ### [`v1.6.1`](https://redirect.github.com/jpadilla/pyjwt/blob/HEAD/CHANGELOG.rst#v163-httpsgithubcomjpadillapyjwtcompare161163) [Compare Source](https://redirect.github.com/jpadilla/pyjwt/compare/1.6.0...1.6.1) Changed ``` - All exceptions inherit from PyJWTError `#​340 `__ Added ~~~~~ - Add type hints `#​344 `__ - Add help module `7ca41e `__ Docs ~~~~ - Added section to usage docs for jwt.get\_unverified\_header() `#​350 `__ - Update legacy instructions for using pycrypto `#​337 `__ ``` ### [`v1.6.0`](https://redirect.github.com/jpadilla/pyjwt/blob/HEAD/CHANGELOG.rst#v161-httpsgithubcomjpadillapyjwtcompare160161) [Compare Source](https://redirect.github.com/jpadilla/pyjwt/compare/1.5.3...1.6.0) Fixed ``` - Audience parameter throws ``InvalidAudienceError`` when application does not specify an audience, but the token does. `#​336 `__ ``` ### [`v1.5.3`](https://redirect.github.com/jpadilla/pyjwt/blob/HEAD/CHANGELOG.rst#v160-httpsgithubcomjpadillapyjwtcompare153160) [Compare Source](https://redirect.github.com/jpadilla/pyjwt/compare/1.5.2...1.5.3) Changed ``` - Dropped support for python 2.6 and 3.3 `#​301 `__ - An invalid signature now raises an ``InvalidSignatureError`` instead of ``DecodeError`` `#​316 `__ Fixed ~~~~~ - Fix over-eager fallback to stdin `#​304 `__ Added ~~~~~ - Audience parameter now supports iterables `#​306 `__ ``` ### [`v1.5.2`](https://redirect.github.com/jpadilla/pyjwt/blob/HEAD/CHANGELOG.rst#v153-httpsgithubcomjpadillapyjwtcompare152153) [Compare Source](https://redirect.github.com/jpadilla/pyjwt/compare/1.5.1...1.5.2) Changed ``` - Increase required version of the cryptography package to >=1.4.0. Fixed ~~~~~ - Remove uses of deprecated functions from the cryptography package. - Warn about missing ``algorithms`` param to ``decode()`` only when ``verify`` param is ``True`` `#​281 `__ ``` ### [`v1.5.1`](https://redirect.github.com/jpadilla/pyjwt/blob/HEAD/CHANGELOG.rst#v152-httpsgithubcomjpadillapyjwtcompare151152) [Compare Source](https://redirect.github.com/jpadilla/pyjwt/compare/1.5.0...1.5.1) Fixed ``` - Ensure correct arguments order in decode super call `7c1e61d `__ ``` ### [`v1.5.0`](https://redirect.github.com/jpadilla/pyjwt/blob/HEAD/CHANGELOG.rst#v151-httpsgithubcomjpadillapyjwtcompare150151) [Compare Source](https://redirect.github.com/jpadilla/pyjwt/compare/1.4.2...1.5.0) Changed ``` - Change optparse for argparse. `#​238 `__ Fixed ~~~~~ - Guard against PKCS1 PEM encoded public keys `#​277 `__ - Add deprecation warning when decoding without specifying ``algorithms`` `#​277 `__ - Improve deprecation messages `#​270 `__ - PyJWT.decode: move verify param into options `#​271 `__ Added ~~~~~ - Support for Python 3.6 `#​262 `__ - Expose jwt.InvalidAlgorithmError `#​264 `__ ```