OpenPGP Form Encryption for Wordpress

View this plugin on the WordPress Plugin Directory: OpenPGP Form Encryption for Wordpress

This plugin uses OpenPGP.js to provide public key encryption for a textarea. It is most useful for any kind of text area that will be submitted via email or over an unsecured network connection.


To install this plugin, follow these directions:

  1. Download the latest zip file from the releases page.
  2. Next, load up your WordPress blog's dashboard, and go to Plugins > Add New.
  3. Upload the zip file.
  4. Click Activate.


OpenPGP for Wordpress requires access to an OpenPGP public key in ASCII armored form. For more information on key generation and OpenPGP, I recommend the Email Self-Defense website, which has instructions for multiple operating systems.

The cryptbutton Shortcode

This plugin provides a simple shortcode which you can add to your forms. To use the shortcode, you must first upload your ASCII-armored public key to your blog’s media section. Note that the public key must reside on the same server as your blog.

The cryptbutton shortcode takes the following arguments.

The media ID of your ASCII-armored public key. Either this or keyurl are required.
The URL for your ASCII-armored public key. Either this argument or keyid are required.
Optional. The HTML ID for the textarea element to be encrypted. If this is unspecified, the correct textarea will try to be guessed. Usually this is successful.
Optional. Specify additional CSS classes for the button element.
Optional. Specify additional CSS styles for the button element.
Optional. Specify the button text. This defaults to "Encrypt". You can also use the shortcode as an opening and closing tag, with the contents used as the button's text.


I use this plugin with the Jetpack for WordPress contact form. You can see an example of the output on my Contact page. The WordPress code looks something like this:

[contact-form subject='ARNESONIUM CONTACT']
[contact-field label='Name' type='name' required='1'/]
[contact-field label='Email' type='email' required='1'/]
[contact-field label='Phone' type='text'/]
[contact-field label='Comment' type='textarea' required='1'/]
[cryptbutton keyid=42]Encrypt[/cryptbutton]

Line 6 displays the cryptbutton usage. Note that I changed some elements of this example to make things clearer. You will need to play with layout and CSS to get things looking nice.

Contact Form 7

This plugin also adds a cryptbutton shortcode to Contact Form 7. Shortcodes use a slightly different syntax with CF7. All of the options are still available, but the example above would be used in a form like this:

[cryptbutton keyid:42 "Encrypt"]
[submit "Send"]


For support and bug reports, please visit the GitHub project page.