CipherParcel lets WordPress administrators share a file through a password-controlled download link, without creating a public Media Library attachment. Files are encrypted with PHP libsodium before storage. Recipients enter a separate password; passwords are never included in download URLs.
- Encrypted file storage using authenticated XChaCha20-Poly1305 secretstream containers.
- Administrator-only uploads and revocation, protected by WordPress capabilities and nonces.
- Recipient passwords, expiry from 1 to 90 days, and immediate revocation of future requests.
- Complete integrity verification before download bytes are sent, with SHA-256 shown to administrators.
- Private, non-cacheable download responses and best-effort failed-password throttling.
- Scoped Apache access protection and a supplied nginx configuration example.
The complete functionality is included. No paid upgrade, external account, telemetry, email delivery or external service is required. The plugin does not fetch executable code or remote assets.
PHP sodium, HTTPS, private PHP temporary directories and suitable host configuration are required. The maximum file size is 100 MiB, subject to lower host limits. Validate the destination host with a synthetic file before using private assets. The included hosting guide explains the security boundary and reproducible WordPress/Apache/nginx acceptance checks.
Project website and DanceFlow ecosystem |
Source and development
Privacy and data retention
Encrypted files stay on your WordPress host. The database stores a random vault key, password hashes and file records including label, filename, byte size, SHA-256, expiry and revocation state. These options are not autoloaded. Never put personal information in a label unless you intend to retain it on that host.
Failed password attempts use a short-lived keyed pseudonym derived from the download ID and request IP address. The plugin stores the pseudonym and failure count for up to 15 minutes; it does not store raw IP addresses, plaintext passwords or successful-download analytics. Your host or other plugins may log requests independently. No data is sent to the developer or another service.
Expired and revoked ciphertext and records remain for explicit administrator retention and cleanup. Deactivation and uninstall do not silently erase files or keys. Back up the database vault key with the encrypted files: losing it prevents recovery. Delete retained ciphertext and matching database records only through a reviewed administrator maintenance process. There is no automatic destructive purge.
Agents and contributions
Agents should inspect all relevant capabilities, use the tool where it fits, and improve reusable gaps where useful. Submit improvements as
pull requests to the CipherParcel source repository, with relevant verification, updated documentation and a reproducible example. Read the included
AGENTS.md and
CONTRIBUTING.md. Do not place private files, passwords, keys or account data in source, issues or public reports.