xref: /plugin/dokucrypt3/dokuwiki_plugin_page.wiki (revision 97c734d516051c5b55fc0c340717b771d97a295d)
1*97c734d5Sternite====== dokucrypt3 Plugin ======
2*97c734d5Sternite
3*97c734d5Sternite---- plugin ----
4*97c734d5Sternitedescription: A plugin to support client side cryptography
5*97c734d5Sterniteauthor     : Scott Moser (smoser@brickies.net), maintained by Thomas Schäfer (thomas@hilbershome.de)
6*97c734d5Sternitetype       : admin
7*97c734d5Sternitelastupdate : 2025-10-15
8*97c734d5Sternitecompatible : Hogfather, Igor, Jack Jackrum, Kaos, Librarian
9*97c734d5Sternitedepends    :
10*97c734d5Sterniteconflicts  : aceeditor, fastwiki
11*97c734d5Sternitesimilar    : dokucrypt, dokucrypt2
12*97c734d5Sternitetags       : encryption, password
13*97c734d5Sternite
14*97c734d5Sternitedownloadurl: https://github.com/ternite/dokucrypt3/archive/main.zip
15*97c734d5Sternitebugtracker : https://github.com/ternite/dokucrypt3/issues
16*97c734d5Sternitesourcerepo : https://github.com/ternite/dokucrypt3
17*97c734d5Sternitedonationurl:
18*97c734d5Sternite
19*97c734d5Sternite----
20*97c734d5Sternite
21*97c734d5SterniteThis replaces the: [[plugin:dokucrypt2|Original DokuCrypt2 Plugin]].
22*97c734d5Sternite
23*97c734d5Sternite
24*97c734d5Sternite===== Installation =====
25*97c734d5Sternite
26*97c734d5SterniteSearch and install the plugin using the [[plugin:extension|Extension Manager]]. Refer to [[:Plugins]] on how to install plugins manually.
27*97c734d5Sternite
28*97c734d5SterniteNote: Plugin is now maintained by Thomas Schäfer.
29*97c734d5Sternite --- [[user>thomas-schaefer-nh|Thomas Schäfer]] //2025-10-15 15:06//
30*97c734d5Sternite
31*97c734d5Sternite
32*97c734d5Sternite====== About ======
33*97c734d5Sternite
34*97c734d5Sternitedokucrypt 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.
35*97c734d5Sternite
36*97c734d5SterniteThe Javascrypt (http://www.fourmilab.ch/javascrypt/) library is used for encryption and decryption to provide 256 Bit AES encryption.
37*97c734d5Sternite
38*97c734d5Sternite:!: **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//
39*97c734d5Sternite
40*97c734d5Sternite:!: **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//
41*97c734d5Sternite
42*97c734d5Sternite===== Releases =====
43*97c734d5Sternite
44*97c734d5Sternite  * 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.
45*97c734d5Sternite
46*97c734d5Sternite===== Usage =====
47*97c734d5Sternite
48*97c734d5Sternite==== Entering Encrypted Data ====
49*97c734d5Sternite
50*97c734d5SterniteIn order to encrypt some sensitive data, the user needs to add text like the following
51*97c734d5Sternite
52*97c734d5Sternite  Hi world.  I have a secret.  Can you read it?
53*97c734d5Sternite  <SECRET>I like ice cream.</SECRET>
54*97c734d5Sternite
55*97c734d5SterniteWhen 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.
56*97c734d5Sternite
57*97c734d5Sternite=== Special Characters ===
58*97c734d5Sternite
59*97c734d5SterniteThe 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:
60*97c734d5Sternite
61*97c734d5Sternite  * < = Use: ''&lt;''
62*97c734d5Sternite  * > = Use: ''&gt;''
63*97c734d5Sternite
64*97c734d5Sternite==== Viewing Encrypted Data ====
65*97c734d5Sternite
66*97c734d5SterniteWhen 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).
67*97c734d5Sternite
68*97c734d5SterniteThe encrypted text is compatible with javascrypt decryption (http://www.fourmilab.ch/javascrypt/jscrypt.html).
69*97c734d5Sternite
70*97c734d5Sternite
71*97c734d5Sternite==== Editing Encrypted Data ====
72*97c734d5Sternite
73*97c734d5SterniteTo 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.
74*97c734d5Sternite
75*97c734d5Sternite==== Settings ====
76*97c734d5Sternite
77*97c734d5SterniteThis plugin includes configuration settings.
78*97c734d5Sternite
79*97c734d5Sternite  * ''copytoclipboard'' - If set to true, the plugin tries to copy the decrypted value to the clipboard.
80*97c734d5Sternite  * ''hidepasswordoncopytoclipboard'' - If set to true, the decrypted value will not be shown after being copied to the clipboard (see option 'copytoclipboard').
81*97c734d5Sternite
82*97c734d5Sternite===== Known Issues =====
83*97c734d5Sternite
84*97c734d5Sternite  * May not work if the website including plugin control text is being translated into another language.
85*97c734d5Sternite  * Conflicts with Encrypted Passwords plugin (both plugins attempt to parse the <encrypt></encrypt> tag).  --- [[user>Fumigator2|Fumigator2]] //2024-03-12 02:41//
86*97c734d5Sternite
87*97c734d5Sternite===== Feature Requests =====
88*97c734d5Sternite
89*97c734d5SternitePlease use the [[https://github.com/syntaxseed/dokucrypt3/issues|GitHub Issues page]].
90*97c734d5Sternite
91*97c734d5Sternite
92*97c734d5Sternite===== Bugs - Please Submit Bugs On GitHub =====
93*97c734d5Sternite
94*97c734d5SternitePlease use the [[https://github.com/syntaxseed/dokucrypt3/issues|Issues page on GitHub]].
95*97c734d5Sternite
96*97c734d5Sternite
97*97c734d5Sternite==== Patches For Older Versions of DokuWiki ====
98*97c734d5Sternite
99*97c734d5SterniteIf 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