joserfc - en to zh translation catalogue (98 entries)

en: Algorithms
zh: 算法

en: All available algorithms for JWS, JWE, JWK, and JWT.
zh: JWS、JWE、JWK 和 JWT 所有可用的算法。

en: This documentation describes the algorithms to be used with JSON Web Signature (JWS), JSON Web Encryption (JWE), and JSON Web Key (JWK).
zh: 本文档描述了在 JSON Web Signature (JWS)、JSON Web Encryption (JWE) 和 JSON Web Key (JWK) 中使用的算法。

en: The JSON Web Key (JWK) algorithms contains:
zh: JSON Web Key（JWK）的算法包括：

en: :ref:`OctKey` : accepts key size in bits, which means the ``key_size`` MUST be dividable by 8.
zh: :ref:`OctKey` ：接受以比特为单位的密钥大小，这意味着 ``key_size`` 必须是 8 的倍数。

en: :ref:`RSAKey` : accepts key size in bits, ``key_size`` MUST ``>=512`` and dividable by 8.
zh: :ref:`RSAKey` ：接受以比特为单位的密钥大小，``key_size`` 必须 ``>=512`` 且为 8 的倍数。

en: :ref:`ECKey` : accepts ``crv`` with ``P-256``, ``P-384``, ``P-521``, and ``secp256k1``.
zh: :ref:`ECKey` ：接受 ``crv`` 为 ``P-256``、``P-384``、``P-521`` 和 ``secp256k1``。

en: :ref:`OKPKey` : accepts ``crv`` with ``Ed25519``, ``Ed448``, ``X25519``, and ``X448``.
zh: :ref:`OKPKey` ：接受 ``crv`` 为 ``Ed25519``、``Ed448``、``X25519`` 和 ``X448``。

en: ``joserfc.jws`` module supports algorithms from RFC7518, RFC8037, and RFC8812. You MUST specify the correct key type for each algorithm.
zh: ``joserfc.jws`` 模块支持 RFC7518、RFC8037 和 RFC8812 中的算法。您必须为每个算法指定正确的密钥类型。

en: Algorithm name
zh: 算法名

en: Key Type
zh: 密钥类型

en: :bdg-danger:`Deprecated`
zh: :bdg-danger:`弃用`

en: :bdg-success:`Recommended`
zh: :bdg-success:`推荐`

en: :bdg-muted:`Optional`
zh: :bdg-muted:`可选`

en: By default, JWS ``serialize`` and ``deserialize`` methods will ONLY allow recommended algorithms. To use non-recommended algorithms, developers MUST explicitly specify the algorithms either by the ``algorithms`` parameter, or ``registry`` parameter.
zh: 默认情况下，JWS 的 ``serialize`` 和 ``deserialize`` 方法仅允许使用推荐算法。要使用非推荐算法，开发者必须通过 ``algorithms`` 参数或 ``registry`` 参数显式指定算法。

en: ``none`` algorithm is deprecated via https://datatracker.ietf.org/doc/draft-ietf-jose-deprecate-none-rsa15/
zh: ``none`` 算法已被弃用，详见 https://datatracker.ietf.org/doc/draft-ietf-jose-deprecate-none-rsa15/

en: ``EdDSA`` algorithm only accepts ``OKPKey`` with "crv" of "Ed25519" and "Ed448".
zh: ``EdDSA`` 算法只接受具有 "crv" 为 "Ed25519" 和 "Ed448" 的 ``OKPKey``。

en: ``EdDSA`` algorithm is replaced by "Ed25519" and "Ed448" via RFC 9864.
zh: ``EdDSA`` 算法已依据 RFC 9864 被 "Ed25519" 和 "Ed448" 所取代。

en: ``joserfc.jwe`` module supports algorithms from RFC7518, and drafts of ``ECDH-1PU``. You MUST specify the correct key type for each algorithm.
zh: ``joserfc.jwe`` 模块支持 RFC7518 中的算法，以及 ``ECDH-1PU`` 的草案。您必须为每个算法指定正确的密钥类型。

en: All algorithms defined in RFC7518 for "enc" value are recommended, which including:
zh: RFC7518 中定义的所有用于 "enc" 值的算法都是推荐使用的，包括：

en: ``RSA1_5`` algorithm is deprecated via https://datatracker.ietf.org/doc/draft-ietf-jose-deprecate-none-rsa15/
zh: ``RSA1_5`` 算法已被弃用，详见 https://datatracker.ietf.org/doc/draft-ietf-jose-deprecate-none-rsa15/

