Crate pgp

source ·
Expand description

§🔐 pgp-lib

Rust library to deal with PGP operations, based on rPGP.

§Features

  • Encrypts asynchronously bytes using multiple public keys
  • Decrypts asynchronously bytes using a secret key and its passphrase
  • Signs asynchronously bytes using a secret key and its passphrase
  • Verifies asynchronously bytes using a public key and a standalone signature
  • Finds public keys matching emails using WKD and Key Servers (HTTP and HKP protocols supported)
  • Provides helpers to generate a key pair, to read secret/public keys from path, to read signature from bytes etc.

§Development

The development environment is managed by Nix. Running nix-shell will spawn a shell with everything you need to get started with the lib: cargo, cargo-watch, rust-bin, rust-analyzer

# Start a Nix shell
$ nix-shell

# then build the lib
$ cargo build -p pgp-lib

§Contributing

A bug tracker is available on SourceHut. [send an email]

A mailing list is available on SourceHut. [send an email] [subscribe] [unsubscribe]

If you want to report a bug, please send an email at ~soywod/pimalaya@todo.sr.ht.

If you want to propose a feature or fix a bug, please send a patch at ~soywod/pimalaya@lists.sr.ht. The simplest way to send a patch is to use git send-email, follow this guide to configure git properly.

If you just want to discuss about the project, feel free to join the Matrix workspace #pimalaya or contact me directly @soywod. You can also use the mailing list.

§Sponsoring

nlnet

Special thanks to the NLnet foundation and the European Commission that helped the project to receive financial support from:

If you appreciate the project, feel free to donate using one of the following providers:

GitHub PayPal Ko-fi Buy Me a Coffee Liberapay

Re-exports§

Modules§

  • Module dedicated to PGP decryption.
  • Module dedicated to PGP encryption.
  • Module dedicated to HTTP Keyserver Protocol.
  • Module dedicated to HTTP.
  • Module dedicated to PGP signing.
  • Module dedicated to PGP helpers.
  • Module dedicated to PGP verification.
  • Module dedicated to Web Key Directory.

Enums§

  • The global Error enum of the library.

Functions§

  • Decrypts bytes using the given secret key and its passphrase.
  • Encrypts given bytes using the given list of public keys.
  • Generates a new pair of secret and public keys for the given email address and passphrase.
  • Reads a signed public key from the given path.
  • Reads a standalone signature from the given raw bytes.
  • Reads a signed secret key from the given path.
  • Reads a signed secret key from the given raw string.
  • Signs given bytes using the given private key and its passphrase.
  • Verifies given standalone signature using the given public key.

Type Aliases§

  • The global Result alias of the library.