跳转到主要内容

Python绑定到网络和密码学(NaCl)库

项目描述

Latest Version https://codecov.io/github/pyca/pynacl/coverage.svg?branch=main Compatible Python Versions

PyNaCl是libsodium的Python绑定,libsodium是网络和密码学库的分支。这些库的目标是提高可用性、安全性和速度。它支持Python 3.6+以及PyPy 3。

特性

  • 数字签名

  • 密钥加密

  • 公钥加密

  • 哈希和消息认证

  • 基于密码的密钥派生和密码哈希

变更日志

安装

二进制轮安装

PyNaCl在macOS、Windows和Linux manylinux1 上作为二进制轮提供,所以所有依赖项都已包含。请确保您有最新的pip,然后运行

$ pip install pynacl

更快的轮构建

您可以通过定义环境变量LIBSODIUM_MAKE_ARGS将参数传递给make并启用并行化

$ LIBSODIUM_MAKE_ARGS=-j4 pip install pynacl

Linux源构建

PyNaCl依赖于libsodium,这是一个便携式C库。PyNaCl捆绑了一个副本,因此要安装,您可以运行

$ pip install pynacl

如果您想使用您分发提供的libsodium版本,您可以在安装过程中通过运行来禁用捆绑的副本

$ SODIUM_INSTALL=system pip install pynacl

变更日志

1.5.0 (2022-01-07)

  • 向后不兼容:移除了对Python 2.7和Python 3.5的支持。

  • 向后不兼容:我们不再分发manylinux1 wheels。

  • 添加了manylinux2014manylinux_2_24musllinux和macOS universal2 wheels(后者支持macOS arm64)。

  • libsodium更新到1.0.18-stable(2021年7月25日发布)。

  • 添加了内联类型提示。