en: There is also a ``DEF`` algorithm for the "zip" (compression) header parameter, using of ``DEF`` is optional.
zh: 对于 "zip"（压缩）头部参数，也有一个 ``DEF`` 算法，使用 ``DEF`` 是可选的。

en: There are also additional algorithms for "alg" and "enc" in draft versions. Please refer to the following sections for more information.
zh: 草案版本中还有针对 "alg" 和 "enc" 的额外算法。请参考以下章节获取更多信息。

en: You can use ``OKPKey`` with the "crv" (curve) parameter set to ``X25519`` or ``X448`` for the following algorithms:
zh: 对于以下算法，您可以使用 ``OKPKey`` 并将 "crv"（曲线）参数设置为 ``X25519`` 或 ``X448``：

en: This allows you to utilize these elliptic curve algorithms with ``OKPKey`` for your cryptographic operations.
zh: 这允许你在加密操作中使用 ``OKPKey`` 来利用这些椭圆曲线算法。

en: C20P and XC20P
zh: C20P 与 XC20P

en: ``C20P`` and ``XC20P`` algorithms are still in drafts, they are not registered by default. To use ``C20P`` and ``XC20P``, developers have to install the ``PyCryptodome`` module.
zh: ``C20P`` 和 ``XC20P`` 算法仍处于草案阶段，默认状态下他们未注册到 ``JWERegistry``。要使用 ``C20P`` 和 ``XC20P``，开发人员必须安装 ``PyCryptodome`` 模块。

en: This is caused by ``cryptography`` package does only support "ChaCha20" cipher, not **XChaCha20**, while ``pycryptodome`` supports both "ChaCha20" and "XChaCha20" ciphers.
zh: 这是由于 ``cryptography`` 库只支持 "ChaCha20" 密码算法，不支持 **XChaCha20**，而 ``pycryptodome`` 同时支持 "ChaCha20" 和 "XChaCha20" 密码算法。

en: Register ciphers
zh: 注册密码算法

en: The default :ref:`registry` doesn't contain draft ciphers, developers MUST register ``C20P`` and ``XC20P`` at first:
zh: 默认的 :ref:`registry` 不包含草案算法，开发人员必须先注册 ``C20P`` 和 ``XC20P``：

en: Use custom ``registry``
zh: 自定义注册表 ``registry``

en: Use a custom ``registry`` in :meth:`encrypt_compact`, :meth:`decrypt_compact`, :meth:`encrypt_json`, and :meth:`decrypt_json`.
zh: 在 :meth:`encrypt_compact`、:meth:`decrypt_compact`、:meth:`encrypt_json` 和 :meth:`decrypt_json` 中使用自定义 ``registry``。

en: ECDH-1PU algorithms
zh: ECDH-1PU 相关算法

en: Key Agreement with Elliptic Curve Diffie-Hellman One-Pass Unified Model (ECDH-1PU) are still in drafts, they are not registered by default. To use ``ECDH-1PU`` related algorithms, developers MUST register them manually:
zh: 椭圆曲线迪菲-赫尔曼一次通用模型（ECDH-1PU）密钥协商仍然处于草案阶段，默认情况下未注册。要使用与 ``ECDH-1PU`` 相关的算法，开发人员必须手动注册它们：

en: Then use a custom ``registry`` with the required ``ECDH-1PU`` algorithms. For instance:
zh: 然后使用带有所需的 ``ECDH-1PU`` 算法的自定义 ``registry``。例如：

en: The ``ECDH-1PU`` algorithms require a **sender key**, which MUST be a private key when calling :meth:`encrypt_compact` and :meth:`encrypt_json` methods.
zh: ``ECDH-1PU`` 算法需要一个 **发送方密钥**，在调用 :meth:`encrypt_compact` 和 :meth:`encrypt_json` 方法时，该密钥必须是私钥。

en: The ``sender_key`` can be a :class:`~joserfc.jwk.KeySet`, and JWE will find the correct key according to ``skid`` header value.
zh: ``sender_key`` 可以是 :class:`~joserfc.jwk.KeySet`，JWE 会根据 ``skid`` 头部值查找正确的密钥。

en: Errors & Warnings
zh: 错误与警告

en: Here are some common errors and warnings, and how to handle them.
zh: 以下是一些常见的错误和警告，以及如何处理它们。

en: Guide
zh: 教程

en: This section provides a quick overview of how to get started with ``joserfc`` and perform encoding and decoding a JWT.
zh: 本章节提供了关于如何开始使用 ``joserfc`` 并进行 JWT 编码和解码的快速概述。

