跳转到主要内容

Python的fs-verity摘要实现

项目描述

fsverity-hash

Python对fs-verity哈希方案的实现。

安装

python -mpip install fsverity-hash

用法

FSVerityHash提供了一个类似于hashlib的接口

>>> import fsverity_hash
>>> m = fsverity_hash.FSVerityHash()
>>> m.update(b"Nobody inspects the spammish repetition")
>>> m.digest()
b'>\xd6s\xd52<\x9e\x1c`\x82\x0f td\xb0\xb8X\xa9\x0b\xa4\xff\x94\x0b\x12=\xd1kBV\x99\xce\xbe'
>>> m.hexdigest()
'3ed673d5323c9e1c60820f207464b0b858a90ba4ff940b123dd16b425699cebe'

fsverity digest命令产生相同的摘要

$ echo -n "Nobody inspects the spammish repetition" > file.txt
$ fsverity digest file.txt
sha256:3ed673d5323c9e1c60820f207464b0b858a90ba4ff940b123dd16b425699cebe file.txt

该模块公开了与fsverity digest相同的命令行接口

$ echo -n "Nobody inspects the spammish repetition" > spam.txt
$ fsverity digest spam.txt
sha256:3ed673d5323c9e1c60820f207464b0b858a90ba4ff940b123dd16b425699cebe spam.txt
$ python3 -m fsverity_hash spam.txt
sha256:3ed673d5323c9e1c60820f207464b0b858a90ba4ff940b123dd16b425699cebe spam.txt
$ python3 -m fsverity_hash --help
usage: fsverity_hash.py [-h] [--hash-alg {sha256,sha512}] [--block-size BYTES]
                        [--compact]
                        [FILE ...]

Compute fs-verity hashes

positional arguments:
  FILE                  Input file(s) to process (default: stdin)

optional arguments:
  -h, --help            show this help message and exit
  --hash-alg {sha256,sha512}
                        Merkle tree block hashing algorithm (default: sha256)
  --block-size BYTES    Merkle tree block size in bytes (default: 4096)
  --compact             Omit the hash algorithm name when printing digests

限制

  • 最多可以哈希8 GiB。这是一个实现限制,而不是fs-verity哈希的一般限制。
  • 未实现加盐哈希。
  • 没有自动测试。
  • 未测试自定义块大小。
  • FSVerityHash对象不能被复制。

其他实现

进一步阅读

项目详情


下载文件

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

源分布

fsverity-hash-0.0.5.tar.gz (5.7 kB 查看哈希值)

上传时间

构建分布

fsverity_hash-0.0.5-py3-none-any.whl (5.5 kB 查看哈希值)

上传时间 Python 3

由以下提供支持