first commit

This commit is contained in:
linkitapps
2026-09-14 23:22:10 +09:00
commit 9f9c8fb69b
4207 changed files with 1333187 additions and 0 deletions
@@ -0,0 +1 @@
pip
@@ -0,0 +1,92 @@
Metadata-Version: 2.4
Name: joserfc
Version: 1.7.5
Summary: The ultimate Python library for JOSE RFCs, including JWS, JWE, JWK, JWA, JWT
Author-email: Hsiaoming Yang <me@lepture.com>
License: BSD-3-Clause
Project-URL: Documentation, https://jose.authlib.org/
Project-URL: Source, https://github.com/authlib/joserfc
Project-URL: Funding, https://github.com/sponsors/authlib
Project-URL: Blog, https://blog.authlib.org/
Classifier: Development Status :: 5 - Production/Stable
Classifier: Environment :: Console
Classifier: Environment :: Web Environment
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: BSD License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Programming Language :: Python :: 3.14
Classifier: Programming Language :: Python :: Implementation :: CPython
Classifier: Programming Language :: Python :: Implementation :: PyPy
Classifier: Topic :: Security
Classifier: Topic :: Security :: Cryptography
Requires-Python: >=3.10
Description-Content-Type: text/x-rst
License-File: LICENSE
Requires-Dist: cryptography>=45.0.1
Provides-Extra: drafts
Requires-Dist: pycryptodome; extra == "drafts"
Dynamic: license-file
JOSE RFC
========
``joserfc`` is a Python library that provides a comprehensive implementation of several
essential JSON Object Signing and Encryption (JOSE) standards.
This package contains implementation of:
- RFC7515: JSON Web Signature
- RFC7516: JSON Web Encryption
- RFC7517: JSON Web Key
- RFC7518: JSON Web Algorithms
- RFC7519: JSON Web Token
- RFC7520: Examples of Protecting Content Using JSON Object Signing and Encryption
- RFC7638: JSON Web Key (JWK) Thumbprint
- RFC7797: JSON Web Signature (JWS) Unencoded Payload Option
- RFC8037: OKP Key and EdDSA algorithm
- RFC8812: ES256K algorithm
- RFC9278: JWK Thumbprint URI
- RFC9864: ``Ed25519`` and ``Ed448`` algorithms
And draft RFCs implementation of:
- draft-ietf-jose-deprecate-none-rsa15-02
- draft-amringer-jose-chacha-02
- draft-madden-jose-ecdh-1pu-04
Usage
-----
A quick and simple JWT encoding and decoding would look something like this:
.. code-block:: python
>>> from joserfc import jwt, jwk
>>> key = jwk.import_key("your-secret-key", "oct")
>>> encoded_jwt = jwt.encode({"alg": "HS256"}, {"k": "value"}, key)
>>> encoded_jwt
'eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJrIjoidmFsdWUifQ._M8ViO_GK6TnZ9G9eqdlS7IpNWzhoGwaYYDQ3hEwwmA'
>>> token = jwt.decode(encoded_jwt, key)
>>> token.header
{'alg': 'HS256', 'typ': 'JWT'}
>>> token.claims
{'key': 'value'}
>>> claims_requests = jwt.JWTClaimsRegistry()
>>> claims_requests.validate(token.claims)
Useful Links
------------
1. GitHub: https://github.com/authlib/joserfc
2. Docs: https://jose.authlib.org/en/
License
-------
Licensed under BSD. Please see LICENSE for licensing details.
@@ -0,0 +1,117 @@
joserfc-1.7.5.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4
joserfc-1.7.5.dist-info/METADATA,sha256=F99iu9xyErvNoxROcnIKYvw0u_dsVzBik5Egc4VFJQ8,3134
joserfc-1.7.5.dist-info/RECORD,,
joserfc-1.7.5.dist-info/WHEEL,sha256=YVMoNqKzERt-wjUZwJ33xBGAwnFl-4cqbYkTtWa4itE,91
joserfc-1.7.5.dist-info/licenses/LICENSE,sha256=Ge4fr8yexCF_wyuKZR2CBTjHic9AQctORrSxdqXyqcg,1501
joserfc-1.7.5.dist-info/top_level.txt,sha256=pTU_ZAJ43AZ3qX9VkHIM98oVG_D37z15bc056667DTM,8
joserfc/__init__.py,sha256=-fyu6pIp0bMfkaHQZJTxi2O3qGmBKS4zP3LT_gYCsUg,144
joserfc/__pycache__/__init__.cpython-311.pyc,,
joserfc/__pycache__/_keys.cpython-311.pyc,,
joserfc/__pycache__/errors.cpython-311.pyc,,
joserfc/__pycache__/jwa.cpython-311.pyc,,
joserfc/__pycache__/jwe.cpython-311.pyc,,
joserfc/__pycache__/jwk.cpython-311.pyc,,
joserfc/__pycache__/jws.cpython-311.pyc,,
joserfc/__pycache__/jwt.cpython-311.pyc,,
joserfc/__pycache__/registry.cpython-311.pyc,,
joserfc/__pycache__/util.cpython-311.pyc,,
joserfc/_keys.py,sha256=yYN-Pj7wWvmCBRrxqMs4-UWwS1688DtT5ZXPrwaLrGo,6773
joserfc/_rfc7515/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
joserfc/_rfc7515/__pycache__/__init__.cpython-311.pyc,,
joserfc/_rfc7515/__pycache__/compact.cpython-311.pyc,,
joserfc/_rfc7515/__pycache__/json.cpython-311.pyc,,
joserfc/_rfc7515/__pycache__/model.cpython-311.pyc,,
joserfc/_rfc7515/__pycache__/registry.cpython-311.pyc,,
joserfc/_rfc7515/__pycache__/types.cpython-311.pyc,,
joserfc/_rfc7515/compact.py,sha256=lJz8ukqy-bLI7r0XlfzuDEMtv2LmSBHNmN9CFYBURFU,1534
joserfc/_rfc7515/json.py,sha256=4GJCt_c5JVz9bjw-qKpasYxICp_GeFl8qVQEVa5RyH0,5230
joserfc/_rfc7515/model.py,sha256=hjsrBu5HJPgOiNdONGfThNx0NMODYouEnR1v7Limnc0,4227
joserfc/_rfc7515/registry.py,sha256=PXi0aKpVdKiuy74Yb85Q6yJ-kG3_YjvMqIs8mcguSVs,6278
joserfc/_rfc7515/types.py,sha256=k9X37BDsXlFMHGV2afxKpPV21LMIhF1HxbkCxaHb8nQ,757
joserfc/_rfc7516/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
joserfc/_rfc7516/__pycache__/__init__.cpython-311.pyc,,
joserfc/_rfc7516/__pycache__/compact.cpython-311.pyc,,
joserfc/_rfc7516/__pycache__/json.cpython-311.pyc,,
joserfc/_rfc7516/__pycache__/message.cpython-311.pyc,,
joserfc/_rfc7516/__pycache__/models.cpython-311.pyc,,
joserfc/_rfc7516/__pycache__/registry.cpython-311.pyc,,
joserfc/_rfc7516/__pycache__/types.cpython-311.pyc,,
joserfc/_rfc7516/compact.py,sha256=4uhq1brqDi8pymRKuYRPS8C7Vx2Tqd6TuoKnBdsSpgw,2263
joserfc/_rfc7516/json.py,sha256=2A5V0eDlyMB4jnARx74EoS-cL8jNecvK4vWWd4uztSY,5033
joserfc/_rfc7516/message.py,sha256=2LGbHDiFmXbPNOx3yVHeil00Q41NpAwGmrMxbMpKih0,10539
joserfc/_rfc7516/models.py,sha256=B4XAKWWsQZ1y40ZHtQX2c-trYwKqoaX1IUT6gSmepwg,10867
joserfc/_rfc7516/registry.py,sha256=W54CXmyosGfxls-Gt67N6WYU5Oq5CYwjP078-NaK4Ik,6759
joserfc/_rfc7516/types.py,sha256=mKTpEGyV5j8y9rflcJucMFV95Y-7Z4WXGpSmiU1JQTo,667
joserfc/_rfc7517/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
joserfc/_rfc7517/__pycache__/__init__.cpython-311.pyc,,
joserfc/_rfc7517/__pycache__/models.cpython-311.pyc,,
joserfc/_rfc7517/__pycache__/pem.cpython-311.pyc,,
joserfc/_rfc7517/__pycache__/types.cpython-311.pyc,,
joserfc/_rfc7517/models.py,sha256=9fkJueWGqbnwBt8YrpSZNGeiSKhuG3iTSt_EFzuo6tw,12155
joserfc/_rfc7517/pem.py,sha256=BA0s8f58ApytVcgzZ1uPE5Cnhug-olNlBQO3F1TaqgQ,4684
joserfc/_rfc7517/types.py,sha256=W_w52zZnCLeSpeci4FfpDkK7bHm-PZbNa5_RwQkBGVo,504
joserfc/_rfc7518/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
joserfc/_rfc7518/__pycache__/__init__.cpython-311.pyc,,
joserfc/_rfc7518/__pycache__/derive_key.cpython-311.pyc,,
joserfc/_rfc7518/__pycache__/ec_key.cpython-311.pyc,,
joserfc/_rfc7518/__pycache__/jwe_algs.cpython-311.pyc,,
joserfc/_rfc7518/__pycache__/jwe_encs.cpython-311.pyc,,
joserfc/_rfc7518/__pycache__/jwe_zips.cpython-311.pyc,,
joserfc/_rfc7518/__pycache__/jws_algs.cpython-311.pyc,,
joserfc/_rfc7518/__pycache__/oct_key.cpython-311.pyc,,
joserfc/_rfc7518/__pycache__/rsa_key.cpython-311.pyc,,
joserfc/_rfc7518/__pycache__/util.cpython-311.pyc,,
joserfc/_rfc7518/derive_key.py,sha256=ctjRsuacvYVlsgJp5lDxL4hKY5L984P_ecGbjbqU-B8,1401
joserfc/_rfc7518/ec_key.py,sha256=tDIpIuq_dj4_arsH_9T-4RlUtAOt6v1qQ99FyHfuIWk,9138
joserfc/_rfc7518/jwe_algs.py,sha256=ooXobX0lqHp-Suzl28VhOYoHdg_7ugB7Z4YSM9PdLx0,13038
joserfc/_rfc7518/jwe_encs.py,sha256=teen7Cy-a_y6iWX1zsQEb6ZCegoDbX_tb1rLfbsoGX0,4108
joserfc/_rfc7518/jwe_zips.py,sha256=E4unXS_Mp2vkOM1_Rs1p33HBmmAkX4eJiFeTJ44KZLQ,1048
joserfc/_rfc7518/jws_algs.py,sha256=tLssUskbtW2DSSmF2JInHQTKBy5VCw1kCykPILSjGQU,7040
joserfc/_rfc7518/oct_key.py,sha256=u4NEaw5UkK34-AHgGhSShwzwTIrDQ9gTm2dDcC_xnV8,3494
joserfc/_rfc7518/rsa_key.py,sha256=AGBkgk1RoEdQLYioNlZgCZfBu0DnsapgBS51BAF0AD0,6943
joserfc/_rfc7518/util.py,sha256=tEcrRgjf1F6eVBqSZBFOA1iR58dfpBWDpXInCXeevwQ,298
joserfc/_rfc7519/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
joserfc/_rfc7519/__pycache__/__init__.cpython-311.pyc,,
joserfc/_rfc7519/__pycache__/claims.cpython-311.pyc,,
joserfc/_rfc7519/__pycache__/security.cpython-311.pyc,,
joserfc/_rfc7519/claims.py,sha256=e3ztcWpX8Ij6Ye3jwhQpC9uVt0LDqB0DIemqaFNABHc,8940
joserfc/_rfc7519/security.py,sha256=0q29Dm5vxNNC23TjX6w7V4vHyXwUOT_w9--XQI1q6bY,1234
joserfc/_rfc7638/__init__.py,sha256=7MKaB3rx62T_UdR8rnsfQdhr3opIqWW0AYbfAIye_9o,938
joserfc/_rfc7638/__pycache__/__init__.cpython-311.pyc,,
joserfc/_rfc7797/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
joserfc/_rfc7797/__pycache__/__init__.cpython-311.pyc,,
joserfc/_rfc7797/__pycache__/compact.cpython-311.pyc,,
joserfc/_rfc7797/__pycache__/json.cpython-311.pyc,,
joserfc/_rfc7797/__pycache__/util.cpython-311.pyc,,
joserfc/_rfc7797/compact.py,sha256=tGk6-uPUXQ2DrHe1Pdgr3PaM2fx1SRal7SC5WGp1YIU,2899
joserfc/_rfc7797/json.py,sha256=D5jIMrd1D8sLDgnfNX3ndOZHyFnTfJGlPruG6zqE4JQ,1834
joserfc/_rfc7797/util.py,sha256=otwMWZk640xD2XTXZfJOb7J53GjVLE0oTRyU_Uleu3I,428
joserfc/_rfc8037/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
joserfc/_rfc8037/__pycache__/__init__.cpython-311.pyc,,
joserfc/_rfc8037/__pycache__/jws_eddsa.cpython-311.pyc,,
joserfc/_rfc8037/__pycache__/okp_key.cpython-311.pyc,,
joserfc/_rfc8037/jws_eddsa.py,sha256=GCQFjhS3cH8o3ooZboLpewHT8dCA34Rz4cnyQLnH1Hc,1350
joserfc/_rfc8037/okp_key.py,sha256=LCWUJOCOckC7HJAwjKx09r5-oWUL1gdrRjUMfQScz9A,11362
joserfc/_rfc8812/__init__.py,sha256=5w3IpVAqUiXa74guNrRK4knyHAA95sRkdDridESvf8c,389
joserfc/_rfc8812/__pycache__/__init__.cpython-311.pyc,,
joserfc/_rfc9278/__init__.py,sha256=pK3qp2WL1nWwB9jwWq-64iROCHWjL1TeRjYFqE_9f5E,974
joserfc/_rfc9278/__pycache__/__init__.cpython-311.pyc,,
joserfc/_rfc9864/__init__.py,sha256=ixUdjXB5vFaMypU1SHvDFlUGkgA8I5aFgUsLZ5ibbfE,120
joserfc/_rfc9864/__pycache__/__init__.cpython-311.pyc,,
joserfc/_rfc9864/__pycache__/jws_eddsa.cpython-311.pyc,,
joserfc/_rfc9864/jws_eddsa.py,sha256=jw0iIcaYP82_TbZVNsHP-BU70qbPgkS3U2vuB233qb8,1451
joserfc/drafts/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
joserfc/drafts/__pycache__/__init__.cpython-311.pyc,,
joserfc/drafts/__pycache__/jwe_chacha20.cpython-311.pyc,,
joserfc/drafts/__pycache__/jwe_ecdh_1pu.cpython-311.pyc,,
joserfc/drafts/jwe_chacha20.py,sha256=hodV0LxnVfXw1YsxVmIZsjfO8dxssmIuoLEyT_Qolqs,1440
joserfc/drafts/jwe_ecdh_1pu.py,sha256=a_6tO4EqtaXu9vXHDHwN7Rd5pPLWsGcKzlAsK2zDrIw,5049
joserfc/errors.py,sha256=4l4qYd7VFppgWALWVxax1QoYHYs-322yESpSLW61YXM,6014
joserfc/jwa.py,sha256=h-BAKxRzf4enessvwcepDa9xxGXqEG6TCsIpxLUi8VY,2287
joserfc/jwe.py,sha256=bMpR4n0uzeURXHFI3XZk1u0Ey0TdT9Zg3KxxFDY_Evo,10125
joserfc/jwk.py,sha256=ELvNeSlw8phQ_svZzyexJqJSL5ih6jHsdBM3iNHPgWY,6432
joserfc/jws.py,sha256=Ck-be2Kmce8WuePEdvPCOxBV7D82phQEdSDCuCgT9Ms,11048
joserfc/jwt.py,sha256=a9pwKskSCVozzMX1YEr0O0Jilb7B9N2lCMAsvBAhTj0,4120
joserfc/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
joserfc/registry.py,sha256=MA0Gp5GGb7ZbfAgMc-ZNTva-5kROwf2dTSViFRkkXEU,7506
joserfc/util.py,sha256=X5hNEfKZY3V6CcFOsxCCzl-F3XNHbjAKYjnaUraBHqc,1885
@@ -0,0 +1,5 @@
Wheel-Version: 1.0
Generator: setuptools (84.0.0)
Root-Is-Purelib: true
Tag: py3-none-any
@@ -0,0 +1,28 @@
BSD 3-Clause License
Copyright (c) 2023, Hsiaoming Yang
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:
1. Redistributions of source code must retain the above copyright notice, this
list of conditions and the following disclaimer.
2. Redistributions in binary form must reproduce the above copyright notice,
this list of conditions and the following disclaimer in the documentation
and/or other materials provided with the distribution.
3. Neither the name of the copyright holder nor the names of its
contributors may be used to endorse or promote products derived from
this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
@@ -0,0 +1 @@
joserfc