1.4.0 (2020-05-25)

  • libsodium更新到1.0.18。

  • 向后不兼容:我们不再分发32位的manylinux1 wheels。继续生产它们是一个维护负担。

  • 添加了对Python 3.8的支持,并移除了对Python 3.4的支持。

  • 为从crypto_sign_ed25519密钥的密钥添加了对提取种子和公钥的低级绑定。

  • 为确定性随机生成添加了对低级绑定的支持。

  • setup.py中添加了wheelsetuptools setup_requirements (#485)

  • 修复了对非常慢的构建器的检查 (#481, #495)

  • 为ed25519算术函数添加了对低级绑定的支持。

  • 更新了低级blake2b状态实现。

  • 修复了SealedBox.decrypt()的错误短输入行为 (#517)

  • 在尝试将密码与存储在未知格式中的验证器进行比较时,而不是抛出InvalidkeyError异常,抛出CryptPrefixError异常 (#519)

  • 为libsodium的最小构建添加了支持。尝试调用最小构建中不可用的函数将抛出UnavailableError异常。要编译捆绑的libsodium的最小构建,将SODIUM_INSTALL_MINIMAL环境变量设置为任何非空字符串(例如SODIUM_INSTALL_MINIMAL=1)以进行设置。

1.3.0 2018-09-26

  • 添加了对Python 3.7的支持。

  • libsodium更新到1.0.16。

  • 通过sphinx的doctest构建器运行并测试PyNaCl文档中的所有代码示例。

  • 为chacha20-poly1305 AEAD构造添加了对低级绑定的支持。

  • 为chacha20-poly1305 secretstream构造添加了对低级绑定的支持。

  • 为ed25519ph预哈希签名构造添加了对低级绑定的支持。

  • 为表示为小端字节序列的固定精度大整数上的常数时间递增和加法添加了对低级绑定的支持。

  • 为ISO/IEC 7816-4兼容的填充API添加了对低级绑定的支持。

  • 为libsodium的crypto_kx…密钥交换构造添加了对低级绑定的支持。

  • 在tests/test_pwhash.py中将hypothesis deadline设置为None,以避免在较慢的处理器架构上发生不正确的测试失败。GitHub问题 #370

1.2.1 - 2017-12-04

  • 更新了hypothesis最小允许版本。

  • 基础设施:为readthedocs构建器运行时环境添加了适当的配置。

1.2.0 - 2017-11-01

  • libsodium更新到1.0.15。

  • 基础设施:为manylinux1二进制wheels的自动构建添加了对jenkins的支持。

  • 添加了对SealedBox构造的支持。

  • 添加了对argon2iargon2id密码哈希构造的支持,并重构了高级密码哈希实现以对所有哈希器公开相同的接口。

  • 添加了对128位siphashx24变体的siphash24的支持。

  • 为X25519密钥生成添加了对from_seed API的支持。

  • 取消了对Python 3.3的支持。

1.1.2 - 2017-03-31

  • 使用捆绑的libsodium时重新排序链接时间库搜索路径

1.1.1 - 2017-03-15

  • 修复了nacl.utils中的循环导入错误。

1.1.0 - 2017-03-14

  • 取消了对Python 2.6的支持。

  • Box类中添加了shared_key()方法。

  • 现在,当使用BoxSecretBox加密时,您可以传递Nonenonce,系统将自动生成随机nonce

  • 添加了对siphash24的支持。

  • 添加了对blake2b的支持。

  • 添加了对scrypt的支持。

  • libsodium更新到1.0.11版本。

  • 在编译时默认使用内置的libsodium

  • 所有抛出的异常都通过混合nacl.exceptions.CryptoError定义。

1.0.1 - 2016-01-24

  • 修复了阻止创建轮的问题。

1.0 - 2016-01-23

  • PyNaCl已迁移到使用cffi 1.0+中可用的新API。由于此更改,我们不再支持2.6版本以下的PyPy发布。

  • 已取消Python 3.2的支持。

  • 添加了转换Ed25519和Curve25519密钥之间的函数。

0.3.0 - 2015-03-04

  • 底层API(nacl.c.*)已更改为与上游NaCl C/C++约定(以及其他NaCl绑定)相匹配。参数和返回值的顺序已发生重大变化。为了避免无声失败,已删除nacl.c,并用nacl.bindings(带有新的参数顺序)替换。如果您有调用这些函数的代码(例如,nacl.c.crypto_box_keypair()),您必须查看新的文档字符串并更新您的代码/导入以匹配新的约定。

项目详情


下载文件

下载适用于您的平台的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。

源分布

PyNaCl-1.5.0.tar.gz (3.4 MB 查看哈希)

上传时间

构建分布

PyNaCl-1.5.0-cp36-abi3-win_amd64.whl (212.1 kB 查看哈希)

上传时间 CPython 3.6+ Windows x86-64

PyNaCl-1.5.0-cp36-abi3-win32.whl (204.6 kB 查看哈希)

上传时间 CPython 3.6+ Windows x86

PyNaCl-1.5.0-cp36-abi3-musllinux_1_1_x86_64.whl (1.1 MB 查看哈希)

上传时间 CPython 3.6+ musllinux: musl 1.1+ x86-64

PyNaCl-1.5.0-cp36-abi3-musllinux_1_1_aarch64.whl (663.8 kB 查看哈希值)

上传时间: CPython 3.6+ musllinux: musl 1.1+ ARM64

PyNaCl-1.5.0-cp36-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.1 MB 查看哈希值)

上传时间: CPython 3.6+ manylinux: glibc 2.17+ x86-64

PyNaCl-1.5.0-cp36-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_24_x86_64.whl (856.7 kB 查看哈希值)

上传时间: CPython 3.6+ manylinux: glibc 2.17+ x86-64 manylinux: glibc 2.24+ x86-64

PyNaCl-1.5.0-cp36-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (680.1 kB 查看哈希值)

上传时间: CPython 3.6+ manylinux: glibc 2.17+ ARM64

PyNaCl-1.5.0-cp36-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_24_aarch64.whl (601.7 kB 查看哈希值)

上传时间: CPython 3.6+ manylinux: glibc 2.17+ ARM64 manylinux: glibc 2.24+ ARM64

PyNaCl-1.5.0-cp36-abi3-macosx_10_10_universal2.whl (349.9 kB 查看哈希值)

上传时间: CPython 3.6+ macOS 10.10+ universal2 (ARM64, x86-64)

由以下支持