跳转到主要内容

Argon2的低级CFFI绑定

项目描述

Argon2的Python CFFI低级绑定

argon2-cffi-bindings 提供了对 CFFI 的低级绑定,以及对 Argon2 密码散列算法的绑定,包括它们的一个供应商版本。

目前供应商的 Argon2 提交ID是 f57e61e

如果您想在应用程序中散列密码,此包不适合您。请查看argon2-cffi,它具有高级抽象!

这些绑定是从 argon2-cffi 中提取的,它仍然是其主要消费者。然而,它们也可能被其他想要使用 Argon2 库而无需处理与 C 相关的复杂性的软件包使用。

使用方法

argon2-cffi-bindings 可在 PyPI 上找到。提供的 CFFI 绑定以 API 模式编译。

尽量为尽可能多的平台提供二进制轮。

禁用供应商代码

默认情况下,会包含并使用 Argon2 的副本,但如果使用以下方式安装 argon2-cffi-bindings,则可以禁用:

$ env ARGON2_CFFI_USE_SYSTEM=1 \
  python -m pip install --no-binary=argon2-cffi-bindings argon2-cffi-bindings

覆盖自动 SSE2 检测

通常,构建过程会尝试猜测是否应该使用SSE2优化的代码(有关详细信息,请参阅_ffi_build.py)。这可能会出错,并且对交叉编译来说是个问题。

因此,您可以使用 ARGON2_CFFI_USE_SSE2 环境变量来控制此过程

  • 如果将其设置为 1argon2-cffi-bindings 将会构建带有 SSE2 支持的版本。
  • 如果将其设置为 0argon2-cffi-bindings 将会构建不带 SSE2 支持的版本。
  • 如果您将其设置为其他任何内容,它将被忽略,并且 argon2-cffi-bindings 将尝试猜测。

然而,如果我们的启发式方法失败,我们将欢迎收到一个错误报告。

Python API

由于此包旨在作为实现细节,它使用私有模块名称以防止您的用户意外使用它。

因此,您必须从 _argon2_cffi_bindings 导入符号。

from _argon2_cffi_bindings import ffi, lib

请参阅 cffi 文档 了解如何使用 ffilib 对象。

提供的符号列表可以在_ffi_build.py 文件中找到。

项目信息

argon2-cffi-bindingsPyPI 上可用,受 MIT 许可证保护,源代码和文档可在 GitHub 上找到。

argon2-cffi-bindings 面向 Python 3.6 及以上版本,包括 PyPy3。

致谢与许可证

argon2-cffi-bindingsHynek Schlawack 编写和维护。它根据 MIT 许可证 发布。

开发得到了 Variomedia AG 的慷慨支持。

Argon2 的作者在使库在旧版本的 Visual Studio 上编译以及旧版本的 Python 上非常有帮助。

文档经常直接引用 Argon2论文,以避免在改写时出错。

供应商代码

原始 Argon2 存储库可在 https://github.com/P-H-C/phc-winner-argon2/ 找到。

除下述组件外,此存储库中的 Argon2 代码版权所有(c)2015 Daniel Dinu,Dmitry Khovratovich(主要作者),Jean-Philippe Aumasson 和 Samuel Neves,并受 CC0 许可证保护。

src/encoding.c 中的字符串编码例程版权所有(c)2015 Thomas Pornin,并受 CC0 许可证保护。

src/blake2/ 中的 BLAKE2 代码版权所有(c)Samuel Neves,2013-2015,并受 CC0 许可证保护。

项目细节


下载文件

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

源分布

argon2-cffi-bindings-21.2.0.tar.gz (1.8 MB 查看哈希值)

上传时间

构建分布

argon2_cffi_bindings-21.2.0-pp38-pypy38_pp73-win_amd64.whl (28.6 kB 查看哈希值)

上传时间 PyPy Windows x86-64

argon2_cffi_bindings-21.2.0-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (27.9 kB 查看哈希值)

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

argon2_cffi_bindings-21.2.0-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (28.1 kB 查看哈希值)

上传时间 PyPy manylinux: glibc 2.17+ ARM64

argon2_cffi_bindings-21.2.0-pp38-pypy38_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl (30.7 kB 查看哈希值)

上传时间 PyPy manylinux: glibc 2.17+ i686 manylinux: glibc 2.5+ i686

argon2_cffi_bindings-21.2.0-pp38-pypy38_pp73-macosx_10_9_x86_64.whl (23.7 kB 查看哈希值)

上传时间 PyPy macOS 10.9+ x86-64

argon2_cffi_bindings-21.2.0-pp37-pypy37_pp73-win_amd64.whl (28.6 kB 查看哈希值)

上传时间 PyPy Windows x86-64

argon2_cffi_bindings-21.2.0-pp37-pypy37_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (27.9 kB 查看哈希值)

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

argon2_cffi_bindings-21.2.0-pp37-pypy37_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (28.1 kB 查看哈希值)

上传时间 PyPy manylinux: glibc 2.17+ ARM64

argon2_cffi_bindings-21.2.0-pp37-pypy37_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl (30.7 kB 查看哈希值)

上传时间 PyPy manylinux: glibc 2.17+ i686 manylinux: glibc 2.5+ i686

argon2_cffi_bindings-21.2.0-pp37-pypy37_pp73-macosx_10_9_x86_64.whl (23.7 kB 查看哈希值)

上传时间 PyPy macOS 10.9+ x86-64

argon2_cffi_bindings-21.2.0-cp38-abi3-macosx_10_9_universal2.whl (53.1 kB 查看哈希值)

上传时间 CPython 3.8+ macOS 10.9+ universal2 (ARM64, x86-64)

argon2_cffi_bindings-21.2.0-cp36-abi3-win_amd64.whl (30.8 kB 查看哈希值)

上传时间 CPython 3.6+ Windows x86-64

argon2_cffi_bindings-21.2.0-cp36-abi3-win32.whl (27.7 kB 查看哈希值)

上传时间 CPython 3.6+ Windows x86

argon2_cffi_bindings-21.2.0-cp36-abi3-musllinux_1_1_x86_64.whl (88.5 kB 查看哈希值)

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

argon2_cffi_bindings-21.2.0-cp36-abi3-musllinux_1_1_i686.whl (84.6 kB 查看哈希值)

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

argon2_cffi_bindings-21.2.0-cp36-abi3-musllinux_1_1_aarch64.whl (83.6 kB 查看哈希值)

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

argon2_cffi_bindings-21.2.0-cp36-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (86.2 kB 查看哈希值)

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

argon2_cffi_bindings-21.2.0-cp36-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (80.6 kB 查看哈希值)

上传于 CPython 3.6+ manylinux: glibc 2.17+ ARM64

argon2_cffi_bindings-21.2.0-cp36-abi3-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl (82.7 kB 查看哈希值)

上传于 CPython 3.6+ manylinux: glibc 2.17+ i686 manylinux: glibc 2.5+ i686

argon2_cffi_bindings-21.2.0-cp36-abi3-macosx_10_9_x86_64.whl (29.7 kB 查看哈希值)

上传于 CPython 3.6+ macOS 10.9+ x86-64

由以下支持