Patatt is a Python library and CLI for adding end-to-end cryptographic attestation to patches sent via email. It adapts the DKIM email signature standard to include cryptographic signatures via the X-Developer-Signature header.
If your project workflow doesn’t use patches sent via email, then you don’t need this and should simply start signing your tags and commits.
Features
DKIM-like signature headers that don’t corrupt patch content
Multiple signing algorithms: ed25519, OpenPGP, OpenSSH
In-repository keyring management via git refs
Automatic signing via git sendemail-validate hook
Installation
Install using pipx (recommended):
pipx install patatt
Or with pip:
pip install --user patatt
Quick Start
Generate a new ed25519 signing key:
patatt genkey
Sign a patch:
git format-patch -1 --stdout | patatt sign > signed.patch
Validate a signed patch:
patatt validate signed.patch
Documentation
Full documentation is available at https://patatt.docs.kernel.org
Contributing
Please send patches and support requests to tools@kernel.org.
Submissions must be made under the terms of the Linux Foundation certificate of contribution and should include a Signed-off-by line. See the DCO file for details.
Metadata
Release files for patatt 0.8.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| patatt-0.8.0.tar.gz | 24.6 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| patatt-0.8.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 46.4 kB
Release files / patatt-0.8.0.tar.gz
| Download URL | patatt-0.8.0.tar.gz |
|---|---|
| Size | 24.6 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
c226b5e7e449a4981b827c48e2586a928fa45b690af19a3892b9279b334f2551
|
|
BLAKE2b-256 checksum How to use checksums |
6084ce3398941bcb26a5ee12a066a5d2b052bf9211f713d98ed78573b5364fea
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.11.28 {"installer":{"name":"uv","version":"0.11.28","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Fedora Linux","version":"44","id":"","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|
Release files / patatt-0.8.0-py3-none-any.whl
| Download URL | patatt-0.8.0-py3-none-any.whl |
|---|---|
| Size | 21.7 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
9b8324376619fa8d2d9808e324f3cea4ee7f332d5fe64b770d98578f2b28ea2c
|
|
BLAKE2b-256 checksum How to use checksums |
070f51505e1a25f9cf2fec7c026134f93f09731b82ab4b33285611e1b2db4b7f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.11.28 {"installer":{"name":"uv","version":"0.11.28","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Fedora Linux","version":"44","id":"","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|