-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathpassme.html
More file actions
383 lines (324 loc) · 89.6 KB
/
passme.html
File metadata and controls
383 lines (324 loc) · 89.6 KB
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
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<meta name=author content="M. ter Haak">
<meta name=description content="Storage-less password manager">
<meta name=keywords content="password, manager, storage-less, storageless, hash, sha, sha256, generate, recover, domain, pass me, copy, domain-specific, account-specific">
<meta name=viewport content="width=430">
<title>Pass me</title>
<!-- Custom icon -->
<link rel="shortcut icon" href="data:image/png;base64,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">
<!-- Bootstrap -->
<style>
/*!
* Bootstrap v3.3.5 (http://getbootstrap.com)
* Copyright 2011-2016 Twitter, Inc.
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
*/
/*!
* Generated using the Bootstrap Customizer (http://getbootstrap.com/customize/?id=dacad13a1d2006b253fb)
* Config saved to config.json and https://gist.github.com/dacad13a1d2006b253fb
*//*!
* Bootstrap v3.3.6 (http://getbootstrap.com)
* Copyright 2011-2015 Twitter, Inc.
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
*//*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */
html{font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}body{margin:0}article,aside,details,figcaption,figure,footer,header,hgroup,main,menu,nav,section,summary{display:block}audio,canvas,progress,video{display:inline-block;vertical-align:baseline}audio:not([controls]){display:none;height:0}[hidden],template{display:none}a{background-color:transparent}a:active,a:hover{outline:0}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:bold}dfn{font-style:italic}h1{font-size:2em;margin:0.67em 0}mark{background:#ff0;color:#000}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-0.5em}sub{bottom:-0.25em}img{border:0}svg:not(:root){overflow:hidden}figure{margin:1em 40px}hr{-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;height:0}pre{overflow:auto}code,kbd,pre,samp{font-family:monospace, monospace;font-size:1em}button,input,optgroup,select,textarea{color:inherit;font:inherit;margin:0}button{overflow:visible}button,select{text-transform:none}button,html input[type="button"],input[type="reset"],input[type="submit"]{-webkit-appearance:button;cursor:pointer}button[disabled],html input[disabled]{cursor:default}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}input{line-height:normal}input[type="checkbox"],input[type="radio"]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;padding:0}input[type="number"]::-webkit-inner-spin-button,input[type="number"]::-webkit-outer-spin-button{height:auto}input[type="search"]{-webkit-appearance:textfield;-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box}input[type="search"]::-webkit-search-cancel-button,input[type="search"]::-webkit-search-decoration{-webkit-appearance:none}fieldset{border:1px solid #c0c0c0;margin:0 2px;padding:0.35em 0.625em 0.75em}legend{border:0;padding:0}textarea{overflow:auto}optgroup{font-weight:bold}table{border-collapse:collapse;border-spacing:0}td,th{padding:0}*{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}*:before,*:after{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}html{font-size:10px;-webkit-tap-highlight-color:rgba(0,0,0,0)}body{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;line-height:1.42857143;color:#333;background-color:#fff}input,button,select,textarea{font-family:inherit;font-size:inherit;line-height:inherit}a{color:#337ab7;text-decoration:none}a:hover,a:focus{color:#23527c;text-decoration:underline}a:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}figure{margin:0}img{vertical-align:middle}.img-responsive{display:block;max-width:100%;height:auto}.img-rounded{border-radius:6px}.img-thumbnail{padding:4px;line-height:1.42857143;background-color:#fff;border:1px solid #ddd;border-radius:4px;-webkit-transition:all .2s ease-in-out;-o-transition:all .2s ease-in-out;transition:all .2s ease-in-out;display:inline-block;max-width:100%;height:auto}.img-circle{border-radius:50%}hr{margin-top:20px;margin-bottom:20px;border:0;border-top:1px solid #eee}.sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0, 0, 0, 0);border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto}[role="button"]{cursor:pointer}h1,h2,h3,h4,h5,h6,.h1,.h2,.h3,.h4,.h5,.h6{font-family:inherit;font-weight:500;line-height:1.1;color:inherit}h1 small,h2 small,h3 small,h4 small,h5 small,h6 small,.h1 small,.h2 small,.h3 small,.h4 small,.h5 small,.h6 small,h1 .small,h2 .small,h3 .small,h4 .small,h5 .small,h6 .small,.h1 .small,.h2 .small,.h3 .small,.h4 .small,.h5 .small,.h6 .small{font-weight:normal;line-height:1;color:#777}h1,.h1,h2,.h2,h3,.h3{margin-top:20px;margin-bottom:10px}h1 small,.h1 small,h2 small,.h2 small,h3 small,.h3 small,h1 .small,.h1 .small,h2 .small,.h2 .small,h3 .small,.h3 .small{font-size:65%}h4,.h4,h5,.h5,h6,.h6{margin-top:10px;margin-bottom:10px}h4 small,.h4 small,h5 small,.h5 small,h6 small,.h6 small,h4 .small,.h4 .small,h5 .small,.h5 .small,h6 .small,.h6 .small{font-size:75%}h1,.h1{font-size:36px}h2,.h2{font-size:30px}h3,.h3{font-size:24px}h4,.h4{font-size:18px}h5,.h5{font-size:14px}h6,.h6{font-size:12px}p{margin:0 0 10px}.lead{margin-bottom:20px;font-size:16px;font-weight:300;line-height:1.4}@media (min-width:768px){.lead{font-size:21px}}small,.small{font-size:85%}mark,.mark{background-color:#fcf8e3;padding:.2em}.text-left{text-align:left}.text-right{text-align:right}.text-center{text-align:center}.text-justify{text-align:justify}.text-nowrap{white-space:nowrap}.text-lowercase{text-transform:lowercase}.text-uppercase{text-transform:uppercase}.text-capitalize{text-transform:capitalize}.text-muted{color:#777}.text-primary{color:#337ab7}a.text-primary:hover,a.text-primary:focus{color:#286090}.text-success{color:#3c763d}a.text-success:hover,a.text-success:focus{color:#2b542c}.text-info{color:#31708f}a.text-info:hover,a.text-info:focus{color:#245269}.text-warning{color:#8a6d3b}a.text-warning:hover,a.text-warning:focus{color:#66512c}.text-danger{color:#a94442}a.text-danger:hover,a.text-danger:focus{color:#843534}.bg-primary{color:#fff;background-color:#337ab7}a.bg-primary:hover,a.bg-primary:focus{background-color:#286090}.bg-success{background-color:#dff0d8}a.bg-success:hover,a.bg-success:focus{background-color:#c1e2b3}.bg-info{background-color:#d9edf7}a.bg-info:hover,a.bg-info:focus{background-color:#afd9ee}.bg-warning{background-color:#fcf8e3}a.bg-warning:hover,a.bg-warning:focus{background-color:#f7ecb5}.bg-danger{background-color:#f2dede}a.bg-danger:hover,a.bg-danger:focus{background-color:#e4b9b9}.page-header{padding-bottom:9px;margin:40px 0 20px;border-bottom:1px solid #eee}ul,ol{margin-top:0;margin-bottom:10px}ul ul,ol ul,ul ol,ol ol{margin-bottom:0}.list-unstyled{padding-left:0;list-style:none}.list-inline{padding-left:0;list-style:none;margin-left:-5px}.list-inline>li{display:inline-block;padding-left:5px;padding-right:5px}dl{margin-top:0;margin-bottom:20px}dt,dd{line-height:1.42857143}dt{font-weight:bold}dd{margin-left:0}@media (min-width:768px){.dl-horizontal dt{float:left;width:160px;clear:left;text-align:right;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dl-horizontal dd{margin-left:180px}}abbr[title],abbr[data-original-title]{cursor:help;border-bottom:1px dotted #777}.initialism{font-size:90%;text-transform:uppercase}blockquote{padding:10px 20px;margin:0 0 20px;font-size:17.5px;border-left:5px solid #eee}blockquote p:last-child,blockquote ul:last-child,blockquote ol:last-child{margin-bottom:0}blockquote footer,blockquote small,blockquote .small{display:block;font-size:80%;line-height:1.42857143;color:#777}blockquote footer:before,blockquote small:before,blockquote .small:before{content:'\2014 \00A0'}.blockquote-reverse,blockquote.pull-right{padding-right:15px;padding-left:0;border-right:5px solid #eee;border-left:0;text-align:right}.blockquote-reverse footer:before,blockquote.pull-right footer:before,.blockquote-reverse small:before,blockquote.pull-right small:before,.blockquote-reverse .small:before,blockquote.pull-right .small:before{content:''}.blockquote-reverse footer:after,blockquote.pull-right footer:after,.blockquote-reverse small:after,blockquote.pull-right small:after,.blockquote-reverse .small:after,blockquote.pull-right .small:after{content:'\00A0 \2014'}address{margin-bottom:20px;font-style:normal;line-height:1.42857143}fieldset{padding:0;margin:0;border:0;min-width:0}legend{display:block;width:100%;padding:0;margin-bottom:20px;font-size:21px;line-height:inherit;color:#333;border:0;border-bottom:1px solid #e5e5e5}label{display:inline-block;max-width:100%;margin-bottom:5px;font-weight:bold}input[type="search"]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}input[type="radio"],input[type="checkbox"]{margin:4px 0 0;margin-top:1px \9;line-height:normal}input[type="file"]{display:block}input[type="range"]{display:block;width:100%}select[multiple],select[size]{height:auto}input[type="file"]:focus,input[type="radio"]:focus,input[type="checkbox"]:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}output{display:block;padding-top:7px;font-size:14px;line-height:1.42857143;color:#555}.form-control{display:block;width:100%;height:34px;padding:6px 12px;font-size:14px;line-height:1.42857143;color:#555;background-color:#fff;background-image:none;border:1px solid #ccc;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-webkit-transition:border-color ease-in-out .15s, -webkit-box-shadow ease-in-out .15s;-o-transition:border-color ease-in-out .15s, box-shadow ease-in-out .15s;transition:border-color ease-in-out .15s, box-shadow ease-in-out .15s}.form-control:focus{border-color:#66afe9;outline:0;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102, 175, 233, 0.6);box-shadow:inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102, 175, 233, 0.6)}.form-control::-moz-placeholder{color:#999;opacity:1}.form-control:-ms-input-placeholder{color:#999}.form-control::-webkit-input-placeholder{color:#999}.form-control::-ms-expand{border:0;background-color:transparent}.form-control[disabled],.form-control[readonly],fieldset[disabled] .form-control{background-color:#eee;opacity:1}.form-control[disabled],fieldset[disabled] .form-control{cursor:not-allowed}textarea.form-control{height:auto}input[type="search"]{-webkit-appearance:none}@media screen and (-webkit-min-device-pixel-ratio:0){input[type="date"].form-control,input[type="time"].form-control,input[type="datetime-local"].form-control,input[type="month"].form-control{line-height:34px}input[type="date"].input-sm,input[type="time"].input-sm,input[type="datetime-local"].input-sm,input[type="month"].input-sm,.input-group-sm input[type="date"],.input-group-sm input[type="time"],.input-group-sm input[type="datetime-local"],.input-group-sm input[type="month"]{line-height:30px}input[type="date"].input-lg,input[type="time"].input-lg,input[type="datetime-local"].input-lg,input[type="month"].input-lg,.input-group-lg input[type="date"],.input-group-lg input[type="time"],.input-group-lg input[type="datetime-local"],.input-group-lg input[type="month"]{line-height:46px}}.form-group{margin-bottom:15px}.radio,.checkbox{position:relative;display:block;margin-top:10px;margin-bottom:10px}.radio label,.checkbox label{min-height:20px;padding-left:20px;margin-bottom:0;font-weight:normal;cursor:pointer}.radio input[type="radio"],.radio-inline input[type="radio"],.checkbox input[type="checkbox"],.checkbox-inline input[type="checkbox"]{position:absolute;margin-left:-20px;margin-top:4px \9}.radio+.radio,.checkbox+.checkbox{margin-top:-5px}.radio-inline,.checkbox-inline{position:relative;display:inline-block;padding-left:20px;margin-bottom:0;vertical-align:middle;font-weight:normal;cursor:pointer}.radio-inline+.radio-inline,.checkbox-inline+.checkbox-inline{margin-top:0;margin-left:10px}input[type="radio"][disabled],input[type="checkbox"][disabled],input[type="radio"].disabled,input[type="checkbox"].disabled,fieldset[disabled] input[type="radio"],fieldset[disabled] input[type="checkbox"]{cursor:not-allowed}.radio-inline.disabled,.checkbox-inline.disabled,fieldset[disabled] .radio-inline,fieldset[disabled] .checkbox-inline{cursor:not-allowed}.radio.disabled label,.checkbox.disabled label,fieldset[disabled] .radio label,fieldset[disabled] .checkbox label{cursor:not-allowed}.form-control-static{padding-top:7px;padding-bottom:7px;margin-bottom:0;min-height:34px}.form-control-static.input-lg,.form-control-static.input-sm{padding-left:0;padding-right:0}.input-sm{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}select.input-sm{height:30px;line-height:30px}textarea.input-sm,select[multiple].input-sm{height:auto}.form-group-sm .form-control{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}.form-group-sm select.form-control{height:30px;line-height:30px}.form-group-sm textarea.form-control,.form-group-sm select[multiple].form-control{height:auto}.form-group-sm .form-control-static{height:30px;min-height:32px;padding:6px 10px;font-size:12px;line-height:1.5}.input-lg{height:46px;padding:10px 16px;font-size:18px;line-height:1.3333333;border-radius:6px}select.input-lg{height:46px;line-height:46px}textarea.input-lg,select[multiple].input-lg{height:auto}.form-group-lg .form-control{height:46px;padding:10px 16px;font-size:18px;line-height:1.3333333;border-radius:6px}.form-group-lg select.form-control{height:46px;line-height:46px}.form-group-lg textarea.form-control,.form-group-lg select[multiple].form-control{height:auto}.form-group-lg .form-control-static{height:46px;min-height:38px;padding:11px 16px;font-size:18px;line-height:1.3333333}.has-feedback{position:relative}.has-feedback .form-control{padding-right:42.5px}.form-control-feedback{position:absolute;top:0;right:0;z-index:2;display:block;width:34px;height:34px;line-height:34px;text-align:center;pointer-events:none}.input-lg+.form-control-feedback,.input-group-lg+.form-control-feedback,.form-group-lg .form-control+.form-control-feedback{width:46px;height:46px;line-height:46px}.input-sm+.form-control-feedback,.input-group-sm+.form-control-feedback,.form-group-sm .form-control+.form-control-feedback{width:30px;height:30px;line-height:30px}.has-success .help-block,.has-success .control-label,.has-success .radio,.has-success .checkbox,.has-success .radio-inline,.has-success .checkbox-inline,.has-success.radio label,.has-success.checkbox label,.has-success.radio-inline label,.has-success.checkbox-inline label{color:#3c763d}.has-success .form-control{border-color:#3c763d;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.has-success .form-control:focus{border-color:#2b542c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #67b168;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #67b168}.has-success .input-group-addon{color:#3c763d;border-color:#3c763d;background-color:#dff0d8}.has-success .form-control-feedback{color:#3c763d}.has-warning .help-block,.has-warning .control-label,.has-warning .radio,.has-warning .checkbox,.has-warning .radio-inline,.has-warning .checkbox-inline,.has-warning.radio label,.has-warning.checkbox label,.has-warning.radio-inline label,.has-warning.checkbox-inline label{color:#8a6d3b}.has-warning .form-control{border-color:#8a6d3b;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.has-warning .form-control:focus{border-color:#66512c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #c0a16b;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #c0a16b}.has-warning .input-group-addon{color:#8a6d3b;border-color:#8a6d3b;background-color:#fcf8e3}.has-warning .form-control-feedback{color:#8a6d3b}.has-error .help-block,.has-error .control-label,.has-error .radio,.has-error .checkbox,.has-error .radio-inline,.has-error .checkbox-inline,.has-error.radio label,.has-error.checkbox label,.has-error.radio-inline label,.has-error.checkbox-inline label{color:#a94442}.has-error .form-control{border-color:#a94442;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.has-error .form-control:focus{border-color:#843534;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #ce8483;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #ce8483}.has-error .input-group-addon{color:#a94442;border-color:#a94442;background-color:#f2dede}.has-error .form-control-feedback{color:#a94442}.has-feedback label~.form-control-feedback{top:25px}.has-feedback label.sr-only~.form-control-feedback{top:0}.help-block{display:block;margin-top:5px;margin-bottom:10px;color:#737373}@media (min-width:768px){.form-inline .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.form-inline .form-control{display:inline-block;width:auto;vertical-align:middle}.form-inline .form-control-static{display:inline-block}.form-inline .input-group{display:inline-table;vertical-align:middle}.form-inline .input-group .input-group-addon,.form-inline .input-group .input-group-btn,.form-inline .input-group .form-control{width:auto}.form-inline .input-group>.form-control{width:100%}.form-inline .control-label{margin-bottom:0;vertical-align:middle}.form-inline .radio,.form-inline .checkbox{display:inline-block;margin-top:0;margin-bottom:0;vertical-align:middle}.form-inline .radio label,.form-inline .checkbox label{padding-left:0}.form-inline .radio input[type="radio"],.form-inline .checkbox input[type="checkbox"]{position:relative;margin-left:0}.form-inline .has-feedback .form-control-feedback{top:0}}.form-horizontal .radio,.form-horizontal .checkbox,.form-horizontal .radio-inline,.form-horizontal .checkbox-inline{margin-top:0;margin-bottom:0;padding-top:7px}.form-horizontal .radio,.form-horizontal .checkbox{min-height:27px}.form-horizontal .form-group{margin-left:-15px;margin-right:-15px}@media (min-width:768px){.form-horizontal .control-label{text-align:right;margin-bottom:0;padding-top:7px}}.form-horizontal .has-feedback .form-control-feedback{right:15px}@media (min-width:768px){.form-horizontal .form-group-lg .control-label{padding-top:11px;font-size:18px}}@media (min-width:768px){.form-horizontal .form-group-sm .control-label{padding-top:6px;font-size:12px}}.btn{display:inline-block;margin-bottom:0;font-weight:normal;text-align:center;vertical-align:middle;-ms-touch-action:manipulation;touch-action:manipulation;cursor:pointer;background-image:none;border:1px solid transparent;white-space:nowrap;padding:6px 12px;font-size:14px;line-height:1.42857143;border-radius:4px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.btn:focus,.btn:active:focus,.btn.active:focus,.btn.focus,.btn:active.focus,.btn.active.focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.btn:hover,.btn:focus,.btn.focus{color:#333;text-decoration:none}.btn:active,.btn.active{outline:0;background-image:none;-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,0.125);box-shadow:inset 0 3px 5px rgba(0,0,0,0.125)}.btn.disabled,.btn[disabled],fieldset[disabled] .btn{cursor:not-allowed;opacity:.65;filter:alpha(opacity=65);-webkit-box-shadow:none;box-shadow:none}a.btn.disabled,fieldset[disabled] a.btn{pointer-events:none}.btn-default{color:#333;background-color:#fff;border-color:#ccc}.btn-default:focus,.btn-default.focus{color:#333;background-color:#e6e6e6;border-color:#8c8c8c}.btn-default:hover{color:#333;background-color:#e6e6e6;border-color:#adadad}.btn-default:active,.btn-default.active,.open>.dropdown-toggle.btn-default{color:#333;background-color:#e6e6e6;border-color:#adadad}.btn-default:active:hover,.btn-default.active:hover,.open>.dropdown-toggle.btn-default:hover,.btn-default:active:focus,.btn-default.active:focus,.open>.dropdown-toggle.btn-default:focus,.btn-default:active.focus,.btn-default.active.focus,.open>.dropdown-toggle.btn-default.focus{color:#333;background-color:#d4d4d4;border-color:#8c8c8c}.btn-default:active,.btn-default.active,.open>.dropdown-toggle.btn-default{background-image:none}.btn-default.disabled:hover,.btn-default[disabled]:hover,fieldset[disabled] .btn-default:hover,.btn-default.disabled:focus,.btn-default[disabled]:focus,fieldset[disabled] .btn-default:focus,.btn-default.disabled.focus,.btn-default[disabled].focus,fieldset[disabled] .btn-default.focus{background-color:#fff;border-color:#ccc}.btn-default .badge{color:#fff;background-color:#333}.btn-primary{color:#fff;background-color:#337ab7;border-color:#2e6da4}.btn-primary:focus,.btn-primary.focus{color:#fff;background-color:#286090;border-color:#122b40}.btn-primary:hover{color:#fff;background-color:#286090;border-color:#204d74}.btn-primary:active,.btn-primary.active,.open>.dropdown-toggle.btn-primary{color:#fff;background-color:#286090;border-color:#204d74}.btn-primary:active:hover,.btn-primary.active:hover,.open>.dropdown-toggle.btn-primary:hover,.btn-primary:active:focus,.btn-primary.active:focus,.open>.dropdown-toggle.btn-primary:focus,.btn-primary:active.focus,.btn-primary.active.focus,.open>.dropdown-toggle.btn-primary.focus{color:#fff;background-color:#204d74;border-color:#122b40}.btn-primary:active,.btn-primary.active,.open>.dropdown-toggle.btn-primary{background-image:none}.btn-primary.disabled:hover,.btn-primary[disabled]:hover,fieldset[disabled] .btn-primary:hover,.btn-primary.disabled:focus,.btn-primary[disabled]:focus,fieldset[disabled] .btn-primary:focus,.btn-primary.disabled.focus,.btn-primary[disabled].focus,fieldset[disabled] .btn-primary.focus{background-color:#337ab7;border-color:#2e6da4}.btn-primary .badge{color:#337ab7;background-color:#fff}.btn-success{color:#fff;background-color:#5cb85c;border-color:#4cae4c}.btn-success:focus,.btn-success.focus{color:#fff;background-color:#449d44;border-color:#255625}.btn-success:hover{color:#fff;background-color:#449d44;border-color:#398439}.btn-success:active,.btn-success.active,.open>.dropdown-toggle.btn-success{color:#fff;background-color:#449d44;border-color:#398439}.btn-success:active:hover,.btn-success.active:hover,.open>.dropdown-toggle.btn-success:hover,.btn-success:active:focus,.btn-success.active:focus,.open>.dropdown-toggle.btn-success:focus,.btn-success:active.focus,.btn-success.active.focus,.open>.dropdown-toggle.btn-success.focus{color:#fff;background-color:#398439;border-color:#255625}.btn-success:active,.btn-success.active,.open>.dropdown-toggle.btn-success{background-image:none}.btn-success.disabled:hover,.btn-success[disabled]:hover,fieldset[disabled] .btn-success:hover,.btn-success.disabled:focus,.btn-success[disabled]:focus,fieldset[disabled] .btn-success:focus,.btn-success.disabled.focus,.btn-success[disabled].focus,fieldset[disabled] .btn-success.focus{background-color:#5cb85c;border-color:#4cae4c}.btn-success .badge{color:#5cb85c;background-color:#fff}.btn-info{color:#fff;background-color:#5bc0de;border-color:#46b8da}.btn-info:focus,.btn-info.focus{color:#fff;background-color:#31b0d5;border-color:#1b6d85}.btn-info:hover{color:#fff;background-color:#31b0d5;border-color:#269abc}.btn-info:active,.btn-info.active,.open>.dropdown-toggle.btn-info{color:#fff;background-color:#31b0d5;border-color:#269abc}.btn-info:active:hover,.btn-info.active:hover,.open>.dropdown-toggle.btn-info:hover,.btn-info:active:focus,.btn-info.active:focus,.open>.dropdown-toggle.btn-info:focus,.btn-info:active.focus,.btn-info.active.focus,.open>.dropdown-toggle.btn-info.focus{color:#fff;background-color:#269abc;border-color:#1b6d85}.btn-info:active,.btn-info.active,.open>.dropdown-toggle.btn-info{background-image:none}.btn-info.disabled:hover,.btn-info[disabled]:hover,fieldset[disabled] .btn-info:hover,.btn-info.disabled:focus,.btn-info[disabled]:focus,fieldset[disabled] .btn-info:focus,.btn-info.disabled.focus,.btn-info[disabled].focus,fieldset[disabled] .btn-info.focus{background-color:#5bc0de;border-color:#46b8da}.btn-info .badge{color:#5bc0de;background-color:#fff}.btn-warning{color:#fff;background-color:#f0ad4e;border-color:#eea236}.btn-warning:focus,.btn-warning.focus{color:#fff;background-color:#ec971f;border-color:#985f0d}.btn-warning:hover{color:#fff;background-color:#ec971f;border-color:#d58512}.btn-warning:active,.btn-warning.active,.open>.dropdown-toggle.btn-warning{color:#fff;background-color:#ec971f;border-color:#d58512}.btn-warning:active:hover,.btn-warning.active:hover,.open>.dropdown-toggle.btn-warning:hover,.btn-warning:active:focus,.btn-warning.active:focus,.open>.dropdown-toggle.btn-warning:focus,.btn-warning:active.focus,.btn-warning.active.focus,.open>.dropdown-toggle.btn-warning.focus{color:#fff;background-color:#d58512;border-color:#985f0d}.btn-warning:active,.btn-warning.active,.open>.dropdown-toggle.btn-warning{background-image:none}.btn-warning.disabled:hover,.btn-warning[disabled]:hover,fieldset[disabled] .btn-warning:hover,.btn-warning.disabled:focus,.btn-warning[disabled]:focus,fieldset[disabled] .btn-warning:focus,.btn-warning.disabled.focus,.btn-warning[disabled].focus,fieldset[disabled] .btn-warning.focus{background-color:#f0ad4e;border-color:#eea236}.btn-warning .badge{color:#f0ad4e;background-color:#fff}.btn-danger{color:#fff;background-color:#d9534f;border-color:#d43f3a}.btn-danger:focus,.btn-danger.focus{color:#fff;background-color:#c9302c;border-color:#761c19}.btn-danger:hover{color:#fff;background-color:#c9302c;border-color:#ac2925}.btn-danger:active,.btn-danger.active,.open>.dropdown-toggle.btn-danger{color:#fff;background-color:#c9302c;border-color:#ac2925}.btn-danger:active:hover,.btn-danger.active:hover,.open>.dropdown-toggle.btn-danger:hover,.btn-danger:active:focus,.btn-danger.active:focus,.open>.dropdown-toggle.btn-danger:focus,.btn-danger:active.focus,.btn-danger.active.focus,.open>.dropdown-toggle.btn-danger.focus{color:#fff;background-color:#ac2925;border-color:#761c19}.btn-danger:active,.btn-danger.active,.open>.dropdown-toggle.btn-danger{background-image:none}.btn-danger.disabled:hover,.btn-danger[disabled]:hover,fieldset[disabled] .btn-danger:hover,.btn-danger.disabled:focus,.btn-danger[disabled]:focus,fieldset[disabled] .btn-danger:focus,.btn-danger.disabled.focus,.btn-danger[disabled].focus,fieldset[disabled] .btn-danger.focus{background-color:#d9534f;border-color:#d43f3a}.btn-danger .badge{color:#d9534f;background-color:#fff}.btn-link{color:#337ab7;font-weight:normal;border-radius:0}.btn-link,.btn-link:active,.btn-link.active,.btn-link[disabled],fieldset[disabled] .btn-link{background-color:transparent;-webkit-box-shadow:none;box-shadow:none}.btn-link,.btn-link:hover,.btn-link:focus,.btn-link:active{border-color:transparent}.btn-link:hover,.btn-link:focus{color:#23527c;text-decoration:underline;background-color:transparent}.btn-link[disabled]:hover,fieldset[disabled] .btn-link:hover,.btn-link[disabled]:focus,fieldset[disabled] .btn-link:focus{color:#777;text-decoration:none}.btn-lg{padding:10px 16px;font-size:18px;line-height:1.3333333;border-radius:6px}.btn-sm{padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}.btn-xs{padding:1px 5px;font-size:12px;line-height:1.5;border-radius:3px}.btn-block{display:block;width:100%}.btn-block+.btn-block{margin-top:5px}input[type="submit"].btn-block,input[type="reset"].btn-block,input[type="button"].btn-block{width:100%}.label{display:inline;padding:.2em .6em .3em;font-size:75%;font-weight:bold;line-height:1;color:#fff;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25em}a.label:hover,a.label:focus{color:#fff;text-decoration:none;cursor:pointer}.label:empty{display:none}.btn .label{position:relative;top:-1px}.label-default{background-color:#777}.label-default[href]:hover,.label-default[href]:focus{background-color:#5e5e5e}.label-primary{background-color:#337ab7}.label-primary[href]:hover,.label-primary[href]:focus{background-color:#286090}.label-success{background-color:#5cb85c}.label-success[href]:hover,.label-success[href]:focus{background-color:#449d44}.label-info{background-color:#5bc0de}.label-info[href]:hover,.label-info[href]:focus{background-color:#31b0d5}.label-warning{background-color:#f0ad4e}.label-warning[href]:hover,.label-warning[href]:focus{background-color:#ec971f}.label-danger{background-color:#d9534f}.label-danger[href]:hover,.label-danger[href]:focus{background-color:#c9302c}.clearfix:before,.clearfix:after,.dl-horizontal dd:before,.dl-horizontal dd:after,.form-horizontal .form-group:before,.form-horizontal .form-group:after{content:" ";display:table}.clearfix:after,.dl-horizontal dd:after,.form-horizontal .form-group:after{clear:both}.center-block{display:block;margin-left:auto;margin-right:auto}.pull-right{float:right !important}.pull-left{float:left !important}.hide{display:none !important}.show{display:block !important}.invisible{visibility:hidden}.text-hide{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.hidden{display:none !important}.affix{position:fixed}
</style>
<!-- Note style -->
<style>
/*
* Creative Punch (http://creative-punch.net/2014/02/create-css3-post-it-note/)
*/
.pin:after,.pin:before{content:''}.quote-container{margin-top:50px;position:relative}.note{color:#333;position:relative;width:400px;margin:0 auto;padding:20px;box-shadow:0 10px 10px 2px rgba(0,0,0,.3)}.pin,.pin:after,.pin:before{position:absolute}.note .author{display:block;margin:40px 0 0;text-align:right}.yellow{background:#FAEF93;}.pin{background-color:#aaa;display:block;height:32px;width:2px;left:50%;top:-16px;z-index:1}.pin:after{background-color:#A31;background-image:radial-gradient(25% 25%,circle,hsla(0,0%,100%,.3),hsla(0,0%,0%,.3));border-radius:50%;box-shadow:inset 0 0 0 1px hsla(0,0%,0%,.1),inset 3px 3px 3px hsla(0,0%,100%,.2),inset -3px -3px 3px hsla(0,0%,0%,.2),23px 20px 3px hsla(0,0%,0%,.15);height:12px;left:-5px;top:-10px;width:12px}.pin:before{background-color:hsla(0,0%,0%,.1);box-shadow:0 0 .25em hsla(0,0%,0%,.1);height:24px;width:2px;left:0;top:8px;transform:rotate(57.5deg);-moz-transform:rotate(57.5deg);-webkit-transform:rotate(57.5deg);-o-transform:rotate(57.5deg);-ms-transform:rotate(57.5deg);transform-origin:50% 100%;-moz-transform-origin:50% 100%;-webkit-transform-origin:50% 100%;-ms-transform-origin:50% 100%;-o-transform-origin:50% 100%}
</style>
<!-- Custom style -->
<style>
body{
background-color: #FFFFFF;
background-image: linear-gradient(90deg, transparent 79px, #abced4 79px, #abced4 81px, transparent 81px), linear-gradient(#eee .1em, transparent .1em);
background-size: 100% 1.2em;
}
#wrapper{
}
input[type="text"], input[type=password]{
background-color: #FFFFF1;
max-width: 100%
}
.label{
font-size: 12px;
}
.note{
font-family: Satisfy, serif;
padding-bottom: 15px;
}
.help-block{
margin-bottom: 0px;
}
</style>
</head>
<body>
<div id="wrapper" class="center-block quote-container">
<i class="pin"></i>
<div class="note yellow">
<h1>Pass me that password!</h1>
<p class="help-block">Use this tool to set all your passwords using a single master password and also retrieve them when forgotten.</p>
<br/>
<div class="form-group">
<label for="domain">Domain</label><span id="alert-domain" class="label label-danger pull-right" style="visibility: hidden;">Please fill in the domain, e.g. Google</span>
<input type="text" name="domain" id="domain" class="form-control" autocorrect="off" autocapitalize="off" autofocus />
</div>
<div class="form-group">
<label for="master-password">Master password</label><span id="alert-master" class="label label-danger pull-right" style="visibility: hidden;">Please fill in your master password</span>
<input type="password" name="master_password" id="master-password" class="form-control" />
</div>
<div id="buttons" class="form-group">
<button type="button" id="copy-button" class="btn btn-default">Copy to clipboard</button>
<button type="button" id="show-button" class="btn btn-default pull-right">Show password</button>
</div>
<div class="form-group">
<label for="generated">Account-specific password</label>
<label id="no-dots-label" class="checkbox-inline pull-right">
<input type="checkbox" id="no-dots" />No dots
</label>
<input type="text" id="generated" class="form-control center" maxlength="14" onclick="this.select();" readonly />
</div>
<span class="help-block">© Martin ter Haak 2015</span>
</div>
</div>
</body>
<!-- SHA script -->
<script>
/*
A JavaScript implementation of the SHA family of hashes, as
defined in FIPS PUB 180-2 as well as the corresponding HMAC implementation
as defined in FIPS PUB 198a
Copyright Brian Turek 2008-2015
Distributed under the BSD License
See http://caligatio.github.com/jsSHA/ for more information
Several functions taken from Paul Johnston
*/
'use strict';(function(H){function v(c,a,b){var g=0,d=[],f=0,e,h,n,l,m,F,r,p=!1,k=!1,q=[],t=[],u,y=!1;b=b||{};e=b.encoding||"UTF8";u=b.numRounds||1;n=z(a,e);if(u!==parseInt(u,10)||1>u)throw Error("numRounds must a integer >= 1");F=function(a,b){return A(a,b,c)};r=function(a,b,f,d){var g,e;if("SHA-224"===c||"SHA-256"===c)g=(b+65>>>9<<4)+15,e=16;else throw Error("Unexpected error in SHA-2 implementation");for(;a.length<=g;)a.push(0);a[b>>>5]|=128<<24-b%32;a[g]=b+f;f=a.length;for(b=0;b<f;b+=e)d=A(a.slice(b,
b+e),d,c);if("SHA-224"===c)a=[d[0],d[1],d[2],d[3],d[4],d[5],d[6]];else if("SHA-256"===c)a=d;else throw Error("Unexpected error in SHA-2 implementation");return a};if("SHA-224"===c)m=512,l=224;else if("SHA-256"===c)m=512,l=256;else throw Error("Chosen SHA variant is not supported");h=w(c);this.setHMACKey=function(a,b,d){var f;if(!0===k)throw Error("HMAC key already set");if(!0===p)throw Error("Cannot set HMAC key after finalizing hash");if(!0===y)throw Error("Cannot set HMAC key after calling update");
e=(d||{}).encoding||"UTF8";b=z(b,e)(a);a=b.binLen;b=b.value;f=m>>>3;d=f/4-1;if(f<a/8){for(b=r(b,a,0,w(c));b.length<=d;)b.push(0);b[d]&=4294967040}else if(f>a/8){for(;b.length<=d;)b.push(0);b[d]&=4294967040}for(a=0;a<=d;a+=1)q[a]=b[a]^909522486,t[a]=b[a]^1549556828;h=F(q,h);g=m;k=!0};this.update=function(a){var b,c,e,l=0,p=m>>>5;b=n(a,d,f);a=b.binLen;c=b.value;b=a>>>5;for(e=0;e<b;e+=p)l+m<=a&&(h=F(c.slice(e,e+p),h),l+=m);g+=l;d=c.slice(l>>>5);f=a%m;y=!0};this.getHash=function(a,b){var e,m,n;if(!0===
k)throw Error("Cannot call getHash after setting HMAC key");n=B(b);switch(a){case "HEX":e=function(a){return C(a,n)};break;case "B64":e=function(a){return D(a,n)};break;case "BYTES":e=E;break;default:throw Error("format must be HEX, B64, or BYTES");}if(!1===p)for(h=r(d,f,g,h),m=1;m<u;m+=1)h=r(h,l,0,w(c));p=!0;return e(h)};this.getHMAC=function(a,b){var e,n,q;if(!1===k)throw Error("Cannot call getHMAC without first setting HMAC key");q=B(b);switch(a){case "HEX":e=function(a){return C(a,q)};break;case "B64":e=
function(a){return D(a,q)};break;case "BYTES":e=E;break;default:throw Error("outputFormat must be HEX, B64, or BYTES");}!1===p&&(n=r(d,f,g,h),h=F(t,w(c)),h=r(n,l,m,h));p=!0;return e(h)}}function k(){}function I(c,a,b){var g=c.length,d,f,e,h,n;a=a||[0];b=b||0;n=b>>>3;if(0!==g%2)throw Error("String of HEX type must be in byte increments");for(d=0;d<g;d+=2){f=parseInt(c.substr(d,2),16);if(isNaN(f))throw Error("String of HEX type contains invalid characters");h=(d>>>1)+n;for(e=h>>>2;a.length<=e;)a.push(0);
a[e]|=f<<8*(3-h%4)}return{value:a,binLen:4*g+b}}function J(c,a,b){var g=[],d,f,e,h,g=a||[0];b=b||0;f=b>>>3;for(d=0;d<c.length;d+=1)a=c.charCodeAt(d),h=d+f,e=h>>>2,g.length<=e&&g.push(0),g[e]|=a<<8*(3-h%4);return{value:g,binLen:8*c.length+b}}function K(c,a,b){var g=[],d=0,f,e,h,n,l,m,g=a||[0];b=b||0;a=b>>>3;if(-1===c.search(/^[a-zA-Z0-9=+\/]+$/))throw Error("Invalid character in base-64 string");e=c.indexOf("=");c=c.replace(/\=/g,"");if(-1!==e&&e<c.length)throw Error("Invalid '=' found in base-64 string");
for(e=0;e<c.length;e+=4){l=c.substr(e,4);for(h=n=0;h<l.length;h+=1)f="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".indexOf(l[h]),n|=f<<18-6*h;for(h=0;h<l.length-1;h+=1){m=d+a;for(f=m>>>2;g.length<=f;)g.push(0);g[f]|=(n>>>16-8*h&255)<<8*(3-m%4);d+=1}}return{value:g,binLen:8*d+b}}function C(c,a){var b="",g=4*c.length,d,f;for(d=0;d<g;d+=1)f=c[d>>>2]>>>8*(3-d%4),b+="0123456789abcdef".charAt(f>>>4&15)+"0123456789abcdef".charAt(f&15);return a.outputUpper?b.toUpperCase():b}function D(c,
a){var b="",g=4*c.length,d,f,e;for(d=0;d<g;d+=3)for(e=d+1>>>2,f=c.length<=e?0:c[e],e=d+2>>>2,e=c.length<=e?0:c[e],e=(c[d>>>2]>>>8*(3-d%4)&255)<<16|(f>>>8*(3-(d+1)%4)&255)<<8|e>>>8*(3-(d+2)%4)&255,f=0;4>f;f+=1)8*d+6*f<=32*c.length?b+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(e>>>6*(3-f)&63):b+=a.b64Pad;return b}function E(c){var a="",b=4*c.length,g,d;for(g=0;g<b;g+=1)d=c[g>>>2]>>>8*(3-g%4)&255,a+=String.fromCharCode(d);return a}function B(c){var a={outputUpper:!1,b64Pad:"="};
c=c||{};a.outputUpper=c.outputUpper||!1;a.b64Pad=c.b64Pad||"=";if("boolean"!==typeof a.outputUpper)throw Error("Invalid outputUpper formatting option");if("string"!==typeof a.b64Pad)throw Error("Invalid b64Pad formatting option");return a}function z(c,a){var b;switch(a){case "UTF8":case "UTF16BE":case "UTF16LE":break;default:throw Error("encoding must be UTF8, UTF16BE, or UTF16LE");}switch(c){case "HEX":b=I;break;case "TEXT":b=function(b,c,f){var e=[],h=[],n=0,l,m,k,r,p,e=c||[0];c=f||0;k=c>>>3;if("UTF8"===
a)for(l=0;l<b.length;l+=1)for(f=b.charCodeAt(l),h=[],128>f?h.push(f):2048>f?(h.push(192|f>>>6),h.push(128|f&63)):55296>f||57344<=f?h.push(224|f>>>12,128|f>>>6&63,128|f&63):(l+=1,f=65536+((f&1023)<<10|b.charCodeAt(l)&1023),h.push(240|f>>>18,128|f>>>12&63,128|f>>>6&63,128|f&63)),m=0;m<h.length;m+=1){p=n+k;for(r=p>>>2;e.length<=r;)e.push(0);e[r]|=h[m]<<8*(3-p%4);n+=1}else if("UTF16BE"===a||"UTF16LE"===a)for(l=0;l<b.length;l+=1){f=b.charCodeAt(l);"UTF16LE"===a&&(m=f&255,f=m<<8|f>>>8);p=n+k;for(r=p>>>
2;e.length<=r;)e.push(0);e[r]|=f<<8*(2-p%4);n+=2}return{value:e,binLen:8*n+c}};break;case "B64":b=K;break;case "BYTES":b=J;break;default:throw Error("format must be HEX, TEXT, B64, or BYTES");}return b}function t(c,a){return c>>>a|c<<32-a}function L(c,a,b){return c&a^~c&b}function M(c,a,b){return c&a^c&b^a&b}function N(c){return t(c,2)^t(c,13)^t(c,22)}function O(c){return t(c,6)^t(c,11)^t(c,25)}function P(c){return t(c,7)^t(c,18)^c>>>3}function Q(c){return t(c,17)^t(c,19)^c>>>10}function R(c,a){var b=
(c&65535)+(a&65535);return((c>>>16)+(a>>>16)+(b>>>16)&65535)<<16|b&65535}function S(c,a,b,g){var d=(c&65535)+(a&65535)+(b&65535)+(g&65535);return((c>>>16)+(a>>>16)+(b>>>16)+(g>>>16)+(d>>>16)&65535)<<16|d&65535}function T(c,a,b,g,d){var f=(c&65535)+(a&65535)+(b&65535)+(g&65535)+(d&65535);return((c>>>16)+(a>>>16)+(b>>>16)+(g>>>16)+(d>>>16)+(f>>>16)&65535)<<16|f&65535}function w(c){var a,b;a=[3238371032,914150663,812702999,4144912697,4290775857,1750603025,1694076839,3204075428];b=[1779033703,3144134277,
1013904242,2773480762,1359893119,2600822924,528734635,1541459225];switch(c){case "SHA-224":c=a;break;case "SHA-256":c=b;break;case "SHA-384":c=[new k,new k,new k,new k,new k,new k,new k,new k];break;case "SHA-512":c=[new k,new k,new k,new k,new k,new k,new k,new k];break;default:throw Error("Unknown SHA variant");}return c}function A(c,a,b){var g,d,f,e,h,n,l,m,k,r,p,t,q,v,u,y,w,z,A,B,C,D,x=[],E;if("SHA-224"===b||"SHA-256"===b)r=64,t=1,D=Number,q=R,v=S,u=T,y=P,w=Q,z=N,A=O,C=M,B=L,E=G;else throw Error("Unexpected error in SHA-2 implementation");
b=a[0];g=a[1];d=a[2];f=a[3];e=a[4];h=a[5];n=a[6];l=a[7];for(p=0;p<r;p+=1)16>p?(k=p*t,m=c.length<=k?0:c[k],k=c.length<=k+1?0:c[k+1],x[p]=new D(m,k)):x[p]=v(w(x[p-2]),x[p-7],y(x[p-15]),x[p-16]),m=u(l,A(e),B(e,h,n),E[p],x[p]),k=q(z(b),C(b,g,d)),l=n,n=h,h=e,e=q(f,m),f=d,d=g,g=b,b=q(m,k);a[0]=q(b,a[0]);a[1]=q(g,a[1]);a[2]=q(d,a[2]);a[3]=q(f,a[3]);a[4]=q(e,a[4]);a[5]=q(h,a[5]);a[6]=q(n,a[6]);a[7]=q(l,a[7]);return a}var G;G=[1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,
3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,
1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298];"function"===typeof define&&define.amd?define(function(){return v}):"undefined"!==typeof exports?"undefined"!==typeof module&&module.exports?module.exports=exports=v:exports=v:H.jsSHA=v})(this);
</script>
<!-- Seedrandom script -->
<script>
/*
* Copyright 2015 David Bau.
*/
!function(a,b){function c(c,j,k){var n=[];j=1==j?{entropy:!0}:j||{};var s=g(f(j.entropy?[c,i(a)]:null==c?h():c,3),n),t=new d(n),u=function(){for(var a=t.g(m),b=p,c=0;q>a;)a=(a+c)*l,b*=l,c=t.g(1);for(;a>=r;)a/=2,b/=2,c>>>=1;return(a+c)/b};return u.int32=function(){return 0|t.g(4)},u.quick=function(){return t.g(4)/4294967296},u["double"]=u,g(i(t.S),a),(j.pass||k||function(a,c,d,f){return f&&(f.S&&e(f,t),a.state=function(){return e(t,{})}),d?(b[o]=a,c):a})(u,s,"global"in j?j.global:this==b,j.state)}function d(a){var b,c=a.length,d=this,e=0,f=d.i=d.j=0,g=d.S=[];for(c||(a=[c++]);l>e;)g[e]=e++;for(e=0;l>e;e++)g[e]=g[f=s&f+a[e%c]+(b=g[e])],g[f]=b;(d.g=function(a){for(var b,c=0,e=d.i,f=d.j,g=d.S;a--;)b=g[e=s&e+1],c=c*l+g[s&(g[e]=g[f=s&f+b])+(g[f]=b)];return d.i=e,d.j=f,c})(l)}function e(a,b){return b.i=a.i,b.j=a.j,b.S=a.S.slice(),b}function f(a,b){var c,d=[],e=typeof a;if(b&&"object"==e)for(c in a)try{d.push(f(a[c],b-1))}catch(g){}return d.length?d:"string"==e?a:a+"\0"}function g(a,b){for(var c,d=a+"",e=0;e<d.length;)b[s&e]=s&(c^=19*b[s&e])+d.charCodeAt(e++);return i(b)}function h(){try{if(j)return i(j.randomBytes(l));var b=new Uint8Array(l);return(k.crypto||k.msCrypto).getRandomValues(b),i(b)}catch(c){var d=k.navigator,e=d&&d.plugins;return[+new Date,k,e,k.screen,i(a)]}}function i(a){return String.fromCharCode.apply(0,a)}var j,k=this,l=256,m=6,n=52,o="random",p=b.pow(l,m),q=b.pow(2,n),r=2*q,s=l-1;if(b["seed"+o]=c,g(b.random(),a),"object"==typeof module&&module.exports){module.exports=c;try{j=require("crypto")}catch(t){}}else"function"==typeof define&&define.amd&&define(function(){return c})}([],Math);
</script>
<!-- Shuffle script -->
<script>
/*
* By Jonas Raoni Soares Silva
* From http://jsfromhell.com/array/shuffle [rev. #1]
*/
function shuffle(n){for(var r,t,a=n.length;a;r=parseInt(Math.random()*a),t=n[--a],n[a]=n[r],n[r]=t);return n};
</script>
<!-- randint script -->
<script>
/*
* By pc035860
* From https://gist.github.com/pc035860/6546661
*/
function randint(a,b){return a+Math.floor(Math.random()*(++b-a))}
</script>
<!-- change classes script -->
<script>
/*
* By kjy112
* From http://stackoverflow.com/questions/5169017/how-to-remove-class-attribute-from-div
*/
function hasClass(s,a){return s.className.match(new RegExp("(\\s|^)"+a+"(\\s|$)"))}function addClass(s,a){this.hasClass(s,a)||(s.className+=" "+a)}function removeClass(s,a){if(hasClass(s,a)){var e=new RegExp("(\\s|^)"+a+"(\\s|$)");s.className=s.className.replace(e," ")}}
</script>
<!-- Google Analytics -->
<script>
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
})(window,document,'script','//www.google-analytics.com/analytics.js','ga');
ga('create', 'UA-75033093-1', 'auto');
ga('send', 'pageview');
</script>
<!-- Custom script -->
<script>
/*
Copyright Martin ter Haak 2015
Distributed under the MIT License
*/
// Constant salt against rainbow attacks
var SALT = "Nh84Vpq15bQGcnI0";
// Global timeouts for clearing confidential information (in ms)
var GENERATED_TIMEOUT = 20000;
var MASTER_TIMEOUT = 60000;
// Alerts of timeouts
var generated_alert;
var master_alert;
// Either "copy" or "show"
var last_operation;
// Generates the account-specific password from the domain and master password
function generate_password() {
var domain = document.getElementById("domain").value;
var master_password = document.getElementById("master-password").value;
var no_dots = document.getElementById("no-dots").checked;
// Alerts user if domain or master-password field is empty
if (domain) {
document.getElementById("alert-domain").style.visibility = "hidden";
} else {
document.getElementById("alert-domain").style.visibility = "visible";
}
if (master_password) {
document.getElementById("alert-master").style.visibility = "hidden";
} else {
document.getElementById("alert-master").style.visibility = "visible";
}
if (domain && master_password) {
// Clears the master password after 1 minute
clearTimeout(master_alert);
master_alert = setTimeout(clear_master, MASTER_TIMEOUT);
// Generalizes domain name to a specified format
var simplified_domain = simplify(domain);
document.getElementById("domain").value = simplified_domain;
// Uses SHA256 to get a account-specific password
var shaObj = new jsSHA("SHA-256", "TEXT");
shaObj.update(master_password + simplified_domain + SALT);
var hash = shaObj.getHash("HEX");
// Shortens the hash to a strong easily-readable password
return shorten(hash, no_dots);
}
}
// Generates password and shows it for a short duration
document.getElementById("show-button").onclick = function () {
var password = generate_password();
if (!password) return 0;
document.getElementById("generated").value = password;
// Clears the generated field after 10 seconds
clearTimeout(generated_alert);
generated_alert = setTimeout(clear_generated, GENERATED_TIMEOUT);
last_operation = "show";
};
// Generates password and copies it to the clipboard
document.getElementById("copy-button").onclick = function () {
var password = generate_password();
if (!password) return 0;
document.getElementById("generated").value = password;
// Tries select and copy, not all browsers support this yet
try {
// Selects password
document.getElementById("generated").select();
// Copies password to clipboard
var successful = document.execCommand("copy");
if (!successful) throw "";
// Alerts user that password has been copied
if (document.getElementById("no-dots").checked) {
document.getElementById("generated").placeholder = "~ Copied without dots ~";
} else {
document.getElementById("generated").placeholder = "~ Copied ~";
}
last_operation = "copy";
} catch (err) {
// Informs the user that copy is not supported in their browser and disables the copy button
document.getElementById("copy-button").innerHTML = "Copy unsupported :(";
removeClass(document.getElementById("copy-button"), "btn-default");
document.getElementById("copy-button").className += " btn-info";
document.getElementById("copy-button").disabled = true;
}
clearTimeout(generated_alert);
// Clears generated field right after copy
document.getElementById("generated").value = "";
// Removes focus from generated password so placeholder becomes visible
document.getElementById("generated").blur()
};
// Generates password again when no-dots checkbox is toggled
document.getElementById("no-dots-label").onclick = function () {
// Shows or copies the password depending on what was done last
if (last_operation == "show") {
document.getElementById("show-button").click();
} else if (last_operation == "copy") {
document.getElementById("copy-button").click();
}
};
// Binds pressing of Enter key to clicking Copy button
document.onkeypress = function (e) {
if (!e) e = window.event;
var keyCode = e.keyCode || e.which;
if (keyCode == "13") {
document.getElementById("copy-button").click();
// Puts focus on copy button as if clicked
document.getElementById("copy-button").focus();
}
};
// Clears placeholder when user starts typing in the text fields
document.getElementById("domain").onkeyup = function () {
document.getElementById("generated").placeholder = "";
};
document.getElementById("master-password").onkeyup = function () {
document.getElementById("generated").placeholder = "";
};
// Creates a strong 14 letter password using the seed
function shorten(seed, no_dots) {
// Puts in seed
Math.seedrandom(seed);
// Adds a lowercase letter, uppercase letter, a digit and 9 other characters to the output
var LOWERCASE = "abcdefghijklmnopqrstuvwxyz";
var UPPERCASE = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
var DIGITS = "0123456789";
var chars = [];
chars.push(LOWERCASE.substr(randint(0, 25), 1));
chars.push(UPPERCASE.substr(randint(0, 25), 1));
chars.push(DIGITS.substr(randint(0, 9), 1));
for (var i = 0; i < 9; i++) {
chars.push((LOWERCASE + UPPERCASE + DIGITS).substr(randint(0, 61), 1));
}
// Shuffles the characters
chars = shuffle(chars);
// Creates string out of array
var shorted = chars.join("");
if (!no_dots) {
// Presents the password in a nicer format with dots separating groups of 4 characters
shorted = shorted.substr(0, 4) + "." + shorted.substr(4, 4) + "." + shorted.substr(8, 4);
}
return shorted;
}
// Generalizes domain names
function simplify(domain_name) {
var simplified;
// Only use part until dot
if (domain_name.indexOf(".") > 0) {
simplified = domain_name.substr(0, domain_name.indexOf("."))
} else {
simplified = domain_name;
}
// Capitalizes first letter and makes other letters lowercase
simplified = simplified.charAt(0).toUpperCase() + simplified.slice(1).toLowerCase();
return simplified;
}
// Clears master password to prevent other people from generating your passwords
function clear_master() {
document.getElementById("generated").placeholder = "";
document.getElementById("master-password").value = "";
document.getElementById("master-password").placeholder = "Please provide master password again";
}
// Clears account-specific password to prevent other people from seeing your password
function clear_generated() {
document.getElementById("generated").value = "";
document.getElementById("generated").placeholder = "~ Generate again ~";
}
</script>
</html>