Skip to main content

Gentoo Manifest Tool -- a utility to verify and update Manifest files

Project description

Author:

Michał Górny

License:

2-clause BSD license

Introduction

gemato provides a reference implementation of the full-tree Manifest checks as specified in GLEP 74 [1]. Originally focused on verifying the integrity and authenticity of the Gentoo ebuild repository, the tool can be used as a generic checksumming tool for any directory trees.

Usage

Verification

The basic purpose of gemato is to verify a directory tree against Manifest files. In order to do that, run the gemato verify tool against the requested directory:

gemato verify /var/db/repos/gentoo

The tool will automatically locate the top-level Manifest (if any) and check the specified directory recursively. If a subdirectory of the Manifest tree is specified, only the specified leaf is checked.

Creating new Manifest tree

Creating a new Manifest tree can be accomplished using the gemato create command against the top directory of the new Manifest tree:

gemato create -p ebuild /var/db/repos/gentoo

Note that for the create command you always need to specify either a profile (via -p) or at least a hash set (via -H).

Updating existing Manifests

The gemato update command is provided to update an existing Manifest tree:

gemato update -p ebuild /var/db/repos/gentoo

Alike create, update also requires specifying a profile (-p) or a hash set (-H). The command locates the appropriate top-level Manifest and updates the specified directory recursively. If a subdirectory of the Manifest tree is specified, the entries for the specified leaf and respective Manifest files are updated.

Utility commands

gemato provides a few other utility commands that provide access to its crypto backend. These are:

gemato hash -H <hashes> [<path>...]

Print hashes of the specified files in Manifest-like format.

gemato openpgp-verify [-K <key>] [<path>...]

Check OpenPGP cleartext signatures embedded in the specified files.

gemato openpgp-verify-detached [-K <key>] <sig-file> <data-file>

Verify the specified data file against a detached OpenPGP signature.

Requirements

gemato is written in Python and compatible with implementations of Python 3.9+. gemato is currently tested against CPython 3.9 through 3.11 and PyPy3. gemato core depends only on standard Python library modules.

Additionally, OpenPGP requires system install of GnuPG 2.2+ and requests Python module. Tests require pytest, and responses for mocking.

References and footnotes

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

gemato-19.0.tar.gz (88.0 kB view details)

Uploaded Source

Built Distribution

gemato-19.0-py3-none-any.whl (44.6 kB view details)

Uploaded Python 3

File details

Details for the file gemato-19.0.tar.gz.

File metadata

  • Download URL: gemato-19.0.tar.gz
  • Upload date:
  • Size: 88.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.2

File hashes

Hashes for gemato-19.0.tar.gz
Algorithm Hash digest
SHA256 5d94e7851e57fae9ab88e89beab0567ebc111f15f7c9317ea7029c3dbcfe9a77
MD5 d85f206051526a2f5c6aa3e7b3c3a9c1
BLAKE2b-256 5d20a26bfb7cfed3bca35006bf9085d21311e0e55edb4bf8fdfd9bf4bb76511c

See more details on using hashes here.

Provenance

File details

Details for the file gemato-19.0-py3-none-any.whl.

File metadata

  • Download URL: gemato-19.0-py3-none-any.whl
  • Upload date:
  • Size: 44.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.2

File hashes

Hashes for gemato-19.0-py3-none-any.whl
Algorithm Hash digest
SHA256 2f5c4ebc25b87ff527d190fde285ac592fd2d9a1e7a2952b390e21f578af068a
MD5 a74f8d109819f886a0009883e1db93d0
BLAKE2b-256 34a65bb10c95cb72a083f357474d82e62e222af55fc3ab70e2dc40504979768e

See more details on using hashes here.

Provenance

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page