patatt

Contents

  • Overview
    • Basic Concepts
    • Canonicalization
    • Supported Signature Algorithms
    • X-Developer-Key Header
  • Contributor Guide
    • Installation
    • Signing with PGP
    • Signing with OpenSSH
    • Signing with ed25519
    • Testing Your Setup
    • Automatic Signing with git-send-email
    • Choosing a Key Type
      • Reasons to choose PGP
      • Reasons to choose OpenSSH keys
      • Reasons to choose a standalone ed25519 key
  • Maintainer Guide
    • In-Git Public Key Management
    • Keyring Structure
      • Example Lookup
      • Privacy-Preserving By-Hash Lookup
      • Key File Formats
    • Whose Keys to Add
    • Managing Keyrings: Small Teams
    • Managing Keyrings: Large Teams
      • Creating a Keyring Ref
      • Updating a Keyring Ref
    • Configuring Keyring Sources
      • Default Keyring Locations
  • Library Reference
    • Core Classes
      • PatattMessage
        • PatattMessage
      • DevsigHeader
        • DevsigHeader
    • Exceptions
      • Error
        • Error.__init__()
        • Error.errors
      • SigningError
      • ConfigurationError
      • ValidationError
      • NoKeyError
      • BodyValidationError
    • Public Functions
      • Signing and Validation
        • sign_message()
        • validate_message()
      • Key Management
        • make_pkey_path()
        • make_byhash_path()
        • get_public_key()
      • Configuration
        • get_main_config()
        • get_data_dir()
    • Constants
      • Result Codes
        • patatt.RES_VALID
        • patatt.RES_BADSIG
        • patatt.RES_NOKEY
        • patatt.RES_NOSIG
        • patatt.RES_ERROR
    • Usage Examples
      • Signing a Message
      • Validating a Message
      • Working with PatattMessage Directly
      • Key Path Utilities
  • Frequently Asked Questions
    • Why is this library even needed?
      • Why not simply PGP-sign all patches?
      • Why not just rely on proper code review?
      • Why not just rely on DKIM?
    • Getting Support
patatt
  • Search


© Copyright 2021-2026, Konstantin Ryabitsev.

Built with Sphinx using a theme provided by Read the Docs.