-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathindex.html
215 lines (200 loc) · 10 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
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1, maximum-scale=1">
<title>pgpNow - Instant PGP encryption and decryption in your browser</title>
<meta name="description" content="With pgpNow you have secure PGP-based encryption right in your browser. The en- and decryption is all done inside of your local browser, you don't have to trust anybody. If you don't trust me with the code, just fork away and assure yourself. It's open source under MIT licence.">
<meta name="author" content="Daniel Huhn">
<meta name="keywords" content="pgp encryption browser secure open source decryption instant offline MIT licence">
<link type="text/css" rel="stylesheet" href="css/groundwork.css" />
<link type="text/css" rel="stylesheet" href="css/toastr.min.css" />
<link type="text/css" rel="stylesheet" href="css/magnific-popup.css" />
<link type="text/css" rel="stylesheet" href="css/style.css" />
</head>
<body>
<div class="padded">
<div class="one fifth">
<div class="row">
<label><b>Keys</b></label>
</div>
<div class="row">
<button id="showOwnKeysButton" class="block">Show my keys</button>
</div>
<div class="pad-top row">
<label>People</label>
</div>
<div class="row">
<select size="4" data-bind="options: partners,
optionsText: 'name',
value: selectedPartner"></select>
</div>
<div class="row">
<button onclick="partnerManager.showNewPartnerModal()" class="one half">+</button>
<button onclick="partnerManager.removeSelected()" class="one half">-</button>
</div>
</div>
<div class="pad-left four fifth">
<div class="row">
<div class="row">
<label><b>Encryption</b></label>
</div>
<div class="row">
<div>
<label>
<span>Encrypt</span>
<!-- ko if: selectedPartner() -->
<span> for</span>
<b><span data-bind="text: selectedPartner().name"></span></b>
<!-- /ko -->
</label>
</div>
</div>
<div class="row">
<div class="two third">
<textarea id="encryptTextArea"></textarea>
</div>
<div class="one third pad-left">
<div class="relative fileCryptionDragArea" id="fileEncryptionDragArea">
<div class="fileCryptionDragAreaContent absolute middle center">
<p>Drag to encrypt</p>
</div>
</div>
</div>
</div>
<div class="row half-pad-top">
<button onclick="appEvents.encryptForPartner()">Encrypt</button>
</div>
</div>
<div>
<div class="row pad-top">
<label>
<span>Decrypt</span>
<!-- ko if: selectedPartner() -->
<span> (checking signature for</span>
<b><span data-bind="text: selectedPartner().name"></span></b>
<span>)</span>
<!-- /ko -->
</label>
</div>
<div class="row">
<div class="two third">
<textarea id="decryptTextArea"></textarea>
</div>
<div class="one third pad-left">
<div class="relative fileCryptionDragArea" id="fileDecryptionDragArea">
<div class="fileCryptionDragAreaContent absolute middle center">
<p>Drag to decrypt</p>
</div>
</div>
</div>
</div>
<div class="row half-pad-top">
<button onclick="appEvents.decryptFromPartner()">Decrypt</button>
</div>
</div>
</div>
</div>
<div id="ownKeysBox" class="mfp-hide white-popup">
<div class="row">
<div class="row">
<label title="You can give this to anybody"><b>Public key</b></label>
</div>
<div class="row">
<textarea onclick="this.select()"
data-bind="value: own.publicKey"></textarea>
</div>
</div>
<div id="showPrivateKeyLinkContainer" class="row pad-top">
<p><a onclick="appEvents.displayPrivateKey()" href="#">Show my private key</a></p>
</div>
<div id="privateKeyContainer" class="hidden row pad-top">
<div class="row">
<label><b>Private key</b></label>
</div>
<div class="row">
<p class="red box">This is your private key. You must <b>NEVER</b> give it to <b>anyone!</b></p>
</div>
<div class="row">
<textarea onclick="this.select()"
data-bind="value: own.privateKey"></textarea>
</div>
</div>
</div>
<div id="editPartner" class="mfp-hide white-popup">
<div class="row">
<label>Public key</label>
</div>
<div class="row">
<textarea id="partnerPublicKey"
data-bind="value: tmp.editPartnerPublicKey"></textarea>
</div>
<div class="row pad-top">
<div class="one half half-pad-right">
<button class="block" onclick="partnerManager.savePartner()">Save Partner</button>
</div>
<div class="one half half-pad-left">
<button class="block" onclick="modalManager.closeModal()">Cancel</button>
</div>
</div>
</div>
<div id="createNewKeys" class="mfp-hide white-popup">
<div id="welcomeGenerateNewKey">
<div class="row">
<h1 style="font-size: 1.5em;">Welcome to pgpNow :)</h1>
</div>
<div class="row">
<p>With pgpNow you have secure PGP-based encryption right in your browser. I don't have to tell you, that it actually is open source, do I?</p>
<p>To get started just enter your name so others know who you are (it will be stored in the public key so others can verify the messages)</p>
</div>
<form id="setNewUsernameForm">
<div class="row">
<label><b>Enter your name</b></label>
</div>
<div class="row">
<input id="newUsernameInput" type="text" />
</div>
<div class="row pad-top">
<p><small><b>NOTE: </b>Generating the keys may take some seconds. Your browser may hang during that time.</small></p>
</div>
<div class="row">
<input id="setNewUsernameButton" type="submit" class="center pull-left" value="Save my name & start pgpNow" />
<a onclick="appEvents.showWelcomeImportExistingKey(); return false;" class="pull-right welcomeLink">Import existing key</a>
</div>
</form>
</div>
<div class="hidden" id="welcomeImportExistingKeys">
<div class="row">
<span style="font-size: 1.3em;"><b>Import existing key</b></span>
</div>
<div class="row">
<p>If you already have a private key, you can import it here.</p>
</div>
<div class="row">
<textarea id="textareaImportExistingKey"></textarea>
</div>
<div class="row pad-top">
<button id="importExistingKeyButton" class="pull-left">Import key & start pgpNow</button>
<a onclick="appEvents.showWelcomeGenerateNewKey(); return false;" class="pull-right welcomeLink">Cancel</a>
</div>
</div>
</div>
<script type="text/javascript" src="js/jquery-1.10.2.min.js"></script>
<script type="text/javascript" src="js/openpgp.min.js"></script>
<script type="text/javascript" src="js/knockout-2.3.0.js"></script>
<script type="text/javascript" src="js/knockout-mapping-2.4.1.js"></script>
<script type="text/javascript" src="js/jstorage.min.js"></script>
<script type="text/javascript" src="js/appStorage.js"></script>
<script type="text/javascript" src="js/toastr.min.js"></script>
<script type="text/javascript" src="js/jquery.magnific-popup.min.js"></script>
<script type="text/javascript" src="js/ArrayBufferBase64.js"></script>
<script type="text/javascript" src="js/FileSaver.min.js"></script>
<script type="text/javascript" src="js/fileCryptor.js"></script>
<script type="text/javascript" src="js/viewModel.js"></script>
<script type="text/javascript" src="js/modalManager.js"></script>
<script type="text/javascript" src="js/partnerManager.js"></script>
<script type="text/javascript" src="js/cryptor.js"></script>
<script type="text/javascript" src="js/appEvents.js"></script>
<script type="text/javascript" src="js/app.js"></script>
</body>
</html>