en: Encode and decode JWT
zh: JWT 的编码与解码

en: Learn the details of :ref:`jwt` in the next chapter.
zh: 您可以在下一章节中了解 :ref:`jwt` 的详细信息。

en: Import and generate JWK
zh: JWK 的导入与导出

en: Learn the details of :ref:`jwk` in the next chapter.
zh: 您可以在下一章节中了解 :ref:`jwk` 的详细信息。

en: Dive deep
zh: 深入了解

en: Next, learn each module in details.
zh: 接下来，详细学习下面的每个模块。

en: Learn how to use ``OctKey``, ``RSAKey``, ``ECKey``, ``OKPKey``, and JSON Web Key Set.
zh: 学习如何使用 ``OctKey``、``RSAKey``、``ECKey``、``OKPKey`` 以及 JSON Web Key Set。

en: JSON Web Token (JWT) is built on top of :ref:`jws` or :ref:`jwe`.
zh: JSON Web Token (JWT) 本质上是一种 :ref:`jws` 或者 :ref:`jwe`。

en: Most :ref:`jwt` are encoded with JWS in compact serialization.
zh: 通常我们见到的 :ref:`jwt` 都是基于 JWS 的紧凑序列化编码。

en: JSON Web Encryption (JWE) represents encrypted content using JSON-based data structures.
zh: JSON Web Encryption (JWE) 使用基于 JSON 的数据结构表示加密内容。

en: Introduction
zh: 介绍

en: ``joserfc`` is a Python library that provides a comprehensive implementation of several essential JSON Object Signing and Encryption (JOSE) standards.
zh: ``joserfc`` 是一个 Python 库，提供了对多个重要的 JSON Object Signing and Encryption (JOSE) 标准的全面实现。

en: Derived from Authlib_, ``joserfc`` offers a redesigned API specifically tailored to JOSE functionality, making it easier for developers to work with JWS, JWE, JWK, JWA, and JWT in their Python applications.
zh: ``joserfc`` 源自 Authlib_，专门为 JOSE 功能量身定制。同时我们重新设计了 API，让开发人员更容易在其 Python 应用程序中处理 JWS、JWE、JWK、JWA 和 JWT。

en: Features
zh: 特点

en: **Python Type Hints**: ``joserfc`` takes advantage of Python's type hinting capabilities, providing a more expressive and readable codebase. The use of type hints enhances development workflows by enabling better static analysis, improved IDE support, and more reliable code refactoring.
zh: **Python 类型提示**：``joserfc`` 充分利用了 Python 的类型提示功能，提供了更具表达力和可读性的代码库。使用类型提示可以增强开发工作流程，实现更好的静态分析、改善 IDE 支持和更可靠的代码重构。

en: **Organized Codebase with RFC Compliance**: ``joserfc`` is structured following the RFC standards, ensuring clear separation and organization of the different JOSE functionalities. It strictly follows the latest versions of the JOSE standards, guaranteeing the highest level of interoperability and compliance.
zh: **代码库组织有序且符合 RFC 标准**：``joserfc`` 的结构遵循 RFC 标准，确保不同的 JOSE 功能之间的清晰分离和组织。它严格遵循最新的 JOSE 标准版本，确保最高水平的互操作性和合规性。

en: Why joserfc?
zh: 为何创建 joserfc

en: ``joserfc`` is derived from Authlib to facilitate easy maintenance and modularity. Previously, Authlib was developed as a mono library to design a comprehensive API that covered a wide range of authentication and security needs. However, as the project evolved, it became evident that splitting the modules from Authlib would improve maintainability and provide more focused and specialized libraries.
zh: ``joserfc`` 分离自 Authlib，以便于简化维护和模块化。之前，Authlib 是作为一个单体库开发的，旨在设计一个涵盖广泛身份验证和安全需求的全面 API。然而，随着项目的发展，我们发现是时候将模块从 Authlib 中拆分出来了，这将有助于提高项目的可维护性，并提供更专注和专业化的 JOSE 库。

en: With ``joserfc``, developers can now benefit from a standalone library dedicated specifically to JOSE standards. This focused approach allows for better code organization, improved documentation, and a more streamlined development experience. By utilizing ``joserfc``, developers can confidently integrate JOSE functionalities into their projects, knowing that they are working with a dedicated and well-maintained solution.
zh: ``joserfc`` 是一个专门用于JOSE标准的 Python 库，方便开发人员处理 JOSE 相关事务。这次改进不仅有助于更好地组织代码和文档，还能提供更流畅的开发体验。开发人员可以放心地使用``joserfc``将JOSE功能无缝集成到他们的项目中，确保他们正在使用一个专注并且维护良好的解决方案。

