Giter Site home page Giter Site logo

digiyang / pgpmanager Goto Github PK

View Code? Open in Web Editor NEW
4.0 1.0 1.0 2.39 MB

PGP Key Manager Terminal User Interface ๐Ÿ”‘

License: GNU General Public License v3.0

Rust 100.00%
gnupg key-management linux ratatui rust sequoia-pgp terminal pgpmanager

pgpmanager's Introduction

PGPManager

License: GPL v3 GitHub issues

PGPmanager is a Terminal User Interface (TUI) designed to facilitate and manage the process of PGP (Pretty Good Privacy) key management.

The primary purpose of PGPmanager is to provide an intuitive and interactive interface for users to perform various PGP key operations, such as:

  • generating key pairs
  • exporting and importing certificates
  • editing passwords and expiration times
  • revoking keys
  • and more

The application serves as a bridge between the user and the underlying functionality provided by the Sequoia-OpenPGP crate, a powerful library for PGP key management in Rust.


Releases

PGPManager is currently in its Alpha stage.

Release Notes

This tool was developed as part of a bachelor thesis and my first project written in Rust, leveraging PGP. As such, it may have security flaws, bugs or contain boilerplate code. Reviews, critiques, and contributions are highly appreciated.

I plan to release stable versions on popular package managers like Cargo, Homebrew, and others in the near future. Stay tuned for updates!


Features

  • Generate PGP keypair & revocation certificates
  • Export public keys
  • Edit key passwords and expiration times
  • Add/Delete users
  • Revoke keys
  • Users can choose to extract a public key for each user and with the same private key
  • User-friendly and robust interface.

Table of Contents


Getting Started

To get started with PGPManager, follow the installation instructions below.


Installation

Prerequisites

Before you can run the Terminal User Interface, you must first ensure that your system meets the necessary requirements.

  1. Rust programming language:

The TUI is written in Rust, so Rustup, the installation and version management program for Rust, is required. If Rust is not installed on your system, please visit the official Rust website. for installation instructions.

  1. Sequoia OpenPGP Crate:

The TUI relies on the Sequoia OpenPGP crates for certificate management. You must have certain dependencies installed in your system. Visit the Sequoia repository for detailed instructions on the required libraries for different different platforms

Installation Steps

  1. Clone this repository to your local machine:

    git clone https://github.com/Digiyang/PGPManager.git
  2. Change to the project directory:

    cd gui
  3. Build the application:

    cargo build --release
  4. Run the application:

    cargo run --release

Usage

  • Use the arrow keys to navigate through the interface.
  • Press h to view the help menu.
  • Press q to quit the application.
  • Press Enter to select an open a directory.
  • Press Space Bar to go back to the previous directory.
  • Press Esc to abort the current operation.
  • Press d to get key details.
  • Press g to generate a key.
  • Press e to export a key.
  • Press a to add a user.
  • Press p to change a password.
  • Press t to modify a key expiration time.
  • Press u to export a new public key for selected user(s).
  • Press r to revoke a key.
  • Follow the on-screen prompts to perform various key operations.

Contributing

Contributions are welcome! Feel free to open issues for any improvements or bug fixes.


License

This project is licensed under the GNU General Public License v3.0 - see the LICENSE file for details.


Contact

Copyright

Copyright ยฉ 2023, Moez Rjiba. All rights reserved.

pgpmanager's People

Contributors

dependabot[bot] avatar digiyang avatar karimkarimson avatar

Stargazers

 avatar  avatar  avatar  avatar

Watchers

 avatar

Forkers

vschwaberow

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.