OpenPGP GUI App Documentation

Welcome to the official documentation for the OpenPGP GUI App.

Overview

This application provides a modern, user-friendly interface for OpenPGP key management, encryption, decryption, message signing, verification, and SSL certificate generation. All cryptographic operations are performed locally for maximum privacy.

Features

Getting Started

Requirements

Note: The application has been migrated from Tkinter/ttkbootstrap to PySide6 for a more modern and maintainable UI.

Installation

  1. Clone or download this repository.
  2. (Optional) Create a virtual environment:
    python -m venv venv
    venv\Scripts\activate
    
  3. Install dependencies:
    pip install -r requirements.txt
    

Running the App

Run from the project root:

python main.py

If you see import errors, ensure you are running from the root and not inside a subfolder.

User Guide

Main Window Overview

Logging & Log Viewer

Tips

Advanced Usage

Exporting Public Keys

Fingerprint Verification

SSL Certificate Generation

Extending the App

Logging & Debugging

Troubleshooting

Developer Guide

Welcome, developer! This guide provides the essentials for contributing to and extending the OpenPGP GUI App.


Project Structure

Key Technologies

How to Contribute

  1. Fork and clone the repository.
  2. Create a virtual environment and install dependencies.
  3. Follow PEP8 and keep code modular.
  4. Document new features and update CHANGELOG.md.
  5. Add or update tests if possible.
  6. Open a pull request with a clear description.

Adding Features

Testing

Code Style

Logging & Debugging

Support & Questions


Advanced Topics

API Reference

The application is modular: core logic is in struttura/, GUI in gui/.

Main classes and functions:

For more, read the docstrings in the code and see docs/user_guide.md for usage flow.

Extension Examples

Adding a New Key Algorithm

  1. In gui/main_window.py, locate the algorithm selection dropdown.
  2. Add your new algorithm (e.g., ECC, Ed25519) to the dropdown options.
  3. In the key generation logic, implement the handling for the new algorithm using pgpy.
  4. Test thoroughly and update the documentation.

Adding a Custom Widget

  1. Create your widget in gui/widgets.py or a new file.
  2. Import and use it in main_window.py where needed.
  3. Follow ttkbootstrap style conventions for consistency.

Architectural Diagram

Below is a simple textual architecture overview:

OpenPGP GUI App
│
├── main.py (entry point)
│
├── gui/
│   ├── main_window.py (MainWindow class, event logic)
│   ├── widgets.py (custom widgets)
│   └── ...
│
├── struttura/
│   ├── help.py, about.py, version.py (dialogs, versioning)
│   ├── menu.py (menu bar logic)
│   └── ...
│
├── docs/ (documentation)
├── requirements.txt
└── ...

For a visual diagram, see docs/architecture.png (add your own PNG for more detail).

FAQ

Q: Can I use this app without an internet connection?
A: Yes! All cryptographic operations are performed locally for privacy.

Q: How do I export my public key?
A: Use the ‘Export Public Key’ button or menu item in the File menu.

Q: What algorithms are supported?
A: Currently RSA; more (ECC, Ed25519) are planned.

Q: Where are my keys stored?
A: Keys are saved only where you choose. No automatic uploads or cloud storage.

Q: How do I get help?
A: Use the Help menu or read the documentation in the docs/ folder.