en: JSON Web Encryption (JWE) represents encrypted content using JSON-based data structures. (via RFC7516_)
zh: JSON Web Encryption (JWE) 使用基于 JSON 的数据结构表示加密内容。（参考 RFC7516_）

en: Compact Encryption
zh: 紧凑型加密

en: The JWE Compact Serialization represents encrypted content as a compact, URL-safe string.  This string is:
zh: JWE 紧凑型（Compact）序列化将加密内容表示为紧凑的、URL 安全的字符串。该字符串为：

en: An example of a compact serialization (line breaks for display purposes only):
zh: 以下是一个紧凑型序列化的例子（换行符仅用于显示目的）：

en: Encryption
zh: 加密

en: You can call :meth:`jwe.encrypt_compact` to construct a compact JWE serialization:
zh: 你可以调用 :meth:`jwe.encrypt_compact` 来构建一个紧凑型序列化：

en: It is suggested that you learn the :ref:`jwk` section, and find the correct key type according to :ref:`JSON Web Encryption Algorithms <jwe_algorithms>`.
zh: 建议您学习 :ref:`jwk` 部分，并根据 :ref:`JSON Web Encryption Algorithms <jwe_algorithms>` 找到正确的密钥类型。

en: Decryption
zh: 解密

en: And make sure only adding one recipient.
zh: 同时注意，你只能增加一位成员。

en: Algorithms & Registry
zh: 算法和注册表

en: Create an "oct" key
zh: 生成一个 OctKey

en: You can generate an ``OctKey`` with the :meth:`OctKey.generate_key` method:
zh: 你可以调用 :meth:`OctKey.generate_key` 来生成一个 ``OctKey``：

en: Import an "oct" key
zh: 导入一个 OctKey

en: You can import an ``OctKey`` from string, bytes and a JWK (in dict).
zh: 您可以从字符串、字节和 JWK（dict）导入一个 ``OctKey``。

en: Generate an "RSA" key
zh: 生成一个 RSAKey

en: Import an "RSA" key
zh: 导入一个 RSAKey

en: You can import an ``RSAKey`` from string, bytes and a JWK (in dict).
zh: 您可以从字符串、字节和 JWK（dict）导入一个 ``RSAKey``。

en: Generate an "EC" key
zh: 生成一个 ECKey

en: ``P-256`` via RFC7518
zh: RFC7518 的 ``P-256``

en: ``P-384`` via RFC7518
zh: RFC7518 的 ``P-384``

en: ``P-521`` via RFC7518
zh: RFC7518 的 ``P-521``

en: ``secp256k1`` via RFC8812
zh: RFC8812 的 ``secp256k1``

en: It is ``P-521``, not ``P-512``, it is not a typo.
zh: 这里确实是``P-521``，而不是``P-512``，我们没有写错。

en: Import an "EC" key
zh: 导入一个 ECKey

en: You can import an ``ECKey`` from string, bytes and a JWK (in dict).
zh: 您可以从字符串、字节和 JWK（dict）导入一个 ``ECKey``。

en: Generate an "OKP" key
zh: 生成一个 OKPKey

en: Import an "OKP" key
zh: 导入一个 OKPKey

en: You can import an ``OKPKey`` from string, bytes and a JWK (in dict).
zh: 您可以从字符串、字节和 JWK（dict）导入一个 ``OKPKey``。

en: Create a key set
zh: 生成一个 KeySet

en: Import a key set
zh: 导入一个 KeySet

en: An example about importing JWKS from a local file:
zh: 以下是一个从本地文件导入 JWKS 的例子：

en: You can also use the ``jwk.thumbprint`` method:
zh: 你也可以使用 ``jwk.thumbprint`` 方法：

en: You can also use the ``jwk.thumbprint_uri`` method:
zh: 你也可以使用 ``jwk.thumbprint_uri`` 方法：

en: Dump an asymmetric key into PEM format (in bytes):
zh: 将非对称密钥转换为 PEM 格式（数据为字节形式）：

en: Guess Algorithms via Key
zh: 通过密钥猜测算法

en: JSON Encoder and Decoder
zh: JSON 的编码与解码

en: Registry
zh: 注册表

en: Type checking
zh: 类型检查
