=== PGP Key Generator ===
Contributors: wp2pgpmail
Donate link: https://wp2pgpmail.com
Tags: PGP, OpenPGP, encryption, key generator, GnuPG
Requires at least: 5.0
Tested up to: 7.1
Requires PHP: 7.0
Stable tag: 2.0
License: GPLv2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html

Let your visitors create PGP keys and encrypt or decrypt messages, right in their browser. Nothing is sent to your server.

== Description ==

PGP Key Generator adds a complete PGP toolbox to any page with one shortcode:

* **Generate a key pair**: Curve25519 (recommended) or RSA 3072/4096, protected by a passphrase, with a revocation certificate.
* **Encrypt a message** with someone's public key.
* **Decrypt a message** with your private key.
* Copy or download keys as `.asc` files.

Everything runs in the visitor's browser with [OpenPGP.js](https://openpgpjs.org/). Names, email addresses, passphrases, keys and messages never leave the page: the plugin has no server-side processing and no external service.

[Try it online](https://wp2pgpmail.com/pgp-key-generator/).

Need to receive encrypted Gravity Forms notifications? See [Gravity Forms PGP Encryption](https://wp2pgpmail.com/).

= Is it secure? =

* All code is readable JavaScript and PHP; OpenPGP.js is maintained by Proton and has been independently audited.
* No binaries are loaded from a server, nothing is embedded from a third party.
* No form data is ever transmitted.

== Installation ==

1. Install the plugin from **Plugins → Add New**, or upload `pgp-key-generator.zip`, then activate it.
1. Add the shortcode `[pgp_key_generator]` to any page or post.

To show only some tools, list them in the order you want:
`[pgp_key_generator sections="generate"]` or `[pgp_key_generator sections="encrypt,decrypt"]`.

The tools inherit your theme's fonts and colors. Advanced styling: override the `--pgpkg-*` CSS custom properties on `.pgpkg`.

== Frequently Asked Questions ==

= Do you store the keys or messages? =

No. Everything happens in the visitor's browser; nothing is sent to your server or to us.

= I forgot my passphrase. =

It cannot be recovered. Generate a new key pair, and use the revocation certificate to revoke the old public key if you published it.

= PGP Key Generator is not available in my language. What can I do? =

Translations are welcome on [translate.wordpress.org](https://translate.wordpress.org/projects/wp-plugins/pgp-key-generator/). The plugin ships with French and German.

== Screenshots ==

1. Generate a key pair: Curve25519 by default, keys ready to copy or download as .asc files, with a revocation certificate.
2. Encrypt a message with the recipient's public key.
3. Decrypt a message with your private key and passphrase.

== Upgrade Notice ==

= 2.0 =
Rewritten with OpenPGP.js 6: modern Curve25519 keys, copy and download buttons, no more jQuery. The shortcode is unchanged.

== Changelog ==

= 2.0 =
* Rewritten with OpenPGP.js 6.3 (was 4.10): Curve25519 keys by default, RSA 3072/4096 still available (1024 and 2048 removed)
* New: copy and download buttons, revocation certificate, separate result fields
* New: `sections` shortcode attribute; several generators can share a page
* Errors are shown in the page instead of browser alerts; the plugin no longer intercepts other scripts' errors
* jQuery and jQuery Validation no longer required
* Accessible markup (labels, live status messages), styles inherit the theme
* Updated French and German translations
* License clarified as GPLv2 or later

= 1.13 =
* Improving interface

= 1.12 =
* Changing script order for loading

= 1.10 =
* Updating OpenPGP library to v4.10.10

= 1.09 =
* Update for WordPress 5.0

= 1.08 =
* Removing Bootstrap style
* Improving interface
* Updating OpenPGP library to v3.0.9

= 1.07 =
* Updating OpenPGP library to v2.6.2

= 1.06 =
* Fixing typo

= 1.05 =
* Updating CSS

= 1.04 =
* Updating label name for the encryption part

= 1.03 =
* Updating OpenPGP library to v2.0.0
* Throwing errors in a dialog box

= 1.02 =
* Fixing OpenPGP for Internet Explorer

= 1.01 =
* Initial import
