Python绑定到网络和密码学(NaCl)库
项目描述
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。添加了
manylinux2014
、manylinux_2_24
、musllinux
和macOSuniversal2
wheels(后者支持macOSarm64
)。将
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
中添加了wheel
和setuptools
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
构造的支持。添加了对
argon2i
和argon2id
密码哈希构造的支持,并重构了高级密码哈希实现以对所有哈希器公开相同的接口。添加了对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()方法。
现在,当使用Box或SecretBox加密时,您可以传递None给nonce,系统将自动生成随机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 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 8ac7448f09ab85811607bdd21ec2464495ac8b7c66d146bf545b0f08fb9220ba |
|
MD5 | 93989045e25f1111452cfdf5e021814d |
|
BLAKE2b-256 | a72227582568be639dfe22ddb3902225f91f2f17ceff88ce80e4db396c8986da |
PyNaCl-1.5.0-cp36-abi3-win_amd64.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 20f42270d27e1b6a29f54032090b972d97f0a1b0948cc52392041ef7831fee93 |
|
MD5 | c8b8dd769782cf55424df4d408fc77e1 |
|
BLAKE2b-256 | 5e22d3db169895faaf3e2eda892f005f433a62db2decbcfbc2f61e6517adfa87 |
PyNaCl-1.5.0-cp36-abi3-win32.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | e46dae94e34b085175f8abb3b0aaa7da40767865ac82c928eeb9e57e1ea8a543 |
|
MD5 | 8e51974faf14142f881b6afd478ce2b9 |
|
BLAKE2b-256 | 252db7df6ddb0c2a33afdb358f8af6ea3b8c4d1196ca45497dd37a56f0c122be |
PyNaCl-1.5.0-cp36-abi3-musllinux_1_1_x86_64.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 61f642bf2378713e2c2e1de73444a3778e5f0a38be6fee0fe532fe30060282ff |
|
MD5 | a1402876cfad3c019793d30ddbb9668d |
|
BLAKE2b-256 | fd1acc308a884bd299b651f1633acb978e8596c71c33ca85e9dc9fa33a5399b9 |
哈希值 为 PyNaCl-1.5.0-cp36-abi3-musllinux_1_1_aarch64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | a422368fc821589c228f4c49438a368831cb5bbc0eab5ebe1d7fac9dded6567b |
|
MD5 | 9f2ad04e49f230f435e60f3de84f8306 |
|
BLAKE2b-256 | 3d85c262db650e86812585e2bc59e497a8f59948a005325a11bbbc9ecd3fe26b |
哈希值 为 PyNaCl-1.5.0-cp36-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 06b8f6fa7f5de8d5d2f7573fe8c863c051225a27b61e6860fd047b1775807858 |
|
MD5 | 4e0f21f352ced5fe2a5da755db62764c |
|
BLAKE2b-256 | 6628ca86676b69bf9f90e710571b67450508484388bfce09acf8a46f0b8c785f |
哈希值 为 PyNaCl-1.5.0-cp36-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_24_x86_64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 0c84947a22519e013607c9be43706dd42513f9e6ae5d39d3613ca1e142fba44d |
|
MD5 | e3607f5868ae28a26b00e7026c38f823 |
|
BLAKE2b-256 | ee87f1bb6a595f14a327e8285b9eb54d41fef76c585a0edef0a45f6fc95de125 |
哈希值 为 PyNaCl-1.5.0-cp36-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | a36d4a9dda1f19ce6e03c9a784a2921a4b726b02e1c736600ca9c22029474394 |
|
MD5 | 2c51c427c6a122c14e26167a95bdfcd6 |
|
BLAKE2b-256 | 5d7087a065c37cca41a75f2ce113a5a2c2aa7533be648b184ade58971b5f7ccc |
哈希值 为 PyNaCl-1.5.0-cp36-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_24_aarch64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 52cb72a79269189d4e0dc537556f4740f7f0a9ec41c1322598799b0bdad4ef92 |
|
MD5 | 141d8fc4b04bfb77089c90dcead1e050 |
|
BLAKE2b-256 | 59bbfddf10acd09637327a97ef89d2a9d621328850a72f1fdc8c08bdf72e385f |
哈希值 为 PyNaCl-1.5.0-cp36-abi3-macosx_10_10_universal2.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 401002a4aaa07c9414132aaed7f6836ff98f59277a234704ff66878c2ee4a0d1 |
|
MD5 | 9a54798738f90a6cce1079c62f4f4628 |
|
BLAKE2b-256 | ce750b8ede18506041c0bf23ac4d8e2971b4161cd6ce630b177d0a08eb0d8857 |