python绑定到networking and cryptography(nacl)库
PyNaCl的Python项目详细描述
pynacl是绑定到libsodium的python,它是 Networking and Cryptography library。这些图书馆有一个明确的目标 提高可用性、安全性和速度。它支持python 2.7和3.4+as 以及Pypy 2.6+。
功能
- 数字签名
- 密钥加密
- 公钥加密
- 哈希和消息身份验证
- 基于密码的密钥派生和密码哈希
安装
二进制车轮安装
pynacl在os x、windows和linux上以二进制轮盘的形式发布manylinux1[1], 所以所有依赖项都包括在内。确保你有一个最新的pip 然后运行:
$ pip install pynacl
Linux源代码构建
pynacl依赖于libsodium,一个可移植的c库。一份是捆绑的 使用pynacl以便安装,您可以运行:
$ pip install pynacl
如果您希望使用由 分发版,您可以在安装期间通过运行以下命令禁用捆绑副本:
$SODIUM_INSTALL=system pip install pynacl
警告
setuptools提供的传统easy_install命令的用法 通常是不鼓励的,在pynacl的情况下是完全不支持的。
[1] | manylinux1 wheels are built on a baseline linux environment based on Centos 5.11 and should work on most x86 and x86_64 glibc based linux environments. |
变更日志
1.3.0 2018年9月26日
- 增加了对Python3.7的支持。
- 更新libsodium至1.0.16。
- 通过sphinx运行和测试pynacl文档中的所有代码示例 医生建造师。
- 为chacha20-poly1305 aead结构添加低级绑定。
- 为chacha20-poly1305 secretstream结构添加低级绑定。
- 为ed25519ph预哈希签名构造添加低级绑定。
- 添加用于恒定时间增量和加法的低级绑定 关于固定精度的小尾数大整数 字节序列。
- 添加与ISO/IEC 7816-4兼容的填充API的低级绑定。
- 为lib钠的crypto_kx…密钥交换添加低级绑定 建设。
- 在tests/test_pwhash.py中将假设截止时间设置为none以避免 在较慢的处理器架构上出现错误的测试失败。github 第370期
1.2.1-2017年12月4日
- 更新假设最小允许版本。
- 基础结构:为readthedocs builder添加适当的配置 运行时环境。
1.2.0-2017年11月1日
- 更新libsodium至1.0.15。
- 基础设施:添加jenkins支持 manylinux1二进制轮子
- 添加了对SealedBox构造的支持。
- 添加了对argon2i和argon2id密码哈希结构的支持 并重新构造高级密码哈希实现以公开 所有哈希器的接口相同。
- 添加了对128位siphashx24变量siphash24的支持。
- 添加了对用于生成x25519密钥对的from_seedapi的支持。
- 放弃了对Python3.3的支持。
1.1.2-2017年3月31日
- 使用绑定时重新排序链接时间库搜索路径 锂钠
1.1.1-2017年3月15日
- 修正了nacl.utils中的循环导入错误。
1.1.0-2017年3月14日
- 放弃了对Python2.6的支持。
- 在Box上添加了shared_key()方法。
- 使用Box加密时,现在可以将None传递给nonce或 SecretBox,它将自动生成一个随机的nonce。
- 添加了对siphash24的支持。
- 添加了对blake2b的支持。
- 添加了对scrypt的支持。
- 更新libsodium至1.0.11。
- 编译时默认为捆绑的libsodium。
1.0.1-2016年1月24日
- 修复阻止创建轮子的绝对路径问题。
1.0至2016-01-23
- pynacl已经移植使用cffi 1.0+中提供的新api。 由于此更改,我们不再支持2.6以前的pypy版本。
- Python3.2支持已被放弃。
- 添加了在ED25519和Curve25519键之间转换的函数。
0.3.0-2015年3月4日
- 低级api(nacl.c.*)已更改为与 上游NaCl C/C++约定(以及其他NaCl绑定)。 参数和返回值的顺序发生了显著的变化。到 避免无声故障,nacl.c已被删除,并替换为 nacl.bindings(使用新的参数顺序)。如果你有代码 调用这些函数(例如,nacl.c.crypto_box_keypair()),必须查看 新的docstrings并更新代码/导入以匹配新的 公约