Skip to main content
Drupal is a registered trademark of Dries Buytaert
Release: OpenID Connect / OAuth client 3.0.0-alpha9 New alpha version released for module openid_connect (3.0.0-alpha9). Release: Timelinr 1.0.1 Minor update available for module timelinr (1.0.1). Usage Milestone: Simplify Module simplify crossed 10,000 active installs. Usage Milestone: Views Reference Filter Module entityreference_filter crossed 10,000 active installs. Usage Milestone: Dropdown Language Module dropdown_language crossed 10,000 active installs. Usage Milestone: Paragraphs Browser Module paragraphs_browser crossed 10,000 active installs. Usage Milestone: OpenAPI Module openapi crossed 10,000 active installs. Usage Milestone: Decoupled Router Module decoupled_router crossed 10,000 active installs. Usage Milestone: Time Field for Drupal 8+ Module time_field crossed 10,000 active installs. Module Revived: Entityqueue Buttons 1.1.2 Module entityqueue_buttons updated after 8 months of inactivity (1.1.2).

Protected Content

13 sites No security coverage Drupal 9–11
View on drupal.org

This module provides client-side encryption using OpenPGP.js, protecting user data from administrators and external systems by encrypting content directly in the user's browser. It can be used to encrypt and decrypt files and text either in a standalone mode or integrated within fieldable forms.

A sovereignty tool for site operators and their users against external power structures.

I'm really impressed now how the download-decrypt-render works - this is really very user-friendly! And users don't realize what happens behind the scenes because it goes so smoothly. That's always the best sign when something looks so simple...

INTRODUCTION

This NIS2 Recital (98) compliant module integrates OpenPGPjs for executing client-side encryption, ensuring that even Drupal administrators, sysadmins or ISPs cannot access user data. It supports two modes of usage: stand-alone mode
and field mode. In stand-alone mode, the module provides forms for encryption, decryption and re-encryption (decryption immediately followed by encryption, for updating sets of recipients and/or compliance with key rotation) of arbitrary files or texts. In field mode, the module provides a field type for encryption and decryption of arbitrary files or texts from within any fieldable form, a field formatter and inline decryption mode that allows seamless asymmetric decryption and rendering on-the-fly.

REQUIREMENTS

OpenPGP.js v5.0.1

INSTALLATION

Install as usual. OpenPGPjs is shipped within the module.

ROADMAP

Multiple signatures per content with recursive encryption.

Recursive encryption of files by folder selection.

LEARN MORE ABOUT PROTECTED CONTENT

Protected Content, Secure open source day - Haarlem (2019)

Protected Content: end-to-end PGP encryption for Drupal, Drupal Camp - Kyiv (2019)

Protected Content by Asymmetrical Client Side Encryption, Drupal Dev Days - Ghent (2022)

A pretty good content protection (Workshop), Drupal Con - Prague (2022)

Securing Drupal Content with Client-Side Encryption: A Zero Trust Approach (Workshop), Drupal Con - Vienna (2025)

The Privacy, The Secrecy and The Contradiction of NIS2, OpenSSL Conference - Prague (2025)

SIMILAR PROJECT

Client-Side File Crypto

WARNINGS

  1. Protected Content defines a zero knowledge proof protocol, based on the brain of its users. Unless local cache is set, the passphrases defining private keys are not stored in any medium but the brain of their authors. I.e, a lost passphrase that allows for the decryption of a content no one else is a recipient of equals to a content lost for an impractical amount of time. Use it wisely.
  2. Proc uses the cache API of modern browsers for avoiding having to download twice the same cipher text. Therefore, if you are not accessing it in localhost, you might have to have https enabled on your server, otherwise the cache API will probably be disabled. If as <user> you come to have ssh access to your remote server and you access the project at http://<ip>:<port>, a convenient workaround is to bind ports with ssh. Example: ssh -L <port>:<ip>:<port> <user>@<ip>. While this ssh session is opened, you will be able to access the project at http://localhost:<port> and as such cache API will be enabled.

Depends on

Dependencies of the latest stable release

  • file Drupal core
  • options Drupal core
  • user Drupal core
  • views Drupal core

Required by

Tracked projects that depend on this one

No tracked projects depend on this one yet.

Activity

Tracked releases
44
Tracked since
Feb 2025
Latest release
4 days ago
Releases (12 mo)
36 ▲ from 8
Maintenance
Active

Release Timeline

Releases

Version Type Core Release date
10.1.125 Stable 9–11 Aug 27, 2026
10.1.124 Stable 9–11 Aug 24, 2026
10.1.123 Stable 9–11 Jul 29, 2026
10.1.122 Stable 9–11 Jun 22, 2026
10.1.121 Stable 9–11 Jun 18, 2026
10.1.120 Stable 9–11 Jun 16, 2026
10.1.119 Stable 9–11 Jun 15, 2026
10.1.118 Stable 9–11 Jun 11, 2026
10.1.117 Stable 9–11 Jun 5, 2026
10.1.116 Stable 9–11 Jun 4, 2026
10.1.115 Stable 9–11 Jun 3, 2026
10.1.114 Stable 9–11 May 23, 2026
10.1.113 Stable 9–11 May 22, 2026
10.1.112 Stable 9–11 May 21, 2026
10.1.111 Stable 9–11 May 8, 2026
10.1.110 Stable 9–11 May 5, 2026
10.1.109 Stable 9–11 Apr 18, 2026
10.1.108 Stable 9–11 Apr 14, 2026
10.1.107 Stable 9–11 Mar 20, 2026
10.1.106 Stable 9–11 Mar 16, 2026
10.1.105 Stable 9–11 Mar 12, 2026
10.1.104 Stable 9–11 Mar 10, 2026
10.1.103 Stable 9–11 Mar 5, 2026
10.1.102 Stable 9–11 Mar 3, 2026
10.1.101 Stable 9–11 Mar 2, 2026
10.1.100 Stable 9–11 Feb 26, 2026
10.1.99 Stable 9–11 Feb 25, 2026
10.1.98 Stable 9–11 Feb 25, 2026
10.1.97 Stable 9–11 Jan 30, 2026
10.1.96 Stable 9–11 Jan 13, 2026
10.1.95 Stable 9–11 Jan 8, 2026
10.1.94 Stable 9–11 Dec 5, 2025
10.1.93 Stable 9–11 Dec 4, 2025
10.1.92 Stable 9–11 Nov 13, 2025
10.1.91 Stable 9–11 Nov 13, 2025
10.1.90 Stable 9–11 Nov 4, 2025
10.1.89 Stable 9–11 May 4, 2025
10.1.88 Stable 9–11 Apr 30, 2025
10.1.87 Stable 9–11 Apr 29, 2025
10.1.86 Stable 9–11 Apr 29, 2025
10.1.85 Stable 9–11 Apr 25, 2025
10.1.84 Stable 9–11 Apr 25, 2025
10.1.83 Stable 9–11 Apr 23, 2025
10.1.82 Stable 9–11 Feb 18, 2025