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
Special thanks to the NLnet foundation and the European Commission that helped the project to receive financial support from:
- NGI Assure in 2022
- NGI Zero Entrust in 2023
If you appreciate the project, feel free to donate using one of the following providers:
Re-exports§
pub use pgp_native as native;
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.