-
Notifications
You must be signed in to change notification settings - Fork 8
/
index.html
1966 lines (1905 loc) · 167 KB
/
index.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
<!DOCTYPE html>
<html lang="en" xml:lang="en" xmlns="http://www.w3.org/1999/xhtml" manifest="passlok.appcache">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>PassLok</title>
<meta name="Keywords" content="passlok, privacy, URSA, browser, encryption, decryption, symmetric, public key, signature, AES, ECDH, Diffie, Hellman, elliptic curve, advanced, javascript, PGP, PRISM">
<meta name="Description" content="PassLok">
<meta name="author" content="F. Ruiz">
<meta name="robots" content="index">
<meta name="viewport" content="width=device-width, minimum-scale=1, maximum-scale=1, user-scalable=no">
<meta name="apple-mobile-web-app-capable" content="yes">
<meta name="apple-mobile-web-app-status-bar-style" content="default">
<link rel="apple-touch-icon" href="passlok-touch-icon.png">
<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
<!--Default stylesheet containing the Light color scheme-->
<link rel="stylesheet" href="style.css">
<!--License notice and SSL force-->
<script src="js-head/license.js"></script>
<!--Open-source libraries used, all found on GitHub:-->
<!--Shamir Secret Sharing Scheme. Edited so NaCl RNG is used instead of built-in RNG. https://github.com/amper5and/secrets.js-->
<script src="js-opensrc/secrets.js"></script>
<!--Tweet NaCl crypto library 1.0.3 by Dmitry Chestnykh. https://github.com/dchest/tweetnacl-js-->
<script src="js-opensrc/nacl-fast.js"></script>
<!--ed2curve-js conversion of curve coordinates 0.2.1 by Dmitry Chestnykh. https://github.com/dchest/ed2curve-js-->
<script src="js-opensrc/ed2curve.js"></script>
<!--scrypt-async-js KDF 2.0.1 by Dmitry Chestnykh. https://github.com/dchest/scrypt-async-js-->
<script src="js-opensrc/scrypt-async.js"></script>
<!--lz-string compression algorithm 1.4.4. https://github.com/pieroxy/lz-string-->
<script src="js-opensrc/lz-string.js"></script>
<!--DOMPurify, used to sanitize decrypted material before putting in DOM v3.1.7. https://github.com/cure53/DOMPurify-->
<script src="js-opensrc/purify.js"></script>
<!--jpeg image steganography by Owen Campbell-Moore and others. https://github.com/owencm/js-steg. First jsstegencoder-1.0.js-->
<script src="js-opensrc/jsstegencoder-1.0.js"></script>
<!--jsstegdecoder-1.0.js. One edit to display warning on error-->
<script src="js-opensrc/jsstegdecoder-1.0.js"></script>
<!--jssteg-1.0.js-->
<script src="js-opensrc/jssteg-1.0.js"></script>
<!--isaac seedable PRNG by Yves-Marie Rinquin. https://github.com/rubycon/isaac.js-->
<script src="js-opensrc/isaac.js"></script>
<!--color picker by Jan Odvarko. Edited so images are included, and to make it smaller. https://github.com/odvarko/JSColor-->
<script src="js-opensrc/jscolor.js"></script>
<!--this used to be in TweetNaCl, but they dropped it. https://github.com/dchest/tweetnacl-util-js-->
<script src="js-opensrc/nacl-util.js"></script>
<!--QRcode.js by David Shim. https://github.com/davidshimjs/qrcodejs-->
<script src="js-opensrc/qrcode.js"></script>
<!--ORIGINAL PASSLOK CODE-->
<!--this only loads two word arrays: wordlist and blacklist-->
<script src="js-head/dictionary_en.js"></script>
<!--Key and Lock functions-->
<script src="js-head/keylock.js"></script>
<!--cryptographic functions, main part-->
<script src="js-head/crypto-main.js"></script>
<!--cryptographic functions, additional functions-->
<script src="js-head/crypto-extra.js"></script>
<!--extra functions for email and chat.-->
<script src="js-head/mail&chat.js"></script>
<!--Shamir Secret Sharing Scheme-->
<script src="js-head/SSSS.js"></script>
<!--text steganograghy-->
<script src="js-head/textstego.js"></script>
<!--image steganograghy-->
<script src="js-head/imagestego.js"></script>
<!--local Directory functions-->
<script src="js-head/localdir.js"></script>
<!--for changing screen colors-->
<script src="js-head/colors.js"></script>
<!--special functions that work only with Chrome apps and extensions-->
<script src="js-head/Chromestuff.js"></script>
</head>
<body>
<!--Tabs-->
<ul id="tabs">
<li><a href="#mainTab" title="messages go here (alt-M)" accesskey="m">Main</a></li>
<li><a href="#optionsTab" title="several modes available (alt-O)" accesskey="o">Options</a></li>
<li><a href="#helpTab" title="help for all functions (alt-M)" accesskey="h">Help</a></li>
</ul>
<!--Main tab-->
<div class="tabContent" id="mainTab">
<div class="centered"> <br>
<br>
<br>
<!--message area and local directory box, plus buttons-->
<div id="mainMsg" class="message">Welcome to PassLok</div>
<table class="centered" id="recipientsTbl">
<tr>
<td width="70%">
<select class="cssbox" id='lockList' size='5' multiple title="Hold Ctrl or cmd to select several items">
<option value="" disabled selected>Select recipients (ctrl-click for several):</option>
</select>
</td>
<td>
<span class="hide" id="dropBtns">
<p><button class="smallbutton" id="makeKeyBtn" title="Make or update a Folder Key for selected users">New Folder Key</button></p>
<label for="folderMode" class="smallbutton" title="in Folder mode all files use the same key; you start by loading an encrypted Folder key"><input type="checkbox" id="folderMode"> Folder mode</label></span>
<p>
<button class="smallbutton" id="resetListBtn" value="resetList" title="reset selection (alt-0)" accesskey="0">Deselect</button>
<button class="smallbutton" id="main2lockBtn" value="editLocks" title="add or edit items in the local directory (alt-E)" accesskey="e">Edit</button></p>
</td>
</tr>
</table>
<br>
<br>
<!--buttons above the main box-->
<div id="basicBtnsTop">
<button class="cssbutton" id="decryptBtnBasic" value="Lock/Unlock" title="encrypt plain text in the box, decrypt encrypted text (alt-D)" accesskey="d">Encrypt</button><!--
--><button class="cssbutton" id="showLockBtnBasic" value="myLock" title="display your Lock or send email (alt-L)" accesskey="l">myLock</button>
</div>
<div id="emailBtnsTop">
<button class="cssbutton" id="decryptBtnEmail" value="Lock/Unlock" title="encrypt plain text in the box, decrypt encrypted text (alt-D)" accesskey="d">Encrypt</button><!--
--><button class="cssbutton" id="stegoBtnEmail" value="Hide" title="hide box contents as text (alt-T)" accesskey="T">Txt hide</button><!--
--><label for="imageFileEmail" title="open dialog to select the cover image"><span class="cssbutton" id="imageFileEmailBtn" title="open image hiding functions (alt-I)" accesskey="i">Img hide</span></label><!--
--><input type='file' id='imageFileEmail'/>
</div>
<div id="mainBtnsTop">
<button class="cssbutton" id="decryptBtn" value="Lock/Unlock" title="encrypt plain text in the box, decrypt encrypted text (alt-D)" accesskey="">Encrypt</button><!--
--><button class="cssbutton" id="verifyBtn" value="Seal/Unseal" title="add signature based on secret Key and box contents, or verify existing signature (alt-V)" accesskey="v">Seal</button><!--
--><button class="cssbutton" id="showLockBtn" value="myLock" title="display your Lock (alt-L)">myLock</button><!--
--><button class="cssbutton" id="main2extraBtn" value="More" title="replace main buttons with those for extra functions (alt-.)" accesskey=".">▼</button>
<br>
</div>
<div id="extraButtonsTop">
<button class="cssbutton" id="stegoBtn" value="Stego" title="hide box contents as text, using method set in Options tab, or reveal hidden contents (alt-T)" accesskey="t">Text hide</button><!--
--><label for="imageFile" title="open dialog to select the cover image"><span class="cssbutton" id="imageFileBtn" title="open image hiding functions (alt-I)" accesskey="i">Image hide</span></label><!--
--><input type='file' id='imageFile'/><!--
--><button class="cssbutton" id="secretShareBtn" value="Split/Join" title="split plain box contents into several random-looking parts, or rejoin parts in the box (alt-J)" accesskey="j"> Split </button><!--
--><button class="cssbutton" id="extra2mainBtn" value="Less" title="return main buttons (alt-.)">▲</button>
<br>
</div>
</div>
<!--toolbar for rich text editing; this first section contains lists for style, fonts, etc.-->
<div id="toolBar1">
<select id="formatBlock" title="headings, etc.">
<option selected>- formatting -</option>
<option value="h1">Title 1 <h1></option>
<option value="h2">Title 2 <h2></option>
<option value="h3">Title 3 <h3></option>
<option value="h4">Title 4 <h4></option>
<option value="h5">Title 5 <h5></option>
<option value="h6">Subtitle <h6></option>
<option value="p">Paragraph <p></option>
<option value="pre">Preformatted <pre></option>
</select>
<select id="fontName" title="font type">
<option class="heading" selected>- font -</option>
<option>Arial</option>
<option>Arial Black</option>
<option>Courier New</option>
<option>Times New Roman</option>
<option>Verdana</option>
<option>Comic Sans MS</option>
<option>Impact</option>
<option>Trebuchet MS</option>
<option>Symbol</option>
</select>
<select id="fontSize" title="font size">
<option class="heading" selected>- size -</option>
<option value="1">Very small</option>
<option value="2">A bit small</option>
<option value="3">Normal</option>
<option value="4">Medium-large</option>
<option value="5">Big</option>
<option value="6">Very big</option>
<option value="7">Maximum</option>
</select>
<select id="foreColor" title="text color">
<option class="heading" selected>- color -</option>
<option value="brown">Brown</option>
<option value="red">Red</option>
<option value="orange">Orange</option>
<option value="green">Green</option>
<option value="blue">Blue</option>
<option value="purple">Violet</option>
<option value="violet">Pink</option>
<option value="yellow">Yellow</option>
<option value="cyan">Cyan</option>
<option value="white">White</option>
<option value="gray">Gray</option>
<option value="black">Black</option>
</select>
<select id="backColor" title="color behind the text">
<option class="heading" selected>- back color -</option>
<option value="brown">Brown</option>
<option value="red">Red</option>
<option value="orange">Orange</option>
<option value="green">Green</option>
<option value="blue">Blue</option>
<option value="purple">Violet</option>
<option value="violet">Pink</option>
<option value="yellow">Yellow</option>
<option value="cyan">Cyan</option>
<option value="white">White</option>
<option value="gray">Gray</option>
<option value="black">Black</option>
</select>
<!--rich text editing buttons; images are loaded as data-->
<div id="toolBar2"> <img class="intLink" title="Bold" src="data:image/gif;base64,R0lGODlhFgAWAID/AMDAwAAAACH5BAEAAAAALAAAAAAWABYAQAInhI+pa+H9mJy0LhdgtrxzDG5WGFVk6aXqyk6Y9kXvKKNuLbb6zgMFADs=" /> <img class="intLink" title="Italic" src="data:image/gif;base64,R0lGODlhFgAWAKEDAAAAAF9vj5WIbf///yH5BAEAAAMALAAAAAAWABYAAAIjnI+py+0Po5x0gXvruEKHrF2BB1YiCWgbMFIYpsbyTNd2UwAAOw==" /> <img class="intLink" title="Underline" src="data:image/gif;base64,R0lGODlhFgAWAKECAAAAAF9vj////////yH5BAEAAAIALAAAAAAWABYAAAIrlI+py+0Po5zUgAsEzvEeL4Ea15EiJJ5PSqJmuwKBEKgxVuXWtun+DwxCCgA7" /> <img class="intLink" title="Strikethrough" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABYAAAAWBAMAAAA2mnEIAAAAGFBMVEUAAABGRkZxcXGrq6uOjo7CwsINDQ3p6emLJhauAAAAAXRSTlMAQObYZgAAAEVJREFUGNNjoCYoDjaBs1UZDGFMVmUGJhibXcidFa7GUVAVygpSUlJMS0uBqmFgFhSA6TVgYIOxmcUZ2BxgbEFnF2o6HQD3yAWvJ+vXvwAAAABJRU5ErkJggg==" /> <img class="intLink" title="Subscript" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABYAAAAWBAMAAAA2mnEIAAAAGFBMVEUAAACCgoJISEh0pePr7/WgssrS0tLH1vP156UFAAAAAXRSTlMAQObYZgAAAElJREFUGNNjoB5gDBQRFICy2YQCAhNgEomqAghFSg5wNosSkniQGktwAURYlFEp2d0AIiyYpKTGbICwJBihnd2kBM5mNjagzPEAztoHvc+7u1sAAAAASUVORK5CYII=" /> <img class="intLink" title="Superscript" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABYAAAAWBAMAAAA2mnEIAAAAGFBMVEUAAACCgoJISEigssrr7/V0pePS0tLH1vPtoVcWAAAAAXRSTlMAQObYZgAAAEpJREFUGNNjoC5gCTaAs5ndAxASrBA2o6GIoICpA5jNJmhg6B5SApFPUhZgDQ2AalRyQBioJABnMxqpwYWFGZUMYMKCSUpqlDocAJ7SBzNIUMnCAAAAAElFTkSuQmCC" /> <img class="intLink" title="Left align" src="data:image/gif;base64,R0lGODlhFgAWAID/AMDAwAAAACH5BAEAAAAALAAAAAAWABYAQAIghI+py+0Po5y02ouz3jL4D4JMGELkGYxo+qzl4nKyXAAAOw==" /> <img class="intLink" title="Center align" src="data:image/gif;base64,R0lGODlhFgAWAID/AMDAwAAAACH5BAEAAAAALAAAAAAWABYAQAIfhI+py+0Po5y02ouz3jL4D4JOGI7kaZ5Bqn4sycVbAQA7" /> <img class="intLink" title="Right align" src="data:image/gif;base64,R0lGODlhFgAWAID/AMDAwAAAACH5BAEAAAAALAAAAAAWABYAQAIghI+py+0Po5y02ouz3jL4D4JQGDLkGYxouqzl43JyVgAAOw==" /> <img class="intLink" title="Justify" src="data:image/gif;base64,R0lGODlhFgAWAIAAAMDAwAAAACH5BAEAAAAALAAAAAAWABYAAAIghI+py+0Po2yh2nvnxNxq2XVfFHIjVGLnk2brC8fyXAAAOw==" /> <img class="intLink" title="Numbered list" src="data:image/gif;base64,R0lGODlhFgAWAMIGAAAAADljwliE35GjuaezxtHa7P///////yH5BAEAAAcALAAAAAAWABYAAAM2eLrc/jDKSespwjoRFvggCBUBoTFBeq6QIAysQnRHaEOzyaZ07Lu9lUBnC0UGQU1K52s6n5oEADs=" /> <img class="intLink" title="Dotted list" src="data:image/gif;base64,R0lGODlhFgAWAMIGAAAAAB1ChF9vj1iE33mOrqezxv///////yH5BAEAAAcALAAAAAAWABYAAAMyeLrc/jDKSesppNhGRlBAKIZRERBbqm6YtnbfMY7lud64UwiuKnigGQliQuWOyKQykgAAOw==" /> <img class="intLink" title="Quote" src="data:image/gif;base64,R0lGODlhFgAWAIQXAC1NqjFRjkBgmT9nqUJnsk9xrFJ7u2R9qmKBt1iGzHmOrm6Sz4OXw3Odz4Cl2ZSnw6KxyqO306K63bG70bTB0rDI3bvI4P///////////////////////////////////yH5BAEKAB8ALAAAAAAWABYAAAVP4CeOZGmeaKqubEs2CekkErvEI1zZuOgYFlakECEZFi0GgTGKEBATFmJAVXweVOoKEQgABB9IQDCmrLpjETrQQlhHjINrTq/b7/i8fp8PAQA7" /> <img class="intLink" title="Delete indentation" src="data:image/gif;base64,R0lGODlhFgAWAMIHAAAAADljwliE35GjuaezxtDV3NHa7P///yH5BAEAAAcALAAAAAAWABYAAAM2eLrc/jDKCQG9F2i7u8agQgyK1z2EIBil+TWqEMxhMczsYVJ3e4ahk+sFnAgtxSQDqWw6n5cEADs=" /> <img class="intLink" title="Add indentation" src="data:image/gif;base64,R0lGODlhFgAWAOMIAAAAADljwl9vj1iE35GjuaezxtDV3NHa7P///////////////////////////////yH5BAEAAAgALAAAAAAWABYAAAQ7EMlJq704650B/x8gemMpgugwHJNZXodKsO5oqUOgo5KhBwWESyMQsCRDHu9VOyk5TM9zSpFSr9gsJwIAOw==" /> <img class="intLink" title="Horizontal rule" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABYAAAAWBAMAAAA2mnEIAAAAGFBMVEUAAADIyMimpqbp6enz8/P8/PzZ2dldXV27aT9/AAAAAXRSTlMAQObYZgAAAD5JREFUGNNjoBg4GSDYSgpYFCQKgkECiC0aGuLi7GwsAGILKYGBABYt5QUwVoiZuJhJAITN6mxs7Apk0wIAACMpB/oWEo0pAAAAAElFTkSuQmCC" /> <img class="intLink" title="Hyperlink" src="data:image/gif;base64,R0lGODlhFgAWAOMKAB1ChDRLY19vj3mOrpGjuaezxrCztb/I19Ha7Pv8/f///////////////////////yH5BAEKAA8ALAAAAAAWABYAAARY8MlJq7046827/2BYIQVhHg9pEgVGIklyDEUBy/RlE4FQF4dCj2AQXAiJQDCWQCAEBwIioEMQBgSAFhDAGghGi9XgHAhMNoSZgJkJei33UESv2+/4vD4TAQA7" /> <img class="intLink" title="Remove hyperlink" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABYAAAAWBAMAAAA2mnEIAAAAGFBMVEUAAAD08fHXzcxjY2OMhoafn5+uLyrktrTVXxhsAAAAAXRSTlMAQObYZgAAAGxJREFUGNNjwAAFMAZjEkMCYyKUU6aQoAaTYU90TIcrFwBCCFANDWIKDVUAMZkcBUVZBQWDQGwWERcnJhcXETBbBUEyKzubsjobK4PYrEZCwsxCQqZgc4KNTVmMjQOQzIfbW5jOgOYehDspAwBt9Q/S3exo3wAAAABJRU5ErkJggg==" /> <img class="intLink" title="Remove formatting" src="data:image/gif;base64,R0lGODlhFgAWAIQbAD04KTRLYzFRjlldZl9vj1dusY14WYODhpWIbbSVFY6O7IOXw5qbms+wUbCztca0ccS4kdDQjdTLtMrL1O3YitHa7OPcsd/f4PfvrvDv8Pv5xv///////////////////yH5BAEKAB8ALAAAAAAWABYAAAV84CeOZGmeaKqubMteyzK547QoBcFWTm/jgsHq4rhMLoxFIehQQSAWR+Z4IAyaJ0kEgtFoLIzLwRE4oCQWrxoTOTAIhMCZ0tVgMBQKZHAYyFEWEV14eQ8IflhnEHmFDQkAiSkQCI2PDC4QBg+OAJc0ewadNCOgo6anqKkoIQA7" /> <img class="intLink" title="Undo" src="data:image/gif;base64,R0lGODlhFgAWAOMKADljwliE33mOrpGjuYKl8aezxqPD+7/I19DV3NHa7P///////////////////////yH5BAEKAA8ALAAAAAAWABYAAARR8MlJq7046807TkaYeJJBnES4EeUJvIGapWYAC0CsocQ7SDlWJkAkCA6ToMYWIARGQF3mRQVIEjkkSVLIbSfEwhdRIH4fh/DZMICe3/C4nBQBADs=" /> <img class="intLink" title="Redo" src="data:image/gif;base64,R0lGODlhFgAWAMIHAB1ChDljwl9vj1iE34Kl8aPD+7/I1////yH5BAEKAAcALAAAAAAWABYAAANKeLrc/jDKSesyphi7SiEgsVXZEATDICqBVJjpqWZt9NaEDNbQK1wCQsxlYnxMAImhyDoFAElJasRRvAZVRqqQXUy7Cgx4TC6bswkAOw==" />
<label for="imgFile">
<img class="intLink" title="Insert image" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAMAAABhEH5lAAAAbFBMVEUAAAAAAAAmJibm5uaJiYnZ2dnn5+e5ubmBgYHNzc3z8/Pr6+vW1ta2trZ/f3/y8vLQ0NDPz8/Dw8OgoKCOjo54eHgcHBwGBgb+/v7T09PIyMi+vr6srKyEhIRqampiYmJbW1tPT08qKioRERGLOctyAAAAAXRSTlMAQObYZgAAAHJJREFUGNOtzkkShCAQRNFKbLsVsZ3nWe9/R8EAYeHSv6u3qEh6qo0/TkUiKULNbCglfZGSjf0vCvWZLTmxwBBXVGG1NO2D+hoIQ6IHmrKrciJDfgxIBGbPId12E//pUjOiyHydCGtFyQG3kWTcc4ro1U7vPAUU4TAxJQAAAABJRU5ErkJggg==" />
</label>
<input type="file" id="imgFile"/>
<label for="mainFile">
<img class="intLink" title="Load a file" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAMAAABhEH5lAAAATlBMVEUAAAAAAAD19fVcXFwbGxsTExP8/PzT09NxcXFaWlo4ODg1NTUEBAT5+fnw8PDr6+vU1NTIyMi+vr6Xl5dsbGxnZ2dXV1dISEghISEMDAw0f0rSAAAAAXRSTlMAQObYZgAAAFBJREFUGNO9yEkOgCAQBMBmUxDc9/9/VJ2EjgkHb9axcJuceqQRtMq4aAdWkDr6xtW5jJRFx2MBu23fdS7eG6Vz0U8VytrKmhMnVoDQlOfbBQLIAl4FF2fyAAAAAElFTkSuQmCC" />
</label>
<input type="file" id="mainFile"/>
<img class="intLink" title="Download files" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABYAAAAWCAMAAADzapwJAAAAdVBMVEUAAAAfHx9GRkYAAAAPDw9aWlr+/v739/fHx8dpaWkEBAT7+/v29vby8vLu7u7Z2dm1tbWysrKtra2qqqqMjIxWVlZJSUk1NTUUFBQJCQnz8/Pq6uri4uLMzMzKysq+vr69vb2NjY16enpvb29hYWE9PT0rKytDpsqlAAAAAXRSTlMAQObYZgAAAHdJREFUGNO1zscOgCAMgGG0iIp77z3e/xEV05CoJJ78D9B86aHkO6bUuXBUnFWuig1q/sTs5PclyR7YpZ+vD+4rrSg3mJ7rFgWA9EZhcPmlbuyh1mCLr0vEO0CI7HPB2AgRTh43mORYMstBk3HaEqxZdFlmkZ87AICHBL2TAUCPAAAAAElFTkSuQmCC" />
</div>
</div>
<input type="file" id="fileIn" class="hide" multiple></input>
<label for="fileIn" id="fileLbl" class="dropTarget hide" title="drop a File or a Folder key here">
<img id="fileImg" class="smallImg" src="">
</label>
<div id="mainBox" contenteditable="true" class="cssbox" accesskey=";" placeholder="Write or paste your message here. You can use nice formatting and add images and files if you click Rich. To encrypt or decrypt, select the correspondents in the top box, then click the button. Add more correspondents by pasting their Locks in this box."></div>
<div class="centered">
<!--buttons below the main box-->
<div id="mainbuttonsbot">
<button class="cssbutton" id="niceEditBtn" value="Rich" title="toggle rich text editor (alt-R)" accesskey="r">Rich</button><!--
--><button class="cssbutton" id="selectMainBtn" value="Select" title="select the box content and copy it to clipboard">Copy</button><!--
--><button class="cssbutton" id="clearMainBtn" value="Clear" title="clear the text in the box">Clear</button><!--
--><button class="cssbutton" id="chatBtn" value="Chat" title="make a chat invitation or open it (alt-C)" accesskey="c">Chat</button><!--
--><button class="cssbutton" id="sendSMSBtn" value="SMS" title="mobile: open the default Texting app">SMS</button>
<br>
<br>
<input type="radio" name="lockmodes" id="anonMode" title="anonymous encryption mode; recipient's Lock needed (alt-N)" accesskey="n" checked/>
<span id="anonLabel"> Anonymous </span>
<input type="radio" name="lockmodes" id="signedMode" title="signed encryption mode; recipient needs the sender's Lock (alt-S)" accesskey="s"/>
Signed
<input type="radio" name="lockmodes" id="onceMode" title="Read-once encryption mode; messages become unreadable after being read once (alt-1)" accesskey="1"/>
Read-once </div>
</div>
</div>
<!--Options tab-->
<div class="tabContent" id="optionsTab"> <br>
<br>
<br>
<form name="optionchecks">
<span id="modeLabel">Interface: </span>
<br><br>
<input type="radio" name="interfacemodes" id="basicMode" title="basic mode; only essential functions (alt-B)" accesskey="b" checked/>
Basic
<input type="radio" name="interfacemodes" id="advancedMode" title="advanced mode; all functions available (alt-A)" accesskey="a"/>
Adv.
<input type="radio" name="interfacemodes" id="emailMode" title="PassLok for Email compatible output"/>
Email
<input type="radio" name="interfacemodes" id="dropMode" title="drop mode; for drag and drop files (alt-D)" accesskey="d"/>
File Drop
<hr>
Color scheme:
<input type="radio" name="colormodes" id="liteStyle" title="switch back to default light style" checked/>
Light
<input type="radio" name="colormodes" id="darkStyle" title="switch to dark style"/>
Dark <br>
<br>
<input type="radio" name="colormodes" id="redStyle" title="switch to red style"/>
Red
<input type="radio" name="colormodes" id="greenStyle" title="switch to green style"/>
<span id="greenLabel">Green</span>
<input type="radio" name="colormodes" id="blueStyle" title="switch to blue style"/>
Blue
<input type="radio" name="colormodes" id="customStyle" title="switch to custom style"/>
<span id="customLabel">Custom</span>
<div id='customColors'><br>
Click to edit color:
<input class="color {pickerPosition:'top', onImmediateChange:'updateColor();'}" id="colorPicker" title="click here to edit the color selected below">
<button type="button" class="cssbutton" id="rndColors" value="Random Colors" title="pick colors at random">Random</button>
<br>
<br>
<input type="radio" name="colorareas" id="editTabColor" title="edit Tab color" checked/>
Tabs
<input type="radio" name="colorareas" id="editBgColor" title="edit Background color"/>
<span id='backgroundLabel'>Backg.</span>
<input type="radio" name="colorareas" id="editBtnColor" title="edit Button color"/>
Btns.
<input type="radio" name="colorareas" id="editBoxColor" title="edit Box color"/>
Box </div>
<hr>
<span id="otherLabel">Other: </span>
<input type="checkbox" id="learnMode" title="get explanatory messages after buttons are pressed, but before functions are executed"/>
Learn
<input type="checkbox" id="decoyMode" title="second message added or retrieved" accesskey=""/>
Hidden message<br><br>
<span id="otherRow2">
<input type="radio" name="lockType" id="ezLokMode" title="display easy to read Lock" checked/>
ezLok
<input type="radio" name="lockType" id="wordLockMode" title="display Lock made of words"/>
Word Lock
<input type="radio" name="lockType" id="normalLockMode" title="display base64 Lock"/>
base64<br><br>
<input type="checkbox" id="fileMode" title="output is turned into files" accesskey=""/>
File output
<input type="radio" name="fileModes" id="binaryMode" title="output file is binary" checked/>
Binary
<input type="radio" name="fileModes" id="textMode" title="output file is text" />
Text
<br><br>
<div id='specialEncryptModes'>
<input type="radio" name="lenghtModes" id="longMode" title="encrypted message can be as long as it needs to be" checked/>
Normal
<input type="radio" name="lenghtModes" id="shortMode" title="encrypted message will fit within 160 characters" />
Short
<input type="radio" name="lenghtModes" id="compatMode" title="encrypted message compatible with SeeOnce and URSA" />
Compatible
<br><br>
<input type="radio" name="lenghtModes" id="qrMode" title="encrypted message as QR code" />
QR code
<div id="syncCheck"> <br>
<input type="checkbox" id="chromeSyncMode" title="sync through Chrome" checked/>
Chrome sync </div>
<br><br>
</div>
<input type="checkbox" id="includeMode" title="include my Lock" accesskey=""/>
Include my Lock
</span>
<div id="basicHideModes">
<hr>
Text Hiding:
<input type="radio" name="stegomodes" id="letterMode" title="hide item into letters" checked/>
Letters
<input type="radio" name="stegomodes" id="invisibleMode" title="hide item invisibly"/>
Invisible
</div>
<div id='advancedModes'>
<br>
<input type="radio" name="stegomodes" id="wordMode" title="hide item as individual words"/>
Words
<input type="radio" name="stegomodes" id="spaceMode" title="hide item in spaces between words"/>
Spaces
<input type="radio" name="stegomodes" id="sentenceMode" title="hide item as sentences"/>
<span id='sentencesLabel'>Sentences</span></div>
</form>
<div id='advancedBtns'>
<hr>
<span id="optionMsg" class="message">Change Name, Key, etc.</span><br>
<br>
<button class="cssbutton" id="changeNameBtn" value="Change Name" title="re-store directory under a new User Name">Name</button><!--
--><button class="cssbutton" id="changeKeyBtn" value="Change Key" title="re-encrypt directory with a new Key">Key</button><!--
--><button class="cssbutton" id="changeEmailBtn" value="Change Email" title="change email/token">Email/token</button>
<br>
<br>
Backup/Remove:<br>
<br>
<button class="cssbutton" id="backupSettingsBtn" value="Backup" title="backup and optionally reset options, including the email/token">Options only</button><!--
--><button class="cssbutton" id="moveLockDBBtn" value="Move" title="archive entire local directory, then delete it">Whole Directory</button>
</div>
</div>
<!--Help tab-->
<div class="tabContent" id="helpTab">
<br>
<br>
<br>
<span id='helpmsg' class="message">For instructions on how to do things, click on each title.</span>
<br>
<!--the help items begin here-->
<hr>
<div class="helpHeading">
<h3>What is PassLok?</h3>
</div>
<div class="helpText">
<p>Before you do anything else, you may want to watch this three-minute video, which explains the essential concepts in a lighthearted way (warning: watching it may leak your IP number): <a href="https://www.youtube.com/watch?v=UxgrES_CGcg" target="_blank">https://www.youtube.com/watch?v=UxgrES_CGcg</a></p>
<ul>
<li>PassLok locks text and files, and sets up secure real time chat sessions using strong <strong>end-to-end encryption</strong>.</li>
<li>PassLok is based on Keys and Locks. You encrypt something with <strong>someone else's Lock</strong>, so only that person can decrypt it with his/her Key.</li>
<li>Your Key is a short piece of text, which <strong>can be anything you want so you can remember it</strong>.</li>
<li>The matching Lock is then made from your Key. It is impossible to get the Key or your email from the Lock.</li>
<li>You should never give your Key to anyone. Your Lock, however, is meant to be distributed freely, like a phone number.</li>
</ul>
<p>This approach has a number of advantages over other privacy apps that you may be familiar with:</p>
<ul>
<li>PassLok does not involve a server, so nobody can possibly have your private data.</li>
<li>The same code runs on computers, phones, and tablets to make it perfectly portable.</li>
<li>You can use PassLok with your favorite email, texting app, or any program by cut and paste.</li>
<li>PassLok does not need to store anything secret. The only secret is your Key, which stays in your head.</li>
<li>You can use PassLok with a public or borrowed device as easily and safely as with your private phone or computer.</li>
<li>Several users (or several identities) can coexist on the same device.</li>
</ul>
<p>PassLok is <strong>still in experimental phase</strong> since there has not been enough time for security experts to uncover possible flaws. Bear this in mind before entrusting critical secrets to it.</p>
<p>If you find PassLok too difficult, you may want to try SeeOnce instead, from <a href="https://passlok.com/seeonce" target="_blank">https://passlok.com/seeonce</a>. <strong>SeeOnce</strong> implements the Read-once mode of PassLok plus one type of text hiding, but you never have to worry about maintaining a directory of Locks. Even easier is <strong>URSA</strong>, available at <a href="https://passlok.com/ursa" target="_blank">https://passlok.com/ursa</a>, which includes only the shared Key mode of PassLok. Finally, there's <strong>PassLok for Email</strong>, an extension for <a href="https://chrome.google.com/webstore/detail/passlok-for-email/ehakihemolfjgbbfhkbjgahppbhecclh" target="_blank">Chrome</a> and <a href="https://addons.mozilla.org/en-US/firefox/addon/passlok-for-email/" target="_blank">Firefox</a> that integrates with popular email services (currently Gmail, Yahoo, and Outlook), and <strong>PassLok Universal</strong>, very similar to PassLok for Email, but not restricted to any email service; these are its links for <a href="https://chrome.google.com/webstore/detail/passlok-universal/lbmlbnfgnbfppkfijbbpnecpglockled" target="_blank">Chrome</a> and <a href="https://addons.mozilla.org/en-US/firefox/addon/passlok-universal/" target="_blank">Firefox</a>. All of these apps are fully compatible with PassLok, although they may not be compatible with each other.</p>
<p>And if you don't, you may want to try the <strong>PassLok Privacy</strong> extension for <a href="https://chrome.google.com/webstore/detail/passlok-privacy/epcchpdljafmfegifkigklfcmkphfmbh" target="_blank">Chrome</a> and <a href="https://addons.mozilla.org/en-US/firefox/addon/passlok-privacy/" target="_blank">Firefox</a>, which is almost identical to this standalone app, except that it syncs seamlessly between computers and is impervious to other extensions that might be running on the browser. Finally, the whole PassLok Privacy is part of the <strong>FusionKey</strong> extension for <a href="https://chrome.google.com/webstore/detail/fusionkey/legnppmlegkibpinfjodjbejohblaaam" target="_blank">Chrome</a> and <a href="https://addons.mozilla.org/en-US/firefox/addon/fusionkey/" target="_blank">Firefox</a>, which integrates with any email service (not just the Big Three) and also includes the <strong>SynthPass</strong> password manager.</p>
</div>
<hr>
<div class="helpHeading">
<h3>Invite others to PassLok</h3>
</div>
<div class="helpText">
<p>Before you can communicate with others using PassLok, they must have obtained the app, come up with a secret Key (which they won't tell you), generated a Lock from it, and sent it back to you.</p>
<p>You can tell others about PassLok any way you want, but PassLok can help you to start your network with a single keystroke, this way:</p>
<p>1. Optionally, type a message in the main box. Don't write anything sensitive, since <strong>invitation messages are not secure</strong>.</p>
<p>2. Click the <strong>Invite</strong> button. If nothing was written, a QR code will appear containing your Lock and a link to the app at passlok.com. You may want to stand by in order to guide people who scan the code through their initial set-up. Tap it to hide it.</p>
<p>3. If something was written, you will be asked to confirm, and then a new page should open in your default email, containing a link to PassLok that includes your personal Lock plus your encrypted message and a short set of instructions. Edit it as needed, then write the recipients' email addresses and send it.</p>
<p>This is explained in this video tutorial (warning: watching it may leak your IP number): <a href="https://www.youtube.com/watch?v=0wTJWyd9s64" target="_blank">https://www.youtube.com/watch?v=0wTJWyd9s64</a></p>
<div class="helpHeading2">
<p><em>Click here for More:</em></p>
</div>
<div class="helpText">
<p>The QR code and the invitation link load the web version of PassLok, but pasting the message into any other version of PassLok, or opening the email in PassLok for Email, PassLok Universal, FusionKey, or SeeOnce works just as well. Invitations made in those apps can also be opened in PassLok Privacy.</p>
<p>Those who get PassLok from your QR code or email invitation will have your Lock automatically stored in their directories, so they can encrypt items for you right away.</p>
</div>
</div>
<hr>
<div class="helpHeading">
<h3>Learn how to use PassLok</h3>
</div>
<div class="helpText">
<p>If you check the <strong>Learn</strong> box in the <strong>Options</strong> tab, a text explaining what is about to happen will pop up every time a button is clicked.</p>
<p>And here are a few more resources you may want to check out:</p>
<p>The Learn PassLok website at <a href="https://passlok.com/learn" target="_blank">https://passlok.com/learn</a> contains a working copy of PassLok and a number of lessons on the different things you can do with it.</p>
<p>The PassLok information website at <a href="http://passlok.weebly.com" target="_blank">http://passlok.weebly.com</a> contains a number of videos and PDF documents.</p>
<p>The PassLok <a href="http://passlok.weebly.com/uploads/2/4/1/8/24187628/passlok_manual.pdf" target="_blank">manual in PDF format.</a></p>
<p>If you want to learn what's under the hood, read the <a href="http://www.weebly.com/uploads/2/4/1/8/24187628/passlok_technical_document.pdf" target="_blank">PassLok technical document.</a></p>
</div>
<hr>
<div class="helpHeading">
<h3>Change PassLok's look</h3>
</div>
<div class="helpText">
<p>PassLok opens with the default Light colors. You can also select the Dark, Red, Green, and Blue schemes on the <strong>Options</strong> tab, or even make your own custom scheme, this way:</p>
<p>1. Click Custom on <strong>Options</strong>.</p>
<p>2. Select the color you wish to modify: Tabs, Background, Buttons, or Boxes.</p>
<p>3. Click the colored box, which will open a selector. Hue and saturation are set on the main area, brightness on the sidebar.</p>
<p>4. Repeat steps 2 and 3 for each color type.</p>
<p>PassLok will pick random colors if you click the <strong>Random</strong> button. You can then edit them using the selector.</p>
</div>
<hr>
<div class="helpHeading">
<h3>How to make a strong Key</h3>
</div>
<div class="helpText">
<p>You should be able to <strong>remember your secret Key</strong> without having to write it down. PassLok does not store the Key anywhere. In fact, it deletes it from memory after five minutes of not being used.</p>
<p>As you type your Key, PassLok displays a color-coded message telling you how strong it is. If you stop typing for a second, a mnemonic "Hashili" word based on your Key is displayed right under the strength score, to reassure you that you have typed the Key correctly, even if you cannot see it. Clicking the eye icon reveals the entire Key.</p>
<p>Your Key will be stronger if it contains <strong>caPiTals</strong> in unusual places, <strong>numb3rs</strong>, and <strong>$ymbol$</strong>. If you use common words, <strong>miespell</strong> them to make harder a "dictionary attack." Break the words up with <strong>num334bers</strong> and <strong>sy#$%mbols</strong>. Avoid anything that might be easy to guess. PassLok knows frequently used words, but hackers' dictionaries are bigger. Do not use grammatically correct sentences, even if PassLok gives a big score.</p>
<p>PassLok <strong>compensates for weak Keys by adding spurious computations</strong> and may even appear to have crashed. If PassLok is slow, this may be because your Key strength is less than Medium.</p>
<p>This and more is explained in this video tutorial (warning: watching it may leak your IP number): <a href="https://www.youtube.com/watch?v=JbNM_cf8My0" target="_blank">https://www.youtube.com/watch?v=JbNM_cf8My0</a></p>
<div class="helpHeading2">
<p><em>Click here for More:</em></p>
</div>
<div class="helpText">
<p>If you plan to use PassLok only with shared Keys, you do not need a secret Key at all. Simply Cancel when you are asked for your Key when PassLok starts, and write or paste the encryption Key into the lower box that appears when you you click the <strong>Edit</strong> button located next to the directory.</p>
<p>If instead of a short shared Key you paste in a piece or text at least five times as long as the message to be encrypted, PassLok uses it in Pad mode, which theoretically is much more secure than the regular mode (more on this in a help item below).</p>
</div>
</div>
<hr>
<div class="helpHeading">
<h3>Get a hint to remember my Key</h3>
</div>
<div class="helpText">
<p>If you are reading this, likely you have gained Guest access to PassLok by clicking <strong>Cancel</strong> at the Key entry screen. The good news is that you can still encrypt messages if you know the recipient's Lock or shared Key, verify signatures, and use the Locks stored in your local directory as well as all the auxiliary functions of PassLok. You can even seal items and display the matching Lock if you enter a Key when PassLok asks for it.</p>
<p>The bad news is that you cannot change anything stored in the local directory, and your use of it is limited to Locks. You cannot do anything that would involve your secret Key, such as decrypting messages encrypted with your Lock, or continuing a Read-once conversation in course.</p>
<p>Well, we've got even worse news for you: we cannot help you to recover your secret Key, because PassLok never stored it or sent it out. There are no saved hints, either. If you forgot your Key, <strong>it's gone, along with all encrypted items in the local directory</strong>.</p>
<p>But chances are you <em>almost</em> remember it, and are off by a few characters only. If you click the eye icon, a mnemonic "Hashili" word derived from it appears right above it. Perhaps you can recognize the correct Hashili word when you see it, which will help you to reconstruct your Key. For your security, the Hashili word alone is not enough to reconstruct the Key.</p>
<div class="helpHeading2">
<p><em>Click here for More:</em></p>
</div>
<div class="helpText">
<p>Hopefully Guest mode will let you get by until you remember your secret Key. But if you want to get full access to PassLok with a new Key, here are the steps:</p>
<p>1. Go to the <strong>Options</strong> tab.</p>
<p>2. Click the Backup/Remove <strong>Options only</strong> box. When a popup asks for confirmation to delete your settings, click <strong>OK</strong>.</p>
<p>3. Reload PassLok.</p>
<p>4. The user selection screen will appear, and this time PassLok will accept whatever new Key and email or suchlike you want to give it for the user in question. Now you're back in business and can use PassLok with the new Key to seal, decrypt, store items in the local directory, etc.</p>
<p>At this point, the only directory entry that will work fully is "myself". You can reset or delete the entries that don't work one by one, by typing each name in the directory Edit dialog and clicking <strong>Reset</strong> (leave essential data intact) or <strong>Delete</strong> (take out everything) when the name is recognized, or all at once by following the process described in a help item below, about "moving the entire local directory."</p>
</div>
</div>
<hr>
<div class="helpHeading">
<h3>Use a different Key temporarily</h3>
</div>
<div class="helpText">
<p>For a given user name, there is only one "secret Key" that unlocks all the capabilities of PassLok, but if you are willing to accept a limited access to its functions, you can use a different Key for the session, or whenever PassLok asks you for the Key. This way:</p>
<p>1. Select the user and enter the new Key in the box (optional).</p>
<p>2. Click the <strong>Cancel</strong> button.</p>
<p>3. If asked for your email etc., enter it and click <strong>OK</strong>. (the <strong>Random</strong> button will write a new random value, different from the original random token, if any, so beware)</p>
<div class="helpHeading2">
<p><em>Click here for More:</em></p>
</div>
<div class="helpText">
<p>You can do pretty much everything, except things that would have involved the secret Key. You cannot modify anything in the local directory. When you reload PassLok and enter the correct Key, a warning will tell you that last session was run in Guest mode. If you don't select a user from the list, you won't have access to any stored Locks.</p>
</div>
</div>
<hr>
<div class="helpHeading">
<h3>Make PassLok even more secure</h3>
</div>
<div class="helpText">
<p>When you first opened PassLok, you were asked to optionally enter your email or similar public, easy to recall personal information. But if instead of entering your email you click the <strong>Random</strong> button next to the input box, an 43-character random token is used. This makes your Lock much harder to crack, but it becomes tied to the device where it was created (except for the Chrome and Firefox extensions, which can sync it across devices).</p>
<p>To back up your random token to a safe place in case of accidental deletion or to be able to use a different device:</p>
<p>1. Click the Backup/Remove <strong>Options only</strong> button on the <strong>Options</strong> tab (visible in the Advanced interface). A backup item bracketed by "PL**bak" tags appears on the main box, from where you can save it to file, copy it, email it, etc.</p>
<p>2. Then a dialog asks you if you want to reset your settings. If you click <strong>OK</strong>, PassLok will restart as if it had never started before, except that the local directory remains intact.</p>
<p>To restore the random token from a backup item, paste the packup into the main box and click <strong>Decrypt</strong>.</p>
<p>This and more is explained in this video tutorial (warning: watching it may leak your IP number): <a href="https://www.youtube.com/watch?v=4DjhIjU_nuM" target="_blank">https://www.youtube.com/watch?v=4DjhIjU_nuM</a></p>
<div class="helpHeading2">
<p><em>Click here for More:</em></p>
</div>
<div class="helpText">
<p>The reason for the email or other additional data is to combat the "rainbow table" attack, where hackers pre-compute Locks made from the words in a dictionary. This data is encrypted and stored along with other settings, so you won't need to enter it again. The Lock depends both on the Key and the email or random token; this adds extra security, but it also means that if the random token gets erased you will not be able to decrypt anything that was encrypted with your Lock. The backup item contains your settings, including the random token, double-encrypted by your secret Key. One reason to delete your settings while leaving the local directory intact is to be able to change the random token to a new value. You can also proceed without entering any email or token.</p>
<p>If you plan to use both PassLok and PassLok for Email or PassLok Universal, it is best if you write your real email in this box, for in this case your PassLok Lock will be identical to the one used in those apps and you'll be able to use their main features interchangeably. This precaution is not necessary if you only use one of the versions.</p>
</div>
</div>
<hr>
<div class="helpHeading">
<h3>Display the Lock matching your secret Key</h3>
</div>
<div class="helpText">
<p>Click the <strong>myLock</strong> button on the <strong>Main</strong> tab. The Lock matching that Key will appear
in the lower box, from where you can copy it or email it.</p>
<p>Alternatively, you can click the <strong>Invite</strong> button with nothing displayed in the main box, and then a Lock-containing QR code will appear that others can scan with mobile devices. Tap it to make it go away.</p>
<p>This and more is explained in this video tutorial (warning: watching it may leak your IP number): <a href="https://www.youtube.com/watch?v=L00yybDzN6k" target="_blank">https://www.youtube.com/watch?v=L00yybDzN6k</a></p>
<div class="helpHeading2">
<p><em>Click here for More:</em></p>
</div>
<div class="helpText">
<p>By default, PassLok displays the Lock in ezLok format, consisting of 50 lowercase letters (except L) and numbers, so you can easily dictate it if necessary. On the <strong>Options</strong> tab, you can change this to Word format, consisting of 20 common words, or to base64 format like all other PassLok items, consisting of 43 numbers, letters (capital and smallcase) and special characters / or +<strong></strong>. PassLok for Email, PassLok Universal, and FusionKey are compatible with all Lock formats, but SeeOnce is compatible only with ezLoks. If you wrote your real email when asked about it in the initial wizard, rather than something else, then your Lock is the same as that used in those apps, and the encrypted items made by any flavor of PassLok can be decrypted in the other apps. This precaution is not necessary for SeeOnce.</p>
<p>If you need to make a Lock for a different Key (for instance, in order to receive hidden messages), it is best if you start PassLok in Guest mode by clicking <strong>Cancel</strong> when you are first asked for your Key, which will make PassLok accept a different Key. Then click <strong>myLock</strong> and supply the new Key and your email, if requested (if you use a random token you will need to copy it before, by clicking Change Email in Options).</p>
</div>
</div>
<hr>
<div class="helpHeading">
<h3>Add a Lock or shared Key to the local directory</h3>
</div>
<div class="helpText">
<p>From the <strong>Main</strong> tab (this works only for Locks):</p>
<p>1. Paste the Lock into the Main box. If the item is identified as a Lock, a prompt will ask you to give it a name.</p>
<p>2. Write a name in the prompt box and click <strong>OK</strong>. You will see the name added to the selection box at the top of the <strong>Main</strong> tab.</p>
<p>From the directory Edit dialog:</p>
<p>1. Cick the <strong>Edit</strong> button next to the directory box. </p>
<p>2. Paste the Lock or shared Key in the box, replacing whatever was there before. Usually PassLok will recognize a Lock and display a message saying so.</p>
<p>3. Click the <strong>Save</strong> button. A popup will ask you to provide a name for the item.</p>
<p>4. Write the name and click <strong>OK</strong>. A message confirms that the item has been saved under the name given.</p>
<p>This and more is explained in this video tutorial (warning: watching it may leak your IP number): <a href="https://www.youtube.com/watch?v=vQrED7eIkLA" target="_blank">https://www.youtube.com/watch?v=vQrED7eIkLA</a></p>
<div class="helpHeading2">
<p><em>Click here for More:</em></p>
</div>
<div class="helpText">
<p>If the given name is already in the directory, the Lock or shared Key will be replaced rather than added. You can store a cover text or a List besides an individual's Lock or shared Key. In the case of a List, the given name will be displayed bracketed by double dashes. Items that are not Locks are stored encrypted. When you load PassLok from an email link, a popup may open asking you to accept saving the sender's Lock to your directory. You can change its name at this point.</p>
<p>You can also rename an item that is already saved by clicking the <strong>Rename</strong> button and suplying a new name. If you leave the default name 'Delete' and click OK, the item will be deleted instead.</p>
<p>(<em>Chrome/Firefox app only</em>) If <strong>Chrome sync</strong> is checked in Options, the item will also be added to the Chrome sync area, so it is available on a different computer after you log into Chrome or Firefox.</p>
</div>
</div>
<hr>
<div class="helpHeading">
<h3>Encrypt a message with a Lock, to be decrypted with the matching Key (Anonymous mode)</h3>
</div>
<div class="helpText">
<p>1. Make sure <strong>Anonymous</strong> mode is selected at the bottom of the <strong>Main</strong> tab. This is the default.</p>
<p>2. If the recipients' Locks have been previously stored in the directory, simply select their names in the top box of the <strong>Main</strong> tab. </p>
<ul>
<li>If not, click the <strong>Edit</strong> button next to the directory listing and paste the Locks, one per line, in the dialog that appears. Then click <strong>Done</strong>.</li>
</ul>
<p>3. Write or paste your message in the lower box of the <strong>Main</strong> tab. You can give it rich formatting or add images and files if you display the formatting toolbar by clicking the <strong>Rich</strong> button (non-mobile).</p>
<p>4. Click the <strong>Encrypt</strong> button. The
encrypted message will appear in the box, replacing the original message.</p>
<p>Copy it and paste it into your
communications program or click <strong>Email</strong> to open your default email. </p>
<p>This and more is explained in this video tutorial (warning: watching it may leak your IP number): <a href="https://www.youtube.com/watch?v=nBA5JNY4gmQ" target="_blank">https://www.youtube.com/watch?v=nBA5JNY4gmQ</a></p>
<div class="helpHeading2">
<p><em>Click here for More:</em></p>
</div>
<div class="helpText">
<p>This mode is called Anonymous not because it provides any protection against tracking over a network, but because the identity of the sender cannot be deduced from the encrypted message. This message can be decrypted only by someone having the Key matching one of the Locks selected. Alternatively, you can write the Locks' names, one per line, in the dialog that appears whn you click the Edit button. Or you can select a List, as described in an item below, in order to encrypt for all the recipients in the List. It is okay if the tags up to the "==" signs on the Lock are missing, or carriage returns have been added (such as for a video URL). If you have checked <strong>Include my Lock</strong> in the Options tab before encryption, your Lock will be prepended to the encrypted message.</p>
<p>Messages encrypted in this mode can be decrypted by PassLok for Email and PassLok Universal, if the Email mode checkbox is checked in Options before the message is encrypted.</p>
</div>
</div>
<hr>
<div class="helpHeading">
<h3>Decrypt an Anonymous encrypted message (tags are PL**msa)</h3>
</div>
<div class="helpText">
<p>1. Paste the encrypted message in the lower box of the <strong>Main</strong> tab.</p>
<p>2. If the message doesn't decrypt automatically, click the <strong>Decrypt</strong> button. The decrypted message
will appear in the box, replacing the encrypted message.</p>
<p>This and more is explained in this video tutorial (warning: watching it may leak your IP number): <a href="https://www.youtube.com/watch?v=nBA5JNY4gmQ" target="_blank">https://www.youtube.com/watch?v=nBA5JNY4gmQ</a></p>
<div class="helpHeading2">
<p><em>Click here for More:</em></p>
</div>
<div class="helpText">
<p>It is okay if the message is broken up by
carriage returns or is
missing its tags. It doesn't matter which encryption mode is selected at the botton of the <strong>Main</strong> tab.</p>
<p>Even though this encryption mode is not available in Email mode, Anonymous messages will decrypt fine even if Email mode is set.</p>
</div>
</div>
<hr>
<div class="helpHeading">
<h3>Encrypt a message with a Lock, to be decrypted with the matching Key, and sign it with your secret Key (Signed mode)</h3>
</div>
<div class="helpText">
<p>1. Make sure <strong>Signed</strong> mode is selected at the bottom of the <strong>Main</strong> tab.</p>
<p>2. If the recipients' Locks have been previously stored in the directory, simply select their names in the top box of the <strong>Main</strong> tab.</p>
<ul>
<li>If not, click the <strong>Edit</strong> button next to the directory box and paste the Locks, one per line, in the dialog that appears. Then click <strong>Done</strong>.</li>
</ul>
<p>3. Write or paste your message in the lower box of the <strong>Main</strong> tab. You can give it rich formatting or add images and files if you display the formatting toolbar by clicking the <strong>Rich</strong> button (non-mobile).</p>
<p>4. Click the <strong>Encrypt</strong> button. The
encrypted message will appear in the box, replacing the original message.</p>
<p>Copy it and paste it into your
communications program or click <strong>Email</strong> to open your default email.</p>
<p>This and more is explained in this video tutorial (warning: watching it may leak your IP number): <a href="https://www.youtube.com/watch?v=R9UanENF3ro" target="_blank">https://www.youtube.com/watch?v=R9UanENF3ro</a></p>
<div class="helpHeading2">
<p><em>Click here for More:</em></p>
</div>
<div class="helpText">
<p> This mode is called Signed not because a digital signature is involved, but because the message can be decrypted only by
someone having the Key matching one of the Locks selected, and your Lock. This way, the recipient can be sure of who encrypted the message. Alternatively, you can also write the names, one per line, in the dialog that appears when you click the Edit button. You can also encrypt for all the recipients in a List by selecting a List name. It is okay to strip the tags up to the "==" signs, but not recommended. It is also okay to split the encrypted message with line returns. This message can be decrypted only by someone having the Key matching the Lock used to encrypt it. Additionally, they must have your Lock in order to verify that it comes from you. If you have checked <strong>Include my Lock</strong> in the Options tab before encryption, your Lock will be prepended to the encrypted message.</p>
<p>Messages encrypted in this mode can be decrypted by PassLok for Email and PassLok Universal, if the Email mode checkbox is checked in Options before the message is encrypted.</p>
</div>
</div>
<hr>
<div class="helpHeading">
<h3>Decrypt a Signed message (tags are PL**mss)</h3>
</div>
<div class="helpText">
<p>1. If the sender's Lock has been previously stored in the local directory, simply select its name in the top box of the <strong>Main</strong> tab.</p>
<ul>
<li>If not, click the <strong>Edit</strong> button next to the directory box and paste the sender's Lock in the dialog that appears. Then click <strong>Done</strong>.</li>
</ul>
<p>2. Paste the encrypted message in the lower box of the <strong>Main</strong> tab.</p>
<p>3. If the message doesn't decrypt automatically, click the <strong>Decrypt</strong> button. The decrypted message
will replace the encrypted message.</p>
<p>This and more is explained in this video tutorial (warning: watching it may leak your IP number): <a href="https://www.youtube.com/watch?v=R9UanENF3ro" target="_blank">https://www.youtube.com/watch?v=R9UanENF3ro</a></p>
<div class="helpHeading2">
<p><em>Click here for More:</em></p>
</div>
<div class="helpText">
<p>It is okay if the message is broken up by carriage returns or is missing its tags. It doesn't matter which encryption mode is selected at the botton of the <strong>Main</strong> tab.</p>
<p> A message encrypted by PassLok for Email or PassLok Universal in normal mode will be decrypted by PassLok in Signed mode. Just paste it in and supply a name for the included ezLok, if requested.</p>
</div>
</div>
<hr>
<div class="helpHeading">
<h3>Encrypt a message so that nobody can read it after the exchange is over (Read-once mode)</h3>
</div>
<div class="helpText">
<p>1. Make sure <strong>Read-once</strong> mode is selected at the bottom of the <strong>Main</strong> tab.</p>
<p>2. Select the recipients' Locks in the top box of the <strong>Main</strong> tab. This mode requires the recipients' Locks to be previously stored in the local directory. </p>
<p>3. Write or paste your message in the lower box of the <strong>Main</strong> tab. You can give it rich formatting or add images and files if you display the formatting toolbar by clicking the <strong>Rich</strong> button (non-mobile).</p>
<p>4. Click the <strong>Encrypt</strong> button. The
encrypted message will appear in the box, replacing the original message.</p>
<p>Copy it and paste it into your
communications program or click <strong>Email</strong> to open your default email.</p>
<p>This and more is explained in this video tutorial (warning: watching it may leak your IP number): <a href="https://www.youtube.com/watch?v=VutWfWZW5bY" target="_blank">https://www.youtube.com/watch?v=VutWfWZW5bY</a></p>
<div class="helpHeading2">
<p><em>Click here for More:</em></p>
</div>
<div class="helpText">
<p>This message can be decrypted only by someone having the Key matching one of the Locks selected, and your Lock, and then typically only once. In order to restart a Read-once conversation that has gone out of sync, clear the old data for that recipient by clicking the <strong>Reset</strong> button in the directory <strong>Edit</strong> dialog after the recipient's name is displayed above the box (you may have to type the name in the box for this to happen), then encrypt the message normally. The first message after a reset does not have forward secrecy, so be careful with this one. To encrypt for all recipients in a List, select the List in the top box of the Main screen. It is okay to strip the Lock tags up to the "==" signs, but not recommended. It is also okay to split the encrypted message with line returns. If you have checked <strong>Include my Lock</strong> in the Options tab before encryption, your Lock will be prepended to the encrypted message.</p>
<p>Messages encrypted in this mode can be read in SeeOnce if Compatibility mode is checked in Options. They can also be decrypted by PassLok for Email and PassLok Universal, if the Email mode checkbox is checked in Options before the message is encrypted.</p>
</div>
</div>
<hr>
<div class="helpHeading">
<h3>Decrypt a message that was encrypted in Read-once mode (tags are PL**mso)</h3>
</div>
<div class="helpText">
<p>1. Select the sender's Lock on the top box of the <strong>Main</strong> tab. This mode requires the sender's Lock to be previously stored in the device's local directory.</p>
<p>2. Paste the encrypted message in the lower box of the <strong>Main</strong> tab.</p>
<p>3. If the message doesn't decrypt automatically, click the <strong>Decrypt</strong> button. The decrypted message
will replace the encrypted message.</p>
<p>This and more is explained in this video tutorial (warning: watching it may leak your IP number): <a href="https://www.youtube.com/watch?v=VutWfWZW5bY" target="_blank">https://www.youtube.com/watch?v=VutWfWZW5bY</a></p>
<div class="helpHeading2">
<p><em>Click here for More:</em></p>
</div>
<div class="helpText">
<p>Usually you can decrypt the message only once, since the ephemeral key needed to decrypt it is overwritten in the process, but after a reset the first message can be decrypted forever, and the second becomes undecryptable only after it is replied to. It is okay if the message is broken up by carriage returns or is missing its tags. It doesn't matter which encryption mode is selected at the botton of the <strong>Main</strong> tab.</p>
<p>A message encrypted by PassLok for Email or PassLok Universal in Read-once mode can be decrypted by PassLok in this mode. Just paste it in and supply a name for the included ezLok, if requested. Same if it was encrypted in SeeOnce.</p>
</div>
</div>
<hr>
<div class="helpHeading">
<h3>Reset a Read-once conversation</h3>
</div>
<div class="helpText">
<p>This may be needed if the conversation with a given correspondent has gone out of sync so that you are unable to decrypt a new Read-once message from this person. Resetting clears ephemeral Keys and Locks on both sides, and re-initiates the Read-once exchange.
<p>1. Click the <strong>Edit</strong> button next to the Lock selection box.</p>
<p>2. Start writing the name given to the correspondent in the dialog. As you type, the line above the box displays existing items matching what you have typed so far. You can stop typing once you see the complete name you're looking for. Search is case-insensitive.</p>
<p>3. Click the <strong>Reset</strong> button. A popup asks you to confirm the action, and then a message tells you that it has been done.</p>
<p>This and more is explained in this video tutorial (warning: watching it may leak your IP number): <a href="https://www.youtube.com/watch?v=VutWfWZW5bY" target="_blank">https://www.youtube.com/watch?v=VutWfWZW5bY</a></p>
</div>
<hr>
<div class="helpHeading">
<h3>Send a PassLok item (Lock, encrypted message, etc.) by email</h3>
</div>
<div class="helpText">
<p>1. Check that the item displayed on the <strong>Main</strong> tab is PassLok output. If it is not, the button you need to press in the next step won't be there.</p>
<p>2. Click the <strong>Email</strong> button. If the device is so configured, a window appears containing the item and some explanatory text. You only need to supply the recipient's email address and a subject line before clicking the Send button.</p>
<p>This and more is explained in this video tutorial (warning: watching it may leak your IP number): <a href="https://www.youtube.com/watch?v=LsljKvjAi9I" target="_blank">https://www.youtube.com/watch?v=LsljKvjAi9I</a></p>
<div class="helpHeading2">
<p><em>Click here for More:</em></p>
</div>
<div class="helpText">
<p>Be aware that there is a limit to the size of a message that is made this way. If you get an error, you can always copy the contents of the box and paste it into a normal mail compose screen.The email includes a link that, if clicked, will open the contents in the web app version of PassLok. To open it in a different email client or in case the button is not visible or the new window fails to appear, copy it to the clipboard and then paste it into the "compose" box of your favorite email.</p>
<p>If the recipient is going to use PassLok for Email or PassLok Universal rather than this standalone version of PassLok or FusionKey, you'll make things easier if you switch to Email mode in Options before you click <strong>Encrypt</strong>.</p>
</div>
</div>
<hr>
<div class="helpHeading">
<h3>Send a PassLok item by Text messaging</h3>
</div>
<div class="helpText">
<p>1. Check that the item to be sent is displayed on the <strong>Main</strong> tab. Usually it will have been produced with <strong>Short</strong> mode selected in <strong>Options</strong>, to make sure it fits in a single message.</p>
<p>2. Tap the button dealing with text messaging, which is labeled <strong>SMS</strong>. A window appears with the default texting app (setting it in a computer up may require additional steps).</p>
<p>3. Tap the input box and then paste the clipboard, which will contain the encrypted message. Send the message in the usual way.</p>
<p>This and more is explained in this video tutorial (warning: watching it may leak your IP number): <a href="https://www.youtube.com/watch?v=LsljKvjAi9I" target="_blank">https://www.youtube.com/watch?v=LsljKvjAi9I</a></p>
<div class="helpHeading2">
<p><em>Click here for More:</em></p>
</div>
<div class="helpText">
<p>To decrypt a encrypted message received by texting, you must first copy it to the clipboard, and then paste it on the <strong>Main</strong> tab of PassLok. Due to browser restrictions, there is no way to know whether the item has been copied to clipboard, but hopefully the process above is fairly foolproof. (Advanced) If you want to make sure the encrypted message fits within a single text message, encrypt it with the <strong>Short</strong> option on.</p>
</div>
</div>
<hr>
<div class="helpHeading">
<h3>Load files to be encrypted, sealed, or split</h3>
</div>
<div class="helpText">
<p>1. The button to load files is near the right end of the formatting toolbar, which is displayed by clicking the <strong>Rich</strong> button. It looks like this: <img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAMAAABhEH5lAAAATlBMVEUAAAAAAAD19fVcXFwbGxsTExP8/PzT09NxcXFaWlo4ODg1NTUEBAT5+fnw8PDr6+vU1NTIyMi+vr6Xl5dsbGxnZ2dXV1dISEghISEMDAw0f0rSAAAAAXRSTlMAQObYZgAAAFBJREFUGNO9yEkOgCAQBMBmUxDc9/9/VJ2EjgkHb9axcJuceqQRtMq4aAdWkDr6xtW5jJRFx2MBu23fdS7eG6Vz0U8VytrKmhMnVoDQlOfbBQLIAl4FF2fyAAAAAElFTkSuQmCC" /></p>
<p>2. When you click it, a dialog will appear so you can navigate to the file. If all goes well, the file loads into the box as a link. You will see only its name, but the whole file is actually in there.</p>
<p>Now you can encrypt it, seal it, or split it just like a text-based message. You can also add more files if you want. The process to retrieve the original files is explained in the help item below.</p>
<p>This and more is explained in this video tutorial (warning: watching it may leak your IP number): <a href="https://www.youtube.com/watch?v=tPeUv6BRTrg" target="_blank">https://www.youtube.com/watch?v=tPeUv6BRTrg</a></p>
<div class="helpHeading2">
<p><em>Click here for More:</em></p>
</div>
<div class="helpText">
<p> If the file is a text file, it will load as plain text rather than as a link. Be aware that mobile devices (especially in iOS) often place severe restrictions on accessing stored content. If using a Chromebook, be aware that the Files extension does not load Google documents completely; save the file locally in a different format and try loading it again.</p>
<p>You can also put images in your message, by clicking the button immediately to the left of the one to load files. In this case the content is displayed as an image rather than a link.</p>
<p>If you plan to send large files by email or other means, it is best to encrypt them with an archiving program such as 7zip, Winzip, or Winrar (Windows), Keka (OSX), or p7zip (Linux) using AES and a random symmetric key, and then use PassLok to encrypt that symmetric key for transmission, along with the encrypted files as attachments.</p>
</div>
</div>
<hr>
<div class="helpHeading">
<h3>Retrieve a file that has just been decrypted, unsealed, of joined</h3>
</div>
<div class="helpText">
<p>1. Make sure the file appears as a link on the Main box.</p>
<p>2. A button below the Main box will be labeled <strong>Save</strong>. Click it to download all the files in the Main box. You can also use the rightmost button on the toolbar.</p>
<p>3. For small enough files, you can also right-click on its link and select the <strong>Save link as</strong> option. The file will be saved at the location you select.</p>
<p>This and more is explained in this video tutorial (warning: watching it may leak your IP number): <a href="https://www.youtube.com/watch?v=tPeUv6BRTrg" target="_blank">https://www.youtube.com/watch?v=tPeUv6BRTrg</a></p>
<div class="helpHeading2">
<p><em>Click here for More:</em></p>
</div>
<div class="helpText">
<p>Chrome does not display the <strong>Save link as</strong> option if the file is larger than 1.5MB. Be aware that mobile devices (especially on iOS) place severe restrictions on what files can be saved, and where.</p>
</div>
</div>
<hr>
<div class="helpHeading">
<h3>File output</h3>
</div>
<div class="helpText">
<p>If you select <strong>File output</strong> on the <strong>Options</strong> tab before encrypting, sealing, or splitting, the result of the operation appears as a file (several, in the case of splitting), which you can then save anywhere with the Save button. Doing this will speed up things considerably if you are encrypting, sealing, or splitting something large.</p>
<p>The file can be either binary with extension .plk (default), or text with extension .txt. This can be selected on the <strong>Options</strong> tab.</p>
<p>This and more is explained in this video tutorial (warning: watching it may leak your IP number): <a href="https://www.youtube.com/watch?v=Sm4f6FIOShI" target="_blank">https://www.youtube.com/watch?v=Sm4f6FIOShI</a></p>
<div class="helpHeading2">
<p><em>Click here for More:</em></p>
</div>
<div class="helpText">
<p>An output item loaded as a file can be decrypted, unsealed, or joined just like an item loaded as text. It can also be sent by email as an attachment, which is handy when the item is large. Feel free to change the file name or extension to something else, but to decrypt, unseal, or join files made this way, you must make sure the extension is .plk or .txt before you load them or PassLok may fail to recognize them as its own output. Be aware that mobile devices (especially on iOS) often make it difficult to work with files.</p>
<p>The help item below describes another way to encrypt and decrypt single files, possibly of very large size, that is compatible with the GroupKyber app, but not with the File output mode described here.</p>
</div>
</div>
<hr>
<div class="helpHeading">
<h3>File Drop mode</h3>
</div>
<div class="helpText">
<p>This mode, which should not be confused with the feature described in the previoous help item, allows users to encrypt and decrypt single files, possibly of very large size, by drag and drop. You start by selecting the <strong>File Drop</strong> radio button near the top of the <strong>Options</strong> tab. The main box is replaced by a large drop target with a folder icon, and then:</p>
<ol>
<li>To encrypt, select the recipients in the directory. All the recipients must have a Lock stored. You are added automatically, so no need to select 'myself'. If nobody is selected, files will be encrypted for yourself only. This step is not necessary for decryption.</li>
<li>Drag the file to be encrypted or decrypted into the drop target, or just click the drop target and then navigate to the file location and click OK. Encryption or decryption will start as soon as the file is loaded, and the result will appear in the Downloads folder. Encrypted file names end with the extension .crypt . You can change the name and extension freely.</li>
</ol>
<p>Alternatively, you can toggle <strong>Folder mode</strong>, useful for controlling access to a number of encrypted files, via a Folder Key file. To use this mode, do this after turning on Folder mode:</p>
<ol>
<li>If a Folder Key file exists already, simply drag it to the drop target and it will be decrypted and loaded to memory.</li>
<li>To make a new Folder Key or update a previously loaded Folder Key, select the intended recipients on the directory. Again, all the recipients must have a Lock stored and you are added automatically. Then click the <strong>New Folder Key</strong> or <strong>Update Folder Key</strong> button as the case may be. The new or updated Folder Key will appear in your Downloads folder. You can change the name of this file, including the extension, as you wish. Files encrypted with a Folder Key that has just been updated do not need to be modified.</li>
<li>You can also skip the previous step and simply start dragging files into the drop target after the Folder Key is loaded, and they will be encrypted or decrypted automatically, and the result sent to the Downloads folder. All files you process will be encrypted with the same key, and therefore will be accessible to the same set of recipients.</li>
</ol>
<div class="helpHeading2">
<p><em>Click here for More:</em></p>
</div>
<div class="helpText">
<p>The format of files encrypted in this mode is not compatible with the .plk files described in the previous help item, but they are compatible with the GroupEncrypt app, and those made by that app are compatible with PassLok under File Drop mode.</p>
</div>
</div>
<hr>
<div class="helpHeading">
<h3>Make an invitation to join a real-time multi-party chat session</h3>
</div>
<div class="helpText">
<p>1. Select the other participants in the chat on the list at the top of the <strong>Main</strong> tab. You are added automatically.</p>
<p>2. Click the <strong>Chat</strong> button, which is below the box. A dialog will appear asking you whether this chat is going to involve text and files only, or also will involve audio, or video, or be hosted by Jitsi, an open-source videoconference service. There is also a text box where you can optionally type something that will be shown to the users (such as the date and time for the chat) before they join the chat.</p>
<p>3. Supply the required information and click <strong>OK</strong>. If the main box did not contain a chat invitation, a new one is generated and placed there. You can now email it with the <strong>Email</strong> button, or send it out by any other means.</p>
<p>This and more is explained in this video tutorial (warning: watching it may leak your IP number): <a href="https://www.youtube.com/watch?v=XytUN0T_2zQ">https://www.youtube.com/watch?v=XytUN0T_2zQ</a></p>
<div class="helpHeading2">
<p><em>Click here for More:</em></p>
</div>
<div class="helpText">
<p> Please tell participants about the time for the chat. When the time comes, you will join the chat using the same invitation as the other parties, so make sure to save it somewhere. All browsers can make a chat invitation, but some (Internet Explorer, Safari, native Android app, anything on iOS) don't support joining the actual chat.</p>
<p>PassLok chat invitations can be decrypted in PassLok for Email, PassLok Universal, and FusionKey, and vice-versa. If you set encrypt Compatible mode in Options before encryption, they can be decrypted in SeeOnce (Read-once only) or URSA as well.</p>
</div>
</div>
<hr>
<div class="helpHeading">
<h3>Use an invitation to join a real-time chat session (tags are PL**chat)</h3>
</div>
<div class="helpText">
<p>1. Place the invitation in the Main box and click the <strong>Chat</strong> or the <strong>Decrypt</strong> button. If the sender added a message, it will be displayed and you will have to click <strong>OK</strong> to go on, or <strong>Cancel</strong> to try later.</p>
<p>2. A new screen opens. Write the name you want to use for the chat in the top box, check that the type of chat offered is what everyone agreed on, and then click<strong> Join</strong>.</p>
<p>3. As participants join the chat session, their chosen names will appear at the top of the chat screen (or a randomly-chosen tag, if they didn't supply a name). You can then post text by writing it in the Text box, followed by Enter. You can also post files by clicking the Browse or Files button.</p>
<p>4. If the chat involves audio or video, you may be asked to give permission to access you microphone and camera. After you grant it, you will see or hear the other participants as they join, and likely yourself too. Jitsi chats are the most polished, but participants connect through a server rather than one-on-one as in the other types.</p>
<p>This and more is explained in this video tutorial (warning: watching it may leak your IP number): <a href="https://www.youtube.com/watch?v=XytUN0T_2zQ">https://www.youtube.com/watch?v=XytUN0T_2zQ</a></p>
<div class="helpHeading2">
<p><em>Click here for More:</em></p>
</div>
<div class="helpText">
<p> Connections between participants are direct in all chat types except Jitsi, but a signaling server is used at the start so the participants can find one another, and then it is contacted no more. PassLok will remind you that this may lead to your being tracked. The connection will stay alive until all the participants leave. If things get out of hand, you can always reset your session by reloading the chat page. At that point you'll have the chance to change the kind of chat if you so desire.</p>
<p>Browsers are not equal as far as support for chat: Firefox and Chrome are the best, followed by the Android browser, Maxthon, and then Opera (with problems). Internet Explorer, Tor, Safari, and anything on iOS don't yet support joining a chat, though you can make a chat invitation from them.</p>
<p>PassLok can open chat invitations made in SeeOnce and URSA.</p>
</div>
</div>
<hr>
<div class="helpHeading">
<h3>Encrypt a message with a shared Key, to be decrypted with the same Key</h3>
</div>
<div class="helpText">
<p>1. Make sure the <strong>Anonymous</strong> or <strong>Signed</strong> mode is selected at the bottom of the <strong>Main</strong> tab.</p>
<p>2. If the Keys shared with each of the recipients have been previously stored in the local directory, simply select their names in the top box of the <strong>Main</strong> tab.</p>
<ul>
<li>If not, click the <strong>Edit</strong> button next to the directory box and paste the shared Keys, one per line, in the dialog that appears. You can mix shared Keys and Locks. Then click <strong>Done</strong>.</li>
</ul>
<p>3. Write or paste the message in the lower box of the <strong>Main</strong> tab.</p>
<p>4. Click the <strong>Encrypt</strong> button. The
encrypted message will appear in the box, replacing the original text.</p>
<p>Copy it and paste it into your
communications program or click <strong>Email</strong> to open your default email program. </p>
<p>This and more is explained in this video tutorial (warning: watching it may leak your IP number):<a href="https://www.youtube.com/watch?v=sRdpWe4zya8" target="_blank">https://www.youtube.com/watch?v=sRdpWe4zya8</a></p>
<div class="helpHeading2">
<p><em>Click here for More:</em></p>
</div>
<div class="helpText">
<p>This message can be decrypted only by someone having the same shared Key. It does not matter whether Anonymous or Signed mode is selected, since they use shared Keys identically. It is okay to strip the tags up to the "==" signs, but not recommended. It is also okay to split the encrypted message with line returns. The tags will depend on the encryption mode selected. There is no special tag to indicate that a shared Key was used instead of a Lock.</p>
<p>Messages encrypted with a shared Key can be decrypted in PassLok for Email, PassLok Universal, and FusionKey as well. They can be decrypted in URSA if Short or Compatible mode are chosen in Options prior to encryption. If you have checked <strong>Include my Lock</strong> in the Options tab before encryption, your Lock will be prepended to the encrypted message.</p>
</div>
</div>
<hr>
<div class="helpHeading">
<h3>Decrypt a message encrypted with a shared Key</h3>
</div>
<div class="helpText">
<p>1. If the Key shared with the sender has been previously stored in the local directory, simply select its name in the top box of the <strong>Main</strong> tab.</p>
<ul>
<li>If not, click the <strong>Edit</strong> button next to the directory box and paste the shared Key in the dialog that appears. Then click <strong>Done</strong>.</li>
</ul>
<p>2. Paste the encrypted message in the lower box of the <strong>Main</strong> tab.</p>
<p>3. If the message does not decrypt automatically, click the <strong>Decrypt</strong> button. The decrypted message
will appear in the main box, replacing the encrypted message.</p>
<p>This and more is explained in this video tutorial (warning: watching it may leak your IP number):<a href="https://www.youtube.com/watch?v=sRdpWe4zya8" target="_blank">https://www.youtube.com/watch?v=sRdpWe4zya8</a></p>
<div class="helpHeading2">
<p><em>Click here for More:</em></p>
</div>
<div class="helpText">
<p>It is okay if the message is broken up by
carriage returns or is
missing its tags. It doesn't matter which encryption mode is selected at the botton of the <strong>Main</strong> tab.</p>
<p>Messages encrypted with URSA can be decrypted in PassLok, using this procedure.</p>
</div>
</div>
<hr>
<div class="helpHeading">
<h3>Encrypt a message with a Pad, to be decrypted with the same Pad</h3>
</div>
<div class="helpText">
<p>1. Copy the text to be used as Pad from its source. It should be at least five times as long as the message, or Pad mode won't engage. You can also load a whole file that is at least five times as long as the message.</p>
<p>2. Click the <strong>Edit</strong> button next to the directory box and paste the shared Pad in the dialog that appears. You can also load a file by means of a button visible in the Advanced interface. Then click <strong>Done</strong>.</p>
<p>3. Write the message in the lower box of the <strong>Main</strong> tab.</p>
<p>4. Click the <strong>Encrypt</strong> button. If Pad mode is engaged, a popup will ask for the starting position in the Pad, otherwise encryption will proceed using the regular shared Key mode (a warning popup will appear if there are several paragraphs).</p>
<p>5. Write a number within the range given in the dialog and click <strong>OK</strong>. The
encrypted message will appear in the box, replacing the original text.</p>
<p>This and more is explained in this video tutorial (warning: watching it may leak your IP number): <a href="https://www.youtube.com/watch?v=BEXYuaCxciM" target="_blank">https://www.youtube.com/watch?v=BEXYuaCxciM</a></p>
<div class="helpHeading2">
<p><em>Click here for More:</em></p>
</div>
<div class="helpText">
<p>Pad mode is <em>theoretically impossible to break</em>, even by brute force. Use it when you need utmost security. The text material can be taken from a digital book, for instance. You may transmit in plaintext the page number and starting position, so long as the text source is kept secret.</p>
<p>It is okay to split the encrypted message with line returns or to eliminate the tags at either end. It doesn't matter which encryption mode is selected at the botton of the <strong>Main</strong> tab.</p>
<p>Messages encrypted this way can also be decrypted in KyberLock and URSA.</p>
</div>
</div>
<hr>
<div class="helpHeading">
<h3>Decrypt a message encrypted with a Pad (tags are PL**msp)</h3>
</div>
<div class="helpText">
<p>1. Copy the text to be used as Pad from its source. It should be at least five times as long as the message, or Pad mode won't engage. You can also load a whole file that is at least five times as long as the message.</p>
<p>2. Click the <strong>Edit</strong> button next to the directory box and paste the shared Pad in the dialog that appears. You can also load a file by means of a button visible in the Advanced interface. Then click <strong>Done</strong>.</p>
<p>3. Paste the encrypted message in the lower box of the <strong>Main</strong> tab.</p>
<p>4. Click the <strong>Decrypt</strong> button if decrypting does not start automatically. A popup will ask for the starting position in the Pad.</p>
<p>5. Write the numerical starting position in the popup and click <strong>OK</strong>. The decrypted message will appear in the main box, replacing the encrypted message.</p>
<p>This and more is explained in this video tutorial (warning: watching it may leak your IP number): <a href="https://www.youtube.com/watch?v=BEXYuaCxciM" target="_blank">https://www.youtube.com/watch?v=BEXYuaCxciM</a></p>
<div class="helpHeading2">
<p><em>Click here for More:</em></p>
</div>
<div class="helpText">
<p>It is okay if the message is broken up by
carriage returns or is
missing its tags. It doesn't matter which encryption mode is selected at the botton of the <strong>Main</strong> tab.</p>
<p>KyberLock and URSA messages encrypted this way can also be decrypted in PassLok.</p>
</div>
</div>
<hr>
<div class="helpHeading">
<h3>Encrypt in Human mode, so it can be decrypted by hand</h3>
</div>
<div class="helpText">
<p>1. If the four- or five-part Key shared with the recipient has been previously stored in the local directory, simply select its name in the top box of the <strong>Main</strong> tab.</p>
<ul>
<li>If not, click the <strong>Edit</strong> button next to the directory box and type the Human mode Key, which consists of <em>four text strings separated by tildes </em>"~", optionally followed by another tilde and a (low) integer number. Then click <strong>Done</strong>.</li>
</ul>
<p>2. Write the message in the lower box of the <strong>Main</strong> tab. This mode understands only Latin characters, and removes any accents and diacritic marks.</p>
<p>3. Click the <strong>Encrypt</strong> button.</p>
<p>This and more is explained in this video tutorial (warning: watching it may leak your IP number): <a href="https://www.youtube.com/watch?v=npROBlHjxmc" target="_blank">https://www.youtube.com/watch?v=npROBlHjxmc</a></p>
<div class="helpHeading2">
<p><em>Click here for More:</em></p>
</div>
<div class="helpText">
<p>This mode engages automatically if the Key consists of three strings separated by tildes. If you have a single string, write two tildes after it in order to use this mode. It doesn't matter which encryption mode is selected at the botton of the <strong>Main</strong> tab or on the <strong>Options</strong> tab.</p>
<p>The method is described in detail in this page, which can also encrypt and decrypt messages: <a href="https://passlok.com/human" target="_blank">https://passlok.com/human</a>. KyberLock and URSA can also encrypt and decrypt in this mode. Even though encryption and decryption can be performed without a computer, security against computer-based cryptanalysis is comparable to that of computer-based ciphers.</p>
</div>
</div>
<hr>
<div class="helpHeading">
<h3>Decrypt a message encrypted in Human mode (tags are PL**msh)</h3>
</div>
<div class="helpText">
<p>1. If the four- or five-part Key shared with the recipient has been previously stored in the local directory, simply select its name in the top box of the <strong>Main</strong> tab.</p>
<ul>
<li>If not, click the <strong>Edit</strong> button next to the directory box and type the Human mode Key, which consists of <em>four text strings separated by tildes </em>"~", plus an optional (low) integer number. Then click <strong>Done</strong>.</li>
</ul>
<p>2. Paste the encrypted message in the lower box of the <strong>Main</strong> tab.</p>
<p>3. Click the <strong>Decrypt</strong> button if decrypting does not start automatically. Unlike in other modes, you won't get a message telling you whether or not the decryption has been successful.</p>
<p>This and more is explained in this video tutorial (warning: watching it may leak your IP number): <a href="https://www.youtube.com/watch?v=npROBlHjxmc" target="_blank">https://www.youtube.com/watch?v=npROBlHjxmc</a></p>
<div class="helpHeading2">
<p><em>Click here for More:</em></p>
</div>
<div class="helpText">
<p>It is okay if the message is broken up by carriage returns or is missing its tags. It doesn't matter which encryption mode is selected at the botton of the <strong>Main</strong> tab.</p>
<p>If you want to learn how to encrypt or decrypt in this mode, using simply paper and pencil, look at the instructions in this page, which also does encryption and decryption: <a href="https://passlok.com/human" target="_blank">https://passlok.com/human</a>. KyberLock and URSA can also encrypt and decrypt in this mode.</p>
</div>
</div>
<hr>
<div class="helpHeading">
<h3>Retrieve a Lock or shared Key from the local directory</h3>
</div>
<div class="helpText">
<p>1. Click the <strong>Edit</strong> button next to the directory box.</p>
<p>2. Start writing the name of the item in the box that appears. As you type, the line above the box displays existing names that match what you have typed so far. When you see that the correct name has been found, you may stop typing; PassLok will use that item to encrypt or decrypt.</p>
<p>This and more is explained in this video tutorial (warning: watching it may leak your IP number): <a href="https://www.youtube.com/watch?v=vQrED7eIkLA" target="_blank">https://www.youtube.com/watch?v=vQrED7eIkLA</a></p>
<div class="helpHeading2">