xref: /plugin/dokucrypt3/dokuwiki_plugin_page.wiki (revision 7b47a9a98dc20bab39528b3921751e79f0d070b5)
197c734d5Sternite====== dokucrypt3 Plugin ======
297c734d5Sternite
397c734d5Sternite---- plugin ----
497c734d5Sternitedescription: A plugin to support client side cryptography
597c734d5Sterniteauthor     : Scott Moser (smoser@brickies.net), maintained by Thomas Schäfer (thomas@hilbershome.de)
697c734d5Sternitetype       : admin
797c734d5Sternitelastupdate : 2025-10-15
897c734d5Sternitecompatible : Hogfather, Igor, Jack Jackrum, Kaos, Librarian
997c734d5Sternitedepends    :
1097c734d5Sterniteconflicts  : aceeditor, fastwiki
1197c734d5Sternitesimilar    : dokucrypt, dokucrypt2
1297c734d5Sternitetags       : encryption, password
1397c734d5Sternite
14*7b47a9a9Sternitedownloadurl: https://github.com/ternite/dokuwiki-plugin-dokucrypt3/archive/main.zip
15*7b47a9a9Sternitebugtracker : https://github.com/ternite/dokuwiki-plugin-dokucrypt3/issues
16*7b47a9a9Sternitesourcerepo : https://github.com/ternite/dokuwiki-plugin-dokucrypt3
1797c734d5Sternitedonationurl:
1897c734d5Sternite
1997c734d5Sternite----
2097c734d5Sternite
2197c734d5SterniteThis replaces the: [[plugin:dokucrypt2|Original DokuCrypt2 Plugin]].
2297c734d5Sternite
2397c734d5Sternite
2497c734d5Sternite===== Installation =====
2597c734d5Sternite
2697c734d5SterniteSearch and install the plugin using the [[plugin:extension|Extension Manager]]. Refer to [[:Plugins]] on how to install plugins manually.
2797c734d5Sternite
2897c734d5SterniteNote: Plugin is now maintained by Thomas Schäfer.
2997c734d5Sternite --- [[user>thomas-schaefer-nh|Thomas Schäfer]] //2025-10-15 15:06//
3097c734d5Sternite
3197c734d5Sternite
3297c734d5Sternite====== About ======
3397c734d5Sternite
3497c734d5Sternitedokucrypt is a client side (javascript) cryptography plugin.  This plugins allows a user to store and access sensitive data in a dokuwiki.  All sensitive data is encrypted before it is submitted and decrypted on the clients machine.  A users' sensitive data will only be accessible when viewed with a javascript enabled browser and the proper pass phrase. It will never be transmitted or stored in plain text, and you will avoid having passwords and sensitive data stored in plain text on the server.
3597c734d5Sternite
3697c734d5SterniteThe Javascrypt (http://www.fourmilab.ch/javascrypt/) library is used for encryption and decryption to provide 256 Bit AES encryption.
3797c734d5Sternite
3897c734d5Sternite:!: **Warning:** This plugin should not replace a password manager or peer reviewed cryptography tools for high-priority use. Do not store mission critical type data with this plugin - I cannot be sure that the info is not cached by DokuWiki or the web browser.  --- [[user>sherri|sherri]] //2020-10-14 19:55//
3997c734d5Sternite
4097c734d5Sternite:!: **This plugin is provided without warranty or guarantee of any kind. Use at your own discretion.** --- [[user>thomas-schaefer-nh|Thomas Schäfer]] //2025-10-15 15:06//
4197c734d5Sternite
4297c734d5Sternite===== Releases =====
4397c734d5Sternite
4497c734d5Sternite  * 2025-10-15: Release of dokucrypt3, which has originally been an internal fork of dokucrypt2 with massive changes to the way encryption is handled. The resulting pull request would not be merged into the base repository (due to maintenance effort). So a new github repository `dokucrypt3` was created based on dokucrypt2 and the new encryption engine.
4597c734d5Sternite
4697c734d5Sternite===== Usage =====
4797c734d5Sternite
4897c734d5Sternite==== Entering Encrypted Data ====
4997c734d5Sternite
5097c734d5SterniteIn order to encrypt some sensitive data, the user needs to add text like the following
5197c734d5Sternite
5297c734d5Sternite  Hi world.  I have a secret.  Can you read it?
5397c734d5Sternite  <SECRET>I like ice cream.</SECRET>
5497c734d5Sternite
5597c734d5SterniteWhen the user hits 'Save' (or a draft is attempted to be saved) a prompt will open, asking the user to enter a pass phrase key for the encryption.  Once supplied, the encryption will be done in the browser and the encrypted text submitted to the server.
5697c734d5Sternite
5797c734d5Sternite=== Special Characters ===
5897c734d5Sternite
5997c734d5SterniteThe less-than (<) and greater-than(>) symbols, if included in the enclosed text to encrypt, will break the decryption and cause some content to not be shown. To enter these characters in your content to be encrypted, use their HTML entity equivalents:
6097c734d5Sternite
6197c734d5Sternite  * < = Use: ''&lt;''
6297c734d5Sternite  * > = Use: ''&gt;''
6397c734d5Sternite
6497c734d5Sternite==== Viewing Encrypted Data ====
6597c734d5Sternite
6697c734d5SterniteWhen the page is viewed, the user will see the encrypted text and a link 'Decrypt Encrypted Text' will appear which will prompt the user for a password and decrypt the text (see the example below).
6797c734d5Sternite
6897c734d5SterniteThe encrypted text is compatible with javascrypt decryption (http://www.fourmilab.ch/javascrypt/jscrypt.html).
6997c734d5Sternite
7097c734d5Sternite
7197c734d5Sternite==== Editing Encrypted Data ====
7297c734d5Sternite
7397c734d5SterniteTo edit the encrypted data, the user needs to Edit the wiki page.  When first loaded, encrypted text will appear encrypted, surrounded by %%<ENCRYPTED>%% and %%</ENCRYPTED>%% tags.  To edit this text, the user needs to press the 'DecryptSecret' button between 'Save' and 'Preview', and supply the correct pass phrase.  The encrypted text will be decrypted to the 'SECRET' form showed above, and the use can edit in plaintext.  Submits or drafts will be encrypted before submission with the same pass phrase supplied.
7497c734d5Sternite
7597c734d5Sternite==== Settings ====
7697c734d5Sternite
7797c734d5SterniteThis plugin includes configuration settings.
7897c734d5Sternite
7997c734d5Sternite  * ''copytoclipboard'' - If set to true, the plugin tries to copy the decrypted value to the clipboard.
8097c734d5Sternite  * ''hidepasswordoncopytoclipboard'' - If set to true, the decrypted value will not be shown after being copied to the clipboard (see option 'copytoclipboard').
8197c734d5Sternite
8297c734d5Sternite===== Known Issues =====
8397c734d5Sternite
8497c734d5Sternite  * May not work if the website including plugin control text is being translated into another language.
8597c734d5Sternite  * Conflicts with Encrypted Passwords plugin (both plugins attempt to parse the <encrypt></encrypt> tag).  --- [[user>Fumigator2|Fumigator2]] //2024-03-12 02:41//
8697c734d5Sternite
8797c734d5Sternite===== Feature Requests =====
8897c734d5Sternite
8997c734d5SternitePlease use the [[https://github.com/syntaxseed/dokucrypt3/issues|GitHub Issues page]].
9097c734d5Sternite
9197c734d5Sternite
9297c734d5Sternite===== Bugs - Please Submit Bugs On GitHub =====
9397c734d5Sternite
9497c734d5SternitePlease use the [[https://github.com/syntaxseed/dokucrypt3/issues|Issues page on GitHub]].
9597c734d5Sternite
9697c734d5Sternite
9797c734d5Sternite==== Patches For Older Versions of DokuWiki ====
9897c734d5Sternite
9997c734d5SterniteIf you're running an older version of Dokuwiki (Versions 2017-02-19 "Frusterick Manners" and older.), you might want to try the approach described in [[https://github.com/syntaxseed/dokucrypt2/blob/master/OLDER_VERSIONS.md|Documentation For Old-Version Patches in dokucrypt2]].
100