255 files changed, 1530 insertions, 2295 deletions
diff --git a/frontend/gamma/css/clipperz/clipperz.css b/frontend/gamma/css/clipperz/clipperz.css index dba4d57..68d9942 100644 --- a/frontend/gamma/css/clipperz/clipperz.css +++ b/frontend/gamma/css/clipperz/clipperz.css | |||
@@ -1,120 +1,117 @@ | |||
1 | /* | 1 | /* |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | */ | 24 | */ |
28 | 25 | ||
29 | /* @override | 26 | /* @override |
30 | https://www.example.com/DEVELOPMENT/css/clipperz.css | 27 | https://www.example.com/DEVELOPMENT/css/clipperz.css |
31 | http://www.example.com/DEVELOPMENT/css/clipperz.css | 28 | http://www.example.com/DEVELOPMENT/css/clipperz.css |
32 | https://www.clipperz.com/gamma/css/clipperz.css | 29 | https://www.clipperz.com/gamma/css/clipperz.css |
33 | https://www.example.com/iPHONE/css/clipperz.css | 30 | https://www.example.com/iPHONE/css/clipperz.css |
34 | */ | 31 | */ |
35 | 32 | ||
36 | /* | 33 | /* |
37 | Color list: | 34 | Color list: |
38 | - login box: | 35 | - login box: |
39 | light#ff9955 | 36 | light#ff9955 |
40 | dark#ff6622 | 37 | dark#ff6622 |
41 | - login button: | 38 | - login button: |
42 | regular#dd5500 | 39 | regular#dd5500 |
43 | hover#773311 | 40 | hover#773311 |
44 | - login translations: | 41 | - login translations: |
45 | box: #cc6622; | 42 | box: #cc6622; |
46 | not-selected: | 43 | not-selected: |
47 | color: #ddaa99 | 44 | color: #ddaa99 |
48 | background:#994422 | 45 | background:#994422 |
49 | selected: #772211; | 46 | selected: #772211; |
50 | 47 | ||
51 | */ | 48 | */ |
52 | 49 | ||
53 | html { | 50 | html { |
54 | height: 100%; | 51 | height: 100%; |
55 | } | 52 | } |
56 | 53 | ||
57 | body { | 54 | body { |
58 | /*margin-left: 15px; margin-right: 15px;*/ | 55 | /*margin-left: 15px; margin-right: 15px;*/ |
59 | font-family: Helvetica, Arial, Geneva, sans-serif; | 56 | font-family: Helvetica, Arial, Geneva, sans-serif; |
60 | margin: 0px; | 57 | margin: 0px; |
61 | /* | 58 | /* |
62 | min-width: 600px; | 59 | min-width: 600px; |
63 | */ | 60 | */ |
64 | height: 100%; | 61 | height: 100%; |
65 | } | 62 | } |
66 | 63 | ||
67 | img.favicon { | 64 | img.favicon { |
68 | height: 16px; | 65 | height: 16px; |
69 | width: 16px; | 66 | width: 16px; |
70 | } | 67 | } |
71 | 68 | ||
72 | /* @group Misc */ | 69 | /* @group Misc */ |
73 | 70 | ||
74 | .clear { | 71 | .clear { |
75 | clear: both; | 72 | clear: both; |
76 | } | 73 | } |
77 | 74 | ||
78 | .hidden_none { | 75 | .hidden_none { |
79 | display: none; | 76 | display: none; |
80 | visibility: hidden; | 77 | visibility: hidden; |
81 | } | 78 | } |
82 | 79 | ||
83 | .keepTogether { | 80 | .keepTogether { |
84 | display: inline-block; | 81 | display: inline-block; |
85 | white-space: nowrap; | 82 | white-space: nowrap; |
86 | } | 83 | } |
87 | 84 | ||
88 | body.ext-gecko .keepTogether { | 85 | body.ext-gecko .keepTogether { |
89 | display: -moz-inline-box; | 86 | display: -moz-inline-box; |
90 | } | 87 | } |
91 | 88 | ||
92 | /* @end */ | 89 | /* @end */ |
93 | 90 | ||
94 | /* @group Loading */ | 91 | /* @group Loading */ |
95 | 92 | ||
96 | div#loading { | 93 | div#loading { |
97 | margin-left: auto; | 94 | margin-left: auto; |
98 | margin-right: auto; | 95 | margin-right: auto; |
99 | text-align: center; | 96 | text-align: center; |
100 | margin-top: 60px; | 97 | margin-top: 60px; |
101 | width: 200px; | 98 | width: 200px; |
102 | } | 99 | } |
103 | 100 | ||
104 | div#loading img { | 101 | div#loading img { |
105 | border: 0px; | 102 | border: 0px; |
106 | } | 103 | } |
107 | 104 | ||
108 | div#loading h5 { | 105 | div#loading h5 { |
109 | font-size: 16pt; | 106 | font-size: 16pt; |
110 | padding: 0px; | 107 | padding: 0px; |
111 | color: #333366; | 108 | color: #333366; |
112 | } | 109 | } |
113 | 110 | ||
114 | div#loading h2 { | 111 | div#loading h2 { |
115 | padding-left: 20px; | 112 | padding-left: 20px; |
116 | color: #ff9200; | 113 | color: #ff9200; |
117 | } | 114 | } |
118 | 115 | ||
119 | 116 | ||
120 | /* @end */ | 117 | /* @end */ |
diff --git a/frontend/gamma/css/clipperz/compact.css b/frontend/gamma/css/clipperz/compact.css index 7c9252a..c6e8661 100644 --- a/frontend/gamma/css/clipperz/compact.css +++ b/frontend/gamma/css/clipperz/compact.css | |||
@@ -1,120 +1,117 @@ | |||
1 | /* | 1 | /* |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | */ | 24 | */ |
28 | 25 | ||
29 | /* @override https://www.example.com/css/compact.css */ | 26 | /* @override https://www.example.com/css/compact.css */ |
30 | 27 | ||
31 | body.compact div#mainDiv { | 28 | body.compact div#mainDiv { |
32 | /* | 29 | /* |
33 | width: 250px; | 30 | width: 250px; |
34 | height: 95%; | 31 | height: 95%; |
35 | border: 1px solid #333366; | 32 | border: 1px solid #333366; |
36 | */ | 33 | */ |
37 | padding: 0px; | 34 | padding: 0px; |
38 | } | 35 | } |
39 | 36 | ||
40 | body.compact div#compactHeader { | 37 | body.compact div#compactHeader { |
41 | background-color: #333366; | 38 | background-color: #333366; |
42 | } | 39 | } |
43 | 40 | ||
44 | body.compact div#compactHeader img { | 41 | body.compact div#compactHeader img { |
45 | padding: 2px 20px 2px 4px; | 42 | padding: 2px 20px 2px 4px; |
46 | width: 60; | 43 | width: 60; |
47 | } | 44 | } |
48 | 45 | ||
49 | body.compact div#compactHeader a { | 46 | body.compact div#compactHeader a { |
50 | color: white; | 47 | color: white; |
51 | text-decoration: none; | 48 | text-decoration: none; |
52 | font-size: 10pt; | 49 | font-size: 10pt; |
53 | /*position: absolute; */ | 50 | /*position: absolute; */ |
54 | right: 10px; | 51 | right: 10px; |
55 | top: 6px; | 52 | top: 6px; |
56 | } | 53 | } |
57 | 54 | ||
58 | body.compact div#compactHeader a:hover { | 55 | body.compact div#compactHeader a:hover { |
59 | color: #ff9400; | 56 | color: #ff9400; |
60 | } | 57 | } |
61 | 58 | ||
62 | body.compact h4 { | 59 | body.compact h4 { |
63 | color: #999999; | 60 | color: #999999; |
64 | text-align: center; | 61 | text-align: center; |
65 | padding: 20px; | 62 | padding: 20px; |
66 | font-weight: normal; | 63 | font-weight: normal; |
67 | font-size: 12pt; | 64 | font-size: 12pt; |
68 | font-style: italic; | 65 | font-style: italic; |
69 | } | 66 | } |
70 | 67 | ||
71 | body.compact div.loginPanel form { | 68 | body.compact div.loginPanel form { |
72 | padding: 10px; | 69 | padding: 10px; |
73 | } | 70 | } |
74 | 71 | ||
75 | body.compact div.loginPanel dt { | 72 | body.compact div.loginPanel dt { |
76 | color: #aaaaaa; | 73 | color: #aaaaaa; |
77 | font-size: 10pt; | 74 | font-size: 10pt; |
78 | } | 75 | } |
79 | 76 | ||
80 | body.compact div.loginPanel input { | 77 | body.compact div.loginPanel input { |
81 | width: 180px; | 78 | width: 180px; |
82 | } | 79 | } |
83 | 80 | ||
84 | body.compact ul#directLogins { | 81 | body.compact ul#directLogins { |
85 | background-image: none; | 82 | background-image: none; |
86 | padding: 4px 0px; | 83 | padding: 4px 0px; |
87 | } | 84 | } |
88 | 85 | ||
89 | body.compact ul#directLogins li { | 86 | body.compact ul#directLogins li { |
90 | width:auto; | 87 | width:auto; |
91 | } | 88 | } |
92 | 89 | ||
93 | body.compact ul#directLogins li.hover { | 90 | body.compact ul#directLogins li.hover { |
94 | width:auto; | 91 | width:auto; |
95 | padding-right: 0px; | 92 | padding-right: 0px; |
96 | } | 93 | } |
97 | 94 | ||
98 | body.compact div.lockPanel { | 95 | body.compact div.lockPanel { |
99 | color: #999999; | 96 | color: #999999; |
100 | font-size: 10pt; | 97 | font-size: 10pt; |
101 | padding: 10px; | 98 | padding: 10px; |
102 | } | 99 | } |
103 | 100 | ||
104 | div#compactMiscLinks ul { | 101 | div#compactMiscLinks ul { |
105 | /* text-align: center;*/ | 102 | /* text-align: center;*/ |
106 | display: block; | 103 | display: block; |
107 | padding-left: 22px; | 104 | padding-left: 22px; |
108 | background-color: #ff9400; | 105 | background-color: #ff9400; |
109 | } | 106 | } |
110 | 107 | ||
111 | div#compactMiscLinks ul li { | 108 | div#compactMiscLinks ul li { |
112 | display: inline; | 109 | display: inline; |
113 | padding: 2px 5px; | 110 | padding: 2px 5px; |
114 | } | 111 | } |
115 | 112 | ||
116 | div#compactHeader div#compactMiscLinks ul li a { | 113 | div#compactHeader div#compactMiscLinks ul li a { |
117 | font-size: 9pt; | 114 | font-size: 9pt; |
118 | } | 115 | } |
119 | 116 | ||
120 | div#compactHeader div#compactMiscLinks ul li a:hover { | 117 | div#compactHeader div#compactMiscLinks ul li a:hover { |
diff --git a/frontend/gamma/css/clipperz/iPhone.css b/frontend/gamma/css/clipperz/iPhone.css index a15f22f..ee1d795 100644 --- a/frontend/gamma/css/clipperz/iPhone.css +++ b/frontend/gamma/css/clipperz/iPhone.css | |||
@@ -1,120 +1,117 @@ | |||
1 | /* | 1 | /* |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | */ | 24 | */ |
28 | 25 | ||
29 | /* @override | 26 | /* @override |
30 | https://www.example.com/iPHONE/css/iPhone.css | 27 | https://www.example.com/iPHONE/css/iPhone.css |
31 | https://www.example.com/DEVELOPMENT/css/iPhone.css | 28 | https://www.example.com/DEVELOPMENT/css/iPhone.css |
32 | https://www.example.com/WIZARD/css/iPhone.css | 29 | https://www.example.com/WIZARD/css/iPhone.css |
33 | */ | 30 | */ |
34 | 31 | ||
35 | /* ---------------------------------------- */ | 32 | /* ---------------------------------------- */ |
36 | 33 | ||
37 | body { | 34 | body { |
38 | margin: 0; | 35 | margin: 0; |
39 | font-family: Helvetica; | 36 | font-family: Helvetica; |
40 | background: #FFFFFF; | 37 | background: #FFFFFF; |
41 | color: #000000; | 38 | color: #000000; |
42 | overflow-x: hidden; | 39 | overflow-x: hidden; |
43 | -webkit-user-select: none; | 40 | -webkit-user-select: none; |
44 | -webkit-text-size-adjust: none; | 41 | -webkit-text-size-adjust: none; |
45 | } | 42 | } |
46 | 43 | ||
47 | 44 | ||
48 | div.toolbar { | 45 | div.toolbar { |
49 | box-sizing: border-box; | 46 | box-sizing: border-box; |
50 | -moz-box-sizing: border-box; | 47 | -moz-box-sizing: border-box; |
51 | -webkit-box-sizing: border-box; | 48 | -webkit-box-sizing: border-box; |
52 | border-bottom: 1px solid #2d3642; | 49 | border-bottom: 1px solid #2d3642; |
53 | border-top: 1px solid #6d84a2; | 50 | border-top: 1px solid #6d84a2; |
54 | padding: 10px; | 51 | padding: 10px; |
55 | height: 45px; | 52 | height: 45px; |
56 | /* background: url(../images/old/iPhone/toolbar.png) #6d84a2 repeat-x;*/ | 53 | /* background: url(../images/old/iPhone/toolbar.png) #6d84a2 repeat-x;*/ |
57 | background: url(data:image/png;charset=utf-8;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAArCAIAAAA2QHWOAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAE1JREFUCNddjDEOgEAQAgn//5qltYWFnb1GB4vdSy4WBAYStKyb9+O0FJMYyjMyMWCC35lJM71r6vF1P07/lFSfPx6ZxNLcy1HtihzpA/RWcOj0zlDhAAAAAElFTkSuQmCCCg==) #6d84a2 repeat-x; | 54 | background: url(data:image/png;charset=utf-8;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAArCAIAAAA2QHWOAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAE1JREFUCNddjDEOgEAQAgn//5qltYWFnb1GB4vdSy4WBAYStKyb9+O0FJMYyjMyMWCC35lJM71r6vF1P07/lFSfPx6ZxNLcy1HtihzpA/RWcOj0zlDhAAAAAElFTkSuQmCCCg==) #6d84a2 repeat-x; |
58 | } | 55 | } |
59 | 56 | ||
60 | div.toolbar h1#pageTitle { | 57 | div.toolbar h1#pageTitle { |
61 | overflow: hidden; | 58 | overflow: hidden; |
62 | margin-top: 1px; | 59 | margin-top: 1px; |
63 | margin-bottom: 0px; | 60 | margin-bottom: 0px; |
64 | margin-left: auto; | 61 | margin-left: auto; |
65 | margin-right: auto; | 62 | margin-right: auto; |
66 | width: 150px; | 63 | width: 150px; |
67 | height: 25px; /* 45px*/ | 64 | height: 25px; /* 45px*/ |
68 | font-size: 20px; | 65 | font-size: 20px; |
69 | width: 150px; | 66 | width: 150px; |
70 | font-weight: bold; | 67 | font-weight: bold; |
71 | text-shadow: rgba(0, 0, 0, 0.4) 0px -1px 0; | 68 | text-shadow: rgba(0, 0, 0, 0.4) 0px -1px 0; |
72 | text-align: center; | 69 | text-align: center; |
73 | text-overflow: ellipsis; | 70 | text-overflow: ellipsis; |
74 | white-space: nowrap; | 71 | white-space: nowrap; |
75 | color: #FFFFFF; | 72 | color: #FFFFFF; |
76 | } | 73 | } |
77 | 74 | ||
78 | div.toolbar a.button { | 75 | div.toolbar a.button { |
79 | position: absolute; | 76 | position: absolute; |
80 | overflow: hidden; | 77 | overflow: hidden; |
81 | top: 8px; | 78 | top: 8px; |
82 | right: 6px; | 79 | right: 6px; |
83 | margin: 0; | 80 | margin: 0; |
84 | border-width: 0 5px; | 81 | border-width: 0 5px; |
85 | padding: 0 3px; | 82 | padding: 0 3px; |
86 | width: auto; | 83 | width: auto; |
87 | height: 30px; | 84 | height: 30px; |
88 | line-height: 30px; | 85 | line-height: 30px; |
89 | font-family: inherit; | 86 | font-family: inherit; |
90 | font-size: 12px; | 87 | font-size: 12px; |
91 | font-weight: bold; | 88 | font-weight: bold; |
92 | color: #FFFFFF; | 89 | color: #FFFFFF; |
93 | text-shadow: rgba(0, 0, 0, 0.6) 0px -1px 0; | 90 | text-shadow: rgba(0, 0, 0, 0.6) 0px -1px 0; |
94 | text-overflow: ellipsis; | 91 | text-overflow: ellipsis; |
95 | text-decoration: none; | 92 | text-decoration: none; |
96 | white-space: nowrap; | 93 | white-space: nowrap; |
97 | background: none; | 94 | background: none; |
98 | /* -webkit-border-image: url(../images/old/iPhone/toolButton.png) 0 5 0 5;*/ | 95 | /* -webkit-border-image: url(../images/old/iPhone/toolButton.png) 0 5 0 5;*/ |
99 | } | 96 | } |
100 | 97 | ||
101 | div.toolbar a#backButton { | 98 | div.toolbar a#backButton { |
102 | /* display: none;*/ | 99 | /* display: none;*/ |
103 | left: 6px; | 100 | left: 6px; |
104 | right: auto; | 101 | right: auto; |
105 | padding: 0px; | 102 | padding: 0px; |
106 | max-width: 55px; | 103 | max-width: 55px; |
107 | border-width: 0 8px 0 14px; | 104 | border-width: 0 8px 0 14px; |
108 | /* -webkit-border-image: url(../images/old/iPhone/backButton.png) 0 8 0 14;*/ | 105 | /* -webkit-border-image: url(../images/old/iPhone/backButton.png) 0 8 0 14;*/ |
109 | -webkit-border-image: url(data:image/png;charset=utf-8;base64,iVBORw0KGgoAAAANSUhEUgAAACsAAAAeCAIAAAA6iHCJAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAtJJREFUeNrEV21P01AYbbtubNExBnXDbYjjZYI4BMdgEANDQoTElw/+Rw0mBs0UiSGaoJFEQEPwjRhFCW/JxrZ2Xdu1fe71bpAhCHzqupPnS5ObPOeec+5zb+lHLxao05HPiwvzr3/++J7N7FFGgaaDLe034+O+wCXyxSKET1u5+Wc98XTK39zeOzjudLmNIoAR2tlaf/Zkqm9gKNI/RBigE9dtb23MJKZj8fvuC16b3WGxsJRxOFfHeQOtH+ZnOI+XRfgEBoLAzz6fjo7ebfD4GYYhMiEdDGRAW6xOt6d7YGzl4xIL/7mgyPL044edkVt19T4EFAJEVQYud+MvOCkHc7MJ3+VrXGOzXrHeZS1s9trjOVj7tiqpONTWBRgD6BVmQFls9iMaSHnx/bu3ffEHgC2gVVqAIojKR3Iw9zLRcjVmtTnA0NydxQDg0IWvq59kYIOeZtWs9gQkagcMcgK/vLjYNXQHcEkas0AcYPdNIPr7Q/0M69B089ofavB5ZVm3OJ2cTwegzAUgxGbSe8tLS52xewjRZGabzAABZt+8mvGHBsiYNF+AAw1cXEBGNUiQqWpAlArM5MSYBXgEOl0NkLcCkxak28MRKbuDMa6KDAwAUnU8HO2Q+N0SJ3OLMCA7V1S9vt7d3tSg5LNV0ACXwOekcGfreVbVVYUqMjOvyPsH71cqkxsZ7NHFJIXBTCMONMAlEryoxAfDucyOmaOpmINyaTowrK23IyDxKbNzUIYoKU3+i37OXpCESvfGCOw11uMMcCkQke4rDlrS1coOSk2VOXftERfKtZsURmLXQUqBVqiUABgrQirc0Xp4Fv4t8kxN8dLkaJQupOVcGnTN0PuQHHlRSG1Eu9tUTLOnxZ5clclsfmK078va7/WN7axomCN2e42Xc/VEIoiiM0KePeM20DTY3M22BZtuhENW1rC/NrI3WVGTmZxSKEr7V4ABAJ+53J1I3nPjAAAAAElFTkSuQmCCCg==) 0 8 0 14; | 106 | -webkit-border-image: url(data:image/png;charset=utf-8;base64,iVBORw0KGgoAAAANSUhEUgAAACsAAAAeCAIAAAA6iHCJAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAtJJREFUeNrEV21P01AYbbtubNExBnXDbYjjZYI4BMdgEANDQoTElw/+Rw0mBs0UiSGaoJFEQEPwjRhFCW/JxrZ2Xdu1fe71bpAhCHzqupPnS5ObPOeec+5zb+lHLxao05HPiwvzr3/++J7N7FFGgaaDLe034+O+wCXyxSKET1u5+Wc98XTK39zeOzjudLmNIoAR2tlaf/Zkqm9gKNI/RBigE9dtb23MJKZj8fvuC16b3WGxsJRxOFfHeQOtH+ZnOI+XRfgEBoLAzz6fjo7ebfD4GYYhMiEdDGRAW6xOt6d7YGzl4xIL/7mgyPL044edkVt19T4EFAJEVQYud+MvOCkHc7MJ3+VrXGOzXrHeZS1s9trjOVj7tiqpONTWBRgD6BVmQFls9iMaSHnx/bu3ffEHgC2gVVqAIojKR3Iw9zLRcjVmtTnA0NydxQDg0IWvq59kYIOeZtWs9gQkagcMcgK/vLjYNXQHcEkas0AcYPdNIPr7Q/0M69B089ofavB5ZVm3OJ2cTwegzAUgxGbSe8tLS52xewjRZGabzAABZt+8mvGHBsiYNF+AAw1cXEBGNUiQqWpAlArM5MSYBXgEOl0NkLcCkxak28MRKbuDMa6KDAwAUnU8HO2Q+N0SJ3OLMCA7V1S9vt7d3tSg5LNV0ACXwOekcGfreVbVVYUqMjOvyPsH71cqkxsZ7NHFJIXBTCMONMAlEryoxAfDucyOmaOpmINyaTowrK23IyDxKbNzUIYoKU3+i37OXpCESvfGCOw11uMMcCkQke4rDlrS1coOSk2VOXftERfKtZsURmLXQUqBVqiUABgrQirc0Xp4Fv4t8kxN8dLkaJQupOVcGnTN0PuQHHlRSG1Eu9tUTLOnxZ5clclsfmK078va7/WN7axomCN2e42Xc/VEIoiiM0KePeM20DTY3M22BZtuhENW1rC/NrI3WVGTmZxSKEr7V4ABAJ+53J1I3nPjAAAAAElFTkSuQmCCCg==) 0 8 0 14; |
110 | } | 107 | } |
111 | 108 | ||
112 | /* ------------------------------------------- */ | 109 | /* ------------------------------------------- */ |
113 | 110 | ||
114 | body.iPhone form.loginForm { | 111 | body.iPhone form.loginForm { |
115 | min-height: 372px; | 112 | min-height: 372px; |
116 | 113 | ||
117 | box-sizing: border-box; | 114 | box-sizing: border-box; |
118 | -moz-box-sizing: border-box; | 115 | -moz-box-sizing: border-box; |
119 | -webkit-box-sizing: border-box; | 116 | -webkit-box-sizing: border-box; |
120 | padding: 10px; | 117 | padding: 10px; |
diff --git a/frontend/gamma/css/clipperz/ie.css b/frontend/gamma/css/clipperz/ie.css index 5148ada..3c2d59a 100644 --- a/frontend/gamma/css/clipperz/ie.css +++ b/frontend/gamma/css/clipperz/ie.css | |||
@@ -1,120 +1,117 @@ | |||
1 | /* | 1 | /* |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | */ | 24 | */ |
28 | 25 | ||
29 | <!--[if IE]> | 26 | <!--[if IE]> |
30 | 27 | ||
31 | <style> | 28 | <style> |
32 | 29 | ||
33 | { | 30 | { |
34 | background-color: white; | 31 | background-color: white; |
35 | } | 32 | } |
36 | 33 | ||
37 | div#logoFrame { | 34 | div#logoFrame { |
38 | height: 44px; | 35 | height: 44px; |
39 | } | 36 | } |
40 | 37 | ||
41 | div#logo { | 38 | div#logo { |
42 | /* padding-left: 15px;*/ | 39 | /* padding-left: 15px;*/ |
43 | background: url(../images/old/logo_blue.png); | 40 | background: url(../images/old/logo_blue.png); |
44 | } | 41 | } |
45 | 42 | ||
46 | div.clipperzLoginForm div.loginForm form { | 43 | div.clipperzLoginForm div.loginForm form { |
47 | padding-left: 20px; | 44 | padding-left: 20px; |
48 | } | 45 | } |
49 | 46 | ||
50 | div.clipperzLoginForm div.registrationForm form { | 47 | div.clipperzLoginForm div.registrationForm form { |
51 | padding-left: 20px; | 48 | padding-left: 20px; |
52 | } | 49 | } |
53 | 50 | ||
54 | div#newRecordInnerPanel { | 51 | div#newRecordInnerPanel { |
55 | width: 350px; | 52 | width: 350px; |
56 | height: 160px; | 53 | height: 160px; |
57 | background: url(../images/old/newRecordPanelBackground.png) no-repeat 0 -165px; | 54 | background: url(../images/old/newRecordPanelBackground.png) no-repeat 0 -165px; |
58 | /*background: url(data:image/png;charset=utf-8;base64,iVBORw0KGgoAAAANSUhEUgAAAY4AAAFQCAYAAACoMJkjAAANIWlDQ1BJQ0MgUHJvZmlsZQAAeJyV13k0lG8bB/BrFsYyZhhjDyO7iLITskQi2feS7AwzMQkpS1KILKFoQWihKJGoqH5kSUghoajIkj1Llnn/kOr9nff3vue9/njO9dzPc859P885n+99bgC8miuVSkYCgH8ALdDSSI9k7+BIwnQCBnDAA1gQdnULouqam5vCP9Z8JyAAADrkXKlU8j+/9x8LF2jv4AiAkAUAotd6vxMAiIfWe2sAIB6lUWkACG8AILp5u7oDIMIBQDbQ2lIfAHEDAHBe630lAOAOrfcNAIALdvOiASC6ARgJAe4+AQCYcQBGbXePIDcAnCwAuLsHufkD4JIBwMzfn+IOgPsIAFJu1EAaAJ4JAOTsHRxJ60t2igdQ4gNgMvk9djQdoDwXQGrv7zHRBwDcrgB5ib/HZi0BAQAI7tYgT8XtAACAwOoBMPTT6bMSAJhUgNUUOn05j05fvQaA6gWoJbsdCQz++b8QiBaA/3W//s0/C4UAQAIgxBCFyDBUODqc4QRjJCaa6SSzAXMdy2nWM9g4trO4CnZvjhRCCmcq8TxXOnc6TyZvHT9FIHtTtuBloQbSEZG8zddEW8WPSRRKtkufkCna0ikXvfW2fM+209vvKX5QPqtSoTqgnqRRpTmklab9RGdUN0Pvmf7ErizDeqMZ46t7mkzm9+aZvdrXZt5m0W65Yn3L5q1tp12Xfbcj2umuc+/+vgP9Lh8OfjyEdXvo/tnji+eQ17D3V58RPy7yU/9vAROUSerU4enAmaA52tyR78HzRxdCFkOXwn4cWwlfOb4aIR35NhpxEhmDOoWOZTjNeAYTxxTPnMByljURm8R2DpeMT2FP5UgjnOdMJ2ZwZXJf4LnIm8WXzX9J4PKmK4JXhXKEc0l5Itc254sWiBWKX5e8IXlT6pZ0kUzRWDH5tuwduRL5UoW72+5tK9t+X6lcuUKlYv5BcKXqQ7UqjWrNRzse73ii9WStJqJW5+nOZ7rP9f7Sr0PXxdTvemHYYNRo3GTczNKc8NKkxfSVWSuu9VybebvFa8sOQkfqG6u31p02Xdxdmd127+x7HN/zv8/ude5z7t//QejD1Y8uAwcHRQbzPh367PbFfUh8qHDY86vXiPeo9OitMd9xv2/kCbmJO5MBU5Rp6sy2mXuzgXNB32nzyvMVC8GLIUuhP0KXNZarV46thq9prT2h0wEQokgccgrVjC5iSGMMx3gxWTPrsyixSmIl2XhxPHhedl4OLoIEpxRRjcuU+wBPEG8SXwl/s8CIIKeQirAX6YLIC1GEmJb4YYm7kpPSUjLkLdVyqK268ikKA9ulFWOVulRkVKlqdRo8miE7Xmpz61B2PtMT0z9m0G4oZBSy+7Hxksk2U4+96Wbt5jgLI8sQqwLrN7YsdjvtDztcdqx3mtwvfGCfS9jBPNe6QyPuXB46nvZeJ7xzfGp9+/yW/DkDtlAMqN6HwwOTg/Jo5Ucagt8fHQ2ZD0Md4wgnHZc9oRyxM9Ikal+008mDMR6nyLG004FnIuMi408mxJ1NTUxIyjp3MTkzJSX1Ulrq+Yz0Cxk3Mq9fuHPxRlZRdsmlR5cfXam7+jKnPbcjr+NaR/77gs+Fw9cHb3y5OXlrumiyeOL2zJ3JkrHS8bvD9wbKBu/3lLdXND6orXzwsKTqUnXqo8jH/k+cakxqdzyVeUZ4tvT8419Ndffr014ENlg1qjQJNNGbe17eb4l/5dgq2jrUVtZ+/PWuDlxH35uct76dip2rXS3dae/290j3zL6v6o3uM+kn9vd/uPkxaEBzED3Y9On85wNfJL+MD1UNR33dM8I10jeaP0YeVx5f+9Y4kTrpNCU2NT5dNhM+azRHmOv+XjBPWVBfRC2+WEr54bQsuvxtpWI1cs2Yzk2nA8BJRAgyDKWJqkIfZ9BhqGGMwpxiMmSqY45lOc0aj92DbWZLxCXik9j3sbdyJBNSOdOIaVzWXG+4M3gyeC/wZfFnC2RvuiToLNgndFU4h5Qrkrs5V/SaWL54gUSh5HWpG9I3ZXxkRrfcki2Wu731jnyJQum2u9vvKZYp3VeuUKlQrVALUVtUr9Ko0qze8UjrsfYJ7TWdmp21uk/1nuk/N4jZhd5VZ1hv9GJ3g3HjniaTBFOs6cu9LWav9rWaJ1uwW7RbvrbqsH5j02mbYcdt12Xf7fDOsccp21nAuXd/34EPLh8PfnTNPSRyaNDtk/tnjy+ehV4S6wniO+pXRJYlj/9bisz+SpHKULXQpbAfx5bDV46vnliLoEdBNPJXkmDOYOKY4hrj9ySwnsUmYpPYzuGT2VM4fmUJdybPBd6fWbLpzyzJG7zmli9aIFYocV1iI02KZW/L3dn6R5YolitVKD9QrVR9qFalXq35SPPxjifaNdp/5MiuesMXhg1GjbubjJtNXga/2txq1mbebv7aouP4W5lO2y677uge+feOvbH9ih/iBpQHz352H9IcThnxGfP9Rp6kTMfPOc6fW0pYtaTTAdb3PgAARhWAjC0AtlkAVnkAsVsAJF0AuG8AmLMBWKsDkkEIkFpUQOzR2tg/AAHsIAhbQQ8cIAiSoRQWESSECSIEcQPxCjGMxCONkFHIx8gVlBYqClWPWkGLoB3QhejvDIYMpxhKGCYZjRhzGYcwXBhnzGMmDJM6UwzTGLMGM4W5lkWOJZKlkhXHGsX6DkvEBmC/su1iO8k2gHPFPcOj8J74cXYL9gz2VY44jhmCBqGAU5WzgHOS6EJc4PLhquDewv2Cx5MXw3uLT5zvKN8c/2UBI4HZTTmCYoLhQgihcmFfkgipR+T85s2bI0Xxoq1iKeI2EvwSg5JFUvpSN6X1ZDhkBraUyZ6Wc96qKI+VH1b4a1ve9mhFdyUjZVkVTpUV1SG1THWceq1GqWbujvNaZ7QjdI7uPKxL1vPR9zbw3uVnGGBE233MOGbPOZNs05t7K80a9/WaT1tirISs1WysbKl2SfZ3HNocZ51592sf8HRJPljt+tWNx93II9Sz2IfX19wvnlwXgKToUqMOPw9ipJkcSQ0RC6WEPQpnOe54ojiCHmUdgzzlHPvgDGfc4fj2xPSkpWSXlPo0+fNZmUEXPmVZZddduZMjnnv5Gk8h+/Wkm7hb525nlgiW5t+TKzeoaK90fTj9mOdJca3ec1odvr64YU9zfIvcq/a24I76t9Quge6GXom+7g/xAzqfi4fcvwqP9HyzneSe6prJmnNZGF8qX46g89LpAIAEFuABadABezgC6VAJ/QgMQgHhgkhC1CBmkTJIF2QW8g0Kj9qLOotqQbOh96HT0e8ZSAw+DKUMi4z6jOcY32HEMUcwz5kITO5MlcyszM7Md1jQLAdY7rOysLqx1mC5sFRsC5sMWyLbOM4UV4Jnw1Pwnew72fM5cBzBHO8JhoS7nCTOVM41YhDxG5cv1yg3mXuGh8YzzxvGh+A7y8/Pf0tAXaB+k+2mEcFIIT6hCmEL4VFSrIiESMPmAFEe0SdibuJY8acSAZLCkq+l4qT1pFdlqreEy2rJLsjVbD0jb60gojC5rWZ7iqKvkoGykPKyylvVh2qX1aM0vDTtdmhpyWuL6BB2onVRujN60/qTBmO7hgxnjcZ2f9+DNCGa8uzdZqa9b5+5pYWfZahVtvU9m5e27+1WHIiO8k5mzof3XzxQ5zLsynxIwc3bPcujxnPKW9rHwzfT762/QIANJZv6NVAqKJjWGCx4NCikKUz0WFL46AmHiIYoleiCGMKppNOEMxnxvAnZicpJr5I9Un6kJaarZny5cCXL95LNFekchtzxa88Kyq9fvBlb5HbbucTwrlqZUvnWB3IPparFH0vVKDzVeb67zuIFufFwc0pLTuuj9v4Oeqdwt1aPe29Cf9XH8U98X/SGI0dujH2e4J/ynLkyN7QgtRSwXLGGoNMBgBHYQRD0wAGSoRReb9jfcL+uHo1HO6C/MxgyZP30voZxZhJmimEaY7ZmrmWRY7nEimONYl3ABmC/srnjXHGf8J74cfYg9lWOOAI3oYBTlbOJ6EJc4Er+ZdqMb+6nZ3MhhFD5T8sW65J/Og6W1vvT8G/BP/2+Vq/VKP1t97fcf3b739R6Dfjw+pr/XW1wz9/dRt/6U+7Z7b/lZjBu2L2svqE3P23DbzFhQ3BZ5Ybh6pPrip/2bDhuHGmOf/lXS8ar9rbg14Id9W+pnaVdsd0NPcG9En1+/QYf4gd0Bk9/OvS5+Mv8UMdX4RG/UeMxqXHMN9uJwsnYKa/p3TMys6yzE3Nt38vmMxasF8YXY5b0fkj+GFqOWOFdubLKsRqzurCWT0+g0wHWz0sAAMCiTyFTAkmm+gb/52Hvf5U/+cjGHEgAwHoE2FgBAAEApHxoxtYAQAQADdAHCpCBAoFAAlPQB4OfVxK4/XriA7B+lgMAYGQHuGQHAFCzeCzy7/PSPEJoAAD6FGpooI+XN42kS6WSPUj6FH/qEZpHoCzJOMBtqyxpu4KCMgDAvwBJl//fxucdgAAAAAlwSFlzAAALEwAACxMBAJqcGAAADQdJREFUeJzt3U+MnGd9wPHfOzP7x/FuvOAYZAzGRg1pFKDAIVXbiD8Sai2knKJK7QHEAXHoHfXS9MIFDkg9c0BVD1SqUIA2VRuLKhIEOBjhQxDBjo0BJ7gQ4jq769m1d2emh5nH885k7e5vZnbj2p+P9Gr+7LvvO3t5v/u8z/vuRgAAAAAAAAAAAAAAAAAAAAAA95HqLd7vW7V/gHtBb7Dsq70+cFe1Jcae78f+Ae5V48Hojj3fs6Ds1YG7iohGjIZj/PV4VADYvV5tKdHo3uG9mZn1QbseiEZENAfvt2rvNcbW28vPA3Av2WmUUQ9FWTq15/WvzyQgszpQ7xSM5uB56/jxPzt66NDxJ5vNA59sNKr3RjROVlU1P6N9A9zHemu9Xu/Vbnf7JzdurP/bSy9987sRsR39eGzHMCQzi8cswlGPxq1YRETr0KH3v+3EiT/+21Zr8bMR1eIM9gXAHXS7nZfa7d///blz33k+hvGoB2TqeDT/71XuaDwarYiYj4iFEyc+9cFjxz70zWZz/lMRVWvK/QCwC1XVODI3d/AvH3ro0d7vfvfij8vbs9zHtOEocxb1aMy/5z0fe/TIkT94pqoa75r2AwKQU1VV1WzOP3H48CMxiEcZYfRiBhGZZgNllDESjeXld608/PCnT1dV43h95cOHH4zPfObP4/HH/zCOHj0cy8sPTLFrACIi1tbacf78K/HMM9+L5547M/K1Xq/XW1+/8rnz55/9bkRsRsTWYCmnrrpv2uAuTBOOMp8xN1jmI+KBD3zgr/9uYWH58/UVT516PL74xb+KQ4cOTrE7AO7k+efPxpe+9E+xutq+9V63u33h7Nmvn4qIdozGoxPDSfOUSU9VlbmN1mBZiIjFBx88cfTIkUf/oaqqW9v9xCc+HF/+8hdicdFFVAB76eTJo3HixNE4fXo48qiqxtsPHnzn+atXX/5FjF6uW78PJKUx4eerX3Z7Kx7Hjn3kqfpltu94x0o8/fRnJ9wFAFkf//gfxalTj4+8t7i48hcRsRj9X/LLMXune+l2ZZJw1G/kG7mSam5u6Yn6ik8++adOTwHss6ee+tjI67m5xQ9F/zjdiv7UQjOm+Osd04w4SkDK/MZ8szn/aH2lJ5744ISbB2BSDz/87pHXVdV4KPqjjTLiKL/071s4yk7qp6nmImKx0Wiu1Fd87LETE2wegGksLR0YeV1VjYPRj8ZcDMNRfvlPm3TEUa6oKvEoV1aNbrwx6eYBmLFynC7hqP/h2ZRJjuyN2mO5smou+jUD4O40H8N770o4It6COY6Rv0014bYA2HtlpFGO22VJy35TfRa+GaN3j0/750sA2Dvll/z6v7eY6MqqaUYcEaOXdAkHwN1rqktw66YNR9nGxDeSALAv6tML5fW+3QBY/xD1+zlcQgVw96pqj1ONOmYVDgDubtVtnqfNcpQgIAD3AaeXAEgRDoD7w05nhfZlcvxO1/06VQXw/0P9GL5v93GM71w0AO5+MzleO1UFQIpwAJAiHACkCAcAKcIBQIpwAJAiHACkCAcAKcIBQIpwAJAiHACkCAcAKcIBQIpwAJAiHACkCAcAKcIBQIpwAJAiHACkCAcAKcIBQIpwAJAiHACkCAcAKcIBQIpwAJAiHACkCAcAKcIBQIpwAJAiHACkCAcAKcIBQIpwAJAiHACkCAcAKcIBQIpwAJAiHACkCAcAKcIBQIpwAJAiHACkCAcAKcIBQIpwAJAiHACkCAcAKcIBQIpwAJAiHACkCAcAKcIBQIpwAJAiHACkCAcAKcIBQIpwAJAiHACkCAcAKcIBQIpwAJAiHACkCAcAKcIBQIpwAJAiHACkCAcAKcIBQIpwAJAiHACkCAcAKcIBQIpwAJAiHACkCAcAKcIBQIpwAJAiHACkCAcAKcIBQIpwAJAiHACkCAcAKcIBQIpwAJAiHACkCAcAKcIBQIpwAJAiHACkCAcAKcIBQIpwAJAiHACkCAcAKcIBQIpwAJAiHACkCAcAKcIBQIpwAJAiHACkCAcAKcIBQIpwAJAiHACkCAcAKcIBQIpwAJAiHACkCAcAKcIBQIpwAJAiHACkCAcAKcIBQIpwAJAiHACkCAcAKcIBQIpwAJAiHACkCAcAKcIBQIpwAJAiHACkCAcAKcIBQIpwAJAiHACkCAcAKcIBQIpwAJAiHACkCAcAKcIBQIpwAJAiHACkCAcAKcIBQIpwAJAiHACkCAcAKcIBQIpwAJAiHACkCAcAKcIBQIpwAJAiHACkCAcAKcIBQIpwAJAiHACkCAcAKcIBQIpwAJAiHACkCAcAKcIBQIpwAJAiHACkCAcAKcIBQIpwAJAiHACkCAcAKcIBQIpwAJAiHACkCAcAKcIBQIpwAJAiHACkCAcAKcIBQIpwAJAiHACkCAcAKcIBQIpwAJAiHACkCAcAKcIBQIpwAJAiHACkCAcAKcIBQIpwAJAiHACkCAcAKcIBQIpwAJAiHACkCAcAKcIBQIpwAJAiHACkCAcAKcIBQIpwAJAiHACkCAcAKcIBQIpwAJAiHACkCAcAKcIBQIpwAJAiHACkCAcAKcIBQIpwAJAiHACkCAcAKcIBQIpwAJAiHACkCAcAKcIBQIpwAJAiHACkCAcAKcIBQIpwAJAiHACkCAcAKcIBQIpwAJAiHACkCAcAKcIBQIpwAJAiHACkCAcAKcIBQIpwAJAiHACkCAcAKcIBQIpwAJAiHACkCAcAKcIBQIpwAJAiHACkCAcAKcIBQIpwAJAiHACkCAcAKcIBQIpwAJAiHACkCAcAKcIBQIpwAJAiHACkzDIcvRluC4DZmtkxOhuO3tjz+gLA3W0mx+1JRhxCAXBvmCgi5jgASJlFOG5bql7PwATgXjNpOHo7PPa63e3r9ZXOnbs86ecCYELXr2+OvO71OpsxwznpaUYc4x+gu7W18av6Ci+88OIUmwdgEpcuXRl53elsvzG2ylQRmUU4uhHRiYheu/36z+orPPvsj6Ld3tzpewHYI9/+9gsjr7e2rv8yBsfpGB63JzarcPQionPlytnvR/Q6ZYVXXnktvvKVf57m8wGQcObMz98UjrW1V88OnpZf9MvziTQn+J5q8H2twTIXEfMRsbi93W4sLx9758LC8vGy8ssvvxKrq+346EffH63WJLsDYDfOnPl5PP3016PdvnHrvU7nxu8vXnzuH3u97lpEtCPiRkRsRsTWYOlGMiKTHMkbg6U5WEo4FiJifn39yquHDz/yJ41Gc6F8w09/eilOn/5xLC0diJWVpVhcXIhGo5pg1wDUtdubce7c5fja156Nr371X0aiERHx29+++I3V1csXImI9IjYGy42IuBkR24MlFY5Jjt5ltLEQEQciYikiliPiwYh4KCLetrLyvsdOnvzk39TjAcD+euONy9+7cOE/vhERr0fE1Yi4FhGrMYzIZvTD0bntRnYw6amq8VFHGXnMRcT85ub/bNy8uf6b5eVjj4gHwP67du3XP7h48T+/FRFrEXE9RkccW9EfcXRiOGm+a5OGo8xzjMejjEaaGxtX169d+9W5AwfevjI/v3SkqirnpgD22Pb25rUrV37yr5cvv/B89KNRwnE9+nMcm9GPxlb0o1EucNq1aWerdwpIa/C60elsbr3++vkL6+v/fTEithqNVquqGo2qajSFBGB63W5na3t7Y31j4+qvX3vtpR9euvRf/7629ptfRn+EUR9ttOPN8xslHCmTHrwbMbyiaiEiFiPigejPdSxFxKEYzn0sRcTBwTqLMbwaq5zumvazANxP6qODcvDfjv4IYjOGoVgbPK4Onq9GPx7lyqqtGE6Mp0YcrSk+fHew0zLauBn9mpWRR9EZfMADg6/Px2g4yqmvCPEAuJORP/MUwzmKrRheZrsR/TjURxwlFjdiOMroxoR3j08ajvrt6t3Bh65qS3m/VPDG4IdZjP4opZzSKhPtggGwO/Vjb7mhr0x2b8Zw1NGuPW7E8PRUfW5jItOGoxOjo4V6AEpQbkZ/tLEQ/dHG3GC/zRiGI0I8AHZjp3Bsx3Duoow66ksJSolG/c+PpE1zqqrssFz/Ox6NUrZy3m0+huEoE+r1cIxvA4BR9VNV5VTTdm25GcN4lMf6neL1OY23NBxl5FGed2tL+UHKvEaZUC/zIvXTWxHCAXAn4wf8csqpPkFezvTcrD0v0Zh6tBExXTgi3vwD1N8rP0gr+sUr4RgfbYgFQF59grsEoYw8tmJ0PqN+6e3U/5Nj2nDE4IM0xj5IfXK8xKJ+v0f9aqrxuREAbm+nK6vKYznudnZYejHlKapilgfs8RDUT0eVWOw00nCaCmB3xv/7asTo9MBOIan//42p/g9HsRcH6/pVUuMhGf9afX0Adqc+ahi/PaL+OP71mdjL3/J3mvS+3aW7AOSNj0B2epxZMIr9PHg7JQWwd3Y6jQUAAAAAAAAAAAAAAAAAAAAAMK3/BX4vwOY3EngcAAAAAElFTkSuQmCCCg==) no-repeat 0 -165px; */ | 55 | /*background: url(data:image/png;charset=utf-8;base64,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) no-repeat 0 -165px; */ |
59 | } | 56 | } |
60 | 57 | ||
61 | img#donateHeaderIcon { | 58 | img#donateHeaderIcon { |
62 | padding-top: 0px; | 59 | padding-top: 0px; |
63 | margin-bottom: 0px; | 60 | margin-bottom: 0px; |
64 | } | 61 | } |
65 | 62 | ||
66 | /* ========================================================== */ | 63 | /* ========================================================== */ |
67 | 64 | ||
68 | div#applicationVersionType { | 65 | div#applicationVersionType { |
69 | position: absolute; | 66 | position: absolute; |
70 | } | 67 | } |
71 | 68 | ||
72 | div#applicationVersionType.readOnly { | 69 | div#applicationVersionType.readOnly { |
73 | background: url(../images/old/read-only.png) no-repeat fixed -5px -8px; | 70 | background: url(../images/old/read-only.png) no-repeat fixed -5px -8px; |
74 | } | 71 | } |
75 | 72 | ||
76 | div#applicationVersionType.TEST { | 73 | div#applicationVersionType.TEST { |
77 | background: url(../images/old/test-database.png) no-repeat fixed -5px -8px; | 74 | background: url(../images/old/test-database.png) no-repeat fixed -5px -8px; |
78 | } | 75 | } |
79 | 76 | ||
80 | div#mainTabs { | 77 | div#mainTabs { |
81 | background: #ff9400 url(../images/old/menubarSprite.gif) repeat-x; | 78 | background: #ff9400 url(../images/old/menubarSprite.gif) repeat-x; |
82 | } | 79 | } |
83 | 80 | ||
84 | div#menus { | 81 | div#menus { |
85 | background: url(../images/old/menubarSprite.gif) no-repeat right -26px; | 82 | background: url(../images/old/menubarSprite.gif) no-repeat right -26px; |
86 | } | 83 | } |
87 | 84 | ||
88 | div#menus table { | 85 | div#menus table { |
89 | background: url(../images/old/menubarSprite.gif) no-repeat 0 -52px; | 86 | background: url(../images/old/menubarSprite.gif) no-repeat 0 -52px; |
90 | } | 87 | } |
91 | 88 | ||
92 | div#menus table tbody tr td div { | 89 | div#menus table tbody tr td div { |
93 | background: url(../images/old/menubarSprite.gif) no-repeat right -52px; | 90 | background: url(../images/old/menubarSprite.gif) no-repeat right -52px; |
94 | } | 91 | } |
95 | 92 | ||
96 | div#menus table tbody tr td div a { | 93 | div#menus table tbody tr td div a { |
97 | background: url(../images/old/menubarSprite.gif) no-repeat left -26px; | 94 | background: url(../images/old/menubarSprite.gif) no-repeat left -26px; |
98 | } | 95 | } |
99 | 96 | ||
100 | div#menus table tbody tr td.selectedTab { | 97 | div#menus table tbody tr td.selectedTab { |
101 | background: url(../images/old/menubarSprite.gif) repeat-x right -78px; | 98 | background: url(../images/old/menubarSprite.gif) repeat-x right -78px; |
102 | } | 99 | } |
103 | 100 | ||
104 | div#menus table tbody tr td.selectedTab div { | 101 | div#menus table tbody tr td.selectedTab div { |
105 | background: url(../images/old/menubarSprite.gif) no-repeat right -130px; | 102 | background: url(../images/old/menubarSprite.gif) no-repeat right -130px; |
106 | } | 103 | } |
107 | 104 | ||
108 | div#menus table tbody tr td.selectedTab div a { | 105 | div#menus table tbody tr td.selectedTab div a { |
109 | background: url(../images/old/menubarSprite.gif) no-repeat left -104px; | 106 | background: url(../images/old/menubarSprite.gif) no-repeat left -104px; |
110 | } | 107 | } |
111 | 108 | ||
112 | div.clipperzLoginForm div.loginFormHeaderBox { | 109 | div.clipperzLoginForm div.loginFormHeaderBox { |
113 | background: url(../images/old/loginFormBox.png) no-repeat -3px top; | 110 | background: url(../images/old/loginFormBox.png) no-repeat -3px top; |
114 | } | 111 | } |
115 | 112 | ||
116 | div.clipperzLoginForm div.loginForm { | 113 | div.clipperzLoginForm div.loginForm { |
117 | background: url(../images/old/loginFormBox.png) repeat-y -408px; | 114 | background: url(../images/old/loginFormBox.png) repeat-y -408px; |
118 | } | 115 | } |
119 | 116 | ||
120 | div.loginForm div.loginFormFooterBox { | 117 | div.loginForm div.loginFormFooterBox { |
diff --git a/frontend/gamma/html/exitPage_template.html b/frontend/gamma/html/exitPage_template.html index 7056320..b46f9f6 100644 --- a/frontend/gamma/html/exitPage_template.html +++ b/frontend/gamma/html/exitPage_template.html | |||
@@ -1,120 +1,117 @@ | |||
1 | <!-- | 1 | <!-- |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | --> | 24 | --> |
28 | 25 | ||
29 | <html> | 26 | <html> |
30 | <head> | 27 | <head> |
31 | <title>clipperz</title> | 28 | <title>clipperz</title> |
32 | <link rel="stylesheet" type="text/css" href="./static.css" /> | 29 | <link rel="stylesheet" type="text/css" href="./static.css" /> |
33 | <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/> | 30 | <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/> |
34 | </head> | 31 | </head> |
35 | <body> | 32 | <body> |
36 | 33 | ||
37 | <!-- h1>clipper<span class="logo_z">z</span></h1 --> | 34 | <!-- h1>clipper<span class="logo_z">z</span></h1 --> |
38 | <div class="header"> | 35 | <div class="header"> |
39 | <div id="logo"></div> | 36 | <div id="logo"></div> |
40 | <h5 class="clipperzPayoff">keep it to yourself!</h5> | 37 | <h5 class="clipperzPayoff">keep it to yourself!</h5> |
41 | </div> | 38 | </div> |
42 | 39 | ||
43 | 40 | ||
44 | <div class="contentWrapper"> | 41 | <div class="contentWrapper"> |
45 | <div class="block1"> | 42 | <div class="block1"> |
46 | <div class="languageBlock en-us"> | 43 | <div class="languageBlock en-us"> |
47 | <div class="flags"></div> | 44 | <div class="flags"></div> |
48 | <div class="content"> | 45 | <div class="content"> |
49 | <h3>Goodbye! Thanks for using Clipperz.</h3> | 46 | <h3>Goodbye! Thanks for using Clipperz.</h3> |
50 | 47 | ||
51 | <p>You just logged out from your Clipperz account. We hope to see you again soon!</p> | 48 | <p>You just logged out from your Clipperz account. We hope to see you again soon!</p> |
52 | </div> | 49 | </div> |
53 | </div> | 50 | </div> |
54 | 51 | ||
55 | 52 | ||
56 | <div class="languageBlock zh-cn"> | 53 | <div class="languageBlock zh-cn"> |
57 | <div class="flags"></div> | 54 | <div class="flags"></div> |
58 | <div class="content"> | 55 | <div class="content"> |
59 | <h3>下次再见!感谢您使用 Clipperz。</h3> | 56 | <h3>下次再见!感谢您使用 Clipperz。</h3> |
60 | 57 | ||
61 | <p>您仅仅是从您的 Clipperz 账户登出,我们希望很快再次见到您!</p> | 58 | <p>您仅仅是从您的 Clipperz 账户登出,我们希望很快再次见到您!</p> |
62 | </div> | 59 | </div> |
63 | </div> | 60 | </div> |
64 | 61 | ||
65 | 62 | ||
66 | <!-- | 63 | <!-- |
67 | <div class="languageBlock fr-fr"> | 64 | <div class="languageBlock fr-fr"> |
68 | <div class="flags"></div> | 65 | <div class="flags"></div> |
69 | <div class="content"> | 66 | <div class="content"> |
70 | <h3></h3> | 67 | <h3></h3> |
71 | 68 | ||
72 | <p></p> | 69 | <p></p> |
73 | </div> | 70 | </div> |
74 | </div> | 71 | </div> |
75 | --> | 72 | --> |
76 | 73 | ||
77 | 74 | ||
78 | <div class="languageBlock it-it"> | 75 | <div class="languageBlock it-it"> |
79 | <div class="flags"></div> | 76 | <div class="flags"></div> |
80 | <div class="content"> | 77 | <div class="content"> |
81 | <h3>Arrivederci! Grazie per aver scelto Clipperz.</h3> | 78 | <h3>Arrivederci! Grazie per aver scelto Clipperz.</h3> |
82 | 79 | ||
83 | <p>Sei uscito da Clipperz. Speriamo di rivederti presto.</p> | 80 | <p>Sei uscito da Clipperz. Speriamo di rivederti presto.</p> |
84 | </div> | 81 | </div> |
85 | </div> | 82 | </div> |
86 | 83 | ||
87 | 84 | ||
88 | <div class="languageBlock ja-jp"> | 85 | <div class="languageBlock ja-jp"> |
89 | <div class="flags"></div> | 86 | <div class="flags"></div> |
90 | <div class="content"> | 87 | <div class="content"> |
91 | <h3>Clipperz をご利用いただきありがとうございました。</h3> | 88 | <h3>Clipperz をご利用いただきありがとうございました。</h3> |
92 | 89 | ||
93 | <p>Clipperz から正常にログアウトしました。またのご利用をお待ちしています。</p> | 90 | <p>Clipperz から正常にログアウトしました。またのご利用をお待ちしています。</p> |
94 | </div> | 91 | </div> |
95 | </div> | 92 | </div> |
96 | </div> | 93 | </div> |
97 | 94 | ||
98 | <div class="block2"> | 95 | <div class="block2"> |
99 | <div class="languageBlock pt-br"> | 96 | <div class="languageBlock pt-br"> |
100 | <div class="flags"></div> | 97 | <div class="flags"></div> |
101 | <div class="content"> | 98 | <div class="content"> |
102 | <h3>Até logo! Obrigado por utilizar Clipperz.</h3> | 99 | <h3>Até logo! Obrigado por utilizar Clipperz.</h3> |
103 | 100 | ||
104 | <p>Você acaba de sair de sua conta Clipperz. Esperamos ve-lo de volta em breve!</p> | 101 | <p>Você acaba de sair de sua conta Clipperz. Esperamos ve-lo de volta em breve!</p> |
105 | </div> | 102 | </div> |
106 | </div> | 103 | </div> |
107 | 104 | ||
108 | 105 | ||
109 | <div class="languageBlock es-es"> | 106 | <div class="languageBlock es-es"> |
110 | <div class="flags"></div> | 107 | <div class="flags"></div> |
111 | <div class="content"> | 108 | <div class="content"> |
112 | <h3>¡Hasta luego! Gracias por usar Clipperz</h3> | 109 | <h3>¡Hasta luego! Gracias por usar Clipperz</h3> |
113 | 110 | ||
114 | <p>Se acaba cerrar su sesión Clipperz. ¡Esperamos verlo nuevamente pronto!</p> | 111 | <p>Se acaba cerrar su sesión Clipperz. ¡Esperamos verlo nuevamente pronto!</p> |
115 | </div> | 112 | </div> |
116 | </div> | 113 | </div> |
117 | 114 | ||
118 | <div class="languageBlock ru-ru"> | 115 | <div class="languageBlock ru-ru"> |
119 | <div class="flags"></div> | 116 | <div class="flags"></div> |
120 | <div class="content"> | 117 | <div class="content"> |
diff --git a/frontend/gamma/html/mobile_template.html b/frontend/gamma/html/mobile_template.html index adc36e9..0a1b54c 100644 --- a/frontend/gamma/html/mobile_template.html +++ b/frontend/gamma/html/mobile_template.html | |||
@@ -1,87 +1,84 @@ | |||
1 | <!-- | 1 | <!-- |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | --> | 24 | --> |
28 | 25 | ||
29 | <html> | 26 | <html> |
30 | <head> | 27 | <head> |
31 | <title>@page.title@</title> | 28 | <title>@page.title@</title> |
32 | <meta http-equiv="content-type" content="text/html; charset=utf-8" /> | 29 | <meta http-equiv="content-type" content="text/html; charset=utf-8" /> |
33 | @copyright@ | 30 | @copyright@ |
34 | @css@ | 31 | @css@ |
35 | 32 | ||
36 | <link rel="shortcut icon" href="./clipperz.ico" /> | 33 | <link rel="shortcut icon" href="./clipperz.ico" /> |
37 | 34 | ||
38 | <meta name="description" content="Login to your web accounts with just one click. Never type a password again! Use multiple complex passwords and forget them. A password manager that enhances your online security." /> | 35 | <meta name="description" content="Login to your web accounts with just one click. Never type a password again! Use multiple complex passwords and forget them. A password manager that enhances your online security." /> |
39 | <meta name="keywords" content="password manager,gestor de contraseñas,gerenciador de senhas,Kennwortmanager,passwords,security,privacy,cryptography" /> | 36 | <meta name="keywords" content="password manager,gestor de contraseñas,gerenciador de senhas,Kennwortmanager,passwords,security,privacy,cryptography" /> |
40 | <script> | 37 | <script> |
41 | Clipperz_IEisBroken = false; | 38 | Clipperz_IEisBroken = false; |
42 | Clipperz_normalizedNewLine = '\n'; | 39 | Clipperz_normalizedNewLine = '\n'; |
43 | Clipperz_dumpUrl = "/dump/"; | 40 | Clipperz_dumpUrl = "/dump/"; |
44 | </script> | 41 | </script> |
45 | 42 | ||
46 | <!--[if IE]><script> | 43 | <!--[if IE]><script> |
47 | Clipperz_IEisBroken = true; | 44 | Clipperz_IEisBroken = true; |
48 | Clipperz_normalizedNewLine = '\x0d\x0a'; | 45 | Clipperz_normalizedNewLine = '\x0d\x0a'; |
49 | </script><![endif]--> | 46 | </script><![endif]--> |
50 | 47 | ||
51 | @CLIPPERZ_DEBUG_VERSION@ | 48 | @CLIPPERZ_DEBUG_VERSION@ |
52 | 49 | ||
53 | </head> | 50 | </head> |
54 | <body> | 51 | <body> |
55 | <div id="mainDiv"> | 52 | <div id="mainDiv"> |
56 | <div id="loading"> | 53 | <div id="loading"> |
57 | <a href="http://www.clipperz.com" target="_blank"><div id="logo"></div></a> | 54 | <a href="http://www.clipperz.com" target="_blank"><div id="logo"></div></a> |
58 | <h5 class="clipperzPayoff">keep it to yourself!</h5> | 55 | <h5 class="clipperzPayoff">keep it to yourself!</h5> |
59 | <h2>loading ...</h2> | 56 | <h2>loading ...</h2> |
60 | </div> | 57 | </div> |
61 | 58 | ||
62 | @CLIPPERZ_INSTALLED_VERSION@ | 59 | @CLIPPERZ_INSTALLED_VERSION@ |
63 | 60 | ||
64 | </div> | 61 | </div> |
65 | <div id="applicationVersionType" class="@application.version.type@"></div> | 62 | <div id="applicationVersionType" class="@application.version.type@"></div> |
66 | 63 | ||
67 | <!-- --> | 64 | <!-- --> |
68 | <div id="javaScriptAlert"> | 65 | <div id="javaScriptAlert"> |
69 | <div class="mask"></div> | 66 | <div class="mask"></div> |
70 | <div class="message"> | 67 | <div class="message"> |
71 | <div class="header"></div> | 68 | <div class="header"></div> |
72 | <div class="body"> | 69 | <div class="body"> |
73 | <div class="alertLogo"></div> | 70 | <div class="alertLogo"></div> |
74 | <div class="alert"> | 71 | <div class="alert"> |
75 | <h1>Attention!</h1> | 72 | <h1>Attention!</h1> |
76 | <p>If you can read this message, the chances are that your browser does not properly support JavaScript? or you have disabled this functionality yourself.</p> | 73 | <p>If you can read this message, the chances are that your browser does not properly support JavaScript? or you have disabled this functionality yourself.</p> |
77 | <h3>Javascript is required to access Clipperz.</h3> | 74 | <h3>Javascript is required to access Clipperz.</h3> |
78 | <h5>Please enable scripting or upgrade your browser.</h5> | 75 | <h5>Please enable scripting or upgrade your browser.</h5> |
79 | </div> | 76 | </div> |
80 | </div> | 77 | </div> |
81 | <div class="footer"></div> | 78 | <div class="footer"></div> |
82 | </div> | 79 | </div> |
83 | </div> | 80 | </div> |
84 | <!-- --> | 81 | <!-- --> |
85 | 82 | ||
86 | </body> | 83 | </body> |
87 | </html> | 84 | </html> |
diff --git a/frontend/gamma/js/Bookmarklet.js b/frontend/gamma/js/Bookmarklet.js index a8e3e69..bcdcc46 100644 --- a/frontend/gamma/js/Bookmarklet.js +++ b/frontend/gamma/js/Bookmarklet.js | |||
@@ -1,120 +1,117 @@ | |||
1 | /* | 1 | /* |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | */ | 24 | */ |
28 | 25 | ||
29 | clipperz_copiedContentToClipboard = false; | 26 | clipperz_copiedContentToClipboard = false; |
30 | 27 | ||
31 | //############################################################################# | 28 | //############################################################################# |
32 | 29 | ||
33 | // Simple Set Clipboard System | 30 | // Simple Set Clipboard System |
34 | // Author: Joseph Huckaby | 31 | // Author: Joseph Huckaby |
35 | 32 | ||
36 | var ZeroClipboard = { | 33 | var ZeroClipboard = { |
37 | 34 | ||
38 | version: "1.0.4", | 35 | version: "1.0.4", |
39 | clients: {}, // registered upload clients on page, indexed by id | 36 | clients: {}, // registered upload clients on page, indexed by id |
40 | //moviePath: 'ZeroClipboard.swf', // URL to movie | 37 | //moviePath: 'ZeroClipboard.swf', // URL to movie |
41 | //moviePath: 'data:application/octet-stream;charset=utf-8;base64,Q1dTCYgGAAB4nH1V61LbRhTeXV2OJNsYczFgIEC4JCGABSRpSy+B2JDQQtWJocl0BqK1tUZqhOSRZAj/8ih9hz5AXsGZTl+ndHUhxU2nO56z3/l05uye7+wc6xr6DeUxqpcUhFCNXF9ffxjNcYhRo8U8NruO0IeRLTkm+BpEa4i8/+t3GRGUrRf5tktDe41dMC8Kpd14Q/DM911GPfHCd6zCLyzwa67Tafo0sAppuOWEHZdeyY1O4ERMbnajyPcKIYteUM+qdYPQD/It12m9jX2XBcSx5EYUON6ZwunOEXsXAY+O94HsAu8iFnjULe1mYN/je5u2WLnvAsnRNGrZ6rnfDZlxwQKxRV1XSd1ulPJ1/9KDBB13pDCiZ2ygEdsGj2WHvsXU3dc7taM3e/tHanjDZVqEV2HEzpUGa3V5dVd4Ocfz+5d1/5w6nnbgU4sF+17bFwPfjzT3k691aEDPGb92KBvNX1krmrOjqLNVrVLLb7K1ln9e3WlsVjd0/Um12XXcyPFy6ZHdyHHDkT5tt1JtF/rJerqn6Wu+F/ErsWCmPyiRjrYi54KlgZP/k2Tq9gPYSh5APZOYBVra2VicAtfyn+4qZwHt2E4rVJvszPH2HNcVD2lkS5eOxW3b9f1AtplzZkeKFdDLl/wkibodmyrUsmq241raYdye5ECpdrBf+2GQf0ncA4c3gJelHRrHjd03xs+7L9UMHh9lZN149aOSwuOfcnFO3qQmbb0V44aoSVEXlHeikXQzz1/bpzek8E50XN6o4r/KLfQpU/pMx/J/yz9cxmWhDOOyhMqD5SkJjQnKYnmpIlfuVe5XHlSWKw8rC6QoEayoWk7MFwaKg6Whx4AJEBGIBEQGQQFJBaKBlAMpD6QA0gCQIsglICNAxkGYAFIBMgkwDWQGhFkgc0DuApkHsqDmMZAVIKtA1oBUgejqOmc21E1uHwF5DOQJ4C+AfAnkKyBbQL4G8g2Qb4F8B+o2wA6QZ4DrIOyCsAfCcw0lUwR/ZvgiOP3IhwgWcDZIsCipIpJkPmskBBiBgpGiIqQJOJdYPqbiOaRiUcRIQ5hrIfT055ySiKYVzMLKkKmuDM8aAyInyW1yNCOF22Q5I8Xb5FhGSjLR8n/gnv5q+U+9t4/MojnYLtEhc3jljjGCGT4Z7bXL7bG9Udwefz9xjk9Vhl3crtjqqXwifS8hWzblJToZmylTbk+vYuMOjsECWjZnkuDZvTmcwbscGvOiKVcxXThZNGVjkQebS+17pmLcJwl8sI1v4PI2uYEPt4UbuLItxrCwoplgrMagaOZTENf2NK0NryE8gWRCVE3p6ae5j3aOFwyZb8of6RT3FYn7Y9yvmjlDx1mKGncSfVTC9Z/v6QyZE7q5rpsburmpm490U+K/12g6WXYc+nR4CKX/H31zGG1z5m9Pt5okCg==', | 38 | //moviePath: 'data:application/octet-stream;charset=utf-8;base64,Q1dTCYgGAAB4nH1V61LbRhTeXV2OJNsYczFgIEC4JCGABSRpSy+B2JDQQtWJocl0BqK1tUZqhOSRZAj/8ih9hz5AXsGZTl+ndHUhxU2nO56z3/l05uye7+wc6xr6DeUxqpcUhFCNXF9ffxjNcYhRo8U8NruO0IeRLTkm+BpEa4i8/+t3GRGUrRf5tktDe41dMC8Kpd14Q/DM911GPfHCd6zCLyzwa67Tafo0sAppuOWEHZdeyY1O4ERMbnajyPcKIYteUM+qdYPQD/It12m9jX2XBcSx5EYUON6ZwunOEXsXAY+O94HsAu8iFnjULe1mYN/je5u2WLnvAsnRNGrZ6rnfDZlxwQKxRV1XSd1ulPJ1/9KDBB13pDCiZ2ygEdsGj2WHvsXU3dc7taM3e/tHanjDZVqEV2HEzpUGa3V5dVd4Ocfz+5d1/5w6nnbgU4sF+17bFwPfjzT3k691aEDPGb92KBvNX1krmrOjqLNVrVLLb7K1ln9e3WlsVjd0/Um12XXcyPFy6ZHdyHHDkT5tt1JtF/rJerqn6Wu+F/ErsWCmPyiRjrYi54KlgZP/k2Tq9gPYSh5APZOYBVra2VicAtfyn+4qZwHt2E4rVJvszPH2HNcVD2lkS5eOxW3b9f1AtplzZkeKFdDLl/wkibodmyrUsmq241raYdye5ECpdrBf+2GQf0ncA4c3gJelHRrHjd03xs+7L9UMHh9lZN149aOSwuOfcnFO3qQmbb0V44aoSVEXlHeikXQzz1/bpzek8E50XN6o4r/KLfQpU/pMx/J/yz9cxmWhDOOyhMqD5SkJjQnKYnmpIlfuVe5XHlSWKw8rC6QoEayoWk7MFwaKg6Whx4AJEBGIBEQGQQFJBaKBlAMpD6QA0gCQIsglICNAxkGYAFIBMgkwDWQGhFkgc0DuApkHsqDmMZAVIKtA1oBUgejqOmc21E1uHwF5DOQJ4C+AfAnkKyBbQL4G8g2Qb4F8B+o2wA6QZ4DrIOyCsAfCcw0lUwR/ZvgiOP3IhwgWcDZIsCipIpJkPmskBBiBgpGiIqQJOJdYPqbiOaRiUcRIQ5hrIfT055ySiKYVzMLKkKmuDM8aAyInyW1yNCOF22Q5I8Xb5FhGSjLR8n/gnv5q+U+9t4/MojnYLtEhc3jljjGCGT4Z7bXL7bG9Udwefz9xjk9Vhl3crtjqqXwifS8hWzblJToZmylTbk+vYuMOjsECWjZnkuDZvTmcwbscGvOiKVcxXThZNGVjkQebS+17pmLcJwl8sI1v4PI2uYEPt4UbuLItxrCwoplgrMagaOZTENf2NK0NryE8gWRCVE3p6ae5j3aOFwyZb8of6RT3FYn7Y9yvmjlDx1mKGncSfVTC9Z/v6QyZE7q5rpsburmpm490U+K/12g6WXYc+nR4CKX/H31zGG1z5m9Pt5okCg==', |
42 | //moviePath: 'http://localhost:8000/tests/js/tests/Bookmarklet/ZeroClipboard.swf', | 39 | //moviePath: 'http://localhost:8000/tests/js/tests/Bookmarklet/ZeroClipboard.swf', |
43 | moviePath: 'http://www.clipperz.com/files/clipperz.com/bookmarklet/0.3.0/ZeroClipboard_1.0.4.swf', | 40 | moviePath: 'http://www.clipperz.com/files/clipperz.com/bookmarklet/0.3.0/ZeroClipboard_1.0.4.swf', |
44 | //moviePath: './ZeroClipboard.swf', | 41 | //moviePath: './ZeroClipboard.swf', |
45 | nextId: 1, // ID of next movie | 42 | nextId: 1, // ID of next movie |
46 | 43 | ||
47 | $: function(thingy) { | 44 | $: function(thingy) { |
48 | // simple DOM lookup utility function | 45 | // simple DOM lookup utility function |
49 | if (typeof(thingy) == 'string') thingy = document.getElementById(thingy); | 46 | if (typeof(thingy) == 'string') thingy = document.getElementById(thingy); |
50 | if (!thingy.addClass) { | 47 | if (!thingy.addClass) { |
51 | // extend element with a few useful methods | 48 | // extend element with a few useful methods |
52 | thingy.hide = function() { this.style.display = 'none'; }; | 49 | thingy.hide = function() { this.style.display = 'none'; }; |
53 | thingy.show = function() { this.style.display = ''; }; | 50 | thingy.show = function() { this.style.display = ''; }; |
54 | thingy.addClass = function(name) { this.removeClass(name); this.className += ' ' + name; }; | 51 | thingy.addClass = function(name) { this.removeClass(name); this.className += ' ' + name; }; |
55 | thingy.removeClass = function(name) { | 52 | thingy.removeClass = function(name) { |
56 | this.className = this.className.replace( new RegExp("\\s*" + name + "\\s*"), " ").replace(/^\s+/, '').replace(/\s+$/, ''); | 53 | this.className = this.className.replace( new RegExp("\\s*" + name + "\\s*"), " ").replace(/^\s+/, '').replace(/\s+$/, ''); |
57 | }; | 54 | }; |
58 | thingy.hasClass = function(name) { | 55 | thingy.hasClass = function(name) { |
59 | return !!this.className.match( new RegExp("\\s*" + name + "\\s*") ); | 56 | return !!this.className.match( new RegExp("\\s*" + name + "\\s*") ); |
60 | } | 57 | } |
61 | } | 58 | } |
62 | return thingy; | 59 | return thingy; |
63 | }, | 60 | }, |
64 | 61 | ||
65 | setMoviePath: function(path) { | 62 | setMoviePath: function(path) { |
66 | // set path to ZeroClipboard.swf | 63 | // set path to ZeroClipboard.swf |
67 | this.moviePath = path; | 64 | this.moviePath = path; |
68 | }, | 65 | }, |
69 | 66 | ||
70 | dispatch: function(id, eventName, args) { | 67 | dispatch: function(id, eventName, args) { |
71 | // receive event from flash movie, send to client | 68 | // receive event from flash movie, send to client |
72 | var client = this.clients[id]; | 69 | var client = this.clients[id]; |
73 | if (client) { | 70 | if (client) { |
74 | client.receiveEvent(eventName, args); | 71 | client.receiveEvent(eventName, args); |
75 | } | 72 | } |
76 | }, | 73 | }, |
77 | 74 | ||
78 | register: function(id, client) { | 75 | register: function(id, client) { |
79 | // register new client to receive events | 76 | // register new client to receive events |
80 | this.clients[id] = client; | 77 | this.clients[id] = client; |
81 | }, | 78 | }, |
82 | 79 | ||
83 | getDOMObjectPosition: function(obj) { | 80 | getDOMObjectPosition: function(obj) { |
84 | // get absolute coordinates for dom element | 81 | // get absolute coordinates for dom element |
85 | var info = { | 82 | var info = { |
86 | left: 0, | 83 | left: 0, |
87 | top: 0, | 84 | top: 0, |
88 | width: obj.width ? obj.width : obj.offsetWidth, | 85 | width: obj.width ? obj.width : obj.offsetWidth, |
89 | height: obj.height ? obj.height : obj.offsetHeight | 86 | height: obj.height ? obj.height : obj.offsetHeight |
90 | }; | 87 | }; |
91 | 88 | ||
92 | while (obj) { | 89 | while (obj) { |
93 | info.left += obj.offsetLeft; | 90 | info.left += obj.offsetLeft; |
94 | info.top += obj.offsetTop; | 91 | info.top += obj.offsetTop; |
95 | obj = obj.offsetParent; | 92 | obj = obj.offsetParent; |
96 | } | 93 | } |
97 | 94 | ||
98 | return info; | 95 | return info; |
99 | }, | 96 | }, |
100 | 97 | ||
101 | Client: function(elem) { | 98 | Client: function(elem) { |
102 | // constructor for new simple upload client | 99 | // constructor for new simple upload client |
103 | this.handlers = {}; | 100 | this.handlers = {}; |
104 | 101 | ||
105 | // unique ID | 102 | // unique ID |
106 | this.id = ZeroClipboard.nextId++; | 103 | this.id = ZeroClipboard.nextId++; |
107 | this.movieId = 'ZeroClipboardMovie_' + this.id; | 104 | this.movieId = 'ZeroClipboardMovie_' + this.id; |
108 | 105 | ||
109 | // register client with singleton to receive flash events | 106 | // register client with singleton to receive flash events |
110 | ZeroClipboard.register(this.id, this); | 107 | ZeroClipboard.register(this.id, this); |
111 | 108 | ||
112 | // create movie | 109 | // create movie |
113 | if (elem) this.glue(elem); | 110 | if (elem) this.glue(elem); |
114 | } | 111 | } |
115 | }; | 112 | }; |
116 | 113 | ||
117 | ZeroClipboard.Client.prototype = { | 114 | ZeroClipboard.Client.prototype = { |
118 | 115 | ||
119 | id: 0, // unique ID for us | 116 | id: 0, // unique ID for us |
120 | ready: false, // whether movie is ready to receive events or not | 117 | ready: false, // whether movie is ready to receive events or not |
diff --git a/frontend/gamma/js/BookmarkletHash.js b/frontend/gamma/js/BookmarkletHash.js index 2e0714c..c3039f5 100644 --- a/frontend/gamma/js/BookmarkletHash.js +++ b/frontend/gamma/js/BookmarkletHash.js | |||
@@ -1,47 +1,44 @@ | |||
1 | /* | 1 | /* |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | */ | 24 | */ |
28 | 25 | ||
29 | //18f820faffcdb5e847d4c5d5c4a1de6743baa1a0 | 26 | //18f820faffcdb5e847d4c5d5c4a1de6743baa1a0 |
30 | //9b30434c73fb009b15fecaa904b44f9ced807577 | 27 | //9b30434c73fb009b15fecaa904b44f9ced807577 |
31 | //9b30434c73fb009b15fecaa904b44f9ced807577 | 28 | //9b30434c73fb009b15fecaa904b44f9ced807577 |
32 | varxh; | 29 | varxh; |
33 | vardocumentText; | 30 | vardocumentText; |
34 | 31 | ||
35 | try { | 32 | try { |
36 | xh=new XMLHttpRequest(); | 33 | xh=new XMLHttpRequest(); |
37 | } catch(e) { | 34 | } catch(e) { |
38 | xh=new ActiveXObject("Msxml2.XMLHTTP"); | 35 | xh=new ActiveXObject("Msxml2.XMLHTTP"); |
39 | } | 36 | } |
40 | 37 | ||
41 | xh.open("GET", window.location, false); | 38 | xh.open("GET", window.location, false); |
42 | xh.send(null); | 39 | xh.send(null); |
43 | 40 | ||
44 | documentText = "#####" + xh.responseText + "####"; | 41 | documentText = "#####" + xh.responseText + "####"; |
45 | //documentText = document.body.innerHTML; | 42 | //documentText = document.body.innerHTML; |
46 | 43 | ||
47 | //console.log(documentText); \ No newline at end of file | 44 | //console.log(documentText); \ No newline at end of file |
diff --git a/frontend/gamma/js/Bookmarklet_1.js b/frontend/gamma/js/Bookmarklet_1.js index d117479..c7c7ae6 100644 --- a/frontend/gamma/js/Bookmarklet_1.js +++ b/frontend/gamma/js/Bookmarklet_1.js | |||
@@ -1,120 +1,117 @@ | |||
1 | /* | 1 | /* |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | */ | 24 | */ |
28 | 25 | ||
29 | _cble = null; | 26 | _cble = null; |
30 | 27 | ||
31 | //----------------------------------------------------------------------------- | 28 | //----------------------------------------------------------------------------- |
32 | 29 | ||
33 | isLoginForm = function(aForm) { | 30 | isLoginForm = function(aForm) { |
34 | var inputFields; | 31 | var inputFields; |
35 | var passwordFieldsFound; | 32 | var passwordFieldsFound; |
36 | var i,c; | 33 | var i,c; |
37 | 34 | ||
38 | //console.log("is login form: " + aForm.name + " (" + aForm.id + ")"); | 35 | //console.log("is login form: " + aForm.name + " (" + aForm.id + ")"); |
39 | passwordFieldsFound = 0; | 36 | passwordFieldsFound = 0; |
40 | inputFields = aForm.elements; | 37 | inputFields = aForm.elements; |
41 | c = inputFields.length; | 38 | c = inputFields.length; |
42 | for (i=0; i<c; i++) { | 39 | for (i=0; i<c; i++) { |
43 | if (inputFields[i].type == "password") { | 40 | if (inputFields[i].type == "password") { |
44 | passwordFieldsFound ++; | 41 | passwordFieldsFound ++; |
45 | } | 42 | } |
46 | } | 43 | } |
47 | //console.log("number of password fields found: " + passwordFieldsFound); | 44 | //console.log("number of password fields found: " + passwordFieldsFound); |
48 | return (passwordFieldsFound == 1); | 45 | return (passwordFieldsFound == 1); |
49 | }; | 46 | }; |
50 | 47 | ||
51 | //----------------------------------------------------------------------------- | 48 | //----------------------------------------------------------------------------- |
52 | 49 | ||
53 | findLoginForm = function(aDocument, aLevel) { | 50 | findLoginForm = function(aDocument, aLevel) { |
54 | varresult; | 51 | varresult; |
55 | vardocumentForms; | 52 | vardocumentForms; |
56 | var i,c; | 53 | var i,c; |
57 | 54 | ||
58 | result = null; | 55 | result = null; |
59 | 56 | ||
60 | try { | 57 | try { |
61 | documentForms = aDocument.getElementsByTagName('form'); | 58 | documentForms = aDocument.getElementsByTagName('form'); |
62 | 59 | ||
63 | c = documentForms.length; | 60 | c = documentForms.length; |
64 | for (i=0; (i<c) && (result == null); i++) { | 61 | for (i=0; (i<c) && (result == null); i++) { |
65 | if (isLoginForm(documentForms[i])) { | 62 | if (isLoginForm(documentForms[i])) { |
66 | result = documentForms[i]; | 63 | result = documentForms[i]; |
67 | } | 64 | } |
68 | } | 65 | } |
69 | 66 | ||
70 | if ((result == null) && (aLevel == 0)) { | 67 | if ((result == null) && (aLevel == 0)) { |
71 | var iFrames; | 68 | var iFrames; |
72 | 69 | ||
73 | iFrames = aDocument.getElementsByTagName('iframe'); | 70 | iFrames = aDocument.getElementsByTagName('iframe'); |
74 | c = iFrames.length; | 71 | c = iFrames.length; |
75 | for (i=0; (i<c) && (result == null); i++) { | 72 | for (i=0; (i<c) && (result == null); i++) { |
76 | result = findLoginForm(iFrames[i].contentDocument, (aLevel + 1)); | 73 | result = findLoginForm(iFrames[i].contentDocument, (aLevel + 1)); |
77 | } | 74 | } |
78 | } | 75 | } |
79 | } catch (e) { | 76 | } catch (e) { |
80 | _cble = e; | 77 | _cble = e; |
81 | } | 78 | } |
82 | 79 | ||
83 | return result; | 80 | return result; |
84 | }; | 81 | }; |
85 | 82 | ||
86 | //----------------------------------------------------------------------------- | 83 | //----------------------------------------------------------------------------- |
87 | 84 | ||
88 | inputElementValues = function(anInputElement) { | 85 | inputElementValues = function(anInputElement) { |
89 | varresult; | 86 | varresult; |
90 | 87 | ||
91 | //if ((anInputElement instanceof HTMLInputElement) && (anInputElement.getAttribute('name') != null)) { | 88 | //if ((anInputElement instanceof HTMLInputElement) && (anInputElement.getAttribute('name') != null)) { |
92 | if ((anInputElement.tagName.toLowerCase() == "input") && (anInputElement.getAttribute('name') != null)) { | 89 | if ((anInputElement.tagName.toLowerCase() == "input") && (anInputElement.getAttribute('name') != null)) { |
93 | result = {}; | 90 | result = {}; |
94 | result.type = anInputElement.getAttribute('type') || "text"; | 91 | result.type = anInputElement.getAttribute('type') || "text"; |
95 | result.name = anInputElement.getAttribute('name'); | 92 | result.name = anInputElement.getAttribute('name'); |
96 | // result.value = anInputElement.getAttribute('value'); | 93 | // result.value = anInputElement.getAttribute('value'); |
97 | result.value = anInputElement.value; | 94 | result.value = anInputElement.value; |
98 | if (anInputElement.type.toLowerCase() == 'radio') { | 95 | if (anInputElement.type.toLowerCase() == 'radio') { |
99 | result.checked = anInputElement.checked; | 96 | result.checked = anInputElement.checked; |
100 | } | 97 | } |
101 | //} else if ((anInputElement instanceof HTMLSelectElement) && (anInputElement.getAttribute('name') != null)) { | 98 | //} else if ((anInputElement instanceof HTMLSelectElement) && (anInputElement.getAttribute('name') != null)) { |
102 | } else if ((anInputElement.tagName.toLowerCase() == 'select') && (anInputElement.getAttribute('name') != null)) { | 99 | } else if ((anInputElement.tagName.toLowerCase() == 'select') && (anInputElement.getAttribute('name') != null)) { |
103 | varoptions; | 100 | varoptions; |
104 | var c,i; | 101 | var c,i; |
105 | 102 | ||
106 | //console.log("input element values: %o", anInputElement); | 103 | //console.log("input element values: %o", anInputElement); |
107 | result = {}; | 104 | result = {}; |
108 | result.type = "select"; | 105 | result.type = "select"; |
109 | result.name = anInputElement.getAttribute('name'); | 106 | result.name = anInputElement.getAttribute('name'); |
110 | 107 | ||
111 | result.options = []; | 108 | result.options = []; |
112 | options = anInputElement.options; | 109 | options = anInputElement.options; |
113 | c = options.length; | 110 | c = options.length; |
114 | for (i=0; i<c; i++) { | 111 | for (i=0; i<c; i++) { |
115 | varoption; | 112 | varoption; |
116 | 113 | ||
117 | option = {}; | 114 | option = {}; |
118 | option.selected = options[i].selected; | 115 | option.selected = options[i].selected; |
119 | option.label = options[i].label || options[i].innerHTML; | 116 | option.label = options[i].label || options[i].innerHTML; |
120 | option.value = options[i].value; | 117 | option.value = options[i].value; |
diff --git a/frontend/gamma/js/Bookmarklet_2.js b/frontend/gamma/js/Bookmarklet_2.js index f9c40a9..02f7de8 100644 --- a/frontend/gamma/js/Bookmarklet_2.js +++ b/frontend/gamma/js/Bookmarklet_2.js | |||
@@ -1,120 +1,117 @@ | |||
1 | /* | 1 | /* |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | */ | 24 | */ |
28 | 25 | ||
29 | clipperz_copiedContentToClipboard = false; | 26 | clipperz_copiedContentToClipboard = false; |
30 | 27 | ||
31 | //############################################################################# | 28 | //############################################################################# |
32 | 29 | ||
33 | // Simple Set Clipboard System | 30 | // Simple Set Clipboard System |
34 | // Author: Joseph Huckaby | 31 | // Author: Joseph Huckaby |
35 | 32 | ||
36 | var ZeroClipboard = { | 33 | var ZeroClipboard = { |
37 | 34 | ||
38 | version: "1.0.4", | 35 | version: "1.0.4", |
39 | clients: {}, // registered upload clients on page, indexed by id | 36 | clients: {}, // registered upload clients on page, indexed by id |
40 | //moviePath: 'ZeroClipboard.swf', // URL to movie | 37 | //moviePath: 'ZeroClipboard.swf', // URL to movie |
41 | //moviePath: 'data:application/octet-stream;charset=utf-8;base64,Q1dTCYgGAAB4nH1V61LbRhTeXV2OJNsYczFgIEC4JCGABSRpSy+B2JDQQtWJocl0BqK1tUZqhOSRZAj/8ih9hz5AXsGZTl+ndHUhxU2nO56z3/l05uye7+wc6xr6DeUxqpcUhFCNXF9ffxjNcYhRo8U8NruO0IeRLTkm+BpEa4i8/+t3GRGUrRf5tktDe41dMC8Kpd14Q/DM911GPfHCd6zCLyzwa67Tafo0sAppuOWEHZdeyY1O4ERMbnajyPcKIYteUM+qdYPQD/It12m9jX2XBcSx5EYUON6ZwunOEXsXAY+O94HsAu8iFnjULe1mYN/je5u2WLnvAsnRNGrZ6rnfDZlxwQKxRV1XSd1ulPJ1/9KDBB13pDCiZ2ygEdsGj2WHvsXU3dc7taM3e/tHanjDZVqEV2HEzpUGa3V5dVd4Ocfz+5d1/5w6nnbgU4sF+17bFwPfjzT3k691aEDPGb92KBvNX1krmrOjqLNVrVLLb7K1ln9e3WlsVjd0/Um12XXcyPFy6ZHdyHHDkT5tt1JtF/rJerqn6Wu+F/ErsWCmPyiRjrYi54KlgZP/k2Tq9gPYSh5APZOYBVra2VicAtfyn+4qZwHt2E4rVJvszPH2HNcVD2lkS5eOxW3b9f1AtplzZkeKFdDLl/wkibodmyrUsmq241raYdye5ECpdrBf+2GQf0ncA4c3gJelHRrHjd03xs+7L9UMHh9lZN149aOSwuOfcnFO3qQmbb0V44aoSVEXlHeikXQzz1/bpzek8E50XN6o4r/KLfQpU/pMx/J/yz9cxmWhDOOyhMqD5SkJjQnKYnmpIlfuVe5XHlSWKw8rC6QoEayoWk7MFwaKg6Whx4AJEBGIBEQGQQFJBaKBlAMpD6QA0gCQIsglICNAxkGYAFIBMgkwDWQGhFkgc0DuApkHsqDmMZAVIKtA1oBUgejqOmc21E1uHwF5DOQJ4C+AfAnkKyBbQL4G8g2Qb4F8B+o2wA6QZ4DrIOyCsAfCcw0lUwR/ZvgiOP3IhwgWcDZIsCipIpJkPmskBBiBgpGiIqQJOJdYPqbiOaRiUcRIQ5hrIfT055ySiKYVzMLKkKmuDM8aAyInyW1yNCOF22Q5I8Xb5FhGSjLR8n/gnv5q+U+9t4/MojnYLtEhc3jljjGCGT4Z7bXL7bG9Udwefz9xjk9Vhl3crtjqqXwifS8hWzblJToZmylTbk+vYuMOjsECWjZnkuDZvTmcwbscGvOiKVcxXThZNGVjkQebS+17pmLcJwl8sI1v4PI2uYEPt4UbuLItxrCwoplgrMagaOZTENf2NK0NryE8gWRCVE3p6ae5j3aOFwyZb8of6RT3FYn7Y9yvmjlDx1mKGncSfVTC9Z/v6QyZE7q5rpsburmpm490U+K/12g6WXYc+nR4CKX/H31zGG1z5m9Pt5okCg==', | 38 | //moviePath: 'data:application/octet-stream;charset=utf-8;base64,Q1dTCYgGAAB4nH1V61LbRhTeXV2OJNsYczFgIEC4JCGABSRpSy+B2JDQQtWJocl0BqK1tUZqhOSRZAj/8ih9hz5AXsGZTl+ndHUhxU2nO56z3/l05uye7+wc6xr6DeUxqpcUhFCNXF9ffxjNcYhRo8U8NruO0IeRLTkm+BpEa4i8/+t3GRGUrRf5tktDe41dMC8Kpd14Q/DM911GPfHCd6zCLyzwa67Tafo0sAppuOWEHZdeyY1O4ERMbnajyPcKIYteUM+qdYPQD/It12m9jX2XBcSx5EYUON6ZwunOEXsXAY+O94HsAu8iFnjULe1mYN/je5u2WLnvAsnRNGrZ6rnfDZlxwQKxRV1XSd1ulPJ1/9KDBB13pDCiZ2ygEdsGj2WHvsXU3dc7taM3e/tHanjDZVqEV2HEzpUGa3V5dVd4Ocfz+5d1/5w6nnbgU4sF+17bFwPfjzT3k691aEDPGb92KBvNX1krmrOjqLNVrVLLb7K1ln9e3WlsVjd0/Um12XXcyPFy6ZHdyHHDkT5tt1JtF/rJerqn6Wu+F/ErsWCmPyiRjrYi54KlgZP/k2Tq9gPYSh5APZOYBVra2VicAtfyn+4qZwHt2E4rVJvszPH2HNcVD2lkS5eOxW3b9f1AtplzZkeKFdDLl/wkibodmyrUsmq241raYdye5ECpdrBf+2GQf0ncA4c3gJelHRrHjd03xs+7L9UMHh9lZN149aOSwuOfcnFO3qQmbb0V44aoSVEXlHeikXQzz1/bpzek8E50XN6o4r/KLfQpU/pMx/J/yz9cxmWhDOOyhMqD5SkJjQnKYnmpIlfuVe5XHlSWKw8rC6QoEayoWk7MFwaKg6Whx4AJEBGIBEQGQQFJBaKBlAMpD6QA0gCQIsglICNAxkGYAFIBMgkwDWQGhFkgc0DuApkHsqDmMZAVIKtA1oBUgejqOmc21E1uHwF5DOQJ4C+AfAnkKyBbQL4G8g2Qb4F8B+o2wA6QZ4DrIOyCsAfCcw0lUwR/ZvgiOP3IhwgWcDZIsCipIpJkPmskBBiBgpGiIqQJOJdYPqbiOaRiUcRIQ5hrIfT055ySiKYVzMLKkKmuDM8aAyInyW1yNCOF22Q5I8Xb5FhGSjLR8n/gnv5q+U+9t4/MojnYLtEhc3jljjGCGT4Z7bXL7bG9Udwefz9xjk9Vhl3crtjqqXwifS8hWzblJToZmylTbk+vYuMOjsECWjZnkuDZvTmcwbscGvOiKVcxXThZNGVjkQebS+17pmLcJwl8sI1v4PI2uYEPt4UbuLItxrCwoplgrMagaOZTENf2NK0NryE8gWRCVE3p6ae5j3aOFwyZb8of6RT3FYn7Y9yvmjlDx1mKGncSfVTC9Z/v6QyZE7q5rpsburmpm490U+K/12g6WXYc+nR4CKX/H31zGG1z5m9Pt5okCg==', |
42 | //moviePath: 'http://localhost:8000/tests/js/tests/Bookmarklet/ZeroClipboard.swf', | 39 | //moviePath: 'http://localhost:8000/tests/js/tests/Bookmarklet/ZeroClipboard.swf', |
43 | moviePath: 'http://www.clipperz.com/files/clipperz.com/bookmarklet/0.3.0/ZeroClipboard_1.0.4.swf', | 40 | moviePath: 'http://www.clipperz.com/files/clipperz.com/bookmarklet/0.3.0/ZeroClipboard_1.0.4.swf', |
44 | nextId: 1, // ID of next movie | 41 | nextId: 1, // ID of next movie |
45 | 42 | ||
46 | $: function(thingy) { | 43 | $: function(thingy) { |
47 | // simple DOM lookup utility function | 44 | // simple DOM lookup utility function |
48 | if (typeof(thingy) == 'string') thingy = document.getElementById(thingy); | 45 | if (typeof(thingy) == 'string') thingy = document.getElementById(thingy); |
49 | if (!thingy.addClass) { | 46 | if (!thingy.addClass) { |
50 | // extend element with a few useful methods | 47 | // extend element with a few useful methods |
51 | thingy.hide = function() { this.style.display = 'none'; }; | 48 | thingy.hide = function() { this.style.display = 'none'; }; |
52 | thingy.show = function() { this.style.display = ''; }; | 49 | thingy.show = function() { this.style.display = ''; }; |
53 | thingy.addClass = function(name) { this.removeClass(name); this.className += ' ' + name; }; | 50 | thingy.addClass = function(name) { this.removeClass(name); this.className += ' ' + name; }; |
54 | thingy.removeClass = function(name) { | 51 | thingy.removeClass = function(name) { |
55 | this.className = this.className.replace( new RegExp("\\s*" + name + "\\s*"), " ").replace(/^\s+/, '').replace(/\s+$/, ''); | 52 | this.className = this.className.replace( new RegExp("\\s*" + name + "\\s*"), " ").replace(/^\s+/, '').replace(/\s+$/, ''); |
56 | }; | 53 | }; |
57 | thingy.hasClass = function(name) { | 54 | thingy.hasClass = function(name) { |
58 | return !!this.className.match( new RegExp("\\s*" + name + "\\s*") ); | 55 | return !!this.className.match( new RegExp("\\s*" + name + "\\s*") ); |
59 | } | 56 | } |
60 | } | 57 | } |
61 | return thingy; | 58 | return thingy; |
62 | }, | 59 | }, |
63 | 60 | ||
64 | setMoviePath: function(path) { | 61 | setMoviePath: function(path) { |
65 | // set path to ZeroClipboard.swf | 62 | // set path to ZeroClipboard.swf |
66 | this.moviePath = path; | 63 | this.moviePath = path; |
67 | }, | 64 | }, |
68 | 65 | ||
69 | dispatch: function(id, eventName, args) { | 66 | dispatch: function(id, eventName, args) { |
70 | // receive event from flash movie, send to client | 67 | // receive event from flash movie, send to client |
71 | var client = this.clients[id]; | 68 | var client = this.clients[id]; |
72 | if (client) { | 69 | if (client) { |
73 | client.receiveEvent(eventName, args); | 70 | client.receiveEvent(eventName, args); |
74 | } | 71 | } |
75 | }, | 72 | }, |
76 | 73 | ||
77 | register: function(id, client) { | 74 | register: function(id, client) { |
78 | // register new client to receive events | 75 | // register new client to receive events |
79 | this.clients[id] = client; | 76 | this.clients[id] = client; |
80 | }, | 77 | }, |
81 | 78 | ||
82 | getDOMObjectPosition: function(obj) { | 79 | getDOMObjectPosition: function(obj) { |
83 | // get absolute coordinates for dom element | 80 | // get absolute coordinates for dom element |
84 | var info = { | 81 | var info = { |
85 | left: 0, | 82 | left: 0, |
86 | top: 0, | 83 | top: 0, |
87 | width: obj.width ? obj.width : obj.offsetWidth, | 84 | width: obj.width ? obj.width : obj.offsetWidth, |
88 | height: obj.height ? obj.height : obj.offsetHeight | 85 | height: obj.height ? obj.height : obj.offsetHeight |
89 | }; | 86 | }; |
90 | 87 | ||
91 | while (obj) { | 88 | while (obj) { |
92 | info.left += obj.offsetLeft; | 89 | info.left += obj.offsetLeft; |
93 | info.top += obj.offsetTop; | 90 | info.top += obj.offsetTop; |
94 | obj = obj.offsetParent; | 91 | obj = obj.offsetParent; |
95 | } | 92 | } |
96 | 93 | ||
97 | return info; | 94 | return info; |
98 | }, | 95 | }, |
99 | 96 | ||
100 | Client: function(elem) { | 97 | Client: function(elem) { |
101 | // constructor for new simple upload client | 98 | // constructor for new simple upload client |
102 | this.handlers = {}; | 99 | this.handlers = {}; |
103 | 100 | ||
104 | // unique ID | 101 | // unique ID |
105 | this.id = ZeroClipboard.nextId++; | 102 | this.id = ZeroClipboard.nextId++; |
106 | this.movieId = 'ZeroClipboardMovie_' + this.id; | 103 | this.movieId = 'ZeroClipboardMovie_' + this.id; |
107 | 104 | ||
108 | // register client with singleton to receive flash events | 105 | // register client with singleton to receive flash events |
109 | ZeroClipboard.register(this.id, this); | 106 | ZeroClipboard.register(this.id, this); |
110 | 107 | ||
111 | // create movie | 108 | // create movie |
112 | if (elem) this.glue(elem); | 109 | if (elem) this.glue(elem); |
113 | } | 110 | } |
114 | }; | 111 | }; |
115 | 112 | ||
116 | ZeroClipboard.Client.prototype = { | 113 | ZeroClipboard.Client.prototype = { |
117 | 114 | ||
118 | id: 0, // unique ID for us | 115 | id: 0, // unique ID for us |
119 | ready: false, // whether movie is ready to receive events or not | 116 | ready: false, // whether movie is ready to receive events or not |
120 | movie: null, // reference to movie object | 117 | movie: null, // reference to movie object |
diff --git a/frontend/gamma/js/Clipperz/Async.js b/frontend/gamma/js/Clipperz/Async.js index e80c3a2..7c9d783 100644 --- a/frontend/gamma/js/Clipperz/Async.js +++ b/frontend/gamma/js/Clipperz/Async.js | |||
@@ -1,120 +1,117 @@ | |||
1 | /* | 1 | /* |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | */ | 24 | */ |
28 | 25 | ||
29 | //Clipperz.Async = MochiKit.Async; | 26 | //Clipperz.Async = MochiKit.Async; |
30 | 27 | ||
31 | 28 | ||
32 | if (typeof(Clipperz) == 'undefined') { Clipperz = {}; } | 29 | if (typeof(Clipperz) == 'undefined') { Clipperz = {}; } |
33 | if (typeof(Clipperz.Async) == 'undefined') { Clipperz.Async = {}; } | 30 | if (typeof(Clipperz.Async) == 'undefined') { Clipperz.Async = {}; } |
34 | 31 | ||
35 | Clipperz.Async.VERSION = "0.1"; | 32 | Clipperz.Async.VERSION = "0.1"; |
36 | Clipperz.Async.NAME = "Clipperz.Async"; | 33 | Clipperz.Async.NAME = "Clipperz.Async"; |
37 | 34 | ||
38 | Clipperz.Async.Deferred = function(aName, args) { | 35 | Clipperz.Async.Deferred = function(aName, args) { |
39 | args = args || {}; | 36 | args = args || {}; |
40 | 37 | ||
41 | Clipperz.Async.Deferred.superclass.constructor.call(this, args.canceller); | 38 | Clipperz.Async.Deferred.superclass.constructor.call(this, args.canceller); |
42 | 39 | ||
43 | this._args = args; | 40 | this._args = args; |
44 | this._name = aName || "Anonymous deferred"; | 41 | this._name = aName || "Anonymous deferred"; |
45 | this._count = 0; | 42 | this._count = 0; |
46 | this._shouldTrace = ((CLIPPERZ_DEFERRED_TRACING_ENABLED === true) || (args.trace === true)); | 43 | this._shouldTrace = ((CLIPPERZ_DEFERRED_TRACING_ENABLED === true) || (args.trace === true)); |
47 | this._vars = null; | 44 | this._vars = null; |
48 | 45 | ||
49 | return this; | 46 | return this; |
50 | } | 47 | } |
51 | 48 | ||
52 | //============================================================================= | 49 | //============================================================================= |
53 | 50 | ||
54 | Clipperz.Base.extend(Clipperz.Async.Deferred, MochiKit.Async.Deferred, { | 51 | Clipperz.Base.extend(Clipperz.Async.Deferred, MochiKit.Async.Deferred, { |
55 | 52 | ||
56 | 'name': function () { | 53 | 'name': function () { |
57 | return this._name; | 54 | return this._name; |
58 | }, | 55 | }, |
59 | 56 | ||
60 | 'args': function () { | 57 | 'args': function () { |
61 | return this._args; | 58 | return this._args; |
62 | }, | 59 | }, |
63 | 60 | ||
64 | //----------------------------------------------------------------------------- | 61 | //----------------------------------------------------------------------------- |
65 | 62 | ||
66 | 'callback': function (aValue) { | 63 | 'callback': function (aValue) { |
67 | if (this._shouldTrace) { | 64 | if (this._shouldTrace) { |
68 | Clipperz.log("CALLBACK " + this._name, aValue); | 65 | Clipperz.log("CALLBACK " + this._name, aValue); |
69 | } | 66 | } |
70 | 67 | ||
71 | if (this.chained == false) { | 68 | if (this.chained == false) { |
72 | var message; | 69 | var message; |
73 | 70 | ||
74 | message = "ERROR [" + this._name + "]"; | 71 | message = "ERROR [" + this._name + "]"; |
75 | this.addErrback(function(aResult) { | 72 | this.addErrback(function(aResult) { |
76 | if (! (aResult instanceof MochiKit.Async.CancelledError)) { | 73 | if (! (aResult instanceof MochiKit.Async.CancelledError)) { |
77 | Clipperz.log(message, aResult); | 74 | Clipperz.log(message, aResult); |
78 | } | 75 | } |
79 | return aResult; | 76 | return aResult; |
80 | }); | 77 | }); |
81 | 78 | ||
82 | if (this._shouldTrace) { | 79 | if (this._shouldTrace) { |
83 | var resultMessage; | 80 | var resultMessage; |
84 | 81 | ||
85 | resultMessage = "RESULT " + this._name + " <=="; | 82 | resultMessage = "RESULT " + this._name + " <=="; |
86 | // this.addCallback(function(aResult) { | 83 | // this.addCallback(function(aResult) { |
87 | Clipperz.Async.Deferred.superclass.addCallback.call(this, function(aResult) { | 84 | Clipperz.Async.Deferred.superclass.addCallback.call(this, function(aResult) { |
88 | Clipperz.log(resultMessage, aResult); | 85 | Clipperz.log(resultMessage, aResult); |
89 | 86 | ||
90 | return aResult; | 87 | return aResult; |
91 | }); | 88 | }); |
92 | } | 89 | } |
93 | } | 90 | } |
94 | 91 | ||
95 | if (CLIPPERZ_DEFERRED_CALL_LOGGING_ENABLED === true) { | 92 | if (CLIPPERZ_DEFERRED_CALL_LOGGING_ENABLED === true) { |
96 | Clipperz.log("callback " + this._name, this); | 93 | Clipperz.log("callback " + this._name, this); |
97 | } | 94 | } |
98 | 95 | ||
99 | return Clipperz.Async.Deferred.superclass.callback.apply(this, arguments); | 96 | return Clipperz.Async.Deferred.superclass.callback.apply(this, arguments); |
100 | }, | 97 | }, |
101 | 98 | ||
102 | //----------------------------------------------------------------------------- | 99 | //----------------------------------------------------------------------------- |
103 | 100 | ||
104 | 'addCallback': function () { | 101 | 'addCallback': function () { |
105 | var message; | 102 | var message; |
106 | 103 | ||
107 | if (this._shouldTrace) { | 104 | if (this._shouldTrace) { |
108 | this._count ++; | 105 | this._count ++; |
109 | message = "[" + this._count + "] " + this._name + " "; | 106 | message = "[" + this._count + "] " + this._name + " "; |
110 | // this.addBoth(function(aResult) {Clipperz.log(message + "-->", aResult); return aResult;}); | 107 | // this.addBoth(function(aResult) {Clipperz.log(message + "-->", aResult); return aResult;}); |
111 | this.addCallbacks( | 108 | this.addCallbacks( |
112 | function(aResult) {Clipperz.log("-OK- " + message + "-->"/*, aResult*/); return aResult;}, | 109 | function(aResult) {Clipperz.log("-OK- " + message + "-->"/*, aResult*/); return aResult;}, |
113 | function(aResult) {Clipperz.log("FAIL " + message + "-->"/*, aResult*/); return aResult;} | 110 | function(aResult) {Clipperz.log("FAIL " + message + "-->"/*, aResult*/); return aResult;} |
114 | ); | 111 | ); |
115 | } | 112 | } |
116 | 113 | ||
117 | Clipperz.Async.Deferred.superclass.addCallback.apply(this, arguments); | 114 | Clipperz.Async.Deferred.superclass.addCallback.apply(this, arguments); |
118 | 115 | ||
119 | if (this._shouldTrace) { | 116 | if (this._shouldTrace) { |
120 | // this.addBoth(function(aResult) {Clipperz.log(message + "<--", aResult); return aResult;}); | 117 | // this.addBoth(function(aResult) {Clipperz.log(message + "<--", aResult); return aResult;}); |
diff --git a/frontend/gamma/js/Clipperz/Base.js b/frontend/gamma/js/Clipperz/Base.js index 7f321ef..76b2c3f 100644 --- a/frontend/gamma/js/Clipperz/Base.js +++ b/frontend/gamma/js/Clipperz/Base.js | |||
@@ -1,120 +1,117 @@ | |||
1 | /* | 1 | /* |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | */ | 24 | */ |
28 | 25 | ||
29 | if (typeof(Clipperz) == 'undefined') { Clipperz = {}; } | 26 | if (typeof(Clipperz) == 'undefined') { Clipperz = {}; } |
30 | if (typeof(Clipperz.Base) == 'undefined') { Clipperz.Base = {}; } | 27 | if (typeof(Clipperz.Base) == 'undefined') { Clipperz.Base = {}; } |
31 | 28 | ||
32 | Clipperz.Base.VERSION = "0.2"; | 29 | Clipperz.Base.VERSION = "0.2"; |
33 | Clipperz.Base.NAME = "Clipperz.Base"; | 30 | Clipperz.Base.NAME = "Clipperz.Base"; |
34 | 31 | ||
35 | MochiKit.Base.update(Clipperz.Base, { | 32 | MochiKit.Base.update(Clipperz.Base, { |
36 | 33 | ||
37 | //------------------------------------------------------------------------- | 34 | //------------------------------------------------------------------------- |
38 | 35 | ||
39 | '__repr__': function () { | 36 | '__repr__': function () { |
40 | return "[" + this.NAME + " " + this.VERSION + "]"; | 37 | return "[" + this.NAME + " " + this.VERSION + "]"; |
41 | }, | 38 | }, |
42 | 39 | ||
43 | //------------------------------------------------------------------------- | 40 | //------------------------------------------------------------------------- |
44 | 41 | ||
45 | 'toString': function () { | 42 | 'toString': function () { |
46 | return this.__repr__(); | 43 | return this.__repr__(); |
47 | }, | 44 | }, |
48 | 45 | ||
49 | //------------------------------------------------------------------------- | 46 | //------------------------------------------------------------------------- |
50 | 47 | ||
51 | 'itemgetter': function (aKeyPath) { | 48 | 'itemgetter': function (aKeyPath) { |
52 | // return MochiKit.Base.compose.apply(null, [MochiKit.Base.itemgetter('key3')]); | 49 | // return MochiKit.Base.compose.apply(null, [MochiKit.Base.itemgetter('key3')]); |
53 | return MochiKit.Base.compose.apply(null, | 50 | return MochiKit.Base.compose.apply(null, |
54 | MochiKit.Base.map( | 51 | MochiKit.Base.map( |
55 | MochiKit.Base.itemgetter, | 52 | MochiKit.Base.itemgetter, |
56 | MochiKit.Iter.reversed( | 53 | MochiKit.Iter.reversed( |
57 | aKeyPath.split('.') | 54 | aKeyPath.split('.') |
58 | ) | 55 | ) |
59 | ) | 56 | ) |
60 | ); | 57 | ); |
61 | }, | 58 | }, |
62 | 59 | ||
63 | //------------------------------------------------------------------------- | 60 | //------------------------------------------------------------------------- |
64 | 61 | ||
65 | 'isUrl': function (aValue) { | 62 | 'isUrl': function (aValue) { |
66 | return (MochiKit.Base.urlRegExp.test(aValue)); | 63 | return (MochiKit.Base.urlRegExp.test(aValue)); |
67 | }, | 64 | }, |
68 | 65 | ||
69 | 'isEmail': function (aValue) { | 66 | 'isEmail': function (aValue) { |
70 | return (MochiKit.Base.emailRegExp.test(aValue)); | 67 | return (MochiKit.Base.emailRegExp.test(aValue)); |
71 | }, | 68 | }, |
72 | 69 | ||
73 | //------------------------------------------------------------------------- | 70 | //------------------------------------------------------------------------- |
74 | 71 | ||
75 | 'caseInsensitiveCompare': function (a, b) { | 72 | 'caseInsensitiveCompare': function (a, b) { |
76 | return MochiKit.Base.compare(a.toLowerCase(), b.toLowerCase()); | 73 | return MochiKit.Base.compare(a.toLowerCase(), b.toLowerCase()); |
77 | }, | 74 | }, |
78 | 75 | ||
79 | 'reverseComparator': function (aComparator) { | 76 | 'reverseComparator': function (aComparator) { |
80 | return MochiKit.Base.compose(function(aResult) { return -aResult; }, aComparator); | 77 | return MochiKit.Base.compose(function(aResult) { return -aResult; }, aComparator); |
81 | }, | 78 | }, |
82 | 79 | ||
83 | //------------------------------------------------------------------------- | 80 | //------------------------------------------------------------------------- |
84 | /* | 81 | /* |
85 | 'dependsOn': function(module, deps) { | 82 | 'dependsOn': function(module, deps) { |
86 | if (!(module in Clipperz)) { | 83 | if (!(module in Clipperz)) { |
87 | MochiKit[module] = {}; | 84 | MochiKit[module] = {}; |
88 | } | 85 | } |
89 | 86 | ||
90 | if (typeof(dojo) != 'undefined') { | 87 | if (typeof(dojo) != 'undefined') { |
91 | dojo.provide('Clipperz.' + module); | 88 | dojo.provide('Clipperz.' + module); |
92 | } | 89 | } |
93 | for (var i = 0; i < deps.length; i++) { | 90 | for (var i = 0; i < deps.length; i++) { |
94 | if (typeof(dojo) != 'undefined') { | 91 | if (typeof(dojo) != 'undefined') { |
95 | dojo.require('Clipperz.' + deps[i]); | 92 | dojo.require('Clipperz.' + deps[i]); |
96 | } | 93 | } |
97 | if (typeof(JSAN) != 'undefined') { | 94 | if (typeof(JSAN) != 'undefined') { |
98 | JSAN.use('Clipperz.' + deps[i], []); | 95 | JSAN.use('Clipperz.' + deps[i], []); |
99 | } | 96 | } |
100 | if (!(deps[i] in Clipperz)) { | 97 | if (!(deps[i] in Clipperz)) { |
101 | throw 'Clipperz.' + module + ' depends on Clipperz.' + deps[i] + '!' | 98 | throw 'Clipperz.' + module + ' depends on Clipperz.' + deps[i] + '!' |
102 | } | 99 | } |
103 | } | 100 | } |
104 | }, | 101 | }, |
105 | */ | 102 | */ |
106 | //------------------------------------------------------------------------- | 103 | //------------------------------------------------------------------------- |
107 | 104 | ||
108 | 'trim': function (aValue) { | 105 | 'trim': function (aValue) { |
109 | return aValue.replace(/^\s+|\s+$/g, ""); | 106 | return aValue.replace(/^\s+|\s+$/g, ""); |
110 | }, | 107 | }, |
111 | 108 | ||
112 | //------------------------------------------------------------------------- | 109 | //------------------------------------------------------------------------- |
113 | 110 | ||
114 | 'stringToByteArray': function (aValue) { | 111 | 'stringToByteArray': function (aValue) { |
115 | varresult; | 112 | varresult; |
116 | var i, c; | 113 | var i, c; |
117 | 114 | ||
118 | result = []; | 115 | result = []; |
119 | 116 | ||
120 | c = aValue.length; | 117 | c = aValue.length; |
diff --git a/frontend/gamma/js/Clipperz/ByteArray.js b/frontend/gamma/js/Clipperz/ByteArray.js index 86136c8..ae586e7 100644 --- a/frontend/gamma/js/Clipperz/ByteArray.js +++ b/frontend/gamma/js/Clipperz/ByteArray.js | |||
@@ -1,120 +1,117 @@ | |||
1 | /* | 1 | /* |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | */ | 24 | */ |
28 | 25 | ||
29 | if (typeof(Clipperz) == 'undefined') { Clipperz = {}; } | 26 | if (typeof(Clipperz) == 'undefined') { Clipperz = {}; } |
30 | 27 | ||
31 | //============================================================================= | 28 | //============================================================================= |
32 | 29 | ||
33 | Clipperz.ByteArray_abstract = function(args) { | 30 | Clipperz.ByteArray_abstract = function(args) { |
34 | return this; | 31 | return this; |
35 | } | 32 | } |
36 | 33 | ||
37 | Clipperz.ByteArray_abstract.prototype = MochiKit.Base.update(null, { | 34 | Clipperz.ByteArray_abstract.prototype = MochiKit.Base.update(null, { |
38 | 35 | ||
39 | //------------------------------------------------------------------------- | 36 | //------------------------------------------------------------------------- |
40 | 37 | ||
41 | 'toString': function() { | 38 | 'toString': function() { |
42 | return "Clipperz.ByteArray_abstract"; | 39 | return "Clipperz.ByteArray_abstract"; |
43 | }, | 40 | }, |
44 | 41 | ||
45 | //------------------------------------------------------------------------- | 42 | //------------------------------------------------------------------------- |
46 | 43 | ||
47 | 'equals': function(aValue) { | 44 | 'equals': function(aValue) { |
48 | return (this.compare(aValue) == 0); | 45 | return (this.compare(aValue) == 0); |
49 | }, | 46 | }, |
50 | 47 | ||
51 | //------------------------------------------------------------------------- | 48 | //------------------------------------------------------------------------- |
52 | 49 | ||
53 | 'compare': function(aValue) { | 50 | 'compare': function(aValue) { |
54 | var result; | 51 | var result; |
55 | var i; | 52 | var i; |
56 | 53 | ||
57 | result = MochiKit.Base.compare(this.length(), aValue.length()); | 54 | result = MochiKit.Base.compare(this.length(), aValue.length()); |
58 | i = this.length(); | 55 | i = this.length(); |
59 | 56 | ||
60 | while ((result == 0) && (i>0)) { | 57 | while ((result == 0) && (i>0)) { |
61 | i--; | 58 | i--; |
62 | result = MochiKit.Base.compare(this.byteAtIndex(i), aValue.byteAtIndex(i)); | 59 | result = MochiKit.Base.compare(this.byteAtIndex(i), aValue.byteAtIndex(i)); |
63 | } | 60 | } |
64 | 61 | ||
65 | return result; | 62 | return result; |
66 | }, | 63 | }, |
67 | 64 | ||
68 | //------------------------------------------------------------------------- | 65 | //------------------------------------------------------------------------- |
69 | 66 | ||
70 | 'clone': function() { | 67 | 'clone': function() { |
71 | throw Clipperz.Base.exception.AbstractMethod; | 68 | throw Clipperz.Base.exception.AbstractMethod; |
72 | }, | 69 | }, |
73 | 70 | ||
74 | //------------------------------------------------------------------------- | 71 | //------------------------------------------------------------------------- |
75 | 72 | ||
76 | 'newInstance': function() { | 73 | 'newInstance': function() { |
77 | throw Clipperz.Base.exception.AbstractMethod; | 74 | throw Clipperz.Base.exception.AbstractMethod; |
78 | }, | 75 | }, |
79 | 76 | ||
80 | //------------------------------------------------------------------------- | 77 | //------------------------------------------------------------------------- |
81 | 78 | ||
82 | 'reset': function() { | 79 | 'reset': function() { |
83 | throw Clipperz.Base.exception.AbstractMethod; | 80 | throw Clipperz.Base.exception.AbstractMethod; |
84 | }, | 81 | }, |
85 | 82 | ||
86 | //------------------------------------------------------------------------- | 83 | //------------------------------------------------------------------------- |
87 | 84 | ||
88 | 'length': function() { | 85 | 'length': function() { |
89 | throw Clipperz.Base.exception.AbstractMethod; | 86 | throw Clipperz.Base.exception.AbstractMethod; |
90 | }, | 87 | }, |
91 | 88 | ||
92 | //------------------------------------------------------------------------- | 89 | //------------------------------------------------------------------------- |
93 | 90 | ||
94 | 'checkByteValue': function(aValue) { | 91 | 'checkByteValue': function(aValue) { |
95 | //Clipperz.log("aValue", aValue.toString(16)); | 92 | //Clipperz.log("aValue", aValue.toString(16)); |
96 | //Clipperz.log("(aValue & 0xff)", (aValue & 0xff).toString(16)); | 93 | //Clipperz.log("(aValue & 0xff)", (aValue & 0xff).toString(16)); |
97 | 94 | ||
98 | if ((aValue & 0xff) != aValue) { | 95 | if ((aValue & 0xff) != aValue) { |
99 | MochiKit.Logging.logError("Clipperz.ByteArray.appendByte: the provided value (0x" + aValue.toString(16) + ") is not a byte value."); | 96 | MochiKit.Logging.logError("Clipperz.ByteArray.appendByte: the provided value (0x" + aValue.toString(16) + ") is not a byte value."); |
100 | throw Clipperz.ByteArray.exception.InvalidValue; | 97 | throw Clipperz.ByteArray.exception.InvalidValue; |
101 | } | 98 | } |
102 | }, | 99 | }, |
103 | 100 | ||
104 | //------------------------------------------------------------------------- | 101 | //------------------------------------------------------------------------- |
105 | 102 | ||
106 | 'xorMergeWithBlock': function(aBlock, anAllignment, paddingMode) { | 103 | 'xorMergeWithBlock': function(aBlock, anAllignment, paddingMode) { |
107 | var result; | 104 | var result; |
108 | var a, b; | 105 | var a, b; |
109 | var aLength; | 106 | var aLength; |
110 | var bLength; | 107 | var bLength; |
111 | var i, c; | 108 | var i, c; |
112 | 109 | ||
113 | if (this.length() > aBlock.length()) { | 110 | if (this.length() > aBlock.length()) { |
114 | a = this; | 111 | a = this; |
115 | b = aBlock; | 112 | b = aBlock; |
116 | } else { | 113 | } else { |
117 | a = aBlock; | 114 | a = aBlock; |
118 | b = this; | 115 | b = this; |
119 | } | 116 | } |
120 | 117 | ||
diff --git a/frontend/gamma/js/Clipperz/CSVProcessor.js b/frontend/gamma/js/Clipperz/CSVProcessor.js index d481ba2..0b18731 100644 --- a/frontend/gamma/js/Clipperz/CSVProcessor.js +++ b/frontend/gamma/js/Clipperz/CSVProcessor.js | |||
@@ -1,120 +1,117 @@ | |||
1 | /* | 1 | /* |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | */ | 24 | */ |
28 | 25 | ||
29 | if (typeof(Clipperz) == 'undefined') { Clipperz = {}; } | 26 | if (typeof(Clipperz) == 'undefined') { Clipperz = {}; } |
30 | 27 | ||
31 | 28 | ||
32 | Clipperz.CSVProcessor = function(args) { | 29 | Clipperz.CSVProcessor = function(args) { |
33 | args = args || {}; | 30 | args = args || {}; |
34 | 31 | ||
35 | // this._status = undefined; | 32 | // this._status = undefined; |
36 | // this._error_input= undefined; | 33 | // this._error_input= undefined; |
37 | // this._string = undefined; | 34 | // this._string = undefined; |
38 | // this._fields = undefined; | 35 | // this._fields = undefined; |
39 | 36 | ||
40 | this._quoteChar = args['quoteChar'] ||"\042"; | 37 | this._quoteChar = args['quoteChar'] ||"\042"; |
41 | this._eol = args['eol'] ||""; | 38 | this._eol = args['eol'] ||""; |
42 | this._escapeChar = args['escapeChar'] ||"\042"; | 39 | this._escapeChar = args['escapeChar'] ||"\042"; |
43 | this._separatorChar = args['separatorChar'] ||","; | 40 | this._separatorChar = args['separatorChar'] ||","; |
44 | this._binary = args['binary'] ||false; | 41 | this._binary = args['binary'] ||false; |
45 | this._alwaysQuote = args['alwaysQuote'] ||false; | 42 | this._alwaysQuote = args['alwaysQuote'] ||false; |
46 | 43 | ||
47 | return this; | 44 | return this; |
48 | } | 45 | } |
49 | 46 | ||
50 | //============================================================================= | 47 | //============================================================================= |
51 | 48 | ||
52 | Clipperz.CSVProcessor.prototype = MochiKit.Base.update(null, { | 49 | Clipperz.CSVProcessor.prototype = MochiKit.Base.update(null, { |
53 | 50 | ||
54 | //------------------------------------------------------------------------- | 51 | //------------------------------------------------------------------------- |
55 | 52 | ||
56 | 'quoteChar': function() { | 53 | 'quoteChar': function() { |
57 | return this._quoteChar; | 54 | return this._quoteChar; |
58 | }, | 55 | }, |
59 | 56 | ||
60 | //------------------------------------------------------------------------- | 57 | //------------------------------------------------------------------------- |
61 | 58 | ||
62 | 'eol': function() { | 59 | 'eol': function() { |
63 | return this._eol; | 60 | return this._eol; |
64 | }, | 61 | }, |
65 | 62 | ||
66 | //------------------------------------------------------------------------- | 63 | //------------------------------------------------------------------------- |
67 | 64 | ||
68 | 'escapeChar': function() { | 65 | 'escapeChar': function() { |
69 | return this._escapeChar; | 66 | return this._escapeChar; |
70 | }, | 67 | }, |
71 | 68 | ||
72 | //------------------------------------------------------------------------- | 69 | //------------------------------------------------------------------------- |
73 | 70 | ||
74 | 'separatorChar': function() { | 71 | 'separatorChar': function() { |
75 | return this._separatorChar; | 72 | return this._separatorChar; |
76 | }, | 73 | }, |
77 | 74 | ||
78 | 'setSeparatorChar': function(aValue) { | 75 | 'setSeparatorChar': function(aValue) { |
79 | this._separatorChar = aValue; | 76 | this._separatorChar = aValue; |
80 | }, | 77 | }, |
81 | 78 | ||
82 | //------------------------------------------------------------------------- | 79 | //------------------------------------------------------------------------- |
83 | 80 | ||
84 | 'binary': function() { | 81 | 'binary': function() { |
85 | return this._binary; | 82 | return this._binary; |
86 | }, | 83 | }, |
87 | 84 | ||
88 | //------------------------------------------------------------------------- | 85 | //------------------------------------------------------------------------- |
89 | 86 | ||
90 | 'alwaysQuote': function() { | 87 | 'alwaysQuote': function() { |
91 | return this._alwaysQuote; | 88 | return this._alwaysQuote; |
92 | }, | 89 | }, |
93 | 90 | ||
94 | //------------------------------------------------------------------------- | 91 | //------------------------------------------------------------------------- |
95 | /* | 92 | /* |
96 | 'parse': function(aValue) { | 93 | 'parse': function(aValue) { |
97 | var result; | 94 | var result; |
98 | var lines; | 95 | var lines; |
99 | var parameter; | 96 | var parameter; |
100 | 97 | ||
101 | //MochiKit.Logging.logDebug(">>> CSVProcessor.parse"); | 98 | //MochiKit.Logging.logDebug(">>> CSVProcessor.parse"); |
102 | result = []; | 99 | result = []; |
103 | 100 | ||
104 | lines = aValue.replace(/\r?\n/g, "\n").replace(/^\n* /g, "").replace(/\n$/g, "");; | 101 | lines = aValue.replace(/\r?\n/g, "\n").replace(/^\n* /g, "").replace(/\n$/g, "");; |
105 | parameter = { | 102 | parameter = { |
106 | line: lines | 103 | line: lines |
107 | } | 104 | } |
108 | 105 | ||
109 | do { | 106 | do { |
110 | var fields; | 107 | var fields; |
111 | 108 | ||
112 | fields = this.parseLine(parameter); | 109 | fields = this.parseLine(parameter); |
113 | 110 | ||
114 | if (fields != null) { | 111 | if (fields != null) { |
115 | result.push(fields); | 112 | result.push(fields); |
116 | } | 113 | } |
117 | 114 | ||
118 | parameter.line = parameter.line.replace(/^\n* /g, "").replace(/\n$/g, ""); | 115 | parameter.line = parameter.line.replace(/^\n* /g, "").replace(/\n$/g, ""); |
119 | 116 | ||
120 | //MochiKit.Logging.logDebug("line: '" + parameter.line + "'"); | 117 | //MochiKit.Logging.logDebug("line: '" + parameter.line + "'"); |
diff --git a/frontend/gamma/js/Clipperz/Crypto/AES.js b/frontend/gamma/js/Clipperz/Crypto/AES.js index 36fc731..c811f1c 100644 --- a/frontend/gamma/js/Clipperz/Crypto/AES.js +++ b/frontend/gamma/js/Clipperz/Crypto/AES.js | |||
@@ -1,120 +1,117 @@ | |||
1 | /* | 1 | /* |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | */ | 24 | */ |
28 | 25 | ||
29 | try { if (typeof(Clipperz.ByteArray) == 'undefined') { throw ""; }} catch (e) { | 26 | try { if (typeof(Clipperz.ByteArray) == 'undefined') { throw ""; }} catch (e) { |
30 | throw "Clipperz.Crypto.AES depends on Clipperz.ByteArray!"; | 27 | throw "Clipperz.Crypto.AES depends on Clipperz.ByteArray!"; |
31 | } | 28 | } |
32 | 29 | ||
33 | //Dependency commented to avoid a circular reference | 30 | //Dependency commented to avoid a circular reference |
34 | //try { if (typeof(Clipperz.Crypto.PRNG) == 'undefined') { throw ""; }} catch (e) { | 31 | //try { if (typeof(Clipperz.Crypto.PRNG) == 'undefined') { throw ""; }} catch (e) { |
35 | //throw "Clipperz.Crypto.AES depends on Clipperz.Crypto.PRNG!"; | 32 | //throw "Clipperz.Crypto.AES depends on Clipperz.Crypto.PRNG!"; |
36 | //} | 33 | //} |
37 | 34 | ||
38 | if (typeof(Clipperz.Crypto.AES) == 'undefined') { Clipperz.Crypto.AES = {}; } | 35 | if (typeof(Clipperz.Crypto.AES) == 'undefined') { Clipperz.Crypto.AES = {}; } |
39 | 36 | ||
40 | //############################################################################# | 37 | //############################################################################# |
41 | 38 | ||
42 | Clipperz.Crypto.AES.DeferredExecutionContext = function(args) { | 39 | Clipperz.Crypto.AES.DeferredExecutionContext = function(args) { |
43 | args = args || {}; | 40 | args = args || {}; |
44 | 41 | ||
45 | this._key = args.key; | 42 | this._key = args.key; |
46 | this._message = args.message; | 43 | this._message = args.message; |
47 | this._result = args.message.clone(); | 44 | this._result = args.message.clone(); |
48 | this._nonce = args.nonce; | 45 | this._nonce = args.nonce; |
49 | this._messageLength = this._message.length(); | 46 | this._messageLength = this._message.length(); |
50 | 47 | ||
51 | this._messageArray = this._message.arrayValues(); | 48 | this._messageArray = this._message.arrayValues(); |
52 | this._resultArray = this._result.arrayValues(); | 49 | this._resultArray = this._result.arrayValues(); |
53 | this._nonceArray = this._nonce.arrayValues(); | 50 | this._nonceArray = this._nonce.arrayValues(); |
54 | 51 | ||
55 | this._executionStep = 0; | 52 | this._executionStep = 0; |
56 | 53 | ||
57 | // this._elaborationChunkSize = 1024; // 4096; // 16384; //4096; | 54 | // this._elaborationChunkSize = 1024; // 4096; // 16384; //4096; |
58 | this._elaborationChunks = 10; | 55 | this._elaborationChunks = 10; |
59 | this._pauseTime = 0.02; // 0.02 //0.2; | 56 | this._pauseTime = 0.02; // 0.02 //0.2; |
60 | 57 | ||
61 | return this; | 58 | return this; |
62 | } | 59 | } |
63 | 60 | ||
64 | Clipperz.Crypto.AES.DeferredExecutionContext.prototype = MochiKit.Base.update(null, { | 61 | Clipperz.Crypto.AES.DeferredExecutionContext.prototype = MochiKit.Base.update(null, { |
65 | 62 | ||
66 | 'key': function() { | 63 | 'key': function() { |
67 | return this._key; | 64 | return this._key; |
68 | }, | 65 | }, |
69 | 66 | ||
70 | 'message': function() { | 67 | 'message': function() { |
71 | return this._message; | 68 | return this._message; |
72 | }, | 69 | }, |
73 | 70 | ||
74 | 'messageLength': function() { | 71 | 'messageLength': function() { |
75 | return this._messageLength; | 72 | return this._messageLength; |
76 | }, | 73 | }, |
77 | 74 | ||
78 | 'result': function() { | 75 | 'result': function() { |
79 | return new Clipperz.ByteArray(this.resultArray()); | 76 | return new Clipperz.ByteArray(this.resultArray()); |
80 | }, | 77 | }, |
81 | 78 | ||
82 | 'nonce': function() { | 79 | 'nonce': function() { |
83 | return this._nonce; | 80 | return this._nonce; |
84 | }, | 81 | }, |
85 | 82 | ||
86 | 'messageArray': function() { | 83 | 'messageArray': function() { |
87 | return this._messageArray; | 84 | return this._messageArray; |
88 | }, | 85 | }, |
89 | 86 | ||
90 | 'resultArray': function() { | 87 | 'resultArray': function() { |
91 | return this._resultArray; | 88 | return this._resultArray; |
92 | }, | 89 | }, |
93 | 90 | ||
94 | 'nonceArray': function() { | 91 | 'nonceArray': function() { |
95 | return this._nonceArray; | 92 | return this._nonceArray; |
96 | }, | 93 | }, |
97 | 94 | ||
98 | 'elaborationChunkSize': function() { | 95 | 'elaborationChunkSize': function() { |
99 | // return Clipperz.Crypto.AES.DeferredExecution.chunkSize; | 96 | // return Clipperz.Crypto.AES.DeferredExecution.chunkSize; |
100 | // return this._elaborationChunkSize; | 97 | // return this._elaborationChunkSize; |
101 | return (this._elaborationChunks * 1024); | 98 | return (this._elaborationChunks * 1024); |
102 | }, | 99 | }, |
103 | 100 | ||
104 | 'executionStep': function() { | 101 | 'executionStep': function() { |
105 | return this._executionStep; | 102 | return this._executionStep; |
106 | }, | 103 | }, |
107 | 104 | ||
108 | 'setExecutionStep': function(aValue) { | 105 | 'setExecutionStep': function(aValue) { |
109 | this._executionStep = aValue; | 106 | this._executionStep = aValue; |
110 | }, | 107 | }, |
111 | 108 | ||
112 | 'tuneExecutionParameters': function (anElapsedTime) { | 109 | 'tuneExecutionParameters': function (anElapsedTime) { |
113 | //var originalChunks = this._elaborationChunks; | 110 | //var originalChunks = this._elaborationChunks; |
114 | if (anElapsedTime > 0) { | 111 | if (anElapsedTime > 0) { |
115 | this._elaborationChunks = Math.round(this._elaborationChunks * ((anElapsedTime + 1000)/(anElapsedTime * 2))); | 112 | this._elaborationChunks = Math.round(this._elaborationChunks * ((anElapsedTime + 1000)/(anElapsedTime * 2))); |
116 | } | 113 | } |
117 | //Clipperz.log("tuneExecutionParameters - elapsedTime: " + anElapsedTime + /*originalChunks,*/ " chunks # " + this._elaborationChunks + " [" + this._executionStep + " / " + this._messageLength + "]"); | 114 | //Clipperz.log("tuneExecutionParameters - elapsedTime: " + anElapsedTime + /*originalChunks,*/ " chunks # " + this._elaborationChunks + " [" + this._executionStep + " / " + this._messageLength + "]"); |
118 | }, | 115 | }, |
119 | 116 | ||
120 | 'pause': function(aValue) { | 117 | 'pause': function(aValue) { |
diff --git a/frontend/gamma/js/Clipperz/Crypto/Base.js b/frontend/gamma/js/Clipperz/Crypto/Base.js index b69dcc8..d3a8e36 100644 --- a/frontend/gamma/js/Clipperz/Crypto/Base.js +++ b/frontend/gamma/js/Clipperz/Crypto/Base.js | |||
@@ -1,120 +1,117 @@ | |||
1 | /* | 1 | /* |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | */ | 24 | */ |
28 | 25 | ||
29 | try { if (typeof(Clipperz.Base) == 'undefined') { throw ""; }} catch (e) { | 26 | try { if (typeof(Clipperz.Base) == 'undefined') { throw ""; }} catch (e) { |
30 | throw "Clipperz.Crypto.Base depends on Clipperz.Base!"; | 27 | throw "Clipperz.Crypto.Base depends on Clipperz.Base!"; |
31 | } | 28 | } |
32 | 29 | ||
33 | if (typeof(Clipperz.Crypto) == 'undefined') { Clipperz.Crypto = {}; } | 30 | if (typeof(Clipperz.Crypto) == 'undefined') { Clipperz.Crypto = {}; } |
34 | if (typeof(Clipperz.Crypto.Base) == 'undefined') { Clipperz.Crypto.Base = {}; } | 31 | if (typeof(Clipperz.Crypto.Base) == 'undefined') { Clipperz.Crypto.Base = {}; } |
35 | 32 | ||
36 | Clipperz.Crypto.Base.VERSION = "0.1"; | 33 | Clipperz.Crypto.Base.VERSION = "0.1"; |
37 | Clipperz.Crypto.Base.NAME = "Clipperz.Crypto.Base"; | 34 | Clipperz.Crypto.Base.NAME = "Clipperz.Crypto.Base"; |
38 | 35 | ||
39 | //############################################################################# | 36 | //############################################################################# |
40 | //Downloaded on March 30, 2006 from http://anmar.eu.org/projects/jssha2/files/jssha2-0.3.zip (jsSha2/sha256.js) | 37 | //Downloaded on March 30, 2006 from http://anmar.eu.org/projects/jssha2/files/jssha2-0.3.zip (jsSha2/sha256.js) |
41 | //############################################################################# | 38 | //############################################################################# |
42 | 39 | ||
43 | /* A JavaScript implementation of the Secure Hash Algorithm, SHA-256 | 40 | /* A JavaScript implementation of the Secure Hash Algorithm, SHA-256 |
44 | * Version 0.3 Copyright Angel Marin 2003-2004 - http://anmar.eu.org/ | 41 | * Version 0.3 Copyright Angel Marin 2003-2004 - http://anmar.eu.org/ |
45 | * Distributed under the BSD License | 42 | * Distributed under the BSD License |
46 | * Some bits taken from Paul Johnston's SHA-1 implementation | 43 | * Some bits taken from Paul Johnston's SHA-1 implementation |
47 | */ | 44 | */ |
48 | var chrsz = 8; /* bits per input character. 8 - ASCII; 16 - Unicode */ | 45 | var chrsz = 8; /* bits per input character. 8 - ASCII; 16 - Unicode */ |
49 | function safe_add (x, y) { | 46 | function safe_add (x, y) { |
50 | var lsw = (x & 0xFFFF) + (y & 0xFFFF); | 47 | var lsw = (x & 0xFFFF) + (y & 0xFFFF); |
51 | var msw = (x >> 16) + (y >> 16) + (lsw >> 16); | 48 | var msw = (x >> 16) + (y >> 16) + (lsw >> 16); |
52 | return (msw << 16) | (lsw & 0xFFFF); | 49 | return (msw << 16) | (lsw & 0xFFFF); |
53 | } | 50 | } |
54 | function S (X, n) {return ( X >>> n ) | (X << (32 - n));} | 51 | function S (X, n) {return ( X >>> n ) | (X << (32 - n));} |
55 | function R (X, n) {return ( X >>> n );} | 52 | function R (X, n) {return ( X >>> n );} |
56 | function Ch(x, y, z) {return ((x & y) ^ ((~x) & z));} | 53 | function Ch(x, y, z) {return ((x & y) ^ ((~x) & z));} |
57 | function Maj(x, y, z) {return ((x & y) ^ (x & z) ^ (y & z));} | 54 | function Maj(x, y, z) {return ((x & y) ^ (x & z) ^ (y & z));} |
58 | function Sigma0256(x) {return (S(x, 2) ^ S(x, 13) ^ S(x, 22));} | 55 | function Sigma0256(x) {return (S(x, 2) ^ S(x, 13) ^ S(x, 22));} |
59 | function Sigma1256(x) {return (S(x, 6) ^ S(x, 11) ^ S(x, 25));} | 56 | function Sigma1256(x) {return (S(x, 6) ^ S(x, 11) ^ S(x, 25));} |
60 | function Gamma0256(x) {return (S(x, 7) ^ S(x, 18) ^ R(x, 3));} | 57 | function Gamma0256(x) {return (S(x, 7) ^ S(x, 18) ^ R(x, 3));} |
61 | function Gamma1256(x) {return (S(x, 17) ^ S(x, 19) ^ R(x, 10));} | 58 | function Gamma1256(x) {return (S(x, 17) ^ S(x, 19) ^ R(x, 10));} |
62 | function core_sha256 (m, l) { | 59 | function core_sha256 (m, l) { |
63 | var K = new Array(0x428A2F98,0x71374491,0xB5C0FBCF,0xE9B5DBA5,0x3956C25B,0x59F111F1,0x923F82A4,0xAB1C5ED5,0xD807AA98,0x12835B01,0x243185BE,0x550C7DC3,0x72BE5D74,0x80DEB1FE,0x9BDC06A7,0xC19BF174,0xE49B69C1,0xEFBE4786,0xFC19DC6,0x240CA1CC,0x2DE92C6F,0x4A7484AA,0x5CB0A9DC,0x76F988DA,0x983E5152,0xA831C66D,0xB00327C8,0xBF597FC7,0xC6E00BF3,0xD5A79147,0x6CA6351,0x14292967,0x27B70A85,0x2E1B2138,0x4D2C6DFC,0x53380D13,0x650A7354,0x766A0ABB,0x81C2C92E,0x92722C85,0xA2BFE8A1,0xA81A664B,0xC24B8B70,0xC76C51A3,0xD192E819,0xD6990624,0xF40E3585,0x106AA070,0x19A4C116,0x1E376C08,0x2748774C,0x34B0BCB5,0x391C0CB3,0x4ED8AA4A,0x5B9CCA4F,0x682E6FF3,0x748F82EE,0x78A5636F,0x84C87814,0x8CC70208,0x90BEFFFA,0xA4506CEB,0xBEF9A3F7,0xC67178F2); | 60 | var K = new Array(0x428A2F98,0x71374491,0xB5C0FBCF,0xE9B5DBA5,0x3956C25B,0x59F111F1,0x923F82A4,0xAB1C5ED5,0xD807AA98,0x12835B01,0x243185BE,0x550C7DC3,0x72BE5D74,0x80DEB1FE,0x9BDC06A7,0xC19BF174,0xE49B69C1,0xEFBE4786,0xFC19DC6,0x240CA1CC,0x2DE92C6F,0x4A7484AA,0x5CB0A9DC,0x76F988DA,0x983E5152,0xA831C66D,0xB00327C8,0xBF597FC7,0xC6E00BF3,0xD5A79147,0x6CA6351,0x14292967,0x27B70A85,0x2E1B2138,0x4D2C6DFC,0x53380D13,0x650A7354,0x766A0ABB,0x81C2C92E,0x92722C85,0xA2BFE8A1,0xA81A664B,0xC24B8B70,0xC76C51A3,0xD192E819,0xD6990624,0xF40E3585,0x106AA070,0x19A4C116,0x1E376C08,0x2748774C,0x34B0BCB5,0x391C0CB3,0x4ED8AA4A,0x5B9CCA4F,0x682E6FF3,0x748F82EE,0x78A5636F,0x84C87814,0x8CC70208,0x90BEFFFA,0xA4506CEB,0xBEF9A3F7,0xC67178F2); |
64 | var HASH = new Array(0x6A09E667, 0xBB67AE85, 0x3C6EF372, 0xA54FF53A, 0x510E527F, 0x9B05688C, 0x1F83D9AB, 0x5BE0CD19); | 61 | var HASH = new Array(0x6A09E667, 0xBB67AE85, 0x3C6EF372, 0xA54FF53A, 0x510E527F, 0x9B05688C, 0x1F83D9AB, 0x5BE0CD19); |
65 | var W = new Array(64); | 62 | var W = new Array(64); |
66 | var a, b, c, d, e, f, g, h, i, j; | 63 | var a, b, c, d, e, f, g, h, i, j; |
67 | var T1, T2; | 64 | var T1, T2; |
68 | /* append padding */ | 65 | /* append padding */ |
69 | m[l >> 5] |= 0x80 << (24 - l % 32); | 66 | m[l >> 5] |= 0x80 << (24 - l % 32); |
70 | m[((l + 64 >> 9) << 4) + 15] = l; | 67 | m[((l + 64 >> 9) << 4) + 15] = l; |
71 | for ( var i = 0; i<m.length; i+=16 ) { | 68 | for ( var i = 0; i<m.length; i+=16 ) { |
72 | a = HASH[0]; b = HASH[1]; c = HASH[2]; d = HASH[3]; e = HASH[4]; f = HASH[5]; g = HASH[6]; h = HASH[7]; | 69 | a = HASH[0]; b = HASH[1]; c = HASH[2]; d = HASH[3]; e = HASH[4]; f = HASH[5]; g = HASH[6]; h = HASH[7]; |
73 | for ( var j = 0; j<64; j++) { | 70 | for ( var j = 0; j<64; j++) { |
74 | if (j < 16) W[j] = m[j + i]; | 71 | if (j < 16) W[j] = m[j + i]; |
75 | else W[j] = safe_add(safe_add(safe_add(Gamma1256(W[j - 2]), W[j - 7]), Gamma0256(W[j - 15])), W[j - 16]); | 72 | else W[j] = safe_add(safe_add(safe_add(Gamma1256(W[j - 2]), W[j - 7]), Gamma0256(W[j - 15])), W[j - 16]); |
76 | T1 = safe_add(safe_add(safe_add(safe_add(h, Sigma1256(e)), Ch(e, f, g)), K[j]), W[j]); | 73 | T1 = safe_add(safe_add(safe_add(safe_add(h, Sigma1256(e)), Ch(e, f, g)), K[j]), W[j]); |
77 | T2 = safe_add(Sigma0256(a), Maj(a, b, c)); | 74 | T2 = safe_add(Sigma0256(a), Maj(a, b, c)); |
78 | h = g; g = f; f = e; e = safe_add(d, T1); d = c; c = b; b = a; a = safe_add(T1, T2); | 75 | h = g; g = f; f = e; e = safe_add(d, T1); d = c; c = b; b = a; a = safe_add(T1, T2); |
79 | } | 76 | } |
80 | HASH[0] = safe_add(a, HASH[0]); HASH[1] = safe_add(b, HASH[1]); HASH[2] = safe_add(c, HASH[2]); HASH[3] = safe_add(d, HASH[3]); HASH[4] = safe_add(e, HASH[4]); HASH[5] = safe_add(f, HASH[5]); HASH[6] = safe_add(g, HASH[6]); HASH[7] = safe_add(h, HASH[7]); | 77 | HASH[0] = safe_add(a, HASH[0]); HASH[1] = safe_add(b, HASH[1]); HASH[2] = safe_add(c, HASH[2]); HASH[3] = safe_add(d, HASH[3]); HASH[4] = safe_add(e, HASH[4]); HASH[5] = safe_add(f, HASH[5]); HASH[6] = safe_add(g, HASH[6]); HASH[7] = safe_add(h, HASH[7]); |
81 | } | 78 | } |
82 | return HASH; | 79 | return HASH; |
83 | } | 80 | } |
84 | function str2binb (str) { | 81 | function str2binb (str) { |
85 | var bin = Array(); | 82 | var bin = Array(); |
86 | var mask = (1 << chrsz) - 1; | 83 | var mask = (1 << chrsz) - 1; |
87 | for(var i = 0; i < str.length * chrsz; i += chrsz) | 84 | for(var i = 0; i < str.length * chrsz; i += chrsz) |
88 | bin[i>>5] |= (str.charCodeAt(i / chrsz) & mask) << (24 - i%32); | 85 | bin[i>>5] |= (str.charCodeAt(i / chrsz) & mask) << (24 - i%32); |
89 | return bin; | 86 | return bin; |
90 | } | 87 | } |
91 | function binb2hex (binarray) { | 88 | function binb2hex (binarray) { |
92 | var hexcase = 0; /* hex output format. 0 - lowercase; 1 - uppercase */ | 89 | var hexcase = 0; /* hex output format. 0 - lowercase; 1 - uppercase */ |
93 | var hex_tab = hexcase ? "0123456789ABCDEF" : "0123456789abcdef"; | 90 | var hex_tab = hexcase ? "0123456789ABCDEF" : "0123456789abcdef"; |
94 | var str = ""; | 91 | var str = ""; |
95 | for (var i = 0; i < binarray.length * 4; i++) { | 92 | for (var i = 0; i < binarray.length * 4; i++) { |
96 | str += hex_tab.charAt((binarray[i>>2] >> ((3 - i%4)*8+4)) & 0xF) + hex_tab.charAt((binarray[i>>2] >> ((3 - i%4)*8 )) & 0xF); | 93 | str += hex_tab.charAt((binarray[i>>2] >> ((3 - i%4)*8+4)) & 0xF) + hex_tab.charAt((binarray[i>>2] >> ((3 - i%4)*8 )) & 0xF); |
97 | } | 94 | } |
98 | return str; | 95 | return str; |
99 | } | 96 | } |
100 | function hex_sha256(s){return binb2hex(core_sha256(str2binb(s),s.length * chrsz));} | 97 | function hex_sha256(s){return binb2hex(core_sha256(str2binb(s),s.length * chrsz));} |
101 | 98 | ||
102 | 99 | ||
103 | 100 | ||
104 | //############################################################################# | 101 | //############################################################################# |
105 | //Downloaded on March 30, 2006 from http://www.fourmilab.ch/javascrypt/javascrypt.zip (entropy.js) | 102 | //Downloaded on March 30, 2006 from http://www.fourmilab.ch/javascrypt/javascrypt.zip (entropy.js) |
106 | //############################################################################# | 103 | //############################################################################# |
107 | 104 | ||
108 | // Entropy collection utilities | 105 | // Entropy collection utilities |
109 | 106 | ||
110 | /*Start by declaring static storage and initialise | 107 | /*Start by declaring static storage and initialise |
111 | the entropy vector from the time we come through | 108 | the entropy vector from the time we come through |
112 | here. */ | 109 | here. */ |
113 | 110 | ||
114 | var entropyData = new Array(); // Collected entropy data | 111 | var entropyData = new Array(); // Collected entropy data |
115 | var edlen = 0; // Keyboard array data length | 112 | var edlen = 0; // Keyboard array data length |
116 | 113 | ||
117 | addEntropyTime(); // Start entropy collection with page load time | 114 | addEntropyTime(); // Start entropy collection with page load time |
118 | ce(); // Roll milliseconds into initial entropy | 115 | ce(); // Roll milliseconds into initial entropy |
119 | 116 | ||
120 | //Add a byte to the entropy vector | 117 | //Add a byte to the entropy vector |
diff --git a/frontend/gamma/js/Clipperz/Crypto/BigInt.js b/frontend/gamma/js/Clipperz/Crypto/BigInt.js index d4d05d2..41483a3 100644 --- a/frontend/gamma/js/Clipperz/Crypto/BigInt.js +++ b/frontend/gamma/js/Clipperz/Crypto/BigInt.js | |||
@@ -1,120 +1,117 @@ | |||
1 | /* | 1 | /* |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | */ | 24 | */ |
28 | 25 | ||
29 | if (typeof(Clipperz) == 'undefined') { Clipperz = {}; } | 26 | if (typeof(Clipperz) == 'undefined') { Clipperz = {}; } |
30 | if (typeof(Clipperz.Crypto) == 'undefined') { Clipperz.Crypto = {}; } | 27 | if (typeof(Clipperz.Crypto) == 'undefined') { Clipperz.Crypto = {}; } |
31 | 28 | ||
32 | //############################################################################# | 29 | //############################################################################# |
33 | //Downloaded on March 05, 2007 from http://www.leemon.com/crypto/BigInt.js | 30 | //Downloaded on March 05, 2007 from http://www.leemon.com/crypto/BigInt.js |
34 | //############################################################################# | 31 | //############################################################################# |
35 | 32 | ||
36 | 33 | ||
37 | //////////////////////////////////////////////////////////////////////////////////////// | 34 | //////////////////////////////////////////////////////////////////////////////////////// |
38 | // Big Integer Library v. 5.0 | 35 | // Big Integer Library v. 5.0 |
39 | // Created 2000, last modified 2006 | 36 | // Created 2000, last modified 2006 |
40 | // Leemon Baird | 37 | // Leemon Baird |
41 | // www.leemon.com | 38 | // www.leemon.com |
42 | // | 39 | // |
43 | // This file is public domain. You can use it for any purpose without restriction. | 40 | // This file is public domain. You can use it for any purpose without restriction. |
44 | // I do not guarantee that it is correct, so use it at your own risk. If you use | 41 | // I do not guarantee that it is correct, so use it at your own risk. If you use |
45 | // it for something interesting, I'd appreciate hearing about it. If you find | 42 | // it for something interesting, I'd appreciate hearing about it. If you find |
46 | // any bugs or make any improvements, I'd appreciate hearing about those too. | 43 | // any bugs or make any improvements, I'd appreciate hearing about those too. |
47 | // It would also be nice if my name and address were left in the comments. | 44 | // It would also be nice if my name and address were left in the comments. |
48 | // But none of that is required. | 45 | // But none of that is required. |
49 | // | 46 | // |
50 | // This code defines a bigInt library for arbitrary-precision integers. | 47 | // This code defines a bigInt library for arbitrary-precision integers. |
51 | // A bigInt is an array of integers storing the value in chunks of bpe bits, | 48 | // A bigInt is an array of integers storing the value in chunks of bpe bits, |
52 | // little endian (buff[0] is the least significant word). | 49 | // little endian (buff[0] is the least significant word). |
53 | // Negative bigInts are stored two's complement. | 50 | // Negative bigInts are stored two's complement. |
54 | // Some functions assume their parameters have at least one leading zero element. | 51 | // Some functions assume their parameters have at least one leading zero element. |
55 | // Functions with an underscore at the end of the name have unpredictable behavior in case of overflow, | 52 | // Functions with an underscore at the end of the name have unpredictable behavior in case of overflow, |
56 | // so the caller must make sure overflow won't happen. | 53 | // so the caller must make sure overflow won't happen. |
57 | // For each function where a parameter is modified, that same | 54 | // For each function where a parameter is modified, that same |
58 | // variable must not be used as another argument too. | 55 | // variable must not be used as another argument too. |
59 | // So, you cannot square x by doing multMod_(x,x,n). | 56 | // So, you cannot square x by doing multMod_(x,x,n). |
60 | // You must use squareMod_(x,n) instead, or do y=dup(x); multMod_(x,y,n). | 57 | // You must use squareMod_(x,n) instead, or do y=dup(x); multMod_(x,y,n). |
61 | // | 58 | // |
62 | // These functions are designed to avoid frequent dynamic memory allocation in the inner loop. | 59 | // These functions are designed to avoid frequent dynamic memory allocation in the inner loop. |
63 | // For most functions, if it needs a BigInt as a local variable it will actually use | 60 | // For most functions, if it needs a BigInt as a local variable it will actually use |
64 | // a global, and will only allocate to it when it's not the right size. This ensures | 61 | // a global, and will only allocate to it when it's not the right size. This ensures |
65 | // that when a function is called repeatedly with same-sized parameters, it only allocates | 62 | // that when a function is called repeatedly with same-sized parameters, it only allocates |
66 | // memory on the first call. | 63 | // memory on the first call. |
67 | // | 64 | // |
68 | // Note that for cryptographic purposes, the calls to Math.random() must | 65 | // Note that for cryptographic purposes, the calls to Math.random() must |
69 | // be replaced with calls to a better pseudorandom number generator. | 66 | // be replaced with calls to a better pseudorandom number generator. |
70 | // | 67 | // |
71 | // In the following, "bigInt" means a bigInt with at least one leading zero element, | 68 | // In the following, "bigInt" means a bigInt with at least one leading zero element, |
72 | // and "integer" means a nonnegative integer less than radix. In some cases, integer | 69 | // and "integer" means a nonnegative integer less than radix. In some cases, integer |
73 | // can be negative. Negative bigInts are 2s complement. | 70 | // can be negative. Negative bigInts are 2s complement. |
74 | // | 71 | // |
75 | // The following functions do not modify their inputs, but dynamically allocate memory every time they are called: | 72 | // The following functions do not modify their inputs, but dynamically allocate memory every time they are called: |
76 | // | 73 | // |
77 | // function bigInt2str(x,base) //convert a bigInt into a string in a given base, from base 2 up to base 95 | 74 | // function bigInt2str(x,base) //convert a bigInt into a string in a given base, from base 2 up to base 95 |
78 | // function dup(x) //returns a copy of bigInt x | 75 | // function dup(x) //returns a copy of bigInt x |
79 | // function findPrimes(n) //return array of all primes less than integer n | 76 | // function findPrimes(n) //return array of all primes less than integer n |
80 | // function int2bigInt(t,n,m) //convert integer t to a bigInt with at least n bits and m array elements | 77 | // function int2bigInt(t,n,m) //convert integer t to a bigInt with at least n bits and m array elements |
81 | // function int2bigInt(s,b,n,m) //convert string s in base b to a bigInt with at least n bits and m array elements | 78 | // function int2bigInt(s,b,n,m) //convert string s in base b to a bigInt with at least n bits and m array elements |
82 | // function trim(x,k) //return a copy of x with exactly k leading zero elements | 79 | // function trim(x,k) //return a copy of x with exactly k leading zero elements |
83 | // | 80 | // |
84 | // The following functions do not modify their inputs, so there is never a problem with the result being too big: | 81 | // The following functions do not modify their inputs, so there is never a problem with the result being too big: |
85 | // | 82 | // |
86 | // function bitSize(x) //returns how many bits long the bigInt x is, not counting leading zeros | 83 | // function bitSize(x) //returns how many bits long the bigInt x is, not counting leading zeros |
87 | // function equals(x,y) //is the bigInt x equal to the bigint y? | 84 | // function equals(x,y) //is the bigInt x equal to the bigint y? |
88 | // function equalsInt(x,y) //is bigint x equal to integer y? | 85 | // function equalsInt(x,y) //is bigint x equal to integer y? |
89 | // function greater(x,y) //is x>y? (x and y are nonnegative bigInts) | 86 | // function greater(x,y) //is x>y? (x and y are nonnegative bigInts) |
90 | // function greaterShift(x,y,shift)//is (x <<(shift*bpe)) > y? | 87 | // function greaterShift(x,y,shift)//is (x <<(shift*bpe)) > y? |
91 | // function isZero(x) //is the bigInt x equal to zero? | 88 | // function isZero(x) //is the bigInt x equal to zero? |
92 | // function millerRabin(x,b) //does one round of Miller-Rabin base integer b say that bigInt x is possibly prime (as opposed to definitely composite)? | 89 | // function millerRabin(x,b) //does one round of Miller-Rabin base integer b say that bigInt x is possibly prime (as opposed to definitely composite)? |
93 | // function modInt(x,n) //return x mod n for bigInt x and integer n. | 90 | // function modInt(x,n) //return x mod n for bigInt x and integer n. |
94 | // function negative(x) //is bigInt x negative? | 91 | // function negative(x) //is bigInt x negative? |
95 | // | 92 | // |
96 | // The following functions do not modify their inputs, but allocate memory and call functions with underscores | 93 | // The following functions do not modify their inputs, but allocate memory and call functions with underscores |
97 | // | 94 | // |
98 | // function add(x,y) //return (x+y) for bigInts x and y. | 95 | // function add(x,y) //return (x+y) for bigInts x and y. |
99 | // function addInt(x,n) //return (x+n) where x is a bigInt and n is an integer. | 96 | // function addInt(x,n) //return (x+n) where x is a bigInt and n is an integer. |
100 | // function expand(x,n) //return a copy of x with at least n elements, adding leading zeros if needed | 97 | // function expand(x,n) //return a copy of x with at least n elements, adding leading zeros if needed |
101 | // function inverseMod(x,n) //return (x**(-1) mod n) for bigInts x and n. If no inverse exists, it returns null | 98 | // function inverseMod(x,n) //return (x**(-1) mod n) for bigInts x and n. If no inverse exists, it returns null |
102 | // function mod(x,n) //return a new bigInt equal to (x mod n) for bigInts x and n. | 99 | // function mod(x,n) //return a new bigInt equal to (x mod n) for bigInts x and n. |
103 | // function mult(x,y) //return x*y for bigInts x and y. This is faster when y<x. | 100 | // function mult(x,y) //return x*y for bigInts x and y. This is faster when y<x. |
104 | // function multMod(x,y,n) //return (x*y mod n) for bigInts x,y,n. For greater speed, let y<x. | 101 | // function multMod(x,y,n) //return (x*y mod n) for bigInts x,y,n. For greater speed, let y<x. |
105 | // function powMod(x,y,n) //return (x**y mod n) where x,y,n are bigInts and ** is exponentiation. 0**0=1. Faster for odd n. | 102 | // function powMod(x,y,n) //return (x**y mod n) where x,y,n are bigInts and ** is exponentiation. 0**0=1. Faster for odd n. |
106 | // function randTruePrime(k) //return a new, random, k-bit, true prime using Maurer's algorithm. | 103 | // function randTruePrime(k) //return a new, random, k-bit, true prime using Maurer's algorithm. |
107 | // function sub(x,y) //return (x-y) for bigInts x and y. Negative answers will be 2s complement | 104 | // function sub(x,y) //return (x-y) for bigInts x and y. Negative answers will be 2s complement |
108 | // | 105 | // |
109 | // The following functions write a bigInt result to one of the parameters, but | 106 | // The following functions write a bigInt result to one of the parameters, but |
110 | // the result is never bigger than the original, so there can't be overflow problems: | 107 | // the result is never bigger than the original, so there can't be overflow problems: |
111 | // | 108 | // |
112 | // function divInt_(x,n) //do x=floor(x/n) for bigInt x and integer n, and return the remainder | 109 | // function divInt_(x,n) //do x=floor(x/n) for bigInt x and integer n, and return the remainder |
113 | // function GCD_(x,y) //set x to the greatest common divisor of bigInts x and y, (y is destroyed). | 110 | // function GCD_(x,y) //set x to the greatest common divisor of bigInts x and y, (y is destroyed). |
114 | // function halve_(x) //do x=floor(|x|/2)*sgn(x) for bigInt x in 2's complement | 111 | // function halve_(x) //do x=floor(|x|/2)*sgn(x) for bigInt x in 2's complement |
115 | // function mod_(x,n) //do x=x mod n for bigInts x and n. | 112 | // function mod_(x,n) //do x=x mod n for bigInts x and n. |
116 | // function rightShift_(x,n) //right shift bigInt x by n bits. 0 <= n < bpe. | 113 | // function rightShift_(x,n) //right shift bigInt x by n bits. 0 <= n < bpe. |
117 | // | 114 | // |
118 | // The following functions write a bigInt result to one of the parameters. The caller is responsible for | 115 | // The following functions write a bigInt result to one of the parameters. The caller is responsible for |
119 | // ensuring it is large enough to hold the result. | 116 | // ensuring it is large enough to hold the result. |
120 | // | 117 | // |
diff --git a/frontend/gamma/js/Clipperz/Crypto/BigInt_scoped.js b/frontend/gamma/js/Clipperz/Crypto/BigInt_scoped.js index e91e823..f91c7e9 100644 --- a/frontend/gamma/js/Clipperz/Crypto/BigInt_scoped.js +++ b/frontend/gamma/js/Clipperz/Crypto/BigInt_scoped.js | |||
@@ -1,120 +1,117 @@ | |||
1 | /* | 1 | /* |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | */ | 24 | */ |
28 | 25 | ||
29 | if (typeof(Clipperz) == 'undefined') { Clipperz = {}; } | 26 | if (typeof(Clipperz) == 'undefined') { Clipperz = {}; } |
30 | if (typeof(Clipperz.Crypto) == 'undefined') { Clipperz.Crypto = {}; } | 27 | if (typeof(Clipperz.Crypto) == 'undefined') { Clipperz.Crypto = {}; } |
31 | 28 | ||
32 | if (typeof(Leemon) == 'undefined') { Leemon = {}; } | 29 | if (typeof(Leemon) == 'undefined') { Leemon = {}; } |
33 | if (typeof(Baird.Crypto) == 'undefined') { Baird.Crypto = {}; } | 30 | if (typeof(Baird.Crypto) == 'undefined') { Baird.Crypto = {}; } |
34 | if (typeof(Baird.Crypto.BigInt) == 'undefined') { Baird.Crypto.BigInt = {}; } | 31 | if (typeof(Baird.Crypto.BigInt) == 'undefined') { Baird.Crypto.BigInt = {}; } |
35 | 32 | ||
36 | 33 | ||
37 | //############################################################################# | 34 | //############################################################################# |
38 | //Downloaded on March 05, 2007 from http://www.leemon.com/crypto/BigInt.js | 35 | //Downloaded on March 05, 2007 from http://www.leemon.com/crypto/BigInt.js |
39 | //############################################################################# | 36 | //############################################################################# |
40 | 37 | ||
41 | //////////////////////////////////////////////////////////////////////////////////////// | 38 | //////////////////////////////////////////////////////////////////////////////////////// |
42 | // Big Integer Library v. 5.0 | 39 | // Big Integer Library v. 5.0 |
43 | // Created 2000, last modified 2006 | 40 | // Created 2000, last modified 2006 |
44 | // Leemon Baird | 41 | // Leemon Baird |
45 | // www.leemon.com | 42 | // www.leemon.com |
46 | // | 43 | // |
47 | // This file is public domain. You can use it for any purpose without restriction. | 44 | // This file is public domain. You can use it for any purpose without restriction. |
48 | // I do not guarantee that it is correct, so use it at your own risk. If you use | 45 | // I do not guarantee that it is correct, so use it at your own risk. If you use |
49 | // it for something interesting, I'd appreciate hearing about it. If you find | 46 | // it for something interesting, I'd appreciate hearing about it. If you find |
50 | // any bugs or make any improvements, I'd appreciate hearing about those too. | 47 | // any bugs or make any improvements, I'd appreciate hearing about those too. |
51 | // It would also be nice if my name and address were left in the comments. | 48 | // It would also be nice if my name and address were left in the comments. |
52 | // But none of that is required. | 49 | // But none of that is required. |
53 | // | 50 | // |
54 | // This code defines a bigInt library for arbitrary-precision integers. | 51 | // This code defines a bigInt library for arbitrary-precision integers. |
55 | // A bigInt is an array of integers storing the value in chunks of bpe bits, | 52 | // A bigInt is an array of integers storing the value in chunks of bpe bits, |
56 | // little endian (buff[0] is the least significant word). | 53 | // little endian (buff[0] is the least significant word). |
57 | // Negative bigInts are stored two's complement. | 54 | // Negative bigInts are stored two's complement. |
58 | // Some functions assume their parameters have at least one leading zero element. | 55 | // Some functions assume their parameters have at least one leading zero element. |
59 | // Functions with an underscore at the end of the name have unpredictable behavior in case of overflow, | 56 | // Functions with an underscore at the end of the name have unpredictable behavior in case of overflow, |
60 | // so the caller must make sure overflow won't happen. | 57 | // so the caller must make sure overflow won't happen. |
61 | // For each function where a parameter is modified, that same | 58 | // For each function where a parameter is modified, that same |
62 | // variable must not be used as another argument too. | 59 | // variable must not be used as another argument too. |
63 | // So, you cannot square x by doing multMod_(x,x,n). | 60 | // So, you cannot square x by doing multMod_(x,x,n). |
64 | // You must use squareMod_(x,n) instead, or do y=dup(x); multMod_(x,y,n). | 61 | // You must use squareMod_(x,n) instead, or do y=dup(x); multMod_(x,y,n). |
65 | // | 62 | // |
66 | // These functions are designed to avoid frequent dynamic memory allocation in the inner loop. | 63 | // These functions are designed to avoid frequent dynamic memory allocation in the inner loop. |
67 | // For most functions, if it needs a BigInt as a local variable it will actually use | 64 | // For most functions, if it needs a BigInt as a local variable it will actually use |
68 | // a global, and will only allocate to it when it's not the right size. This ensures | 65 | // a global, and will only allocate to it when it's not the right size. This ensures |
69 | // that when a function is called repeatedly with same-sized parameters, it only allocates | 66 | // that when a function is called repeatedly with same-sized parameters, it only allocates |
70 | // memory on the first call. | 67 | // memory on the first call. |
71 | // | 68 | // |
72 | // Note that for cryptographic purposes, the calls to Math.random() must | 69 | // Note that for cryptographic purposes, the calls to Math.random() must |
73 | // be replaced with calls to a better pseudorandom number generator. | 70 | // be replaced with calls to a better pseudorandom number generator. |
74 | // | 71 | // |
75 | // In the following, "bigInt" means a bigInt with at least one leading zero element, | 72 | // In the following, "bigInt" means a bigInt with at least one leading zero element, |
76 | // and "integer" means a nonnegative integer less than radix. In some cases, integer | 73 | // and "integer" means a nonnegative integer less than radix. In some cases, integer |
77 | // can be negative. Negative bigInts are 2s complement. | 74 | // can be negative. Negative bigInts are 2s complement. |
78 | // | 75 | // |
79 | // The following functions do not modify their inputs, but dynamically allocate memory every time they are called: | 76 | // The following functions do not modify their inputs, but dynamically allocate memory every time they are called: |
80 | // | 77 | // |
81 | // function bigInt2str(x,base) //convert a bigInt into a string in a given base, from base 2 up to base 95 | 78 | // function bigInt2str(x,base) //convert a bigInt into a string in a given base, from base 2 up to base 95 |
82 | // function dup(x) //returns a copy of bigInt x | 79 | // function dup(x) //returns a copy of bigInt x |
83 | // function findPrimes(n) //return array of all primes less than integer n | 80 | // function findPrimes(n) //return array of all primes less than integer n |
84 | // function int2bigInt(t,n,m) //convert integer t to a bigInt with at least n bits and m array elements | 81 | // function int2bigInt(t,n,m) //convert integer t to a bigInt with at least n bits and m array elements |
85 | // function str2bigInt(s,b,n,m) //convert string s in base b to a bigInt with at least n bits and m array elements | 82 | // function str2bigInt(s,b,n,m) //convert string s in base b to a bigInt with at least n bits and m array elements |
86 | // function trim(x,k) //return a copy of x with exactly k leading zero elements | 83 | // function trim(x,k) //return a copy of x with exactly k leading zero elements |
87 | // | 84 | // |
88 | // The following functions do not modify their inputs, so there is never a problem with the result being too big: | 85 | // The following functions do not modify their inputs, so there is never a problem with the result being too big: |
89 | // | 86 | // |
90 | // function bitSize(x) //returns how many bits long the bigInt x is, not counting leading zeros | 87 | // function bitSize(x) //returns how many bits long the bigInt x is, not counting leading zeros |
91 | // function equals(x,y) //is the bigInt x equal to the bigint y? | 88 | // function equals(x,y) //is the bigInt x equal to the bigint y? |
92 | // function equalsInt(x,y) //is bigint x equal to integer y? | 89 | // function equalsInt(x,y) //is bigint x equal to integer y? |
93 | // function greater(x,y) //is x>y? (x and y are nonnegative bigInts) | 90 | // function greater(x,y) //is x>y? (x and y are nonnegative bigInts) |
94 | // function greaterShift(x,y,shift)//is (x <<(shift*bpe)) > y? | 91 | // function greaterShift(x,y,shift)//is (x <<(shift*bpe)) > y? |
95 | // function isZero(x) //is the bigInt x equal to zero? | 92 | // function isZero(x) //is the bigInt x equal to zero? |
96 | // function millerRabin(x,b) //does one round of Miller-Rabin base integer b say that bigInt x is possibly prime (as opposed to definitely composite)? | 93 | // function millerRabin(x,b) //does one round of Miller-Rabin base integer b say that bigInt x is possibly prime (as opposed to definitely composite)? |
97 | // function modInt(x,n) //return x mod n for bigInt x and integer n. | 94 | // function modInt(x,n) //return x mod n for bigInt x and integer n. |
98 | // function negative(x) //is bigInt x negative? | 95 | // function negative(x) //is bigInt x negative? |
99 | // | 96 | // |
100 | // The following functions do not modify their inputs, but allocate memory and call functions with underscores | 97 | // The following functions do not modify their inputs, but allocate memory and call functions with underscores |
101 | // | 98 | // |
102 | // function add(x,y) //return (x+y) for bigInts x and y. | 99 | // function add(x,y) //return (x+y) for bigInts x and y. |
103 | // function addInt(x,n) //return (x+n) where x is a bigInt and n is an integer. | 100 | // function addInt(x,n) //return (x+n) where x is a bigInt and n is an integer. |
104 | // function expand(x,n) //return a copy of x with at least n elements, adding leading zeros if needed | 101 | // function expand(x,n) //return a copy of x with at least n elements, adding leading zeros if needed |
105 | // function inverseMod(x,n) //return (x**(-1) mod n) for bigInts x and n. If no inverse exists, it returns null | 102 | // function inverseMod(x,n) //return (x**(-1) mod n) for bigInts x and n. If no inverse exists, it returns null |
106 | // function mod(x,n) //return a new bigInt equal to (x mod n) for bigInts x and n. | 103 | // function mod(x,n) //return a new bigInt equal to (x mod n) for bigInts x and n. |
107 | // function mult(x,y) //return x*y for bigInts x and y. This is faster when y<x. | 104 | // function mult(x,y) //return x*y for bigInts x and y. This is faster when y<x. |
108 | // function multMod(x,y,n) //return (x*y mod n) for bigInts x,y,n. For greater speed, let y<x. | 105 | // function multMod(x,y,n) //return (x*y mod n) for bigInts x,y,n. For greater speed, let y<x. |
109 | // function powMod(x,y,n) //return (x**y mod n) where x,y,n are bigInts and ** is exponentiation. 0**0=1. Faster for odd n. | 106 | // function powMod(x,y,n) //return (x**y mod n) where x,y,n are bigInts and ** is exponentiation. 0**0=1. Faster for odd n. |
110 | // function randTruePrime(k) //return a new, random, k-bit, true prime using Maurer's algorithm. | 107 | // function randTruePrime(k) //return a new, random, k-bit, true prime using Maurer's algorithm. |
111 | // function sub(x,y) //return (x-y) for bigInts x and y. Negative answers will be 2s complement | 108 | // function sub(x,y) //return (x-y) for bigInts x and y. Negative answers will be 2s complement |
112 | // | 109 | // |
113 | // The following functions write a bigInt result to one of the parameters, but | 110 | // The following functions write a bigInt result to one of the parameters, but |
114 | // the result is never bigger than the original, so there can't be overflow problems: | 111 | // the result is never bigger than the original, so there can't be overflow problems: |
115 | // | 112 | // |
116 | // function divInt_(x,n) //do x=floor(x/n) for bigInt x and integer n, and return the remainder | 113 | // function divInt_(x,n) //do x=floor(x/n) for bigInt x and integer n, and return the remainder |
117 | // function GCD_(x,y) //set x to the greatest common divisor of bigInts x and y, (y is destroyed). | 114 | // function GCD_(x,y) //set x to the greatest common divisor of bigInts x and y, (y is destroyed). |
118 | // function halve_(x) //do x=floor(|x|/2)*sgn(x) for bigInt x in 2's complement | 115 | // function halve_(x) //do x=floor(|x|/2)*sgn(x) for bigInt x in 2's complement |
119 | // function mod_(x,n) //do x=x mod n for bigInts x and n. | 116 | // function mod_(x,n) //do x=x mod n for bigInts x and n. |
120 | // function rightShift_(x,n) //right shift bigInt x by n bits. 0 <= n < bpe. | 117 | // function rightShift_(x,n) //right shift bigInt x by n bits. 0 <= n < bpe. |
diff --git a/frontend/gamma/js/Clipperz/Crypto/ECC/BinaryField/Curve.js b/frontend/gamma/js/Clipperz/Crypto/ECC/BinaryField/Curve.js index 2033eb4..19f19c2 100644 --- a/frontend/gamma/js/Clipperz/Crypto/ECC/BinaryField/Curve.js +++ b/frontend/gamma/js/Clipperz/Crypto/ECC/BinaryField/Curve.js | |||
@@ -1,120 +1,117 @@ | |||
1 | /* | 1 | /* |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | */ | 24 | */ |
28 | 25 | ||
29 | //try { if (typeof(Clipperz.ByteArray) == 'undefined') { throw ""; }} catch (e) { | 26 | //try { if (typeof(Clipperz.ByteArray) == 'undefined') { throw ""; }} catch (e) { |
30 | //throw "Clipperz.Crypto.ECC depends on Clipperz.ByteArray!"; | 27 | //throw "Clipperz.Crypto.ECC depends on Clipperz.ByteArray!"; |
31 | //} | 28 | //} |
32 | if (typeof(Clipperz.Crypto.ECC) == 'undefined') { Clipperz.Crypto.ECC = {}; } | 29 | if (typeof(Clipperz.Crypto.ECC) == 'undefined') { Clipperz.Crypto.ECC = {}; } |
33 | if (typeof(Clipperz.Crypto.ECC.BinaryField) == 'undefined') { Clipperz.Crypto.ECC.BinaryField = {}; } | 30 | if (typeof(Clipperz.Crypto.ECC.BinaryField) == 'undefined') { Clipperz.Crypto.ECC.BinaryField = {}; } |
34 | 31 | ||
35 | Clipperz.Crypto.ECC.BinaryField.Curve = function(args) { | 32 | Clipperz.Crypto.ECC.BinaryField.Curve = function(args) { |
36 | args = args || {}; | 33 | args = args || {}; |
37 | 34 | ||
38 | this._modulus = args.modulus; | 35 | this._modulus = args.modulus; |
39 | 36 | ||
40 | this._a = args.a; | 37 | this._a = args.a; |
41 | this._b = args.b; | 38 | this._b = args.b; |
42 | this._G = args.G; | 39 | this._G = args.G; |
43 | this._r = args.r; | 40 | this._r = args.r; |
44 | this._h = args.h; | 41 | this._h = args.h; |
45 | 42 | ||
46 | this._finiteField = null; | 43 | this._finiteField = null; |
47 | 44 | ||
48 | return this; | 45 | return this; |
49 | } | 46 | } |
50 | 47 | ||
51 | Clipperz.Crypto.ECC.BinaryField.Curve.prototype = MochiKit.Base.update(null, { | 48 | Clipperz.Crypto.ECC.BinaryField.Curve.prototype = MochiKit.Base.update(null, { |
52 | 49 | ||
53 | 'asString': function() { | 50 | 'asString': function() { |
54 | return "Clipperz.Crypto.ECC.BinaryField.Curve"; | 51 | return "Clipperz.Crypto.ECC.BinaryField.Curve"; |
55 | }, | 52 | }, |
56 | 53 | ||
57 | //----------------------------------------------------------------------------- | 54 | //----------------------------------------------------------------------------- |
58 | 55 | ||
59 | 'modulus': function() { | 56 | 'modulus': function() { |
60 | return this._modulus; | 57 | return this._modulus; |
61 | }, | 58 | }, |
62 | 59 | ||
63 | 'a': function() { | 60 | 'a': function() { |
64 | return this._a; | 61 | return this._a; |
65 | }, | 62 | }, |
66 | 63 | ||
67 | 'b': function() { | 64 | 'b': function() { |
68 | return this._b; | 65 | return this._b; |
69 | }, | 66 | }, |
70 | 67 | ||
71 | 'G': function() { | 68 | 'G': function() { |
72 | return this._G; | 69 | return this._G; |
73 | }, | 70 | }, |
74 | 71 | ||
75 | 'r': function() { | 72 | 'r': function() { |
76 | return this._r; | 73 | return this._r; |
77 | }, | 74 | }, |
78 | 75 | ||
79 | 'h': function() { | 76 | 'h': function() { |
80 | return this._h; | 77 | return this._h; |
81 | }, | 78 | }, |
82 | 79 | ||
83 | //----------------------------------------------------------------------------- | 80 | //----------------------------------------------------------------------------- |
84 | 81 | ||
85 | 'finiteField': function() { | 82 | 'finiteField': function() { |
86 | if (this._finiteField == null) { | 83 | if (this._finiteField == null) { |
87 | this._finiteField = new Clipperz.Crypto.ECC.BinaryField.FiniteField({modulus:this.modulus()}) | 84 | this._finiteField = new Clipperz.Crypto.ECC.BinaryField.FiniteField({modulus:this.modulus()}) |
88 | } | 85 | } |
89 | 86 | ||
90 | return this._finiteField; | 87 | return this._finiteField; |
91 | }, | 88 | }, |
92 | 89 | ||
93 | //----------------------------------------------------------------------------- | 90 | //----------------------------------------------------------------------------- |
94 | 91 | ||
95 | 'negate': function(aPointA) { | 92 | 'negate': function(aPointA) { |
96 | var result; | 93 | var result; |
97 | 94 | ||
98 | result = new Clipperz.Crypto.ECC.Point({x:aPointA.x(), y:this.finiteField().add(aPointA.y(), aPointA.x())}) | 95 | result = new Clipperz.Crypto.ECC.Point({x:aPointA.x(), y:this.finiteField().add(aPointA.y(), aPointA.x())}) |
99 | 96 | ||
100 | return result; | 97 | return result; |
101 | }, | 98 | }, |
102 | 99 | ||
103 | //----------------------------------------------------------------------------- | 100 | //----------------------------------------------------------------------------- |
104 | 101 | ||
105 | 'add': function(aPointA, aPointB) { | 102 | 'add': function(aPointA, aPointB) { |
106 | var result; | 103 | var result; |
107 | 104 | ||
108 | //console.log(">>> ECC.BinaryField.Curve.add"); | 105 | //console.log(">>> ECC.BinaryField.Curve.add"); |
109 | if (aPointA.isZero()) { | 106 | if (aPointA.isZero()) { |
110 | //console.log("--- pointA == zero"); | 107 | //console.log("--- pointA == zero"); |
111 | result = aPointB; | 108 | result = aPointB; |
112 | } else if (aPointB.isZero()) { | 109 | } else if (aPointB.isZero()) { |
113 | //console.log("--- pointB == zero"); | 110 | //console.log("--- pointB == zero"); |
114 | result = aPointA; | 111 | result = aPointA; |
115 | } else if ((aPointA.x().compare(aPointB.x()) == 0) && ((aPointA.y().compare(aPointB.y()) != 0) || aPointB.x().isZero())) { | 112 | } else if ((aPointA.x().compare(aPointB.x()) == 0) && ((aPointA.y().compare(aPointB.y()) != 0) || aPointB.x().isZero())) { |
116 | //console.log("compare A.x - B.x: ", aPointA.x().compare(aPointB.x())); | 113 | //console.log("compare A.x - B.x: ", aPointA.x().compare(aPointB.x())); |
117 | //console.log("compare A.y - B.y: ", (aPointA.y().compare(aPointB.y()) != 0)); | 114 | //console.log("compare A.y - B.y: ", (aPointA.y().compare(aPointB.y()) != 0)); |
118 | //console.log("compare B.x.isZero(): ", aPointB.x().isZero()); | 115 | //console.log("compare B.x.isZero(): ", aPointB.x().isZero()); |
119 | 116 | ||
120 | //console.log("--- result = zero"); | 117 | //console.log("--- result = zero"); |
diff --git a/frontend/gamma/js/Clipperz/Crypto/ECC/BinaryField/FiniteField.js b/frontend/gamma/js/Clipperz/Crypto/ECC/BinaryField/FiniteField.js index a649c9f..56f257a 100644 --- a/frontend/gamma/js/Clipperz/Crypto/ECC/BinaryField/FiniteField.js +++ b/frontend/gamma/js/Clipperz/Crypto/ECC/BinaryField/FiniteField.js | |||
@@ -1,120 +1,117 @@ | |||
1 | /* | 1 | /* |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | */ | 24 | */ |
28 | 25 | ||
29 | //try { if (typeof(Clipperz.ByteArray) == 'undefined') { throw ""; }} catch (e) { | 26 | //try { if (typeof(Clipperz.ByteArray) == 'undefined') { throw ""; }} catch (e) { |
30 | //throw "Clipperz.Crypto.ECC depends on Clipperz.ByteArray!"; | 27 | //throw "Clipperz.Crypto.ECC depends on Clipperz.ByteArray!"; |
31 | //} | 28 | //} |
32 | if (typeof(Clipperz.Crypto.ECC) == 'undefined') { Clipperz.Crypto.ECC = {}; } | 29 | if (typeof(Clipperz.Crypto.ECC) == 'undefined') { Clipperz.Crypto.ECC = {}; } |
33 | if (typeof(Clipperz.Crypto.ECC.BinaryField) == 'undefined') { Clipperz.Crypto.ECC.BinaryField = {}; } | 30 | if (typeof(Clipperz.Crypto.ECC.BinaryField) == 'undefined') { Clipperz.Crypto.ECC.BinaryField = {}; } |
34 | 31 | ||
35 | Clipperz.Crypto.ECC.BinaryField.FiniteField = function(args) { | 32 | Clipperz.Crypto.ECC.BinaryField.FiniteField = function(args) { |
36 | args = args || {}; | 33 | args = args || {}; |
37 | this._modulus = args.modulus; | 34 | this._modulus = args.modulus; |
38 | 35 | ||
39 | return this; | 36 | return this; |
40 | } | 37 | } |
41 | 38 | ||
42 | Clipperz.Crypto.ECC.BinaryField.FiniteField.prototype = MochiKit.Base.update(null, { | 39 | Clipperz.Crypto.ECC.BinaryField.FiniteField.prototype = MochiKit.Base.update(null, { |
43 | 40 | ||
44 | 'asString': function() { | 41 | 'asString': function() { |
45 | return "Clipperz.Crypto.ECC.BinaryField.FiniteField (" + this.modulus().asString() + ")"; | 42 | return "Clipperz.Crypto.ECC.BinaryField.FiniteField (" + this.modulus().asString() + ")"; |
46 | }, | 43 | }, |
47 | 44 | ||
48 | //----------------------------------------------------------------------------- | 45 | //----------------------------------------------------------------------------- |
49 | 46 | ||
50 | 'modulus': function() { | 47 | 'modulus': function() { |
51 | return this._modulus; | 48 | return this._modulus; |
52 | }, | 49 | }, |
53 | 50 | ||
54 | //----------------------------------------------------------------------------- | 51 | //----------------------------------------------------------------------------- |
55 | 52 | ||
56 | '_module': function(aValue) { | 53 | '_module': function(aValue) { |
57 | varresult; | 54 | varresult; |
58 | var modulusComparison; | 55 | var modulusComparison; |
59 | //console.log(">>> binaryField.finiteField.(standard)module"); | 56 | //console.log(">>> binaryField.finiteField.(standard)module"); |
60 | 57 | ||
61 | modulusComparison = Clipperz.Crypto.ECC.BinaryField.Value._compare(aValue, this.modulus()._value); | 58 | modulusComparison = Clipperz.Crypto.ECC.BinaryField.Value._compare(aValue, this.modulus()._value); |
62 | 59 | ||
63 | if (modulusComparison < 0) { | 60 | if (modulusComparison < 0) { |
64 | result = aValue; | 61 | result = aValue; |
65 | } else if (modulusComparison == 0) { | 62 | } else if (modulusComparison == 0) { |
66 | result = [0]; | 63 | result = [0]; |
67 | } else { | 64 | } else { |
68 | var modulusBitSize; | 65 | var modulusBitSize; |
69 | var resultBitSize; | 66 | var resultBitSize; |
70 | 67 | ||
71 | result = aValue; | 68 | result = aValue; |
72 | 69 | ||
73 | modulusBitSize = this.modulus().bitSize(); | 70 | modulusBitSize = this.modulus().bitSize(); |
74 | resultBitSize = Clipperz.Crypto.ECC.BinaryField.Value._bitSize(result); | 71 | resultBitSize = Clipperz.Crypto.ECC.BinaryField.Value._bitSize(result); |
75 | while (resultBitSize >= modulusBitSize) { | 72 | while (resultBitSize >= modulusBitSize) { |
76 | Clipperz.Crypto.ECC.BinaryField.Value._overwriteXor(result, Clipperz.Crypto.ECC.BinaryField.Value._shiftLeft(this.modulus()._value, resultBitSize - modulusBitSize)); | 73 | Clipperz.Crypto.ECC.BinaryField.Value._overwriteXor(result, Clipperz.Crypto.ECC.BinaryField.Value._shiftLeft(this.modulus()._value, resultBitSize - modulusBitSize)); |
77 | resultBitSize = Clipperz.Crypto.ECC.BinaryField.Value._bitSize(result); | 74 | resultBitSize = Clipperz.Crypto.ECC.BinaryField.Value._bitSize(result); |
78 | } | 75 | } |
79 | } | 76 | } |
80 | //console.log("<<< binaryField.finiteField.(standard)module"); | 77 | //console.log("<<< binaryField.finiteField.(standard)module"); |
81 | 78 | ||
82 | return result; | 79 | return result; |
83 | }, | 80 | }, |
84 | 81 | ||
85 | 'module': function(aValue) { | 82 | 'module': function(aValue) { |
86 | return new Clipperz.Crypto.ECC.BinaryField.Value(this._module(aValue._value.slice(0))); | 83 | return new Clipperz.Crypto.ECC.BinaryField.Value(this._module(aValue._value.slice(0))); |
87 | }, | 84 | }, |
88 | 85 | ||
89 | //----------------------------------------------------------------------------- | 86 | //----------------------------------------------------------------------------- |
90 | 87 | ||
91 | '_add': function(a, b) { | 88 | '_add': function(a, b) { |
92 | return Clipperz.Crypto.ECC.BinaryField.Value._xor(a, b); | 89 | return Clipperz.Crypto.ECC.BinaryField.Value._xor(a, b); |
93 | }, | 90 | }, |
94 | 91 | ||
95 | '_overwriteAdd': function(a, b) { | 92 | '_overwriteAdd': function(a, b) { |
96 | Clipperz.Crypto.ECC.BinaryField.Value._overwriteXor(a, b); | 93 | Clipperz.Crypto.ECC.BinaryField.Value._overwriteXor(a, b); |
97 | }, | 94 | }, |
98 | 95 | ||
99 | 'add': function(a, b) { | 96 | 'add': function(a, b) { |
100 | return new Clipperz.Crypto.ECC.BinaryField.Value(this._add(a._value, b._value)); | 97 | return new Clipperz.Crypto.ECC.BinaryField.Value(this._add(a._value, b._value)); |
101 | }, | 98 | }, |
102 | 99 | ||
103 | //----------------------------------------------------------------------------- | 100 | //----------------------------------------------------------------------------- |
104 | 101 | ||
105 | 'negate': function(aValue) { | 102 | 'negate': function(aValue) { |
106 | return aValue.clone(); | 103 | return aValue.clone(); |
107 | }, | 104 | }, |
108 | 105 | ||
109 | //----------------------------------------------------------------------------- | 106 | //----------------------------------------------------------------------------- |
110 | 107 | ||
111 | '_multiply': function(a, b) { | 108 | '_multiply': function(a, b) { |
112 | var result; | 109 | var result; |
113 | var valueToXor; | 110 | var valueToXor; |
114 | var i,c; | 111 | var i,c; |
115 | 112 | ||
116 | result = [0]; | 113 | result = [0]; |
117 | valueToXor = b; | 114 | valueToXor = b; |
118 | c = Clipperz.Crypto.ECC.BinaryField.Value._bitSize(a); | 115 | c = Clipperz.Crypto.ECC.BinaryField.Value._bitSize(a); |
119 | for (i=0; i<c; i++) { | 116 | for (i=0; i<c; i++) { |
120 | if (Clipperz.Crypto.ECC.BinaryField.Value._isBitSet(a, i) === true) { | 117 | if (Clipperz.Crypto.ECC.BinaryField.Value._isBitSet(a, i) === true) { |
diff --git a/frontend/gamma/js/Clipperz/Crypto/ECC/BinaryField/Point.js b/frontend/gamma/js/Clipperz/Crypto/ECC/BinaryField/Point.js index b7a5537..ffe287b 100644 --- a/frontend/gamma/js/Clipperz/Crypto/ECC/BinaryField/Point.js +++ b/frontend/gamma/js/Clipperz/Crypto/ECC/BinaryField/Point.js | |||
@@ -1,67 +1,64 @@ | |||
1 | /* | 1 | /* |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | */ | 24 | */ |
28 | 25 | ||
29 | //try { if (typeof(Clipperz.ByteArray) == 'undefined') { throw ""; }} catch (e) { | 26 | //try { if (typeof(Clipperz.ByteArray) == 'undefined') { throw ""; }} catch (e) { |
30 | //throw "Clipperz.Crypto.ECC depends on Clipperz.ByteArray!"; | 27 | //throw "Clipperz.Crypto.ECC depends on Clipperz.ByteArray!"; |
31 | //} | 28 | //} |
32 | if (typeof(Clipperz.Crypto.ECC) == 'undefined') { Clipperz.Crypto.ECC = {}; } | 29 | if (typeof(Clipperz.Crypto.ECC) == 'undefined') { Clipperz.Crypto.ECC = {}; } |
33 | if (typeof(Clipperz.Crypto.ECC.BinaryField) == 'undefined') { Clipperz.Crypto.ECC.BinaryField = {}; } | 30 | if (typeof(Clipperz.Crypto.ECC.BinaryField) == 'undefined') { Clipperz.Crypto.ECC.BinaryField = {}; } |
34 | 31 | ||
35 | Clipperz.Crypto.ECC.BinaryField.Point = function(args) { | 32 | Clipperz.Crypto.ECC.BinaryField.Point = function(args) { |
36 | args = args || {}; | 33 | args = args || {}; |
37 | this._x = args.x; | 34 | this._x = args.x; |
38 | this._y = args.y; | 35 | this._y = args.y; |
39 | 36 | ||
40 | return this; | 37 | return this; |
41 | } | 38 | } |
42 | 39 | ||
43 | Clipperz.Crypto.ECC.BinaryField.Point.prototype = MochiKit.Base.update(null, { | 40 | Clipperz.Crypto.ECC.BinaryField.Point.prototype = MochiKit.Base.update(null, { |
44 | 41 | ||
45 | 'asString': function() { | 42 | 'asString': function() { |
46 | return "Clipperz.Crypto.ECC.BinaryField.Point (" + this.x() + ", " + this.y() + ")"; | 43 | return "Clipperz.Crypto.ECC.BinaryField.Point (" + this.x() + ", " + this.y() + ")"; |
47 | }, | 44 | }, |
48 | 45 | ||
49 | //----------------------------------------------------------------------------- | 46 | //----------------------------------------------------------------------------- |
50 | 47 | ||
51 | 'x': function() { | 48 | 'x': function() { |
52 | return this._x; | 49 | return this._x; |
53 | }, | 50 | }, |
54 | 51 | ||
55 | 'y': function() { | 52 | 'y': function() { |
56 | return this._y; | 53 | return this._y; |
57 | }, | 54 | }, |
58 | 55 | ||
59 | //----------------------------------------------------------------------------- | 56 | //----------------------------------------------------------------------------- |
60 | 57 | ||
61 | 'isZero': function() { | 58 | 'isZero': function() { |
62 | return (this.x().isZero() && this.y().isZero()) | 59 | return (this.x().isZero() && this.y().isZero()) |
63 | }, | 60 | }, |
64 | 61 | ||
65 | //----------------------------------------------------------------------------- | 62 | //----------------------------------------------------------------------------- |
66 | __syntaxFix__: "syntax fix" | 63 | __syntaxFix__: "syntax fix" |
67 | }); | 64 | }); |
diff --git a/frontend/gamma/js/Clipperz/Crypto/ECC/BinaryField/Value.js b/frontend/gamma/js/Clipperz/Crypto/ECC/BinaryField/Value.js index 5a430d1..b705a20 100644 --- a/frontend/gamma/js/Clipperz/Crypto/ECC/BinaryField/Value.js +++ b/frontend/gamma/js/Clipperz/Crypto/ECC/BinaryField/Value.js | |||
@@ -1,120 +1,117 @@ | |||
1 | /* | 1 | /* |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | */ | 24 | */ |
28 | 25 | ||
29 | //try { if (typeof(Clipperz.ByteArray) == 'undefined') { throw ""; }} catch (e) { | 26 | //try { if (typeof(Clipperz.ByteArray) == 'undefined') { throw ""; }} catch (e) { |
30 | //throw "Clipperz.Crypto.ECC depends on Clipperz.ByteArray!"; | 27 | //throw "Clipperz.Crypto.ECC depends on Clipperz.ByteArray!"; |
31 | //} | 28 | //} |
32 | if (typeof(Clipperz) == 'undefined') { Clipperz = {}; } | 29 | if (typeof(Clipperz) == 'undefined') { Clipperz = {}; } |
33 | if (typeof(Clipperz.Crypto) == 'undefined') { Clipperz.Crypto = {}; } | 30 | if (typeof(Clipperz.Crypto) == 'undefined') { Clipperz.Crypto = {}; } |
34 | if (typeof(Clipperz.Crypto.ECC) == 'undefined') { Clipperz.Crypto.ECC = {}; } | 31 | if (typeof(Clipperz.Crypto.ECC) == 'undefined') { Clipperz.Crypto.ECC = {}; } |
35 | if (typeof(Clipperz.Crypto.ECC.BinaryField) == 'undefined') { Clipperz.Crypto.ECC.BinaryField = {}; } | 32 | if (typeof(Clipperz.Crypto.ECC.BinaryField) == 'undefined') { Clipperz.Crypto.ECC.BinaryField = {}; } |
36 | 33 | ||
37 | Clipperz.Crypto.ECC.BinaryField.Value = function(aValue, aBase, aBitSize) { | 34 | Clipperz.Crypto.ECC.BinaryField.Value = function(aValue, aBase, aBitSize) { |
38 | if (aValue.constructor == String) { | 35 | if (aValue.constructor == String) { |
39 | varvalue; | 36 | varvalue; |
40 | varstringLength; | 37 | varstringLength; |
41 | var numberOfWords; | 38 | var numberOfWords; |
42 | vari,c; | 39 | vari,c; |
43 | 40 | ||
44 | if (aBase != 16) { | 41 | if (aBase != 16) { |
45 | throw Clipperz.Crypto.ECC.BinaryField.Value.exception.UnsupportedBase; | 42 | throw Clipperz.Crypto.ECC.BinaryField.Value.exception.UnsupportedBase; |
46 | } | 43 | } |
47 | 44 | ||
48 | value = aValue.replace(/ /g, ''); | 45 | value = aValue.replace(/ /g, ''); |
49 | stringLength = value.length; | 46 | stringLength = value.length; |
50 | numberOfWords = Math.ceil(stringLength / 8); | 47 | numberOfWords = Math.ceil(stringLength / 8); |
51 | this._value = new Array(numberOfWords); | 48 | this._value = new Array(numberOfWords); |
52 | 49 | ||
53 | c = numberOfWords; | 50 | c = numberOfWords; |
54 | for (i=0; i<c; i++) { | 51 | for (i=0; i<c; i++) { |
55 | varword; | 52 | varword; |
56 | 53 | ||
57 | if (i < (c-1)) { | 54 | if (i < (c-1)) { |
58 | word = parseInt(value.substr(stringLength-((i+1)*8), 8), 16); | 55 | word = parseInt(value.substr(stringLength-((i+1)*8), 8), 16); |
59 | } else { | 56 | } else { |
60 | word = parseInt(value.substr(0, stringLength-(i*8)), 16); | 57 | word = parseInt(value.substr(0, stringLength-(i*8)), 16); |
61 | } | 58 | } |
62 | 59 | ||
63 | this._value[i] = word; | 60 | this._value[i] = word; |
64 | } | 61 | } |
65 | } else if (aValue.constructor == Array) { | 62 | } else if (aValue.constructor == Array) { |
66 | var itemsToCopy; | 63 | var itemsToCopy; |
67 | 64 | ||
68 | itemsToCopy = aValue.length; | 65 | itemsToCopy = aValue.length; |
69 | while (aValue[itemsToCopy - 1] == 0) { | 66 | while (aValue[itemsToCopy - 1] == 0) { |
70 | itemsToCopy --; | 67 | itemsToCopy --; |
71 | } | 68 | } |
72 | 69 | ||
73 | this._value = aValue.slice(0, itemsToCopy); | 70 | this._value = aValue.slice(0, itemsToCopy); |
74 | } else if (aValue.constructor == Number) { | 71 | } else if (aValue.constructor == Number) { |
75 | this._value = [aValue]; | 72 | this._value = [aValue]; |
76 | } else { | 73 | } else { |
77 | // throw Clipperz.Crypto.ECC.BinaryField.Value.exception.UnsupportedConstructorValueType; | 74 | // throw Clipperz.Crypto.ECC.BinaryField.Value.exception.UnsupportedConstructorValueType; |
78 | } | 75 | } |
79 | 76 | ||
80 | this._bitSize == aBitSize || null; | 77 | this._bitSize == aBitSize || null; |
81 | 78 | ||
82 | return this; | 79 | return this; |
83 | } | 80 | } |
84 | 81 | ||
85 | Clipperz.Crypto.ECC.BinaryField.Value.prototype = MochiKit.Base.update(null, { | 82 | Clipperz.Crypto.ECC.BinaryField.Value.prototype = MochiKit.Base.update(null, { |
86 | 83 | ||
87 | 'value': function() { | 84 | 'value': function() { |
88 | return this._value; | 85 | return this._value; |
89 | }, | 86 | }, |
90 | 87 | ||
91 | //----------------------------------------------------------------------------- | 88 | //----------------------------------------------------------------------------- |
92 | 89 | ||
93 | 'wordSize': function() { | 90 | 'wordSize': function() { |
94 | return this._value.length | 91 | return this._value.length |
95 | }, | 92 | }, |
96 | 93 | ||
97 | //----------------------------------------------------------------------------- | 94 | //----------------------------------------------------------------------------- |
98 | 95 | ||
99 | 'clone': function() { | 96 | 'clone': function() { |
100 | return new Clipperz.Crypto.ECC.BinaryField.Value(this._value.slice(0), null, this._bitSize); | 97 | return new Clipperz.Crypto.ECC.BinaryField.Value(this._value.slice(0), null, this._bitSize); |
101 | }, | 98 | }, |
102 | 99 | ||
103 | //----------------------------------------------------------------------------- | 100 | //----------------------------------------------------------------------------- |
104 | 101 | ||
105 | 'isZero': function() { | 102 | 'isZero': function() { |
106 | return (this.compare(Clipperz.Crypto.ECC.BinaryField.Value.O) == 0); | 103 | return (this.compare(Clipperz.Crypto.ECC.BinaryField.Value.O) == 0); |
107 | }, | 104 | }, |
108 | 105 | ||
109 | //----------------------------------------------------------------------------- | 106 | //----------------------------------------------------------------------------- |
110 | 107 | ||
111 | 'asString': function(aBase) { | 108 | 'asString': function(aBase) { |
112 | varresult; | 109 | varresult; |
113 | var i,c; | 110 | var i,c; |
114 | 111 | ||
115 | if (aBase != 16) { | 112 | if (aBase != 16) { |
116 | throw Clipperz.Crypto.ECC.BinaryField.Value.exception.UnsupportedBase; | 113 | throw Clipperz.Crypto.ECC.BinaryField.Value.exception.UnsupportedBase; |
117 | } | 114 | } |
118 | 115 | ||
119 | result = ""; | 116 | result = ""; |
120 | c = this.wordSize(); | 117 | c = this.wordSize(); |
diff --git a/frontend/gamma/js/Clipperz/Crypto/ECC/StandardCurves.js b/frontend/gamma/js/Clipperz/Crypto/ECC/StandardCurves.js index ae2b8fb..be197e3 100644 --- a/frontend/gamma/js/Clipperz/Crypto/ECC/StandardCurves.js +++ b/frontend/gamma/js/Clipperz/Crypto/ECC/StandardCurves.js | |||
@@ -1,120 +1,117 @@ | |||
1 | /* | 1 | /* |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | */ | 24 | */ |
28 | 25 | ||
29 | //try { if (typeof(Clipperz.Crypto.ECC.BinaryField.Curve) == 'undefined') { throw ""; }} catch (e) { | 26 | //try { if (typeof(Clipperz.Crypto.ECC.BinaryField.Curve) == 'undefined') { throw ""; }} catch (e) { |
30 | //throw "Clipperz.Crypto.ECC depends on Clipperz.Crypto.ECC.BinaryField.Curve!"; | 27 | //throw "Clipperz.Crypto.ECC depends on Clipperz.Crypto.ECC.BinaryField.Curve!"; |
31 | //} | 28 | //} |
32 | //try { if (typeof(Clipperz.Crypto.ECC.Koblitz.Curve) == 'undefined') { throw ""; }} catch (e) { | 29 | //try { if (typeof(Clipperz.Crypto.ECC.Koblitz.Curve) == 'undefined') { throw ""; }} catch (e) { |
33 | //throw "Clipperz.Crypto.ECC depends on Clipperz.Crypto.ECC.Koblitz.Curve!"; | 30 | //throw "Clipperz.Crypto.ECC depends on Clipperz.Crypto.ECC.Koblitz.Curve!"; |
34 | //} | 31 | //} |
35 | 32 | ||
36 | Clipperz.Crypto.ECC.StandardCurves = {}; | 33 | Clipperz.Crypto.ECC.StandardCurves = {}; |
37 | 34 | ||
38 | MochiKit.Base.update(Clipperz.Crypto.ECC.StandardCurves, { | 35 | MochiKit.Base.update(Clipperz.Crypto.ECC.StandardCurves, { |
39 | 36 | ||
40 | //============================================================================== | 37 | //============================================================================== |
41 | 38 | ||
42 | '_K571': null, | 39 | '_K571': null, |
43 | 'K571': function() { //f(z) = z^571 + z^10 + z^5 + z^2 + 1 | 40 | 'K571': function() { //f(z) = z^571 + z^10 + z^5 + z^2 + 1 |
44 | if ((Clipperz.Crypto.ECC.StandardCurves._K571 == null) && (typeof(Clipperz.Crypto.ECC.Koblitz.Curve) != 'undefined')) { | 41 | if ((Clipperz.Crypto.ECC.StandardCurves._K571 == null) && (typeof(Clipperz.Crypto.ECC.Koblitz.Curve) != 'undefined')) { |
45 | Clipperz.Crypto.ECC.StandardCurves._K571 = new Clipperz.Crypto.ECC.Koblitz.Curve({ | 42 | Clipperz.Crypto.ECC.StandardCurves._K571 = new Clipperz.Crypto.ECC.Koblitz.Curve({ |
46 | modulus: new Clipperz.Crypto.ECC.Koblitz.Value('08000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000425', 16), | 43 | modulus: new Clipperz.Crypto.ECC.Koblitz.Value('08000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000425', 16), |
47 | a: new Clipperz.Crypto.ECC.Koblitz.Value('0', 16), | 44 | a: new Clipperz.Crypto.ECC.Koblitz.Value('0', 16), |
48 | b: new Clipperz.Crypto.ECC.Koblitz.Value('1', 16), | 45 | b: new Clipperz.Crypto.ECC.Koblitz.Value('1', 16), |
49 | G: new Clipperz.Crypto.ECC.Koblitz.Point({ | 46 | G: new Clipperz.Crypto.ECC.Koblitz.Point({ |
50 | x: new Clipperz.Crypto.ECC.Koblitz.Value('026eb7a8 59923fbc 82189631 f8103fe4 ac9ca297 0012d5d4 60248048 01841ca4 43709584 93b205e6 47da304d b4ceb08c bbd1ba39 494776fb 988b4717 4dca88c7 e2945283 a01c8972', 16), | 47 | x: new Clipperz.Crypto.ECC.Koblitz.Value('026eb7a8 59923fbc 82189631 f8103fe4 ac9ca297 0012d5d4 60248048 01841ca4 43709584 93b205e6 47da304d b4ceb08c bbd1ba39 494776fb 988b4717 4dca88c7 e2945283 a01c8972', 16), |
51 | y: new Clipperz.Crypto.ECC.Koblitz.Value('0349dc80 7f4fbf37 4f4aeade 3bca9531 4dd58cec 9f307a54 ffc61efc 006d8a2c 9d4979c0 ac44aea7 4fbebbb9 f772aedc b620b01a 7ba7af1b 320430c8 591984f6 01cd4c14 3ef1c7a3', 16) | 48 | y: new Clipperz.Crypto.ECC.Koblitz.Value('0349dc80 7f4fbf37 4f4aeade 3bca9531 4dd58cec 9f307a54 ffc61efc 006d8a2c 9d4979c0 ac44aea7 4fbebbb9 f772aedc b620b01a 7ba7af1b 320430c8 591984f6 01cd4c14 3ef1c7a3', 16) |
52 | }), | 49 | }), |
53 | r: new Clipperz.Crypto.ECC.Koblitz.Value('02000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 131850e1 f19a63e4 b391a8db 917f4138 b630d84b e5d63938 1e91deb4 5cfe778f 637c1001', 16), | 50 | r: new Clipperz.Crypto.ECC.Koblitz.Value('02000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 131850e1 f19a63e4 b391a8db 917f4138 b630d84b e5d63938 1e91deb4 5cfe778f 637c1001', 16), |
54 | h: new Clipperz.Crypto.ECC.Koblitz.Value('4', 16), | 51 | h: new Clipperz.Crypto.ECC.Koblitz.Value('4', 16), |
55 | primeFactor: new Clipperz.Crypto.ECC.Koblitz.Value('02000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 131850e1 f19a63e4 b391a8db 917f4138 b630d84b e5d63938 1e91deb4 5cfe778f 637c1001', 16) | 52 | primeFactor: new Clipperz.Crypto.ECC.Koblitz.Value('02000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 131850e1 f19a63e4 b391a8db 917f4138 b630d84b e5d63938 1e91deb4 5cfe778f 637c1001', 16) |
56 | }); | 53 | }); |
57 | } | 54 | } |
58 | 55 | ||
59 | return Clipperz.Crypto.ECC.StandardCurves._K571; | 56 | return Clipperz.Crypto.ECC.StandardCurves._K571; |
60 | }, | 57 | }, |
61 | 58 | ||
62 | //----------------------------------------------------------------------------- | 59 | //----------------------------------------------------------------------------- |
63 | 60 | ||
64 | '_K283': null, | 61 | '_K283': null, |
65 | 'K283': function() { //f(z) = z^283 + z^12 + z^7 + z^5 + 1 | 62 | 'K283': function() { //f(z) = z^283 + z^12 + z^7 + z^5 + 1 |
66 | if ((Clipperz.Crypto.ECC.StandardCurves._K283 == null) && (typeof(Clipperz.Crypto.ECC.Koblitz.Curve) != 'undefined')) { | 63 | if ((Clipperz.Crypto.ECC.StandardCurves._K283 == null) && (typeof(Clipperz.Crypto.ECC.Koblitz.Curve) != 'undefined')) { |
67 | Clipperz.Crypto.ECC.StandardCurves._K283 = new Clipperz.Crypto.ECC.Koblitz.Curve({ | 64 | Clipperz.Crypto.ECC.StandardCurves._K283 = new Clipperz.Crypto.ECC.Koblitz.Curve({ |
68 | modulus: new Clipperz.Crypto.ECC.Koblitz.Value('08000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 000010a1', 16), | 65 | modulus: new Clipperz.Crypto.ECC.Koblitz.Value('08000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 000010a1', 16), |
69 | a: new Clipperz.Crypto.ECC.Koblitz.Value('0', 16), | 66 | a: new Clipperz.Crypto.ECC.Koblitz.Value('0', 16), |
70 | b: new Clipperz.Crypto.ECC.Koblitz.Value('1', 16), | 67 | b: new Clipperz.Crypto.ECC.Koblitz.Value('1', 16), |
71 | G: new Clipperz.Crypto.ECC.Koblitz.Point({ | 68 | G: new Clipperz.Crypto.ECC.Koblitz.Point({ |
72 | x: new Clipperz.Crypto.ECC.Koblitz.Value('0503213f 78ca4488 3f1a3b81 62f188e5 53cd265f 23c1567a 16876913 b0c2ac24 58492836', 16), | 69 | x: new Clipperz.Crypto.ECC.Koblitz.Value('0503213f 78ca4488 3f1a3b81 62f188e5 53cd265f 23c1567a 16876913 b0c2ac24 58492836', 16), |
73 | y: new Clipperz.Crypto.ECC.Koblitz.Value('01ccda38 0f1c9e31 8d90f95d 07e5426f e87e45c0 e8184698 e4596236 4e341161 77dd2259', 16) | 70 | y: new Clipperz.Crypto.ECC.Koblitz.Value('01ccda38 0f1c9e31 8d90f95d 07e5426f e87e45c0 e8184698 e4596236 4e341161 77dd2259', 16) |
74 | }), | 71 | }), |
75 | r: new Clipperz.Crypto.ECC.Koblitz.Value('01ffffff ffffffff ffffffff ffffffff ffffe9ae 2ed07577 265dff7f 94451e06 1e163c61', 16), | 72 | r: new Clipperz.Crypto.ECC.Koblitz.Value('01ffffff ffffffff ffffffff ffffffff ffffe9ae 2ed07577 265dff7f 94451e06 1e163c61', 16), |
76 | h: new Clipperz.Crypto.ECC.Koblitz.Value('4', 16), | 73 | h: new Clipperz.Crypto.ECC.Koblitz.Value('4', 16), |
77 | primeFactor: new Clipperz.Crypto.ECC.Koblitz.Value('01ffffff ffffffff ffffffff ffffffff ffffe9ae 2ed07577 265dff7f 94451e06 1e163c61', 16) | 74 | primeFactor: new Clipperz.Crypto.ECC.Koblitz.Value('01ffffff ffffffff ffffffff ffffffff ffffe9ae 2ed07577 265dff7f 94451e06 1e163c61', 16) |
78 | }); | 75 | }); |
79 | } | 76 | } |
80 | 77 | ||
81 | return Clipperz.Crypto.ECC.StandardCurves._K283; | 78 | return Clipperz.Crypto.ECC.StandardCurves._K283; |
82 | }, | 79 | }, |
83 | 80 | ||
84 | //============================================================================== | 81 | //============================================================================== |
85 | 82 | ||
86 | '_B571': null, | 83 | '_B571': null, |
87 | 'B571': function() { //f(z) = z^571 + z^10 + z^5 + z^2 + 1 | 84 | 'B571': function() { //f(z) = z^571 + z^10 + z^5 + z^2 + 1 |
88 | if ((Clipperz.Crypto.ECC.StandardCurves._B571 == null) && (typeof(Clipperz.Crypto.ECC.BinaryField.Curve) != 'undefined')) { | 85 | if ((Clipperz.Crypto.ECC.StandardCurves._B571 == null) && (typeof(Clipperz.Crypto.ECC.BinaryField.Curve) != 'undefined')) { |
89 | Clipperz.Crypto.ECC.StandardCurves._B571 = new Clipperz.Crypto.ECC.BinaryField.Curve({ | 86 | Clipperz.Crypto.ECC.StandardCurves._B571 = new Clipperz.Crypto.ECC.BinaryField.Curve({ |
90 | modulus: new Clipperz.Crypto.ECC.BinaryField.Value('08000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000425', 16), | 87 | modulus: new Clipperz.Crypto.ECC.BinaryField.Value('08000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000425', 16), |
91 | a: new Clipperz.Crypto.ECC.BinaryField.Value('1', 16), | 88 | a: new Clipperz.Crypto.ECC.BinaryField.Value('1', 16), |
92 | b: new Clipperz.Crypto.ECC.BinaryField.Value('02f40e7e 2221f295 de297117 b7f3d62f 5c6a97ff cb8ceff1 cd6ba8ce 4a9a18ad 84ffabbd 8efa5933 2be7ad67 56a66e29 4afd185a 78ff12aa 520e4de7 39baca0c 7ffeff7f 2955727a', 16), | 89 | b: new Clipperz.Crypto.ECC.BinaryField.Value('02f40e7e 2221f295 de297117 b7f3d62f 5c6a97ff cb8ceff1 cd6ba8ce 4a9a18ad 84ffabbd 8efa5933 2be7ad67 56a66e29 4afd185a 78ff12aa 520e4de7 39baca0c 7ffeff7f 2955727a', 16), |
93 | G: new Clipperz.Crypto.ECC.BinaryField.Point({ | 90 | G: new Clipperz.Crypto.ECC.BinaryField.Point({ |
94 | x: new Clipperz.Crypto.ECC.BinaryField.Value('0303001d 34b85629 6c16c0d4 0d3cd775 0a93d1d2 955fa80a a5f40fc8 db7b2abd bde53950 f4c0d293 cdd711a3 5b67fb14 99ae6003 8614f139 4abfa3b4 c850d927 e1e7769c 8eec2d19', 16), | 91 | x: new Clipperz.Crypto.ECC.BinaryField.Value('0303001d 34b85629 6c16c0d4 0d3cd775 0a93d1d2 955fa80a a5f40fc8 db7b2abd bde53950 f4c0d293 cdd711a3 5b67fb14 99ae6003 8614f139 4abfa3b4 c850d927 e1e7769c 8eec2d19', 16), |
95 | y: new Clipperz.Crypto.ECC.BinaryField.Value('037bf273 42da639b 6dccfffe b73d69d7 8c6c27a6 009cbbca 1980f853 3921e8a6 84423e43 bab08a57 6291af8f 461bb2a8 b3531d2f 0485c19b 16e2f151 6e23dd3c 1a4827af 1b8ac15b', 16) | 92 | y: new Clipperz.Crypto.ECC.BinaryField.Value('037bf273 42da639b 6dccfffe b73d69d7 8c6c27a6 009cbbca 1980f853 3921e8a6 84423e43 bab08a57 6291af8f 461bb2a8 b3531d2f 0485c19b 16e2f151 6e23dd3c 1a4827af 1b8ac15b', 16) |
96 | }), | 93 | }), |
97 | r: new Clipperz.Crypto.ECC.BinaryField.Value('03ffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff e661ce18 ff559873 08059b18 6823851e c7dd9ca1 161de93d 5174d66e 8382e9bb 2fe84e47', 16), | 94 | r: new Clipperz.Crypto.ECC.BinaryField.Value('03ffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff e661ce18 ff559873 08059b18 6823851e c7dd9ca1 161de93d 5174d66e 8382e9bb 2fe84e47', 16), |
98 | h: new Clipperz.Crypto.ECC.BinaryField.Value('2', 16) | 95 | h: new Clipperz.Crypto.ECC.BinaryField.Value('2', 16) |
99 | 96 | ||
100 | // S: new Clipperz.Crypto.ECC.BinaryField.Value('2aa058f73a0e33ab486b0f610410c53a7f132310', 10), | 97 | // S: new Clipperz.Crypto.ECC.BinaryField.Value('2aa058f73a0e33ab486b0f610410c53a7f132310', 10), |
101 | // n: new Clipperz.Crypto.ECC.BinaryField.Value('03ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe661ce18ff55987308059b186823851ec7dd9ca1161de93d5174d66e8382e9bb2fe84e47', 16) | 98 | // n: new Clipperz.Crypto.ECC.BinaryField.Value('03ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe661ce18ff55987308059b186823851ec7dd9ca1161de93d5174d66e8382e9bb2fe84e47', 16) |
102 | }); | 99 | }); |
103 | 100 | ||
104 | //----------------------------------------------------------------------------- | 101 | //----------------------------------------------------------------------------- |
105 | // | 102 | // |
106 | //Guide to Elliptic Curve Cryptography | 103 | //Guide to Elliptic Curve Cryptography |
107 | //Darrel Hankerson, Alfred Menezes, Scott Vanstone | 104 | //Darrel Hankerson, Alfred Menezes, Scott Vanstone |
108 | //- Pag: 56, Alorithm 2.45 (with a typo!!!) | 105 | //- Pag: 56, Alorithm 2.45 (with a typo!!!) |
109 | // | 106 | // |
110 | //----------------------------------------------------------------------------- | 107 | //----------------------------------------------------------------------------- |
111 | // | 108 | // |
112 | // http://www.milw0rm.com/papers/136 | 109 | // http://www.milw0rm.com/papers/136 |
113 | // | 110 | // |
114 | // ------------------------------------------------------------------------- | 111 | // ------------------------------------------------------------------------- |
115 | // Polynomial Reduction Algorithm Modulo f571 | 112 | // Polynomial Reduction Algorithm Modulo f571 |
116 | // ------------------------------------------------------------------------- | 113 | // ------------------------------------------------------------------------- |
117 | // | 114 | // |
118 | // Input: Polynomial p(x) of degree 1140 or less, stored as | 115 | // Input: Polynomial p(x) of degree 1140 or less, stored as |
119 | // an array of 2T machinewords. | 116 | // an array of 2T machinewords. |
120 | // Output: p(x) mod f571(x) | 117 | // Output: p(x) mod f571(x) |
diff --git a/frontend/gamma/js/Clipperz/Crypto/PRNG.js b/frontend/gamma/js/Clipperz/Crypto/PRNG.js index 266b909..adfdb16 100644 --- a/frontend/gamma/js/Clipperz/Crypto/PRNG.js +++ b/frontend/gamma/js/Clipperz/Crypto/PRNG.js | |||
@@ -1,120 +1,117 @@ | |||
1 | /* | 1 | /* |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | */ | 24 | */ |
28 | 25 | ||
29 | try { if (typeof(Clipperz.ByteArray) == 'undefined') { throw ""; }} catch (e) { | 26 | try { if (typeof(Clipperz.ByteArray) == 'undefined') { throw ""; }} catch (e) { |
30 | throw "Clipperz.Crypto.PRNG depends on Clipperz.ByteArray!"; | 27 | throw "Clipperz.Crypto.PRNG depends on Clipperz.ByteArray!"; |
31 | } | 28 | } |
32 | 29 | ||
33 | try { if (typeof(Clipperz.Crypto.SHA) == 'undefined') { throw ""; }} catch (e) { | 30 | try { if (typeof(Clipperz.Crypto.SHA) == 'undefined') { throw ""; }} catch (e) { |
34 | throw "Clipperz.Crypto.PRNG depends on Clipperz.Crypto.SHA!"; | 31 | throw "Clipperz.Crypto.PRNG depends on Clipperz.Crypto.SHA!"; |
35 | } | 32 | } |
36 | 33 | ||
37 | try { if (typeof(Clipperz.Crypto.AES) == 'undefined') { throw ""; }} catch (e) { | 34 | try { if (typeof(Clipperz.Crypto.AES) == 'undefined') { throw ""; }} catch (e) { |
38 | throw "Clipperz.Crypto.PRNG depends on Clipperz.Crypto.AES!"; | 35 | throw "Clipperz.Crypto.PRNG depends on Clipperz.Crypto.AES!"; |
39 | } | 36 | } |
40 | 37 | ||
41 | if (typeof(Clipperz.Crypto.PRNG) == 'undefined') { Clipperz.Crypto.PRNG = {}; } | 38 | if (typeof(Clipperz.Crypto.PRNG) == 'undefined') { Clipperz.Crypto.PRNG = {}; } |
42 | 39 | ||
43 | //############################################################################# | 40 | //############################################################################# |
44 | 41 | ||
45 | Clipperz.Crypto.PRNG.EntropyAccumulator = function(args) { | 42 | Clipperz.Crypto.PRNG.EntropyAccumulator = function(args) { |
46 | args = args || {}; | 43 | args = args || {}; |
47 | //MochiKit.Base.bindMethods(this); | 44 | //MochiKit.Base.bindMethods(this); |
48 | 45 | ||
49 | this._stack = new Clipperz.ByteArray(); | 46 | this._stack = new Clipperz.ByteArray(); |
50 | this._maxStackLengthBeforeHashing = args.maxStackLengthBeforeHashing || 256; | 47 | this._maxStackLengthBeforeHashing = args.maxStackLengthBeforeHashing || 256; |
51 | return this; | 48 | return this; |
52 | } | 49 | } |
53 | 50 | ||
54 | Clipperz.Crypto.PRNG.EntropyAccumulator.prototype = MochiKit.Base.update(null, { | 51 | Clipperz.Crypto.PRNG.EntropyAccumulator.prototype = MochiKit.Base.update(null, { |
55 | 52 | ||
56 | 'toString': function() { | 53 | 'toString': function() { |
57 | return "Clipperz.Crypto.PRNG.EntropyAccumulator"; | 54 | return "Clipperz.Crypto.PRNG.EntropyAccumulator"; |
58 | }, | 55 | }, |
59 | 56 | ||
60 | //------------------------------------------------------------------------- | 57 | //------------------------------------------------------------------------- |
61 | 58 | ||
62 | 'stack': function() { | 59 | 'stack': function() { |
63 | return this._stack; | 60 | return this._stack; |
64 | }, | 61 | }, |
65 | 62 | ||
66 | 'setStack': function(aValue) { | 63 | 'setStack': function(aValue) { |
67 | this._stack = aValue; | 64 | this._stack = aValue; |
68 | }, | 65 | }, |
69 | 66 | ||
70 | 'resetStack': function() { | 67 | 'resetStack': function() { |
71 | this.stack().reset(); | 68 | this.stack().reset(); |
72 | }, | 69 | }, |
73 | 70 | ||
74 | 'maxStackLengthBeforeHashing': function() { | 71 | 'maxStackLengthBeforeHashing': function() { |
75 | return this._maxStackLengthBeforeHashing; | 72 | return this._maxStackLengthBeforeHashing; |
76 | }, | 73 | }, |
77 | 74 | ||
78 | //------------------------------------------------------------------------- | 75 | //------------------------------------------------------------------------- |
79 | 76 | ||
80 | 'addRandomByte': function(aValue) { | 77 | 'addRandomByte': function(aValue) { |
81 | this.stack().appendByte(aValue); | 78 | this.stack().appendByte(aValue); |
82 | 79 | ||
83 | if (this.stack().length() > this.maxStackLengthBeforeHashing()) { | 80 | if (this.stack().length() > this.maxStackLengthBeforeHashing()) { |
84 | this.setStack(Clipperz.Crypto.SHA.sha_d256(this.stack())); | 81 | this.setStack(Clipperz.Crypto.SHA.sha_d256(this.stack())); |
85 | } | 82 | } |
86 | }, | 83 | }, |
87 | 84 | ||
88 | //------------------------------------------------------------------------- | 85 | //------------------------------------------------------------------------- |
89 | __syntaxFix__: "syntax fix" | 86 | __syntaxFix__: "syntax fix" |
90 | }); | 87 | }); |
91 | 88 | ||
92 | //############################################################################# | 89 | //############################################################################# |
93 | 90 | ||
94 | Clipperz.Crypto.PRNG.RandomnessSource = function(args) { | 91 | Clipperz.Crypto.PRNG.RandomnessSource = function(args) { |
95 | args = args || {}; | 92 | args = args || {}; |
96 | MochiKit.Base.bindMethods(this); | 93 | MochiKit.Base.bindMethods(this); |
97 | 94 | ||
98 | this._generator = args.generator || null; | 95 | this._generator = args.generator || null; |
99 | this._sourceId = args.sourceId || null; | 96 | this._sourceId = args.sourceId || null; |
100 | this._boostMode = args.boostMode || false; | 97 | this._boostMode = args.boostMode || false; |
101 | 98 | ||
102 | this._nextPoolIndex = 0; | 99 | this._nextPoolIndex = 0; |
103 | 100 | ||
104 | return this; | 101 | return this; |
105 | } | 102 | } |
106 | 103 | ||
107 | Clipperz.Crypto.PRNG.RandomnessSource.prototype = MochiKit.Base.update(null, { | 104 | Clipperz.Crypto.PRNG.RandomnessSource.prototype = MochiKit.Base.update(null, { |
108 | 105 | ||
109 | 'generator': function() { | 106 | 'generator': function() { |
110 | return this._generator; | 107 | return this._generator; |
111 | }, | 108 | }, |
112 | 109 | ||
113 | 'setGenerator': function(aValue) { | 110 | 'setGenerator': function(aValue) { |
114 | this._generator = aValue; | 111 | this._generator = aValue; |
115 | }, | 112 | }, |
116 | 113 | ||
117 | //------------------------------------------------------------------------- | 114 | //------------------------------------------------------------------------- |
118 | 115 | ||
119 | 'boostMode': function() { | 116 | 'boostMode': function() { |
120 | return this._boostMode; | 117 | return this._boostMode; |
diff --git a/frontend/gamma/js/Clipperz/Crypto/RSA.js b/frontend/gamma/js/Clipperz/Crypto/RSA.js index 4dad8f7..6844dba 100644 --- a/frontend/gamma/js/Clipperz/Crypto/RSA.js +++ b/frontend/gamma/js/Clipperz/Crypto/RSA.js | |||
@@ -1,120 +1,117 @@ | |||
1 | /* | 1 | /* |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | */ | 24 | */ |
28 | 25 | ||
29 | try { if (typeof(Clipperz.Crypto.BigInt) == 'undefined') { throw ""; }} catch (e) { | 26 | try { if (typeof(Clipperz.Crypto.BigInt) == 'undefined') { throw ""; }} catch (e) { |
30 | throw "Clipperz.Crypto.RSA depends on Clipperz.Crypto.BigInt!"; | 27 | throw "Clipperz.Crypto.RSA depends on Clipperz.Crypto.BigInt!"; |
31 | } | 28 | } |
32 | 29 | ||
33 | if (typeof(Clipperz.Crypto.RSA) == 'undefined') { Clipperz.Crypto.RSA = {}; } | 30 | if (typeof(Clipperz.Crypto.RSA) == 'undefined') { Clipperz.Crypto.RSA = {}; } |
34 | 31 | ||
35 | Clipperz.Crypto.RSA.VERSION = "0.1"; | 32 | Clipperz.Crypto.RSA.VERSION = "0.1"; |
36 | Clipperz.Crypto.RSA.NAME = "Clipperz.RSA"; | 33 | Clipperz.Crypto.RSA.NAME = "Clipperz.RSA"; |
37 | 34 | ||
38 | //############################################################################# | 35 | //############################################################################# |
39 | 36 | ||
40 | MochiKit.Base.update(Clipperz.Crypto.RSA, { | 37 | MochiKit.Base.update(Clipperz.Crypto.RSA, { |
41 | 38 | ||
42 | //------------------------------------------------------------------------- | 39 | //------------------------------------------------------------------------- |
43 | 40 | ||
44 | 'publicKeyWithValues': function (e, d, n) { | 41 | 'publicKeyWithValues': function (e, d, n) { |
45 | varresult; | 42 | varresult; |
46 | 43 | ||
47 | result = {}; | 44 | result = {}; |
48 | 45 | ||
49 | if (e.isBigInt) { | 46 | if (e.isBigInt) { |
50 | result.e = e; | 47 | result.e = e; |
51 | } else { | 48 | } else { |
52 | result.e = new Clipperz.Crypto.BigInt(e, 16); | 49 | result.e = new Clipperz.Crypto.BigInt(e, 16); |
53 | } | 50 | } |
54 | 51 | ||
55 | if (d.isBigInt) { | 52 | if (d.isBigInt) { |
56 | result.d = d; | 53 | result.d = d; |
57 | } else { | 54 | } else { |
58 | result.d = new Clipperz.Crypto.BigInt(d, 16); | 55 | result.d = new Clipperz.Crypto.BigInt(d, 16); |
59 | } | 56 | } |
60 | 57 | ||
61 | if (n.isBigInt) { | 58 | if (n.isBigInt) { |
62 | result.n = n; | 59 | result.n = n; |
63 | } else { | 60 | } else { |
64 | result.n = new Clipperz.Crypto.BigInt(n, 16); | 61 | result.n = new Clipperz.Crypto.BigInt(n, 16); |
65 | } | 62 | } |
66 | 63 | ||
67 | return result; | 64 | return result; |
68 | }, | 65 | }, |
69 | 66 | ||
70 | 'privateKeyWithValues': function(e, d, n) { | 67 | 'privateKeyWithValues': function(e, d, n) { |
71 | return Clipperz.Crypto.RSA.publicKeyWithValues(e, d, n); | 68 | return Clipperz.Crypto.RSA.publicKeyWithValues(e, d, n); |
72 | }, | 69 | }, |
73 | 70 | ||
74 | //----------------------------------------------------------------------------- | 71 | //----------------------------------------------------------------------------- |
75 | 72 | ||
76 | 'encryptUsingPublicKey': function (aKey, aMessage) { | 73 | 'encryptUsingPublicKey': function (aKey, aMessage) { |
77 | varmessageValue; | 74 | varmessageValue; |
78 | varresult; | 75 | varresult; |
79 | 76 | ||
80 | messageValue = new Clipperz.Crypto.BigInt(aMessage, 16); | 77 | messageValue = new Clipperz.Crypto.BigInt(aMessage, 16); |
81 | result = messageValue.powerModule(aKey.e, aKey.n); | 78 | result = messageValue.powerModule(aKey.e, aKey.n); |
82 | 79 | ||
83 | return result.asString(16); | 80 | return result.asString(16); |
84 | }, | 81 | }, |
85 | 82 | ||
86 | //............................................................................. | 83 | //............................................................................. |
87 | 84 | ||
88 | 'decryptUsingPublicKey': function (aKey, aMessage) { | 85 | 'decryptUsingPublicKey': function (aKey, aMessage) { |
89 | return Clipperz.Crypto.RSA.encryptUsingPublicKey(aKey, aMessage); | 86 | return Clipperz.Crypto.RSA.encryptUsingPublicKey(aKey, aMessage); |
90 | }, | 87 | }, |
91 | 88 | ||
92 | //----------------------------------------------------------------------------- | 89 | //----------------------------------------------------------------------------- |
93 | 90 | ||
94 | 'encryptUsingPrivateKey': function (aKey, aMessage) { | 91 | 'encryptUsingPrivateKey': function (aKey, aMessage) { |
95 | varmessageValue; | 92 | varmessageValue; |
96 | varresult; | 93 | varresult; |
97 | 94 | ||
98 | messageValue = new Clipperz.Crypto.BigInt(aMessage, 16); | 95 | messageValue = new Clipperz.Crypto.BigInt(aMessage, 16); |
99 | result = messageValue.powerModule(aKey.d, aKey.n); | 96 | result = messageValue.powerModule(aKey.d, aKey.n); |
100 | 97 | ||
101 | return result.asString(16); | 98 | return result.asString(16); |
102 | }, | 99 | }, |
103 | 100 | ||
104 | //............................................................................. | 101 | //............................................................................. |
105 | 102 | ||
106 | 'decryptUsingPrivateKey': function (aKey, aMessage) { | 103 | 'decryptUsingPrivateKey': function (aKey, aMessage) { |
107 | return Clipperz.Crypto.RSA.encryptUsingPrivateKey(aKey, aMessage); | 104 | return Clipperz.Crypto.RSA.encryptUsingPrivateKey(aKey, aMessage); |
108 | }, | 105 | }, |
109 | 106 | ||
110 | //----------------------------------------------------------------------------- | 107 | //----------------------------------------------------------------------------- |
111 | 108 | ||
112 | 'generatePublicKey': function(aNumberOfBits) { | 109 | 'generatePublicKey': function(aNumberOfBits) { |
113 | varresult; | 110 | varresult; |
114 | vare; | 111 | vare; |
115 | vard; | 112 | vard; |
116 | varn; | 113 | varn; |
117 | 114 | ||
118 | e = new Clipperz.Crypto.BigInt("10001", 16); | 115 | e = new Clipperz.Crypto.BigInt("10001", 16); |
119 | 116 | ||
120 | { | 117 | { |
diff --git a/frontend/gamma/js/Clipperz/Crypto/SHA.js b/frontend/gamma/js/Clipperz/Crypto/SHA.js index 3cf8559..b07fa85 100644 --- a/frontend/gamma/js/Clipperz/Crypto/SHA.js +++ b/frontend/gamma/js/Clipperz/Crypto/SHA.js | |||
@@ -1,120 +1,117 @@ | |||
1 | /* | 1 | /* |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | */ | 24 | */ |
28 | 25 | ||
29 | try { if (typeof(Clipperz.ByteArray) == 'undefined') { throw ""; }} catch (e) { | 26 | try { if (typeof(Clipperz.ByteArray) == 'undefined') { throw ""; }} catch (e) { |
30 | throw "Clipperz.Crypto.PRNG depends on Clipperz.ByteArray!"; | 27 | throw "Clipperz.Crypto.PRNG depends on Clipperz.ByteArray!"; |
31 | } | 28 | } |
32 | 29 | ||
33 | if (typeof(Clipperz.Crypto) == 'undefined') { Clipperz.Crypto = {}; } | 30 | if (typeof(Clipperz.Crypto) == 'undefined') { Clipperz.Crypto = {}; } |
34 | if (typeof(Clipperz.Crypto.SHA) == 'undefined') { Clipperz.Crypto.SHA = {}; } | 31 | if (typeof(Clipperz.Crypto.SHA) == 'undefined') { Clipperz.Crypto.SHA = {}; } |
35 | 32 | ||
36 | Clipperz.Crypto.SHA.VERSION = "0.3"; | 33 | Clipperz.Crypto.SHA.VERSION = "0.3"; |
37 | Clipperz.Crypto.SHA.NAME = "Clipperz.Crypto.SHA"; | 34 | Clipperz.Crypto.SHA.NAME = "Clipperz.Crypto.SHA"; |
38 | 35 | ||
39 | MochiKit.Base.update(Clipperz.Crypto.SHA, { | 36 | MochiKit.Base.update(Clipperz.Crypto.SHA, { |
40 | 37 | ||
41 | '__repr__': function () { | 38 | '__repr__': function () { |
42 | return "[" + this.NAME + " " + this.VERSION + "]"; | 39 | return "[" + this.NAME + " " + this.VERSION + "]"; |
43 | }, | 40 | }, |
44 | 41 | ||
45 | 'toString': function () { | 42 | 'toString': function () { |
46 | return this.__repr__(); | 43 | return this.__repr__(); |
47 | }, | 44 | }, |
48 | 45 | ||
49 | //----------------------------------------------------------------------------- | 46 | //----------------------------------------------------------------------------- |
50 | 47 | ||
51 | 'rotateRight': function(aValue, aNumberOfBits) { | 48 | 'rotateRight': function(aValue, aNumberOfBits) { |
52 | //Clipperz.Profile.start("Clipperz.Crypto.SHA.rotateRight"); | 49 | //Clipperz.Profile.start("Clipperz.Crypto.SHA.rotateRight"); |
53 | var result; | 50 | var result; |
54 | 51 | ||
55 | result = (aValue >>> aNumberOfBits) | (aValue << (32 - aNumberOfBits)); | 52 | result = (aValue >>> aNumberOfBits) | (aValue << (32 - aNumberOfBits)); |
56 | 53 | ||
57 | //Clipperz.Profile.stop("Clipperz.Crypto.SHA.rotateRight"); | 54 | //Clipperz.Profile.stop("Clipperz.Crypto.SHA.rotateRight"); |
58 | return result; | 55 | return result; |
59 | }, | 56 | }, |
60 | 57 | ||
61 | 'shiftRight': function(aValue, aNumberOfBits) { | 58 | 'shiftRight': function(aValue, aNumberOfBits) { |
62 | //Clipperz.Profile.start("Clipperz.Crypto.SHA.shiftRight"); | 59 | //Clipperz.Profile.start("Clipperz.Crypto.SHA.shiftRight"); |
63 | var result; | 60 | var result; |
64 | 61 | ||
65 | result = aValue >>> aNumberOfBits; | 62 | result = aValue >>> aNumberOfBits; |
66 | 63 | ||
67 | //Clipperz.Profile.stop("Clipperz.Crypto.SHA.shiftRight"); | 64 | //Clipperz.Profile.stop("Clipperz.Crypto.SHA.shiftRight"); |
68 | return result; | 65 | return result; |
69 | }, | 66 | }, |
70 | 67 | ||
71 | //----------------------------------------------------------------------------- | 68 | //----------------------------------------------------------------------------- |
72 | 69 | ||
73 | 'safeAdd': function() { | 70 | 'safeAdd': function() { |
74 | //Clipperz.Profile.start("Clipperz.Crypto.SHA.safeAdd"); | 71 | //Clipperz.Profile.start("Clipperz.Crypto.SHA.safeAdd"); |
75 | varresult; | 72 | varresult; |
76 | vari, c; | 73 | vari, c; |
77 | 74 | ||
78 | result = arguments[0]; | 75 | result = arguments[0]; |
79 | c = arguments.length; | 76 | c = arguments.length; |
80 | for (i=1; i<c; i++) { | 77 | for (i=1; i<c; i++) { |
81 | varlowerBytesSum; | 78 | varlowerBytesSum; |
82 | 79 | ||
83 | lowerBytesSum = (result & 0xffff) + (arguments[i] & 0xffff); | 80 | lowerBytesSum = (result & 0xffff) + (arguments[i] & 0xffff); |
84 | result = (((result >> 16) + (arguments[i] >> 16) + (lowerBytesSum >> 16)) << 16) | (lowerBytesSum & 0xffff); | 81 | result = (((result >> 16) + (arguments[i] >> 16) + (lowerBytesSum >> 16)) << 16) | (lowerBytesSum & 0xffff); |
85 | } | 82 | } |
86 | 83 | ||
87 | //Clipperz.Profile.stop("Clipperz.Crypto.SHA.safeAdd"); | 84 | //Clipperz.Profile.stop("Clipperz.Crypto.SHA.safeAdd"); |
88 | return result; | 85 | return result; |
89 | }, | 86 | }, |
90 | 87 | ||
91 | //----------------------------------------------------------------------------- | 88 | //----------------------------------------------------------------------------- |
92 | 89 | ||
93 | 'sha256_array': function(aValue) { | 90 | 'sha256_array': function(aValue) { |
94 | //Clipperz.Profile.start("Clipperz.Crypto.SHA.sha256_array"); | 91 | //Clipperz.Profile.start("Clipperz.Crypto.SHA.sha256_array"); |
95 | varresult; | 92 | varresult; |
96 | varmessage; | 93 | varmessage; |
97 | var h0, h1, h2, h3, h4, h5, h6, h7; | 94 | var h0, h1, h2, h3, h4, h5, h6, h7; |
98 | vark; | 95 | vark; |
99 | varmessageLength; | 96 | varmessageLength; |
100 | varmessageLengthInBits; | 97 | varmessageLengthInBits; |
101 | var_i, _c; | 98 | var_i, _c; |
102 | var charBits; | 99 | var charBits; |
103 | var rotateRight; | 100 | var rotateRight; |
104 | var shiftRight; | 101 | var shiftRight; |
105 | var safeAdd; | 102 | var safeAdd; |
106 | varbytesPerBlock; | 103 | varbytesPerBlock; |
107 | var currentMessageIndex; | 104 | var currentMessageIndex; |
108 | 105 | ||
109 | bytesPerBlock = 512/8; | 106 | bytesPerBlock = 512/8; |
110 | rotateRight = Clipperz.Crypto.SHA.rotateRight; | 107 | rotateRight = Clipperz.Crypto.SHA.rotateRight; |
111 | shiftRight = Clipperz.Crypto.SHA.shiftRight; | 108 | shiftRight = Clipperz.Crypto.SHA.shiftRight; |
112 | safeAdd = Clipperz.Crypto.SHA.safeAdd; | 109 | safeAdd = Clipperz.Crypto.SHA.safeAdd; |
113 | 110 | ||
114 | charBits = 8; | 111 | charBits = 8; |
115 | 112 | ||
116 | h0 = 0x6a09e667; | 113 | h0 = 0x6a09e667; |
117 | h1 = 0xbb67ae85; | 114 | h1 = 0xbb67ae85; |
118 | h2 = 0x3c6ef372; | 115 | h2 = 0x3c6ef372; |
119 | h3 = 0xa54ff53a; | 116 | h3 = 0xa54ff53a; |
120 | h4 = 0x510e527f; | 117 | h4 = 0x510e527f; |
diff --git a/frontend/gamma/js/Clipperz/Crypto/SRP.js b/frontend/gamma/js/Clipperz/Crypto/SRP.js index 0eef6ec..3b25275 100644 --- a/frontend/gamma/js/Clipperz/Crypto/SRP.js +++ b/frontend/gamma/js/Clipperz/Crypto/SRP.js | |||
@@ -1,120 +1,117 @@ | |||
1 | /* | 1 | /* |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | */ | 24 | */ |
28 | 25 | ||
29 | try { if (typeof(Clipperz.ByteArray) == 'undefined') { throw ""; }} catch (e) { | 26 | try { if (typeof(Clipperz.ByteArray) == 'undefined') { throw ""; }} catch (e) { |
30 | throw "Clipperz.Crypto.PRNG depends on Clipperz.ByteArray!"; | 27 | throw "Clipperz.Crypto.PRNG depends on Clipperz.ByteArray!"; |
31 | } | 28 | } |
32 | 29 | ||
33 | try { if (typeof(Clipperz.Crypto.BigInt) == 'undefined') { throw ""; }} catch (e) { | 30 | try { if (typeof(Clipperz.Crypto.BigInt) == 'undefined') { throw ""; }} catch (e) { |
34 | throw "Clipperz.Crypto.SRP depends on Clipperz.Crypto.BigInt!"; | 31 | throw "Clipperz.Crypto.SRP depends on Clipperz.Crypto.BigInt!"; |
35 | } | 32 | } |
36 | 33 | ||
37 | try { if (typeof(Clipperz.Crypto.PRNG) == 'undefined') { throw ""; }} catch (e) { | 34 | try { if (typeof(Clipperz.Crypto.PRNG) == 'undefined') { throw ""; }} catch (e) { |
38 | throw "Clipperz.Crypto.SRP depends on Clipperz.Crypto.PRNG!"; | 35 | throw "Clipperz.Crypto.SRP depends on Clipperz.Crypto.PRNG!"; |
39 | } | 36 | } |
40 | 37 | ||
41 | if (typeof(Clipperz.Crypto.SRP) == 'undefined') { Clipperz.Crypto.SRP = {}; } | 38 | if (typeof(Clipperz.Crypto.SRP) == 'undefined') { Clipperz.Crypto.SRP = {}; } |
42 | 39 | ||
43 | Clipperz.Crypto.SRP.VERSION = "0.1"; | 40 | Clipperz.Crypto.SRP.VERSION = "0.1"; |
44 | Clipperz.Crypto.SRP.NAME = "Clipperz.Crypto.SRP"; | 41 | Clipperz.Crypto.SRP.NAME = "Clipperz.Crypto.SRP"; |
45 | 42 | ||
46 | //############################################################################# | 43 | //############################################################################# |
47 | 44 | ||
48 | MochiKit.Base.update(Clipperz.Crypto.SRP, { | 45 | MochiKit.Base.update(Clipperz.Crypto.SRP, { |
49 | 46 | ||
50 | '_n': null, | 47 | '_n': null, |
51 | '_g': null, | 48 | '_g': null, |
52 | //------------------------------------------------------------------------- | 49 | //------------------------------------------------------------------------- |
53 | 50 | ||
54 | 'n': function() { | 51 | 'n': function() { |
55 | if (Clipperz.Crypto.SRP._n == null) { | 52 | if (Clipperz.Crypto.SRP._n == null) { |
56 | Clipperz.Crypto.SRP._n = new Clipperz.Crypto.BigInt("115b8b692e0e045692cf280b436735c77a5a9e8a9e7ed56c965f87db5b2a2ece3", 16); | 53 | Clipperz.Crypto.SRP._n = new Clipperz.Crypto.BigInt("115b8b692e0e045692cf280b436735c77a5a9e8a9e7ed56c965f87db5b2a2ece3", 16); |
57 | } | 54 | } |
58 | 55 | ||
59 | return Clipperz.Crypto.SRP._n; | 56 | return Clipperz.Crypto.SRP._n; |
60 | }, | 57 | }, |
61 | 58 | ||
62 | //------------------------------------------------------------------------- | 59 | //------------------------------------------------------------------------- |
63 | 60 | ||
64 | 'g': function() { | 61 | 'g': function() { |
65 | if (Clipperz.Crypto.SRP._g == null) { | 62 | if (Clipperz.Crypto.SRP._g == null) { |
66 | Clipperz.Crypto.SRP._g = new Clipperz.Crypto.BigInt(2); //eventually 5 (as suggested on the Diffi-Helmann documentation) | 63 | Clipperz.Crypto.SRP._g = new Clipperz.Crypto.BigInt(2); //eventually 5 (as suggested on the Diffi-Helmann documentation) |
67 | } | 64 | } |
68 | 65 | ||
69 | return Clipperz.Crypto.SRP._g; | 66 | return Clipperz.Crypto.SRP._g; |
70 | }, | 67 | }, |
71 | 68 | ||
72 | //----------------------------------------------------------------------------- | 69 | //----------------------------------------------------------------------------- |
73 | 70 | ||
74 | 'exception': { | 71 | 'exception': { |
75 | 'InvalidValue': new MochiKit.Base.NamedError("Clipperz.Crypto.SRP.exception.InvalidValue") | 72 | 'InvalidValue': new MochiKit.Base.NamedError("Clipperz.Crypto.SRP.exception.InvalidValue") |
76 | }, | 73 | }, |
77 | 74 | ||
78 | //------------------------------------------------------------------------- | 75 | //------------------------------------------------------------------------- |
79 | __syntaxFix__: "syntax fix" | 76 | __syntaxFix__: "syntax fix" |
80 | 77 | ||
81 | }); | 78 | }); |
82 | 79 | ||
83 | //############################################################################# | 80 | //############################################################################# |
84 | // | 81 | // |
85 | // S R P C o n n e c t i o n version 1.0 | 82 | // S R P C o n n e c t i o n version 1.0 |
86 | // | 83 | // |
87 | //============================================================================= | 84 | //============================================================================= |
88 | Clipperz.Crypto.SRP.Connection = function (args) { | 85 | Clipperz.Crypto.SRP.Connection = function (args) { |
89 | args = args || {}; | 86 | args = args || {}; |
90 | 87 | ||
91 | this._C = args.C; | 88 | this._C = args.C; |
92 | this._P = args.P; | 89 | this._P = args.P; |
93 | this.hash = args.hash; | 90 | this.hash = args.hash; |
94 | 91 | ||
95 | this._a = null; | 92 | this._a = null; |
96 | this._A = null; | 93 | this._A = null; |
97 | 94 | ||
98 | this._s = null; | 95 | this._s = null; |
99 | this._B = null; | 96 | this._B = null; |
100 | 97 | ||
101 | this._x = null; | 98 | this._x = null; |
102 | 99 | ||
103 | this._u = null; | 100 | this._u = null; |
104 | this._K = null; | 101 | this._K = null; |
105 | this._M1 = null; | 102 | this._M1 = null; |
106 | this._M2 = null; | 103 | this._M2 = null; |
107 | 104 | ||
108 | this._sessionKey = null; | 105 | this._sessionKey = null; |
109 | 106 | ||
110 | return this; | 107 | return this; |
111 | } | 108 | } |
112 | 109 | ||
113 | Clipperz.Crypto.SRP.Connection.prototype = MochiKit.Base.update(null, { | 110 | Clipperz.Crypto.SRP.Connection.prototype = MochiKit.Base.update(null, { |
114 | 111 | ||
115 | 'toString': function () { | 112 | 'toString': function () { |
116 | return "Clipperz.Crypto.SRP.Connection (username: " + this.username() + "). Status: " + this.statusDescription(); | 113 | return "Clipperz.Crypto.SRP.Connection (username: " + this.username() + "). Status: " + this.statusDescription(); |
117 | }, | 114 | }, |
118 | 115 | ||
119 | //------------------------------------------------------------------------- | 116 | //------------------------------------------------------------------------- |
120 | 117 | ||
diff --git a/frontend/gamma/js/Clipperz/DOM.js b/frontend/gamma/js/Clipperz/DOM.js index 40720d8..8f24653 100644 --- a/frontend/gamma/js/Clipperz/DOM.js +++ b/frontend/gamma/js/Clipperz/DOM.js | |||
@@ -1,120 +1,117 @@ | |||
1 | /* | 1 | /* |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | */ | 24 | */ |
28 | 25 | ||
29 | if (typeof(Clipperz) == 'undefined') { Clipperz = {}; } | 26 | if (typeof(Clipperz) == 'undefined') { Clipperz = {}; } |
30 | if (typeof(Clipperz.DOM) == 'undefined') { Clipperz.DOM = {}; } | 27 | if (typeof(Clipperz.DOM) == 'undefined') { Clipperz.DOM = {}; } |
31 | 28 | ||
32 | Clipperz.DOM.VERSION = "0.1"; | 29 | Clipperz.DOM.VERSION = "0.1"; |
33 | Clipperz.DOM.NAME = "Clipperz.DOM"; | 30 | Clipperz.DOM.NAME = "Clipperz.DOM"; |
34 | 31 | ||
35 | MochiKit.Base.update(Clipperz.DOM, { | 32 | MochiKit.Base.update(Clipperz.DOM, { |
36 | 33 | ||
37 | //------------------------------------------------------------------------- | 34 | //------------------------------------------------------------------------- |
38 | 35 | ||
39 | '__repr__': function () { | 36 | '__repr__': function () { |
40 | return "[" + this.NAME + " " + this.VERSION + "]"; | 37 | return "[" + this.NAME + " " + this.VERSION + "]"; |
41 | }, | 38 | }, |
42 | 39 | ||
43 | //------------------------------------------------------------------------- | 40 | //------------------------------------------------------------------------- |
44 | 41 | ||
45 | 'toString': function () { | 42 | 'toString': function () { |
46 | return this.__repr__(); | 43 | return this.__repr__(); |
47 | }, | 44 | }, |
48 | 45 | ||
49 | //------------------------------------------------------------------------- | 46 | //------------------------------------------------------------------------- |
50 | 47 | ||
51 | 'selectOptionMatchingValue': function (aSelectElement, aValue, shouldUseCaseInsensitiveTest) { | 48 | 'selectOptionMatchingValue': function (aSelectElement, aValue, shouldUseCaseInsensitiveTest) { |
52 | var selectedOptionIndex; | 49 | var selectedOptionIndex; |
53 | var i, c; | 50 | var i, c; |
54 | 51 | ||
55 | selectedOptionIndex = -1; | 52 | selectedOptionIndex = -1; |
56 | 53 | ||
57 | c = aSelectElement.options.length; | 54 | c = aSelectElement.options.length; |
58 | for (i=0; (i<c) && (selectedOptionIndex == -1); i++) { | 55 | for (i=0; (i<c) && (selectedOptionIndex == -1); i++) { |
59 | if (shouldUseCaseInsensitiveTest == true) { | 56 | if (shouldUseCaseInsensitiveTest == true) { |
60 | if (aSelectElement.options[i].value.toLowerCase() == aValue.toLowerCase()) { | 57 | if (aSelectElement.options[i].value.toLowerCase() == aValue.toLowerCase()) { |
61 | selectedOptionIndex = i; | 58 | selectedOptionIndex = i; |
62 | } | 59 | } |
63 | } else { | 60 | } else { |
64 | if (aSelectElement.options[i].value == aValue) { | 61 | if (aSelectElement.options[i].value == aValue) { |
65 | selectedOptionIndex = i; | 62 | selectedOptionIndex = i; |
66 | } | 63 | } |
67 | } | 64 | } |
68 | } | 65 | } |
69 | 66 | ||
70 | if (selectedOptionIndex != -1) { | 67 | if (selectedOptionIndex != -1) { |
71 | aSelectElement.selectedIndex = selectedOptionIndex; | 68 | aSelectElement.selectedIndex = selectedOptionIndex; |
72 | } | 69 | } |
73 | }, | 70 | }, |
74 | 71 | ||
75 | //------------------------------------------------------------------------- | 72 | //------------------------------------------------------------------------- |
76 | 73 | ||
77 | 'setFormContents': function(aNode, someValues) { | 74 | 'setFormContents': function(aNode, someValues) { |
78 | var node; | 75 | var node; |
79 | var values; | 76 | var values; |
80 | var i, c; | 77 | var i, c; |
81 | 78 | ||
82 | values = {}; | 79 | values = {}; |
83 | c = someValues[0].length; | 80 | c = someValues[0].length; |
84 | for (i=0; i<c; i++) { | 81 | for (i=0; i<c; i++) { |
85 | values[someValues[0][i]] = someValues[1][i]; | 82 | values[someValues[0][i]] = someValues[1][i]; |
86 | } | 83 | } |
87 | 84 | ||
88 | // var m = MochiKit.Base; | 85 | // var m = MochiKit.Base; |
89 | // var self = MochiKit.DOM; | 86 | // var self = MochiKit.DOM; |
90 | if (typeof(aNode) == "undefined" || aNode === null) { | 87 | if (typeof(aNode) == "undefined" || aNode === null) { |
91 | node = MochiKit.DOM._document.body; | 88 | node = MochiKit.DOM._document.body; |
92 | } else { | 89 | } else { |
93 | node = MochiKit.DOM.getElement(aNode); | 90 | node = MochiKit.DOM.getElement(aNode); |
94 | } | 91 | } |
95 | 92 | ||
96 | MochiKit.Base.nodeWalk(node, function(aNode) { | 93 | MochiKit.Base.nodeWalk(node, function(aNode) { |
97 | var result; | 94 | var result; |
98 | var name; | 95 | var name; |
99 | 96 | ||
100 | result = null; | 97 | result = null; |
101 | name = aNode.name; | 98 | name = aNode.name; |
102 | if (MochiKit.Base.isNotEmpty(name) && (typeof(values[name]) != 'undefined')) { | 99 | if (MochiKit.Base.isNotEmpty(name) && (typeof(values[name]) != 'undefined')) { |
103 | var tagName; | 100 | var tagName; |
104 | 101 | ||
105 | tagName = aNode.tagName.toUpperCase(); | 102 | tagName = aNode.tagName.toUpperCase(); |
106 | if (tagName === "INPUT" && (aNode.type == "radio" || aNode.type == "checkbox")) { | 103 | if (tagName === "INPUT" && (aNode.type == "radio" || aNode.type == "checkbox")) { |
107 | aNode.checked = values[name]; | 104 | aNode.checked = values[name]; |
108 | } else if (tagName === "SELECT") { | 105 | } else if (tagName === "SELECT") { |
109 | if (aNode.type == "select-one") { | 106 | if (aNode.type == "select-one") { |
110 | Clipperz.DOM.selectOptionMatchingValue(aNode, values[name]); | 107 | Clipperz.DOM.selectOptionMatchingValue(aNode, values[name]); |
111 | } else { //aNode.type == "select-multiple" | 108 | } else { //aNode.type == "select-multiple" |
112 | MochiKit.Logging.logWarning("### unhandled Select.type = 'select-multiple' condition"); | 109 | MochiKit.Logging.logWarning("### unhandled Select.type = 'select-multiple' condition"); |
113 | } | 110 | } |
114 | } else if (tagName === "FORM" || tagName === "P" || tagName === "SPAN" || tagName === "DIV") { | 111 | } else if (tagName === "FORM" || tagName === "P" || tagName === "SPAN" || tagName === "DIV") { |
115 | result = aNode.childNodes; | 112 | result = aNode.childNodes; |
116 | } else { | 113 | } else { |
117 | aNode.value = values[name] | 114 | aNode.value = values[name] |
118 | } | 115 | } |
119 | } else { | 116 | } else { |
120 | result = aNode.childNodes; | 117 | result = aNode.childNodes; |
diff --git a/frontend/gamma/js/Clipperz/Date.js b/frontend/gamma/js/Clipperz/Date.js index 4103b88..020d77b 100644 --- a/frontend/gamma/js/Clipperz/Date.js +++ b/frontend/gamma/js/Clipperz/Date.js | |||
@@ -1,120 +1,117 @@ | |||
1 | /* | 1 | /* |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | */ | 24 | */ |
28 | 25 | ||
29 | if (typeof(Clipperz) == 'undefined') { Clipperz = {}; } | 26 | if (typeof(Clipperz) == 'undefined') { Clipperz = {}; } |
30 | if (typeof(Clipperz.Date) == 'undefined') { Clipperz.Date = {}; } | 27 | if (typeof(Clipperz.Date) == 'undefined') { Clipperz.Date = {}; } |
31 | 28 | ||
32 | Clipperz.Date.VERSION = "0.1"; | 29 | Clipperz.Date.VERSION = "0.1"; |
33 | Clipperz.Date.NAME = "Clipperz.Date"; | 30 | Clipperz.Date.NAME = "Clipperz.Date"; |
34 | 31 | ||
35 | MochiKit.Base.update(Clipperz.Date, { | 32 | MochiKit.Base.update(Clipperz.Date, { |
36 | 33 | ||
37 | //------------------------------------------------------------------------- | 34 | //------------------------------------------------------------------------- |
38 | 35 | ||
39 | '__repr__': function () { | 36 | '__repr__': function () { |
40 | return "[" + this.NAME + " " + this.VERSION + "]"; | 37 | return "[" + this.NAME + " " + this.VERSION + "]"; |
41 | }, | 38 | }, |
42 | 39 | ||
43 | //------------------------------------------------------------------------- | 40 | //------------------------------------------------------------------------- |
44 | 41 | ||
45 | 'toString': function () { | 42 | 'toString': function () { |
46 | return this.__repr__(); | 43 | return this.__repr__(); |
47 | }, | 44 | }, |
48 | 45 | ||
49 | //------------------------------------------------------------------------- | 46 | //------------------------------------------------------------------------- |
50 | 47 | ||
51 | 'daysInMonth': [31,28,31,30,31,30,31,31,30,31,30,31], | 48 | 'daysInMonth': [31,28,31,30,31,30,31,31,30,31,30,31], |
52 | 49 | ||
53 | //------------------------------------------------------------------------- | 50 | //------------------------------------------------------------------------- |
54 | 51 | ||
55 | 'englishOrdinalDaySuffixForDate': function(aDate) { | 52 | 'englishOrdinalDaySuffixForDate': function(aDate) { |
56 | var result; | 53 | var result; |
57 | 54 | ||
58 | switch (aDate.getDate()) { | 55 | switch (aDate.getDate()) { |
59 | case 1: | 56 | case 1: |
60 | case 21: | 57 | case 21: |
61 | case 31: | 58 | case 31: |
62 | result = "st"; | 59 | result = "st"; |
63 | break; | 60 | break; |
64 | case 2: | 61 | case 2: |
65 | case 22: | 62 | case 22: |
66 | result = "nd"; | 63 | result = "nd"; |
67 | break; | 64 | break; |
68 | case 3: | 65 | case 3: |
69 | case 23: | 66 | case 23: |
70 | result = "rd"; | 67 | result = "rd"; |
71 | break; | 68 | break; |
72 | default: | 69 | default: |
73 | result = "th"; | 70 | result = "th"; |
74 | break; | 71 | break; |
75 | } | 72 | } |
76 | 73 | ||
77 | return result; | 74 | return result; |
78 | }, | 75 | }, |
79 | 76 | ||
80 | //------------------------------------------------------------------------- | 77 | //------------------------------------------------------------------------- |
81 | 78 | ||
82 | 'isLeapYear': function(aDate) { | 79 | 'isLeapYear': function(aDate) { |
83 | var year; | 80 | var year; |
84 | var result; | 81 | var result; |
85 | 82 | ||
86 | year = aDate.getFullYear(); | 83 | year = aDate.getFullYear(); |
87 | result = ((year & 0x03) == 0 && (year % 100 || (year % 400 == 0 && year))); | 84 | result = ((year & 0x03) == 0 && (year % 100 || (year % 400 == 0 && year))); |
88 | 85 | ||
89 | return result; | 86 | return result; |
90 | }, | 87 | }, |
91 | 88 | ||
92 | //------------------------------------------------------------------------- | 89 | //------------------------------------------------------------------------- |
93 | 90 | ||
94 | 'getDaysInMonth': function(aDate) { | 91 | 'getDaysInMonth': function(aDate) { |
95 | var result; | 92 | var result; |
96 | 93 | ||
97 | if (aDate.getMonth() == 1) { | 94 | if (aDate.getMonth() == 1) { |
98 | Clipperz.Date.isLeapYear(aDate) | 95 | Clipperz.Date.isLeapYear(aDate) |
99 | result += Clipperz.Date.isLeapYear(aDate) ? 29 : 28; | 96 | result += Clipperz.Date.isLeapYear(aDate) ? 29 : 28; |
100 | } else { | 97 | } else { |
101 | result = Clipperz.Date.daysInMonth[aDate.getMonth()]; | 98 | result = Clipperz.Date.daysInMonth[aDate.getMonth()]; |
102 | } | 99 | } |
103 | 100 | ||
104 | return result; | 101 | return result; |
105 | }, | 102 | }, |
106 | 103 | ||
107 | //------------------------------------------------------------------------- | 104 | //------------------------------------------------------------------------- |
108 | 105 | ||
109 | 'getTimezone': function(aDate) { | 106 | 'getTimezone': function(aDate) { |
110 | var result; | 107 | var result; |
111 | 108 | ||
112 | result = aDate.toString(); | 109 | result = aDate.toString(); |
113 | result = result.replace(/([A-Z]{3}) [0-9]{4}/, '$1'); | 110 | result = result.replace(/([A-Z]{3}) [0-9]{4}/, '$1'); |
114 | result = result.replace(/^.*?\(([A-Z])[a-z]+ ([A-Z])[a-z]+ ([A-Z])[a-z]+\)$/, "$1$2$3"); | 111 | result = result.replace(/^.*?\(([A-Z])[a-z]+ ([A-Z])[a-z]+ ([A-Z])[a-z]+\)$/, "$1$2$3"); |
115 | 112 | ||
116 | return result; | 113 | return result; |
117 | }, | 114 | }, |
118 | 115 | ||
119 | 'getGMTOffset': function(aDate) { | 116 | 'getGMTOffset': function(aDate) { |
120 | return (aDate.getTimezoneOffset() > 0 ? "-" : "+")+ MochiKit.Format.numberFormatter('00')(Math.floor(this.getTimezoneOffset() / 60)) | 117 | return (aDate.getTimezoneOffset() > 0 ? "-" : "+")+ MochiKit.Format.numberFormatter('00')(Math.floor(this.getTimezoneOffset() / 60)) |
diff --git a/frontend/gamma/js/Clipperz/KeePassExportProcessor.js b/frontend/gamma/js/Clipperz/KeePassExportProcessor.js index 06ab5a8..a3c10c8 100644 --- a/frontend/gamma/js/Clipperz/KeePassExportProcessor.js +++ b/frontend/gamma/js/Clipperz/KeePassExportProcessor.js | |||
@@ -1,120 +1,117 @@ | |||
1 | /* | 1 | /* |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | */ | 24 | */ |
28 | 25 | ||
29 | if (typeof(Clipperz) == 'undefined') { Clipperz = {}; } | 26 | if (typeof(Clipperz) == 'undefined') { Clipperz = {}; } |
30 | 27 | ||
31 | 28 | ||
32 | Clipperz.KeePassExportProcessor = function(args) { | 29 | Clipperz.KeePassExportProcessor = function(args) { |
33 | args = args || {}; | 30 | args = args || {}; |
34 | 31 | ||
35 | return this; | 32 | return this; |
36 | } | 33 | } |
37 | 34 | ||
38 | //============================================================================= | 35 | //============================================================================= |
39 | 36 | ||
40 | Clipperz.KeePassExportProcessor.prototype = MochiKit.Base.update(null, { | 37 | Clipperz.KeePassExportProcessor.prototype = MochiKit.Base.update(null, { |
41 | 38 | ||
42 | //------------------------------------------------------------------------- | 39 | //------------------------------------------------------------------------- |
43 | 40 | ||
44 | 'deferredParse_core': function(aContext) { | 41 | 'deferredParse_core': function(aContext) { |
45 | var deferredResult; | 42 | var deferredResult; |
46 | 43 | ||
47 | if (aContext.line == "") { | 44 | if (aContext.line == "") { |
48 | deferredResult = MochiKit.Async.succeed(aContext.result); | 45 | deferredResult = MochiKit.Async.succeed(aContext.result); |
49 | } else { | 46 | } else { |
50 | var record; | 47 | var record; |
51 | 48 | ||
52 | record = this.parseRecord(aContext); | 49 | record = this.parseRecord(aContext); |
53 | if (record != null) { | 50 | if (record != null) { |
54 | aContext.result.push(record); | 51 | aContext.result.push(record); |
55 | } | 52 | } |
56 | 53 | ||
57 | aContext.line = aContext.line.replace(/^\n*/g, "").replace(/\n$/g, ""); | 54 | aContext.line = aContext.line.replace(/^\n*/g, "").replace(/\n$/g, ""); |
58 | 55 | ||
59 | deferredResult = new Clipperz.Async.Deferred("KeePassExportProcessor.deferredParse_core"); | 56 | deferredResult = new Clipperz.Async.Deferred("KeePassExportProcessor.deferredParse_core"); |
60 | deferredResult.addCallbackPass(MochiKit.Signal.signal, this, 'importProcessorProgressUpdate', {status:'processing', size:aContext.size, progress:(aContext.size - aContext.line.length)}); | 57 | deferredResult.addCallbackPass(MochiKit.Signal.signal, this, 'importProcessorProgressUpdate', {status:'processing', size:aContext.size, progress:(aContext.size - aContext.line.length)}); |
61 | deferredResult.addCallback(MochiKit.Async.wait, 0.2); | 58 | deferredResult.addCallback(MochiKit.Async.wait, 0.2); |
62 | deferredResult.addMethod(this, 'deferredParse_core'); | 59 | deferredResult.addMethod(this, 'deferredParse_core'); |
63 | deferredResult.callback(aContext); | 60 | deferredResult.callback(aContext); |
64 | } | 61 | } |
65 | 62 | ||
66 | return deferredResult; | 63 | return deferredResult; |
67 | }, | 64 | }, |
68 | 65 | ||
69 | //......................................................................... | 66 | //......................................................................... |
70 | 67 | ||
71 | 'deferredParse': function(aValue) { | 68 | 'deferredParse': function(aValue) { |
72 | var deferredResult; | 69 | var deferredResult; |
73 | var lines; | 70 | var lines; |
74 | var context; | 71 | var context; |
75 | 72 | ||
76 | lines = aValue.replace(/\r?\n/g, "\n"); | 73 | lines = aValue.replace(/\r?\n/g, "\n"); |
77 | context = { | 74 | context = { |
78 | line: lines, | 75 | line: lines, |
79 | size: lines.length, | 76 | size: lines.length, |
80 | result: [] | 77 | result: [] |
81 | } | 78 | } |
82 | 79 | ||
83 | deferredResult = new Clipperz.Async.Deferred("KeePassExportProcessor.deferredResult"); | 80 | deferredResult = new Clipperz.Async.Deferred("KeePassExportProcessor.deferredResult"); |
84 | deferredResult.addMethod(this, 'deferredParse_core'); | 81 | deferredResult.addMethod(this, 'deferredParse_core'); |
85 | deferredResult.callback(context); | 82 | deferredResult.callback(context); |
86 | 83 | ||
87 | return deferredResult; | 84 | return deferredResult; |
88 | }, | 85 | }, |
89 | 86 | ||
90 | //------------------------------------------------------------------------- | 87 | //------------------------------------------------------------------------- |
91 | 88 | ||
92 | 'parseRecord': function(aContext) { | 89 | 'parseRecord': function(aContext) { |
93 | var result; | 90 | var result; |
94 | var recordLabelRegexp; | 91 | var recordLabelRegexp; |
95 | varfieldLabelRegexp; | 92 | varfieldLabelRegexp; |
96 | var fieldValueRegexp; | 93 | var fieldValueRegexp; |
97 | var fullLineRegexp; | 94 | var fullLineRegexp; |
98 | /* | 95 | /* |
99 | [Record name] | 96 | [Record name] |
100 | Group Tree: | 97 | Group Tree: |
101 | UserName: | 98 | UserName: |
102 | URL: | 99 | URL: |
103 | Password: | 100 | Password: |
104 | Notes: test | 101 | Notes: test |
105 | UUID: 525f62430079bae48b79ed2961924b05 | 102 | UUID: 525f62430079bae48b79ed2961924b05 |
106 | Icon: 0 | 103 | Icon: 0 |
107 | Creation Time: 2007-06-26 17:56:03 | 104 | Creation Time: 2007-06-26 17:56:03 |
108 | Last Access: 2007-10-25 16:23:51 | 105 | Last Access: 2007-10-25 16:23:51 |
109 | Last Modification: 2007-10-25 16:23:51 | 106 | Last Modification: 2007-10-25 16:23:51 |
110 | Expires: 2999-12-28 23:59:59 | 107 | Expires: 2999-12-28 23:59:59 |
111 | 108 | ||
112 | [Record name] ==> Title | 109 | [Record name] ==> Title |
113 | Group: General ==> Group | 110 | Group: General ==> Group |
114 | Group Tree: ==> Group Tree | 111 | Group Tree: ==> Group Tree |
115 | UserName: ==> UserName | 112 | UserName: ==> UserName |
116 | URL: ==>URL | 113 | URL: ==>URL |
117 | Password: ==>Password | 114 | Password: ==>Password |
118 | Notes: test ==>Notes | 115 | Notes: test ==>Notes |
119 | UUID: 525f62430079bae48b79ed2961924b05 ==>UUID | 116 | UUID: 525f62430079bae48b79ed2961924b05 ==>UUID |
120 | Icon: 0 ==>Icon | 117 | Icon: 0 ==>Icon |
diff --git a/frontend/gamma/js/Clipperz/KeyValueObjectStore.js b/frontend/gamma/js/Clipperz/KeyValueObjectStore.js index 04beb85..36cda88 100644 --- a/frontend/gamma/js/Clipperz/KeyValueObjectStore.js +++ b/frontend/gamma/js/Clipperz/KeyValueObjectStore.js | |||
@@ -1,120 +1,117 @@ | |||
1 | /* | 1 | /* |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | */ | 24 | */ |
28 | 25 | ||
29 | if (typeof(Clipperz) == 'undefined') { Clipperz = {}; } | 26 | if (typeof(Clipperz) == 'undefined') { Clipperz = {}; } |
30 | 27 | ||
31 | //############################################################################# | 28 | //############################################################################# |
32 | 29 | ||
33 | Clipperz.KeyValueObjectStore = function(args) { | 30 | Clipperz.KeyValueObjectStore = function(args) { |
34 | args = args || {}; | 31 | args = args || {}; |
35 | 32 | ||
36 | //this._name = args['name'] || "unnamed KeyValueObjectStore"; | 33 | //this._name = args['name'] || "unnamed KeyValueObjectStore"; |
37 | this._values = args['values'] || {}; | 34 | this._values = args['values'] || {}; |
38 | //this._referenceObjectStore = null; | 35 | //this._referenceObjectStore = null; |
39 | //console.log("new KeyValueObjectStore", args, this._values); | 36 | //console.log("new KeyValueObjectStore", args, this._values); |
40 | 37 | ||
41 | return this; | 38 | return this; |
42 | } | 39 | } |
43 | 40 | ||
44 | Clipperz.KeyValueObjectStore.prototype = MochiKit.Base.update(null, { | 41 | Clipperz.KeyValueObjectStore.prototype = MochiKit.Base.update(null, { |
45 | 42 | ||
46 | 'values': function() { | 43 | 'values': function() { |
47 | return this._values; | 44 | return this._values; |
48 | }, | 45 | }, |
49 | 46 | ||
50 | 'initWithValues': function (someValues) { | 47 | 'initWithValues': function (someValues) { |
51 | this._values = Clipperz.Base.deepClone(someValues) || {}; | 48 | this._values = Clipperz.Base.deepClone(someValues) || {}; |
52 | return this; | 49 | return this; |
53 | }, | 50 | }, |
54 | 51 | ||
55 | 'setValues': function (someValues) { | 52 | 'setValues': function (someValues) { |
56 | //console.log("KeyValueObjectStore.setValues", someValues); | 53 | //console.log("KeyValueObjectStore.setValues", someValues); |
57 | this._values = someValues; | 54 | this._values = someValues; |
58 | return this; | 55 | return this; |
59 | }, | 56 | }, |
60 | 57 | ||
61 | //'initWithObjectStore': function (anObjectStore) { | 58 | //'initWithObjectStore': function (anObjectStore) { |
62 | // this._referenceObjectStore = anObjectStore; | 59 | // this._referenceObjectStore = anObjectStore; |
63 | //}, | 60 | //}, |
64 | 61 | ||
65 | 'removeAllData': function () { | 62 | 'removeAllData': function () { |
66 | this._values = {}; | 63 | this._values = {}; |
67 | }, | 64 | }, |
68 | 65 | ||
69 | //------------------------------------------------------------------------- | 66 | //------------------------------------------------------------------------- |
70 | 67 | ||
71 | 'getValue': function(aKeyPath) { | 68 | 'getValue': function(aKeyPath) { |
72 | var result; | 69 | var result; |
73 | var keys; | 70 | var keys; |
74 | var i,c; | 71 | var i,c; |
75 | 72 | ||
76 | result = this.values(); | 73 | result = this.values(); |
77 | 74 | ||
78 | keys = (aKeyPath + '').split('.'); | 75 | keys = (aKeyPath + '').split('.'); |
79 | c = keys.length; | 76 | c = keys.length; |
80 | i = 0; | 77 | i = 0; |
81 | 78 | ||
82 | while ((i<c) && (result != null)) { | 79 | while ((i<c) && (result != null)) { |
83 | if (typeof result[keys[i]] != 'undefined') { | 80 | if (typeof result[keys[i]] != 'undefined') { |
84 | result = result[keys[i]]; | 81 | result = result[keys[i]]; |
85 | } else { | 82 | } else { |
86 | result = null; | 83 | result = null; |
87 | } | 84 | } |
88 | 85 | ||
89 | i++; | 86 | i++; |
90 | } | 87 | } |
91 | 88 | ||
92 | return result; | 89 | return result; |
93 | }, | 90 | }, |
94 | 91 | ||
95 | //------------------------------------------------------------------------- | 92 | //------------------------------------------------------------------------- |
96 | 93 | ||
97 | 'setValue': function(aKeyPath, aValue) { | 94 | 'setValue': function(aKeyPath, aValue) { |
98 | var targetObject; | 95 | var targetObject; |
99 | var keys; | 96 | var keys; |
100 | var i,c; | 97 | var i,c; |
101 | 98 | ||
102 | //console.log(">>> KeyValueObjectStore.setValue", this, this.values(), aKeyPath, aValue); | 99 | //console.log(">>> KeyValueObjectStore.setValue", this, this.values(), aKeyPath, aValue); |
103 | targetObject = this.values(); | 100 | targetObject = this.values(); |
104 | keys = (aKeyPath + '').split('.'); | 101 | keys = (aKeyPath + '').split('.'); |
105 | c = keys.length - 1; | 102 | c = keys.length - 1; |
106 | for (i=0; i<c; i++) { | 103 | for (i=0; i<c; i++) { |
107 | //console.log("--- KeyValueObjectStore.setValue", i, targetObject, keys[i]); | 104 | //console.log("--- KeyValueObjectStore.setValue", i, targetObject, keys[i]); |
108 | if (typeof targetObject[keys[i]] == 'undefined') { | 105 | if (typeof targetObject[keys[i]] == 'undefined') { |
109 | targetObject[keys[i]] = {} | 106 | targetObject[keys[i]] = {} |
110 | } | 107 | } |
111 | 108 | ||
112 | targetObject = targetObject[keys[i]]; | 109 | targetObject = targetObject[keys[i]]; |
113 | } | 110 | } |
114 | 111 | ||
115 | targetObject[keys[c]] = aValue; | 112 | targetObject[keys[c]] = aValue; |
116 | //console.log("<<< KeyValueObjectStore.setValue"); | 113 | //console.log("<<< KeyValueObjectStore.setValue"); |
117 | 114 | ||
118 | return aValue; | 115 | return aValue; |
119 | }, | 116 | }, |
120 | 117 | ||
diff --git a/frontend/gamma/js/Clipperz/Logging.js b/frontend/gamma/js/Clipperz/Logging.js index d6c107e..77a0896 100644 --- a/frontend/gamma/js/Clipperz/Logging.js +++ b/frontend/gamma/js/Clipperz/Logging.js | |||
@@ -1,42 +1,39 @@ | |||
1 | /* | 1 | /* |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | */ | 24 | */ |
28 | 25 | ||
29 | Clipperz.Base.module('Clipperz'); | 26 | Clipperz.Base.module('Clipperz'); |
30 | 27 | ||
31 | if (typeof console == 'undefined') { | 28 | if (typeof console == 'undefined') { |
32 | Clipperz.log = MochiKit.Logging.logDebug; | 29 | Clipperz.log = MochiKit.Logging.logDebug; |
33 | // Safari/WebKit 4 | 30 | // Safari/WebKit 4 |
34 | } else if (navigator.userAgent.match(/WebKit/)) { | 31 | } else if (navigator.userAgent.match(/WebKit/)) { |
35 | //Clipperz.log = console.log; | 32 | //Clipperz.log = console.log; |
36 | Clipperz.log = MochiKit.Logging.logDebug; | 33 | Clipperz.log = MochiKit.Logging.logDebug; |
37 | } else if (navigator.userAgent.match(/Gecko/)) { | 34 | } else if (navigator.userAgent.match(/Gecko/)) { |
38 | Clipperz.log = function () { | 35 | Clipperz.log = function () { |
39 | // firebug 1.3 bug see http://code.google.com/p/fbug/issues/detail?id=1347 | 36 | // firebug 1.3 bug see http://code.google.com/p/fbug/issues/detail?id=1347 |
40 | console.log.apply(window._firebug, arguments); | 37 | console.log.apply(window._firebug, arguments); |
41 | }; | 38 | }; |
42 | } \ No newline at end of file | 39 | } \ No newline at end of file |
diff --git a/frontend/gamma/js/Clipperz/PM/BookmarkletProcessor.js b/frontend/gamma/js/Clipperz/PM/BookmarkletProcessor.js index 789d6b8..897beed 100644 --- a/frontend/gamma/js/Clipperz/PM/BookmarkletProcessor.js +++ b/frontend/gamma/js/Clipperz/PM/BookmarkletProcessor.js | |||
@@ -1,120 +1,117 @@ | |||
1 | /* | 1 | /* |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | */ | 24 | */ |
28 | 25 | ||
29 | /* | 26 | /* |
30 | if (typeof(Clipperz) == 'undefined') { Clipperz = {}; } | 27 | if (typeof(Clipperz) == 'undefined') { Clipperz = {}; } |
31 | if (typeof(Clipperz.PM) == 'undefined') { Clipperz.PM = {}; } | 28 | if (typeof(Clipperz.PM) == 'undefined') { Clipperz.PM = {}; } |
32 | 29 | ||
33 | Clipperz.PM.BookmarkletProcessor = function(aConfiguration) { | 30 | Clipperz.PM.BookmarkletProcessor = function(aConfiguration) { |
34 | this._configuration = aConfiguration; | 31 | this._configuration = aConfiguration; |
35 | 32 | ||
36 | this._editableFields = null; | 33 | this._editableFields = null; |
37 | this._favicon = null; | 34 | this._favicon = null; |
38 | 35 | ||
39 | return this; | 36 | return this; |
40 | } | 37 | } |
41 | 38 | ||
42 | Clipperz.PM.BookmarkletProcessor.prototype = MochiKit.Base.update(null, { | 39 | Clipperz.PM.BookmarkletProcessor.prototype = MochiKit.Base.update(null, { |
43 | 40 | ||
44 | 'toString': function() { | 41 | 'toString': function() { |
45 | return "Clipperz.PM.BookmarkletProcessor"; | 42 | return "Clipperz.PM.BookmarkletProcessor"; |
46 | }, | 43 | }, |
47 | 44 | ||
48 | //------------------------------------------------------------------------- | 45 | //------------------------------------------------------------------------- |
49 | 46 | ||
50 | 'configuration': function() { | 47 | 'configuration': function() { |
51 | return this._configuration; | 48 | return this._configuration; |
52 | }, | 49 | }, |
53 | 50 | ||
54 | //------------------------------------------------------------------------- | 51 | //------------------------------------------------------------------------- |
55 | 52 | ||
56 | 'pageTitle': function() { | 53 | 'pageTitle': function() { |
57 | return this.configuration().page.title; | 54 | return this.configuration().page.title; |
58 | }, | 55 | }, |
59 | 56 | ||
60 | //------------------------------------------------------------------------- | 57 | //------------------------------------------------------------------------- |
61 | 58 | ||
62 | 'fields': function() { | 59 | 'fields': function() { |
63 | return this.configuration().form.inputs; | 60 | return this.configuration().form.inputs; |
64 | }, | 61 | }, |
65 | 62 | ||
66 | //------------------------------------------------------------------------- | 63 | //------------------------------------------------------------------------- |
67 | 64 | ||
68 | 'editableFields': function() { | 65 | 'editableFields': function() { |
69 | if (this._editableFields == null) { | 66 | if (this._editableFields == null) { |
70 | this._editableFields = MochiKit.Base.filter(function(aField) { | 67 | this._editableFields = MochiKit.Base.filter(function(aField) { |
71 | var result; | 68 | var result; |
72 | var type; | 69 | var type; |
73 | 70 | ||
74 | type = aField['type'].toLowerCase(); | 71 | type = aField['type'].toLowerCase(); |
75 | result = ((type != 'hidden') && (type != 'submit') && (type != 'checkbox') && (type != 'radio') && (type != 'select')); | 72 | result = ((type != 'hidden') && (type != 'submit') && (type != 'checkbox') && (type != 'radio') && (type != 'select')); |
76 | 73 | ||
77 | return result; | 74 | return result; |
78 | }, this.fields()) | 75 | }, this.fields()) |
79 | } | 76 | } |
80 | 77 | ||
81 | return this._editableFields; | 78 | return this._editableFields; |
82 | }, | 79 | }, |
83 | 80 | ||
84 | //------------------------------------------------------------------------- | 81 | //------------------------------------------------------------------------- |
85 | 82 | ||
86 | 'hostname': function() { | 83 | 'hostname': function() { |
87 | if (this._hostname == null) { | 84 | if (this._hostname == null) { |
88 | var actionUrl; | 85 | var actionUrl; |
89 | 86 | ||
90 | actionUrl = this.configuration()['form']['attributes']['action']; | 87 | actionUrl = this.configuration()['form']['attributes']['action']; |
91 | this._hostname = actionUrl.replace(/ ^ h t t p s ? : \ / \ / ( [ ^ \ / ] * ) \ / . * /, '$1'); | 88 | this._hostname = actionUrl.replace(/ ^ h t t p s ? : \ / \ / ( [ ^ \ / ] * ) \ / . * /, '$1'); |
92 | } | 89 | } |
93 | 90 | ||
94 | return this._hostname; | 91 | return this._hostname; |
95 | }, | 92 | }, |
96 | 93 | ||
97 | 'favicon': function() { | 94 | 'favicon': function() { |
98 | if (this._favicon == null) { | 95 | if (this._favicon == null) { |
99 | this._favicon = "http://" + this.hostname() + "/favicon.ico"; | 96 | this._favicon = "http://" + this.hostname() + "/favicon.ico"; |
100 | } | 97 | } |
101 | 98 | ||
102 | return this._favicon; | 99 | return this._favicon; |
103 | }, | 100 | }, |
104 | 101 | ||
105 | //------------------------------------------------------------------------- | 102 | //------------------------------------------------------------------------- |
106 | __syntaxFix__: "syntax fix" | 103 | __syntaxFix__: "syntax fix" |
107 | }); | 104 | }); |
108 | 105 | ||
109 | //############################################################################# | 106 | //############################################################################# |
110 | / * | 107 | / * |
111 | Clipperz.PM.BookmarkletProcessor.createRecordFromBookmarkletConfiguration = function(anUser, aConfiguration) { | 108 | Clipperz.PM.BookmarkletProcessor.createRecordFromBookmarkletConfiguration = function(anUser, aConfiguration) { |
112 | var processor; | 109 | var processor; |
113 | var record; | 110 | var record; |
114 | var recordVersion; | 111 | var recordVersion; |
115 | var directLogin; | 112 | var directLogin; |
116 | var bindings; | 113 | var bindings; |
117 | var i,c; | 114 | var i,c; |
118 | 115 | ||
119 | processor = new Clipperz.PM.BookmarkletProcessor(aConfiguration); | 116 | processor = new Clipperz.PM.BookmarkletProcessor(aConfiguration); |
120 | 117 | ||
diff --git a/frontend/gamma/js/Clipperz/PM/Connection.js b/frontend/gamma/js/Clipperz/PM/Connection.js index 6e58c60..b4e8aaa 100644 --- a/frontend/gamma/js/Clipperz/PM/Connection.js +++ b/frontend/gamma/js/Clipperz/PM/Connection.js | |||
@@ -1,120 +1,117 @@ | |||
1 | /* | 1 | /* |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | */ | 24 | */ |
28 | 25 | ||
29 | if (typeof(Clipperz) == 'undefined') { Clipperz = {}; } | 26 | if (typeof(Clipperz) == 'undefined') { Clipperz = {}; } |
30 | if (typeof(Clipperz.PM) == 'undefined') { Clipperz.PM = {}; } | 27 | if (typeof(Clipperz.PM) == 'undefined') { Clipperz.PM = {}; } |
31 | 28 | ||
32 | //----------------------------------------------------------------------------- | 29 | //----------------------------------------------------------------------------- |
33 | // | 30 | // |
34 | // Abstract C O N N E C T I O N class | 31 | // Abstract C O N N E C T I O N class |
35 | // | 32 | // |
36 | //----------------------------------------------------------------------------- | 33 | //----------------------------------------------------------------------------- |
37 | 34 | ||
38 | Clipperz.PM.Connection = function (args) { | 35 | Clipperz.PM.Connection = function (args) { |
39 | args = args || {}; | 36 | args = args || {}; |
40 | 37 | ||
41 | this._proxy = args.proxy || Clipperz.PM.Proxy.defaultProxy; | 38 | this._proxy = args.proxy || Clipperz.PM.Proxy.defaultProxy; |
42 | this._getCredentialsFunction = args.getCredentialsFunction; | 39 | this._getCredentialsFunction = args.getCredentialsFunction; |
43 | 40 | ||
44 | this._clipperz_pm_crypto_version = null; | 41 | this._clipperz_pm_crypto_version = null; |
45 | this._connectionId = null; | 42 | this._connectionId = null; |
46 | this._sharedSecret = null; | 43 | this._sharedSecret = null; |
47 | 44 | ||
48 | return this; | 45 | return this; |
49 | } | 46 | } |
50 | 47 | ||
51 | Clipperz.PM.Connection.prototype = MochiKit.Base.update(null, { | 48 | Clipperz.PM.Connection.prototype = MochiKit.Base.update(null, { |
52 | 49 | ||
53 | 'toString': function() { | 50 | 'toString': function() { |
54 | return "Connection [" + this.version() + "]"; | 51 | return "Connection [" + this.version() + "]"; |
55 | }, | 52 | }, |
56 | 53 | ||
57 | //========================================================================= | 54 | //========================================================================= |
58 | 55 | ||
59 | 'version': function() { | 56 | 'version': function() { |
60 | throw Clipperz.Base.exception.AbstractMethod; | 57 | throw Clipperz.Base.exception.AbstractMethod; |
61 | }, | 58 | }, |
62 | 59 | ||
63 | 'clipperz_pm_crypto_version': function() { | 60 | 'clipperz_pm_crypto_version': function() { |
64 | if (this._clipperz_pm_crypto_version == null) { | 61 | if (this._clipperz_pm_crypto_version == null) { |
65 | var connectionVersions; | 62 | var connectionVersions; |
66 | varversions; | 63 | varversions; |
67 | varversion; | 64 | varversion; |
68 | var i, c; | 65 | var i, c; |
69 | 66 | ||
70 | version = null; | 67 | version = null; |
71 | connectionVersions = Clipperz.PM.Connection.communicationProtocol.versions; | 68 | connectionVersions = Clipperz.PM.Connection.communicationProtocol.versions; |
72 | versions = MochiKit.Base.keys(connectionVersions); | 69 | versions = MochiKit.Base.keys(connectionVersions); |
73 | c = versions.length; | 70 | c = versions.length; |
74 | for (i=0; i<c; i++) { | 71 | for (i=0; i<c; i++) { |
75 | if (! (versions[i] == 'current')) { | 72 | if (! (versions[i] == 'current')) { |
76 | if (this instanceof connectionVersions[versions[i]]) { | 73 | if (this instanceof connectionVersions[versions[i]]) { |
77 | version = versions[i]; | 74 | version = versions[i]; |
78 | }; | 75 | }; |
79 | } | 76 | } |
80 | } | 77 | } |
81 | 78 | ||
82 | this._clipperz_pm_crypto_version = version; | 79 | this._clipperz_pm_crypto_version = version; |
83 | } | 80 | } |
84 | 81 | ||
85 | return this._clipperz_pm_crypto_version; | 82 | return this._clipperz_pm_crypto_version; |
86 | }, | 83 | }, |
87 | 84 | ||
88 | //------------------------------------------------------------------------- | 85 | //------------------------------------------------------------------------- |
89 | 86 | ||
90 | 'defaultErrorHandler': function(anErrorString, anException) { | 87 | 'defaultErrorHandler': function(anErrorString, anException) { |
91 | MochiKit.Logging.logError("### Connection.defaultErrorHandler: " + anErrorString + " (" + anException + ")"); | 88 | MochiKit.Logging.logError("### Connection.defaultErrorHandler: " + anErrorString + " (" + anException + ")"); |
92 | }, | 89 | }, |
93 | 90 | ||
94 | //------------------------------------------------------------------------- | 91 | //------------------------------------------------------------------------- |
95 | 92 | ||
96 | 'getCredentialsFunction': function () { | 93 | 'getCredentialsFunction': function () { |
97 | return this._getCredentialsFunction; | 94 | return this._getCredentialsFunction; |
98 | }, | 95 | }, |
99 | 96 | ||
100 | 'normalizedCredentials': function(someValues) { | 97 | 'normalizedCredentials': function(someValues) { |
101 | throw Clipperz.Base.exception.AbstractMethod; | 98 | throw Clipperz.Base.exception.AbstractMethod; |
102 | }, | 99 | }, |
103 | 100 | ||
104 | //========================================================================= | 101 | //========================================================================= |
105 | 102 | ||
106 | 'proxy': function () { | 103 | 'proxy': function () { |
107 | return this._proxy; | 104 | return this._proxy; |
108 | }, | 105 | }, |
109 | 106 | ||
110 | //========================================================================= | 107 | //========================================================================= |
111 | 108 | ||
112 | 'register': function () { | 109 | 'register': function () { |
113 | throw Clipperz.Base.exception.AbstractMethod; | 110 | throw Clipperz.Base.exception.AbstractMethod; |
114 | }, | 111 | }, |
115 | 112 | ||
116 | 'login': function() { | 113 | 'login': function() { |
117 | throw Clipperz.Base.exception.AbstractMethod; | 114 | throw Clipperz.Base.exception.AbstractMethod; |
118 | }, | 115 | }, |
119 | 116 | ||
120 | //------------------------------------------------------------------------- | 117 | //------------------------------------------------------------------------- |
diff --git a/frontend/gamma/js/Clipperz/PM/Crypto.js b/frontend/gamma/js/Clipperz/PM/Crypto.js index bfafbea..31fe349 100644 --- a/frontend/gamma/js/Clipperz/PM/Crypto.js +++ b/frontend/gamma/js/Clipperz/PM/Crypto.js | |||
@@ -1,120 +1,117 @@ | |||
1 | /* | 1 | /* |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | */ | 24 | */ |
28 | 25 | ||
29 | if (typeof(Clipperz) == 'undefined') { Clipperz = {}; } | 26 | if (typeof(Clipperz) == 'undefined') { Clipperz = {}; } |
30 | if (typeof(Clipperz.PM) == 'undefined') { Clipperz.PM = {}; } | 27 | if (typeof(Clipperz.PM) == 'undefined') { Clipperz.PM = {}; } |
31 | if (typeof(Clipperz.PM.Crypto) == 'undefined') { Clipperz.PM.Crypto = {}; } | 28 | if (typeof(Clipperz.PM.Crypto) == 'undefined') { Clipperz.PM.Crypto = {}; } |
32 | 29 | ||
33 | Clipperz.PM.Crypto.VERSION = "0.2"; | 30 | Clipperz.PM.Crypto.VERSION = "0.2"; |
34 | Clipperz.PM.Crypto.NAME = "Clipperz.PM.Crypto"; | 31 | Clipperz.PM.Crypto.NAME = "Clipperz.PM.Crypto"; |
35 | 32 | ||
36 | Clipperz.PM.Crypto.encryptingFunctions = {}; | 33 | Clipperz.PM.Crypto.encryptingFunctions = {}; |
37 | 34 | ||
38 | MochiKit.Base.update(Clipperz.PM.Crypto, { | 35 | MochiKit.Base.update(Clipperz.PM.Crypto, { |
39 | 36 | ||
40 | '__repr__': function () { | 37 | '__repr__': function () { |
41 | return "[" + this.NAME + " " + this.VERSION + "]"; | 38 | return "[" + this.NAME + " " + this.VERSION + "]"; |
42 | }, | 39 | }, |
43 | 40 | ||
44 | //------------------------------------------------------------------------- | 41 | //------------------------------------------------------------------------- |
45 | 42 | ||
46 | 'toString': function () { | 43 | 'toString': function () { |
47 | return this.__repr__(); | 44 | return this.__repr__(); |
48 | }, | 45 | }, |
49 | 46 | ||
50 | //------------------------------------------------------------------------- | 47 | //------------------------------------------------------------------------- |
51 | /* | 48 | /* |
52 | 'communicationProtocol': { | 49 | 'communicationProtocol': { |
53 | 'currentVersion': '0.2', | 50 | 'currentVersion': '0.2', |
54 | 'versions': { | 51 | 'versions': { |
55 | '0.1': Clipperz.PM.Connection.SRP['1.0'],//Clipperz.Crypto.SRP.versions['1.0'].Connection, | 52 | '0.1': Clipperz.PM.Connection.SRP['1.0'],//Clipperz.Crypto.SRP.versions['1.0'].Connection, |
56 | '0.2': Clipperz.PM.Connection.SRP['1.1']//Clipperz.Crypto.SRP.versions['1.1'].Connection | 53 | '0.2': Clipperz.PM.Connection.SRP['1.1']//Clipperz.Crypto.SRP.versions['1.1'].Connection |
57 | }, | 54 | }, |
58 | 'fallbackVersions': { | 55 | 'fallbackVersions': { |
59 | 'current':'0.1', | 56 | 'current':'0.1', |
60 | '0.2': '0.1', | 57 | '0.2': '0.1', |
61 | '0.1': null | 58 | '0.1': null |
62 | } | 59 | } |
63 | }, | 60 | }, |
64 | */ | 61 | */ |
65 | //------------------------------------------------------------------------- | 62 | //------------------------------------------------------------------------- |
66 | 63 | ||
67 | 'encryptingFunctions': { | 64 | 'encryptingFunctions': { |
68 | 'currentVersion': '0.3', | 65 | 'currentVersion': '0.3', |
69 | 'versions': { | 66 | 'versions': { |
70 | 67 | ||
71 | //##################################################################### | 68 | //##################################################################### |
72 | 69 | ||
73 | '0.1': { | 70 | '0.1': { |
74 | 'encrypt': function(aKey, aValue) { | 71 | 'encrypt': function(aKey, aValue) { |
75 | return Clipperz.Crypto.Base.encryptUsingSecretKey(aKey, Clipperz.Base.serializeJSON(aValue)); | 72 | return Clipperz.Crypto.Base.encryptUsingSecretKey(aKey, Clipperz.Base.serializeJSON(aValue)); |
76 | }, | 73 | }, |
77 | 74 | ||
78 | 'deferredEncrypt': function(aKey, aValue) { | 75 | 'deferredEncrypt': function(aKey, aValue) { |
79 | var deferredResult; | 76 | var deferredResult; |
80 | 77 | ||
81 | deferredResult = new Clipperz.Async.Deferred("Crypto[0.1].deferredEncrypt"); | 78 | deferredResult = new Clipperz.Async.Deferred("Crypto[0.1].deferredEncrypt"); |
82 | deferredResult.addCallback(Clipperz.PM.Crypto.encryptingFunctions.versions['0.1'].encrypt, aKey, aValue); | 79 | deferredResult.addCallback(Clipperz.PM.Crypto.encryptingFunctions.versions['0.1'].encrypt, aKey, aValue); |
83 | deferredResult.callback(); | 80 | deferredResult.callback(); |
84 | 81 | ||
85 | return deferredResult; | 82 | return deferredResult; |
86 | }, | 83 | }, |
87 | 84 | ||
88 | 'decrypt': function(aKey, aValue) { | 85 | 'decrypt': function(aKey, aValue) { |
89 | var result; | 86 | var result; |
90 | 87 | ||
91 | if (aValue != null) { | 88 | if (aValue != null) { |
92 | result = Clipperz.Base.evalJSON(Clipperz.Crypto.Base.decryptUsingSecretKey(aKey, aValue)); | 89 | result = Clipperz.Base.evalJSON(Clipperz.Crypto.Base.decryptUsingSecretKey(aKey, aValue)); |
93 | } else { | 90 | } else { |
94 | result = null; | 91 | result = null; |
95 | } | 92 | } |
96 | 93 | ||
97 | return result; | 94 | return result; |
98 | }, | 95 | }, |
99 | 96 | ||
100 | 'deferredDecrypt': function(aKey, aValue) { | 97 | 'deferredDecrypt': function(aKey, aValue) { |
101 | var deferredResult; | 98 | var deferredResult; |
102 | 99 | ||
103 | deferredResult = new Clipperz.Async.Deferred("Crypto.[0.1].deferredDecrypt"); | 100 | deferredResult = new Clipperz.Async.Deferred("Crypto.[0.1].deferredDecrypt"); |
104 | deferredResult.addCallback(Clipperz.PM.Crypto.encryptingFunctions.versions['0.1'].decrypt, aKey, aValue); | 101 | deferredResult.addCallback(Clipperz.PM.Crypto.encryptingFunctions.versions['0.1'].decrypt, aKey, aValue); |
105 | deferredResult.callback(); | 102 | deferredResult.callback(); |
106 | 103 | ||
107 | return deferredResult; | 104 | return deferredResult; |
108 | }, | 105 | }, |
109 | 106 | ||
110 | 'hash': function(aValue) { | 107 | 'hash': function(aValue) { |
111 | var result; | 108 | var result; |
112 | var strngResult; | 109 | var strngResult; |
113 | 110 | ||
114 | stringResult = Clipperz.Crypto.Base.computeHashValue(aValue.asString()); //!!!!!!! | 111 | stringResult = Clipperz.Crypto.Base.computeHashValue(aValue.asString()); //!!!!!!! |
115 | result = new Clipperz.ByteArray("0x" + stringResult); | 112 | result = new Clipperz.ByteArray("0x" + stringResult); |
116 | 113 | ||
117 | return result; | 114 | return result; |
118 | }, | 115 | }, |
119 | 116 | ||
120 | 'deriveKey': function(aStringValue) { | 117 | 'deriveKey': function(aStringValue) { |
diff --git a/frontend/gamma/js/Clipperz/PM/DataModel/DirectLogin.js b/frontend/gamma/js/Clipperz/PM/DataModel/DirectLogin.js index 1d38509..8f8696d 100644 --- a/frontend/gamma/js/Clipperz/PM/DataModel/DirectLogin.js +++ b/frontend/gamma/js/Clipperz/PM/DataModel/DirectLogin.js | |||
@@ -1,120 +1,117 @@ | |||
1 | /* | 1 | /* |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | */ | 24 | */ |
28 | 25 | ||
29 | Clipperz.Base.module('Clipperz.PM.DataModel'); | 26 | Clipperz.Base.module('Clipperz.PM.DataModel'); |
30 | 27 | ||
31 | Clipperz.PM.DataModel.DirectLogin = function(args) { | 28 | Clipperz.PM.DataModel.DirectLogin = function(args) { |
32 | args = args || {}; | 29 | args = args || {}; |
33 | 30 | ||
34 | Clipperz.PM.DataModel.DirectLogin.superclass.constructor.apply(this, arguments); | 31 | Clipperz.PM.DataModel.DirectLogin.superclass.constructor.apply(this, arguments); |
35 | 32 | ||
36 | this._reference =args.reference | 33 | this._reference =args.reference |
37 | ||Clipperz.PM.Crypto.randomKey(); | 34 | ||Clipperz.PM.Crypto.randomKey(); |
38 | this._record =args.record | 35 | this._record =args.record |
39 | ||Clipperz.Base.exception.raise('MandatoryParameter'); | 36 | ||Clipperz.Base.exception.raise('MandatoryParameter'); |
40 | 37 | ||
41 | this._retrieveIndexDataFunction = args.retrieveIndexDataFunction | 38 | this._retrieveIndexDataFunction = args.retrieveIndexDataFunction |
42 | ||this.record().retrieveDirectLoginIndexDataFunction() | 39 | ||this.record().retrieveDirectLoginIndexDataFunction() |
43 | ||Clipperz.Base.exception.raise('MandatoryParameter'); | 40 | ||Clipperz.Base.exception.raise('MandatoryParameter'); |
44 | this._setIndexDataFunction = args.setIndexDataFunction | 41 | this._setIndexDataFunction = args.setIndexDataFunction |
45 | ||this.record().setDirectLoginIndexDataFunction() | 42 | ||this.record().setDirectLoginIndexDataFunction() |
46 | ||Clipperz.Base.exception.raise('MandatoryParameter'); | 43 | ||Clipperz.Base.exception.raise('MandatoryParameter'); |
47 | this._removeIndexDataFunction =args.removeIndexDataFunction | 44 | this._removeIndexDataFunction =args.removeIndexDataFunction |
48 | ||this.record().removeDirectLoginIndexDataFunction() | 45 | ||this.record().removeDirectLoginIndexDataFunction() |
49 | ||Clipperz.Base.exception.raise('MandatoryParameter'); | 46 | ||Clipperz.Base.exception.raise('MandatoryParameter'); |
50 | 47 | ||
51 | this._inputs = null; | 48 | this._inputs = null; |
52 | this._bindings = null; | 49 | this._bindings = null; |
53 | this._formValues = null; | 50 | this._formValues = null; |
54 | 51 | ||
55 | // this._inputsDeferredLock = new MochiKit.Async.DeferredLock(); | 52 | // this._inputsDeferredLock = new MochiKit.Async.DeferredLock(); |
56 | // this._bindingsDeferredLock = new MochiKit.Async.DeferredLock(); | 53 | // this._bindingsDeferredLock = new MochiKit.Async.DeferredLock(); |
57 | // this._formValuesDeferredLock = new MochiKit.Async.DeferredLock(); | 54 | // this._formValuesDeferredLock = new MochiKit.Async.DeferredLock(); |
58 | 55 | ||
59 | this._transientState = null; | 56 | this._transientState = null; |
60 | 57 | ||
61 | this._isBrandNew = MochiKit.Base.isUndefinedOrNull(args.reference); | 58 | this._isBrandNew = MochiKit.Base.isUndefinedOrNull(args.reference); |
62 | 59 | ||
63 | this.record().addDirectLogin(this); | 60 | this.record().addDirectLogin(this); |
64 | 61 | ||
65 | return this; | 62 | return this; |
66 | } | 63 | } |
67 | 64 | ||
68 | Clipperz.Base.extend(Clipperz.PM.DataModel.DirectLogin, Object, { | 65 | Clipperz.Base.extend(Clipperz.PM.DataModel.DirectLogin, Object, { |
69 | 66 | ||
70 | 'toString': function() { | 67 | 'toString': function() { |
71 | return "DirectLogin (" + this.reference() + ")"; | 68 | return "DirectLogin (" + this.reference() + ")"; |
72 | }, | 69 | }, |
73 | 70 | ||
74 | //========================================================================= | 71 | //========================================================================= |
75 | 72 | ||
76 | 'reference': function () { | 73 | 'reference': function () { |
77 | return this._reference; | 74 | return this._reference; |
78 | }, | 75 | }, |
79 | 76 | ||
80 | //------------------------------------------------------------------------- | 77 | //------------------------------------------------------------------------- |
81 | 78 | ||
82 | 'record': function () { | 79 | 'record': function () { |
83 | return this._record; | 80 | return this._record; |
84 | }, | 81 | }, |
85 | 82 | ||
86 | //========================================================================= | 83 | //========================================================================= |
87 | 84 | ||
88 | 'isBrandNew': function () { | 85 | 'isBrandNew': function () { |
89 | return this._isBrandNew; | 86 | return this._isBrandNew; |
90 | }, | 87 | }, |
91 | 88 | ||
92 | //========================================================================= | 89 | //========================================================================= |
93 | 90 | ||
94 | 'removeIndexDataFunction': function () { | 91 | 'removeIndexDataFunction': function () { |
95 | return this._removeIndexDataFunction; | 92 | return this._removeIndexDataFunction; |
96 | }, | 93 | }, |
97 | 94 | ||
98 | 'remove': function () { | 95 | 'remove': function () { |
99 | return Clipperz.Async.callbacks("DirectLogin.remove", [ | 96 | return Clipperz.Async.callbacks("DirectLogin.remove", [ |
100 | MochiKit.Base.partial(this.removeIndexDataFunction(), this.reference()), | 97 | MochiKit.Base.partial(this.removeIndexDataFunction(), this.reference()), |
101 | MochiKit.Base.method(this.record(), 'removeDirectLogin', this) | 98 | MochiKit.Base.method(this.record(), 'removeDirectLogin', this) |
102 | ], {trace:false}); | 99 | ], {trace:false}); |
103 | }, | 100 | }, |
104 | 101 | ||
105 | //========================================================================= | 102 | //========================================================================= |
106 | /* | 103 | /* |
107 | 'inputsDeferredLock': function () { | 104 | 'inputsDeferredLock': function () { |
108 | return this._inputsDeferredLock; | 105 | return this._inputsDeferredLock; |
109 | }, | 106 | }, |
110 | 107 | ||
111 | 'bindingsDeferredLock': function () { | 108 | 'bindingsDeferredLock': function () { |
112 | return this._bindingsDeferredLock; | 109 | return this._bindingsDeferredLock; |
113 | }, | 110 | }, |
114 | 111 | ||
115 | 'formValuesDeferredLock': function () { | 112 | 'formValuesDeferredLock': function () { |
116 | return this._formValuesDeferredLock; | 113 | return this._formValuesDeferredLock; |
117 | }, | 114 | }, |
118 | */ | 115 | */ |
119 | //========================================================================= | 116 | //========================================================================= |
120 | 117 | ||
diff --git a/frontend/gamma/js/Clipperz/PM/DataModel/DirectLoginBinding.js b/frontend/gamma/js/Clipperz/PM/DataModel/DirectLoginBinding.js index fd55c63..4377853 100644 --- a/frontend/gamma/js/Clipperz/PM/DataModel/DirectLoginBinding.js +++ b/frontend/gamma/js/Clipperz/PM/DataModel/DirectLoginBinding.js | |||
@@ -1,120 +1,117 @@ | |||
1 | /* | 1 | /* |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | */ | 24 | */ |
28 | 25 | ||
29 | if (typeof(Clipperz) == 'undefined') { Clipperz = {}; } | 26 | if (typeof(Clipperz) == 'undefined') { Clipperz = {}; } |
30 | if (typeof(Clipperz.PM) == 'undefined') { Clipperz.PM = {}; } | 27 | if (typeof(Clipperz.PM) == 'undefined') { Clipperz.PM = {}; } |
31 | if (typeof(Clipperz.PM.DataModel) == 'undefined') { Clipperz.PM.DataModel = {}; } | 28 | if (typeof(Clipperz.PM.DataModel) == 'undefined') { Clipperz.PM.DataModel = {}; } |
32 | 29 | ||
33 | 30 | ||
34 | //############################################################################# | 31 | //############################################################################# |
35 | 32 | ||
36 | Clipperz.PM.DataModel.DirectLoginBinding = function(aDirectLogin, args) { | 33 | Clipperz.PM.DataModel.DirectLoginBinding = function(aDirectLogin, args) { |
37 | args = args || {}; | 34 | args = args || {}; |
38 | 35 | ||
39 | this._directLogin = aDirectLogin|| Clipperz.Base.exception.raise('MandatoryParameter'); | 36 | this._directLogin = aDirectLogin|| Clipperz.Base.exception.raise('MandatoryParameter'); |
40 | 37 | ||
41 | this._key = args.key|| Clipperz.Base.exception.raise('MandatoryParameter'); | 38 | this._key = args.key|| Clipperz.Base.exception.raise('MandatoryParameter'); |
42 | this._fieldKey = args.field || /* this.directLogin().fieldWithName(args.fieldName).reference() || */null; | 39 | this._fieldKey = args.field || /* this.directLogin().fieldWithName(args.fieldName).reference() || */null; |
43 | 40 | ||
44 | return this; | 41 | return this; |
45 | } | 42 | } |
46 | 43 | ||
47 | Clipperz.PM.DataModel.DirectLoginBinding.prototype = MochiKit.Base.update(null, { | 44 | Clipperz.PM.DataModel.DirectLoginBinding.prototype = MochiKit.Base.update(null, { |
48 | 45 | ||
49 | 'toString': function() { | 46 | 'toString': function() { |
50 | return "DirectLoginBinding (" + this.key() + ", " + this.fieldKey() + ")"; | 47 | return "DirectLoginBinding (" + this.key() + ", " + this.fieldKey() + ")"; |
51 | }, | 48 | }, |
52 | 49 | ||
53 | //------------------------------------------------------------------------- | 50 | //------------------------------------------------------------------------- |
54 | 51 | ||
55 | 'directLogin': function () { | 52 | 'directLogin': function () { |
56 | return this._directLogin; | 53 | return this._directLogin; |
57 | }, | 54 | }, |
58 | 55 | ||
59 | //------------------------------------------------------------------------- | 56 | //------------------------------------------------------------------------- |
60 | 57 | ||
61 | 'key': function() { | 58 | 'key': function() { |
62 | return this._key; | 59 | return this._key; |
63 | }, | 60 | }, |
64 | 61 | ||
65 | //------------------------------------------------------------------------- | 62 | //------------------------------------------------------------------------- |
66 | 63 | ||
67 | 'fieldKey': function() { | 64 | 'fieldKey': function() { |
68 | return this._fieldKey; | 65 | return this._fieldKey; |
69 | }, | 66 | }, |
70 | 67 | ||
71 | 'setFieldKey': function(aValue) { | 68 | 'setFieldKey': function(aValue) { |
72 | this._fieldKey = aValue; | 69 | this._fieldKey = aValue; |
73 | 70 | ||
74 | return this.directLogin().setValue('bindingData' + '.' + this.key(), aValue); | 71 | return this.directLogin().setValue('bindingData' + '.' + this.key(), aValue); |
75 | }, | 72 | }, |
76 | 73 | ||
77 | //'fieldName': function() { | 74 | //'fieldName': function() { |
78 | // return this._fieldName; | 75 | // return this._fieldName; |
79 | //}, | 76 | //}, |
80 | 77 | ||
81 | //------------------------------------------------------------------------- | 78 | //------------------------------------------------------------------------- |
82 | 79 | ||
83 | 'field': function() { | 80 | 'field': function() { |
84 | var deferredResult; | 81 | var deferredResult; |
85 | 82 | ||
86 | if (this.fieldKey() != null) { | 83 | if (this.fieldKey() != null) { |
87 | deferredResult = Clipperz.Async.callbacks("DirectLoginBinding.field [1]", [ | 84 | deferredResult = Clipperz.Async.callbacks("DirectLoginBinding.field [1]", [ |
88 | MochiKit.Base.method(this.directLogin().record(), 'fields'), | 85 | MochiKit.Base.method(this.directLogin().record(), 'fields'), |
89 | MochiKit.Base.itemgetter(this.fieldKey()) | 86 | MochiKit.Base.itemgetter(this.fieldKey()) |
90 | ], {trace:false}); | 87 | ], {trace:false}); |
91 | // } else if (this.fieldName() != null) { | 88 | // } else if (this.fieldName() != null) { |
92 | // WTF = TODO; | 89 | // WTF = TODO; |
93 | // result = this.directLogin().record().fieldWithName(this.fieldName()); | 90 | // result = this.directLogin().record().fieldWithName(this.fieldName()); |
94 | // | 91 | // |
95 | // this.setFieldKey(result.key()); | 92 | // this.setFieldKey(result.key()); |
96 | } else { | 93 | } else { |
97 | deferredResult = MochiKit.Async.succeed(null); | 94 | deferredResult = MochiKit.Async.succeed(null); |
98 | } | 95 | } |
99 | 96 | ||
100 | return deferredResult; | 97 | return deferredResult; |
101 | }, | 98 | }, |
102 | 99 | ||
103 | 'setField': function (aField) { | 100 | 'setField': function (aField) { |
104 | this.setFieldKey(aField.reference()); | 101 | this.setFieldKey(aField.reference()); |
105 | }, | 102 | }, |
106 | 103 | ||
107 | //------------------------------------------------------------------------- | 104 | //------------------------------------------------------------------------- |
108 | /* | 105 | /* |
109 | 'fieldValue': function () { | 106 | 'fieldValue': function () { |
110 | return Clipperz.Async.callbacks("DirectLoginBinding.fieldValue", [ | 107 | return Clipperz.Async.callbacks("DirectLoginBinding.fieldValue", [ |
111 | MochiKit.Base.method('field'), | 108 | MochiKit.Base.method('field'), |
112 | MochiKit.Base.methodcaller('value') | 109 | MochiKit.Base.methodcaller('value') |
113 | ], {trace:false}); | 110 | ], {trace:false}); |
114 | }, | 111 | }, |
115 | */ | 112 | */ |
116 | //------------------------------------------------------------------------- | 113 | //------------------------------------------------------------------------- |
117 | 114 | ||
118 | 'serializedData': function() { | 115 | 'serializedData': function() { |
119 | return this.fieldKey(); | 116 | return this.fieldKey(); |
120 | }, | 117 | }, |
diff --git a/frontend/gamma/js/Clipperz/PM/DataModel/DirectLoginFormValue.js b/frontend/gamma/js/Clipperz/PM/DataModel/DirectLoginFormValue.js index 939ab4b..a461197 100644 --- a/frontend/gamma/js/Clipperz/PM/DataModel/DirectLoginFormValue.js +++ b/frontend/gamma/js/Clipperz/PM/DataModel/DirectLoginFormValue.js | |||
@@ -1,107 +1,104 @@ | |||
1 | /* | 1 | /* |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | */ | 24 | */ |
28 | 25 | ||
29 | if (typeof(Clipperz) == 'undefined') { Clipperz = {}; } | 26 | if (typeof(Clipperz) == 'undefined') { Clipperz = {}; } |
30 | if (typeof(Clipperz.PM) == 'undefined') { Clipperz.PM = {}; } | 27 | if (typeof(Clipperz.PM) == 'undefined') { Clipperz.PM = {}; } |
31 | if (typeof(Clipperz.PM.DataModel) == 'undefined') { Clipperz.PM.DataModel = {}; } | 28 | if (typeof(Clipperz.PM.DataModel) == 'undefined') { Clipperz.PM.DataModel = {}; } |
32 | 29 | ||
33 | 30 | ||
34 | //############################################################################# | 31 | //############################################################################# |
35 | 32 | ||
36 | Clipperz.PM.DataModel.DirectLoginFormValue = function(aDirectLogin, args) { | 33 | Clipperz.PM.DataModel.DirectLoginFormValue = function(aDirectLogin, args) { |
37 | args = args || {}; | 34 | args = args || {}; |
38 | 35 | ||
39 | this._directLogin = aDirectLogin|| Clipperz.Base.exception.raise('MandatoryParameter'); | 36 | this._directLogin = aDirectLogin|| Clipperz.Base.exception.raise('MandatoryParameter'); |
40 | 37 | ||
41 | this._key = args.key || Clipperz.Base.exception.raise('MandatoryParameter'); | 38 | this._key = args.key || Clipperz.Base.exception.raise('MandatoryParameter'); |
42 | this._fieldOptions = args.fieldOptions|| Clipperz.Base.exception.raise('MandatoryParameter'); | 39 | this._fieldOptions = args.fieldOptions|| Clipperz.Base.exception.raise('MandatoryParameter'); |
43 | this._value = args.value || null; | 40 | this._value = args.value || null; |
44 | 41 | ||
45 | return this; | 42 | return this; |
46 | } | 43 | } |
47 | 44 | ||
48 | Clipperz.PM.DataModel.DirectLoginFormValue.prototype = MochiKit.Base.update(null, { | 45 | Clipperz.PM.DataModel.DirectLoginFormValue.prototype = MochiKit.Base.update(null, { |
49 | 46 | ||
50 | 'toString': function() { | 47 | 'toString': function() { |
51 | return "DirectLoginFormValue (" + this.key() + ", " + this.value() + ")"; | 48 | return "DirectLoginFormValue (" + this.key() + ", " + this.value() + ")"; |
52 | }, | 49 | }, |
53 | 50 | ||
54 | //------------------------------------------------------------------------- | 51 | //------------------------------------------------------------------------- |
55 | 52 | ||
56 | 'directLogin': function () { | 53 | 'directLogin': function () { |
57 | return this._directLogin; | 54 | return this._directLogin; |
58 | }, | 55 | }, |
59 | 56 | ||
60 | //------------------------------------------------------------------------- | 57 | //------------------------------------------------------------------------- |
61 | 58 | ||
62 | 'key': function() { | 59 | 'key': function() { |
63 | return this._key; | 60 | return this._key; |
64 | }, | 61 | }, |
65 | 62 | ||
66 | //------------------------------------------------------------------------- | 63 | //------------------------------------------------------------------------- |
67 | 64 | ||
68 | 'fieldOptions': function() { | 65 | 'fieldOptions': function() { |
69 | return this._fieldOptions; | 66 | return this._fieldOptions; |
70 | }, | 67 | }, |
71 | 68 | ||
72 | //------------------------------------------------------------------------- | 69 | //------------------------------------------------------------------------- |
73 | 70 | ||
74 | 'type': function () { | 71 | 'type': function () { |
75 | return this.fieldOptions()['type']; | 72 | return this.fieldOptions()['type']; |
76 | }, | 73 | }, |
77 | 74 | ||
78 | //------------------------------------------------------------------------- | 75 | //------------------------------------------------------------------------- |
79 | 76 | ||
80 | 'value': function() { | 77 | 'value': function() { |
81 | varresult; | 78 | varresult; |
82 | 79 | ||
83 | result = this._value; | 80 | result = this._value; |
84 | 81 | ||
85 | // if ((result == null) && (this.type() == 'checkbox')) { | 82 | // if ((result == null) && (this.type() == 'checkbox')) { |
86 | // result = false; | 83 | // result = false; |
87 | // }; | 84 | // }; |
88 | 85 | ||
89 | return result; | 86 | return result; |
90 | }, | 87 | }, |
91 | 88 | ||
92 | 'setValue': function (aValue) { | 89 | 'setValue': function (aValue) { |
93 | //console.log("DirectLoginFormValue.setValue", aValue); | 90 | //console.log("DirectLoginFormValue.setValue", aValue); |
94 | this._value = aValue; | 91 | this._value = aValue; |
95 | return this.directLogin().setValue('formValues' + '.' + this.key(), aValue); | 92 | return this.directLogin().setValue('formValues' + '.' + this.key(), aValue); |
96 | }, | 93 | }, |
97 | 94 | ||
98 | //------------------------------------------------------------------------- | 95 | //------------------------------------------------------------------------- |
99 | /* | 96 | /* |
100 | 'serializedData': function() { | 97 | 'serializedData': function() { |
101 | return this.value(); | 98 | return this.value(); |
102 | }, | 99 | }, |
103 | */ | 100 | */ |
104 | //------------------------------------------------------------------------- | 101 | //------------------------------------------------------------------------- |
105 | __syntaxFix__: "syntax fix" | 102 | __syntaxFix__: "syntax fix" |
106 | }); | 103 | }); |
107 | 104 | ||
diff --git a/frontend/gamma/js/Clipperz/PM/DataModel/DirectLoginInput.js b/frontend/gamma/js/Clipperz/PM/DataModel/DirectLoginInput.js index 673d5ee..8188389 100644 --- a/frontend/gamma/js/Clipperz/PM/DataModel/DirectLoginInput.js +++ b/frontend/gamma/js/Clipperz/PM/DataModel/DirectLoginInput.js | |||
@@ -1,120 +1,117 @@ | |||
1 | /* | 1 | /* |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | */ | 24 | */ |
28 | 25 | ||
29 | if (typeof(Clipperz) == 'undefined') { Clipperz = {}; } | 26 | if (typeof(Clipperz) == 'undefined') { Clipperz = {}; } |
30 | if (typeof(Clipperz.PM) == 'undefined') { Clipperz.PM = {}; } | 27 | if (typeof(Clipperz.PM) == 'undefined') { Clipperz.PM = {}; } |
31 | if (typeof(Clipperz.PM.DataModel) == 'undefined') { Clipperz.PM.DataModel = {}; } | 28 | if (typeof(Clipperz.PM.DataModel) == 'undefined') { Clipperz.PM.DataModel = {}; } |
32 | 29 | ||
33 | //############################################################################# | 30 | //############################################################################# |
34 | 31 | ||
35 | Clipperz.PM.DataModel.DirectLoginInput = function(args) { | 32 | Clipperz.PM.DataModel.DirectLoginInput = function(args) { |
36 | this._args = args; | 33 | this._args = args; |
37 | 34 | ||
38 | return this; | 35 | return this; |
39 | } | 36 | } |
40 | 37 | ||
41 | Clipperz.PM.DataModel.DirectLoginInput.prototype = MochiKit.Base.update(null, { | 38 | Clipperz.PM.DataModel.DirectLoginInput.prototype = MochiKit.Base.update(null, { |
42 | 39 | ||
43 | 'args': function() { | 40 | 'args': function() { |
44 | return this._args; | 41 | return this._args; |
45 | }, | 42 | }, |
46 | 43 | ||
47 | //------------------------------------------------------------------------- | 44 | //------------------------------------------------------------------------- |
48 | 45 | ||
49 | 'name': function() { | 46 | 'name': function() { |
50 | return this.args()['name']; | 47 | return this.args()['name']; |
51 | }, | 48 | }, |
52 | 49 | ||
53 | //------------------------------------------------------------------------- | 50 | //------------------------------------------------------------------------- |
54 | 51 | ||
55 | 'type': function() { | 52 | 'type': function() { |
56 | var result; | 53 | var result; |
57 | 54 | ||
58 | result = this.args()['type']; | 55 | result = this.args()['type']; |
59 | 56 | ||
60 | if (result != null) { | 57 | if (result != null) { |
61 | result = result.toLowerCase(); | 58 | result = result.toLowerCase(); |
62 | } | 59 | } |
63 | return result; | 60 | return result; |
64 | }, | 61 | }, |
65 | 62 | ||
66 | //------------------------------------------------------------------------- | 63 | //------------------------------------------------------------------------- |
67 | 64 | ||
68 | 'options': function() { | 65 | 'options': function() { |
69 | return this.args()['options']; | 66 | return this.args()['options']; |
70 | }, | 67 | }, |
71 | 68 | ||
72 | //------------------------------------------------------------------------- | 69 | //------------------------------------------------------------------------- |
73 | 70 | ||
74 | 'value': function() { | 71 | 'value': function() { |
75 | return this.args()['value']; | 72 | return this.args()['value']; |
76 | }, | 73 | }, |
77 | 74 | ||
78 | //------------------------------------------------------------------------- | 75 | //------------------------------------------------------------------------- |
79 | /* | 76 | /* |
80 | 'formConfiguration': function(someFormValues, someBindings, someFields) { | 77 | 'formConfiguration': function(someFormValues, someBindings, someFields) { |
81 | var result; | 78 | var result; |
82 | //console.log("### DirectLoginInput.formConfiguration", someFields); | 79 | //console.log("### DirectLoginInput.formConfiguration", someFields); |
83 | if (this.shouldSetValue()) { | 80 | if (this.shouldSetValue()) { |
84 | switch (this.type()) { | 81 | switch (this.type()) { |
85 | case 'select': | 82 | case 'select': |
86 | var currentValue; | 83 | var currentValue; |
87 | var options; | 84 | var options; |
88 | 85 | ||
89 | // currentValue = this.directLogin()._configuration['formValues'][this.name()]; | 86 | // currentValue = this.directLogin()._configuration['formValues'][this.name()]; |
90 | currentValue = someFormValues[this.name()]; | 87 | currentValue = someFormValues[this.name()]; |
91 | options = this.args()['options']; | 88 | options = this.args()['options']; |
92 | 89 | ||
93 | result = MochiKit.DOM.SELECT({name:this.name()}, | 90 | result = MochiKit.DOM.SELECT({name:this.name()}, |
94 | MochiKit.Base.map(function(anOption) { | 91 | MochiKit.Base.map(function(anOption) { |
95 | var options; | 92 | var options; |
96 | 93 | ||
97 | options = {value:anOption['value']}; | 94 | options = {value:anOption['value']}; |
98 | if (currentValue == anOption['value']) { | 95 | if (currentValue == anOption['value']) { |
99 | options.selected = true; | 96 | options.selected = true; |
100 | } | 97 | } |
101 | 98 | ||
102 | return MochiKit.DOM.OPTION(options, anOption['label']) | 99 | return MochiKit.DOM.OPTION(options, anOption['label']) |
103 | }, options) | 100 | }, options) |
104 | ) | 101 | ) |
105 | break; | 102 | break; |
106 | case 'checkbox': | 103 | case 'checkbox': |
107 | var options; | 104 | var options; |
108 | 105 | ||
109 | options = {type:'checkbox', name: this.name()}; | 106 | options = {type:'checkbox', name: this.name()}; |
110 | // if (this.directLogin()._configuration['formValues'][this.name()] == true) { | 107 | // if (this.directLogin()._configuration['formValues'][this.name()] == true) { |
111 | if (someFormValues[this.name()] == true) { | 108 | if (someFormValues[this.name()] == true) { |
112 | options['checked'] = true; | 109 | options['checked'] = true; |
113 | }; | 110 | }; |
114 | 111 | ||
115 | result = MochiKit.DOM.INPUT(options, null); | 112 | result = MochiKit.DOM.INPUT(options, null); |
116 | break; | 113 | break; |
117 | case 'radio': | 114 | case 'radio': |
118 | var currentName; | 115 | var currentName; |
119 | var currentValue; | 116 | var currentValue; |
120 | var options; | 117 | var options; |
diff --git a/frontend/gamma/js/Clipperz/PM/DataModel/EncryptedRemoteObject.js b/frontend/gamma/js/Clipperz/PM/DataModel/EncryptedRemoteObject.js index 3408b08..cdeec8b 100644 --- a/frontend/gamma/js/Clipperz/PM/DataModel/EncryptedRemoteObject.js +++ b/frontend/gamma/js/Clipperz/PM/DataModel/EncryptedRemoteObject.js | |||
@@ -1,120 +1,117 @@ | |||
1 | /* | 1 | /* |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | */ | 24 | */ |
28 | 25 | ||
29 | try { if (typeof(Clipperz.KeyValueObjectStore) == 'undefined') { throw ""; }} catch (e) { | 26 | try { if (typeof(Clipperz.KeyValueObjectStore) == 'undefined') { throw ""; }} catch (e) { |
30 | throw "Clipperz.PM.DataModel.EncryptedRemoteObject depends on Clipperz.KeyValueObjectStore!"; | 27 | throw "Clipperz.PM.DataModel.EncryptedRemoteObject depends on Clipperz.KeyValueObjectStore!"; |
31 | } | 28 | } |
32 | 29 | ||
33 | if (typeof(Clipperz.PM) == 'undefined') { Clipperz.PM = {}; } | 30 | if (typeof(Clipperz.PM) == 'undefined') { Clipperz.PM = {}; } |
34 | if (typeof(Clipperz.PM.DataModel) == 'undefined') { Clipperz.PM.DataModel = {}; } | 31 | if (typeof(Clipperz.PM.DataModel) == 'undefined') { Clipperz.PM.DataModel = {}; } |
35 | 32 | ||
36 | Clipperz.PM.DataModel.EncryptedRemoteObject = function(args) { | 33 | Clipperz.PM.DataModel.EncryptedRemoteObject = function(args) { |
37 | args = args || {}; | 34 | args = args || {}; |
38 | 35 | ||
39 | this._name = args.name || null; | 36 | this._name = args.name || null; |
40 | this._reference = args.reference || Clipperz.PM.Crypto.randomKey(); | 37 | this._reference = args.reference || Clipperz.PM.Crypto.randomKey(); |
41 | this._isBrandNew = ((args.reference == null) && (args.remoteData == null)); | 38 | this._isBrandNew = ((args.reference == null) && (args.remoteData == null)); |
42 | 39 | ||
43 | if ((this._isBrandNew == false) && (args['retrieveKeyFunction'] == null)) { | 40 | if ((this._isBrandNew == false) && (args['retrieveKeyFunction'] == null)) { |
44 | Clipperz.Base.exception.raise('MandatoryParameter'); | 41 | Clipperz.Base.exception.raise('MandatoryParameter'); |
45 | } else { | 42 | } else { |
46 | this._retrieveKeyFunction = args['retrieveKeyFunction']; | 43 | this._retrieveKeyFunction = args['retrieveKeyFunction']; |
47 | } | 44 | } |
48 | 45 | ||
49 | this._retrieveRemoteDataFunction = args.retrieveRemoteDataFunction|| null; | 46 | this._retrieveRemoteDataFunction = args.retrieveRemoteDataFunction|| null; |
50 | this._remoteData = args.remoteData || null; | 47 | this._remoteData = args.remoteData || null; |
51 | // this._remoteData = args.remoteData ? Clipperz.Base.deepClone(args.remoteData) : null; | 48 | // this._remoteData = args.remoteData ? Clipperz.Base.deepClone(args.remoteData) : null; |
52 | if ((!this._isBrandNew) && ((this._retrieveRemoteDataFunction == null) && (this._remoteData == null))) { | 49 | if ((!this._isBrandNew) && ((this._retrieveRemoteDataFunction == null) && (this._remoteData == null))) { |
53 | Clipperz.Base.exception.raise('MandatoryParameter'); | 50 | Clipperz.Base.exception.raise('MandatoryParameter'); |
54 | } | 51 | } |
55 | 52 | ||
56 | 53 | ||
57 | this._encryptedDataKeypath = args.encryptedDataKeypath || 'data'; //Clipperz.Base.exception.raise('MandatoryParameter'); | 54 | this._encryptedDataKeypath = args.encryptedDataKeypath || 'data'; //Clipperz.Base.exception.raise('MandatoryParameter'); |
58 | this._encryptedVersionKeypath = args.encryptedVersionKeypath || 'version';//Clipperz.Base.exception.raise('MandatoryParameter'); | 55 | this._encryptedVersionKeypath = args.encryptedVersionKeypath || 'version';//Clipperz.Base.exception.raise('MandatoryParameter'); |
59 | 56 | ||
60 | 57 | ||
61 | this._transientState = null; | 58 | this._transientState = null; |
62 | this._deferredLocks = {}; | 59 | this._deferredLocks = {}; |
63 | 60 | ||
64 | if (this._isBrandNew == true) { | 61 | if (this._isBrandNew == true) { |
65 | this._objectDataStore = new Clipperz.KeyValueObjectStore(/*{'name':'EncryptedRemoteObject.objectDataStore [1]'}*/); | 62 | this._objectDataStore = new Clipperz.KeyValueObjectStore(/*{'name':'EncryptedRemoteObject.objectDataStore [1]'}*/); |
66 | } else { | 63 | } else { |
67 | this._objectDataStore = null; | 64 | this._objectDataStore = null; |
68 | } | 65 | } |
69 | 66 | ||
70 | return this; | 67 | return this; |
71 | } | 68 | } |
72 | 69 | ||
73 | // | 70 | // |
74 | // Basic data workflow | 71 | // Basic data workflow |
75 | //======================= | 72 | //======================= |
76 | // | 73 | // |
77 | //getRemoteData | 74 | //getRemoteData |
78 | // unpackRemoteData | 75 | // unpackRemoteData |
79 | // getDecryptData [encryptedDataKeypath, encryptedVersionKeypath] | 76 | // getDecryptData [encryptedDataKeypath, encryptedVersionKeypath] |
80 | // unpackData | 77 | // unpackData |
81 | // | 78 | // |
82 | // | 79 | // |
83 | // ?? packData | 80 | // ?? packData |
84 | // ?? encryptDataWithKey | 81 | // ?? encryptDataWithKey |
85 | // ??packRemoteData [encryptedDataKeypath (?), encryptedVersionKeypath (?)] | 82 | // ??packRemoteData [encryptedDataKeypath (?), encryptedVersionKeypath (?)] |
86 | // | 83 | // |
87 | 84 | ||
88 | Clipperz.PM.DataModel.EncryptedRemoteObject.prototype = MochiKit.Base.update(null, { | 85 | Clipperz.PM.DataModel.EncryptedRemoteObject.prototype = MochiKit.Base.update(null, { |
89 | 86 | ||
90 | 'toString': function () { | 87 | 'toString': function () { |
91 | return "Clipperz.PM.DataModel.EncryptedRemoteObject" + (this.name() != null ? " - " + this.name() : ""); | 88 | return "Clipperz.PM.DataModel.EncryptedRemoteObject" + (this.name() != null ? " - " + this.name() : ""); |
92 | }, | 89 | }, |
93 | 90 | ||
94 | //------------------------------------------------------------------------- | 91 | //------------------------------------------------------------------------- |
95 | 92 | ||
96 | 'name': function () { | 93 | 'name': function () { |
97 | return this._name; | 94 | return this._name; |
98 | }, | 95 | }, |
99 | 96 | ||
100 | //------------------------------------------------------------------------- | 97 | //------------------------------------------------------------------------- |
101 | 98 | ||
102 | 'reference': function () { | 99 | 'reference': function () { |
103 | return this._reference; | 100 | return this._reference; |
104 | }, | 101 | }, |
105 | 102 | ||
106 | 'setReference': function (aValue) { | 103 | 'setReference': function (aValue) { |
107 | this._reference = aValue; | 104 | this._reference = aValue; |
108 | 105 | ||
109 | return this._reference; | 106 | return this._reference; |
110 | }, | 107 | }, |
111 | 108 | ||
112 | //------------------------------------------------------------------------- | 109 | //------------------------------------------------------------------------- |
113 | 110 | ||
114 | 'transientState': function () { | 111 | 'transientState': function () { |
115 | if (this._transientState == null) { | 112 | if (this._transientState == null) { |
116 | this._transientState = new Clipperz.KeyValueObjectStore(/*{'name':'EncryptedRemoteObject.transientState [2]'}*/); | 113 | this._transientState = new Clipperz.KeyValueObjectStore(/*{'name':'EncryptedRemoteObject.transientState [2]'}*/); |
117 | } | 114 | } |
118 | 115 | ||
119 | return this._transientState; | 116 | return this._transientState; |
120 | }, | 117 | }, |
diff --git a/frontend/gamma/js/Clipperz/PM/DataModel/OneTimePassword.js b/frontend/gamma/js/Clipperz/PM/DataModel/OneTimePassword.js index 9f1c197..834e21b 100644 --- a/frontend/gamma/js/Clipperz/PM/DataModel/OneTimePassword.js +++ b/frontend/gamma/js/Clipperz/PM/DataModel/OneTimePassword.js | |||
@@ -1,120 +1,117 @@ | |||
1 | /* | 1 | /* |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | */ | 24 | */ |
28 | 25 | ||
29 | if (typeof(Clipperz) == 'undefined') { Clipperz = {}; } | 26 | if (typeof(Clipperz) == 'undefined') { Clipperz = {}; } |
30 | if (typeof(Clipperz.PM) == 'undefined') { Clipperz.PM = {}; } | 27 | if (typeof(Clipperz.PM) == 'undefined') { Clipperz.PM = {}; } |
31 | if (typeof(Clipperz.PM.DataModel) == 'undefined') { Clipperz.PM.DataModel = {}; } | 28 | if (typeof(Clipperz.PM.DataModel) == 'undefined') { Clipperz.PM.DataModel = {}; } |
32 | 29 | ||
33 | 30 | ||
34 | //############################################################################# | 31 | //############################################################################# |
35 | 32 | ||
36 | Clipperz.PM.DataModel.OneTimePassword = function(args) { | 33 | Clipperz.PM.DataModel.OneTimePassword = function(args) { |
37 | args = args || {}; | 34 | args = args || {}; |
38 | 35 | ||
39 | //this._user = args['user']; | 36 | //this._user = args['user']; |
40 | this._reference = args['reference']|| Clipperz.PM.Crypto.randomKey(); | 37 | this._reference = args['reference']|| Clipperz.PM.Crypto.randomKey(); |
41 | this._password = args['password']; | 38 | this._password = args['password']; |
42 | this._passwordValue = Clipperz.PM.DataModel.OneTimePassword.normalizedOneTimePassword(args['password']); | 39 | this._passwordValue = Clipperz.PM.DataModel.OneTimePassword.normalizedOneTimePassword(args['password']); |
43 | this._creationDate = args['created'] ? Clipperz.PM.Date.parseDateWithUTCFormat(args['created']) : new Date(); | 40 | this._creationDate = args['created'] ? Clipperz.PM.Date.parseDateWithUTCFormat(args['created']) : new Date(); |
44 | this._usageDate = args['used'] ? Clipperz.PM.Date.parseDateWithUTCFormat(args['used']) : null; | 41 | this._usageDate = args['used'] ? Clipperz.PM.Date.parseDateWithUTCFormat(args['used']) : null; |
45 | 42 | ||
46 | this._status = args['status'] || 'ACTIVE'; //'REQUESTED', 'USED', 'DISABLED' | 43 | this._status = args['status'] || 'ACTIVE'; //'REQUESTED', 'USED', 'DISABLED' |
47 | this._connectionInfo= null; | 44 | this._connectionInfo= null; |
48 | 45 | ||
49 | this._key = null; | 46 | this._key = null; |
50 | this._keyChecksum= null; | 47 | this._keyChecksum= null; |
51 | 48 | ||
52 | return this; | 49 | return this; |
53 | } | 50 | } |
54 | 51 | ||
55 | Clipperz.PM.DataModel.OneTimePassword.prototype = MochiKit.Base.update(null, { | 52 | Clipperz.PM.DataModel.OneTimePassword.prototype = MochiKit.Base.update(null, { |
56 | 53 | ||
57 | 'toString': function() { | 54 | 'toString': function() { |
58 | return "Clipperz.PM.DataModel.OneTimePassword"; | 55 | return "Clipperz.PM.DataModel.OneTimePassword"; |
59 | }, | 56 | }, |
60 | /* | 57 | /* |
61 | //------------------------------------------------------------------------- | 58 | //------------------------------------------------------------------------- |
62 | 59 | ||
63 | 'user': function() { | 60 | 'user': function() { |
64 | return this._user; | 61 | return this._user; |
65 | }, | 62 | }, |
66 | 63 | ||
67 | //------------------------------------------------------------------------- | 64 | //------------------------------------------------------------------------- |
68 | 65 | ||
69 | 'password': function() { | 66 | 'password': function() { |
70 | return this._password; | 67 | return this._password; |
71 | }, | 68 | }, |
72 | 69 | ||
73 | //------------------------------------------------------------------------- | 70 | //------------------------------------------------------------------------- |
74 | 71 | ||
75 | 'passwordValue': function() { | 72 | 'passwordValue': function() { |
76 | return this._passwordValue; | 73 | return this._passwordValue; |
77 | }, | 74 | }, |
78 | 75 | ||
79 | //------------------------------------------------------------------------- | 76 | //------------------------------------------------------------------------- |
80 | 77 | ||
81 | 'creationDate': function() { | 78 | 'creationDate': function() { |
82 | return this._creationDate; | 79 | return this._creationDate; |
83 | }, | 80 | }, |
84 | 81 | ||
85 | //------------------------------------------------------------------------- | 82 | //------------------------------------------------------------------------- |
86 | 83 | ||
87 | 'reference': function() { | 84 | 'reference': function() { |
88 | return this._reference; | 85 | return this._reference; |
89 | }, | 86 | }, |
90 | 87 | ||
91 | //------------------------------------------------------------------------- | 88 | //------------------------------------------------------------------------- |
92 | 89 | ||
93 | 'key': function() { | 90 | 'key': function() { |
94 | if (this._key == null) { | 91 | if (this._key == null) { |
95 | this._key = Clipperz.PM.DataModel.OneTimePassword.computeKeyWithUsernameAndPassword(this.user().username(), this.passwordValue()); | 92 | this._key = Clipperz.PM.DataModel.OneTimePassword.computeKeyWithUsernameAndPassword(this.user().username(), this.passwordValue()); |
96 | } | 93 | } |
97 | 94 | ||
98 | return this._key; | 95 | return this._key; |
99 | }, | 96 | }, |
100 | 97 | ||
101 | //------------------------------------------------------------------------- | 98 | //------------------------------------------------------------------------- |
102 | 99 | ||
103 | 'keyChecksum': function() { | 100 | 'keyChecksum': function() { |
104 | if (this._keyChecksum == null) { | 101 | if (this._keyChecksum == null) { |
105 | this._keyChecksum = Clipperz.PM.DataModel.OneTimePassword.computeKeyChecksumWithUsernameAndPassword(this.user().username(), this.passwordValue()); | 102 | this._keyChecksum = Clipperz.PM.DataModel.OneTimePassword.computeKeyChecksumWithUsernameAndPassword(this.user().username(), this.passwordValue()); |
106 | } | 103 | } |
107 | 104 | ||
108 | return this._keyChecksum; | 105 | return this._keyChecksum; |
109 | }, | 106 | }, |
110 | */ | 107 | */ |
111 | //------------------------------------------------------------------------- | 108 | //------------------------------------------------------------------------- |
112 | 109 | ||
113 | 'status': function() { | 110 | 'status': function() { |
114 | return this._status; | 111 | return this._status; |
115 | }, | 112 | }, |
116 | 113 | ||
117 | 'setStatus': function(aValue) { | 114 | 'setStatus': function(aValue) { |
118 | this._status = aValue; | 115 | this._status = aValue; |
119 | }, | 116 | }, |
120 | 117 | ||
diff --git a/frontend/gamma/js/Clipperz/PM/DataModel/Record.Version.Field.js b/frontend/gamma/js/Clipperz/PM/DataModel/Record.Version.Field.js index 147aa7d..f51bbc2 100644 --- a/frontend/gamma/js/Clipperz/PM/DataModel/Record.Version.Field.js +++ b/frontend/gamma/js/Clipperz/PM/DataModel/Record.Version.Field.js | |||
@@ -1,120 +1,117 @@ | |||
1 | /* | 1 | /* |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | */ | 24 | */ |
28 | 25 | ||
29 | try { if (typeof(Clipperz.PM.DataModel.Record.Version) == 'undefined') { throw ""; }} catch (e) { | 26 | try { if (typeof(Clipperz.PM.DataModel.Record.Version) == 'undefined') { throw ""; }} catch (e) { |
30 | throw "Clipperz.PM.DataModel.Record.Version.Field depends on Clipperz.PM.DataModel.Record.Version!"; | 27 | throw "Clipperz.PM.DataModel.Record.Version.Field depends on Clipperz.PM.DataModel.Record.Version!"; |
31 | } | 28 | } |
32 | 29 | ||
33 | Clipperz.PM.DataModel.Record.Version.Field = function(args) { | 30 | Clipperz.PM.DataModel.Record.Version.Field = function(args) { |
34 | Clipperz.PM.DataModel.Record.Version.Field.superclass.constructor.apply(this, arguments); | 31 | Clipperz.PM.DataModel.Record.Version.Field.superclass.constructor.apply(this, arguments); |
35 | 32 | ||
36 | this._recordVersion = args.recordVersion|| Clipperz.Base.exception.raise('MandatoryParameter'); | 33 | this._recordVersion = args.recordVersion|| Clipperz.Base.exception.raise('MandatoryParameter'); |
37 | this._reference = args.reference || Clipperz.PM.Crypto.randomKey(); | 34 | this._reference = args.reference || Clipperz.PM.Crypto.randomKey(); |
38 | 35 | ||
39 | return this; | 36 | return this; |
40 | } | 37 | } |
41 | 38 | ||
42 | 39 | ||
43 | Clipperz.Base.extend(Clipperz.PM.DataModel.Record.Version.Field, Object, { | 40 | Clipperz.Base.extend(Clipperz.PM.DataModel.Record.Version.Field, Object, { |
44 | 41 | ||
45 | 'toString': function() { | 42 | 'toString': function() { |
46 | return "Record.Version.Field (" + this.reference() + ")"; | 43 | return "Record.Version.Field (" + this.reference() + ")"; |
47 | }, | 44 | }, |
48 | 45 | ||
49 | //------------------------------------------------------------------------- | 46 | //------------------------------------------------------------------------- |
50 | 47 | ||
51 | 'recordVersion': function () { | 48 | 'recordVersion': function () { |
52 | return this._recordVersion; | 49 | return this._recordVersion; |
53 | }, | 50 | }, |
54 | 51 | ||
55 | //------------------------------------------------------------------------- | 52 | //------------------------------------------------------------------------- |
56 | 53 | ||
57 | 'reference': function () { | 54 | 'reference': function () { |
58 | return this._reference; | 55 | return this._reference; |
59 | }, | 56 | }, |
60 | 57 | ||
61 | //------------------------------------------------------------------------- | 58 | //------------------------------------------------------------------------- |
62 | 59 | ||
63 | 'getItem': function (aKey) { | 60 | 'getItem': function (aKey) { |
64 | return Clipperz.Async.callbacks("Clipperz.PM.DataModel.Record.Version.Field.getItem", [ | 61 | return Clipperz.Async.callbacks("Clipperz.PM.DataModel.Record.Version.Field.getItem", [ |
65 | MochiKit.Base.method(this, 'recordVersion'), | 62 | MochiKit.Base.method(this, 'recordVersion'), |
66 | MochiKit.Base.methodcaller('getValue', 'fields' + '.' + this.reference() + '.' + aKey) | 63 | MochiKit.Base.methodcaller('getValue', 'fields' + '.' + this.reference() + '.' + aKey) |
67 | ], {trace:false}); | 64 | ], {trace:false}); |
68 | }, | 65 | }, |
69 | 66 | ||
70 | 'setItem': function (aKey, aValue) { | 67 | 'setItem': function (aKey, aValue) { |
71 | return Clipperz.Async.callbacks("Clipperz.PM.DataModel.Record.Version.Field.getItem", [ | 68 | return Clipperz.Async.callbacks("Clipperz.PM.DataModel.Record.Version.Field.getItem", [ |
72 | MochiKit.Base.method(this, 'recordVersion'), | 69 | MochiKit.Base.method(this, 'recordVersion'), |
73 | MochiKit.Base.methodcaller('setValue', 'fields' + '.' + this.reference() + '.' + aKey, aValue) | 70 | MochiKit.Base.methodcaller('setValue', 'fields' + '.' + this.reference() + '.' + aKey, aValue) |
74 | ], {trace:false}); | 71 | ], {trace:false}); |
75 | }, | 72 | }, |
76 | 73 | ||
77 | //------------------------------------------------------------------------- | 74 | //------------------------------------------------------------------------- |
78 | 75 | ||
79 | 'label': function () { | 76 | 'label': function () { |
80 | return this.getItem('label'); | 77 | return this.getItem('label'); |
81 | }, | 78 | }, |
82 | 79 | ||
83 | 'setLabel': function (aValue) { | 80 | 'setLabel': function (aValue) { |
84 | return this.setItem('label', aValue); | 81 | return this.setItem('label', aValue); |
85 | }, | 82 | }, |
86 | 83 | ||
87 | //------------------------------------------------------------------------- | 84 | //------------------------------------------------------------------------- |
88 | 85 | ||
89 | 'value': function () { | 86 | 'value': function () { |
90 | return this.getItem('value'); | 87 | return this.getItem('value'); |
91 | }, | 88 | }, |
92 | 89 | ||
93 | 'setValue': function (aValue) { | 90 | 'setValue': function (aValue) { |
94 | return this.setItem('value', aValue); | 91 | return this.setItem('value', aValue); |
95 | }, | 92 | }, |
96 | 93 | ||
97 | //------------------------------------------------------------------------- | 94 | //------------------------------------------------------------------------- |
98 | 95 | ||
99 | 'actionType': function () { | 96 | 'actionType': function () { |
100 | return Clipperz.Async.callbacks("Clipperz.PM.DataModel.Record.Version.Field.actionType", [ | 97 | return Clipperz.Async.callbacks("Clipperz.PM.DataModel.Record.Version.Field.actionType", [ |
101 | Clipperz.Async.collectResults("Clipperz.PM.DataModel.Record.Version.Field.actionType [collect results]", { | 98 | Clipperz.Async.collectResults("Clipperz.PM.DataModel.Record.Version.Field.actionType [collect results]", { |
102 | 'isHidden':MochiKit.Base.method(this, 'isHidden'), | 99 | 'isHidden':MochiKit.Base.method(this, 'isHidden'), |
103 | 'value':MochiKit.Base.method(this, 'value') | 100 | 'value':MochiKit.Base.method(this, 'value') |
104 | }, {trace:false}), | 101 | }, {trace:false}), |
105 | function (someValues) { | 102 | function (someValues) { |
106 | var result; //'NONE', 'URL', 'EMAIL', 'PASSWORD' | 103 | var result; //'NONE', 'URL', 'EMAIL', 'PASSWORD' |
107 | 104 | ||
108 | result = 'NONE'; | 105 | result = 'NONE'; |
109 | 106 | ||
110 | if (someValues['isHidden']) { | 107 | if (someValues['isHidden']) { |
111 | result = 'PASSWORD'; | 108 | result = 'PASSWORD'; |
112 | } else if (Clipperz.Base.isUrl(someValues['value'])) { | 109 | } else if (Clipperz.Base.isUrl(someValues['value'])) { |
113 | result = 'URL' | 110 | result = 'URL' |
114 | } else if (Clipperz.Base.isEmail(someValues['value'])) { | 111 | } else if (Clipperz.Base.isEmail(someValues['value'])) { |
115 | result = 'EMAIL' | 112 | result = 'EMAIL' |
116 | }; | 113 | }; |
117 | 114 | ||
118 | return result; | 115 | return result; |
119 | } | 116 | } |
120 | ], {trace:false}); | 117 | ], {trace:false}); |
diff --git a/frontend/gamma/js/Clipperz/PM/DataModel/Record.Version.js b/frontend/gamma/js/Clipperz/PM/DataModel/Record.Version.js index 6e50f8e..dd35fc9 100644 --- a/frontend/gamma/js/Clipperz/PM/DataModel/Record.Version.js +++ b/frontend/gamma/js/Clipperz/PM/DataModel/Record.Version.js | |||
@@ -1,120 +1,117 @@ | |||
1 | /* | 1 | /* |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | */ | 24 | */ |
28 | 25 | ||
29 | try { if (typeof(Clipperz.PM.DataModel.Record) == 'undefined') { throw ""; }} catch (e) { | 26 | try { if (typeof(Clipperz.PM.DataModel.Record) == 'undefined') { throw ""; }} catch (e) { |
30 | throw "Clipperz.PM.DataModel.Record.Version depends on Clipperz.PM.DataModel.Record!"; | 27 | throw "Clipperz.PM.DataModel.Record.Version depends on Clipperz.PM.DataModel.Record!"; |
31 | } | 28 | } |
32 | 29 | ||
33 | Clipperz.PM.DataModel.Record.Version = function(args) { | 30 | Clipperz.PM.DataModel.Record.Version = function(args) { |
34 | //console.log(">>> Record.new"); | 31 | //console.log(">>> Record.new"); |
35 | Clipperz.PM.DataModel.Record.Version.superclass.constructor.apply(this, arguments); | 32 | Clipperz.PM.DataModel.Record.Version.superclass.constructor.apply(this, arguments); |
36 | 33 | ||
37 | this._getVersionFunction = args.getVersion|| Clipperz.Base.exception.raise('MandatoryParameter'); | 34 | this._getVersionFunction = args.getVersion|| Clipperz.Base.exception.raise('MandatoryParameter'); |
38 | this._fields = null; | 35 | this._fields = null; |
39 | 36 | ||
40 | return this; | 37 | return this; |
41 | } | 38 | } |
42 | 39 | ||
43 | 40 | ||
44 | Clipperz.Base.extend(Clipperz.PM.DataModel.Record.Version, Clipperz.PM.DataModel.EncryptedRemoteObject, { | 41 | Clipperz.Base.extend(Clipperz.PM.DataModel.Record.Version, Clipperz.PM.DataModel.EncryptedRemoteObject, { |
45 | 42 | ||
46 | 'toString': function() { | 43 | 'toString': function() { |
47 | return "Record.Version (" + this.reference() + ")"; | 44 | return "Record.Version (" + this.reference() + ")"; |
48 | }, | 45 | }, |
49 | 46 | ||
50 | //------------------------------------------------------------------------- | 47 | //------------------------------------------------------------------------- |
51 | 48 | ||
52 | 'reference': function () { | 49 | 'reference': function () { |
53 | return this._reference; | 50 | return this._reference; |
54 | }, | 51 | }, |
55 | 52 | ||
56 | //------------------------------------------------------------------------- | 53 | //------------------------------------------------------------------------- |
57 | /* | 54 | /* |
58 | 'hasPendingChanges': function () { | 55 | 'hasPendingChanges': function () { |
59 | var deferredResult; | 56 | var deferredResult; |
60 | 57 | ||
61 | deferredResult = new Clipperz.Async.Deferred("Clipperz.PM.DataModel.Record.Version.hasPendingChanges", {trace:false}); | 58 | deferredResult = new Clipperz.Async.Deferred("Clipperz.PM.DataModel.Record.Version.hasPendingChanges", {trace:false}); |
62 | deferredResult.addCallback(MochiKit.Base.bind(Clipperz.PM.DataModel.Record.Version.superclass.hasPendingChanges, this)); | 59 | deferredResult.addCallback(MochiKit.Base.bind(Clipperz.PM.DataModel.Record.Version.superclass.hasPendingChanges, this)); |
63 | deferredResult.callback(); | 60 | deferredResult.callback(); |
64 | 61 | ||
65 | return deferredResult; | 62 | return deferredResult; |
66 | }, | 63 | }, |
67 | */ | 64 | */ |
68 | //------------------------------------------------------------------------- | 65 | //------------------------------------------------------------------------- |
69 | 66 | ||
70 | 67 | ||
71 | 'hasPendingChangesWhenBrandNew': function () { | 68 | 'hasPendingChangesWhenBrandNew': function () { |
72 | var deferredResult; | 69 | var deferredResult; |
73 | 70 | ||
74 | deferredResult = new Clipperz.Async.Deferred("Clipperz.PM.DataModel.Record.Version.hasPendingChangesWhenBrandNew", {trace:false}); | 71 | deferredResult = new Clipperz.Async.Deferred("Clipperz.PM.DataModel.Record.Version.hasPendingChangesWhenBrandNew", {trace:false}); |
75 | deferredResult.addMethod(this, 'fields'); | 72 | deferredResult.addMethod(this, 'fields'); |
76 | deferredResult.addCallback(MochiKit.Base.values); | 73 | deferredResult.addCallback(MochiKit.Base.values); |
77 | deferredResult.addCallback(MochiKit.Base.map, MochiKit.Base.methodcaller('isEmpty')) | 74 | deferredResult.addCallback(MochiKit.Base.map, MochiKit.Base.methodcaller('isEmpty')) |
78 | deferredResult.addCallback(Clipperz.Async.collectAll); | 75 | deferredResult.addCallback(Clipperz.Async.collectAll); |
79 | deferredResult.addCallback(function(someValues) { | 76 | deferredResult.addCallback(function(someValues) { |
80 | return MochiKit.Iter.every(someValues, MochiKit.Base.operator.identity); | 77 | return MochiKit.Iter.every(someValues, MochiKit.Base.operator.identity); |
81 | }); | 78 | }); |
82 | deferredResult.addCallback(MochiKit.Base.operator.lognot) | 79 | deferredResult.addCallback(MochiKit.Base.operator.lognot) |
83 | deferredResult.callback(); | 80 | deferredResult.callback(); |
84 | 81 | ||
85 | return deferredResult; | 82 | return deferredResult; |
86 | }, | 83 | }, |
87 | 84 | ||
88 | //========================================================================= | 85 | //========================================================================= |
89 | 86 | ||
90 | 'commitTransientState': function () { | 87 | 'commitTransientState': function () { |
91 | var deferredResult; | 88 | var deferredResult; |
92 | 89 | ||
93 | deferredResult = new Clipperz.Async.Deferred("Clipperz.PM.DataModel.Record.Version.commitTransientState", {trace:false}); | 90 | deferredResult = new Clipperz.Async.Deferred("Clipperz.PM.DataModel.Record.Version.commitTransientState", {trace:false}); |
94 | deferredResult.addCallback(MochiKit.Base.bind(Clipperz.PM.DataModel.Record.Version.superclass.commitTransientState, this)); | 91 | deferredResult.addCallback(MochiKit.Base.bind(Clipperz.PM.DataModel.Record.Version.superclass.commitTransientState, this)); |
95 | deferredResult.callback(); | 92 | deferredResult.callback(); |
96 | 93 | ||
97 | return deferredResult; | 94 | return deferredResult; |
98 | }, | 95 | }, |
99 | 96 | ||
100 | //========================================================================= | 97 | //========================================================================= |
101 | 98 | ||
102 | 'unpackData': function (someData) { //++ | 99 | 'unpackData': function (someData) { //++ |
103 | varresult; | 100 | varresult; |
104 | 101 | ||
105 | //console.log("Record.Version - UNPACK DATA", this, someData); | 102 | //console.log("Record.Version - UNPACK DATA", this, someData); |
106 | result = someData; | 103 | result = someData; |
107 | if ((someData['fields'] != null) && (someData['fields'] instanceof Array)) { | 104 | if ((someData['fields'] != null) && (someData['fields'] instanceof Array)) { |
108 | varfields; | 105 | varfields; |
109 | var i,c; | 106 | var i,c; |
110 | 107 | ||
111 | fields = someData['fields']; | 108 | fields = someData['fields']; |
112 | delete someData['fields']; | 109 | delete someData['fields']; |
113 | 110 | ||
114 | someData['fields'] = {}; | 111 | someData['fields'] = {}; |
115 | c = fields.length; | 112 | c = fields.length; |
116 | for (i=0; i<c; i++) { | 113 | for (i=0; i<c; i++) { |
117 | someData['fields'][i] = fields[i]; | 114 | someData['fields'][i] = fields[i]; |
118 | } | 115 | } |
119 | } | 116 | } |
120 | 117 | ||
diff --git a/frontend/gamma/js/Clipperz/PM/DataModel/Record.js b/frontend/gamma/js/Clipperz/PM/DataModel/Record.js index 85dd06b..b816f80 100644 --- a/frontend/gamma/js/Clipperz/PM/DataModel/Record.js +++ b/frontend/gamma/js/Clipperz/PM/DataModel/Record.js | |||
@@ -1,120 +1,117 @@ | |||
1 | /* | 1 | /* |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | */ | 24 | */ |
28 | 25 | ||
29 | if (typeof(Clipperz) == 'undefined') { Clipperz = {}; } | 26 | if (typeof(Clipperz) == 'undefined') { Clipperz = {}; } |
30 | if (typeof(Clipperz.PM) == 'undefined') { Clipperz.PM = {}; } | 27 | if (typeof(Clipperz.PM) == 'undefined') { Clipperz.PM = {}; } |
31 | if (typeof(Clipperz.PM.DataModel) == 'undefined') { Clipperz.PM.DataModel = {}; } | 28 | if (typeof(Clipperz.PM.DataModel) == 'undefined') { Clipperz.PM.DataModel = {}; } |
32 | 29 | ||
33 | 30 | ||
34 | Clipperz.PM.DataModel.Record = function(args) { | 31 | Clipperz.PM.DataModel.Record = function(args) { |
35 | //console.log(">>> new Clipperz.PM.DataModel.Record", args); | 32 | //console.log(">>> new Clipperz.PM.DataModel.Record", args); |
36 | Clipperz.PM.DataModel.Record.superclass.constructor.apply(this, arguments); | 33 | Clipperz.PM.DataModel.Record.superclass.constructor.apply(this, arguments); |
37 | 34 | ||
38 | this._updateDate = (args.updateDate ? Clipperz.PM.Date.parse(args.updateDate) : Clipperz.Base.exception.raise('MandatoryParameter')); | 35 | this._updateDate = (args.updateDate ? Clipperz.PM.Date.parse(args.updateDate) : Clipperz.Base.exception.raise('MandatoryParameter')); |
39 | 36 | ||
40 | this._retrieveIndexDataFunction = args.retrieveIndexDataFunction|| Clipperz.Base.exception.raise('MandatoryParameter'); | 37 | this._retrieveIndexDataFunction = args.retrieveIndexDataFunction|| Clipperz.Base.exception.raise('MandatoryParameter'); |
41 | this._updateIndexDataFunction = args.updateIndexDataFunction || Clipperz.Base.exception.raise('MandatoryParameter'); | 38 | this._updateIndexDataFunction = args.updateIndexDataFunction || Clipperz.Base.exception.raise('MandatoryParameter'); |
42 | 39 | ||
43 | this._retrieveDirectLoginIndexDataFunction = args.retrieveDirectLoginIndexDataFunction|| null; | 40 | this._retrieveDirectLoginIndexDataFunction = args.retrieveDirectLoginIndexDataFunction|| null; |
44 | this._setDirectLoginIndexDataFunction = args.setDirectLoginIndexDataFunction || null; | 41 | this._setDirectLoginIndexDataFunction = args.setDirectLoginIndexDataFunction || null; |
45 | this._removeDirectLoginIndexDataFunction = args.removeDirectLoginIndexDataFunction|| null; | 42 | this._removeDirectLoginIndexDataFunction = args.removeDirectLoginIndexDataFunction|| null; |
46 | 43 | ||
47 | this._createNewDirectLoginFunction = args.createNewDirectLoginFunction || null; | 44 | this._createNewDirectLoginFunction = args.createNewDirectLoginFunction || null; |
48 | 45 | ||
49 | this._directLogins = {}; | 46 | this._directLogins = {}; |
50 | 47 | ||
51 | this._versions = {}; | 48 | this._versions = {}; |
52 | 49 | ||
53 | this._currentRecordVersion = null; | 50 | this._currentRecordVersion = null; |
54 | if (this.isBrandNew()) { | 51 | if (this.isBrandNew()) { |
55 | var newVersion; | 52 | var newVersion; |
56 | 53 | ||
57 | this.setNotes(''); | 54 | this.setNotes(''); |
58 | newVersion = new Clipperz.PM.DataModel.Record.Version({ | 55 | newVersion = new Clipperz.PM.DataModel.Record.Version({ |
59 | 'retrieveKeyFunction':MochiKit.Base.method(this, 'getVersionKey'), | 56 | 'retrieveKeyFunction':MochiKit.Base.method(this, 'getVersionKey'), |
60 | 'getVersion': MochiKit.Base.method(this, 'getVersion') | 57 | 'getVersion': MochiKit.Base.method(this, 'getVersion') |
61 | 58 | ||
62 | }); | 59 | }); |
63 | this._versions[newVersion.reference()] = newVersion; | 60 | this._versions[newVersion.reference()] = newVersion; |
64 | this._currentVersionReference = newVersion.reference(); | 61 | this._currentVersionReference = newVersion.reference(); |
65 | // this.setLabel(''); | 62 | // this.setLabel(''); |
66 | } | 63 | } |
67 | 64 | ||
68 | //console.log("<<< new Clipperz.PM.DataModel.Record", args); | 65 | //console.log("<<< new Clipperz.PM.DataModel.Record", args); |
69 | 66 | ||
70 | return this; | 67 | return this; |
71 | } | 68 | } |
72 | 69 | ||
73 | 70 | ||
74 | Clipperz.Base.extend(Clipperz.PM.DataModel.Record, Clipperz.PM.DataModel.EncryptedRemoteObject, { | 71 | Clipperz.Base.extend(Clipperz.PM.DataModel.Record, Clipperz.PM.DataModel.EncryptedRemoteObject, { |
75 | 72 | ||
76 | 'toString': function() { | 73 | 'toString': function() { |
77 | return "Record (" + this.reference() + ")"; | 74 | return "Record (" + this.reference() + ")"; |
78 | }, | 75 | }, |
79 | 76 | ||
80 | //------------------------------------------------------------------------- | 77 | //------------------------------------------------------------------------- |
81 | 78 | ||
82 | 'reference': function () { | 79 | 'reference': function () { |
83 | return this._reference; | 80 | return this._reference; |
84 | }, | 81 | }, |
85 | 82 | ||
86 | //========================================================================= | 83 | //========================================================================= |
87 | 84 | ||
88 | 'getIndexData': function () { | 85 | 'getIndexData': function () { |
89 | return this._retrieveIndexDataFunction(this.reference()); | 86 | return this._retrieveIndexDataFunction(this.reference()); |
90 | }, | 87 | }, |
91 | 88 | ||
92 | //......................................................................... | 89 | //......................................................................... |
93 | 90 | ||
94 | 'getIndexDataForKey': function (aKey) { | 91 | 'getIndexDataForKey': function (aKey) { |
95 | return Clipperz.Async.callbacks("Record.getIndexDataForKey", [ | 92 | return Clipperz.Async.callbacks("Record.getIndexDataForKey", [ |
96 | MochiKit.Base.method(this, 'getIndexData'), | 93 | MochiKit.Base.method(this, 'getIndexData'), |
97 | MochiKit.Base.itemgetter(aKey) | 94 | MochiKit.Base.itemgetter(aKey) |
98 | ], {trace:false}); | 95 | ], {trace:false}); |
99 | }, | 96 | }, |
100 | 97 | ||
101 | //------------------------------------------------------------------------- | 98 | //------------------------------------------------------------------------- |
102 | 99 | ||
103 | 'setIndexDataForKey': function (aKey, aValue) { | 100 | 'setIndexDataForKey': function (aKey, aValue) { |
104 | // return this._updateIndexDataFunction(this.reference(), aKey, aValue); | 101 | // return this._updateIndexDataFunction(this.reference(), aKey, aValue); |
105 | 102 | ||
106 | var deferredResult; | 103 | var deferredResult; |
107 | 104 | ||
108 | deferredResult = new Clipperz.Async.Deferred("Record.setIndexDataForKey", {trace:false}); | 105 | deferredResult = new Clipperz.Async.Deferred("Record.setIndexDataForKey", {trace:false}); |
109 | deferredResult.addMethod(this, 'getIndexDataForKey', aKey); | 106 | deferredResult.addMethod(this, 'getIndexDataForKey', aKey); |
110 | deferredResult.addCallback(MochiKit.Base.bind(function (aCurrentValue) { | 107 | deferredResult.addCallback(MochiKit.Base.bind(function (aCurrentValue) { |
111 | var result; | 108 | var result; |
112 | var originalValue; | 109 | var originalValue; |
113 | 110 | ||
114 | originalValue = this.transientState().getValue('originalValues.indexData.' + aKey); | 111 | originalValue = this.transientState().getValue('originalValues.indexData.' + aKey); |
115 | if (originalValue == null) { | 112 | if (originalValue == null) { |
116 | originalValue = this.transientState().setValue('originalValues.indexData.' + aKey, aCurrentValue); | 113 | originalValue = this.transientState().setValue('originalValues.indexData.' + aKey, aCurrentValue); |
117 | } | 114 | } |
118 | 115 | ||
119 | if (aCurrentValue != aValue) { | 116 | if (aCurrentValue != aValue) { |
120 | if (originalValue != aValue) { | 117 | if (originalValue != aValue) { |
diff --git a/frontend/gamma/js/Clipperz/PM/DataModel/User.Header.Legacy.js b/frontend/gamma/js/Clipperz/PM/DataModel/User.Header.Legacy.js index e675525..d6202ff 100644 --- a/frontend/gamma/js/Clipperz/PM/DataModel/User.Header.Legacy.js +++ b/frontend/gamma/js/Clipperz/PM/DataModel/User.Header.Legacy.js | |||
@@ -1,120 +1,117 @@ | |||
1 | /* | 1 | /* |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | */ | 24 | */ |
28 | 25 | ||
29 | try { if (typeof(Clipperz.PM.DataModel.User) == 'undefined') { throw ""; }} catch (e) { | 26 | try { if (typeof(Clipperz.PM.DataModel.User) == 'undefined') { throw ""; }} catch (e) { |
30 | throw "Clipperz.PM.DataModel.User.Header.Legacy depends on Clipperz.PM.DataModel.User!"; | 27 | throw "Clipperz.PM.DataModel.User.Header.Legacy depends on Clipperz.PM.DataModel.User!"; |
31 | } | 28 | } |
32 | 29 | ||
33 | if (typeof(Clipperz.PM.DataModel.User.Header) == 'undefined') { Clipperz.PM.DataModel.User.Header = {}; } | 30 | if (typeof(Clipperz.PM.DataModel.User.Header) == 'undefined') { Clipperz.PM.DataModel.User.Header = {}; } |
34 | 31 | ||
35 | Clipperz.PM.DataModel.User.Header.Legacy = function(args) { | 32 | Clipperz.PM.DataModel.User.Header.Legacy = function(args) { |
36 | //args = args || {}; | 33 | //args = args || {}; |
37 | Clipperz.PM.DataModel.User.Header.Legacy.superclass.constructor.apply(this, arguments); | 34 | Clipperz.PM.DataModel.User.Header.Legacy.superclass.constructor.apply(this, arguments); |
38 | 35 | ||
39 | this._retrieveRecordDetailFunction = args.retrieveRecordDetailFunction|| Clipperz.Base.exception.raise('MandatoryParameter'); | 36 | this._retrieveRecordDetailFunction = args.retrieveRecordDetailFunction|| Clipperz.Base.exception.raise('MandatoryParameter'); |
40 | this._records = null; | 37 | this._records = null; |
41 | //this._directLogins = null; | 38 | //this._directLogins = null; |
42 | 39 | ||
43 | return this; | 40 | return this; |
44 | } | 41 | } |
45 | 42 | ||
46 | 43 | ||
47 | Clipperz.Base.extend(Clipperz.PM.DataModel.User.Header.Legacy, Clipperz.PM.DataModel.EncryptedRemoteObject, { | 44 | Clipperz.Base.extend(Clipperz.PM.DataModel.User.Header.Legacy, Clipperz.PM.DataModel.EncryptedRemoteObject, { |
48 | 45 | ||
49 | 'toString': function() { | 46 | 'toString': function() { |
50 | return "Clipperz.PM.DataModel.User.Header.Legacy"; | 47 | return "Clipperz.PM.DataModel.User.Header.Legacy"; |
51 | }, | 48 | }, |
52 | 49 | ||
53 | //------------------------------------------------------------------------- | 50 | //------------------------------------------------------------------------- |
54 | 51 | ||
55 | 'retrieveRecordDetailFunction': function () { | 52 | 'retrieveRecordDetailFunction': function () { |
56 | return this._retrieveRecordDetailFunction; | 53 | return this._retrieveRecordDetailFunction; |
57 | }, | 54 | }, |
58 | 55 | ||
59 | //------------------------------------------------------------------------- | 56 | //------------------------------------------------------------------------- |
60 | 57 | ||
61 | 'getRecordKey': function (aRecordReference) { | 58 | 'getRecordKey': function (aRecordReference) { |
62 | var deferredResult; | 59 | var deferredResult; |
63 | 60 | ||
64 | deferredResult = new Clipperz.Async.Deferred("User.Header.Legacy.getRecordKey", {trace:false}); | 61 | deferredResult = new Clipperz.Async.Deferred("User.Header.Legacy.getRecordKey", {trace:false}); |
65 | deferredResult.addMethod(this, 'getRecordIndexData'); | 62 | deferredResult.addMethod(this, 'getRecordIndexData'); |
66 | deferredResult.addCallback(MochiKit.Base.itemgetter('key')) | 63 | deferredResult.addCallback(MochiKit.Base.itemgetter('key')) |
67 | deferredResult.callback(); | 64 | deferredResult.callback(); |
68 | 65 | ||
69 | return deferredResult; | 66 | return deferredResult; |
70 | }, | 67 | }, |
71 | 68 | ||
72 | //========================================================================= | 69 | //========================================================================= |
73 | 70 | ||
74 | 'getRecordIndexData': function (aRecordReference) { | 71 | 'getRecordIndexData': function (aRecordReference) { |
75 | return this.getValue('records.' + aRecordReference); | 72 | return this.getValue('records.' + aRecordReference); |
76 | }, | 73 | }, |
77 | 74 | ||
78 | 'updateRecordIndexData': function (aRecordReference, aKey, aValue) { | 75 | 'updateRecordIndexData': function (aRecordReference, aKey, aValue) { |
79 | return this.setValue('records.' + aRecordReference + "." + aKey, aValue); | 76 | return this.setValue('records.' + aRecordReference + "." + aKey, aValue); |
80 | }, | 77 | }, |
81 | 78 | ||
82 | //------------------------------------------------------------------------- | 79 | //------------------------------------------------------------------------- |
83 | 80 | ||
84 | 'getDirectLoginIndexData': function (aDirectLoginReference) { | 81 | 'getDirectLoginIndexData': function (aDirectLoginReference) { |
85 | return this.getValue('directLogins.' + aDirectLoginReference); | 82 | return this.getValue('directLogins.' + aDirectLoginReference); |
86 | }, | 83 | }, |
87 | 84 | ||
88 | 'setDirectLoginIndexData': function (aDirectLoginReference, aKey, aValue) { | 85 | 'setDirectLoginIndexData': function (aDirectLoginReference, aKey, aValue) { |
89 | return this.setValue('directLogins.' + aDirectLoginReference + '.' + aKey, aValue); | 86 | return this.setValue('directLogins.' + aDirectLoginReference + '.' + aKey, aValue); |
90 | }, | 87 | }, |
91 | 88 | ||
92 | 'removeDirectLoginIndexData': function (aDirectLoginReference) { | 89 | 'removeDirectLoginIndexData': function (aDirectLoginReference) { |
93 | return this.removeValue('directLogins.' + aDirectLoginReference); | 90 | return this.removeValue('directLogins.' + aDirectLoginReference); |
94 | }, | 91 | }, |
95 | 92 | ||
96 | //========================================================================= | 93 | //========================================================================= |
97 | 94 | ||
98 | 'records': function () { | 95 | 'records': function () { |
99 | vardeferredResult; | 96 | vardeferredResult; |
100 | var deferredLock; | 97 | var deferredLock; |
101 | 98 | ||
102 | deferredLock = this.getDeferredLockForKey('records'); | 99 | deferredLock = this.getDeferredLockForKey('records'); |
103 | 100 | ||
104 | deferredResult = new Clipperz.Async.Deferred("User.Header.Legacy.records", {trace:false}); | 101 | deferredResult = new Clipperz.Async.Deferred("User.Header.Legacy.records", {trace:false}); |
105 | deferredResult.acquireLock(deferredLock); | 102 | deferredResult.acquireLock(deferredLock); |
106 | deferredResult.addCallback(MochiKit.Base.bind(function () { | 103 | deferredResult.addCallback(MochiKit.Base.bind(function () { |
107 | var innerDeferredResult; | 104 | var innerDeferredResult; |
108 | 105 | ||
109 | if (this._records == null) { | 106 | if (this._records == null) { |
110 | innerDeferredResult = new Clipperz.Async.Deferred("User.Header.Legacy.records <inner deferred>", {trace:false}); | 107 | innerDeferredResult = new Clipperz.Async.Deferred("User.Header.Legacy.records <inner deferred>", {trace:false}); |
111 | innerDeferredResult.collectResults({ | 108 | innerDeferredResult.collectResults({ |
112 | 'header': [ | 109 | 'header': [ |
113 | // MochiKit.Base.method(this, 'getObjectDataStore'), | 110 | // MochiKit.Base.method(this, 'getObjectDataStore'), |
114 | // MochiKit.Base.methodcaller('values') | 111 | // MochiKit.Base.methodcaller('values') |
115 | MochiKit.Base.method(this, 'values') | 112 | MochiKit.Base.method(this, 'values') |
116 | ], | 113 | ], |
117 | 'recordsStats': [ | 114 | 'recordsStats': [ |
118 | MochiKit.Base.method(this, 'getRemoteData'), | 115 | MochiKit.Base.method(this, 'getRemoteData'), |
119 | MochiKit.Base.itemgetter('recordsStats') | 116 | MochiKit.Base.itemgetter('recordsStats') |
120 | ] | 117 | ] |
diff --git a/frontend/gamma/js/Clipperz/PM/DataModel/User.Header.OneTimePasswords.js b/frontend/gamma/js/Clipperz/PM/DataModel/User.Header.OneTimePasswords.js index 0ee8599..3528db6 100644 --- a/frontend/gamma/js/Clipperz/PM/DataModel/User.Header.OneTimePasswords.js +++ b/frontend/gamma/js/Clipperz/PM/DataModel/User.Header.OneTimePasswords.js | |||
@@ -1,120 +1,117 @@ | |||
1 | /* | 1 | /* |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | */ | 24 | */ |
28 | 25 | ||
29 | try { if (typeof(Clipperz.PM.DataModel.User) == 'undefined') { throw ""; }} catch (e) { | 26 | try { if (typeof(Clipperz.PM.DataModel.User) == 'undefined') { throw ""; }} catch (e) { |
30 | throw "Clipperz.PM.DataModel.User.Header.OneTimePasswords depends on Clipperz.PM.DataModel.User!"; | 27 | throw "Clipperz.PM.DataModel.User.Header.OneTimePasswords depends on Clipperz.PM.DataModel.User!"; |
31 | } | 28 | } |
32 | if (typeof(Clipperz.PM.DataModel.User.Header) == 'undefined') { Clipperz.PM.DataModel.User.Header = {}; } | 29 | if (typeof(Clipperz.PM.DataModel.User.Header) == 'undefined') { Clipperz.PM.DataModel.User.Header = {}; } |
33 | 30 | ||
34 | //----------------------------------------------------------------------------- | 31 | //----------------------------------------------------------------------------- |
35 | 32 | ||
36 | Clipperz.PM.DataModel.User.Header.OneTimePasswords = function(args) { | 33 | Clipperz.PM.DataModel.User.Header.OneTimePasswords = function(args) { |
37 | Clipperz.PM.DataModel.User.Header.OneTimePasswords.superclass.constructor.apply(this, arguments); | 34 | Clipperz.PM.DataModel.User.Header.OneTimePasswords.superclass.constructor.apply(this, arguments); |
38 | 35 | ||
39 | this._oneTimePasswords = null; | 36 | this._oneTimePasswords = null; |
40 | 37 | ||
41 | return this; | 38 | return this; |
42 | } | 39 | } |
43 | 40 | ||
44 | //----------------------------------------------------------------------------- | 41 | //----------------------------------------------------------------------------- |
45 | 42 | ||
46 | Clipperz.Base.extend(Clipperz.PM.DataModel.User.Header.OneTimePasswords, Clipperz.PM.DataModel.EncryptedRemoteObject, { | 43 | Clipperz.Base.extend(Clipperz.PM.DataModel.User.Header.OneTimePasswords, Clipperz.PM.DataModel.EncryptedRemoteObject, { |
47 | 44 | ||
48 | 'toString': function() { | 45 | 'toString': function() { |
49 | return "Clipperz.PM.DataModel.User.Header.OneTimePasswords"; | 46 | return "Clipperz.PM.DataModel.User.Header.OneTimePasswords"; |
50 | }, | 47 | }, |
51 | 48 | ||
52 | //------------------------------------------------------------------------- | 49 | //------------------------------------------------------------------------- |
53 | /* | 50 | /* |
54 | 'packData': function (someData) { //++ | 51 | 'packData': function (someData) { //++ |
55 | var result; | 52 | var result; |
56 | 53 | ||
57 | console.log(">>> OneTimePasswords.packData", someData); | 54 | console.log(">>> OneTimePasswords.packData", someData); |
58 | result = Clipperz.PM.DataModel.User.Header.OneTimePasswords.superclass.packData.apply(this, arguments); | 55 | result = Clipperz.PM.DataModel.User.Header.OneTimePasswords.superclass.packData.apply(this, arguments); |
59 | console.log("<<< OneTimePasswords.packData"); | 56 | console.log("<<< OneTimePasswords.packData"); |
60 | 57 | ||
61 | return result; | 58 | return result; |
62 | }, | 59 | }, |
63 | */ | 60 | */ |
64 | //------------------------------------------------------------------------- | 61 | //------------------------------------------------------------------------- |
65 | /* | 62 | /* |
66 | 'packRemoteData': function (someData) { | 63 | 'packRemoteData': function (someData) { |
67 | var result; | 64 | var result; |
68 | 65 | ||
69 | console.log(">>> OneTimePasswords.packRemoteData", someData); | 66 | console.log(">>> OneTimePasswords.packRemoteData", someData); |
70 | result = Clipperz.PM.DataModel.User.Header.OneTimePasswords.superclass.packRemoteData.apply(this, arguments); | 67 | result = Clipperz.PM.DataModel.User.Header.OneTimePasswords.superclass.packRemoteData.apply(this, arguments); |
71 | console.log("<<< OneTimePasswords.packRemoteData"); | 68 | console.log("<<< OneTimePasswords.packRemoteData"); |
72 | 69 | ||
73 | return result; | 70 | return result; |
74 | }, | 71 | }, |
75 | */ | 72 | */ |
76 | //------------------------------------------------------------------------- | 73 | //------------------------------------------------------------------------- |
77 | /* | 74 | /* |
78 | 'prepareRemoteDataWithKey': function (aKey) { | 75 | 'prepareRemoteDataWithKey': function (aKey) { |
79 | var result; | 76 | var result; |
80 | 77 | ||
81 | console.log(">>> OneTimePasswords.prepareRemoteDataWithKey"); | 78 | console.log(">>> OneTimePasswords.prepareRemoteDataWithKey"); |
82 | result = Clipperz.PM.DataModel.User.Header.OneTimePasswords.superclass.prepareRemoteDataWithKey.apply(this, arguments); | 79 | result = Clipperz.PM.DataModel.User.Header.OneTimePasswords.superclass.prepareRemoteDataWithKey.apply(this, arguments); |
83 | console.log("<<< OneTimePasswords.prepareRemoteDataWithKey"); | 80 | console.log("<<< OneTimePasswords.prepareRemoteDataWithKey"); |
84 | 81 | ||
85 | return result; | 82 | return result; |
86 | }, | 83 | }, |
87 | */ | 84 | */ |
88 | //========================================================================= | 85 | //========================================================================= |
89 | 86 | ||
90 | 'oneTimePasswords': function () { | 87 | 'oneTimePasswords': function () { |
91 | vardeferredResult; | 88 | vardeferredResult; |
92 | 89 | ||
93 | deferredResult = new Clipperz.Async.Deferred("User.Header.OneTimePasswords.oneTimePasswords", {trace:false}); | 90 | deferredResult = new Clipperz.Async.Deferred("User.Header.OneTimePasswords.oneTimePasswords", {trace:false}); |
94 | if (this._oneTimePasswords == null) { | 91 | if (this._oneTimePasswords == null) { |
95 | deferredResult.addMethod(this, 'values') | 92 | deferredResult.addMethod(this, 'values') |
96 | deferredResult.addCallback(MochiKit.Base.bind(function (someData) { | 93 | deferredResult.addCallback(MochiKit.Base.bind(function (someData) { |
97 | varotpKey; | 94 | varotpKey; |
98 | 95 | ||
99 | this._oneTimePasswords = {}; | 96 | this._oneTimePasswords = {}; |
100 | 97 | ||
101 | for (otpKey in someData) { | 98 | for (otpKey in someData) { |
102 | var otp; | 99 | var otp; |
103 | var otpParameters; | 100 | var otpParameters; |
104 | 101 | ||
105 | otpParameters = Clipperz.Base.deepClone(someData[otpKey]); | 102 | otpParameters = Clipperz.Base.deepClone(someData[otpKey]); |
106 | otpParameters['reference'] = otpKey; | 103 | otpParameters['reference'] = otpKey; |
107 | 104 | ||
108 | otp = new Clipperz.PM.DataModel.OneTimePassword(otpParameters); | 105 | otp = new Clipperz.PM.DataModel.OneTimePassword(otpParameters); |
109 | this._oneTimePasswords[otpKey] = otp; | 106 | this._oneTimePasswords[otpKey] = otp; |
110 | } | 107 | } |
111 | 108 | ||
112 | return this._oneTimePasswords; | 109 | return this._oneTimePasswords; |
113 | 110 | ||
114 | }, this)); | 111 | }, this)); |
115 | deferredResult.callback(); | 112 | deferredResult.callback(); |
116 | } else { | 113 | } else { |
117 | deferredResult = MochiKit.Async.succeed(this._oneTimePasswords); | 114 | deferredResult = MochiKit.Async.succeed(this._oneTimePasswords); |
118 | } | 115 | } |
119 | 116 | ||
120 | return deferredResult; | 117 | return deferredResult; |
diff --git a/frontend/gamma/js/Clipperz/PM/DataModel/User.Header.Preferences.js b/frontend/gamma/js/Clipperz/PM/DataModel/User.Header.Preferences.js index 91b981e..b164889 100644 --- a/frontend/gamma/js/Clipperz/PM/DataModel/User.Header.Preferences.js +++ b/frontend/gamma/js/Clipperz/PM/DataModel/User.Header.Preferences.js | |||
@@ -1,53 +1,50 @@ | |||
1 | /* | 1 | /* |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | */ | 24 | */ |
28 | 25 | ||
29 | try { if (typeof(Clipperz.PM.DataModel.User) == 'undefined') { throw ""; }} catch (e) { | 26 | try { if (typeof(Clipperz.PM.DataModel.User) == 'undefined') { throw ""; }} catch (e) { |
30 | throw "Clipperz.PM.DataModel.User.Header.Preferences depends on Clipperz.PM.DataModel.User!"; | 27 | throw "Clipperz.PM.DataModel.User.Header.Preferences depends on Clipperz.PM.DataModel.User!"; |
31 | } | 28 | } |
32 | 29 | ||
33 | if (typeof(Clipperz.PM.DataModel.User.Header) == 'undefined') { Clipperz.PM.DataModel.User.Header = {}; } | 30 | if (typeof(Clipperz.PM.DataModel.User.Header) == 'undefined') { Clipperz.PM.DataModel.User.Header = {}; } |
34 | 31 | ||
35 | Clipperz.PM.DataModel.User.Header.Preferences = function(args) { | 32 | Clipperz.PM.DataModel.User.Header.Preferences = function(args) { |
36 | Clipperz.PM.DataModel.User.Header.Preferences.superclass.constructor.apply(this, arguments); | 33 | Clipperz.PM.DataModel.User.Header.Preferences.superclass.constructor.apply(this, arguments); |
37 | 34 | ||
38 | return this; | 35 | return this; |
39 | } | 36 | } |
40 | 37 | ||
41 | 38 | ||
42 | Clipperz.Base.extend(Clipperz.PM.DataModel.User.Header.Preferences, Clipperz.PM.DataModel.EncryptedRemoteObject, { | 39 | Clipperz.Base.extend(Clipperz.PM.DataModel.User.Header.Preferences, Clipperz.PM.DataModel.EncryptedRemoteObject, { |
43 | 40 | ||
44 | 'toString': function() { | 41 | 'toString': function() { |
45 | return "Clipperz.PM.DataModel.User.Header.Preferences"; | 42 | return "Clipperz.PM.DataModel.User.Header.Preferences"; |
46 | }, | 43 | }, |
47 | 44 | ||
48 | //------------------------------------------------------------------------- | 45 | //------------------------------------------------------------------------- |
49 | //========================================================================= | 46 | //========================================================================= |
50 | __syntaxFix__: "syntax fix" | 47 | __syntaxFix__: "syntax fix" |
51 | }); | 48 | }); |
52 | 49 | ||
53 | 50 | ||
diff --git a/frontend/gamma/js/Clipperz/PM/DataModel/User.Header.RecordIndex.js b/frontend/gamma/js/Clipperz/PM/DataModel/User.Header.RecordIndex.js index 6ba58a8..f77ea80 100644 --- a/frontend/gamma/js/Clipperz/PM/DataModel/User.Header.RecordIndex.js +++ b/frontend/gamma/js/Clipperz/PM/DataModel/User.Header.RecordIndex.js | |||
@@ -1,120 +1,117 @@ | |||
1 | /* | 1 | /* |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | */ | 24 | */ |
28 | 25 | ||
29 | try { if (typeof(Clipperz.PM.DataModel.User) == 'undefined') { throw ""; }} catch (e) { | 26 | try { if (typeof(Clipperz.PM.DataModel.User) == 'undefined') { throw ""; }} catch (e) { |
30 | throw "Clipperz.PM.DataModel.User.Header.RecordIndex depends on Clipperz.PM.DataModel.User!"; | 27 | throw "Clipperz.PM.DataModel.User.Header.RecordIndex depends on Clipperz.PM.DataModel.User!"; |
31 | } | 28 | } |
32 | 29 | ||
33 | if (typeof(Clipperz.PM.DataModel.User.Header) == 'undefined') { Clipperz.PM.DataModel.User.Header = {}; } | 30 | if (typeof(Clipperz.PM.DataModel.User.Header) == 'undefined') { Clipperz.PM.DataModel.User.Header = {}; } |
34 | 31 | ||
35 | Clipperz.PM.DataModel.User.Header.RecordIndex = function(args) { | 32 | Clipperz.PM.DataModel.User.Header.RecordIndex = function(args) { |
36 | Clipperz.PM.DataModel.User.Header.RecordIndex.superclass.constructor.apply(this, arguments); | 33 | Clipperz.PM.DataModel.User.Header.RecordIndex.superclass.constructor.apply(this, arguments); |
37 | 34 | ||
38 | //console.log("NEW Clipperz.PM.DataModel.User.Header.RecordIndex", args); | 35 | //console.log("NEW Clipperz.PM.DataModel.User.Header.RecordIndex", args); |
39 | this._recordsData = new Clipperz.PM.DataModel.EncryptedRemoteObject({ | 36 | this._recordsData = new Clipperz.PM.DataModel.EncryptedRemoteObject({ |
40 | 'name':'recordsData', | 37 | 'name':'recordsData', |
41 | 'retrieveKeyFunction': args.retrieveKeyFunction, | 38 | 'retrieveKeyFunction': args.retrieveKeyFunction, |
42 | 'remoteData': { | 39 | 'remoteData': { |
43 | 'data': args.recordsData['data'], | 40 | 'data': args.recordsData['data'], |
44 | 'version': args.encryptedDataVersion, | 41 | 'version': args.encryptedDataVersion, |
45 | 'recordsStats': args.recordsStats | 42 | 'recordsStats': args.recordsStats |
46 | }//, | 43 | }//, |
47 | // 'encryptedDataKeypath': 'data', | 44 | // 'encryptedDataKeypath': 'data', |
48 | // 'encryptedVersionKeypath': 'version' | 45 | // 'encryptedVersionKeypath': 'version' |
49 | }); | 46 | }); |
50 | 47 | ||
51 | this._directLoginsData = new Clipperz.PM.DataModel.EncryptedRemoteObject({ | 48 | this._directLoginsData = new Clipperz.PM.DataModel.EncryptedRemoteObject({ |
52 | 'name':'directLoginsData', | 49 | 'name':'directLoginsData', |
53 | 'retrieveKeyFunction': args.retrieveKeyFunction, | 50 | 'retrieveKeyFunction': args.retrieveKeyFunction, |
54 | 'remoteData': { | 51 | 'remoteData': { |
55 | 'data': args.directLoginsData['data'], | 52 | 'data': args.directLoginsData['data'], |
56 | 'version': args.encryptedDataVersion | 53 | 'version': args.encryptedDataVersion |
57 | }//, | 54 | }//, |
58 | // 'encryptedDataKeypath': 'data', | 55 | // 'encryptedDataKeypath': 'data', |
59 | // 'encryptedVersionKeypath': 'version' | 56 | // 'encryptedVersionKeypath': 'version' |
60 | }); | 57 | }); |
61 | 58 | ||
62 | this._lock = new MochiKit.Async.DeferredLock(); | 59 | this._lock = new MochiKit.Async.DeferredLock(); |
63 | this._transientState = null; | 60 | this._transientState = null; |
64 | 61 | ||
65 | this._retrieveRecordDetailFunction = args.retrieveRecordDetailFunction|| Clipperz.Base.exception.raise('MandatoryParameter'); | 62 | this._retrieveRecordDetailFunction = args.retrieveRecordDetailFunction|| Clipperz.Base.exception.raise('MandatoryParameter'); |
66 | this._recordsIndex = args.recordsData['index'] || Clipperz.Base.exception.raise('MandatoryParameter'); | 63 | this._recordsIndex = args.recordsData['index'] || Clipperz.Base.exception.raise('MandatoryParameter'); |
67 | this._directLoginsIndex = args.directLoginsData['index']|| Clipperz.Base.exception.raise('MandatoryParameter'); | 64 | this._directLoginsIndex = args.directLoginsData['index']|| Clipperz.Base.exception.raise('MandatoryParameter'); |
68 | 65 | ||
69 | this._records = null; | 66 | this._records = null; |
70 | 67 | ||
71 | return this; | 68 | return this; |
72 | } | 69 | } |
73 | 70 | ||
74 | 71 | ||
75 | Clipperz.Base.extend(Clipperz.PM.DataModel.User.Header.RecordIndex, Object, { | 72 | Clipperz.Base.extend(Clipperz.PM.DataModel.User.Header.RecordIndex, Object, { |
76 | 73 | ||
77 | 'toString': function() { | 74 | 'toString': function() { |
78 | return "Clipperz.PM.DataModel.User.Header.RecordIndex"; | 75 | return "Clipperz.PM.DataModel.User.Header.RecordIndex"; |
79 | }, | 76 | }, |
80 | 77 | ||
81 | //------------------------------------------------------------------------- | 78 | //------------------------------------------------------------------------- |
82 | 79 | ||
83 | 'retrieveRecordDetailFunction': function () { | 80 | 'retrieveRecordDetailFunction': function () { |
84 | return this._retrieveRecordDetailFunction; | 81 | return this._retrieveRecordDetailFunction; |
85 | }, | 82 | }, |
86 | 83 | ||
87 | //------------------------------------------------------------------------- | 84 | //------------------------------------------------------------------------- |
88 | 85 | ||
89 | 'recordsIndex': function () { | 86 | 'recordsIndex': function () { |
90 | return this._recordsIndex; | 87 | return this._recordsIndex; |
91 | }, | 88 | }, |
92 | 89 | ||
93 | 'recordsData': function () { | 90 | 'recordsData': function () { |
94 | return this._recordsData; | 91 | return this._recordsData; |
95 | }, | 92 | }, |
96 | 93 | ||
97 | //------------------------------------------------------------------------- | 94 | //------------------------------------------------------------------------- |
98 | 95 | ||
99 | 'directLoginsIndex': function () { | 96 | 'directLoginsIndex': function () { |
100 | return this._directLoginsIndex; | 97 | return this._directLoginsIndex; |
101 | }, | 98 | }, |
102 | 99 | ||
103 | 'directLoginsData': function () { | 100 | 'directLoginsData': function () { |
104 | return this._directLoginsData; | 101 | return this._directLoginsData; |
105 | }, | 102 | }, |
106 | 103 | ||
107 | //------------------------------------------------------------------------- | 104 | //------------------------------------------------------------------------- |
108 | 105 | ||
109 | 'lock': function () { | 106 | 'lock': function () { |
110 | return this._lock; | 107 | return this._lock; |
111 | }, | 108 | }, |
112 | 109 | ||
113 | //------------------------------------------------------------------------- | 110 | //------------------------------------------------------------------------- |
114 | 111 | ||
115 | 'transientState': function () { | 112 | 'transientState': function () { |
116 | if (this._transientState == null) { | 113 | if (this._transientState == null) { |
117 | this._transientState = new Clipperz.KeyValueObjectStore(/*{'name':'User.Header.RecordIndex.transientState [1]'}*/); | 114 | this._transientState = new Clipperz.KeyValueObjectStore(/*{'name':'User.Header.RecordIndex.transientState [1]'}*/); |
118 | } | 115 | } |
119 | 116 | ||
120 | return this._transientState; | 117 | return this._transientState; |
diff --git a/frontend/gamma/js/Clipperz/PM/DataModel/User.js b/frontend/gamma/js/Clipperz/PM/DataModel/User.js index e8afa97..72d4006 100644 --- a/frontend/gamma/js/Clipperz/PM/DataModel/User.js +++ b/frontend/gamma/js/Clipperz/PM/DataModel/User.js | |||
@@ -1,120 +1,117 @@ | |||
1 | /* | 1 | /* |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | */ | 24 | */ |
28 | 25 | ||
29 | if (typeof(Clipperz) == 'undefined') { Clipperz = {}; } | 26 | if (typeof(Clipperz) == 'undefined') { Clipperz = {}; } |
30 | if (typeof(Clipperz.PM) == 'undefined') { Clipperz.PM = {}; } | 27 | if (typeof(Clipperz.PM) == 'undefined') { Clipperz.PM = {}; } |
31 | if (typeof(Clipperz.PM.DataModel) == 'undefined') { Clipperz.PM.DataModel = {}; } | 28 | if (typeof(Clipperz.PM.DataModel) == 'undefined') { Clipperz.PM.DataModel = {}; } |
32 | 29 | ||
33 | 30 | ||
34 | //############################################################################# | 31 | //############################################################################# |
35 | 32 | ||
36 | Clipperz.PM.DataModel.User = function (args) { | 33 | Clipperz.PM.DataModel.User = function (args) { |
37 | args = args || {}; | 34 | args = args || {}; |
38 | 35 | ||
39 | Clipperz.PM.DataModel.User.superclass.constructor.apply(this, arguments); | 36 | Clipperz.PM.DataModel.User.superclass.constructor.apply(this, arguments); |
40 | 37 | ||
41 | this._username = args.username || null; | 38 | this._username = args.username || null; |
42 | this._getPassphraseFunction = args.getPassphraseFunction || null; | 39 | this._getPassphraseFunction = args.getPassphraseFunction || null; |
43 | 40 | ||
44 | this._data = null; | 41 | this._data = null; |
45 | 42 | ||
46 | this._connection = null; | 43 | this._connection = null; |
47 | this._connectionVersion = 'current'; | 44 | this._connectionVersion = 'current'; |
48 | 45 | ||
49 | this._serverData = null; | 46 | this._serverData = null; |
50 | this._serverLockValue = null; | 47 | this._serverLockValue = null; |
51 | this._transientState = null; | 48 | this._transientState = null; |
52 | 49 | ||
53 | this._deferredLocks = { | 50 | this._deferredLocks = { |
54 | 'passphrase': new MochiKit.Async.DeferredLock(), | 51 | 'passphrase': new MochiKit.Async.DeferredLock(), |
55 | 'serverData': new MochiKit.Async.DeferredLock(), | 52 | 'serverData': new MochiKit.Async.DeferredLock(), |
56 | // 'recordsIndex': new MochiKit.Async.DeferredLock(), | 53 | // 'recordsIndex': new MochiKit.Async.DeferredLock(), |
57 | // 'directLoginsIndex':new MochiKit.Async.DeferredLock() | 54 | // 'directLoginsIndex':new MochiKit.Async.DeferredLock() |
58 | // 'preferences': new MochiKit.Async.DeferredLock() | 55 | // 'preferences': new MochiKit.Async.DeferredLock() |
59 | // 'oneTimePasswords': new MochiKit.Async.DeferredLock() | 56 | // 'oneTimePasswords': new MochiKit.Async.DeferredLock() |
60 | '__syntaxFix__': 'syntax fix' | 57 | '__syntaxFix__': 'syntax fix' |
61 | }; | 58 | }; |
62 | 59 | ||
63 | return this; | 60 | return this; |
64 | } | 61 | } |
65 | 62 | ||
66 | Clipperz.Base.extend(Clipperz.PM.DataModel.User, Object, { | 63 | Clipperz.Base.extend(Clipperz.PM.DataModel.User, Object, { |
67 | 64 | ||
68 | 'toString': function () { | 65 | 'toString': function () { |
69 | return "Clipperz.PM.DataModel.User - " + this.username(); | 66 | return "Clipperz.PM.DataModel.User - " + this.username(); |
70 | }, | 67 | }, |
71 | 68 | ||
72 | //------------------------------------------------------------------------- | 69 | //------------------------------------------------------------------------- |
73 | 70 | ||
74 | 'username': function () { | 71 | 'username': function () { |
75 | return this._username; | 72 | return this._username; |
76 | }, | 73 | }, |
77 | 74 | ||
78 | 'setUsername': function (aValue) { | 75 | 'setUsername': function (aValue) { |
79 | this._username = aValue; | 76 | this._username = aValue; |
80 | }, | 77 | }, |
81 | 78 | ||
82 | //------------------------------------------------------------------------- | 79 | //------------------------------------------------------------------------- |
83 | 80 | ||
84 | 'displayName': function() { | 81 | 'displayName': function() { |
85 | return "" + this.username() + ""; | 82 | return "" + this.username() + ""; |
86 | }, | 83 | }, |
87 | 84 | ||
88 | //------------------------------------------------------------------------- | 85 | //------------------------------------------------------------------------- |
89 | 86 | ||
90 | 'data': function () { | 87 | 'data': function () { |
91 | if (this._data == null) { | 88 | if (this._data == null) { |
92 | this._data = new Clipperz.KeyValueObjectStore(/*{'name':'User.data [1]'}*/); | 89 | this._data = new Clipperz.KeyValueObjectStore(/*{'name':'User.data [1]'}*/); |
93 | }; | 90 | }; |
94 | 91 | ||
95 | return this._data; | 92 | return this._data; |
96 | }, | 93 | }, |
97 | 94 | ||
98 | //------------------------------------------------------------------------- | 95 | //------------------------------------------------------------------------- |
99 | 96 | ||
100 | 'serverLockValue': function () { | 97 | 'serverLockValue': function () { |
101 | return this._serverLockValue; | 98 | return this._serverLockValue; |
102 | }, | 99 | }, |
103 | 100 | ||
104 | 'setServerLockValue': function (aValue) { | 101 | 'setServerLockValue': function (aValue) { |
105 | this._serverLockValue = aValue; | 102 | this._serverLockValue = aValue; |
106 | }, | 103 | }, |
107 | 104 | ||
108 | //------------------------------------------------------------------------- | 105 | //------------------------------------------------------------------------- |
109 | 106 | ||
110 | 'transientState': function () { | 107 | 'transientState': function () { |
111 | if (this._transientState == null) { | 108 | if (this._transientState == null) { |
112 | this._transientState = {} | 109 | this._transientState = {} |
113 | } | 110 | } |
114 | 111 | ||
115 | return this._transientState; | 112 | return this._transientState; |
116 | }, | 113 | }, |
117 | 114 | ||
118 | 'resetTransientState': function (isCommitting) { | 115 | 'resetTransientState': function (isCommitting) { |
119 | this._transientState = null; | 116 | this._transientState = null; |
120 | }, | 117 | }, |
diff --git a/frontend/gamma/js/Clipperz/PM/Date.js b/frontend/gamma/js/Clipperz/PM/Date.js index a131357..96a2700 100644 --- a/frontend/gamma/js/Clipperz/PM/Date.js +++ b/frontend/gamma/js/Clipperz/PM/Date.js | |||
@@ -1,120 +1,117 @@ | |||
1 | /* | 1 | /* |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | */ | 24 | */ |
28 | 25 | ||
29 | if (typeof(Clipperz) == 'undefined') { Clipperz = {}; } | 26 | if (typeof(Clipperz) == 'undefined') { Clipperz = {}; } |
30 | if (typeof(Clipperz.PM) == 'undefined') { Clipperz.PM = {}; } | 27 | if (typeof(Clipperz.PM) == 'undefined') { Clipperz.PM = {}; } |
31 | if (typeof(Clipperz.PM.Date) == 'undefined') { Clipperz.PM.Date = {}; } | 28 | if (typeof(Clipperz.PM.Date) == 'undefined') { Clipperz.PM.Date = {}; } |
32 | 29 | ||
33 | Clipperz.PM.Date.VERSION = "0.1"; | 30 | Clipperz.PM.Date.VERSION = "0.1"; |
34 | Clipperz.PM.Date.NAME = "Clipperz.PM.Date"; | 31 | Clipperz.PM.Date.NAME = "Clipperz.PM.Date"; |
35 | 32 | ||
36 | MochiKit.Base.update(Clipperz.PM.Date, { | 33 | MochiKit.Base.update(Clipperz.PM.Date, { |
37 | 34 | ||
38 | '__repr__': function () { | 35 | '__repr__': function () { |
39 | return "[" + this.NAME + " " + this.VERSION + "]"; | 36 | return "[" + this.NAME + " " + this.VERSION + "]"; |
40 | }, | 37 | }, |
41 | 38 | ||
42 | //------------------------------------------------------------------------- | 39 | //------------------------------------------------------------------------- |
43 | 40 | ||
44 | 'toString': function () { | 41 | 'toString': function () { |
45 | return this.__repr__(); | 42 | return this.__repr__(); |
46 | }, | 43 | }, |
47 | 44 | ||
48 | //------------------------------------------------------------------------- | 45 | //------------------------------------------------------------------------- |
49 | 46 | ||
50 | 'locale': function() { | 47 | 'locale': function() { |
51 | return { | 48 | return { |
52 | 'amDesignation':Clipperz.PM.Strings.getValue('calendarStrings.amDesignation'), | 49 | 'amDesignation':Clipperz.PM.Strings.getValue('calendarStrings.amDesignation'), |
53 | 'pmDesignation':Clipperz.PM.Strings.getValue('calendarStrings.pmDesignation'), | 50 | 'pmDesignation':Clipperz.PM.Strings.getValue('calendarStrings.pmDesignation'), |
54 | 'days': Clipperz.PM.Strings.getValue('calendarStrings.days'), | 51 | 'days': Clipperz.PM.Strings.getValue('calendarStrings.days'), |
55 | 'shortDays': Clipperz.PM.Strings.getValue('calendarStrings.shortDays'), | 52 | 'shortDays': Clipperz.PM.Strings.getValue('calendarStrings.shortDays'), |
56 | 'shortMonths': Clipperz.PM.Strings.getValue('calendarStrings.shortMonths'), | 53 | 'shortMonths': Clipperz.PM.Strings.getValue('calendarStrings.shortMonths'), |
57 | 'months': Clipperz.PM.Strings.getValue('calendarStrings.months') | 54 | 'months': Clipperz.PM.Strings.getValue('calendarStrings.months') |
58 | } | 55 | } |
59 | }, | 56 | }, |
60 | 57 | ||
61 | //========================================================================= | 58 | //========================================================================= |
62 | /* | 59 | /* |
63 | 'formatDateWithPHPLikeTemplate': function(aDate, aTemplate) { | 60 | 'formatDateWithPHPLikeTemplate': function(aDate, aTemplate) { |
64 | return Clipperz.Date.formatDateWithPHPLikeTemplateAndLocale(aDate, aTemplate, Clipperz.PM.Date.locale()); | 61 | return Clipperz.Date.formatDateWithPHPLikeTemplateAndLocale(aDate, aTemplate, Clipperz.PM.Date.locale()); |
65 | }, | 62 | }, |
66 | 63 | ||
67 | 'parseDateWithPHPLikeTemplate': function(aDate, aTemplate) { | 64 | 'parseDateWithPHPLikeTemplate': function(aDate, aTemplate) { |
68 | return Clipperz.Date.parseDateWithPHPTemplateAndLocale(aDate, aTemplate, Clipperz.PM.Date.locale()); | 65 | return Clipperz.Date.parseDateWithPHPTemplateAndLocale(aDate, aTemplate, Clipperz.PM.Date.locale()); |
69 | }, | 66 | }, |
70 | 67 | ||
71 | //========================================================================= | 68 | //========================================================================= |
72 | 69 | ||
73 | 'formatDateWithJavaLikeTemplate': function(aDate, aTemplate) { | 70 | 'formatDateWithJavaLikeTemplate': function(aDate, aTemplate) { |
74 | return Clipperz.Date.formatDateWithJavaLikeTemplateAndLocale(aDate, aTemplate, Clipperz.PM.Date.locale()); | 71 | return Clipperz.Date.formatDateWithJavaLikeTemplateAndLocale(aDate, aTemplate, Clipperz.PM.Date.locale()); |
75 | }, | 72 | }, |
76 | 73 | ||
77 | 'parseDateWithJavaLikeTemplate': function(aDate, aTemplate) { | 74 | 'parseDateWithJavaLikeTemplate': function(aDate, aTemplate) { |
78 | return Clipperz.Date.parseDateWithJavaLikeTemplateAndLocale(aDate, aTemplate, Clipperz.PM.Date.locale()); | 75 | return Clipperz.Date.parseDateWithJavaLikeTemplateAndLocale(aDate, aTemplate, Clipperz.PM.Date.locale()); |
79 | }, | 76 | }, |
80 | */ | 77 | */ |
81 | //========================================================================= | 78 | //========================================================================= |
82 | 79 | ||
83 | 'formatWithTemplate': function (aTemplate, aDate) { | 80 | 'formatWithTemplate': function (aTemplate, aDate) { |
84 | return Clipperz.PM.Date.formatDateWithTemplate(aDate, aTemplate); | 81 | return Clipperz.PM.Date.formatDateWithTemplate(aDate, aTemplate); |
85 | }, | 82 | }, |
86 | 83 | ||
87 | 'formatDateWithTemplate': function(aDate, aTemplate) { | 84 | 'formatDateWithTemplate': function(aDate, aTemplate) { |
88 | var result; | 85 | var result; |
89 | 86 | ||
90 | if (aDate == null) { | 87 | if (aDate == null) { |
91 | result = "" | 88 | result = "" |
92 | } else { | 89 | } else { |
93 | result = Clipperz.Date.formatDateWithPHPLikeTemplateAndLocale(aDate, aTemplate, Clipperz.PM.Date.locale()); | 90 | result = Clipperz.Date.formatDateWithPHPLikeTemplateAndLocale(aDate, aTemplate, Clipperz.PM.Date.locale()); |
94 | }; | 91 | }; |
95 | 92 | ||
96 | return result; | 93 | return result; |
97 | }, | 94 | }, |
98 | 95 | ||
99 | 'parseDateWithTemplate': function(aValue, aTemplate) { | 96 | 'parseDateWithTemplate': function(aValue, aTemplate) { |
100 | return Clipperz.Date.parseDateWithPHPTemplateAndLocale(aValue, aTemplate, Clipperz.PM.Date.locale()); | 97 | return Clipperz.Date.parseDateWithPHPTemplateAndLocale(aValue, aTemplate, Clipperz.PM.Date.locale()); |
101 | }, | 98 | }, |
102 | 99 | ||
103 | //========================================================================= | 100 | //========================================================================= |
104 | 101 | ||
105 | 'formatDateWithUTCFormat': function(aDate) { | 102 | 'formatDateWithUTCFormat': function(aDate) { |
106 | return Clipperz.Date.formatDateWithUTCFormatAndLocale(aDate, Clipperz.PM.Date.locale()); | 103 | return Clipperz.Date.formatDateWithUTCFormatAndLocale(aDate, Clipperz.PM.Date.locale()); |
107 | }, | 104 | }, |
108 | 105 | ||
109 | 'parseDateWithUTCFormat': function(aValue) { | 106 | 'parseDateWithUTCFormat': function(aValue) { |
110 | var result; | 107 | var result; |
111 | 108 | ||
112 | if (aValue == null) { | 109 | if (aValue == null) { |
113 | result = null; | 110 | result = null; |
114 | } else { | 111 | } else { |
115 | result = Clipperz.Date.parseDateWithUTCFormatAndLocale(aValue, Clipperz.PM.Date.locale()); | 112 | result = Clipperz.Date.parseDateWithUTCFormatAndLocale(aValue, Clipperz.PM.Date.locale()); |
116 | } | 113 | } |
117 | 114 | ||
118 | return result; | 115 | return result; |
119 | }, | 116 | }, |
120 | 117 | ||
diff --git a/frontend/gamma/js/Clipperz/PM/Proxy.js b/frontend/gamma/js/Clipperz/PM/Proxy.js index d90bcb7..190bffd 100644 --- a/frontend/gamma/js/Clipperz/PM/Proxy.js +++ b/frontend/gamma/js/Clipperz/PM/Proxy.js | |||
@@ -1,120 +1,117 @@ | |||
1 | /* | 1 | /* |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | */ | 24 | */ |
28 | 25 | ||
29 | if (typeof(Clipperz) == 'undefined') { Clipperz = {}; } | 26 | if (typeof(Clipperz) == 'undefined') { Clipperz = {}; } |
30 | if (typeof(Clipperz.PM) == 'undefined') { Clipperz.PM = {}; } | 27 | if (typeof(Clipperz.PM) == 'undefined') { Clipperz.PM = {}; } |
31 | 28 | ||
32 | //============================================================================= | 29 | //============================================================================= |
33 | 30 | ||
34 | Clipperz.PM.Proxy = function(args) { | 31 | Clipperz.PM.Proxy = function(args) { |
35 | args = args || {}; | 32 | args = args || {}; |
36 | 33 | ||
37 | this._shouldPayTolls = args.shouldPayTolls || false; | 34 | this._shouldPayTolls = args.shouldPayTolls || false; |
38 | 35 | ||
39 | this._tolls = { | 36 | this._tolls = { |
40 | 'CONNECT':[], | 37 | 'CONNECT':[], |
41 | 'REGISTER':[], | 38 | 'REGISTER':[], |
42 | 'MESSAGE':[] | 39 | 'MESSAGE':[] |
43 | }; | 40 | }; |
44 | 41 | ||
45 | if (args.isDefault === true) { | 42 | if (args.isDefault === true) { |
46 | Clipperz.PM.Proxy.defaultProxy = this; | 43 | Clipperz.PM.Proxy.defaultProxy = this; |
47 | } | 44 | } |
48 | 45 | ||
49 | return this; | 46 | return this; |
50 | } | 47 | } |
51 | 48 | ||
52 | Clipperz.PM.Proxy.prototype = MochiKit.Base.update(null, { | 49 | Clipperz.PM.Proxy.prototype = MochiKit.Base.update(null, { |
53 | 50 | ||
54 | 'toString': function() { | 51 | 'toString': function() { |
55 | return "Clipperz.PM.Proxy"; | 52 | return "Clipperz.PM.Proxy"; |
56 | }, | 53 | }, |
57 | 54 | ||
58 | //========================================================================= | 55 | //========================================================================= |
59 | 56 | ||
60 | 'shouldPayTolls': function() { | 57 | 'shouldPayTolls': function() { |
61 | return this._shouldPayTolls; | 58 | return this._shouldPayTolls; |
62 | }, | 59 | }, |
63 | 60 | ||
64 | //------------------------------------------------------------------------- | 61 | //------------------------------------------------------------------------- |
65 | 62 | ||
66 | 'tolls': function() { | 63 | 'tolls': function() { |
67 | return this._tolls; | 64 | return this._tolls; |
68 | }, | 65 | }, |
69 | 66 | ||
70 | //------------------------------------------------------------------------- | 67 | //------------------------------------------------------------------------- |
71 | 68 | ||
72 | 'payToll': function(aRequestType, someParameters) { | 69 | 'payToll': function(aRequestType, someParameters) { |
73 | vardeferredResult; | 70 | vardeferredResult; |
74 | 71 | ||
75 | //console.log(">>> Proxy.payToll", aRequestType, someParameters); | 72 | //console.log(">>> Proxy.payToll", aRequestType, someParameters); |
76 | if (this.shouldPayTolls()) { | 73 | if (this.shouldPayTolls()) { |
77 | deferredResult = new Clipperz.Async.Deferred("Proxy.payToll", {trace:false}); | 74 | deferredResult = new Clipperz.Async.Deferred("Proxy.payToll", {trace:false}); |
78 | 75 | ||
79 | if (this.tolls()[aRequestType].length == 0) { | 76 | if (this.tolls()[aRequestType].length == 0) { |
80 | deferredResult.addMethod(this, 'sendMessage', 'knock', {requestType:aRequestType}); | 77 | deferredResult.addMethod(this, 'sendMessage', 'knock', {requestType:aRequestType}); |
81 | deferredResult.addMethod(this, 'setTollCallback'); | 78 | deferredResult.addMethod(this, 'setTollCallback'); |
82 | } | 79 | } |
83 | deferredResult.addMethod(this.tolls()[aRequestType], 'pop'); | 80 | deferredResult.addMethod(this.tolls()[aRequestType], 'pop'); |
84 | deferredResult.addCallback(MochiKit.Base.methodcaller('deferredPay')); | 81 | deferredResult.addCallback(MochiKit.Base.methodcaller('deferredPay')); |
85 | deferredResult.addCallback(function(aToll) { | 82 | deferredResult.addCallback(function(aToll) { |
86 | var result; | 83 | var result; |
87 | 84 | ||
88 | result = { | 85 | result = { |
89 | parameters: someParameters, | 86 | parameters: someParameters, |
90 | toll: aToll | 87 | toll: aToll |
91 | } | 88 | } |
92 | 89 | ||
93 | return result; | 90 | return result; |
94 | }); | 91 | }); |
95 | 92 | ||
96 | deferredResult.callback(); | 93 | deferredResult.callback(); |
97 | } else { | 94 | } else { |
98 | deferredResult = MochiKit.Async.succeed({parameters:someParameters}); | 95 | deferredResult = MochiKit.Async.succeed({parameters:someParameters}); |
99 | } | 96 | } |
100 | //console.log("<<< Proxy.payToll"); | 97 | //console.log("<<< Proxy.payToll"); |
101 | 98 | ||
102 | return deferredResult; | 99 | return deferredResult; |
103 | }, | 100 | }, |
104 | 101 | ||
105 | //------------------------------------------------------------------------- | 102 | //------------------------------------------------------------------------- |
106 | 103 | ||
107 | 'addToll': function(aToll) { | 104 | 'addToll': function(aToll) { |
108 | //console.log(">>> Proxy.addToll", aToll); | 105 | //console.log(">>> Proxy.addToll", aToll); |
109 | this.tolls()[aToll.requestType()].push(aToll); | 106 | this.tolls()[aToll.requestType()].push(aToll); |
110 | //console.log("<<< Proxy.addToll"); | 107 | //console.log("<<< Proxy.addToll"); |
111 | }, | 108 | }, |
112 | 109 | ||
113 | //========================================================================= | 110 | //========================================================================= |
114 | 111 | ||
115 | 'setTollCallback': function(someParameters) { | 112 | 'setTollCallback': function(someParameters) { |
116 | //console.log(">>> Proxy.setTollCallback", someParameters); | 113 | //console.log(">>> Proxy.setTollCallback", someParameters); |
117 | if (typeof(someParameters['toll']) != 'undefined') { | 114 | if (typeof(someParameters['toll']) != 'undefined') { |
118 | //console.log("added a new toll", someParameters['toll']); | 115 | //console.log("added a new toll", someParameters['toll']); |
119 | this.addToll(new Clipperz.PM.Toll(someParameters['toll'])); | 116 | this.addToll(new Clipperz.PM.Toll(someParameters['toll'])); |
120 | } | 117 | } |
diff --git a/frontend/gamma/js/Clipperz/PM/Proxy/Proxy.JSON.js b/frontend/gamma/js/Clipperz/PM/Proxy/Proxy.JSON.js index 65b46de..5b39b4a 100755 --- a/frontend/gamma/js/Clipperz/PM/Proxy/Proxy.JSON.js +++ b/frontend/gamma/js/Clipperz/PM/Proxy/Proxy.JSON.js | |||
@@ -1,94 +1,91 @@ | |||
1 | /* | 1 | /* |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | */ | 24 | */ |
28 | 25 | ||
29 | if (typeof(Clipperz) == 'undefined') { Clipperz = {}; } | 26 | if (typeof(Clipperz) == 'undefined') { Clipperz = {}; } |
30 | if (typeof(Clipperz.PM) == 'undefined') { Clipperz.PM = {}; } | 27 | if (typeof(Clipperz.PM) == 'undefined') { Clipperz.PM = {}; } |
31 | 28 | ||
32 | //============================================================================= | 29 | //============================================================================= |
33 | 30 | ||
34 | Clipperz.PM.Proxy.JSON = function(args) { | 31 | Clipperz.PM.Proxy.JSON = function(args) { |
35 | Clipperz.PM.Proxy.JSON.superclass.constructor.call(this, args); | 32 | Clipperz.PM.Proxy.JSON.superclass.constructor.call(this, args); |
36 | 33 | ||
37 | this._url = args.url || Clipperz.Base.exception.raise('MandatoryParameter'); | 34 | this._url = args.url || Clipperz.Base.exception.raise('MandatoryParameter'); |
38 | 35 | ||
39 | return this; | 36 | return this; |
40 | } | 37 | } |
41 | 38 | ||
42 | Clipperz.Base.extend(Clipperz.PM.Proxy.JSON, Clipperz.PM.Proxy, { | 39 | Clipperz.Base.extend(Clipperz.PM.Proxy.JSON, Clipperz.PM.Proxy, { |
43 | 40 | ||
44 | 'toString': function() { | 41 | 'toString': function() { |
45 | return "Clipperz.PM.Proxy.JSON"; | 42 | return "Clipperz.PM.Proxy.JSON"; |
46 | }, | 43 | }, |
47 | 44 | ||
48 | //========================================================================= | 45 | //========================================================================= |
49 | 46 | ||
50 | 'url': function () { | 47 | 'url': function () { |
51 | return this._url; | 48 | return this._url; |
52 | }, | 49 | }, |
53 | 50 | ||
54 | //========================================================================= | 51 | //========================================================================= |
55 | 52 | ||
56 | 'sendMessage': function(aFunctionName, someParameters) { | 53 | 'sendMessage': function(aFunctionName, someParameters) { |
57 | vardeferredResult; | 54 | vardeferredResult; |
58 | var parameters; | 55 | var parameters; |
59 | 56 | ||
60 | parameters = { | 57 | parameters = { |
61 | method: aFunctionName, | 58 | method: aFunctionName, |
62 | // version: someParameters['version'], | 59 | // version: someParameters['version'], |
63 | // message: someParameters['message'], | 60 | // message: someParameters['message'], |
64 | parameters: Clipperz.Base.serializeJSON(someParameters) | 61 | parameters: Clipperz.Base.serializeJSON(someParameters) |
65 | }; | 62 | }; |
66 | 63 | ||
67 | deferredResult = new Clipperz.Async.Deferred("Proxy.JSON.sendMessage", {trace:false}); | 64 | deferredResult = new Clipperz.Async.Deferred("Proxy.JSON.sendMessage", {trace:false}); |
68 | deferredResult.addCallbackPass(MochiKit.Signal.signal, Clipperz.Signal.NotificationCenter, 'remoteRequestSent'); | 65 | deferredResult.addCallbackPass(MochiKit.Signal.signal, Clipperz.Signal.NotificationCenter, 'remoteRequestSent'); |
69 | deferredResult.addCallback(MochiKit.Async.doXHR, this.url(), { | 66 | deferredResult.addCallback(MochiKit.Async.doXHR, this.url(), { |
70 | method:'POST', | 67 | method:'POST', |
71 | sendContent:MochiKit.Base.queryString(parameters), | 68 | sendContent:MochiKit.Base.queryString(parameters), |
72 | headers:{"Content-Type":"application/x-www-form-urlencoded"} | 69 | headers:{"Content-Type":"application/x-www-form-urlencoded"} |
73 | }); | 70 | }); |
74 | deferredResult.addCallbackPass(MochiKit.Signal.signal, Clipperz.Signal.NotificationCenter, 'remoteRequestReceived'); | 71 | deferredResult.addCallbackPass(MochiKit.Signal.signal, Clipperz.Signal.NotificationCenter, 'remoteRequestReceived'); |
75 | // deferredResult.addCallback(MochiKit.Async.evalJSONRequest); | 72 | // deferredResult.addCallback(MochiKit.Async.evalJSONRequest); |
76 | deferredResult.addCallback(MochiKit.Base.itemgetter('responseText')); | 73 | deferredResult.addCallback(MochiKit.Base.itemgetter('responseText')); |
77 | deferredResult.addCallback(Clipperz.Base.evalJSON); | 74 | deferredResult.addCallback(Clipperz.Base.evalJSON); |
78 | deferredResult.addCallback(function (someValues) { | 75 | deferredResult.addCallback(function (someValues) { |
79 | if (someValues['result'] == 'EXCEPTION') { | 76 | if (someValues['result'] == 'EXCEPTION') { |
80 | throw someValues['message']; | 77 | throw someValues['message']; |
81 | } | 78 | } |
82 | 79 | ||
83 | return someValues; | 80 | return someValues; |
84 | }) | 81 | }) |
85 | // return MochiKit.Base.evalJSON(req.responseText); | 82 | // return MochiKit.Base.evalJSON(req.responseText); |
86 | deferredResult.callback(); | 83 | deferredResult.callback(); |
87 | 84 | ||
88 | return deferredResult; | 85 | return deferredResult; |
89 | }, | 86 | }, |
90 | 87 | ||
91 | //========================================================================= | 88 | //========================================================================= |
92 | __syntaxFix__: "syntax fix" | 89 | __syntaxFix__: "syntax fix" |
93 | 90 | ||
94 | }); | 91 | }); |
diff --git a/frontend/gamma/js/Clipperz/PM/Proxy/Proxy.Offline.DataStore.js b/frontend/gamma/js/Clipperz/PM/Proxy/Proxy.Offline.DataStore.js index de8e7f6..01ba122 100644 --- a/frontend/gamma/js/Clipperz/PM/Proxy/Proxy.Offline.DataStore.js +++ b/frontend/gamma/js/Clipperz/PM/Proxy/Proxy.Offline.DataStore.js | |||
@@ -1,120 +1,117 @@ | |||
1 | /* | 1 | /* |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | */ | 24 | */ |
28 | 25 | ||
29 | try { if (typeof(Clipperz.PM.Proxy.Offline) == 'undefined') { throw ""; }} catch (e) { | 26 | try { if (typeof(Clipperz.PM.Proxy.Offline) == 'undefined') { throw ""; }} catch (e) { |
30 | throw "Clipperz.PM.Proxy.Offline.DataStore depends on Clipperz.PM.Proxy.Offline!"; | 27 | throw "Clipperz.PM.Proxy.Offline.DataStore depends on Clipperz.PM.Proxy.Offline!"; |
31 | } | 28 | } |
32 | 29 | ||
33 | //============================================================================= | 30 | //============================================================================= |
34 | 31 | ||
35 | Clipperz.PM.Proxy.Offline.DataStore = function(args) { | 32 | Clipperz.PM.Proxy.Offline.DataStore = function(args) { |
36 | args = args || {}; | 33 | args = args || {}; |
37 | 34 | ||
38 | this._data = args.data || (typeof(_clipperz_dump_data_) != 'undefined' ? _clipperz_dump_data_ : null); | 35 | this._data = args.data || (typeof(_clipperz_dump_data_) != 'undefined' ? _clipperz_dump_data_ : null); |
39 | this._isReadOnly = (typeof(args.readOnly) == 'undefined' ? true : args.readOnly); | 36 | this._isReadOnly = (typeof(args.readOnly) == 'undefined' ? true : args.readOnly); |
40 | this._shouldPayTolls = args.shouldPayTolls || false; | 37 | this._shouldPayTolls = args.shouldPayTolls || false; |
41 | 38 | ||
42 | this._tolls = {}; | 39 | this._tolls = {}; |
43 | this._currentStaticConnection = null; | 40 | this._currentStaticConnection = null; |
44 | 41 | ||
45 | return this; | 42 | return this; |
46 | } | 43 | } |
47 | 44 | ||
48 | Clipperz.Base.extend(Clipperz.PM.Proxy.Offline.DataStore, Object, { | 45 | Clipperz.Base.extend(Clipperz.PM.Proxy.Offline.DataStore, Object, { |
49 | 46 | ||
50 | //------------------------------------------------------------------------- | 47 | //------------------------------------------------------------------------- |
51 | 48 | ||
52 | 'isReadOnly': function () { | 49 | 'isReadOnly': function () { |
53 | return this._isReadOnly; | 50 | return this._isReadOnly; |
54 | }, | 51 | }, |
55 | 52 | ||
56 | //------------------------------------------------------------------------- | 53 | //------------------------------------------------------------------------- |
57 | 54 | ||
58 | 'shouldPayTolls': function() { | 55 | 'shouldPayTolls': function() { |
59 | return this._shouldPayTolls; | 56 | return this._shouldPayTolls; |
60 | }, | 57 | }, |
61 | 58 | ||
62 | //------------------------------------------------------------------------- | 59 | //------------------------------------------------------------------------- |
63 | 60 | ||
64 | 'data': function () { | 61 | 'data': function () { |
65 | return this._data; | 62 | return this._data; |
66 | }, | 63 | }, |
67 | 64 | ||
68 | //------------------------------------------------------------------------- | 65 | //------------------------------------------------------------------------- |
69 | 66 | ||
70 | 'tolls': function () { | 67 | 'tolls': function () { |
71 | return this._tolls; | 68 | return this._tolls; |
72 | }, | 69 | }, |
73 | 70 | ||
74 | //========================================================================= | 71 | //========================================================================= |
75 | 72 | ||
76 | 'resetData': function() { | 73 | 'resetData': function() { |
77 | this._data = { | 74 | this._data = { |
78 | 'users': { | 75 | 'users': { |
79 | 'catchAllUser': { | 76 | 'catchAllUser': { |
80 | __masterkey_test_value__: 'masterkey', | 77 | __masterkey_test_value__: 'masterkey', |
81 | s: '112233445566778899aabbccddeeff00112233445566778899aabbccddeeff00', | 78 | s: '112233445566778899aabbccddeeff00112233445566778899aabbccddeeff00', |
82 | v: '112233445566778899aabbccddeeff00112233445566778899aabbccddeeff00' | 79 | v: '112233445566778899aabbccddeeff00112233445566778899aabbccddeeff00' |
83 | } | 80 | } |
84 | } | 81 | } |
85 | }; | 82 | }; |
86 | }, | 83 | }, |
87 | 84 | ||
88 | //------------------------------------------------------------------------- | 85 | //------------------------------------------------------------------------- |
89 | 86 | ||
90 | 'setupWithEncryptedData': function(someData) { | 87 | 'setupWithEncryptedData': function(someData) { |
91 | this._data = Clipperz.Base.deepClone(someData); | 88 | this._data = Clipperz.Base.deepClone(someData); |
92 | }, | 89 | }, |
93 | 90 | ||
94 | //------------------------------------------------------------------------- | 91 | //------------------------------------------------------------------------- |
95 | 92 | ||
96 | 'setupWithData': function(someData) { | 93 | 'setupWithData': function(someData) { |
97 | var deferredResult; | 94 | var deferredResult; |
98 | var resultData; | 95 | var resultData; |
99 | var i, c; | 96 | var i, c; |
100 | 97 | ||
101 | //Clipperz.log(">>> Proxy.Test.setupWithData"); | 98 | //Clipperz.log(">>> Proxy.Test.setupWithData"); |
102 | resultData = this._data; | 99 | resultData = this._data; |
103 | 100 | ||
104 | deferredResult = new Clipperz.Async.Deferred("Proxy.Test.seupWithData", {trace:false}); | 101 | deferredResult = new Clipperz.Async.Deferred("Proxy.Test.seupWithData", {trace:false}); |
105 | c = someData['users'].length; | 102 | c = someData['users'].length; |
106 | 103 | ||
107 | for (i=0; i<c; i++) { | 104 | for (i=0; i<c; i++) { |
108 | varnewConnection; | 105 | varnewConnection; |
109 | varrecordConfiguration; | 106 | varrecordConfiguration; |
110 | 107 | ||
111 | deferredResult.addMethod(this, 'userSerializedEncryptedData', someData['users'][i]); | 108 | deferredResult.addMethod(this, 'userSerializedEncryptedData', someData['users'][i]); |
112 | deferredResult.addCallback(MochiKit.Base.bind(function(aUserSerializationContext) { | 109 | deferredResult.addCallback(MochiKit.Base.bind(function(aUserSerializationContext) { |
113 | //console.log("SERIALIZED USER", aUserSerializationContext); | 110 | //console.log("SERIALIZED USER", aUserSerializationContext); |
114 | resultData['users'][aUserSerializationContext['credentials']['C']] = { | 111 | resultData['users'][aUserSerializationContext['credentials']['C']] = { |
115 | 's': aUserSerializationContext['credentials']['s'], | 112 | 's': aUserSerializationContext['credentials']['s'], |
116 | 'v': aUserSerializationContext['credentials']['v'], | 113 | 'v': aUserSerializationContext['credentials']['v'], |
117 | 'version': aUserSerializationContext['data']['connectionVersion'], | 114 | 'version': aUserSerializationContext['data']['connectionVersion'], |
118 | 'userDetails': aUserSerializationContext['encryptedData']['user']['header'], | 115 | 'userDetails': aUserSerializationContext['encryptedData']['user']['header'], |
119 | 'userDetailsVersion':aUserSerializationContext['encryptedData']['user']['version'], | 116 | 'userDetailsVersion':aUserSerializationContext['encryptedData']['user']['version'], |
120 | 'statistics': aUserSerializationContext['encryptedData']['user']['statistics'], | 117 | 'statistics': aUserSerializationContext['encryptedData']['user']['statistics'], |
diff --git a/frontend/gamma/js/Clipperz/PM/Proxy/Proxy.Offline.js b/frontend/gamma/js/Clipperz/PM/Proxy/Proxy.Offline.js index a15b223..a86ac4f 100644 --- a/frontend/gamma/js/Clipperz/PM/Proxy/Proxy.Offline.js +++ b/frontend/gamma/js/Clipperz/PM/Proxy/Proxy.Offline.js | |||
@@ -1,67 +1,64 @@ | |||
1 | /* | 1 | /* |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | */ | 24 | */ |
28 | 25 | ||
29 | if (typeof(Clipperz) == 'undefined') { Clipperz = {}; } | 26 | if (typeof(Clipperz) == 'undefined') { Clipperz = {}; } |
30 | if (typeof(Clipperz.PM) == 'undefined') { Clipperz.PM = {}; } | 27 | if (typeof(Clipperz.PM) == 'undefined') { Clipperz.PM = {}; } |
31 | 28 | ||
32 | //============================================================================= | 29 | //============================================================================= |
33 | 30 | ||
34 | Clipperz.PM.Proxy.Offline = function(args) { | 31 | Clipperz.PM.Proxy.Offline = function(args) { |
35 | args = args || {}; | 32 | args = args || {}; |
36 | 33 | ||
37 | Clipperz.PM.Proxy.Offline.superclass.constructor.call(this, args); | 34 | Clipperz.PM.Proxy.Offline.superclass.constructor.call(this, args); |
38 | 35 | ||
39 | this._dataStore = args.dataStore || new Clipperz.PM.Proxy.Offline.DataStore(args); | 36 | this._dataStore = args.dataStore || new Clipperz.PM.Proxy.Offline.DataStore(args); |
40 | 37 | ||
41 | return this; | 38 | return this; |
42 | } | 39 | } |
43 | 40 | ||
44 | Clipperz.Base.extend(Clipperz.PM.Proxy.Offline, Clipperz.PM.Proxy, { | 41 | Clipperz.Base.extend(Clipperz.PM.Proxy.Offline, Clipperz.PM.Proxy, { |
45 | 42 | ||
46 | 'toString': function () { | 43 | 'toString': function () { |
47 | return "Clipperz.PM.Proxy.Offline"; | 44 | return "Clipperz.PM.Proxy.Offline"; |
48 | }, | 45 | }, |
49 | 46 | ||
50 | //------------------------------------------------------------------------- | 47 | //------------------------------------------------------------------------- |
51 | 48 | ||
52 | 'dataStore': function () { | 49 | 'dataStore': function () { |
53 | return this._dataStore; | 50 | return this._dataStore; |
54 | }, | 51 | }, |
55 | 52 | ||
56 | //------------------------------------------------------------------------- | 53 | //------------------------------------------------------------------------- |
57 | 54 | ||
58 | 'sendMessage': function(aFunctionName, someParameters) { | 55 | 'sendMessage': function(aFunctionName, someParameters) { |
59 | return this.dataStore().processMessage(aFunctionName, someParameters); | 56 | return this.dataStore().processMessage(aFunctionName, someParameters); |
60 | }, | 57 | }, |
61 | 58 | ||
62 | //------------------------------------------------------------------------- | 59 | //------------------------------------------------------------------------- |
63 | 60 | ||
64 | __syntaxFix__: "syntax fix" | 61 | __syntaxFix__: "syntax fix" |
65 | 62 | ||
66 | }); | 63 | }); |
67 | 64 | ||
diff --git a/frontend/gamma/js/Clipperz/PM/Proxy/Proxy.Test.js b/frontend/gamma/js/Clipperz/PM/Proxy/Proxy.Test.js index be1c337..d554c6a 100644 --- a/frontend/gamma/js/Clipperz/PM/Proxy/Proxy.Test.js +++ b/frontend/gamma/js/Clipperz/PM/Proxy/Proxy.Test.js | |||
@@ -1,120 +1,117 @@ | |||
1 | /* | 1 | /* |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | */ | 24 | */ |
28 | 25 | ||
29 | if (typeof(Clipperz) == 'undefined') { Clipperz = {}; } | 26 | if (typeof(Clipperz) == 'undefined') { Clipperz = {}; } |
30 | if (typeof(Clipperz.PM) == 'undefined') { Clipperz.PM = {}; } | 27 | if (typeof(Clipperz.PM) == 'undefined') { Clipperz.PM = {}; } |
31 | if (typeof(Clipperz.PM.Proxy) == 'undefined') { Clipperz.PM.Proxy = {}; } | 28 | if (typeof(Clipperz.PM.Proxy) == 'undefined') { Clipperz.PM.Proxy = {}; } |
32 | 29 | ||
33 | //============================================================================= | 30 | //============================================================================= |
34 | 31 | ||
35 | Clipperz.PM.Proxy.Test = function(args) { | 32 | Clipperz.PM.Proxy.Test = function(args) { |
36 | Clipperz.PM.Proxy.Test.superclass.constructor.call(this, args); | 33 | Clipperz.PM.Proxy.Test.superclass.constructor.call(this, args); |
37 | 34 | ||
38 | args = args || {}; | 35 | args = args || {}; |
39 | 36 | ||
40 | this._expectedRequests = (args.shouldCheckExpectedRequests === true) ? [] : null; | 37 | this._expectedRequests = (args.shouldCheckExpectedRequests === true) ? [] : null; |
41 | this._isExpectingRequests = true; | 38 | this._isExpectingRequests = true; |
42 | this._unexpectedRequests = []; | 39 | this._unexpectedRequests = []; |
43 | 40 | ||
44 | this.dataStore().resetData(); | 41 | this.dataStore().resetData(); |
45 | 42 | ||
46 | return this; | 43 | return this; |
47 | } | 44 | } |
48 | 45 | ||
49 | Clipperz.Base.extend(Clipperz.PM.Proxy.Test, Clipperz.PM.Proxy.Offline, { | 46 | Clipperz.Base.extend(Clipperz.PM.Proxy.Test, Clipperz.PM.Proxy.Offline, { |
50 | 47 | ||
51 | 'toString': function() { | 48 | 'toString': function() { |
52 | return "Clipperz.PM.Proxy.Test"; | 49 | return "Clipperz.PM.Proxy.Test"; |
53 | }, | 50 | }, |
54 | 51 | ||
55 | //========================================================================= | 52 | //========================================================================= |
56 | 53 | ||
57 | 'expectedRequests': function () { | 54 | 'expectedRequests': function () { |
58 | return this._expectedRequests; | 55 | return this._expectedRequests; |
59 | }, | 56 | }, |
60 | 57 | ||
61 | //------------------------------------------------------------------------- | 58 | //------------------------------------------------------------------------- |
62 | 59 | ||
63 | 'shouldCheckExpectedRequests': function () { | 60 | 'shouldCheckExpectedRequests': function () { |
64 | return (this._expectedRequests != null); | 61 | return (this._expectedRequests != null); |
65 | }, | 62 | }, |
66 | 63 | ||
67 | 'setShouldCheckExpectedRequests': function(aValue) { | 64 | 'setShouldCheckExpectedRequests': function(aValue) { |
68 | if (aValue) { | 65 | if (aValue) { |
69 | this._expectedRequests = aValue; | 66 | this._expectedRequests = aValue; |
70 | } else { | 67 | } else { |
71 | this._expectedRequests = null; | 68 | this._expectedRequests = null; |
72 | } | 69 | } |
73 | }, | 70 | }, |
74 | 71 | ||
75 | //------------------------------------------------------------------------- | 72 | //------------------------------------------------------------------------- |
76 | 73 | ||
77 | 'shouldNotReceiveAnyFurtherRequest': function () { | 74 | 'shouldNotReceiveAnyFurtherRequest': function () { |
78 | this._isExpectingRequests = false; | 75 | this._isExpectingRequests = false; |
79 | }, | 76 | }, |
80 | 77 | ||
81 | 'mayReceiveMoreRequests': function () { | 78 | 'mayReceiveMoreRequests': function () { |
82 | this._isExpectingRequests = true; | 79 | this._isExpectingRequests = true; |
83 | this.resetUnexpectedRequests(); | 80 | this.resetUnexpectedRequests(); |
84 | }, | 81 | }, |
85 | 82 | ||
86 | 'isExpectingRequests': function () { | 83 | 'isExpectingRequests': function () { |
87 | return this._isExpectingRequests; | 84 | return this._isExpectingRequests; |
88 | }, | 85 | }, |
89 | 86 | ||
90 | //------------------------------------------------------------------------- | 87 | //------------------------------------------------------------------------- |
91 | 88 | ||
92 | 'unexpectedRequests': function () { | 89 | 'unexpectedRequests': function () { |
93 | return this._unexpectedRequests; | 90 | return this._unexpectedRequests; |
94 | }, | 91 | }, |
95 | 92 | ||
96 | 'resetUnexpectedRequests': function () { | 93 | 'resetUnexpectedRequests': function () { |
97 | this._unexpectedRequests = []; | 94 | this._unexpectedRequests = []; |
98 | }, | 95 | }, |
99 | 96 | ||
100 | //------------------------------------------------------------------------- | 97 | //------------------------------------------------------------------------- |
101 | 98 | ||
102 | 'testExpectedRequestParameters': function (aPath, anActualRequest, anExpectedRequest) { | 99 | 'testExpectedRequestParameters': function (aPath, anActualRequest, anExpectedRequest) { |
103 | var aKey; | 100 | var aKey; |
104 | //console.log(">>> Proxy.testExpectedRequestParameters [" + aPath + "]", anActualRequest, anExpectedRequest); | 101 | //console.log(">>> Proxy.testExpectedRequestParameters [" + aPath + "]", anActualRequest, anExpectedRequest); |
105 | for (aKey in anExpectedRequest) { | 102 | for (aKey in anExpectedRequest) { |
106 | if (typeof(anActualRequest[aKey]) == 'undefined') { | 103 | if (typeof(anActualRequest[aKey]) == 'undefined') { |
107 | throw "the expected paramter [" + aKey + "] is missing from the actual request"; | 104 | throw "the expected paramter [" + aKey + "] is missing from the actual request"; |
108 | } | 105 | } |
109 | if (typeof(anExpectedRequest[aKey]) == 'object') { | 106 | if (typeof(anExpectedRequest[aKey]) == 'object') { |
110 | this.testExpectedRequestParameters(aPath + "." + aKey, anActualRequest[aKey], anExpectedRequest[aKey]) | 107 | this.testExpectedRequestParameters(aPath + "." + aKey, anActualRequest[aKey], anExpectedRequest[aKey]) |
111 | } else { | 108 | } else { |
112 | if (! anExpectedRequest[aKey](anActualRequest[aKey])) { | 109 | if (! anExpectedRequest[aKey](anActualRequest[aKey])) { |
113 | throw "wrong value for paramter [" + aKey + "]; got '" + anActualRequest[aKey] + "'"; | 110 | throw "wrong value for paramter [" + aKey + "]; got '" + anActualRequest[aKey] + "'"; |
114 | } | 111 | } |
115 | } | 112 | } |
116 | } | 113 | } |
117 | //console.log("<<< Proxy.testExpectedRequestParameters"); | 114 | //console.log("<<< Proxy.testExpectedRequestParameters"); |
118 | }, | 115 | }, |
119 | 116 | ||
120 | //------------------------------------------------------------------------- | 117 | //------------------------------------------------------------------------- |
diff --git a/frontend/gamma/js/Clipperz/PM/Strings.js b/frontend/gamma/js/Clipperz/PM/Strings.js index 43ef21f..a051365 100644 --- a/frontend/gamma/js/Clipperz/PM/Strings.js +++ b/frontend/gamma/js/Clipperz/PM/Strings.js | |||
@@ -1,120 +1,117 @@ | |||
1 | /* | 1 | /* |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | */ | 24 | */ |
28 | 25 | ||
29 | if (typeof(Clipperz) == 'undefined') { Clipperz = {}; } | 26 | if (typeof(Clipperz) == 'undefined') { Clipperz = {}; } |
30 | if (typeof(Clipperz.PM) == 'undefined') { Clipperz.PM = {}; } | 27 | if (typeof(Clipperz.PM) == 'undefined') { Clipperz.PM = {}; } |
31 | if (typeof(Clipperz.PM.Strings) == 'undefined') { Clipperz.PM.Strings = {}; } | 28 | if (typeof(Clipperz.PM.Strings) == 'undefined') { Clipperz.PM.Strings = {}; } |
32 | if (typeof(Clipperz.PM.Strings.Languages) == 'undefined') { Clipperz.PM.Strings.Languages = {}; } | 29 | if (typeof(Clipperz.PM.Strings.Languages) == 'undefined') { Clipperz.PM.Strings.Languages = {}; } |
33 | 30 | ||
34 | //----------------------------------------------------------------------------- | 31 | //----------------------------------------------------------------------------- |
35 | /* | 32 | /* |
36 | Clipperz.PM.Strings.standardStrings = { | 33 | Clipperz.PM.Strings.standardStrings = { |
37 | 'loginPanelSwitchLanguageSelectOptions':[ | 34 | 'loginPanelSwitchLanguageSelectOptions':[ |
38 | / * | 35 | / * |
39 | {tag:'option', html:"Arabic (Oman) (العربية)", value:'ar-OM', disabled:true}, | 36 | {tag:'option', html:"Arabic (Oman) (العربية)", value:'ar-OM', disabled:true}, |
40 | {tag:'option', html:"Arabic (Syria) (العربية)", value:'ar-SY', disabled:true}, | 37 | {tag:'option', html:"Arabic (Syria) (العربية)", value:'ar-SY', disabled:true}, |
41 | {tag:'option', html:"Bahasa Indonesia", value:'id-ID', disabled:true}, | 38 | {tag:'option', html:"Bahasa Indonesia", value:'id-ID', disabled:true}, |
42 | {tag:'option', html:"Bulgarian (Български)", value:'bg-BG', disabled:true}, | 39 | {tag:'option', html:"Bulgarian (Български)", value:'bg-BG', disabled:true}, |
43 | {tag:'option', html:"Català", value:'ca-ES', disabled:true}, | 40 | {tag:'option', html:"Català", value:'ca-ES', disabled:true}, |
44 | {tag:'option', html:"Chinese (Simplified) (简体中文)", value:'zh-CN', disabled:true}, | 41 | {tag:'option', html:"Chinese (Simplified) (简体中文)", value:'zh-CN', disabled:true}, |
45 | {tag:'option', html:"Chinese (Traditional) (正體中文)", value:'zh-TW', disabled:true}, | 42 | {tag:'option', html:"Chinese (Traditional) (正體中文)", value:'zh-TW', disabled:true}, |
46 | {tag:'option', html:"Czech (Česky)", value:'cs-CZ', disabled:true}, | 43 | {tag:'option', html:"Czech (Česky)", value:'cs-CZ', disabled:true}, |
47 | {tag:'option', html:"Dansk", value:'da-DK', disabled:true}, | 44 | {tag:'option', html:"Dansk", value:'da-DK', disabled:true}, |
48 | {tag:'option', html:"Deutsch", value:'de-DE'/ *, disabled:true* /}, | 45 | {tag:'option', html:"Deutsch", value:'de-DE'/ *, disabled:true* /}, |
49 | {tag:'option', html:"English (American)", value:'en-US'/ *, disabled:true* /}, | 46 | {tag:'option', html:"English (American)", value:'en-US'/ *, disabled:true* /}, |
50 | {tag:'option', html:"English (British)", value:'en-GB'/ *, disabled:true* /}, | 47 | {tag:'option', html:"English (British)", value:'en-GB'/ *, disabled:true* /}, |
51 | {tag:'option', html:"English (Canadian)", value:'en-CA'/ *, disabled:true* /}, | 48 | {tag:'option', html:"English (Canadian)", value:'en-CA'/ *, disabled:true* /}, |
52 | {tag:'option', html:"Español", value:'es-ES', disabled:true}, | 49 | {tag:'option', html:"Español", value:'es-ES', disabled:true}, |
53 | {tag:'option', html:"Eesti", value:'et-EE', disabled:true}, | 50 | {tag:'option', html:"Eesti", value:'et-EE', disabled:true}, |
54 | {tag:'option', html:"Français", value:'fr-FR', disabled:true}, | 51 | {tag:'option', html:"Français", value:'fr-FR', disabled:true}, |
55 | {tag:'option', html:"Galego", value:'gl-ES', disabled:true}, | 52 | {tag:'option', html:"Galego", value:'gl-ES', disabled:true}, |
56 | {tag:'option', html:"Greek (Ελληνικά)", value:'el-GR', disabled:true}, | 53 | {tag:'option', html:"Greek (Ελληνικά)", value:'el-GR', disabled:true}, |
57 | {tag:'option', html:"Íslenska", value:'is-IS', disabled:true}, | 54 | {tag:'option', html:"Íslenska", value:'is-IS', disabled:true}, |
58 | {tag:'option', html:"Italiano", value:'it-IT'/ *, disabled:true* /}, | 55 | {tag:'option', html:"Italiano", value:'it-IT'/ *, disabled:true* /}, |
59 | {tag:'option', html:"Japanese (日本語)", value:'ja-JP', disabled:true}, | 56 | {tag:'option', html:"Japanese (日本語)", value:'ja-JP', disabled:true}, |
60 | {tag:'option', html:"Korean (한국어)", value:'ko-KR', disabled:true}, | 57 | {tag:'option', html:"Korean (한국어)", value:'ko-KR', disabled:true}, |
61 | {tag:'option', html:"Latviešu", value:'lv-LV', disabled:true}, | 58 | {tag:'option', html:"Latviešu", value:'lv-LV', disabled:true}, |
62 | {tag:'option', html:"Lietuvių", value:'lt-LT', disabled:true}, | 59 | {tag:'option', html:"Lietuvių", value:'lt-LT', disabled:true}, |
63 | {tag:'option', html:"Macedonian (Македонски)", value:'mk-MK', disabled:true}, | 60 | {tag:'option', html:"Macedonian (Македонски)", value:'mk-MK', disabled:true}, |
64 | {tag:'option', html:"Magyar", value:'hu-HU', disabled:true}, | 61 | {tag:'option', html:"Magyar", value:'hu-HU', disabled:true}, |
65 | {tag:'option', html:"Nederlands", value:'nl-NL', disabled:true}, | 62 | {tag:'option', html:"Nederlands", value:'nl-NL', disabled:true}, |
66 | {tag:'option', html:"Norsk bokmål", value:'nb-NO', disabled:true}, | 63 | {tag:'option', html:"Norsk bokmål", value:'nb-NO', disabled:true}, |
67 | {tag:'option', html:"Norsk nynorsk", value:'nn-NO', disabled:true}, | 64 | {tag:'option', html:"Norsk nynorsk", value:'nn-NO', disabled:true}, |
68 | {tag:'option', html:"Persian (Western) (فارسى)", value:'fa-IR', disabled:true}, | 65 | {tag:'option', html:"Persian (Western) (فارسى)", value:'fa-IR', disabled:true}, |
69 | {tag:'option', html:"Polski", value:'pl-PL', disabled:true}, | 66 | {tag:'option', html:"Polski", value:'pl-PL', disabled:true}, |
70 | {tag:'option', html:"Português", value:'pt-PT'/ *, disabled:true* /}, | 67 | {tag:'option', html:"Português", value:'pt-PT'/ *, disabled:true* /}, |
71 | {tag:'option', html:"Português Brasileiro", value:'pt-BR'/ *, disabled:true* /}, | 68 | {tag:'option', html:"Português Brasileiro", value:'pt-BR'/ *, disabled:true* /}, |
72 | {tag:'option', html:"Românä", value:'ro-RO', disabled:true}, | 69 | {tag:'option', html:"Românä", value:'ro-RO', disabled:true}, |
73 | {tag:'option', html:"Russian (Русский)", value:'ru-RU', disabled:true}, | 70 | {tag:'option', html:"Russian (Русский)", value:'ru-RU', disabled:true}, |
74 | {tag:'option', html:"Slovak (Slovenčina)", value:'sk-SK', disabled:true}, | 71 | {tag:'option', html:"Slovak (Slovenčina)", value:'sk-SK', disabled:true}, |
75 | {tag:'option', html:"Slovenian (Slovenščina)", value:'sl-SI', disabled:true}, | 72 | {tag:'option', html:"Slovenian (Slovenščina)", value:'sl-SI', disabled:true}, |
76 | {tag:'option', html:"Suomi", value:'fi-FI', disabled:true}, | 73 | {tag:'option', html:"Suomi", value:'fi-FI', disabled:true}, |
77 | {tag:'option', html:"Svenska", value:'sv-SE', disabled:true}, | 74 | {tag:'option', html:"Svenska", value:'sv-SE', disabled:true}, |
78 | {tag:'option', html:"Thai (ไทย)", value:'th-TH', disabled:true}, | 75 | {tag:'option', html:"Thai (ไทย)", value:'th-TH', disabled:true}, |
79 | {tag:'option', html:"Türkçe", value:'tr-TR', disabled:true}, | 76 | {tag:'option', html:"Türkçe", value:'tr-TR', disabled:true}, |
80 | {tag:'option', html:"Ukrainian (Українська)", value:'uk-UA', disabled:true} | 77 | {tag:'option', html:"Ukrainian (Українська)", value:'uk-UA', disabled:true} |
81 | * / | 78 | * / |
82 | {tag:'option', html:"Arabic (العربية)", value:"ar", disabled:true, cls:'disabledOption'}, | 79 | {tag:'option', html:"Arabic (العربية)", value:"ar", disabled:true, cls:'disabledOption'}, |
83 | // {tag:'option', html:"Chinese (中文)", value:"zh", disabled:true}, | 80 | // {tag:'option', html:"Chinese (中文)", value:"zh", disabled:true}, |
84 | {tag:'option', html:"Chinese (Simplified) (简体中文)", value:'zh-CN'}, | 81 | {tag:'option', html:"Chinese (Simplified) (简体中文)", value:'zh-CN'}, |
85 | {tag:'option', html:"Dutch (Nederlands)", value:"nl-NL", disabled:true, cls:'disabledOption'}, | 82 | {tag:'option', html:"Dutch (Nederlands)", value:"nl-NL", disabled:true, cls:'disabledOption'}, |
86 | {tag:'option', html:"English", value:"en-US"}, | 83 | {tag:'option', html:"English", value:"en-US"}, |
87 | {tag:'option', html:"French (Français)", value:"fr-FR"}, | 84 | {tag:'option', html:"French (Français)", value:"fr-FR"}, |
88 | {tag:'option', html:"German (Deutsch)", value:"de-DE", disabled:true, cls:'disabledOption'}, | 85 | {tag:'option', html:"German (Deutsch)", value:"de-DE", disabled:true, cls:'disabledOption'}, |
89 | {tag:'option', html:"Greek (Ελληνικά)", value:"el-GR", disabled:true, cls:'disabledOption'}, | 86 | {tag:'option', html:"Greek (Ελληνικά)", value:"el-GR", disabled:true, cls:'disabledOption'}, |
90 | {tag:'option', html:"Hebrew (עברית)", value:"he-IL", disabled:true, cls:'disabledOption'}, | 87 | {tag:'option', html:"Hebrew (עברית)", value:"he-IL", disabled:true, cls:'disabledOption'}, |
91 | {tag:'option', html:"Italian (Italiano)", value:"it-IT"}, | 88 | {tag:'option', html:"Italian (Italiano)", value:"it-IT"}, |
92 | {tag:'option', html:"Japanese (日本語)", value:"ja-JP"}, | 89 | {tag:'option', html:"Japanese (日本語)", value:"ja-JP"}, |
93 | {tag:'option', html:"Korean (한국어)", value:"ko-KR", disabled:true, cls:'disabledOption'}, | 90 | {tag:'option', html:"Korean (한국어)", value:"ko-KR", disabled:true, cls:'disabledOption'}, |
94 | {tag:'option', html:"Norwegian (Norsk)", value:"no", disabled:true, cls:'disabledOption'}, | 91 | {tag:'option', html:"Norwegian (Norsk)", value:"no", disabled:true, cls:'disabledOption'}, |
95 | {tag:'option', html:"Persian (فارسی)", value:"fa-IR", disabled:true, cls:'disabledOption'}, | 92 | {tag:'option', html:"Persian (فارسی)", value:"fa-IR", disabled:true, cls:'disabledOption'}, |
96 | {tag:'option', html:"Polish (Polski)", value:"pl-PL", disabled:true, cls:'disabledOption'}, | 93 | {tag:'option', html:"Polish (Polski)", value:"pl-PL", disabled:true, cls:'disabledOption'}, |
97 | {tag:'option', html:"Portuguese (Português)", value:"pt-BR"}, | 94 | {tag:'option', html:"Portuguese (Português)", value:"pt-BR"}, |
98 | {tag:'option', html:"Russian (Русский)", value:"ru-RU", disabled:true, cls:'disabledOption'}, | 95 | {tag:'option', html:"Russian (Русский)", value:"ru-RU", disabled:true, cls:'disabledOption'}, |
99 | {tag:'option', html:"Spanish (Español)", value:"es-ES"}, | 96 | {tag:'option', html:"Spanish (Español)", value:"es-ES"}, |
100 | {tag:'option', html:"Swedish (Svenska)", value:"sv-SE", disabled:true, cls:'disabledOption'}, | 97 | {tag:'option', html:"Swedish (Svenska)", value:"sv-SE", disabled:true, cls:'disabledOption'}, |
101 | {tag:'option', html:"Turkish (Türkçe)", value:"tr-TR", disabled:true, cls:'disabledOption'}, | 98 | {tag:'option', html:"Turkish (Türkçe)", value:"tr-TR", disabled:true, cls:'disabledOption'}, |
102 | {tag:'option', html:"Vietnamese (Tiếng Việt)", value:"vi-VN", disabled:true, cls:'disabledOption'} | 99 | {tag:'option', html:"Vietnamese (Tiếng Việt)", value:"vi-VN", disabled:true, cls:'disabledOption'} |
103 | ] | 100 | ] |
104 | } | 101 | } |
105 | */ | 102 | */ |
106 | 103 | ||
107 | Clipperz.PM.Strings.GeneralSettings = { | 104 | Clipperz.PM.Strings.GeneralSettings = { |
108 | 'defaults': { | 105 | 'defaults': { |
109 | // 'loginFormAarghThatsBadUrl':"http://www.clipperz.com/support/faq/account_faq", | 106 | // 'loginFormAarghThatsBadUrl':"http://www.clipperz.com/support/faq/account_faq", |
110 | // 'loginFormVerifyTheCodeUrl':"http://www.clipperz.com/learn_more/reviewing_the_code", | 107 | // 'loginFormVerifyTheCodeUrl':"http://www.clipperz.com/learn_more/reviewing_the_code", |
111 | 108 | ||
112 | // 'donateHeaderLinkUrl': "http://www.clipperz.com/donations", | 109 | // 'donateHeaderLinkUrl': "http://www.clipperz.com/donations", |
113 | // 'creditsHeaderLinkUrl': "http://www.clipperz.com/credits", | 110 | // 'creditsHeaderLinkUrl': "http://www.clipperz.com/credits", |
114 | // 'feedbackHeaderLinkUrl': "http://www.clipperz.com/contact", | 111 | // 'feedbackHeaderLinkUrl': "http://www.clipperz.com/contact", |
115 | // 'helpHeaderLinkUrl': "http://www.clipperz.com/support/user_guide", | 112 | // 'helpHeaderLinkUrl': "http://www.clipperz.com/support/user_guide", |
116 | // 'forumHeaderLinkUrl': "http://www.clipperz.com/forum", | 113 | // 'forumHeaderLinkUrl': "http://www.clipperz.com/forum", |
117 | 114 | ||
118 | // 'httpAuthBookmarkletConfiguration':{tag:'textarea', id:'httpAuthDefaultConfiguration', html:"" + | 115 | // 'httpAuthBookmarkletConfiguration':{tag:'textarea', id:'httpAuthDefaultConfiguration', html:"" + |
119 | // "{ \"page\":{\"title\":\"HTTP authentication\"}," + "\n" + | 116 | // "{ \"page\":{\"title\":\"HTTP authentication\"}," + "\n" + |
120 | // " \"form\":{\"attributes\": {" + "\n" + | 117 | // " \"form\":{\"attributes\": {" + "\n" + |
diff --git a/frontend/gamma/js/Clipperz/PM/Strings/MessagePanelConfigurations.js b/frontend/gamma/js/Clipperz/PM/Strings/MessagePanelConfigurations.js index 446e96c..7f6c52f 100644 --- a/frontend/gamma/js/Clipperz/PM/Strings/MessagePanelConfigurations.js +++ b/frontend/gamma/js/Clipperz/PM/Strings/MessagePanelConfigurations.js | |||
@@ -1,120 +1,117 @@ | |||
1 | /* | 1 | /* |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | */ | 24 | */ |
28 | 25 | ||
29 | if (typeof(Clipperz) == 'undefined') { Clipperz = {}; } | 26 | if (typeof(Clipperz) == 'undefined') { Clipperz = {}; } |
30 | if (typeof(Clipperz.PM) == 'undefined') { Clipperz.PM = {}; } | 27 | if (typeof(Clipperz.PM) == 'undefined') { Clipperz.PM = {}; } |
31 | if (typeof(Clipperz.PM.Strings) == 'undefined') { Clipperz.PM.Strings = {}; } | 28 | if (typeof(Clipperz.PM.Strings) == 'undefined') { Clipperz.PM.Strings = {}; } |
32 | 29 | ||
33 | Clipperz.PM.Strings.messagePanelConfigurations = { | 30 | Clipperz.PM.Strings.messagePanelConfigurations = { |
34 | 31 | ||
35 | 32 | ||
36 | //------------------------------------------------------------------------- | 33 | //------------------------------------------------------------------------- |
37 | // | 34 | // |
38 | // Registration - connection | 35 | // Registration - connection |
39 | // | 36 | // |
40 | 'registration_verify': function() { | 37 | 'registration_verify': function() { |
41 | return { | 38 | return { |
42 | 'title': null, | 39 | 'title': null, |
43 | 'text': Clipperz.PM.Strings['connectionRegistrationSendingRequestMessageText'] | 40 | 'text': Clipperz.PM.Strings['connectionRegistrationSendingRequestMessageText'] |
44 | } | 41 | } |
45 | }, | 42 | }, |
46 | 43 | ||
47 | 'registration_sendingCredentials': function() { | 44 | 'registration_sendingCredentials': function() { |
48 | return { | 45 | return { |
49 | 'title': null, | 46 | 'title': null, |
50 | 'text': Clipperz.PM.Strings['connectionRegistrationSendingCredentialsMessageText'] | 47 | 'text': Clipperz.PM.Strings['connectionRegistrationSendingCredentialsMessageText'] |
51 | } | 48 | } |
52 | }, | 49 | }, |
53 | 50 | ||
54 | //------------------------------------------------------------------------- | 51 | //------------------------------------------------------------------------- |
55 | // | 52 | // |
56 | // One Time Password login message panel | 53 | // One Time Password login message panel |
57 | // | 54 | // |
58 | 55 | ||
59 | 'OTP_login_start': function() { | 56 | 'OTP_login_start': function() { |
60 | return { | 57 | return { |
61 | 'title': Clipperz.PM.Strings['OTPloginMessagePanelInitialTitle'], | 58 | 'title': Clipperz.PM.Strings['OTPloginMessagePanelInitialTitle'], |
62 | 'text': Clipperz.PM.Strings['OTPloginMessagePanelInitialText'], | 59 | 'text': Clipperz.PM.Strings['OTPloginMessagePanelInitialText'], |
63 | 'steps': '+3', | 60 | 'steps': '+3', |
64 | 'buttons': {} | 61 | 'buttons': {} |
65 | } | 62 | } |
66 | }, | 63 | }, |
67 | 64 | ||
68 | 'OTP_login_loadingOTP': function() { | 65 | 'OTP_login_loadingOTP': function() { |
69 | return { | 66 | return { |
70 | 'title': Clipperz.PM.Strings['OTPloginMessagePanelLoadingTitle'], | 67 | 'title': Clipperz.PM.Strings['OTPloginMessagePanelLoadingTitle'], |
71 | 'text': Clipperz.PM.Strings['OTPloginMessagePanelLoadingText'] | 68 | 'text': Clipperz.PM.Strings['OTPloginMessagePanelLoadingText'] |
72 | } | 69 | } |
73 | }, | 70 | }, |
74 | 71 | ||
75 | 'OTP_login_extractingPassphrase': function() { | 72 | 'OTP_login_extractingPassphrase': function() { |
76 | return { | 73 | return { |
77 | 'title': Clipperz.PM.Strings['OTPloginMessagePanelProcessingTitle'], | 74 | 'title': Clipperz.PM.Strings['OTPloginMessagePanelProcessingTitle'], |
78 | 'text': Clipperz.PM.Strings['OTPloginMessagePanelProcessingText'] | 75 | 'text': Clipperz.PM.Strings['OTPloginMessagePanelProcessingText'] |
79 | } | 76 | } |
80 | }, | 77 | }, |
81 | 78 | ||
82 | 79 | ||
83 | //------------------------------------------------------------------------- | 80 | //------------------------------------------------------------------------- |
84 | // | 81 | // |
85 | // Login message panel | 82 | // Login message panel |
86 | // | 83 | // |
87 | 'login_start': function() { | 84 | 'login_start': function() { |
88 | return { | 85 | return { |
89 | 'title': Clipperz.PM.Strings['loginMessagePanelInitialTitle'], | 86 | 'title': Clipperz.PM.Strings['loginMessagePanelInitialTitle'], |
90 | 'text': Clipperz.PM.Strings['loginMessagePanelInitialText'], | 87 | 'text': Clipperz.PM.Strings['loginMessagePanelInitialText'], |
91 | 'steps': '+7', | 88 | 'steps': '+7', |
92 | 'buttons': { | 89 | 'buttons': { |
93 | 'ok': Clipperz.PM.Strings['loginMessagePanelInitialButtonLabel'] | 90 | 'ok': Clipperz.PM.Strings['loginMessagePanelInitialButtonLabel'] |
94 | } | 91 | } |
95 | } | 92 | } |
96 | }, | 93 | }, |
97 | 94 | ||
98 | 'login_connected': function() { | 95 | 'login_connected': function() { |
99 | return { | 96 | return { |
100 | 'title': Clipperz.PM.Strings['loginMessagePanelConnectedTitle'], | 97 | 'title': Clipperz.PM.Strings['loginMessagePanelConnectedTitle'], |
101 | 'text': Clipperz.PM.Strings['loginMessagePanelConnectedText'], | 98 | 'text': Clipperz.PM.Strings['loginMessagePanelConnectedText'], |
102 | 'buttons': {} | 99 | 'buttons': {} |
103 | } | 100 | } |
104 | }, | 101 | }, |
105 | 102 | ||
106 | 'login_failed':function() { | 103 | 'login_failed':function() { |
107 | return { | 104 | return { |
108 | 'title': Clipperz.PM.Strings['loginMessagePanelFailureTitle'], | 105 | 'title': Clipperz.PM.Strings['loginMessagePanelFailureTitle'], |
109 | 'text': Clipperz.PM.Strings['loginMessagePanelFailureText'], | 106 | 'text': Clipperz.PM.Strings['loginMessagePanelFailureText'], |
110 | 'button': Clipperz.PM.Strings['loginMessagePanelFailureButtonLabel'] | 107 | 'button': Clipperz.PM.Strings['loginMessagePanelFailureButtonLabel'] |
111 | } | 108 | } |
112 | }, | 109 | }, |
113 | 110 | ||
114 | //------------------------------------------------------------------------- | 111 | //------------------------------------------------------------------------- |
115 | // | 112 | // |
116 | // Login message panel - connection | 113 | // Login message panel - connection |
117 | // | 114 | // |
118 | 'connection_sendingCredentials': function() { | 115 | 'connection_sendingCredentials': function() { |
119 | return { | 116 | return { |
120 | 'title': Clipperz.PM.Strings['connectionLoginSendingCredentialsMessageTitle'], | 117 | 'title': Clipperz.PM.Strings['connectionLoginSendingCredentialsMessageTitle'], |
diff --git a/frontend/gamma/js/Clipperz/PM/Strings/Strings_defaults.js b/frontend/gamma/js/Clipperz/PM/Strings/Strings_defaults.js index 1ad2696..101ed3f 100644 --- a/frontend/gamma/js/Clipperz/PM/Strings/Strings_defaults.js +++ b/frontend/gamma/js/Clipperz/PM/Strings/Strings_defaults.js | |||
@@ -1,120 +1,117 @@ | |||
1 | /* | 1 | /* |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | */ | 24 | */ |
28 | 25 | ||
29 | if (typeof(Clipperz) == 'undefined') { Clipperz = {}; } | 26 | if (typeof(Clipperz) == 'undefined') { Clipperz = {}; } |
30 | if (typeof(Clipperz.PM) == 'undefined') { Clipperz.PM = {}; } | 27 | if (typeof(Clipperz.PM) == 'undefined') { Clipperz.PM = {}; } |
31 | if (typeof(Clipperz.PM.Strings) == 'undefined') { Clipperz.PM.Strings = {}; } | 28 | if (typeof(Clipperz.PM.Strings) == 'undefined') { Clipperz.PM.Strings = {}; } |
32 | if (typeof(Clipperz.PM.Strings.Languages) == 'undefined') { Clipperz.PM.Strings.Languages = {}; } | 29 | if (typeof(Clipperz.PM.Strings.Languages) == 'undefined') { Clipperz.PM.Strings.Languages = {}; } |
33 | 30 | ||
34 | //============================================================================= | 31 | //============================================================================= |
35 | // | 32 | // |
36 | // D E F A U L T S ( defaults ) | 33 | // D E F A U L T S ( defaults ) |
37 | // | 34 | // |
38 | //============================================================================= | 35 | //============================================================================= |
39 | 36 | ||
40 | Clipperz.PM.Strings.Languages['defaults'] = { | 37 | Clipperz.PM.Strings.Languages['defaults'] = { |
41 | 38 | ||
42 | 'elapsedTimeDescriptions': { | 39 | 'elapsedTimeDescriptions': { |
43 | 'MORE_THAN_A_MONTH_AGO': "more than a month ago", | 40 | 'MORE_THAN_A_MONTH_AGO': "more than a month ago", |
44 | 'MORE_THAN_A_WEEK_AGO': "more than a week ago", | 41 | 'MORE_THAN_A_WEEK_AGO': "more than a week ago", |
45 | 'MORE_THAN_*_WEEKS_AGO': "more than __elapsed__ weeks ago", | 42 | 'MORE_THAN_*_WEEKS_AGO': "more than __elapsed__ weeks ago", |
46 | 'YESTERDAY': "yesterday", | 43 | 'YESTERDAY': "yesterday", |
47 | '*_DAYS_AGO': "__elapsed__ days ago", | 44 | '*_DAYS_AGO': "__elapsed__ days ago", |
48 | 'ABOUT_AN_HOUR_AGO': "about an hour ago", | 45 | 'ABOUT_AN_HOUR_AGO': "about an hour ago", |
49 | '*_HOURS_AGO': "__elapsed__ hours ago", | 46 | '*_HOURS_AGO': "__elapsed__ hours ago", |
50 | 'JUST_A_FEW_MINUTES_AGO': "just a few minutes ago", | 47 | 'JUST_A_FEW_MINUTES_AGO': "just a few minutes ago", |
51 | 'ABOUT_*_MINUTES_AGO': "about __elapsed__ minutes ago" | 48 | 'ABOUT_*_MINUTES_AGO': "about __elapsed__ minutes ago" |
52 | }, | 49 | }, |
53 | /* | 50 | /* |
54 | 'unknown_ip': "unknown", | 51 | 'unknown_ip': "unknown", |
55 | 52 | ||
56 | 'countries': { | 53 | 'countries': { |
57 | '--': "unknown", | 54 | '--': "unknown", |
58 | 'AD': "Andorra", | 55 | 'AD': "Andorra", |
59 | 'AE': "United Arab Emirates", | 56 | 'AE': "United Arab Emirates", |
60 | 'AF': "Afghanistan", | 57 | 'AF': "Afghanistan", |
61 | 'AG': "Antigua and Barbuda", | 58 | 'AG': "Antigua and Barbuda", |
62 | 'AI': "Anguilla", | 59 | 'AI': "Anguilla", |
63 | 'AL': "Albania", | 60 | 'AL': "Albania", |
64 | 'AM': "Armenia", | 61 | 'AM': "Armenia", |
65 | 'AN': "Netherlands Antilles", | 62 | 'AN': "Netherlands Antilles", |
66 | 'AO': "Angola", | 63 | 'AO': "Angola", |
67 | 'AP': "Non-Spec Asia Pas Location", | 64 | 'AP': "Non-Spec Asia Pas Location", |
68 | 'AR': "Argentina", | 65 | 'AR': "Argentina", |
69 | 'AS': "American Samoa", | 66 | 'AS': "American Samoa", |
70 | 'AT': "Austria", | 67 | 'AT': "Austria", |
71 | 'AU': "Australia", | 68 | 'AU': "Australia", |
72 | 'AW': "Aruba", | 69 | 'AW': "Aruba", |
73 | 'AX': "Aland Islands", | 70 | 'AX': "Aland Islands", |
74 | 'AZ': "Azerbaijan", | 71 | 'AZ': "Azerbaijan", |
75 | 'BA': "Bosnia and Herzegowina", | 72 | 'BA': "Bosnia and Herzegowina", |
76 | 'BB': "Barbados", | 73 | 'BB': "Barbados", |
77 | 'BD': "Bangladesh", | 74 | 'BD': "Bangladesh", |
78 | 'BE': "Belgium", | 75 | 'BE': "Belgium", |
79 | 'BF': "Burkina Faso", | 76 | 'BF': "Burkina Faso", |
80 | 'BG': "Bulgaria", | 77 | 'BG': "Bulgaria", |
81 | 'BH': "Bahrain", | 78 | 'BH': "Bahrain", |
82 | 'BI': "Burundi", | 79 | 'BI': "Burundi", |
83 | 'BJ': "Benin", | 80 | 'BJ': "Benin", |
84 | 'BM': "Bermuda", | 81 | 'BM': "Bermuda", |
85 | 'BN': "Brunei Darussalam", | 82 | 'BN': "Brunei Darussalam", |
86 | 'BO': "Bolivia", | 83 | 'BO': "Bolivia", |
87 | 'BR': "Brazil", | 84 | 'BR': "Brazil", |
88 | 'BS': "Bahamas", | 85 | 'BS': "Bahamas", |
89 | 'BT': "Bhutan", | 86 | 'BT': "Bhutan", |
90 | 'BW': "Botswana", | 87 | 'BW': "Botswana", |
91 | 'BY': "Belarus", | 88 | 'BY': "Belarus", |
92 | 'BZ': "Belize", | 89 | 'BZ': "Belize", |
93 | 'CA': "Canada", | 90 | 'CA': "Canada", |
94 | 'CD': "Congo the Democratic Republic of the", | 91 | 'CD': "Congo the Democratic Republic of the", |
95 | 'CF': "Central African Republic", | 92 | 'CF': "Central African Republic", |
96 | 'CH': "Switzerland", | 93 | 'CH': "Switzerland", |
97 | 'CI': "Cote D'ivoire", | 94 | 'CI': "Cote D'ivoire", |
98 | 'CK': "Cook Islands", | 95 | 'CK': "Cook Islands", |
99 | 'CL': "Chile", | 96 | 'CL': "Chile", |
100 | 'CM': "Cameroon", | 97 | 'CM': "Cameroon", |
101 | 'CN': "China", | 98 | 'CN': "China", |
102 | 'CO': "Colombia", | 99 | 'CO': "Colombia", |
103 | 'CR': "Costa Rica", | 100 | 'CR': "Costa Rica", |
104 | 'CS': "Serbia and Montenegro", | 101 | 'CS': "Serbia and Montenegro", |
105 | 'CU': "Cuba", | 102 | 'CU': "Cuba", |
106 | 'CY': "Cyprus", | 103 | 'CY': "Cyprus", |
107 | 'CZ': "Czech Republic", | 104 | 'CZ': "Czech Republic", |
108 | 'DE': "Germany", | 105 | 'DE': "Germany", |
109 | 'DJ': "Djibouti", | 106 | 'DJ': "Djibouti", |
110 | 'DK': "Denmark", | 107 | 'DK': "Denmark", |
111 | 'DO': "Dominican Republic", | 108 | 'DO': "Dominican Republic", |
112 | 'DZ': "Algeria", | 109 | 'DZ': "Algeria", |
113 | 'EC': "Ecuador", | 110 | 'EC': "Ecuador", |
114 | 'EE': "Estonia", | 111 | 'EE': "Estonia", |
115 | 'EG': "Egypt", | 112 | 'EG': "Egypt", |
116 | 'ER': "Eritrea", | 113 | 'ER': "Eritrea", |
117 | 'ES': "Spain", | 114 | 'ES': "Spain", |
118 | 'ET': "Ethiopia", | 115 | 'ET': "Ethiopia", |
119 | 'EU': "European Union", | 116 | 'EU': "European Union", |
120 | 'FI': "Finland", | 117 | 'FI': "Finland", |
diff --git a/frontend/gamma/js/Clipperz/PM/Strings/Strings_en-US.js b/frontend/gamma/js/Clipperz/PM/Strings/Strings_en-US.js index eebdb16..b540633 100644 --- a/frontend/gamma/js/Clipperz/PM/Strings/Strings_en-US.js +++ b/frontend/gamma/js/Clipperz/PM/Strings/Strings_en-US.js | |||
@@ -1,120 +1,117 @@ | |||
1 | /* | 1 | /* |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | */ | 24 | */ |
28 | 25 | ||
29 | //============================================================================= | 26 | //============================================================================= |
30 | // | 27 | // |
31 | // E N G L I S H A M E R I C A N ( en_US ) | 28 | // E N G L I S H A M E R I C A N ( en_US ) |
32 | // | 29 | // |
33 | //============================================================================= | 30 | //============================================================================= |
34 | 31 | ||
35 | Clipperz.PM.Strings.Languages['en-us'] = { | 32 | Clipperz.PM.Strings.Languages['en-us'] = { |
36 | /* | 33 | /* |
37 | //Login page - description | 34 | //Login page - description |
38 | 'clipperzServiceDescription': "\ | 35 | 'clipperzServiceDescription': "\ |
39 | <!-- FIX CSS DONE -->\ | 36 | <!-- FIX CSS DONE -->\ |
40 | <h2>Keep it to yourself!</h2>\ | 37 | <h2>Keep it to yourself!</h2>\ |
41 | <ul>\ | 38 | <ul>\ |
42 | <li>\ | 39 | <li>\ |
43 | <h3>Clipperz is:</h3>\ | 40 | <h3>Clipperz is:</h3>\ |
44 | <ul>\ | 41 | <ul>\ |
45 | <li><p>a secure and simple password manager</p></li>\ | 42 | <li><p>a secure and simple password manager</p></li>\ |
46 | <li><p>an effective single sign-on solution</p></li>\ | 43 | <li><p>an effective single sign-on solution</p></li>\ |
47 | <li><p>a digital vault for your personal data</p></li>\ | 44 | <li><p>a digital vault for your personal data</p></li>\ |
48 | </ul>\ | 45 | </ul>\ |
49 | </li>\ | 46 | </li>\ |
50 | <li>\ | 47 | <li>\ |
51 | <h3>With Clipperz you can:</h3>\ | 48 | <h3>With Clipperz you can:</h3>\ |
52 | <ul>\ | 49 | <ul>\ |
53 | <li><p>store and manage your passwords and online credentials</p></li>\ | 50 | <li><p>store and manage your passwords and online credentials</p></li>\ |
54 | <li><p>login to your web services without entering any username or password</p></li>\ | 51 | <li><p>login to your web services without entering any username or password</p></li>\ |
55 | <li><p>protect all your sensitive data: codes for burglar alarms, PINs, credit card numbers, …</p></li>\ | 52 | <li><p>protect all your sensitive data: codes for burglar alarms, PINs, credit card numbers, …</p></li>\ |
56 | <li><p>share secrets with family members and associates (coming soon)</p></li>\ | 53 | <li><p>share secrets with family members and associates (coming soon)</p></li>\ |
57 | </ul>\ | 54 | </ul>\ |
58 | </li>\ | 55 | </li>\ |
59 | <li>\ | 56 | <li>\ |
60 | <h3>Clipperz benefits:</h3>\ | 57 | <h3>Clipperz benefits:</h3>\ |
61 | <ul>\ | 58 | <ul>\ |
62 | <li><p>free and completely anonymous</p></li>\ | 59 | <li><p>free and completely anonymous</p></li>\ |
63 | <li><p>access it any time from any computer</p></li>\ | 60 | <li><p>access it any time from any computer</p></li>\ |
64 | <li><p>no software to download and nothing to install</p></li>\ | 61 | <li><p>no software to download and nothing to install</p></li>\ |
65 | <li><p>avoid keeping secrets on your PC or on paper</p></li>\ | 62 | <li><p>avoid keeping secrets on your PC or on paper</p></li>\ |
66 | </ul>\ | 63 | </ul>\ |
67 | </li>\ | 64 | </li>\ |
68 | <li>\ | 65 | <li>\ |
69 | <h3>Clipperz security:</h3>\ | 66 | <h3>Clipperz security:</h3>\ |
70 | <ul>\ | 67 | <ul>\ |
71 | <li><p>your secrets are locally encrypted by your browser before being uploaded to Clipperz</p></li>\ | 68 | <li><p>your secrets are locally encrypted by your browser before being uploaded to Clipperz</p></li>\ |
72 | <li><p>the encryption key is a passphrase known only to you</p></li>\ | 69 | <li><p>the encryption key is a passphrase known only to you</p></li>\ |
73 | <li><p>Clipperz hosts your sensitive data in encrypted form and could never actually access the data in its plain form</p></li>\ | 70 | <li><p>Clipperz hosts your sensitive data in encrypted form and could never actually access the data in its plain form</p></li>\ |
74 | <li><p>Clipperz is built upon standard encryption schemes, nothing fancies or homemade</p></li>\ | 71 | <li><p>Clipperz is built upon standard encryption schemes, nothing fancies or homemade</p></li>\ |
75 | <li><p>you can review the source code anytime you like, but you need to know nothing about cryptography to be an happy user!</p></li>\ | 72 | <li><p>you can review the source code anytime you like, but you need to know nothing about cryptography to be an happy user!</p></li>\ |
76 | </ul>\ | 73 | </ul>\ |
77 | </li>\ | 74 | </li>\ |
78 | <li>\ | 75 | <li>\ |
79 | <a href=\"http://www.clipperz.com\" target=\"_blank\">Learn more</a>\ | 76 | <a href=\"http://www.clipperz.com\" target=\"_blank\">Learn more</a>\ |
80 | </li>\ | 77 | </li>\ |
81 | </ul>", | 78 | </ul>", |
82 | 79 | ||
83 | 80 | ||
84 | 'loginFormTitle': "login with your Clipperz account", | 81 | 'loginFormTitle': "login with your Clipperz account", |
85 | 'loginFormUsernameLabel': "username", | 82 | 'loginFormUsernameLabel': "username", |
86 | 'loginFormPassphraseLabel': "passphrase", | 83 | 'loginFormPassphraseLabel': "passphrase", |
87 | 'loginFormDontHaveAnAccountLabel': "don\'t have an account?", | 84 | 'loginFormDontHaveAnAccountLabel': "don\'t have an account?", |
88 | 'loginFormCreateOneLabel': "create one", | 85 | 'loginFormCreateOneLabel': "create one", |
89 | 'loginFormForgotYourCredentialsLabel': "forgot your credentials?", | 86 | 'loginFormForgotYourCredentialsLabel': "forgot your credentials?", |
90 | 'loginFormAarghThatsBadLabel': "aargh! that\'s bad!", | 87 | 'loginFormAarghThatsBadLabel': "aargh! that\'s bad!", |
91 | 'loginFormAfraidOfMaliciousScriptsLabel': "afraid of malicious scripts?", | 88 | 'loginFormAfraidOfMaliciousScriptsLabel': "afraid of malicious scripts?", |
92 | 'loginFormVerifyTheCodeLabel': "verify the code", | 89 | 'loginFormVerifyTheCodeLabel': "verify the code", |
93 | 'loginFormButtonLabel': "Login", | 90 | 'loginFormButtonLabel': "Login", |
94 | 'loginFormOneTimePasswordCheckboxLabel': "use a one-time passphrase", | 91 | 'loginFormOneTimePasswordCheckboxLabel': "use a one-time passphrase", |
95 | 'loginFormOneTimePasswordCheckboxDescription': "", | 92 | 'loginFormOneTimePasswordCheckboxDescription': "", |
96 | 93 | ||
97 | // Login page - language selection | 94 | // Login page - language selection |
98 | 'loginPanelSwithLanguageDescription': "<h5>Switch to your preferred language</h5>", | 95 | 'loginPanelSwithLanguageDescription': "<h5>Switch to your preferred language</h5>", |
99 | 96 | ||
100 | // Login page - browser compatibility | 97 | // Login page - browser compatibility |
101 | 'browserCompatibilityDescription': "<p>Have a better and safer Clipperz experience with Firefox. However Clipperz works just fine also with Opera, Safari and MS Internet Explorer!</p>", | 98 | 'browserCompatibilityDescription': "<p>Have a better and safer Clipperz experience with Firefox. However Clipperz works just fine also with Opera, Safari and MS Internet Explorer!</p>", |
102 | 99 | ||
103 | // Login with OTP - message panel | 100 | // Login with OTP - message panel |
104 | 'OTPloginMessagePanelInitialTitle': "Logging in using a one-time passphrase", | 101 | 'OTPloginMessagePanelInitialTitle': "Logging in using a one-time passphrase", |
105 | 'OTPloginMessagePanelInitialText': "Sending OTP credentials …", | 102 | 'OTPloginMessagePanelInitialText': "Sending OTP credentials …", |
106 | 'OTPloginMessagePanelLoadingTitle': "Logging in using a one-time passphrase", | 103 | 'OTPloginMessagePanelLoadingTitle': "Logging in using a one-time passphrase", |
107 | 'OTPloginMessagePanelLoadingText': "Fetching encrypted authentication data from the server …", | 104 | 'OTPloginMessagePanelLoadingText': "Fetching encrypted authentication data from the server …", |
108 | 'OTPloginMessagePanelProcessingTitle': "Logging in using a one-time passphrase", | 105 | 'OTPloginMessagePanelProcessingTitle': "Logging in using a one-time passphrase", |
109 | 'OTPloginMessagePanelProcessingText': "Local decryption of authentication data", | 106 | 'OTPloginMessagePanelProcessingText': "Local decryption of authentication data", |
110 | 107 | ||
111 | // Regular login - message panel | 108 | // Regular login - message panel |
112 | 'loginMessagePanelInitialTitle': "Logging in …", | 109 | 'loginMessagePanelInitialTitle': "Logging in …", |
113 | 'loginMessagePanelInitialText': "---", | 110 | 'loginMessagePanelInitialText': "---", |
114 | 'loginMessagePanelInitialButtonLabel': "Cancel", | 111 | 'loginMessagePanelInitialButtonLabel': "Cancel", |
115 | 'loginMessagePanelConnectedTitle': "Connected", | 112 | 'loginMessagePanelConnectedTitle': "Connected", |
116 | 'loginMessagePanelConnectedText': "Done", | 113 | 'loginMessagePanelConnectedText': "Done", |
117 | 'loginMessagePanelFailureTitle': "Error", | 114 | 'loginMessagePanelFailureTitle': "Error", |
118 | 'loginMessagePanelFailureText': "Login failed", | 115 | 'loginMessagePanelFailureText': "Login failed", |
119 | 'loginMessagePanelFailureButtonLabel': "Close", | 116 | 'loginMessagePanelFailureButtonLabel': "Close", |
120 | 117 | ||
diff --git a/frontend/gamma/js/Clipperz/PM/Toll.js b/frontend/gamma/js/Clipperz/PM/Toll.js index a533f51..bb31c43 100644 --- a/frontend/gamma/js/Clipperz/PM/Toll.js +++ b/frontend/gamma/js/Clipperz/PM/Toll.js | |||
@@ -1,120 +1,117 @@ | |||
1 | /* | 1 | /* |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | */ | 24 | */ |
28 | 25 | ||
29 | if (typeof(Clipperz) == 'undefined') { Clipperz = {}; } | 26 | if (typeof(Clipperz) == 'undefined') { Clipperz = {}; } |
30 | if (typeof(Clipperz.PM) == 'undefined') { Clipperz.PM = {}; } | 27 | if (typeof(Clipperz.PM) == 'undefined') { Clipperz.PM = {}; } |
31 | 28 | ||
32 | //============================================================================= | 29 | //============================================================================= |
33 | 30 | ||
34 | Clipperz.PM.Toll = function(args) { | 31 | Clipperz.PM.Toll = function(args) { |
35 | args = args || {}; | 32 | args = args || {}; |
36 | 33 | ||
37 | this._requestType = args.requestType; | 34 | this._requestType = args.requestType; |
38 | this._targetValue = args.targetValue; | 35 | this._targetValue = args.targetValue; |
39 | this._cost = args.cost; | 36 | this._cost = args.cost; |
40 | this._toll = null; | 37 | this._toll = null; |
41 | 38 | ||
42 | return this; | 39 | return this; |
43 | } | 40 | } |
44 | 41 | ||
45 | Clipperz.PM.Toll.prototype = MochiKit.Base.update(null, { | 42 | Clipperz.PM.Toll.prototype = MochiKit.Base.update(null, { |
46 | 43 | ||
47 | 'toString': function() { | 44 | 'toString': function() { |
48 | return "Clipperz.PM.Toll (" + this.requestType() + ": " + this.cost() + " - " + ((this.toll() == null)? 'UNPAID' : 'PAID') + ")"; | 45 | return "Clipperz.PM.Toll (" + this.requestType() + ": " + this.cost() + " - " + ((this.toll() == null)? 'UNPAID' : 'PAID') + ")"; |
49 | }, | 46 | }, |
50 | 47 | ||
51 | //------------------------------------------------------------------------- | 48 | //------------------------------------------------------------------------- |
52 | 49 | ||
53 | 'requestType': function() { | 50 | 'requestType': function() { |
54 | return this._requestType; | 51 | return this._requestType; |
55 | }, | 52 | }, |
56 | 53 | ||
57 | //------------------------------------------------------------------------- | 54 | //------------------------------------------------------------------------- |
58 | 55 | ||
59 | 'targetValue': function() { | 56 | 'targetValue': function() { |
60 | return this._targetValue; | 57 | return this._targetValue; |
61 | }, | 58 | }, |
62 | 59 | ||
63 | //------------------------------------------------------------------------- | 60 | //------------------------------------------------------------------------- |
64 | 61 | ||
65 | 'cost': function() { | 62 | 'cost': function() { |
66 | return this._cost; | 63 | return this._cost; |
67 | }, | 64 | }, |
68 | 65 | ||
69 | //------------------------------------------------------------------------- | 66 | //------------------------------------------------------------------------- |
70 | 67 | ||
71 | 'toll': function() { | 68 | 'toll': function() { |
72 | return this._toll; | 69 | return this._toll; |
73 | }, | 70 | }, |
74 | 71 | ||
75 | //------------------------------------------------------------------------- | 72 | //------------------------------------------------------------------------- |
76 | /* | 73 | /* |
77 | '__pay': function() { | 74 | '__pay': function() { |
78 | varresult; | 75 | varresult; |
79 | vartargetData; | 76 | vartargetData; |
80 | vartargetMatchSize; | 77 | vartargetMatchSize; |
81 | var prefixMatchingBits; | 78 | var prefixMatchingBits; |
82 | varpayment; | 79 | varpayment; |
83 | var i; | 80 | var i; |
84 | 81 | ||
85 | if (this.toll() == null) { | 82 | if (this.toll() == null) { |
86 | i = 0; | 83 | i = 0; |
87 | targetData = new Clipperz.ByteArray("0x" + this.targetValue()); | 84 | targetData = new Clipperz.ByteArray("0x" + this.targetValue()); |
88 | targetMatchSize = this.cost(); | 85 | targetMatchSize = this.cost(); |
89 | 86 | ||
90 | payment = Clipperz.Crypto.PRNG.defaultRandomGenerator().getRandomBytes(32); | 87 | payment = Clipperz.Crypto.PRNG.defaultRandomGenerator().getRandomBytes(32); |
91 | 88 | ||
92 | do { | 89 | do { |
93 | varpaymentData; | 90 | varpaymentData; |
94 | 91 | ||
95 | //payment = Clipperz.Crypto.PRNG.defaultRandomGenerator().getRandomBytes(32); | 92 | //payment = Clipperz.Crypto.PRNG.defaultRandomGenerator().getRandomBytes(32); |
96 | payment.increment(); | 93 | payment.increment(); |
97 | paymentData = Clipperz.Crypto.SHA.sha256(payment); | 94 | paymentData = Clipperz.Crypto.SHA.sha256(payment); |
98 | // prefixMatchingBits = this.prefixMatchingBits(targetData, paymentData); | 95 | // prefixMatchingBits = this.prefixMatchingBits(targetData, paymentData); |
99 | prefixMatchingBits = Clipperz.ByteArray.prefixMatchingBits(targetData, paymentData); | 96 | prefixMatchingBits = Clipperz.ByteArray.prefixMatchingBits(targetData, paymentData); |
100 | i++; | 97 | i++; |
101 | } while (prefixMatchingBits < targetMatchSize); | 98 | } while (prefixMatchingBits < targetMatchSize); |
102 | 99 | ||
103 | this._toll = payment.toHexString().substring(2) | 100 | this._toll = payment.toHexString().substring(2) |
104 | } | 101 | } |
105 | 102 | ||
106 | return this; | 103 | return this; |
107 | }, | 104 | }, |
108 | */ | 105 | */ |
109 | //------------------------------------------------------------------------- | 106 | //------------------------------------------------------------------------- |
110 | 107 | ||
111 | 'innerDeferredPay': function (aTargetValue, aCost, aPayment) { | 108 | 'innerDeferredPay': function (aTargetValue, aCost, aPayment) { |
112 | var deferredResult; | 109 | var deferredResult; |
113 | var result; | 110 | var result; |
114 | var payment; | 111 | var payment; |
115 | var i; | 112 | var i; |
116 | 113 | ||
117 | result = null; | 114 | result = null; |
118 | payment = aPayment; | 115 | payment = aPayment; |
119 | i = 0; | 116 | i = 0; |
120 | 117 | ||
diff --git a/frontend/gamma/js/Clipperz/PM/UI/Canvas/CoverActions/download.js b/frontend/gamma/js/Clipperz/PM/UI/Canvas/CoverActions/download.js index 169946a..25e82ca 100644 --- a/frontend/gamma/js/Clipperz/PM/UI/Canvas/CoverActions/download.js +++ b/frontend/gamma/js/Clipperz/PM/UI/Canvas/CoverActions/download.js | |||
@@ -1,120 +1,117 @@ | |||
1 | /* | 1 | /* |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | */ | 24 | */ |
28 | 25 | ||
29 | // | 26 | // |
30 | //download.js | 27 | //download.js |
31 | //Download | 28 | //Download |
32 | // | 29 | // |
33 | //Created by Giulio Cesare Solaroli on 3/15/10 | 30 | //Created by Giulio Cesare Solaroli on 3/15/10 |
34 | //Copyright 2010 Clipperz | 31 | //Copyright 2010 Clipperz |
35 | //This code was generated by Opacity. You may use or modify it in any way. | 32 | //This code was generated by Opacity. You may use or modify it in any way. |
36 | // | 33 | // |
37 | 34 | ||
38 | var kClipperz_PM_UI_Canvas_CoverActions_downloadWidth = 46.0; | 35 | var kClipperz_PM_UI_Canvas_CoverActions_downloadWidth = 46.0; |
39 | var kClipperz_PM_UI_Canvas_CoverActions_downloadHeight = 46.0; | 36 | var kClipperz_PM_UI_Canvas_CoverActions_downloadHeight = 46.0; |
40 | 37 | ||
41 | function Clipperz_PM_UI_Canvas_CoverActions_download(canvas, aColor, aFillColor, aThickness) | 38 | function Clipperz_PM_UI_Canvas_CoverActions_download(canvas, aColor, aFillColor, aThickness) |
42 | { | 39 | { |
43 | var context = canvas.getContext("2d"); | 40 | var context = canvas.getContext("2d"); |
44 | var alignStroke; | 41 | var alignStroke; |
45 | var resolution; | 42 | var resolution; |
46 | var stroke; | 43 | var stroke; |
47 | var path; | 44 | var path; |
48 | var pointX; | 45 | var pointX; |
49 | var pointY; | 46 | var pointY; |
50 | if (window.devicePixelRatio) | 47 | if (window.devicePixelRatio) |
51 | resolution = window.devicePixelRatio; | 48 | resolution = window.devicePixelRatio; |
52 | else | 49 | else |
53 | resolution = 1.0; | 50 | resolution = 1.0; |
54 | resolution *= 0.5 * (canvas.width / kClipperz_PM_UI_Canvas_CoverActions_downloadWidth + canvas.height / kClipperz_PM_UI_Canvas_CoverActions_downloadHeight); | 51 | resolution *= 0.5 * (canvas.width / kClipperz_PM_UI_Canvas_CoverActions_downloadWidth + canvas.height / kClipperz_PM_UI_Canvas_CoverActions_downloadHeight); |
55 | 52 | ||
56 | context.save(); | 53 | context.save(); |
57 | context.scale(canvas.width / kClipperz_PM_UI_Canvas_CoverActions_downloadWidth, canvas.height / kClipperz_PM_UI_Canvas_CoverActions_downloadHeight); | 54 | context.scale(canvas.width / kClipperz_PM_UI_Canvas_CoverActions_downloadWidth, canvas.height / kClipperz_PM_UI_Canvas_CoverActions_downloadHeight); |
58 | context.clearRect(0.0, 0.0, kClipperz_PM_UI_Canvas_CoverActions_downloadWidth, kClipperz_PM_UI_Canvas_CoverActions_downloadHeight); | 55 | context.clearRect(0.0, 0.0, kClipperz_PM_UI_Canvas_CoverActions_downloadWidth, kClipperz_PM_UI_Canvas_CoverActions_downloadHeight); |
59 | 56 | ||
60 | // arrow | 57 | // arrow |
61 | 58 | ||
62 | stroke = aThickness; | 59 | stroke = aThickness; |
63 | stroke *= resolution; | 60 | stroke *= resolution; |
64 | if (stroke < 1.0) | 61 | if (stroke < 1.0) |
65 | stroke = Math.ceil(stroke); | 62 | stroke = Math.ceil(stroke); |
66 | else | 63 | else |
67 | stroke = Math.round(stroke); | 64 | stroke = Math.round(stroke); |
68 | stroke /= resolution; | 65 | stroke /= resolution; |
69 | alignStroke = (0.5 * stroke * resolution) % 1.0; | 66 | alignStroke = (0.5 * stroke * resolution) % 1.0; |
70 | context.beginPath(); | 67 | context.beginPath(); |
71 | pointX = 16.5; | 68 | pointX = 16.5; |
72 | pointY = 22.5; | 69 | pointY = 22.5; |
73 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; | 70 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; |
74 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; | 71 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; |
75 | context.moveTo(pointX, pointY); | 72 | context.moveTo(pointX, pointY); |
76 | pointX = 19.5; | 73 | pointX = 19.5; |
77 | pointY = 8.5; | 74 | pointY = 8.5; |
78 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; | 75 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; |
79 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; | 76 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; |
80 | context.lineTo(pointX, pointY); | 77 | context.lineTo(pointX, pointY); |
81 | pointX = 30.038; | 78 | pointX = 30.038; |
82 | pointY = 10.605; | 79 | pointY = 10.605; |
83 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; | 80 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; |
84 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; | 81 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; |
85 | context.lineTo(pointX, pointY); | 82 | context.lineTo(pointX, pointY); |
86 | pointX = 27.354; | 83 | pointX = 27.354; |
87 | pointY = 24.354; | 84 | pointY = 24.354; |
88 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; | 85 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; |
89 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; | 86 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; |
90 | context.lineTo(pointX, pointY); | 87 | context.lineTo(pointX, pointY); |
91 | pointX = 33.28; | 88 | pointX = 33.28; |
92 | pointY = 25.293; | 89 | pointY = 25.293; |
93 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; | 90 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; |
94 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; | 91 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; |
95 | context.lineTo(pointX, pointY); | 92 | context.lineTo(pointX, pointY); |
96 | pointX = 19.81; | 93 | pointX = 19.81; |
97 | pointY = 36.828; | 94 | pointY = 36.828; |
98 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; | 95 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; |
99 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; | 96 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; |
100 | context.lineTo(pointX, pointY); | 97 | context.lineTo(pointX, pointY); |
101 | pointX = 10.07; | 98 | pointX = 10.07; |
102 | pointY = 21.617; | 99 | pointY = 21.617; |
103 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; | 100 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; |
104 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; | 101 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; |
105 | context.lineTo(pointX, pointY); | 102 | context.lineTo(pointX, pointY); |
106 | pointX = 16.5; | 103 | pointX = 16.5; |
107 | pointY = 22.5; | 104 | pointY = 22.5; |
108 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; | 105 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; |
109 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; | 106 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; |
110 | context.lineTo(pointX, pointY); | 107 | context.lineTo(pointX, pointY); |
111 | context.closePath(); | 108 | context.closePath(); |
112 | context.fillStyle = aFillColor; | 109 | context.fillStyle = aFillColor; |
113 | context.fill(); | 110 | context.fill(); |
114 | context.strokeStyle = aColor; | 111 | context.strokeStyle = aColor; |
115 | context.lineWidth = stroke; | 112 | context.lineWidth = stroke; |
116 | context.lineCap = "square"; | 113 | context.lineCap = "square"; |
117 | context.stroke(); | 114 | context.stroke(); |
118 | 115 | ||
119 | context.restore(); | 116 | context.restore(); |
120 | } | 117 | } |
diff --git a/frontend/gamma/js/Clipperz/PM/UI/Canvas/CoverActions/look.js b/frontend/gamma/js/Clipperz/PM/UI/Canvas/CoverActions/look.js index b8e535b..ba425ec 100644 --- a/frontend/gamma/js/Clipperz/PM/UI/Canvas/CoverActions/look.js +++ b/frontend/gamma/js/Clipperz/PM/UI/Canvas/CoverActions/look.js | |||
@@ -1,120 +1,117 @@ | |||
1 | /* | 1 | /* |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | */ | 24 | */ |
28 | 25 | ||
29 | // | 26 | // |
30 | //look.js | 27 | //look.js |
31 | //Look | 28 | //Look |
32 | // | 29 | // |
33 | //Created by Giulio Cesare Solaroli on 3/15/10 | 30 | //Created by Giulio Cesare Solaroli on 3/15/10 |
34 | //Copyright 2010 Clipperz | 31 | //Copyright 2010 Clipperz |
35 | //This code was generated by Opacity. You may use or modify it in any way. | 32 | //This code was generated by Opacity. You may use or modify it in any way. |
36 | // | 33 | // |
37 | 34 | ||
38 | var kClipperz_PM_UI_Canvas_CoverActions_lookWidth = 46.0; | 35 | var kClipperz_PM_UI_Canvas_CoverActions_lookWidth = 46.0; |
39 | var kClipperz_PM_UI_Canvas_CoverActions_lookHeight = 46.0; | 36 | var kClipperz_PM_UI_Canvas_CoverActions_lookHeight = 46.0; |
40 | 37 | ||
41 | function Clipperz_PM_UI_Canvas_CoverActions_look(canvas, aColor, aFillColor, aThickness) | 38 | function Clipperz_PM_UI_Canvas_CoverActions_look(canvas, aColor, aFillColor, aThickness) |
42 | { | 39 | { |
43 | var context = canvas.getContext("2d"); | 40 | var context = canvas.getContext("2d"); |
44 | var alignStroke; | 41 | var alignStroke; |
45 | var resolution; | 42 | var resolution; |
46 | var stroke; | 43 | var stroke; |
47 | var path; | 44 | var path; |
48 | var pointX; | 45 | var pointX; |
49 | var pointY; | 46 | var pointY; |
50 | if (window.devicePixelRatio) | 47 | if (window.devicePixelRatio) |
51 | resolution = window.devicePixelRatio; | 48 | resolution = window.devicePixelRatio; |
52 | else | 49 | else |
53 | resolution = 1.0; | 50 | resolution = 1.0; |
54 | resolution *= 0.5 * (canvas.width / kClipperz_PM_UI_Canvas_CoverActions_lookWidth + canvas.height / kClipperz_PM_UI_Canvas_CoverActions_lookHeight); | 51 | resolution *= 0.5 * (canvas.width / kClipperz_PM_UI_Canvas_CoverActions_lookWidth + canvas.height / kClipperz_PM_UI_Canvas_CoverActions_lookHeight); |
55 | 52 | ||
56 | context.save(); | 53 | context.save(); |
57 | context.scale(canvas.width / kClipperz_PM_UI_Canvas_CoverActions_lookWidth, canvas.height / kClipperz_PM_UI_Canvas_CoverActions_lookHeight); | 54 | context.scale(canvas.width / kClipperz_PM_UI_Canvas_CoverActions_lookWidth, canvas.height / kClipperz_PM_UI_Canvas_CoverActions_lookHeight); |
58 | context.clearRect(0.0, 0.0, kClipperz_PM_UI_Canvas_CoverActions_lookWidth, kClipperz_PM_UI_Canvas_CoverActions_lookHeight); | 55 | context.clearRect(0.0, 0.0, kClipperz_PM_UI_Canvas_CoverActions_lookWidth, kClipperz_PM_UI_Canvas_CoverActions_lookHeight); |
59 | 56 | ||
60 | // Layer 6 | 57 | // Layer 6 |
61 | 58 | ||
62 | stroke = aThickness; | 59 | stroke = aThickness; |
63 | stroke *= resolution; | 60 | stroke *= resolution; |
64 | if (stroke < 1.0) | 61 | if (stroke < 1.0) |
65 | stroke = Math.ceil(stroke); | 62 | stroke = Math.ceil(stroke); |
66 | else | 63 | else |
67 | stroke = Math.round(stroke); | 64 | stroke = Math.round(stroke); |
68 | stroke /= resolution; | 65 | stroke /= resolution; |
69 | alignStroke = (0.5 * stroke * resolution) % 1.0; | 66 | alignStroke = (0.5 * stroke * resolution) % 1.0; |
70 | context.save(); | 67 | context.save(); |
71 | context.translate(17.5, 23.0); | 68 | context.translate(17.5, 23.0); |
72 | context.rotate(-0.503); | 69 | context.rotate(-0.503); |
73 | context.translate(-17.5, -23.0); | 70 | context.translate(-17.5, -23.0); |
74 | context.beginPath(); | 71 | context.beginPath(); |
75 | pointX = 28.5; | 72 | pointX = 28.5; |
76 | pointY = 31.5; | 73 | pointY = 31.5; |
77 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; | 74 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; |
78 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; | 75 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; |
79 | context.moveTo(pointX, pointY); | 76 | context.moveTo(pointX, pointY); |
80 | pointX = 28.5; | 77 | pointX = 28.5; |
81 | pointY = 14.5; | 78 | pointY = 14.5; |
82 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; | 79 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; |
83 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; | 80 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; |
84 | context.lineTo(pointX, pointY); | 81 | context.lineTo(pointX, pointY); |
85 | pointX = 6.5; | 82 | pointX = 6.5; |
86 | pointY = 14.5; | 83 | pointY = 14.5; |
87 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; | 84 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; |
88 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; | 85 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; |
89 | context.lineTo(pointX, pointY); | 86 | context.lineTo(pointX, pointY); |
90 | pointX = 6.5; | 87 | pointX = 6.5; |
91 | pointY = 31.5; | 88 | pointY = 31.5; |
92 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; | 89 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; |
93 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; | 90 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; |
94 | context.lineTo(pointX, pointY); | 91 | context.lineTo(pointX, pointY); |
95 | pointX = 28.5; | 92 | pointX = 28.5; |
96 | pointY = 31.5; | 93 | pointY = 31.5; |
97 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; | 94 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; |
98 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; | 95 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; |
99 | context.lineTo(pointX, pointY); | 96 | context.lineTo(pointX, pointY); |
100 | context.closePath(); | 97 | context.closePath(); |
101 | context.fillStyle = aFillColor; | 98 | context.fillStyle = aFillColor; |
102 | context.fill(); | 99 | context.fill(); |
103 | context.strokeStyle = aColor; | 100 | context.strokeStyle = aColor; |
104 | context.lineWidth = stroke; | 101 | context.lineWidth = stroke; |
105 | context.lineCap = "square"; | 102 | context.lineCap = "square"; |
106 | context.stroke(); | 103 | context.stroke(); |
107 | context.restore(); | 104 | context.restore(); |
108 | 105 | ||
109 | // Layer 3 | 106 | // Layer 3 |
110 | 107 | ||
111 | stroke = aThickness; | 108 | stroke = aThickness; |
112 | stroke *= resolution; | 109 | stroke *= resolution; |
113 | if (stroke < 1.0) | 110 | if (stroke < 1.0) |
114 | stroke = Math.ceil(stroke); | 111 | stroke = Math.ceil(stroke); |
115 | else | 112 | else |
116 | stroke = Math.round(stroke); | 113 | stroke = Math.round(stroke); |
117 | stroke /= resolution; | 114 | stroke /= resolution; |
118 | alignStroke = (0.5 * stroke * resolution) % 1.0; | 115 | alignStroke = (0.5 * stroke * resolution) % 1.0; |
119 | context.save(); | 116 | context.save(); |
120 | context.translate(22.5, 20.0); | 117 | context.translate(22.5, 20.0); |
diff --git a/frontend/gamma/js/Clipperz/PM/UI/Canvas/Features/directLogin.js b/frontend/gamma/js/Clipperz/PM/UI/Canvas/Features/directLogin.js index 9c4e5ba..5c1f860 100644 --- a/frontend/gamma/js/Clipperz/PM/UI/Canvas/Features/directLogin.js +++ b/frontend/gamma/js/Clipperz/PM/UI/Canvas/Features/directLogin.js | |||
@@ -1,120 +1,117 @@ | |||
1 | /* | 1 | /* |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | */ | 24 | */ |
28 | 25 | ||
29 | // | 26 | // |
30 | //directLogin.js | 27 | //directLogin.js |
31 | //directLogin | 28 | //directLogin |
32 | // | 29 | // |
33 | //Created by Giulio Cesare Solaroli on 3/7/10 | 30 | //Created by Giulio Cesare Solaroli on 3/7/10 |
34 | //Copyright 2010 Clipperz | 31 | //Copyright 2010 Clipperz |
35 | //This code was generated by Opacity. You may use or modify it in any way. | 32 | //This code was generated by Opacity. You may use or modify it in any way. |
36 | // | 33 | // |
37 | 34 | ||
38 | var kClipperz_PM_UI_Canvas_Features_directLoginWidth = 76.0; | 35 | var kClipperz_PM_UI_Canvas_Features_directLoginWidth = 76.0; |
39 | var kClipperz_PM_UI_Canvas_Features_directLoginHeight = 76.0; | 36 | var kClipperz_PM_UI_Canvas_Features_directLoginHeight = 76.0; |
40 | 37 | ||
41 | function Clipperz_PM_UI_Canvas_Features_directLogin(canvas, aColor, aBannerColor, aBannerBackgroundColor) | 38 | function Clipperz_PM_UI_Canvas_Features_directLogin(canvas, aColor, aBannerColor, aBannerBackgroundColor) |
42 | { | 39 | { |
43 | var context = canvas.getContext("2d"); | 40 | var context = canvas.getContext("2d"); |
44 | var alignStroke; | 41 | var alignStroke; |
45 | var resolution; | 42 | var resolution; |
46 | var stroke; | 43 | var stroke; |
47 | var path; | 44 | var path; |
48 | var pointX; | 45 | var pointX; |
49 | var pointY; | 46 | var pointY; |
50 | if (window.devicePixelRatio) | 47 | if (window.devicePixelRatio) |
51 | resolution = window.devicePixelRatio; | 48 | resolution = window.devicePixelRatio; |
52 | else | 49 | else |
53 | resolution = 1.0; | 50 | resolution = 1.0; |
54 | resolution *= 0.5 * (canvas.width / kClipperz_PM_UI_Canvas_Features_directLoginWidth + canvas.height / kClipperz_PM_UI_Canvas_Features_directLoginHeight); | 51 | resolution *= 0.5 * (canvas.width / kClipperz_PM_UI_Canvas_Features_directLoginWidth + canvas.height / kClipperz_PM_UI_Canvas_Features_directLoginHeight); |
55 | 52 | ||
56 | context.save(); | 53 | context.save(); |
57 | context.scale(canvas.width / kClipperz_PM_UI_Canvas_Features_directLoginWidth, canvas.height / kClipperz_PM_UI_Canvas_Features_directLoginHeight); | 54 | context.scale(canvas.width / kClipperz_PM_UI_Canvas_Features_directLoginWidth, canvas.height / kClipperz_PM_UI_Canvas_Features_directLoginHeight); |
58 | context.clearRect(0.0, 0.0, kClipperz_PM_UI_Canvas_Features_directLoginWidth, kClipperz_PM_UI_Canvas_Features_directLoginHeight); | 55 | context.clearRect(0.0, 0.0, kClipperz_PM_UI_Canvas_Features_directLoginWidth, kClipperz_PM_UI_Canvas_Features_directLoginHeight); |
59 | 56 | ||
60 | // Layer 2 | 57 | // Layer 2 |
61 | 58 | ||
62 | stroke = 6.0; | 59 | stroke = 6.0; |
63 | stroke *= resolution; | 60 | stroke *= resolution; |
64 | if (stroke < 1.0) | 61 | if (stroke < 1.0) |
65 | stroke = Math.ceil(stroke); | 62 | stroke = Math.ceil(stroke); |
66 | else | 63 | else |
67 | stroke = Math.round(stroke); | 64 | stroke = Math.round(stroke); |
68 | stroke /= resolution; | 65 | stroke /= resolution; |
69 | alignStroke = (0.5 * stroke * resolution) % 1.0; | 66 | alignStroke = (0.5 * stroke * resolution) % 1.0; |
70 | context.beginPath(); | 67 | context.beginPath(); |
71 | pointX = 30.0; | 68 | pointX = 30.0; |
72 | pointY = 41.0; | 69 | pointY = 41.0; |
73 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; | 70 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; |
74 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; | 71 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; |
75 | context.moveTo(pointX, pointY); | 72 | context.moveTo(pointX, pointY); |
76 | pointX = 45.579; | 73 | pointX = 45.579; |
77 | pointY = 25.451; | 74 | pointY = 25.451; |
78 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; | 75 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; |
79 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; | 76 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; |
80 | context.lineTo(pointX, pointY); | 77 | context.lineTo(pointX, pointY); |
81 | context.strokeStyle = aColor; | 78 | context.strokeStyle = aColor; |
82 | context.lineWidth = stroke; | 79 | context.lineWidth = stroke; |
83 | context.lineCap = "square"; | 80 | context.lineCap = "square"; |
84 | context.stroke(); | 81 | context.stroke(); |
85 | 82 | ||
86 | alignStroke = 0.0; | 83 | alignStroke = 0.0; |
87 | context.beginPath(); | 84 | context.beginPath(); |
88 | pointX = 34.207; | 85 | pointX = 34.207; |
89 | pointY = 45.697; | 86 | pointY = 45.697; |
90 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; | 87 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; |
91 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; | 88 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; |
92 | context.moveTo(pointX, pointY); | 89 | context.moveTo(pointX, pointY); |
93 | pointX = 24.101; | 90 | pointX = 24.101; |
94 | pointY = 37.52; | 91 | pointY = 37.52; |
95 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; | 92 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; |
96 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; | 93 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; |
97 | context.lineTo(pointX, pointY); | 94 | context.lineTo(pointX, pointY); |
98 | pointX = 24.122; | 95 | pointX = 24.122; |
99 | pointY = 47.828; | 96 | pointY = 47.828; |
100 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; | 97 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; |
101 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; | 98 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; |
102 | context.lineTo(pointX, pointY); | 99 | context.lineTo(pointX, pointY); |
103 | pointX = 34.207; | 100 | pointX = 34.207; |
104 | pointY = 45.697; | 101 | pointY = 45.697; |
105 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; | 102 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; |
106 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; | 103 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; |
107 | context.lineTo(pointX, pointY); | 104 | context.lineTo(pointX, pointY); |
108 | context.closePath(); | 105 | context.closePath(); |
109 | context.fillStyle = aColor; | 106 | context.fillStyle = aColor; |
110 | context.fill(); | 107 | context.fill(); |
111 | 108 | ||
112 | stroke = 6.0; | 109 | stroke = 6.0; |
113 | stroke *= resolution; | 110 | stroke *= resolution; |
114 | if (stroke < 1.0) | 111 | if (stroke < 1.0) |
115 | stroke = Math.ceil(stroke); | 112 | stroke = Math.ceil(stroke); |
116 | else | 113 | else |
117 | stroke = Math.round(stroke); | 114 | stroke = Math.round(stroke); |
118 | stroke /= resolution; | 115 | stroke /= resolution; |
119 | alignStroke = (0.5 * stroke * resolution) % 1.0; | 116 | alignStroke = (0.5 * stroke * resolution) % 1.0; |
120 | context.beginPath(); | 117 | context.beginPath(); |
diff --git a/frontend/gamma/js/Clipperz/PM/UI/Canvas/Features/protect.js b/frontend/gamma/js/Clipperz/PM/UI/Canvas/Features/protect.js index 501b69b..b829ed6 100644 --- a/frontend/gamma/js/Clipperz/PM/UI/Canvas/Features/protect.js +++ b/frontend/gamma/js/Clipperz/PM/UI/Canvas/Features/protect.js | |||
@@ -1,120 +1,117 @@ | |||
1 | /* | 1 | /* |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | */ | 24 | */ |
28 | 25 | ||
29 | // | 26 | // |
30 | //protect.js | 27 | //protect.js |
31 | //protect | 28 | //protect |
32 | // | 29 | // |
33 | //Created by Giulio Cesare Solaroli on 3/7/10 | 30 | //Created by Giulio Cesare Solaroli on 3/7/10 |
34 | //Copyright 2010 Clipperz | 31 | //Copyright 2010 Clipperz |
35 | //This code was generated by Opacity. You may use or modify it in any way. | 32 | //This code was generated by Opacity. You may use or modify it in any way. |
36 | // | 33 | // |
37 | 34 | ||
38 | var kClipperz_PM_UI_Canvas_Features_protectWidth = 76.0; | 35 | var kClipperz_PM_UI_Canvas_Features_protectWidth = 76.0; |
39 | var kClipperz_PM_UI_Canvas_Features_protectHeight = 76.0; | 36 | var kClipperz_PM_UI_Canvas_Features_protectHeight = 76.0; |
40 | 37 | ||
41 | function Clipperz_PM_UI_Canvas_Features_protect(canvas, aColor, aBannerColor, aBannerBackgroundColor) | 38 | function Clipperz_PM_UI_Canvas_Features_protect(canvas, aColor, aBannerColor, aBannerBackgroundColor) |
42 | { | 39 | { |
43 | var context = canvas.getContext("2d"); | 40 | var context = canvas.getContext("2d"); |
44 | var alignStroke; | 41 | var alignStroke; |
45 | var resolution; | 42 | var resolution; |
46 | var path; | 43 | var path; |
47 | var pointX; | 44 | var pointX; |
48 | var pointY; | 45 | var pointY; |
49 | var controlPoint1X; | 46 | var controlPoint1X; |
50 | var controlPoint1Y; | 47 | var controlPoint1Y; |
51 | var controlPoint2X; | 48 | var controlPoint2X; |
52 | var controlPoint2Y; | 49 | var controlPoint2Y; |
53 | var stroke; | 50 | var stroke; |
54 | if (window.devicePixelRatio) | 51 | if (window.devicePixelRatio) |
55 | resolution = window.devicePixelRatio; | 52 | resolution = window.devicePixelRatio; |
56 | else | 53 | else |
57 | resolution = 1.0; | 54 | resolution = 1.0; |
58 | resolution *= 0.5 * (canvas.width / kClipperz_PM_UI_Canvas_Features_protectWidth + canvas.height / kClipperz_PM_UI_Canvas_Features_protectHeight); | 55 | resolution *= 0.5 * (canvas.width / kClipperz_PM_UI_Canvas_Features_protectWidth + canvas.height / kClipperz_PM_UI_Canvas_Features_protectHeight); |
59 | 56 | ||
60 | context.save(); | 57 | context.save(); |
61 | context.scale(canvas.width / kClipperz_PM_UI_Canvas_Features_protectWidth, canvas.height / kClipperz_PM_UI_Canvas_Features_protectHeight); | 58 | context.scale(canvas.width / kClipperz_PM_UI_Canvas_Features_protectWidth, canvas.height / kClipperz_PM_UI_Canvas_Features_protectHeight); |
62 | context.clearRect(0.0, 0.0, kClipperz_PM_UI_Canvas_Features_protectWidth, kClipperz_PM_UI_Canvas_Features_protectHeight); | 59 | context.clearRect(0.0, 0.0, kClipperz_PM_UI_Canvas_Features_protectWidth, kClipperz_PM_UI_Canvas_Features_protectHeight); |
63 | 60 | ||
64 | // Layer 1 | 61 | // Layer 1 |
65 | 62 | ||
66 | alignStroke = 0.0; | 63 | alignStroke = 0.0; |
67 | context.beginPath(); | 64 | context.beginPath(); |
68 | pointX = 38.5; | 65 | pointX = 38.5; |
69 | pointY = 36.0; | 66 | pointY = 36.0; |
70 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; | 67 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; |
71 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; | 68 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; |
72 | context.moveTo(pointX, pointY); | 69 | context.moveTo(pointX, pointY); |
73 | pointX = 37.068; | 70 | pointX = 37.068; |
74 | pointY = 38.816; | 71 | pointY = 38.816; |
75 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; | 72 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; |
76 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; | 73 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; |
77 | controlPoint1X = 37.41; | 74 | controlPoint1X = 37.41; |
78 | controlPoint1Y = 36.234; | 75 | controlPoint1Y = 36.234; |
79 | controlPoint1X = (Math.round(resolution * controlPoint1X + alignStroke) - alignStroke) / resolution; | 76 | controlPoint1X = (Math.round(resolution * controlPoint1X + alignStroke) - alignStroke) / resolution; |
80 | controlPoint1Y = (Math.round(resolution * controlPoint1Y + alignStroke) - alignStroke) / resolution; | 77 | controlPoint1Y = (Math.round(resolution * controlPoint1Y + alignStroke) - alignStroke) / resolution; |
81 | controlPoint2X = 37.175; | 78 | controlPoint2X = 37.175; |
82 | controlPoint2Y = 37.907; | 79 | controlPoint2Y = 37.907; |
83 | controlPoint2X = (Math.round(resolution * controlPoint2X + alignStroke) - alignStroke) / resolution; | 80 | controlPoint2X = (Math.round(resolution * controlPoint2X + alignStroke) - alignStroke) / resolution; |
84 | controlPoint2Y = (Math.round(resolution * controlPoint2Y + alignStroke) - alignStroke) / resolution; | 81 | controlPoint2Y = (Math.round(resolution * controlPoint2Y + alignStroke) - alignStroke) / resolution; |
85 | context.bezierCurveTo(controlPoint1X, controlPoint1Y, controlPoint2X, controlPoint2Y, pointX, pointY); | 82 | context.bezierCurveTo(controlPoint1X, controlPoint1Y, controlPoint2X, controlPoint2Y, pointX, pointY); |
86 | pointX = 37.031; | 83 | pointX = 37.031; |
87 | pointY = 40.802; | 84 | pointY = 40.802; |
88 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; | 85 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; |
89 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; | 86 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; |
90 | controlPoint1X = 36.991; | 87 | controlPoint1X = 36.991; |
91 | controlPoint1Y = 39.474; | 88 | controlPoint1Y = 39.474; |
92 | controlPoint1X = (Math.round(resolution * controlPoint1X + alignStroke) - alignStroke) / resolution; | 89 | controlPoint1X = (Math.round(resolution * controlPoint1X + alignStroke) - alignStroke) / resolution; |
93 | controlPoint1Y = (Math.round(resolution * controlPoint1Y + alignStroke) - alignStroke) / resolution; | 90 | controlPoint1Y = (Math.round(resolution * controlPoint1Y + alignStroke) - alignStroke) / resolution; |
94 | controlPoint2X = 36.98; | 91 | controlPoint2X = 36.98; |
95 | controlPoint2Y = 40.141; | 92 | controlPoint2Y = 40.141; |
96 | controlPoint2X = (Math.round(resolution * controlPoint2X + alignStroke) - alignStroke) / resolution; | 93 | controlPoint2X = (Math.round(resolution * controlPoint2X + alignStroke) - alignStroke) / resolution; |
97 | controlPoint2Y = (Math.round(resolution * controlPoint2Y + alignStroke) - alignStroke) / resolution; | 94 | controlPoint2Y = (Math.round(resolution * controlPoint2Y + alignStroke) - alignStroke) / resolution; |
98 | context.bezierCurveTo(controlPoint1X, controlPoint1Y, controlPoint2X, controlPoint2Y, pointX, pointY); | 95 | context.bezierCurveTo(controlPoint1X, controlPoint1Y, controlPoint2X, controlPoint2Y, pointX, pointY); |
99 | pointX = 37.258; | 96 | pointX = 37.258; |
100 | pointY = 42.23; | 97 | pointY = 42.23; |
101 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; | 98 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; |
102 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; | 99 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; |
103 | controlPoint1X = 37.068; | 100 | controlPoint1X = 37.068; |
104 | controlPoint1Y = 41.283; | 101 | controlPoint1Y = 41.283; |
105 | controlPoint1X = (Math.round(resolution * controlPoint1X + alignStroke) - alignStroke) / resolution; | 102 | controlPoint1X = (Math.round(resolution * controlPoint1X + alignStroke) - alignStroke) / resolution; |
106 | controlPoint1Y = (Math.round(resolution * controlPoint1Y + alignStroke) - alignStroke) / resolution; | 103 | controlPoint1Y = (Math.round(resolution * controlPoint1Y + alignStroke) - alignStroke) / resolution; |
107 | controlPoint2X = 37.139; | 104 | controlPoint2X = 37.139; |
108 | controlPoint2Y = 41.762; | 105 | controlPoint2Y = 41.762; |
109 | controlPoint2X = (Math.round(resolution * controlPoint2X + alignStroke) - alignStroke) / resolution; | 106 | controlPoint2X = (Math.round(resolution * controlPoint2X + alignStroke) - alignStroke) / resolution; |
110 | controlPoint2Y = (Math.round(resolution * controlPoint2Y + alignStroke) - alignStroke) / resolution; | 107 | controlPoint2Y = (Math.round(resolution * controlPoint2Y + alignStroke) - alignStroke) / resolution; |
111 | context.bezierCurveTo(controlPoint1X, controlPoint1Y, controlPoint2X, controlPoint2Y, pointX, pointY); | 108 | context.bezierCurveTo(controlPoint1X, controlPoint1Y, controlPoint2X, controlPoint2Y, pointX, pointY); |
112 | pointX = 38.348; | 109 | pointX = 38.348; |
113 | pointY = 43.979; | 110 | pointY = 43.979; |
114 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; | 111 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; |
115 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; | 112 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; |
116 | controlPoint1X = 37.402; | 113 | controlPoint1X = 37.402; |
117 | controlPoint1Y = 42.799; | 114 | controlPoint1Y = 42.799; |
118 | controlPoint1X = (Math.round(resolution * controlPoint1X + alignStroke) - alignStroke) / resolution; | 115 | controlPoint1X = (Math.round(resolution * controlPoint1X + alignStroke) - alignStroke) / resolution; |
119 | controlPoint1Y = (Math.round(resolution * controlPoint1Y + alignStroke) - alignStroke) / resolution; | 116 | controlPoint1Y = (Math.round(resolution * controlPoint1Y + alignStroke) - alignStroke) / resolution; |
120 | controlPoint2X = 37.682; | 117 | controlPoint2X = 37.682; |
diff --git a/frontend/gamma/js/Clipperz/PM/UI/Canvas/Features/share.js b/frontend/gamma/js/Clipperz/PM/UI/Canvas/Features/share.js index 825a17e..8d73cc7 100644 --- a/frontend/gamma/js/Clipperz/PM/UI/Canvas/Features/share.js +++ b/frontend/gamma/js/Clipperz/PM/UI/Canvas/Features/share.js | |||
@@ -1,120 +1,117 @@ | |||
1 | /* | 1 | /* |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | */ | 24 | */ |
28 | 25 | ||
29 | // | 26 | // |
30 | //share.js | 27 | //share.js |
31 | //share | 28 | //share |
32 | // | 29 | // |
33 | //Created by Giulio Cesare Solaroli on 3/7/10 | 30 | //Created by Giulio Cesare Solaroli on 3/7/10 |
34 | //Copyright 2010 Clipperz | 31 | //Copyright 2010 Clipperz |
35 | //This code was generated by Opacity. You may use or modify it in any way. | 32 | //This code was generated by Opacity. You may use or modify it in any way. |
36 | // | 33 | // |
37 | 34 | ||
38 | var kClipperz_PM_UI_Canvas_Features_shareWidth = 76.0; | 35 | var kClipperz_PM_UI_Canvas_Features_shareWidth = 76.0; |
39 | var kClipperz_PM_UI_Canvas_Features_shareHeight = 76.0; | 36 | var kClipperz_PM_UI_Canvas_Features_shareHeight = 76.0; |
40 | 37 | ||
41 | function Clipperz_PM_UI_Canvas_Features_share(canvas, aColor, aBannerColor, aBannerBackgroundColor) | 38 | function Clipperz_PM_UI_Canvas_Features_share(canvas, aColor, aBannerColor, aBannerBackgroundColor) |
42 | { | 39 | { |
43 | var context = canvas.getContext("2d"); | 40 | var context = canvas.getContext("2d"); |
44 | var alignStroke; | 41 | var alignStroke; |
45 | var resolution; | 42 | var resolution; |
46 | var path; | 43 | var path; |
47 | var pointX; | 44 | var pointX; |
48 | var pointY; | 45 | var pointY; |
49 | var controlPoint1X; | 46 | var controlPoint1X; |
50 | var controlPoint1Y; | 47 | var controlPoint1Y; |
51 | var controlPoint2X; | 48 | var controlPoint2X; |
52 | var controlPoint2Y; | 49 | var controlPoint2Y; |
53 | var stroke; | 50 | var stroke; |
54 | if (window.devicePixelRatio) | 51 | if (window.devicePixelRatio) |
55 | resolution = window.devicePixelRatio; | 52 | resolution = window.devicePixelRatio; |
56 | else | 53 | else |
57 | resolution = 1.0; | 54 | resolution = 1.0; |
58 | resolution *= 0.5 * (canvas.width / kClipperz_PM_UI_Canvas_Features_shareWidth + canvas.height / kClipperz_PM_UI_Canvas_Features_shareHeight); | 55 | resolution *= 0.5 * (canvas.width / kClipperz_PM_UI_Canvas_Features_shareWidth + canvas.height / kClipperz_PM_UI_Canvas_Features_shareHeight); |
59 | 56 | ||
60 | context.save(); | 57 | context.save(); |
61 | context.scale(canvas.width / kClipperz_PM_UI_Canvas_Features_shareWidth, canvas.height / kClipperz_PM_UI_Canvas_Features_shareHeight); | 58 | context.scale(canvas.width / kClipperz_PM_UI_Canvas_Features_shareWidth, canvas.height / kClipperz_PM_UI_Canvas_Features_shareHeight); |
62 | context.clearRect(0.0, 0.0, kClipperz_PM_UI_Canvas_Features_shareWidth, kClipperz_PM_UI_Canvas_Features_shareHeight); | 59 | context.clearRect(0.0, 0.0, kClipperz_PM_UI_Canvas_Features_shareWidth, kClipperz_PM_UI_Canvas_Features_shareHeight); |
63 | 60 | ||
64 | // Layer 1 | 61 | // Layer 1 |
65 | 62 | ||
66 | alignStroke = 0.0; | 63 | alignStroke = 0.0; |
67 | context.beginPath(); | 64 | context.beginPath(); |
68 | pointX = 43.179; | 65 | pointX = 43.179; |
69 | pointY = 18.621; | 66 | pointY = 18.621; |
70 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; | 67 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; |
71 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; | 68 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; |
72 | context.moveTo(pointX, pointY); | 69 | context.moveTo(pointX, pointY); |
73 | pointX = 37.163; | 70 | pointX = 37.163; |
74 | pointY = 12.605; | 71 | pointY = 12.605; |
75 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; | 72 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; |
76 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; | 73 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; |
77 | controlPoint1X = 43.179; | 74 | controlPoint1X = 43.179; |
78 | controlPoint1Y = 15.32; | 75 | controlPoint1Y = 15.32; |
79 | controlPoint1X = (Math.round(resolution * controlPoint1X + alignStroke) - alignStroke) / resolution; | 76 | controlPoint1X = (Math.round(resolution * controlPoint1X + alignStroke) - alignStroke) / resolution; |
80 | controlPoint1Y = (Math.round(resolution * controlPoint1Y + alignStroke) - alignStroke) / resolution; | 77 | controlPoint1Y = (Math.round(resolution * controlPoint1Y + alignStroke) - alignStroke) / resolution; |
81 | controlPoint2X = 40.463; | 78 | controlPoint2X = 40.463; |
82 | controlPoint2Y = 12.605; | 79 | controlPoint2Y = 12.605; |
83 | controlPoint2X = (Math.round(resolution * controlPoint2X + alignStroke) - alignStroke) / resolution; | 80 | controlPoint2X = (Math.round(resolution * controlPoint2X + alignStroke) - alignStroke) / resolution; |
84 | controlPoint2Y = (Math.round(resolution * controlPoint2Y + alignStroke) - alignStroke) / resolution; | 81 | controlPoint2Y = (Math.round(resolution * controlPoint2Y + alignStroke) - alignStroke) / resolution; |
85 | context.bezierCurveTo(controlPoint1X, controlPoint1Y, controlPoint2X, controlPoint2Y, pointX, pointY); | 82 | context.bezierCurveTo(controlPoint1X, controlPoint1Y, controlPoint2X, controlPoint2Y, pointX, pointY); |
86 | pointX = 31.147; | 83 | pointX = 31.147; |
87 | pointY = 18.621; | 84 | pointY = 18.621; |
88 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; | 85 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; |
89 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; | 86 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; |
90 | controlPoint1X = 33.863; | 87 | controlPoint1X = 33.863; |
91 | controlPoint1Y = 12.605; | 88 | controlPoint1Y = 12.605; |
92 | controlPoint1X = (Math.round(resolution * controlPoint1X + alignStroke) - alignStroke) / resolution; | 89 | controlPoint1X = (Math.round(resolution * controlPoint1X + alignStroke) - alignStroke) / resolution; |
93 | controlPoint1Y = (Math.round(resolution * controlPoint1Y + alignStroke) - alignStroke) / resolution; | 90 | controlPoint1Y = (Math.round(resolution * controlPoint1Y + alignStroke) - alignStroke) / resolution; |
94 | controlPoint2X = 31.147; | 91 | controlPoint2X = 31.147; |
95 | controlPoint2Y = 15.32; | 92 | controlPoint2Y = 15.32; |
96 | controlPoint2X = (Math.round(resolution * controlPoint2X + alignStroke) - alignStroke) / resolution; | 93 | controlPoint2X = (Math.round(resolution * controlPoint2X + alignStroke) - alignStroke) / resolution; |
97 | controlPoint2Y = (Math.round(resolution * controlPoint2Y + alignStroke) - alignStroke) / resolution; | 94 | controlPoint2Y = (Math.round(resolution * controlPoint2Y + alignStroke) - alignStroke) / resolution; |
98 | context.bezierCurveTo(controlPoint1X, controlPoint1Y, controlPoint2X, controlPoint2Y, pointX, pointY); | 95 | context.bezierCurveTo(controlPoint1X, controlPoint1Y, controlPoint2X, controlPoint2Y, pointX, pointY); |
99 | pointX = 37.163; | 96 | pointX = 37.163; |
100 | pointY = 24.637; | 97 | pointY = 24.637; |
101 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; | 98 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; |
102 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; | 99 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; |
103 | controlPoint1X = 31.147; | 100 | controlPoint1X = 31.147; |
104 | controlPoint1Y = 21.921; | 101 | controlPoint1Y = 21.921; |
105 | controlPoint1X = (Math.round(resolution * controlPoint1X + alignStroke) - alignStroke) / resolution; | 102 | controlPoint1X = (Math.round(resolution * controlPoint1X + alignStroke) - alignStroke) / resolution; |
106 | controlPoint1Y = (Math.round(resolution * controlPoint1Y + alignStroke) - alignStroke) / resolution; | 103 | controlPoint1Y = (Math.round(resolution * controlPoint1Y + alignStroke) - alignStroke) / resolution; |
107 | controlPoint2X = 33.863; | 104 | controlPoint2X = 33.863; |
108 | controlPoint2Y = 24.637; | 105 | controlPoint2Y = 24.637; |
109 | controlPoint2X = (Math.round(resolution * controlPoint2X + alignStroke) - alignStroke) / resolution; | 106 | controlPoint2X = (Math.round(resolution * controlPoint2X + alignStroke) - alignStroke) / resolution; |
110 | controlPoint2Y = (Math.round(resolution * controlPoint2Y + alignStroke) - alignStroke) / resolution; | 107 | controlPoint2Y = (Math.round(resolution * controlPoint2Y + alignStroke) - alignStroke) / resolution; |
111 | context.bezierCurveTo(controlPoint1X, controlPoint1Y, controlPoint2X, controlPoint2Y, pointX, pointY); | 108 | context.bezierCurveTo(controlPoint1X, controlPoint1Y, controlPoint2X, controlPoint2Y, pointX, pointY); |
112 | pointX = 43.179; | 109 | pointX = 43.179; |
113 | pointY = 18.621; | 110 | pointY = 18.621; |
114 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; | 111 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; |
115 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; | 112 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; |
116 | controlPoint1X = 40.463; | 113 | controlPoint1X = 40.463; |
117 | controlPoint1Y = 24.637; | 114 | controlPoint1Y = 24.637; |
118 | controlPoint1X = (Math.round(resolution * controlPoint1X + alignStroke) - alignStroke) / resolution; | 115 | controlPoint1X = (Math.round(resolution * controlPoint1X + alignStroke) - alignStroke) / resolution; |
119 | controlPoint1Y = (Math.round(resolution * controlPoint1Y + alignStroke) - alignStroke) / resolution; | 116 | controlPoint1Y = (Math.round(resolution * controlPoint1Y + alignStroke) - alignStroke) / resolution; |
120 | controlPoint2X = 43.179; | 117 | controlPoint2X = 43.179; |
diff --git a/frontend/gamma/js/Clipperz/PM/UI/Canvas/Features/store.js b/frontend/gamma/js/Clipperz/PM/UI/Canvas/Features/store.js index eaeb7f1..572d9be 100644 --- a/frontend/gamma/js/Clipperz/PM/UI/Canvas/Features/store.js +++ b/frontend/gamma/js/Clipperz/PM/UI/Canvas/Features/store.js | |||
@@ -1,120 +1,117 @@ | |||
1 | /* | 1 | /* |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | */ | 24 | */ |
28 | 25 | ||
29 | // | 26 | // |
30 | //store.js | 27 | //store.js |
31 | //store | 28 | //store |
32 | // | 29 | // |
33 | //Created by Giulio Cesare Solaroli on 3/7/10 | 30 | //Created by Giulio Cesare Solaroli on 3/7/10 |
34 | //Copyright 2010 Clipperz | 31 | //Copyright 2010 Clipperz |
35 | //This code was generated by Opacity. You may use or modify it in any way. | 32 | //This code was generated by Opacity. You may use or modify it in any way. |
36 | // | 33 | // |
37 | 34 | ||
38 | var kClipperz_PM_UI_Canvas_Features_storeWidth = 76.0; | 35 | var kClipperz_PM_UI_Canvas_Features_storeWidth = 76.0; |
39 | var kClipperz_PM_UI_Canvas_Features_storeHeight = 76.0; | 36 | var kClipperz_PM_UI_Canvas_Features_storeHeight = 76.0; |
40 | 37 | ||
41 | function Clipperz_PM_UI_Canvas_Features_store(canvas, aColor, aBannerColor, aBannerBackgroundColor) | 38 | function Clipperz_PM_UI_Canvas_Features_store(canvas, aColor, aBannerColor, aBannerBackgroundColor) |
42 | { | 39 | { |
43 | var context = canvas.getContext("2d"); | 40 | var context = canvas.getContext("2d"); |
44 | var alignStroke; | 41 | var alignStroke; |
45 | var resolution; | 42 | var resolution; |
46 | var path; | 43 | var path; |
47 | var pointX; | 44 | var pointX; |
48 | var pointY; | 45 | var pointY; |
49 | if (window.devicePixelRatio) | 46 | if (window.devicePixelRatio) |
50 | resolution = window.devicePixelRatio; | 47 | resolution = window.devicePixelRatio; |
51 | else | 48 | else |
52 | resolution = 1.0; | 49 | resolution = 1.0; |
53 | resolution *= 0.5 * (canvas.width / kClipperz_PM_UI_Canvas_Features_storeWidth + canvas.height / kClipperz_PM_UI_Canvas_Features_storeHeight); | 50 | resolution *= 0.5 * (canvas.width / kClipperz_PM_UI_Canvas_Features_storeWidth + canvas.height / kClipperz_PM_UI_Canvas_Features_storeHeight); |
54 | 51 | ||
55 | context.save(); | 52 | context.save(); |
56 | context.scale(canvas.width / kClipperz_PM_UI_Canvas_Features_storeWidth, canvas.height / kClipperz_PM_UI_Canvas_Features_storeHeight); | 53 | context.scale(canvas.width / kClipperz_PM_UI_Canvas_Features_storeWidth, canvas.height / kClipperz_PM_UI_Canvas_Features_storeHeight); |
57 | context.clearRect(0.0, 0.0, kClipperz_PM_UI_Canvas_Features_storeWidth, kClipperz_PM_UI_Canvas_Features_storeHeight); | 54 | context.clearRect(0.0, 0.0, kClipperz_PM_UI_Canvas_Features_storeWidth, kClipperz_PM_UI_Canvas_Features_storeHeight); |
58 | 55 | ||
59 | // Layer 1 | 56 | // Layer 1 |
60 | 57 | ||
61 | alignStroke = 0.0; | 58 | alignStroke = 0.0; |
62 | context.beginPath(); | 59 | context.beginPath(); |
63 | pointX = 27.0; | 60 | pointX = 27.0; |
64 | pointY = 29.5; | 61 | pointY = 29.5; |
65 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; | 62 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; |
66 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; | 63 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; |
67 | context.moveTo(pointX, pointY); | 64 | context.moveTo(pointX, pointY); |
68 | pointX = 27.0; | 65 | pointX = 27.0; |
69 | pointY = 24.5; | 66 | pointY = 24.5; |
70 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; | 67 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; |
71 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; | 68 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; |
72 | context.lineTo(pointX, pointY); | 69 | context.lineTo(pointX, pointY); |
73 | pointX = 22.0; | 70 | pointX = 22.0; |
74 | pointY = 24.5; | 71 | pointY = 24.5; |
75 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; | 72 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; |
76 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; | 73 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; |
77 | context.lineTo(pointX, pointY); | 74 | context.lineTo(pointX, pointY); |
78 | pointX = 22.0; | 75 | pointX = 22.0; |
79 | pointY = 29.5; | 76 | pointY = 29.5; |
80 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; | 77 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; |
81 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; | 78 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; |
82 | context.lineTo(pointX, pointY); | 79 | context.lineTo(pointX, pointY); |
83 | pointX = 27.0; | 80 | pointX = 27.0; |
84 | pointY = 29.5; | 81 | pointY = 29.5; |
85 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; | 82 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; |
86 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; | 83 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; |
87 | context.lineTo(pointX, pointY); | 84 | context.lineTo(pointX, pointY); |
88 | context.closePath(); | 85 | context.closePath(); |
89 | context.fillStyle = aColor; | 86 | context.fillStyle = aColor; |
90 | context.fill(); | 87 | context.fill(); |
91 | 88 | ||
92 | alignStroke = 0.0; | 89 | alignStroke = 0.0; |
93 | context.beginPath(); | 90 | context.beginPath(); |
94 | pointX = 54.0; | 91 | pointX = 54.0; |
95 | pointY = 29.5; | 92 | pointY = 29.5; |
96 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; | 93 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; |
97 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; | 94 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; |
98 | context.moveTo(pointX, pointY); | 95 | context.moveTo(pointX, pointY); |
99 | pointX = 54.0; | 96 | pointX = 54.0; |
100 | pointY = 24.5; | 97 | pointY = 24.5; |
101 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; | 98 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; |
102 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; | 99 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; |
103 | context.lineTo(pointX, pointY); | 100 | context.lineTo(pointX, pointY); |
104 | pointX = 29.0; | 101 | pointX = 29.0; |
105 | pointY = 24.5; | 102 | pointY = 24.5; |
106 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; | 103 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; |
107 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; | 104 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; |
108 | context.lineTo(pointX, pointY); | 105 | context.lineTo(pointX, pointY); |
109 | pointX = 29.0; | 106 | pointX = 29.0; |
110 | pointY = 29.5; | 107 | pointY = 29.5; |
111 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; | 108 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; |
112 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; | 109 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; |
113 | context.lineTo(pointX, pointY); | 110 | context.lineTo(pointX, pointY); |
114 | pointX = 54.0; | 111 | pointX = 54.0; |
115 | pointY = 29.5; | 112 | pointY = 29.5; |
116 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; | 113 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; |
117 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; | 114 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; |
118 | context.lineTo(pointX, pointY); | 115 | context.lineTo(pointX, pointY); |
119 | context.closePath(); | 116 | context.closePath(); |
120 | context.fillStyle = aColor; | 117 | context.fillStyle = aColor; |
diff --git a/frontend/gamma/js/Clipperz/PM/UI/Canvas/GraphicFunctions.js b/frontend/gamma/js/Clipperz/PM/UI/Canvas/GraphicFunctions.js index 5de2e96..b9443bd 100644 --- a/frontend/gamma/js/Clipperz/PM/UI/Canvas/GraphicFunctions.js +++ b/frontend/gamma/js/Clipperz/PM/UI/Canvas/GraphicFunctions.js | |||
@@ -1,68 +1,65 @@ | |||
1 | /* | 1 | /* |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | */ | 24 | */ |
28 | 25 | ||
29 | Clipperz.Base.module('Clipperz.PM.UI.Canvas'); | 26 | Clipperz.Base.module('Clipperz.PM.UI.Canvas'); |
30 | 27 | ||
31 | MochiKit.Base.update(Clipperz.PM.UI.Canvas , { | 28 | MochiKit.Base.update(Clipperz.PM.UI.Canvas , { |
32 | 'marks': { | 29 | 'marks': { |
33 | '!':Clipperz_PM_UI_Canvas_Marks_exclamationMark, | 30 | '!':Clipperz_PM_UI_Canvas_Marks_exclamationMark, |
34 | '?':Clipperz_PM_UI_Canvas_Marks_questionMark, | 31 | '?':Clipperz_PM_UI_Canvas_Marks_questionMark, |
35 | 'i':Clipperz_PM_UI_Canvas_Marks_info | 32 | 'i':Clipperz_PM_UI_Canvas_Marks_info |
36 | }, | 33 | }, |
37 | 34 | ||
38 | 'features': { | 35 | 'features': { |
39 | 'store': Clipperz_PM_UI_Canvas_Features_store, | 36 | 'store': Clipperz_PM_UI_Canvas_Features_store, |
40 | 'protect': Clipperz_PM_UI_Canvas_Features_protect, | 37 | 'protect': Clipperz_PM_UI_Canvas_Features_protect, |
41 | 'directLogin':Clipperz_PM_UI_Canvas_Features_directLogin, | 38 | 'directLogin':Clipperz_PM_UI_Canvas_Features_directLogin, |
42 | 'share': Clipperz_PM_UI_Canvas_Features_share | 39 | 'share': Clipperz_PM_UI_Canvas_Features_share |
43 | }, | 40 | }, |
44 | 41 | ||
45 | 'tips': { | 42 | 'tips': { |
46 | 'open': Clipperz_PM_UI_Canvas_Tips_open, | 43 | 'open': Clipperz_PM_UI_Canvas_Tips_open, |
47 | 'close': Clipperz_PM_UI_Canvas_Tips_close | 44 | 'close': Clipperz_PM_UI_Canvas_Tips_close |
48 | }, | 45 | }, |
49 | 46 | ||
50 | 'star': { | 47 | 'star': { |
51 | 'normal': Clipperz_PM_UI_Canvas_Star_normal | 48 | 'normal': Clipperz_PM_UI_Canvas_Star_normal |
52 | }, | 49 | }, |
53 | 50 | ||
54 | 'coverActions': { | 51 | 'coverActions': { |
55 | 'look': Clipperz_PM_UI_Canvas_CoverActions_look, | 52 | 'look': Clipperz_PM_UI_Canvas_CoverActions_look, |
56 | 'download': Clipperz_PM_UI_Canvas_CoverActions_download | 53 | 'download': Clipperz_PM_UI_Canvas_CoverActions_download |
57 | }, | 54 | }, |
58 | 55 | ||
59 | 'registerButton': { | 56 | 'registerButton': { |
60 | 'normal': Clipperz_PM_UI_Canvas_RegisterButton_normal | 57 | 'normal': Clipperz_PM_UI_Canvas_RegisterButton_normal |
61 | }, | 58 | }, |
62 | 59 | ||
63 | 'logo': { | 60 | 'logo': { |
64 | 'normal': Clipperz_PM_UI_Canvas_Logo_normal | 61 | 'normal': Clipperz_PM_UI_Canvas_Logo_normal |
65 | }, | 62 | }, |
66 | 63 | ||
67 | __syntaxFix__: "syntax fix" | 64 | __syntaxFix__: "syntax fix" |
68 | }); | 65 | }); |
diff --git a/frontend/gamma/js/Clipperz/PM/UI/Canvas/Logo/normal.js b/frontend/gamma/js/Clipperz/PM/UI/Canvas/Logo/normal.js index e0bea36..de9d3aa 100644 --- a/frontend/gamma/js/Clipperz/PM/UI/Canvas/Logo/normal.js +++ b/frontend/gamma/js/Clipperz/PM/UI/Canvas/Logo/normal.js | |||
@@ -1,65 +1,62 @@ | |||
1 | /* | 1 | /* |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | */ | 24 | */ |
28 | 25 | ||
29 | // | 26 | // |
30 | //normal.js | 27 | //normal.js |
31 | //normal | 28 | //normal |
32 | // | 29 | // |
33 | //Created by Giulio Cesare Solaroli on 3/25/10 | 30 | //Created by Giulio Cesare Solaroli on 3/25/10 |
34 | //Copyright 2010 Clipperz | 31 | //Copyright 2010 Clipperz |
35 | //This code was generated by Opacity. You may use or modify it in any way. | 32 | //This code was generated by Opacity. You may use or modify it in any way. |
36 | // | 33 | // |
37 | 34 | ||
38 | var kClipperz_PM_UI_Canvas_Logo_normalWidth = 150.0; | 35 | var kClipperz_PM_UI_Canvas_Logo_normalWidth = 150.0; |
39 | var kClipperz_PM_UI_Canvas_Logo_normalHeight = 39.0; | 36 | var kClipperz_PM_UI_Canvas_Logo_normalHeight = 39.0; |
40 | 37 | ||
41 | function Clipperz_PM_UI_Canvas_Logo_normal(canvas, aMainColor, aSecondaryColor) | 38 | function Clipperz_PM_UI_Canvas_Logo_normal(canvas, aMainColor, aSecondaryColor) |
42 | { | 39 | { |
43 | var context = canvas.getContext("2d"); | 40 | var context = canvas.getContext("2d"); |
44 | var string; | 41 | var string; |
45 | 42 | ||
46 | context.save(); | 43 | context.save(); |
47 | context.scale(canvas.width / kClipperz_PM_UI_Canvas_Logo_normalWidth, canvas.height / kClipperz_PM_UI_Canvas_Logo_normalHeight); | 44 | context.scale(canvas.width / kClipperz_PM_UI_Canvas_Logo_normalWidth, canvas.height / kClipperz_PM_UI_Canvas_Logo_normalHeight); |
48 | context.clearRect(0.0, 0.0, kClipperz_PM_UI_Canvas_Logo_normalWidth, kClipperz_PM_UI_Canvas_Logo_normalHeight); | 45 | context.clearRect(0.0, 0.0, kClipperz_PM_UI_Canvas_Logo_normalWidth, kClipperz_PM_UI_Canvas_Logo_normalHeight); |
49 | 46 | ||
50 | // clipper… | 47 | // clipper… |
51 | 48 | ||
52 | string = "clipper"; | 49 | string = "clipper"; |
53 | context.font = "38.0pt Helvetica-Bold"; | 50 | context.font = "38.0pt Helvetica-Bold"; |
54 | context.fillStyle = aMainColor; | 51 | context.fillStyle = aMainColor; |
55 | context.fillText(string, -9.0, -9.0); | 52 | context.fillText(string, -9.0, -9.0); |
56 | 53 | ||
57 | // …z | 54 | // …z |
58 | 55 | ||
59 | string = "z"; | 56 | string = "z"; |
60 | context.font = "38.0pt Helvetica-Bold"; | 57 | context.font = "38.0pt Helvetica-Bold"; |
61 | context.fillStyle = aSecondaryColor; | 58 | context.fillStyle = aSecondaryColor; |
62 | context.fillText(string, 125.0, -9.0); | 59 | context.fillText(string, 125.0, -9.0); |
63 | 60 | ||
64 | context.restore(); | 61 | context.restore(); |
65 | } | 62 | } |
diff --git a/frontend/gamma/js/Clipperz/PM/UI/Canvas/Marks/exclamationMark.js b/frontend/gamma/js/Clipperz/PM/UI/Canvas/Marks/exclamationMark.js index f3ae04d..02f2f80 100644 --- a/frontend/gamma/js/Clipperz/PM/UI/Canvas/Marks/exclamationMark.js +++ b/frontend/gamma/js/Clipperz/PM/UI/Canvas/Marks/exclamationMark.js | |||
@@ -1,120 +1,117 @@ | |||
1 | /* | 1 | /* |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | */ | 24 | */ |
28 | 25 | ||
29 | // | 26 | // |
30 | //exclamationMark.js | 27 | //exclamationMark.js |
31 | //! | 28 | //! |
32 | // | 29 | // |
33 | //Created by Giulio Cesare Solaroli on 3/7/10 | 30 | //Created by Giulio Cesare Solaroli on 3/7/10 |
34 | //Copyright 2010 Clipperz | 31 | //Copyright 2010 Clipperz |
35 | //This code was generated by Opacity. You may use or modify it in any way. | 32 | //This code was generated by Opacity. You may use or modify it in any way. |
36 | // | 33 | // |
37 | 34 | ||
38 | var kClipperz_PM_UI_Canvas_Marks_exclamationMarkWidth = 50.0; | 35 | var kClipperz_PM_UI_Canvas_Marks_exclamationMarkWidth = 50.0; |
39 | var kClipperz_PM_UI_Canvas_Marks_exclamationMarkHeight = 50.0; | 36 | var kClipperz_PM_UI_Canvas_Marks_exclamationMarkHeight = 50.0; |
40 | 37 | ||
41 | function Clipperz_PM_UI_Canvas_Marks_exclamationMark(canvas, aColor) | 38 | function Clipperz_PM_UI_Canvas_Marks_exclamationMark(canvas, aColor) |
42 | { | 39 | { |
43 | var context = canvas.getContext("2d"); | 40 | var context = canvas.getContext("2d"); |
44 | var alignStroke; | 41 | var alignStroke; |
45 | var resolution; | 42 | var resolution; |
46 | var path; | 43 | var path; |
47 | var pointX; | 44 | var pointX; |
48 | var pointY; | 45 | var pointY; |
49 | var controlPoint1X; | 46 | var controlPoint1X; |
50 | var controlPoint1Y; | 47 | var controlPoint1Y; |
51 | var controlPoint2X; | 48 | var controlPoint2X; |
52 | var controlPoint2Y; | 49 | var controlPoint2Y; |
53 | if (window.devicePixelRatio) | 50 | if (window.devicePixelRatio) |
54 | resolution = window.devicePixelRatio; | 51 | resolution = window.devicePixelRatio; |
55 | else | 52 | else |
56 | resolution = 1.0; | 53 | resolution = 1.0; |
57 | resolution *= 0.5 * (canvas.width / kClipperz_PM_UI_Canvas_Marks_exclamationMarkWidth + canvas.height / kClipperz_PM_UI_Canvas_Marks_exclamationMarkHeight); | 54 | resolution *= 0.5 * (canvas.width / kClipperz_PM_UI_Canvas_Marks_exclamationMarkWidth + canvas.height / kClipperz_PM_UI_Canvas_Marks_exclamationMarkHeight); |
58 | 55 | ||
59 | context.save(); | 56 | context.save(); |
60 | context.scale(canvas.width / kClipperz_PM_UI_Canvas_Marks_exclamationMarkWidth, canvas.height / kClipperz_PM_UI_Canvas_Marks_exclamationMarkHeight); | 57 | context.scale(canvas.width / kClipperz_PM_UI_Canvas_Marks_exclamationMarkWidth, canvas.height / kClipperz_PM_UI_Canvas_Marks_exclamationMarkHeight); |
61 | context.clearRect(0.0, 0.0, kClipperz_PM_UI_Canvas_Marks_exclamationMarkWidth, kClipperz_PM_UI_Canvas_Marks_exclamationMarkHeight); | 58 | context.clearRect(0.0, 0.0, kClipperz_PM_UI_Canvas_Marks_exclamationMarkWidth, kClipperz_PM_UI_Canvas_Marks_exclamationMarkHeight); |
62 | 59 | ||
63 | // Layer 1 | 60 | // Layer 1 |
64 | 61 | ||
65 | alignStroke = 0.0; | 62 | alignStroke = 0.0; |
66 | context.beginPath(); | 63 | context.beginPath(); |
67 | pointX = 26.499; | 64 | pointX = 26.499; |
68 | pointY = 10.848; | 65 | pointY = 10.848; |
69 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; | 66 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; |
70 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; | 67 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; |
71 | context.moveTo(pointX, pointY); | 68 | context.moveTo(pointX, pointY); |
72 | pointX = 20.887; | 69 | pointX = 20.887; |
73 | pointY = 11.584; | 70 | pointY = 11.584; |
74 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; | 71 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; |
75 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; | 72 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; |
76 | controlPoint1X = 25.395; | 73 | controlPoint1X = 25.395; |
77 | controlPoint1Y = 10.802; | 74 | controlPoint1Y = 10.802; |
78 | controlPoint1X = (Math.round(resolution * controlPoint1X + alignStroke) - alignStroke) / resolution; | 75 | controlPoint1X = (Math.round(resolution * controlPoint1X + alignStroke) - alignStroke) / resolution; |
79 | controlPoint1Y = (Math.round(resolution * controlPoint1Y + alignStroke) - alignStroke) / resolution; | 76 | controlPoint1Y = (Math.round(resolution * controlPoint1Y + alignStroke) - alignStroke) / resolution; |
80 | controlPoint2X = 22.175; | 77 | controlPoint2X = 22.175; |
81 | controlPoint2Y = 11.078; | 78 | controlPoint2Y = 11.078; |
82 | controlPoint2X = (Math.round(resolution * controlPoint2X + alignStroke) - alignStroke) / resolution; | 79 | controlPoint2X = (Math.round(resolution * controlPoint2X + alignStroke) - alignStroke) / resolution; |
83 | controlPoint2Y = (Math.round(resolution * controlPoint2Y + alignStroke) - alignStroke) / resolution; | 80 | controlPoint2Y = (Math.round(resolution * controlPoint2Y + alignStroke) - alignStroke) / resolution; |
84 | context.bezierCurveTo(controlPoint1X, controlPoint1Y, controlPoint2X, controlPoint2Y, pointX, pointY); | 81 | context.bezierCurveTo(controlPoint1X, controlPoint1Y, controlPoint2X, controlPoint2Y, pointX, pointY); |
85 | pointX = 20.013; | 82 | pointX = 20.013; |
86 | pointY = 13.194; | 83 | pointY = 13.194; |
87 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; | 84 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; |
88 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; | 85 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; |
89 | controlPoint1X = 20.335; | 86 | controlPoint1X = 20.335; |
90 | controlPoint1Y = 11.814; | 87 | controlPoint1Y = 11.814; |
91 | controlPoint1X = (Math.round(resolution * controlPoint1X + alignStroke) - alignStroke) / resolution; | 88 | controlPoint1X = (Math.round(resolution * controlPoint1X + alignStroke) - alignStroke) / resolution; |
92 | controlPoint1Y = (Math.round(resolution * controlPoint1Y + alignStroke) - alignStroke) / resolution; | 89 | controlPoint1Y = (Math.round(resolution * controlPoint1Y + alignStroke) - alignStroke) / resolution; |
93 | controlPoint2X = 19.921; | 90 | controlPoint2X = 19.921; |
94 | controlPoint2Y = 12.826; | 91 | controlPoint2Y = 12.826; |
95 | controlPoint2X = (Math.round(resolution * controlPoint2X + alignStroke) - alignStroke) / resolution; | 92 | controlPoint2X = (Math.round(resolution * controlPoint2X + alignStroke) - alignStroke) / resolution; |
96 | controlPoint2Y = (Math.round(resolution * controlPoint2Y + alignStroke) - alignStroke) / resolution; | 93 | controlPoint2Y = (Math.round(resolution * controlPoint2Y + alignStroke) - alignStroke) / resolution; |
97 | context.bezierCurveTo(controlPoint1X, controlPoint1Y, controlPoint2X, controlPoint2Y, pointX, pointY); | 94 | context.bezierCurveTo(controlPoint1X, controlPoint1Y, controlPoint2X, controlPoint2Y, pointX, pointY); |
98 | pointX = 23.049; | 95 | pointX = 23.049; |
99 | pointY = 28.788; | 96 | pointY = 28.788; |
100 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; | 97 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; |
101 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; | 98 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; |
102 | controlPoint1X = 20.243; | 99 | controlPoint1X = 20.243; |
103 | controlPoint1Y = 15.448; | 100 | controlPoint1Y = 15.448; |
104 | controlPoint1X = (Math.round(resolution * controlPoint1X + alignStroke) - alignStroke) / resolution; | 101 | controlPoint1X = (Math.round(resolution * controlPoint1X + alignStroke) - alignStroke) / resolution; |
105 | controlPoint1Y = (Math.round(resolution * controlPoint1Y + alignStroke) - alignStroke) / resolution; | 102 | controlPoint1Y = (Math.round(resolution * controlPoint1Y + alignStroke) - alignStroke) / resolution; |
106 | controlPoint2X = 22.589; | 103 | controlPoint2X = 22.589; |
107 | controlPoint2Y = 26.35; | 104 | controlPoint2Y = 26.35; |
108 | controlPoint2X = (Math.round(resolution * controlPoint2X + alignStroke) - alignStroke) / resolution; | 105 | controlPoint2X = (Math.round(resolution * controlPoint2X + alignStroke) - alignStroke) / resolution; |
109 | controlPoint2Y = (Math.round(resolution * controlPoint2Y + alignStroke) - alignStroke) / resolution; | 106 | controlPoint2Y = (Math.round(resolution * controlPoint2Y + alignStroke) - alignStroke) / resolution; |
110 | context.bezierCurveTo(controlPoint1X, controlPoint1Y, controlPoint2X, controlPoint2Y, pointX, pointY); | 107 | context.bezierCurveTo(controlPoint1X, controlPoint1Y, controlPoint2X, controlPoint2Y, pointX, pointY); |
111 | pointX = 25.027; | 108 | pointX = 25.027; |
112 | pointY = 29.156; | 109 | pointY = 29.156; |
113 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; | 110 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; |
114 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; | 111 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; |
115 | controlPoint1X = 23.279; | 112 | controlPoint1X = 23.279; |
116 | controlPoint1Y = 29.018; | 113 | controlPoint1Y = 29.018; |
117 | controlPoint1X = (Math.round(resolution * controlPoint1X + alignStroke) - alignStroke) / resolution; | 114 | controlPoint1X = (Math.round(resolution * controlPoint1X + alignStroke) - alignStroke) / resolution; |
118 | controlPoint1Y = (Math.round(resolution * controlPoint1Y + alignStroke) - alignStroke) / resolution; | 115 | controlPoint1Y = (Math.round(resolution * controlPoint1Y + alignStroke) - alignStroke) / resolution; |
119 | controlPoint2X = 24.705; | 116 | controlPoint2X = 24.705; |
120 | controlPoint2Y = 29.202; | 117 | controlPoint2Y = 29.202; |
diff --git a/frontend/gamma/js/Clipperz/PM/UI/Canvas/Marks/info.js b/frontend/gamma/js/Clipperz/PM/UI/Canvas/Marks/info.js index adab74f..fad5c10 100644 --- a/frontend/gamma/js/Clipperz/PM/UI/Canvas/Marks/info.js +++ b/frontend/gamma/js/Clipperz/PM/UI/Canvas/Marks/info.js | |||
@@ -1,120 +1,117 @@ | |||
1 | /* | 1 | /* |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | */ | 24 | */ |
28 | 25 | ||
29 | // | 26 | // |
30 | //info.js | 27 | //info.js |
31 | //i | 28 | //i |
32 | // | 29 | // |
33 | //Created by Giulio Cesare Solaroli on 3/7/10 | 30 | //Created by Giulio Cesare Solaroli on 3/7/10 |
34 | //Copyright 2010 Clipperz | 31 | //Copyright 2010 Clipperz |
35 | //This code was generated by Opacity. You may use or modify it in any way. | 32 | //This code was generated by Opacity. You may use or modify it in any way. |
36 | // | 33 | // |
37 | 34 | ||
38 | var kClipperz_PM_UI_Canvas_Marks_infoWidth = 50.0; | 35 | var kClipperz_PM_UI_Canvas_Marks_infoWidth = 50.0; |
39 | var kClipperz_PM_UI_Canvas_Marks_infoHeight = 50.0; | 36 | var kClipperz_PM_UI_Canvas_Marks_infoHeight = 50.0; |
40 | 37 | ||
41 | function Clipperz_PM_UI_Canvas_Marks_info(canvas, aColor) | 38 | function Clipperz_PM_UI_Canvas_Marks_info(canvas, aColor) |
42 | { | 39 | { |
43 | var context = canvas.getContext("2d"); | 40 | var context = canvas.getContext("2d"); |
44 | var alignStroke; | 41 | var alignStroke; |
45 | var resolution; | 42 | var resolution; |
46 | var path; | 43 | var path; |
47 | var pointX; | 44 | var pointX; |
48 | var pointY; | 45 | var pointY; |
49 | var controlPoint1X; | 46 | var controlPoint1X; |
50 | var controlPoint1Y; | 47 | var controlPoint1Y; |
51 | var controlPoint2X; | 48 | var controlPoint2X; |
52 | var controlPoint2Y; | 49 | var controlPoint2Y; |
53 | var color; | 50 | var color; |
54 | if (window.devicePixelRatio) | 51 | if (window.devicePixelRatio) |
55 | resolution = window.devicePixelRatio; | 52 | resolution = window.devicePixelRatio; |
56 | else | 53 | else |
57 | resolution = 1.0; | 54 | resolution = 1.0; |
58 | resolution *= 0.5 * (canvas.width / kClipperz_PM_UI_Canvas_Marks_infoWidth + canvas.height / kClipperz_PM_UI_Canvas_Marks_infoHeight); | 55 | resolution *= 0.5 * (canvas.width / kClipperz_PM_UI_Canvas_Marks_infoWidth + canvas.height / kClipperz_PM_UI_Canvas_Marks_infoHeight); |
59 | 56 | ||
60 | context.save(); | 57 | context.save(); |
61 | context.scale(canvas.width / kClipperz_PM_UI_Canvas_Marks_infoWidth, canvas.height / kClipperz_PM_UI_Canvas_Marks_infoHeight); | 58 | context.scale(canvas.width / kClipperz_PM_UI_Canvas_Marks_infoWidth, canvas.height / kClipperz_PM_UI_Canvas_Marks_infoHeight); |
62 | context.clearRect(0.0, 0.0, kClipperz_PM_UI_Canvas_Marks_infoWidth, kClipperz_PM_UI_Canvas_Marks_infoHeight); | 59 | context.clearRect(0.0, 0.0, kClipperz_PM_UI_Canvas_Marks_infoWidth, kClipperz_PM_UI_Canvas_Marks_infoHeight); |
63 | 60 | ||
64 | // Layer 1 | 61 | // Layer 1 |
65 | 62 | ||
66 | alignStroke = 0.0; | 63 | alignStroke = 0.0; |
67 | context.beginPath(); | 64 | context.beginPath(); |
68 | pointX = 30.253; | 65 | pointX = 30.253; |
69 | pointY = 37.436; | 66 | pointY = 37.436; |
70 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; | 67 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; |
71 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; | 68 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; |
72 | context.moveTo(pointX, pointY); | 69 | context.moveTo(pointX, pointY); |
73 | pointX = 28.505; | 70 | pointX = 28.505; |
74 | pointY = 37.022; | 71 | pointY = 37.022; |
75 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; | 72 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; |
76 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; | 73 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; |
77 | context.lineTo(pointX, pointY); | 74 | context.lineTo(pointX, pointY); |
78 | pointX = 27.677; | 75 | pointX = 27.677; |
79 | pointY = 35.09; | 76 | pointY = 35.09; |
80 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; | 77 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; |
81 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; | 78 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; |
82 | controlPoint1X = 27.953; | 79 | controlPoint1X = 27.953; |
83 | controlPoint1Y = 36.792; | 80 | controlPoint1Y = 36.792; |
84 | controlPoint1X = (Math.round(resolution * controlPoint1X + alignStroke) - alignStroke) / resolution; | 81 | controlPoint1X = (Math.round(resolution * controlPoint1X + alignStroke) - alignStroke) / resolution; |
85 | controlPoint1Y = (Math.round(resolution * controlPoint1Y + alignStroke) - alignStroke) / resolution; | 82 | controlPoint1Y = (Math.round(resolution * controlPoint1Y + alignStroke) - alignStroke) / resolution; |
86 | controlPoint2X = 27.677; | 83 | controlPoint2X = 27.677; |
87 | controlPoint2Y = 36.47; | 84 | controlPoint2Y = 36.47; |
88 | controlPoint2X = (Math.round(resolution * controlPoint2X + alignStroke) - alignStroke) / resolution; | 85 | controlPoint2X = (Math.round(resolution * controlPoint2X + alignStroke) - alignStroke) / resolution; |
89 | controlPoint2Y = (Math.round(resolution * controlPoint2Y + alignStroke) - alignStroke) / resolution; | 86 | controlPoint2Y = (Math.round(resolution * controlPoint2Y + alignStroke) - alignStroke) / resolution; |
90 | context.bezierCurveTo(controlPoint1X, controlPoint1Y, controlPoint2X, controlPoint2Y, pointX, pointY); | 87 | context.bezierCurveTo(controlPoint1X, controlPoint1Y, controlPoint2X, controlPoint2Y, pointX, pointY); |
91 | pointX = 27.631; | 88 | pointX = 27.631; |
92 | pointY = 27.546; | 89 | pointY = 27.546; |
93 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; | 90 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; |
94 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; | 91 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; |
95 | controlPoint1X = 27.631; | 92 | controlPoint1X = 27.631; |
96 | controlPoint1Y = 32.974; | 93 | controlPoint1Y = 32.974; |
97 | controlPoint1X = (Math.round(resolution * controlPoint1X + alignStroke) - alignStroke) / resolution; | 94 | controlPoint1X = (Math.round(resolution * controlPoint1X + alignStroke) - alignStroke) / resolution; |
98 | controlPoint1Y = (Math.round(resolution * controlPoint1Y + alignStroke) - alignStroke) / resolution; | 95 | controlPoint1Y = (Math.round(resolution * controlPoint1Y + alignStroke) - alignStroke) / resolution; |
99 | controlPoint2X = 27.631; | 96 | controlPoint2X = 27.631; |
100 | controlPoint2Y = 29.892; | 97 | controlPoint2Y = 29.892; |
101 | controlPoint2X = (Math.round(resolution * controlPoint2X + alignStroke) - alignStroke) / resolution; | 98 | controlPoint2X = (Math.round(resolution * controlPoint2X + alignStroke) - alignStroke) / resolution; |
102 | controlPoint2Y = (Math.round(resolution * controlPoint2Y + alignStroke) - alignStroke) / resolution; | 99 | controlPoint2Y = (Math.round(resolution * controlPoint2Y + alignStroke) - alignStroke) / resolution; |
103 | context.bezierCurveTo(controlPoint1X, controlPoint1Y, controlPoint2X, controlPoint2Y, pointX, pointY); | 100 | context.bezierCurveTo(controlPoint1X, controlPoint1Y, controlPoint2X, controlPoint2Y, pointX, pointY); |
104 | pointX = 27.677; | 101 | pointX = 27.677; |
105 | pointY = 19.726; | 102 | pointY = 19.726; |
106 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; | 103 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; |
107 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; | 104 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; |
108 | controlPoint1X = 27.631; | 105 | controlPoint1X = 27.631; |
109 | controlPoint1Y = 24.97; | 106 | controlPoint1Y = 24.97; |
110 | controlPoint1X = (Math.round(resolution * controlPoint1X + alignStroke) - alignStroke) / resolution; | 107 | controlPoint1X = (Math.round(resolution * controlPoint1X + alignStroke) - alignStroke) / resolution; |
111 | controlPoint1Y = (Math.round(resolution * controlPoint1Y + alignStroke) - alignStroke) / resolution; | 108 | controlPoint1Y = (Math.round(resolution * controlPoint1Y + alignStroke) - alignStroke) / resolution; |
112 | controlPoint2X = 27.677; | 109 | controlPoint2X = 27.677; |
113 | controlPoint2Y = 21.612; | 110 | controlPoint2Y = 21.612; |
114 | controlPoint2X = (Math.round(resolution * controlPoint2X + alignStroke) - alignStroke) / resolution; | 111 | controlPoint2X = (Math.round(resolution * controlPoint2X + alignStroke) - alignStroke) / resolution; |
115 | controlPoint2Y = (Math.round(resolution * controlPoint2Y + alignStroke) - alignStroke) / resolution; | 112 | controlPoint2Y = (Math.round(resolution * controlPoint2Y + alignStroke) - alignStroke) / resolution; |
116 | context.bezierCurveTo(controlPoint1X, controlPoint1Y, controlPoint2X, controlPoint2Y, pointX, pointY); | 113 | context.bezierCurveTo(controlPoint1X, controlPoint1Y, controlPoint2X, controlPoint2Y, pointX, pointY); |
117 | pointX = 19.535; | 114 | pointX = 19.535; |
118 | pointY = 21.336; | 115 | pointY = 21.336; |
119 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; | 116 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; |
120 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; | 117 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; |
diff --git a/frontend/gamma/js/Clipperz/PM/UI/Canvas/Marks/questionMark.js b/frontend/gamma/js/Clipperz/PM/UI/Canvas/Marks/questionMark.js index 003c4c2..5842828 100644 --- a/frontend/gamma/js/Clipperz/PM/UI/Canvas/Marks/questionMark.js +++ b/frontend/gamma/js/Clipperz/PM/UI/Canvas/Marks/questionMark.js | |||
@@ -1,120 +1,117 @@ | |||
1 | /* | 1 | /* |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | */ | 24 | */ |
28 | 25 | ||
29 | // | 26 | // |
30 | //questionMark.js | 27 | //questionMark.js |
31 | //? | 28 | //? |
32 | // | 29 | // |
33 | //Created by Giulio Cesare Solaroli on 3/7/10 | 30 | //Created by Giulio Cesare Solaroli on 3/7/10 |
34 | //Copyright 2010 Clipperz | 31 | //Copyright 2010 Clipperz |
35 | //This code was generated by Opacity. You may use or modify it in any way. | 32 | //This code was generated by Opacity. You may use or modify it in any way. |
36 | // | 33 | // |
37 | 34 | ||
38 | var kClipperz_PM_UI_Canvas_Marks_questionMarkWidth = 50.0; | 35 | var kClipperz_PM_UI_Canvas_Marks_questionMarkWidth = 50.0; |
39 | var kClipperz_PM_UI_Canvas_Marks_questionMarkHeight = 50.0; | 36 | var kClipperz_PM_UI_Canvas_Marks_questionMarkHeight = 50.0; |
40 | 37 | ||
41 | function Clipperz_PM_UI_Canvas_Marks_questionMark(canvas, aColor) | 38 | function Clipperz_PM_UI_Canvas_Marks_questionMark(canvas, aColor) |
42 | { | 39 | { |
43 | var context = canvas.getContext("2d"); | 40 | var context = canvas.getContext("2d"); |
44 | var alignStroke; | 41 | var alignStroke; |
45 | var resolution; | 42 | var resolution; |
46 | var path; | 43 | var path; |
47 | var pointX; | 44 | var pointX; |
48 | var pointY; | 45 | var pointY; |
49 | var controlPoint1X; | 46 | var controlPoint1X; |
50 | var controlPoint1Y; | 47 | var controlPoint1Y; |
51 | var controlPoint2X; | 48 | var controlPoint2X; |
52 | var controlPoint2Y; | 49 | var controlPoint2Y; |
53 | var color; | 50 | var color; |
54 | if (window.devicePixelRatio) | 51 | if (window.devicePixelRatio) |
55 | resolution = window.devicePixelRatio; | 52 | resolution = window.devicePixelRatio; |
56 | else | 53 | else |
57 | resolution = 1.0; | 54 | resolution = 1.0; |
58 | resolution *= 0.5 * (canvas.width / kClipperz_PM_UI_Canvas_Marks_questionMarkWidth + canvas.height / kClipperz_PM_UI_Canvas_Marks_questionMarkHeight); | 55 | resolution *= 0.5 * (canvas.width / kClipperz_PM_UI_Canvas_Marks_questionMarkWidth + canvas.height / kClipperz_PM_UI_Canvas_Marks_questionMarkHeight); |
59 | 56 | ||
60 | context.save(); | 57 | context.save(); |
61 | context.scale(canvas.width / kClipperz_PM_UI_Canvas_Marks_questionMarkWidth, canvas.height / kClipperz_PM_UI_Canvas_Marks_questionMarkHeight); | 58 | context.scale(canvas.width / kClipperz_PM_UI_Canvas_Marks_questionMarkWidth, canvas.height / kClipperz_PM_UI_Canvas_Marks_questionMarkHeight); |
62 | context.clearRect(0.0, 0.0, kClipperz_PM_UI_Canvas_Marks_questionMarkWidth, kClipperz_PM_UI_Canvas_Marks_questionMarkHeight); | 59 | context.clearRect(0.0, 0.0, kClipperz_PM_UI_Canvas_Marks_questionMarkWidth, kClipperz_PM_UI_Canvas_Marks_questionMarkHeight); |
63 | 60 | ||
64 | // Layer 1 | 61 | // Layer 1 |
65 | 62 | ||
66 | alignStroke = 0.0; | 63 | alignStroke = 0.0; |
67 | context.beginPath(); | 64 | context.beginPath(); |
68 | pointX = 24.118; | 65 | pointX = 24.118; |
69 | pointY = 24.464; | 66 | pointY = 24.464; |
70 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; | 67 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; |
71 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; | 68 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; |
72 | context.moveTo(pointX, pointY); | 69 | context.moveTo(pointX, pointY); |
73 | pointX = 24.854; | 70 | pointX = 24.854; |
74 | pointY = 23.406; | 71 | pointY = 23.406; |
75 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; | 72 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; |
76 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; | 73 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; |
77 | controlPoint1X = 24.118; | 74 | controlPoint1X = 24.118; |
78 | controlPoint1Y = 24.05; | 75 | controlPoint1Y = 24.05; |
79 | controlPoint1X = (Math.round(resolution * controlPoint1X + alignStroke) - alignStroke) / resolution; | 76 | controlPoint1X = (Math.round(resolution * controlPoint1X + alignStroke) - alignStroke) / resolution; |
80 | controlPoint1Y = (Math.round(resolution * controlPoint1Y + alignStroke) - alignStroke) / resolution; | 77 | controlPoint1Y = (Math.round(resolution * controlPoint1Y + alignStroke) - alignStroke) / resolution; |
81 | controlPoint2X = 24.44; | 78 | controlPoint2X = 24.44; |
82 | controlPoint2Y = 23.636; | 79 | controlPoint2Y = 23.636; |
83 | controlPoint2X = (Math.round(resolution * controlPoint2X + alignStroke) - alignStroke) / resolution; | 80 | controlPoint2X = (Math.round(resolution * controlPoint2X + alignStroke) - alignStroke) / resolution; |
84 | controlPoint2Y = (Math.round(resolution * controlPoint2Y + alignStroke) - alignStroke) / resolution; | 81 | controlPoint2Y = (Math.round(resolution * controlPoint2Y + alignStroke) - alignStroke) / resolution; |
85 | context.bezierCurveTo(controlPoint1X, controlPoint1Y, controlPoint2X, controlPoint2Y, pointX, pointY); | 82 | context.bezierCurveTo(controlPoint1X, controlPoint1Y, controlPoint2X, controlPoint2Y, pointX, pointY); |
86 | pointX = 29.454; | 83 | pointX = 29.454; |
87 | pointY = 20.6; | 84 | pointY = 20.6; |
88 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; | 85 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; |
89 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; | 86 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; |
90 | controlPoint1X = 26.418; | 87 | controlPoint1X = 26.418; |
91 | controlPoint1Y = 22.532; | 88 | controlPoint1Y = 22.532; |
92 | controlPoint1X = (Math.round(resolution * controlPoint1X + alignStroke) - alignStroke) / resolution; | 89 | controlPoint1X = (Math.round(resolution * controlPoint1X + alignStroke) - alignStroke) / resolution; |
93 | controlPoint1Y = (Math.round(resolution * controlPoint1Y + alignStroke) - alignStroke) / resolution; | 90 | controlPoint1Y = (Math.round(resolution * controlPoint1Y + alignStroke) - alignStroke) / resolution; |
94 | controlPoint2X = 28.534; | 91 | controlPoint2X = 28.534; |
95 | controlPoint2Y = 21.566; | 92 | controlPoint2Y = 21.566; |
96 | controlPoint2X = (Math.round(resolution * controlPoint2X + alignStroke) - alignStroke) / resolution; | 93 | controlPoint2X = (Math.round(resolution * controlPoint2X + alignStroke) - alignStroke) / resolution; |
97 | controlPoint2Y = (Math.round(resolution * controlPoint2Y + alignStroke) - alignStroke) / resolution; | 94 | controlPoint2Y = (Math.round(resolution * controlPoint2Y + alignStroke) - alignStroke) / resolution; |
98 | context.bezierCurveTo(controlPoint1X, controlPoint1Y, controlPoint2X, controlPoint2Y, pointX, pointY); | 95 | context.bezierCurveTo(controlPoint1X, controlPoint1Y, controlPoint2X, controlPoint2Y, pointX, pointY); |
99 | pointX = 30.282; | 96 | pointX = 30.282; |
100 | pointY = 17.794; | 97 | pointY = 17.794; |
101 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; | 98 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; |
102 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; | 99 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; |
103 | controlPoint1X = 29.868; | 100 | controlPoint1X = 29.868; |
104 | controlPoint1Y = 20.232; | 101 | controlPoint1Y = 20.232; |
105 | controlPoint1X = (Math.round(resolution * controlPoint1X + alignStroke) - alignStroke) / resolution; | 102 | controlPoint1X = (Math.round(resolution * controlPoint1X + alignStroke) - alignStroke) / resolution; |
106 | controlPoint1Y = (Math.round(resolution * controlPoint1Y + alignStroke) - alignStroke) / resolution; | 103 | controlPoint1Y = (Math.round(resolution * controlPoint1Y + alignStroke) - alignStroke) / resolution; |
107 | controlPoint2X = 30.282; | 104 | controlPoint2X = 30.282; |
108 | controlPoint2Y = 19.082; | 105 | controlPoint2Y = 19.082; |
109 | controlPoint2X = (Math.round(resolution * controlPoint2X + alignStroke) - alignStroke) / resolution; | 106 | controlPoint2X = (Math.round(resolution * controlPoint2X + alignStroke) - alignStroke) / resolution; |
110 | controlPoint2Y = (Math.round(resolution * controlPoint2Y + alignStroke) - alignStroke) / resolution; | 107 | controlPoint2Y = (Math.round(resolution * controlPoint2Y + alignStroke) - alignStroke) / resolution; |
111 | context.bezierCurveTo(controlPoint1X, controlPoint1Y, controlPoint2X, controlPoint2Y, pointX, pointY); | 108 | context.bezierCurveTo(controlPoint1X, controlPoint1Y, controlPoint2X, controlPoint2Y, pointX, pointY); |
112 | pointX = 27.2; | 109 | pointX = 27.2; |
113 | pointY = 12.688; | 110 | pointY = 12.688; |
114 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; | 111 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; |
115 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; | 112 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; |
116 | controlPoint1X = 30.282; | 113 | controlPoint1X = 30.282; |
117 | controlPoint1Y = 16.322; | 114 | controlPoint1Y = 16.322; |
118 | controlPoint1X = (Math.round(resolution * controlPoint1X + alignStroke) - alignStroke) / resolution; | 115 | controlPoint1X = (Math.round(resolution * controlPoint1X + alignStroke) - alignStroke) / resolution; |
119 | controlPoint1Y = (Math.round(resolution * controlPoint1Y + alignStroke) - alignStroke) / resolution; | 116 | controlPoint1Y = (Math.round(resolution * controlPoint1Y + alignStroke) - alignStroke) / resolution; |
120 | controlPoint2X = 29.454; | 117 | controlPoint2X = 29.454; |
diff --git a/frontend/gamma/js/Clipperz/PM/UI/Canvas/RegisterButton/normal.js b/frontend/gamma/js/Clipperz/PM/UI/Canvas/RegisterButton/normal.js index 288e0be..2462d0e 100644 --- a/frontend/gamma/js/Clipperz/PM/UI/Canvas/RegisterButton/normal.js +++ b/frontend/gamma/js/Clipperz/PM/UI/Canvas/RegisterButton/normal.js | |||
@@ -1,120 +1,117 @@ | |||
1 | /* | 1 | /* |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | */ | 24 | */ |
28 | 25 | ||
29 | // | 26 | // |
30 | //normal.js | 27 | //normal.js |
31 | //normal | 28 | //normal |
32 | // | 29 | // |
33 | //Created by Giulio Cesare Solaroli on 3/24/10 | 30 | //Created by Giulio Cesare Solaroli on 3/24/10 |
34 | //Copyright 2010 Clipperz | 31 | //Copyright 2010 Clipperz |
35 | //This code was generated by Opacity. You may use or modify it in any way. | 32 | //This code was generated by Opacity. You may use or modify it in any way. |
36 | // | 33 | // |
37 | 34 | ||
38 | var kClipperz_PM_UI_Canvas_RegisterButton_normalWidth = 282.0; | 35 | var kClipperz_PM_UI_Canvas_RegisterButton_normalWidth = 282.0; |
39 | var kClipperz_PM_UI_Canvas_RegisterButton_normalHeight = 93.0; | 36 | var kClipperz_PM_UI_Canvas_RegisterButton_normalHeight = 93.0; |
40 | 37 | ||
41 | function Clipperz_PM_UI_Canvas_RegisterButton_normal(canvas, aBackgroundColor, aDarkBackgroundColor, aLightColor, aDarkColor, aStarColor) | 38 | function Clipperz_PM_UI_Canvas_RegisterButton_normal(canvas, aBackgroundColor, aDarkBackgroundColor, aLightColor, aDarkColor, aStarColor) |
42 | { | 39 | { |
43 | var context = canvas.getContext("2d"); | 40 | var context = canvas.getContext("2d"); |
44 | var alignStroke; | 41 | var alignStroke; |
45 | var resolution; | 42 | var resolution; |
46 | var path; | 43 | var path; |
47 | var pointX; | 44 | var pointX; |
48 | var pointY; | 45 | var pointY; |
49 | var controlPoint1X; | 46 | var controlPoint1X; |
50 | var controlPoint1Y; | 47 | var controlPoint1Y; |
51 | var controlPoint2X; | 48 | var controlPoint2X; |
52 | var controlPoint2Y; | 49 | var controlPoint2Y; |
53 | var gradient; | 50 | var gradient; |
54 | var color; | 51 | var color; |
55 | if (window.devicePixelRatio) | 52 | if (window.devicePixelRatio) |
56 | resolution = window.devicePixelRatio; | 53 | resolution = window.devicePixelRatio; |
57 | else | 54 | else |
58 | resolution = 1.0; | 55 | resolution = 1.0; |
59 | resolution *= 0.5 * (canvas.width / kClipperz_PM_UI_Canvas_RegisterButton_normalWidth + canvas.height / kClipperz_PM_UI_Canvas_RegisterButton_normalHeight); | 56 | resolution *= 0.5 * (canvas.width / kClipperz_PM_UI_Canvas_RegisterButton_normalWidth + canvas.height / kClipperz_PM_UI_Canvas_RegisterButton_normalHeight); |
60 | 57 | ||
61 | context.save(); | 58 | context.save(); |
62 | context.scale(canvas.width / kClipperz_PM_UI_Canvas_RegisterButton_normalWidth, canvas.height / kClipperz_PM_UI_Canvas_RegisterButton_normalHeight); | 59 | context.scale(canvas.width / kClipperz_PM_UI_Canvas_RegisterButton_normalWidth, canvas.height / kClipperz_PM_UI_Canvas_RegisterButton_normalHeight); |
63 | context.clearRect(0.0, 0.0, kClipperz_PM_UI_Canvas_RegisterButton_normalWidth, kClipperz_PM_UI_Canvas_RegisterButton_normalHeight); | 60 | context.clearRect(0.0, 0.0, kClipperz_PM_UI_Canvas_RegisterButton_normalWidth, kClipperz_PM_UI_Canvas_RegisterButton_normalHeight); |
64 | 61 | ||
65 | // background | 62 | // background |
66 | 63 | ||
67 | alignStroke = 0.0; | 64 | alignStroke = 0.0; |
68 | context.beginPath(); | 65 | context.beginPath(); |
69 | pointX = 241.0; | 66 | pointX = 241.0; |
70 | pointY = 80.0; | 67 | pointY = 80.0; |
71 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; | 68 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; |
72 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; | 69 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; |
73 | context.moveTo(pointX, pointY); | 70 | context.moveTo(pointX, pointY); |
74 | pointX = 274.0; | 71 | pointX = 274.0; |
75 | pointY = 47.0; | 72 | pointY = 47.0; |
76 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; | 73 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; |
77 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; | 74 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; |
78 | controlPoint1X = 259.103; | 75 | controlPoint1X = 259.103; |
79 | controlPoint1Y = 80.0; | 76 | controlPoint1Y = 80.0; |
80 | controlPoint1X = (Math.round(resolution * controlPoint1X + alignStroke) - alignStroke) / resolution; | 77 | controlPoint1X = (Math.round(resolution * controlPoint1X + alignStroke) - alignStroke) / resolution; |
81 | controlPoint1Y = (Math.round(resolution * controlPoint1Y + alignStroke) - alignStroke) / resolution; | 78 | controlPoint1Y = (Math.round(resolution * controlPoint1Y + alignStroke) - alignStroke) / resolution; |
82 | controlPoint2X = 274.0; | 79 | controlPoint2X = 274.0; |
83 | controlPoint2Y = 65.103; | 80 | controlPoint2Y = 65.103; |
84 | controlPoint2X = (Math.round(resolution * controlPoint2X + alignStroke) - alignStroke) / resolution; | 81 | controlPoint2X = (Math.round(resolution * controlPoint2X + alignStroke) - alignStroke) / resolution; |
85 | controlPoint2Y = (Math.round(resolution * controlPoint2Y + alignStroke) - alignStroke) / resolution; | 82 | controlPoint2Y = (Math.round(resolution * controlPoint2Y + alignStroke) - alignStroke) / resolution; |
86 | context.bezierCurveTo(controlPoint1X, controlPoint1Y, controlPoint2X, controlPoint2Y, pointX, pointY); | 83 | context.bezierCurveTo(controlPoint1X, controlPoint1Y, controlPoint2X, controlPoint2Y, pointX, pointY); |
87 | pointX = 274.0; | 84 | pointX = 274.0; |
88 | pointY = 45.0; | 85 | pointY = 45.0; |
89 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; | 86 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; |
90 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; | 87 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; |
91 | context.lineTo(pointX, pointY); | 88 | context.lineTo(pointX, pointY); |
92 | pointX = 241.0; | 89 | pointX = 241.0; |
93 | pointY = 12.0; | 90 | pointY = 12.0; |
94 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; | 91 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; |
95 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; | 92 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; |
96 | controlPoint1X = 274.0; | 93 | controlPoint1X = 274.0; |
97 | controlPoint1Y = 26.897; | 94 | controlPoint1Y = 26.897; |
98 | controlPoint1X = (Math.round(resolution * controlPoint1X + alignStroke) - alignStroke) / resolution; | 95 | controlPoint1X = (Math.round(resolution * controlPoint1X + alignStroke) - alignStroke) / resolution; |
99 | controlPoint1Y = (Math.round(resolution * controlPoint1Y + alignStroke) - alignStroke) / resolution; | 96 | controlPoint1Y = (Math.round(resolution * controlPoint1Y + alignStroke) - alignStroke) / resolution; |
100 | controlPoint2X = 259.103; | 97 | controlPoint2X = 259.103; |
101 | controlPoint2Y = 12.0; | 98 | controlPoint2Y = 12.0; |
102 | controlPoint2X = (Math.round(resolution * controlPoint2X + alignStroke) - alignStroke) / resolution; | 99 | controlPoint2X = (Math.round(resolution * controlPoint2X + alignStroke) - alignStroke) / resolution; |
103 | controlPoint2Y = (Math.round(resolution * controlPoint2Y + alignStroke) - alignStroke) / resolution; | 100 | controlPoint2Y = (Math.round(resolution * controlPoint2Y + alignStroke) - alignStroke) / resolution; |
104 | context.bezierCurveTo(controlPoint1X, controlPoint1Y, controlPoint2X, controlPoint2Y, pointX, pointY); | 101 | context.bezierCurveTo(controlPoint1X, controlPoint1Y, controlPoint2X, controlPoint2Y, pointX, pointY); |
105 | pointX = 60.0; | 102 | pointX = 60.0; |
106 | pointY = 12.0; | 103 | pointY = 12.0; |
107 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; | 104 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; |
108 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; | 105 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; |
109 | context.lineTo(pointX, pointY); | 106 | context.lineTo(pointX, pointY); |
110 | pointX = 27.0; | 107 | pointX = 27.0; |
111 | pointY = 45.0; | 108 | pointY = 45.0; |
112 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; | 109 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; |
113 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; | 110 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; |
114 | controlPoint1X = 41.897; | 111 | controlPoint1X = 41.897; |
115 | controlPoint1Y = 12.0; | 112 | controlPoint1Y = 12.0; |
116 | controlPoint1X = (Math.round(resolution * controlPoint1X + alignStroke) - alignStroke) / resolution; | 113 | controlPoint1X = (Math.round(resolution * controlPoint1X + alignStroke) - alignStroke) / resolution; |
117 | controlPoint1Y = (Math.round(resolution * controlPoint1Y + alignStroke) - alignStroke) / resolution; | 114 | controlPoint1Y = (Math.round(resolution * controlPoint1Y + alignStroke) - alignStroke) / resolution; |
118 | controlPoint2X = 27.0; | 115 | controlPoint2X = 27.0; |
119 | controlPoint2Y = 26.897; | 116 | controlPoint2Y = 26.897; |
120 | controlPoint2X = (Math.round(resolution * controlPoint2X + alignStroke) - alignStroke) / resolution; | 117 | controlPoint2X = (Math.round(resolution * controlPoint2X + alignStroke) - alignStroke) / resolution; |
diff --git a/frontend/gamma/js/Clipperz/PM/UI/Canvas/Star/normal.js b/frontend/gamma/js/Clipperz/PM/UI/Canvas/Star/normal.js index e70e3b5..cf475c6 100644 --- a/frontend/gamma/js/Clipperz/PM/UI/Canvas/Star/normal.js +++ b/frontend/gamma/js/Clipperz/PM/UI/Canvas/Star/normal.js | |||
@@ -1,120 +1,117 @@ | |||
1 | /* | 1 | /* |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | */ | 24 | */ |
28 | 25 | ||
29 | // | 26 | // |
30 | //normal.js | 27 | //normal.js |
31 | //normal | 28 | //normal |
32 | // | 29 | // |
33 | //Created by Giulio Cesare Solaroli on 3/15/10 | 30 | //Created by Giulio Cesare Solaroli on 3/15/10 |
34 | //Copyright 2010 Clipperz | 31 | //Copyright 2010 Clipperz |
35 | //This code was generated by Opacity. You may use or modify it in any way. | 32 | //This code was generated by Opacity. You may use or modify it in any way. |
36 | // | 33 | // |
37 | 34 | ||
38 | var kClipperz_PM_UI_Canvas_Star_normalWidth = 46.0; | 35 | var kClipperz_PM_UI_Canvas_Star_normalWidth = 46.0; |
39 | var kClipperz_PM_UI_Canvas_Star_normalHeight = 46.0; | 36 | var kClipperz_PM_UI_Canvas_Star_normalHeight = 46.0; |
40 | 37 | ||
41 | function Clipperz_PM_UI_Canvas_Star_normal(canvas, aColor) | 38 | function Clipperz_PM_UI_Canvas_Star_normal(canvas, aColor) |
42 | { | 39 | { |
43 | var context = canvas.getContext("2d"); | 40 | var context = canvas.getContext("2d"); |
44 | var alignStroke; | 41 | var alignStroke; |
45 | var resolution; | 42 | var resolution; |
46 | var path; | 43 | var path; |
47 | var pointX; | 44 | var pointX; |
48 | var pointY; | 45 | var pointY; |
49 | if (window.devicePixelRatio) | 46 | if (window.devicePixelRatio) |
50 | resolution = window.devicePixelRatio; | 47 | resolution = window.devicePixelRatio; |
51 | else | 48 | else |
52 | resolution = 1.0; | 49 | resolution = 1.0; |
53 | resolution *= 0.5 * (canvas.width / kClipperz_PM_UI_Canvas_Star_normalWidth + canvas.height / kClipperz_PM_UI_Canvas_Star_normalHeight); | 50 | resolution *= 0.5 * (canvas.width / kClipperz_PM_UI_Canvas_Star_normalWidth + canvas.height / kClipperz_PM_UI_Canvas_Star_normalHeight); |
54 | 51 | ||
55 | context.save(); | 52 | context.save(); |
56 | context.scale(canvas.width / kClipperz_PM_UI_Canvas_Star_normalWidth, canvas.height / kClipperz_PM_UI_Canvas_Star_normalHeight); | 53 | context.scale(canvas.width / kClipperz_PM_UI_Canvas_Star_normalWidth, canvas.height / kClipperz_PM_UI_Canvas_Star_normalHeight); |
57 | context.clearRect(0.0, 0.0, kClipperz_PM_UI_Canvas_Star_normalWidth, kClipperz_PM_UI_Canvas_Star_normalHeight); | 54 | context.clearRect(0.0, 0.0, kClipperz_PM_UI_Canvas_Star_normalWidth, kClipperz_PM_UI_Canvas_Star_normalHeight); |
58 | 55 | ||
59 | // * | 56 | // * |
60 | 57 | ||
61 | alignStroke = 0.0; | 58 | alignStroke = 0.0; |
62 | context.beginPath(); | 59 | context.beginPath(); |
63 | pointX = 8.613; | 60 | pointX = 8.613; |
64 | pointY = 15.583; | 61 | pointY = 15.583; |
65 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; | 62 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; |
66 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; | 63 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; |
67 | context.moveTo(pointX, pointY); | 64 | context.moveTo(pointX, pointY); |
68 | pointX = 18.563; | 65 | pointX = 18.563; |
69 | pointY = 18.821; | 66 | pointY = 18.821; |
70 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; | 67 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; |
71 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; | 68 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; |
72 | context.lineTo(pointX, pointY); | 69 | context.lineTo(pointX, pointY); |
73 | pointX = 18.563; | 70 | pointX = 18.563; |
74 | pointY = 7.347; | 71 | pointY = 7.347; |
75 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; | 72 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; |
76 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; | 73 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; |
77 | context.lineTo(pointX, pointY); | 74 | context.lineTo(pointX, pointY); |
78 | pointX = 26.799; | 75 | pointX = 26.799; |
79 | pointY = 7.347; | 76 | pointY = 7.347; |
80 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; | 77 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; |
81 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; | 78 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; |
82 | context.lineTo(pointX, pointY); | 79 | context.lineTo(pointX, pointY); |
83 | pointX = 26.799; | 80 | pointX = 26.799; |
84 | pointY = 18.821; | 81 | pointY = 18.821; |
85 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; | 82 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; |
86 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; | 83 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; |
87 | context.lineTo(pointX, pointY); | 84 | context.lineTo(pointX, pointY); |
88 | pointX = 36.749; | 85 | pointX = 36.749; |
89 | pointY = 15.583; | 86 | pointY = 15.583; |
90 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; | 87 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; |
91 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; | 88 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; |
92 | context.lineTo(pointX, pointY); | 89 | context.lineTo(pointX, pointY); |
93 | pointX = 38.986; | 90 | pointX = 38.986; |
94 | pointY = 22.677; | 91 | pointY = 22.677; |
95 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; | 92 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; |
96 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; | 93 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; |
97 | context.lineTo(pointX, pointY); | 94 | context.lineTo(pointX, pointY); |
98 | pointX = 28.846; | 95 | pointX = 28.846; |
99 | pointY = 25.819; | 96 | pointY = 25.819; |
100 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; | 97 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; |
101 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; | 98 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; |
102 | context.lineTo(pointX, pointY); | 99 | context.lineTo(pointX, pointY); |
103 | pointX = 35.463; | 100 | pointX = 35.463; |
104 | pointY = 35.293; | 101 | pointY = 35.293; |
105 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; | 102 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; |
106 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; | 103 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; |
107 | context.lineTo(pointX, pointY); | 104 | context.lineTo(pointX, pointY); |
108 | pointX = 29.369; | 105 | pointX = 29.369; |
109 | pointY = 39.625; | 106 | pointY = 39.625; |
110 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; | 107 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; |
111 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; | 108 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; |
112 | context.lineTo(pointX, pointY); | 109 | context.lineTo(pointX, pointY); |
113 | pointX = 22.752; | 110 | pointX = 22.752; |
114 | pointY = 30.675; | 111 | pointY = 30.675; |
115 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; | 112 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; |
116 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; | 113 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; |
117 | context.lineTo(pointX, pointY); | 114 | context.lineTo(pointX, pointY); |
118 | pointX = 15.944; | 115 | pointX = 15.944; |
119 | pointY = 39.625; | 116 | pointY = 39.625; |
120 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; | 117 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; |
diff --git a/frontend/gamma/js/Clipperz/PM/UI/Canvas/Tips/close.js b/frontend/gamma/js/Clipperz/PM/UI/Canvas/Tips/close.js index 216fd24..cd7ed90 100644 --- a/frontend/gamma/js/Clipperz/PM/UI/Canvas/Tips/close.js +++ b/frontend/gamma/js/Clipperz/PM/UI/Canvas/Tips/close.js | |||
@@ -1,120 +1,117 @@ | |||
1 | /* | 1 | /* |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | */ | 24 | */ |
28 | 25 | ||
29 | // | 26 | // |
30 | //close.js | 27 | //close.js |
31 | //close | 28 | //close |
32 | // | 29 | // |
33 | //Created by Giulio Cesare Solaroli on 3/14/10 | 30 | //Created by Giulio Cesare Solaroli on 3/14/10 |
34 | //Copyright 2010 Clipperz | 31 | //Copyright 2010 Clipperz |
35 | //This code was generated by Opacity. You may use or modify it in any way. | 32 | //This code was generated by Opacity. You may use or modify it in any way. |
36 | // | 33 | // |
37 | 34 | ||
38 | var kClipperz_PM_UI_Canvas_Tips_closeWidth = 310.0; | 35 | var kClipperz_PM_UI_Canvas_Tips_closeWidth = 310.0; |
39 | var kClipperz_PM_UI_Canvas_Tips_closeHeight = 6.0; | 36 | var kClipperz_PM_UI_Canvas_Tips_closeHeight = 6.0; |
40 | 37 | ||
41 | function Clipperz_PM_UI_Canvas_Tips_close(canvas, aColor, aBackgroundColor) | 38 | function Clipperz_PM_UI_Canvas_Tips_close(canvas, aColor, aBackgroundColor) |
42 | { | 39 | { |
43 | var context = canvas.getContext("2d"); | 40 | var context = canvas.getContext("2d"); |
44 | var alignStroke; | 41 | var alignStroke; |
45 | var resolution; | 42 | var resolution; |
46 | var path; | 43 | var path; |
47 | var pointX; | 44 | var pointX; |
48 | var pointY; | 45 | var pointY; |
49 | if (window.devicePixelRatio) | 46 | if (window.devicePixelRatio) |
50 | resolution = window.devicePixelRatio; | 47 | resolution = window.devicePixelRatio; |
51 | else | 48 | else |
52 | resolution = 1.0; | 49 | resolution = 1.0; |
53 | resolution *= 0.5 * (canvas.width / kClipperz_PM_UI_Canvas_Tips_closeWidth + canvas.height / kClipperz_PM_UI_Canvas_Tips_closeHeight); | 50 | resolution *= 0.5 * (canvas.width / kClipperz_PM_UI_Canvas_Tips_closeWidth + canvas.height / kClipperz_PM_UI_Canvas_Tips_closeHeight); |
54 | 51 | ||
55 | context.save(); | 52 | context.save(); |
56 | context.scale(canvas.width / kClipperz_PM_UI_Canvas_Tips_closeWidth, canvas.height / kClipperz_PM_UI_Canvas_Tips_closeHeight); | 53 | context.scale(canvas.width / kClipperz_PM_UI_Canvas_Tips_closeWidth, canvas.height / kClipperz_PM_UI_Canvas_Tips_closeHeight); |
57 | context.clearRect(0.0, 0.0, kClipperz_PM_UI_Canvas_Tips_closeWidth, kClipperz_PM_UI_Canvas_Tips_closeHeight); | 54 | context.clearRect(0.0, 0.0, kClipperz_PM_UI_Canvas_Tips_closeWidth, kClipperz_PM_UI_Canvas_Tips_closeHeight); |
58 | 55 | ||
59 | // background | 56 | // background |
60 | 57 | ||
61 | alignStroke = 0.0; | 58 | alignStroke = 0.0; |
62 | context.beginPath(); | 59 | context.beginPath(); |
63 | pointX = 310.0; | 60 | pointX = 310.0; |
64 | pointY = 6.0; | 61 | pointY = 6.0; |
65 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; | 62 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; |
66 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; | 63 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; |
67 | context.moveTo(pointX, pointY); | 64 | context.moveTo(pointX, pointY); |
68 | pointX = 310.0; | 65 | pointX = 310.0; |
69 | pointY = 0.0; | 66 | pointY = 0.0; |
70 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; | 67 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; |
71 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; | 68 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; |
72 | context.lineTo(pointX, pointY); | 69 | context.lineTo(pointX, pointY); |
73 | pointX = 0.0; | 70 | pointX = 0.0; |
74 | pointY = 0.0; | 71 | pointY = 0.0; |
75 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; | 72 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; |
76 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; | 73 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; |
77 | context.lineTo(pointX, pointY); | 74 | context.lineTo(pointX, pointY); |
78 | pointX = 0.0; | 75 | pointX = 0.0; |
79 | pointY = 6.0; | 76 | pointY = 6.0; |
80 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; | 77 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; |
81 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; | 78 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; |
82 | context.lineTo(pointX, pointY); | 79 | context.lineTo(pointX, pointY); |
83 | pointX = 310.0; | 80 | pointX = 310.0; |
84 | pointY = 6.0; | 81 | pointY = 6.0; |
85 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; | 82 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; |
86 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; | 83 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; |
87 | context.lineTo(pointX, pointY); | 84 | context.lineTo(pointX, pointY); |
88 | context.closePath(); | 85 | context.closePath(); |
89 | context.fillStyle = aBackgroundColor; | 86 | context.fillStyle = aBackgroundColor; |
90 | context.fill(); | 87 | context.fill(); |
91 | 88 | ||
92 | // grid | 89 | // grid |
93 | 90 | ||
94 | // background | 91 | // background |
95 | 92 | ||
96 | alignStroke = 0.0; | 93 | alignStroke = 0.0; |
97 | context.beginPath(); | 94 | context.beginPath(); |
98 | pointX = 310.0; | 95 | pointX = 310.0; |
99 | pointY = 6.0; | 96 | pointY = 6.0; |
100 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; | 97 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; |
101 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; | 98 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; |
102 | context.moveTo(pointX, pointY); | 99 | context.moveTo(pointX, pointY); |
103 | pointX = 310.0; | 100 | pointX = 310.0; |
104 | pointY = 0.0; | 101 | pointY = 0.0; |
105 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; | 102 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; |
106 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; | 103 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; |
107 | context.lineTo(pointX, pointY); | 104 | context.lineTo(pointX, pointY); |
108 | pointX = 0.0; | 105 | pointX = 0.0; |
109 | pointY = 0.0; | 106 | pointY = 0.0; |
110 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; | 107 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; |
111 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; | 108 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; |
112 | context.lineTo(pointX, pointY); | 109 | context.lineTo(pointX, pointY); |
113 | pointX = 0.0; | 110 | pointX = 0.0; |
114 | pointY = 6.0; | 111 | pointY = 6.0; |
115 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; | 112 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; |
116 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; | 113 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; |
117 | context.lineTo(pointX, pointY); | 114 | context.lineTo(pointX, pointY); |
118 | pointX = 310.0; | 115 | pointX = 310.0; |
119 | pointY = 6.0; | 116 | pointY = 6.0; |
120 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; | 117 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; |
diff --git a/frontend/gamma/js/Clipperz/PM/UI/Canvas/Tips/open.js b/frontend/gamma/js/Clipperz/PM/UI/Canvas/Tips/open.js index f1bdaa9..30c1c69 100644 --- a/frontend/gamma/js/Clipperz/PM/UI/Canvas/Tips/open.js +++ b/frontend/gamma/js/Clipperz/PM/UI/Canvas/Tips/open.js | |||
@@ -1,120 +1,117 @@ | |||
1 | /* | 1 | /* |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | */ | 24 | */ |
28 | 25 | ||
29 | // | 26 | // |
30 | //open.js | 27 | //open.js |
31 | //open | 28 | //open |
32 | // | 29 | // |
33 | //Created by Giulio Cesare Solaroli on 3/14/10 | 30 | //Created by Giulio Cesare Solaroli on 3/14/10 |
34 | //Copyright 2010 Clipperz | 31 | //Copyright 2010 Clipperz |
35 | //This code was generated by Opacity. You may use or modify it in any way. | 32 | //This code was generated by Opacity. You may use or modify it in any way. |
36 | // | 33 | // |
37 | 34 | ||
38 | var kClipperz_PM_UI_Canvas_Tips_openWidth = 310.0; | 35 | var kClipperz_PM_UI_Canvas_Tips_openWidth = 310.0; |
39 | var kClipperz_PM_UI_Canvas_Tips_openHeight = 6.0; | 36 | var kClipperz_PM_UI_Canvas_Tips_openHeight = 6.0; |
40 | 37 | ||
41 | function Clipperz_PM_UI_Canvas_Tips_open(canvas, aColor, aBackgroundColor) | 38 | function Clipperz_PM_UI_Canvas_Tips_open(canvas, aColor, aBackgroundColor) |
42 | { | 39 | { |
43 | var context = canvas.getContext("2d"); | 40 | var context = canvas.getContext("2d"); |
44 | var alignStroke; | 41 | var alignStroke; |
45 | var resolution; | 42 | var resolution; |
46 | var path; | 43 | var path; |
47 | var pointX; | 44 | var pointX; |
48 | var pointY; | 45 | var pointY; |
49 | var color; | 46 | var color; |
50 | if (window.devicePixelRatio) | 47 | if (window.devicePixelRatio) |
51 | resolution = window.devicePixelRatio; | 48 | resolution = window.devicePixelRatio; |
52 | else | 49 | else |
53 | resolution = 1.0; | 50 | resolution = 1.0; |
54 | resolution *= 0.5 * (canvas.width / kClipperz_PM_UI_Canvas_Tips_openWidth + canvas.height / kClipperz_PM_UI_Canvas_Tips_openHeight); | 51 | resolution *= 0.5 * (canvas.width / kClipperz_PM_UI_Canvas_Tips_openWidth + canvas.height / kClipperz_PM_UI_Canvas_Tips_openHeight); |
55 | 52 | ||
56 | context.save(); | 53 | context.save(); |
57 | context.scale(canvas.width / kClipperz_PM_UI_Canvas_Tips_openWidth, canvas.height / kClipperz_PM_UI_Canvas_Tips_openHeight); | 54 | context.scale(canvas.width / kClipperz_PM_UI_Canvas_Tips_openWidth, canvas.height / kClipperz_PM_UI_Canvas_Tips_openHeight); |
58 | context.clearRect(0.0, 0.0, kClipperz_PM_UI_Canvas_Tips_openWidth, kClipperz_PM_UI_Canvas_Tips_openHeight); | 55 | context.clearRect(0.0, 0.0, kClipperz_PM_UI_Canvas_Tips_openWidth, kClipperz_PM_UI_Canvas_Tips_openHeight); |
59 | 56 | ||
60 | // background | 57 | // background |
61 | 58 | ||
62 | alignStroke = 0.0; | 59 | alignStroke = 0.0; |
63 | context.beginPath(); | 60 | context.beginPath(); |
64 | pointX = 310.0; | 61 | pointX = 310.0; |
65 | pointY = 6.0; | 62 | pointY = 6.0; |
66 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; | 63 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; |
67 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; | 64 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; |
68 | context.moveTo(pointX, pointY); | 65 | context.moveTo(pointX, pointY); |
69 | pointX = 310.0; | 66 | pointX = 310.0; |
70 | pointY = 0.0; | 67 | pointY = 0.0; |
71 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; | 68 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; |
72 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; | 69 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; |
73 | context.lineTo(pointX, pointY); | 70 | context.lineTo(pointX, pointY); |
74 | pointX = 0.0; | 71 | pointX = 0.0; |
75 | pointY = 0.0; | 72 | pointY = 0.0; |
76 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; | 73 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; |
77 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; | 74 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; |
78 | context.lineTo(pointX, pointY); | 75 | context.lineTo(pointX, pointY); |
79 | pointX = 0.0; | 76 | pointX = 0.0; |
80 | pointY = 6.0; | 77 | pointY = 6.0; |
81 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; | 78 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; |
82 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; | 79 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; |
83 | context.lineTo(pointX, pointY); | 80 | context.lineTo(pointX, pointY); |
84 | pointX = 310.0; | 81 | pointX = 310.0; |
85 | pointY = 6.0; | 82 | pointY = 6.0; |
86 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; | 83 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; |
87 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; | 84 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; |
88 | context.lineTo(pointX, pointY); | 85 | context.lineTo(pointX, pointY); |
89 | context.closePath(); | 86 | context.closePath(); |
90 | context.fillStyle = aBackgroundColor; | 87 | context.fillStyle = aBackgroundColor; |
91 | context.fill(); | 88 | context.fill(); |
92 | 89 | ||
93 | // grid | 90 | // grid |
94 | 91 | ||
95 | // background | 92 | // background |
96 | 93 | ||
97 | alignStroke = 0.0; | 94 | alignStroke = 0.0; |
98 | context.beginPath(); | 95 | context.beginPath(); |
99 | pointX = 310.0; | 96 | pointX = 310.0; |
100 | pointY = 6.0; | 97 | pointY = 6.0; |
101 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; | 98 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; |
102 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; | 99 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; |
103 | context.moveTo(pointX, pointY); | 100 | context.moveTo(pointX, pointY); |
104 | pointX = 310.0; | 101 | pointX = 310.0; |
105 | pointY = 0.0; | 102 | pointY = 0.0; |
106 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; | 103 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; |
107 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; | 104 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; |
108 | context.lineTo(pointX, pointY); | 105 | context.lineTo(pointX, pointY); |
109 | pointX = 0.0; | 106 | pointX = 0.0; |
110 | pointY = 0.0; | 107 | pointY = 0.0; |
111 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; | 108 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; |
112 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; | 109 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; |
113 | context.lineTo(pointX, pointY); | 110 | context.lineTo(pointX, pointY); |
114 | pointX = 0.0; | 111 | pointX = 0.0; |
115 | pointY = 6.0; | 112 | pointY = 6.0; |
116 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; | 113 | pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution; |
117 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; | 114 | pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution; |
118 | context.lineTo(pointX, pointY); | 115 | context.lineTo(pointX, pointY); |
119 | pointX = 310.0; | 116 | pointX = 310.0; |
120 | pointY = 6.0; | 117 | pointY = 6.0; |
diff --git a/frontend/gamma/js/Clipperz/PM/UI/Common/Components/BaseComponent.js b/frontend/gamma/js/Clipperz/PM/UI/Common/Components/BaseComponent.js index 26f2fc4..2a03fdf 100644 --- a/frontend/gamma/js/Clipperz/PM/UI/Common/Components/BaseComponent.js +++ b/frontend/gamma/js/Clipperz/PM/UI/Common/Components/BaseComponent.js | |||
@@ -1,120 +1,117 @@ | |||
1 | /* | 1 | /* |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | */ | 24 | */ |
28 | 25 | ||
29 | Clipperz.Base.module('Clipperz.PM.UI.Common.Components'); | 26 | Clipperz.Base.module('Clipperz.PM.UI.Common.Components'); |
30 | 27 | ||
31 | //############################################################################# | 28 | //############################################################################# |
32 | 29 | ||
33 | var _Clipperz_PM_Components_base_id_ = 0; | 30 | var _Clipperz_PM_Components_base_id_ = 0; |
34 | 31 | ||
35 | //############################################################################# | 32 | //############################################################################# |
36 | 33 | ||
37 | Clipperz.PM.UI.Common.Components.BaseComponent = function(args) { | 34 | Clipperz.PM.UI.Common.Components.BaseComponent = function(args) { |
38 | args = args || {}; | 35 | args = args || {}; |
39 | Clipperz.PM.UI.Common.Components.BaseComponent.superclass.constructor.call(this, args); | 36 | Clipperz.PM.UI.Common.Components.BaseComponent.superclass.constructor.call(this, args); |
40 | 37 | ||
41 | this._element = args.element || null; | 38 | this._element = args.element || null; |
42 | this._ids = {}; | 39 | this._ids = {}; |
43 | 40 | ||
44 | this._slots = {}; | 41 | this._slots = {}; |
45 | this._slotComponents = {}; | 42 | this._slotComponents = {}; |
46 | 43 | ||
47 | this._components = {}; | 44 | this._components = {}; |
48 | 45 | ||
49 | this._cachedSlots = {}; | 46 | this._cachedSlots = {}; |
50 | 47 | ||
51 | this._isModal = false; | 48 | this._isModal = false; |
52 | 49 | ||
53 | this._isActive = false; | 50 | this._isActive = false; |
54 | this._elementUsedToEnterModalState; | 51 | this._elementUsedToEnterModalState; |
55 | 52 | ||
56 | this._isFullyRendered = false; | 53 | this._isFullyRendered = false; |
57 | this._renderingWaitingQueue = []; | 54 | this._renderingWaitingQueue = []; |
58 | 55 | ||
59 | //this._slots = { | 56 | //this._slots = { |
60 | // 'header':'header', | 57 | // 'header':'header', |
61 | // 'body': 'body', | 58 | // 'body': 'body', |
62 | // 'footer':'footer' | 59 | // 'footer':'footer' |
63 | //}; | 60 | //}; |
64 | 61 | ||
65 | return this; | 62 | return this; |
66 | } | 63 | } |
67 | 64 | ||
68 | //============================================================================= | 65 | //============================================================================= |
69 | 66 | ||
70 | //TODO get back to MochiKit.Base.update as we are not extending anything | 67 | //TODO get back to MochiKit.Base.update as we are not extending anything |
71 | //MochiKit.Base.update(Clipperz.PM.UI.Common.Components.BaseComponent.prototype, { | 68 | //MochiKit.Base.update(Clipperz.PM.UI.Common.Components.BaseComponent.prototype, { |
72 | Clipperz.Base.extend(Clipperz.PM.UI.Common.Components.BaseComponent, /*Ext.Component*/ Object, { | 69 | Clipperz.Base.extend(Clipperz.PM.UI.Common.Components.BaseComponent, /*Ext.Component*/ Object, { |
73 | 70 | ||
74 | 'isClipperzPMComponent': true, | 71 | 'isClipperzPMComponent': true, |
75 | 72 | ||
76 | //------------------------------------------------------------------------- | 73 | //------------------------------------------------------------------------- |
77 | 74 | ||
78 | 'toString': function () { | 75 | 'toString': function () { |
79 | return "Clipperz.PM.UI.Common.Components.BaseComponent component"; | 76 | return "Clipperz.PM.UI.Common.Components.BaseComponent component"; |
80 | }, | 77 | }, |
81 | 78 | ||
82 | 'componentId': function () { | 79 | 'componentId': function () { |
83 | return this.getId('_id_'); | 80 | return this.getId('_id_'); |
84 | }, | 81 | }, |
85 | 82 | ||
86 | //------------------------------------------------------------------------- | 83 | //------------------------------------------------------------------------- |
87 | /* | 84 | /* |
88 | 'slots': function() { | 85 | 'slots': function() { |
89 | return this._slots; | 86 | return this._slots; |
90 | }, | 87 | }, |
91 | */ | 88 | */ |
92 | 'slotComponents': function() { | 89 | 'slotComponents': function() { |
93 | return this._slotComponents; | 90 | return this._slotComponents; |
94 | }, | 91 | }, |
95 | 92 | ||
96 | //------------------------------------------------------------------------- | 93 | //------------------------------------------------------------------------- |
97 | 94 | ||
98 | 'components': function () { | 95 | 'components': function () { |
99 | return this._components; | 96 | return this._components; |
100 | }, | 97 | }, |
101 | 98 | ||
102 | 'addComponent': function (aComponent) { | 99 | 'addComponent': function (aComponent) { |
103 | this.components()[aComponent.componentId()] = aComponent; | 100 | this.components()[aComponent.componentId()] = aComponent; |
104 | }, | 101 | }, |
105 | 102 | ||
106 | 'removeComponent': function (aComponent) { | 103 | 'removeComponent': function (aComponent) { |
107 | var componentId; | 104 | var componentId; |
108 | 105 | ||
109 | componentId = aComponent.componentId(); | 106 | componentId = aComponent.componentId(); |
110 | this.components()[componentId].remove(); | 107 | this.components()[componentId].remove(); |
111 | delete this.components()[componentId]; | 108 | delete this.components()[componentId]; |
112 | }, | 109 | }, |
113 | 110 | ||
114 | //------------------------------------------------------------------------- | 111 | //------------------------------------------------------------------------- |
115 | /* | 112 | /* |
116 | 'domHelper': function() { | 113 | 'domHelper': function() { |
117 | return Clipperz.YUI.DomHelper; | 114 | return Clipperz.YUI.DomHelper; |
118 | }, | 115 | }, |
119 | */ | 116 | */ |
120 | //------------------------------------------------------------------------- | 117 | //------------------------------------------------------------------------- |
diff --git a/frontend/gamma/js/Clipperz/PM/UI/Common/Components/Button.js b/frontend/gamma/js/Clipperz/PM/UI/Common/Components/Button.js index b2761ea..716d851 100644 --- a/frontend/gamma/js/Clipperz/PM/UI/Common/Components/Button.js +++ b/frontend/gamma/js/Clipperz/PM/UI/Common/Components/Button.js | |||
@@ -1,108 +1,105 @@ | |||
1 | /* | 1 | /* |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | */ | 24 | */ |
28 | 25 | ||
29 | Clipperz.Base.module('Clipperz.PM.UI.Common.Components'); | 26 | Clipperz.Base.module('Clipperz.PM.UI.Common.Components'); |
30 | 27 | ||
31 | Clipperz.PM.UI.Common.Components.Button = function(args) { | 28 | Clipperz.PM.UI.Common.Components.Button = function(args) { |
32 | args = args || {}; | 29 | args = args || {}; |
33 | 30 | ||
34 | Clipperz.PM.UI.Common.Components.Button.superclass.constructor.apply(this, arguments); | 31 | Clipperz.PM.UI.Common.Components.Button.superclass.constructor.apply(this, arguments); |
35 | 32 | ||
36 | this._element = args.element || Clipperz.Base.exception.raise('MandatoryParameter'); | 33 | this._element = args.element || Clipperz.Base.exception.raise('MandatoryParameter'); |
37 | this._text = args.text || Clipperz.Base.exception.raise('MandatoryParameter'); | 34 | this._text = args.text || Clipperz.Base.exception.raise('MandatoryParameter'); |
38 | this._isDefault = args.isDefault|| false; | 35 | this._isDefault = args.isDefault|| false; |
39 | 36 | ||
40 | this.render(); | 37 | this.render(); |
41 | 38 | ||
42 | return this; | 39 | return this; |
43 | } | 40 | } |
44 | 41 | ||
45 | //============================================================================= | 42 | //============================================================================= |
46 | 43 | ||
47 | Clipperz.Base.extend(Clipperz.PM.UI.Common.Components.Button, Clipperz.PM.UI.Common.Components.BaseComponent, { | 44 | Clipperz.Base.extend(Clipperz.PM.UI.Common.Components.Button, Clipperz.PM.UI.Common.Components.BaseComponent, { |
48 | 45 | ||
49 | //------------------------------------------------------------------------- | 46 | //------------------------------------------------------------------------- |
50 | 47 | ||
51 | 'toString': function () { | 48 | 'toString': function () { |
52 | return "Clipperz.PM.UI.Common.Components.Button component"; | 49 | return "Clipperz.PM.UI.Common.Components.Button component"; |
53 | }, | 50 | }, |
54 | 51 | ||
55 | //------------------------------------------------------------------------- | 52 | //------------------------------------------------------------------------- |
56 | 53 | ||
57 | 'text': function () { | 54 | 'text': function () { |
58 | return this._text; | 55 | return this._text; |
59 | }, | 56 | }, |
60 | 57 | ||
61 | 'isDefault': function () { | 58 | 'isDefault': function () { |
62 | return this._isDefault; | 59 | return this._isDefault; |
63 | }, | 60 | }, |
64 | 61 | ||
65 | //------------------------------------------------------------------------- | 62 | //------------------------------------------------------------------------- |
66 | 63 | ||
67 | 'renderSelf': function () { | 64 | 'renderSelf': function () { |
68 | this.append(this.element(), {tag:'div', id:this.getId('wrapper'), cls:'button_wrapper', children:[ | 65 | this.append(this.element(), {tag:'div', id:this.getId('wrapper'), cls:'button_wrapper', children:[ |
69 | {tag:'div', id:this.getId('bodyWrapper'), cls:'button_bodyWrapper', children:[ | 66 | {tag:'div', id:this.getId('bodyWrapper'), cls:'button_bodyWrapper', children:[ |
70 | {tag:'div', id:this.getId('body'), cls:'button_body', children:[ | 67 | {tag:'div', id:this.getId('body'), cls:'button_body', children:[ |
71 | {tag:'span', html:this.text()} | 68 | {tag:'span', html:this.text()} |
72 | ]}, | 69 | ]}, |
73 | {tag:'div', id:this.getId('footer'), cls:'button_footer'} | 70 | {tag:'div', id:this.getId('footer'), cls:'button_footer'} |
74 | ]} | 71 | ]} |
75 | ]}); | 72 | ]}); |
76 | 73 | ||
77 | if (this.isDefault()) { | 74 | if (this.isDefault()) { |
78 | MochiKit.DOM.addElementClass(this.getId('wrapper'), 'default'); | 75 | MochiKit.DOM.addElementClass(this.getId('wrapper'), 'default'); |
79 | } | 76 | } |
80 | 77 | ||
81 | MochiKit.Signal.connect(this.getId('wrapper'), 'onmouseenter',this, 'handleOnMouseEnter'); | 78 | MochiKit.Signal.connect(this.getId('wrapper'), 'onmouseenter',this, 'handleOnMouseEnter'); |
82 | MochiKit.Signal.connect(this.getId('wrapper'), 'onmouseleave',this, 'handleOnMouseLeave'); | 79 | MochiKit.Signal.connect(this.getId('wrapper'), 'onmouseleave',this, 'handleOnMouseLeave'); |
83 | MochiKit.Signal.connect(this.getId('wrapper'), 'onmousedown',this, 'handleOnMouseDown'); | 80 | MochiKit.Signal.connect(this.getId('wrapper'), 'onmousedown',this, 'handleOnMouseDown'); |
84 | MochiKit.Signal.connect(this.getId('wrapper'), 'onclick', this, 'handleOnClick'); | 81 | MochiKit.Signal.connect(this.getId('wrapper'), 'onclick', this, 'handleOnClick'); |
85 | }, | 82 | }, |
86 | 83 | ||
87 | //------------------------------------------------------------------------- | 84 | //------------------------------------------------------------------------- |
88 | 85 | ||
89 | 'handleOnMouseEnter': function (anEvent) { | 86 | 'handleOnMouseEnter': function (anEvent) { |
90 | MochiKit.DOM.addElementClass(this.getId('wrapper'), 'hover'); | 87 | MochiKit.DOM.addElementClass(this.getId('wrapper'), 'hover'); |
91 | }, | 88 | }, |
92 | 89 | ||
93 | 'handleOnMouseLeave': function (anEvent) { | 90 | 'handleOnMouseLeave': function (anEvent) { |
94 | MochiKit.DOM.removeElementClass(this.getId('wrapper'), 'hover'); | 91 | MochiKit.DOM.removeElementClass(this.getId('wrapper'), 'hover'); |
95 | MochiKit.DOM.removeElementClass(this.getId('wrapper'), 'clicked'); | 92 | MochiKit.DOM.removeElementClass(this.getId('wrapper'), 'clicked'); |
96 | }, | 93 | }, |
97 | 94 | ||
98 | 'handleOnMouseDown': function (anEvent) { | 95 | 'handleOnMouseDown': function (anEvent) { |
99 | MochiKit.DOM.addElementClass(this.getId('wrapper'), 'clicked'); | 96 | MochiKit.DOM.addElementClass(this.getId('wrapper'), 'clicked'); |
100 | }, | 97 | }, |
101 | 98 | ||
102 | 'handleOnClick': function (anEvent) { | 99 | 'handleOnClick': function (anEvent) { |
103 | MochiKit.Signal.signal(this, 'onclick', anEvent); | 100 | MochiKit.Signal.signal(this, 'onclick', anEvent); |
104 | }, | 101 | }, |
105 | 102 | ||
106 | //------------------------------------------------------------------------- | 103 | //------------------------------------------------------------------------- |
107 | __syntaxFix__: "syntax fix" | 104 | __syntaxFix__: "syntax fix" |
108 | }); | 105 | }); |
diff --git a/frontend/gamma/js/Clipperz/PM/UI/Common/Components/ComponentSlot.js b/frontend/gamma/js/Clipperz/PM/UI/Common/Components/ComponentSlot.js index 0c6e221..7f56c1e 100644 --- a/frontend/gamma/js/Clipperz/PM/UI/Common/Components/ComponentSlot.js +++ b/frontend/gamma/js/Clipperz/PM/UI/Common/Components/ComponentSlot.js | |||
@@ -1,64 +1,61 @@ | |||
1 | /* | 1 | /* |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | */ | 24 | */ |
28 | 25 | ||
29 | Clipperz.Base.module('Clipperz.PM.UI.Common.Components'); | 26 | Clipperz.Base.module('Clipperz.PM.UI.Common.Components'); |
30 | 27 | ||
31 | //############################################################################# | 28 | //############################################################################# |
32 | 29 | ||
33 | 30 | ||
34 | Clipperz.PM.UI.Common.Components.ComponentSlot = function(aComponent, aSlotName) { | 31 | Clipperz.PM.UI.Common.Components.ComponentSlot = function(aComponent, aSlotName) { |
35 | this._component = aComponent; | 32 | this._component = aComponent; |
36 | this._slotName = aSlotName; | 33 | this._slotName = aSlotName; |
37 | 34 | ||
38 | return this; | 35 | return this; |
39 | } | 36 | } |
40 | 37 | ||
41 | //============================================================================= | 38 | //============================================================================= |
42 | 39 | ||
43 | Clipperz.Base.extend(Clipperz.PM.UI.Common.Components.ComponentSlot, Object, { | 40 | Clipperz.Base.extend(Clipperz.PM.UI.Common.Components.ComponentSlot, Object, { |
44 | 41 | ||
45 | //------------------------------------------------------------------------- | 42 | //------------------------------------------------------------------------- |
46 | 43 | ||
47 | 'slotName': function() { | 44 | 'slotName': function() { |
48 | return this._slotName; | 45 | return this._slotName; |
49 | }, | 46 | }, |
50 | 47 | ||
51 | 'component': function() { | 48 | 'component': function() { |
52 | return this._component; | 49 | return this._component; |
53 | }, | 50 | }, |
54 | 51 | ||
55 | //------------------------------------------------------------------------- | 52 | //------------------------------------------------------------------------- |
56 | 53 | ||
57 | 'setContent': function(aComponent) { | 54 | 'setContent': function(aComponent) { |
58 | this.component().setComponentForSlotNamed(aComponent, this.slotName()); | 55 | this.component().setComponentForSlotNamed(aComponent, this.slotName()); |
59 | }, | 56 | }, |
60 | 57 | ||
61 | //------------------------------------------------------------------------- | 58 | //------------------------------------------------------------------------- |
62 | __syntaxFix__: "syntax fix" | 59 | __syntaxFix__: "syntax fix" |
63 | 60 | ||
64 | }); | 61 | }); |
diff --git a/frontend/gamma/js/Clipperz/PM/UI/Common/Components/FaviconComponent.js b/frontend/gamma/js/Clipperz/PM/UI/Common/Components/FaviconComponent.js index 4735f5c..2db2489 100644 --- a/frontend/gamma/js/Clipperz/PM/UI/Common/Components/FaviconComponent.js +++ b/frontend/gamma/js/Clipperz/PM/UI/Common/Components/FaviconComponent.js | |||
@@ -1,91 +1,88 @@ | |||
1 | /* | 1 | /* |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | */ | 24 | */ |
28 | 25 | ||
29 | Clipperz.Base.module('Clipperz.PM.UI.Common.Components'); | 26 | Clipperz.Base.module('Clipperz.PM.UI.Common.Components'); |
30 | 27 | ||
31 | Clipperz.PM.UI.Common.Components.FaviconComponent = function(args) { | 28 | Clipperz.PM.UI.Common.Components.FaviconComponent = function(args) { |
32 | args = args || {}; | 29 | args = args || {}; |
33 | 30 | ||
34 | Clipperz.PM.UI.Common.Components.FaviconComponent.superclass.constructor.apply(this, arguments); | 31 | Clipperz.PM.UI.Common.Components.FaviconComponent.superclass.constructor.apply(this, arguments); |
35 | 32 | ||
36 | this.render(); | 33 | this.render(); |
37 | this.setSrc(args.src); | 34 | this.setSrc(args.src); |
38 | 35 | ||
39 | return this; | 36 | return this; |
40 | } | 37 | } |
41 | 38 | ||
42 | //============================================================================= | 39 | //============================================================================= |
43 | 40 | ||
44 | Clipperz.Base.extend(Clipperz.PM.UI.Common.Components.FaviconComponent, Clipperz.PM.UI.Common.Components.BaseComponent, { | 41 | Clipperz.Base.extend(Clipperz.PM.UI.Common.Components.FaviconComponent, Clipperz.PM.UI.Common.Components.BaseComponent, { |
45 | 42 | ||
46 | //------------------------------------------------------------------------- | 43 | //------------------------------------------------------------------------- |
47 | 44 | ||
48 | 'toString': function () { | 45 | 'toString': function () { |
49 | return "Clipperz.PM.UI.Common.Components.FaviconComponent component"; | 46 | return "Clipperz.PM.UI.Common.Components.FaviconComponent component"; |
50 | }, | 47 | }, |
51 | 48 | ||
52 | //------------------------------------------------------------------------- | 49 | //------------------------------------------------------------------------- |
53 | 50 | ||
54 | 'src': function () { | 51 | 'src': function () { |
55 | return this.element().src; | 52 | return this.element().src; |
56 | }, | 53 | }, |
57 | 54 | ||
58 | 'setSrc': function (aValue) { | 55 | 'setSrc': function (aValue) { |
59 | this.element().src = (aValue || Clipperz.PM.Strings.getValue('defaultFaviconUrl')); | 56 | this.element().src = (aValue || Clipperz.PM.Strings.getValue('defaultFaviconUrl')); |
60 | }, | 57 | }, |
61 | 58 | ||
62 | //------------------------------------------------------------------------- | 59 | //------------------------------------------------------------------------- |
63 | 60 | ||
64 | 'clear': function () {}, | 61 | 'clear': function () {}, |
65 | 62 | ||
66 | //------------------------------------------------------------------------- | 63 | //------------------------------------------------------------------------- |
67 | 64 | ||
68 | 'renderSelf': function () { | 65 | 'renderSelf': function () { |
69 | MochiKit.Signal.connect(this.element(), 'onerror',this, 'setDefaultFavicon'); | 66 | MochiKit.Signal.connect(this.element(), 'onerror',this, 'setDefaultFavicon'); |
70 | MochiKit.Signal.connect(this.element(), 'onabort',this, 'setDefaultFavicon'); | 67 | MochiKit.Signal.connect(this.element(), 'onabort',this, 'setDefaultFavicon'); |
71 | MochiKit.Signal.connect(this.element(), 'onload',this, 'handleOnLoad'); | 68 | MochiKit.Signal.connect(this.element(), 'onload',this, 'handleOnLoad'); |
72 | }, | 69 | }, |
73 | 70 | ||
74 | //------------------------------------------------------------------------- | 71 | //------------------------------------------------------------------------- |
75 | 72 | ||
76 | 'setDefaultFavicon': function (anEvent) { | 73 | 'setDefaultFavicon': function (anEvent) { |
77 | MochiKit.Signal.disconnectAll(anEvent.src()); | 74 | MochiKit.Signal.disconnectAll(anEvent.src()); |
78 | this.setSrc(null); | 75 | this.setSrc(null); |
79 | }, | 76 | }, |
80 | 77 | ||
81 | 'handleOnLoad': function (anEvent) { | 78 | 'handleOnLoad': function (anEvent) { |
82 | MochiKit.Signal.disconnectAll(anEvent.src()); | 79 | MochiKit.Signal.disconnectAll(anEvent.src()); |
83 | //console.log("HANDLE ON LOAD", anEvent, anEvent.src().src); | 80 | //console.log("HANDLE ON LOAD", anEvent, anEvent.src().src); |
84 | if (anEvent.src().complete == false) { | 81 | if (anEvent.src().complete == false) { |
85 | this.setSrc(null); | 82 | this.setSrc(null); |
86 | } | 83 | } |
87 | }, | 84 | }, |
88 | 85 | ||
89 | //------------------------------------------------------------------------- | 86 | //------------------------------------------------------------------------- |
90 | __syntaxFix__: "syntax fix" | 87 | __syntaxFix__: "syntax fix" |
91 | }); | 88 | }); |
diff --git a/frontend/gamma/js/Clipperz/PM/UI/Common/Components/MessagePanelWithProgressBar.js b/frontend/gamma/js/Clipperz/PM/UI/Common/Components/MessagePanelWithProgressBar.js index 275bbed..2788b79 100644 --- a/frontend/gamma/js/Clipperz/PM/UI/Common/Components/MessagePanelWithProgressBar.js +++ b/frontend/gamma/js/Clipperz/PM/UI/Common/Components/MessagePanelWithProgressBar.js | |||
@@ -1,120 +1,117 @@ | |||
1 | /* | 1 | /* |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | */ | 24 | */ |
28 | 25 | ||
29 | Clipperz.Base.module('Clipperz.PM.UI.Common.Components'); | 26 | Clipperz.Base.module('Clipperz.PM.UI.Common.Components'); |
30 | 27 | ||
31 | Clipperz.PM.UI.Common.Components.MessagePanelWithProgressBar = function(args) { | 28 | Clipperz.PM.UI.Common.Components.MessagePanelWithProgressBar = function(args) { |
32 | args = args || {}; | 29 | args = args || {}; |
33 | 30 | ||
34 | Clipperz.PM.UI.Common.Components.MessagePanelWithProgressBar.superclass.constructor.apply(this, arguments); | 31 | Clipperz.PM.UI.Common.Components.MessagePanelWithProgressBar.superclass.constructor.apply(this, arguments); |
35 | 32 | ||
36 | // this._openFromElement = args.openFromElement || null; | 33 | // this._openFromElement = args.openFromElement || null; |
37 | this._onOkCloseToElement = args.onOkCloseToElement || null; | 34 | this._onOkCloseToElement = args.onOkCloseToElement || null; |
38 | this._onCancelCloseToElement = args.onCancelCloseToElement|| null; | 35 | this._onCancelCloseToElement = args.onCancelCloseToElement|| null; |
39 | 36 | ||
40 | this._canCancelWhileProcessing= ((typeof(args.canCancelWhileProcessing) == 'undefined') ? true : args.canCancelWhileProcessing); | 37 | this._canCancelWhileProcessing= ((typeof(args.canCancelWhileProcessing) == 'undefined') ? true : args.canCancelWhileProcessing); |
41 | 38 | ||
42 | return this; | 39 | return this; |
43 | } | 40 | } |
44 | 41 | ||
45 | //============================================================================= | 42 | //============================================================================= |
46 | 43 | ||
47 | Clipperz.Base.extend(Clipperz.PM.UI.Common.Components.MessagePanelWithProgressBar, Clipperz.PM.UI.Common.Components.SimpleMessagePanel, { | 44 | Clipperz.Base.extend(Clipperz.PM.UI.Common.Components.MessagePanelWithProgressBar, Clipperz.PM.UI.Common.Components.SimpleMessagePanel, { |
48 | 45 | ||
49 | //------------------------------------------------------------------------- | 46 | //------------------------------------------------------------------------- |
50 | 47 | ||
51 | 'toString': function () { | 48 | 'toString': function () { |
52 | return "Clipperz.PM.UI.Common.Components.MessagePanelWithProgressBar component"; | 49 | return "Clipperz.PM.UI.Common.Components.MessagePanelWithProgressBar component"; |
53 | }, | 50 | }, |
54 | 51 | ||
55 | //------------------------------------------------------------------------- | 52 | //------------------------------------------------------------------------- |
56 | /* | 53 | /* |
57 | 'openFromElement': function () { | 54 | 'openFromElement': function () { |
58 | return this._openFromElement; | 55 | return this._openFromElement; |
59 | }, | 56 | }, |
60 | */ | 57 | */ |
61 | //------------------------------------------------------------------------- | 58 | //------------------------------------------------------------------------- |
62 | 59 | ||
63 | 'onOkCloseToElement': function () { | 60 | 'onOkCloseToElement': function () { |
64 | return this._onOkCloseToElement; | 61 | return this._onOkCloseToElement; |
65 | }, | 62 | }, |
66 | 63 | ||
67 | 'setOnOkCloseToElement': function (anElement) { | 64 | 'setOnOkCloseToElement': function (anElement) { |
68 | this._onOkCloseToElement = anElement; | 65 | this._onOkCloseToElement = anElement; |
69 | }, | 66 | }, |
70 | 67 | ||
71 | //------------------------------------------------------------------------- | 68 | //------------------------------------------------------------------------- |
72 | 69 | ||
73 | 'onCancelCloseToElement': function () { | 70 | 'onCancelCloseToElement': function () { |
74 | return this._onCancelCloseToElement; | 71 | return this._onCancelCloseToElement; |
75 | }, | 72 | }, |
76 | 73 | ||
77 | 'setOnCancelCloseToElement': function (anElement) { | 74 | 'setOnCancelCloseToElement': function (anElement) { |
78 | this._onCancelCloseToElement = anElement; | 75 | this._onCancelCloseToElement = anElement; |
79 | }, | 76 | }, |
80 | 77 | ||
81 | //------------------------------------------------------------------------- | 78 | //------------------------------------------------------------------------- |
82 | 79 | ||
83 | 'canCancelWhileProcessing': function () { | 80 | 'canCancelWhileProcessing': function () { |
84 | return this._canCancelWhileProcessing; | 81 | return this._canCancelWhileProcessing; |
85 | }, | 82 | }, |
86 | 83 | ||
87 | //------------------------------------------------------------------------- | 84 | //------------------------------------------------------------------------- |
88 | 85 | ||
89 | 'deferredShowModal': function (someArgs, aResult) { | 86 | 'deferredShowModal': function (someArgs, aResult) { |
90 | if (someArgs['onOkCloseToElement'] != null) { | 87 | if (someArgs['onOkCloseToElement'] != null) { |
91 | this.setOnOkCloseToElement(someArgs['onOkCloseToElement']); | 88 | this.setOnOkCloseToElement(someArgs['onOkCloseToElement']); |
92 | } | 89 | } |
93 | 90 | ||
94 | if (someArgs['onCancelCloseToElement'] != null) { | 91 | if (someArgs['onCancelCloseToElement'] != null) { |
95 | this.setOnCancelCloseToElement(someArgs['onCancelCloseToElement']); | 92 | this.setOnCancelCloseToElement(someArgs['onCancelCloseToElement']); |
96 | } | 93 | } |
97 | 94 | ||
98 | Clipperz.PM.UI.Common.Components.MessagePanelWithProgressBar.superclass.deferredShowModal.apply(this, arguments); | 95 | Clipperz.PM.UI.Common.Components.MessagePanelWithProgressBar.superclass.deferredShowModal.apply(this, arguments); |
99 | return this.deferred(); | 96 | return this.deferred(); |
100 | }, | 97 | }, |
101 | 98 | ||
102 | //------------------------------------------------------------------------- | 99 | //------------------------------------------------------------------------- |
103 | 100 | ||
104 | 'showProgressBar': function () { | 101 | 'showProgressBar': function () { |
105 | varprogressBarElement; | 102 | varprogressBarElement; |
106 | 103 | ||
107 | this.getElement('container').innerHTML = ''; | 104 | this.getElement('container').innerHTML = ''; |
108 | 105 | ||
109 | progressBarElement = this.append(this.getElement('container'), {tag:'div', cls:'progressBarWrapper'}); | 106 | progressBarElement = this.append(this.getElement('container'), {tag:'div', cls:'progressBarWrapper'}); |
110 | this.addComponent(new Clipperz.PM.UI.Common.Components.ProgressBar({'element':progressBarElement})); | 107 | this.addComponent(new Clipperz.PM.UI.Common.Components.ProgressBar({'element':progressBarElement})); |
111 | 108 | ||
112 | if (this.canCancelWhileProcessing() == true) { | 109 | if (this.canCancelWhileProcessing() == true) { |
113 | this.setButtons([{text:"Cancel", result:'CANCEL'}]); | 110 | this.setButtons([{text:"Cancel", result:'CANCEL'}]); |
114 | } else { | 111 | } else { |
115 | this.setButtons([]); | 112 | this.setButtons([]); |
116 | } | 113 | } |
117 | }, | 114 | }, |
118 | 115 | ||
119 | //------------------------------------------------------------------------- | 116 | //------------------------------------------------------------------------- |
120 | 117 | ||
diff --git a/frontend/gamma/js/Clipperz/PM/UI/Common/Components/PasswordEntropyDisplay.js b/frontend/gamma/js/Clipperz/PM/UI/Common/Components/PasswordEntropyDisplay.js index c1b4f13..089e3d4 100644 --- a/frontend/gamma/js/Clipperz/PM/UI/Common/Components/PasswordEntropyDisplay.js +++ b/frontend/gamma/js/Clipperz/PM/UI/Common/Components/PasswordEntropyDisplay.js | |||
@@ -1,120 +1,117 @@ | |||
1 | /* | 1 | /* |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | */ | 24 | */ |
28 | 25 | ||
29 | Clipperz.Base.module('Clipperz.PM.UI.Common.Components'); | 26 | Clipperz.Base.module('Clipperz.PM.UI.Common.Components'); |
30 | 27 | ||
31 | Clipperz.PM.UI.Common.Components.PasswordEntropyDisplay = function(anElement, args) { | 28 | Clipperz.PM.UI.Common.Components.PasswordEntropyDisplay = function(anElement, args) { |
32 | args = args || {}; | 29 | args = args || {}; |
33 | 30 | ||
34 | //MochiKit.Logging.logDebug(">>> new TextFormField"); | 31 | //MochiKit.Logging.logDebug(">>> new TextFormField"); |
35 | Clipperz.PM.UI.Common.Components.PasswordEntropyDisplay.superclass.constructor.call(this, anElement, args); | 32 | Clipperz.PM.UI.Common.Components.PasswordEntropyDisplay.superclass.constructor.call(this, anElement, args); |
36 | 33 | ||
37 | this._wrapperElement = null; | 34 | this._wrapperElement = null; |
38 | this._entropyElement = null; | 35 | this._entropyElement = null; |
39 | 36 | ||
40 | this.render(); | 37 | this.render(); |
41 | //MochiKit.Logging.logDebug("<<< new TextFormField"); | 38 | //MochiKit.Logging.logDebug("<<< new TextFormField"); |
42 | 39 | ||
43 | return this; | 40 | return this; |
44 | }; | 41 | }; |
45 | 42 | ||
46 | Clipperz.Base.extend(Clipperz.PM.UI.Common.Components.PasswordEntropyDisplay, Clipperz.PM.UI.Common.Components.BaseComponent, { | 43 | Clipperz.Base.extend(Clipperz.PM.UI.Common.Components.PasswordEntropyDisplay, Clipperz.PM.UI.Common.Components.BaseComponent, { |
47 | 44 | ||
48 | 'toString': function() { | 45 | 'toString': function() { |
49 | return "Clipperz.PM.UI.Common.Components.PasswordEntropyDisplay"; | 46 | return "Clipperz.PM.UI.Common.Components.PasswordEntropyDisplay"; |
50 | }, | 47 | }, |
51 | 48 | ||
52 | //----------------------------------------------------- | 49 | //----------------------------------------------------- |
53 | 50 | ||
54 | 'wrapperElement': function() { | 51 | 'wrapperElement': function() { |
55 | return this._wrapperElement; | 52 | return this._wrapperElement; |
56 | }, | 53 | }, |
57 | 54 | ||
58 | 'setWrapperElement': function(aValue) { | 55 | 'setWrapperElement': function(aValue) { |
59 | this._wrapperElement = aValue; | 56 | this._wrapperElement = aValue; |
60 | }, | 57 | }, |
61 | 58 | ||
62 | //----------------------------------------------------- | 59 | //----------------------------------------------------- |
63 | 60 | ||
64 | 'passwordElement': function() { | 61 | 'passwordElement': function() { |
65 | return this.element(); | 62 | return this.element(); |
66 | }, | 63 | }, |
67 | 64 | ||
68 | //----------------------------------------------------- | 65 | //----------------------------------------------------- |
69 | 66 | ||
70 | 'entropyElement': function() { | 67 | 'entropyElement': function() { |
71 | return this._entropyElement; | 68 | return this._entropyElement; |
72 | }, | 69 | }, |
73 | 70 | ||
74 | 'setEntropyElement': function(aValue) { | 71 | 'setEntropyElement': function(aValue) { |
75 | this._entropyElement = aValue; | 72 | this._entropyElement = aValue; |
76 | }, | 73 | }, |
77 | 74 | ||
78 | //----------------------------------------------------- | 75 | //----------------------------------------------------- |
79 | 76 | ||
80 | 'render': function() { | 77 | 'render': function() { |
81 | /* | 78 | /* |
82 | MochiKit.Signal.disconnectAllTo(this); | 79 | MochiKit.Signal.disconnectAllTo(this); |
83 | 80 | ||
84 | this.setWrapperElement(this.element().wrap({tag:'div'})); | 81 | this.setWrapperElement(this.element().wrap({tag:'div'})); |
85 | this.setEntropyElement(Clipperz.DOM.Helper.append(this.wrapperElement().dom, {tag:'div', cls:'passwordEntropy', html:" "}, true)); | 82 | this.setEntropyElement(Clipperz.DOM.Helper.append(this.wrapperElement().dom, {tag:'div', cls:'passwordEntropy', html:" "}, true)); |
86 | // this.setEntropyElement(Clipperz.DOM.Helper.insertBefore(this.element(), {tag:'div', cls:'passwordEntropy', html:" "}, true)); | 83 | // this.setEntropyElement(Clipperz.DOM.Helper.insertBefore(this.element(), {tag:'div', cls:'passwordEntropy', html:" "}, true)); |
87 | this.entropyElement().wrap({tag:'div', cls:'passwordEntropyWrapper'}); | 84 | this.entropyElement().wrap({tag:'div', cls:'passwordEntropyWrapper'}); |
88 | 85 | ||
89 | this.updateEntropyElement(); | 86 | this.updateEntropyElement(); |
90 | 87 | ||
91 | this.connect('onkeyup', 'updateEntropyElement'); | 88 | this.connect('onkeyup', 'updateEntropyElement'); |
92 | this.connect('onchange', 'updateEntropyElement'); | 89 | this.connect('onchange', 'updateEntropyElement'); |
93 | this.connect('onblur', 'updateEntropyElement'); | 90 | this.connect('onblur', 'updateEntropyElement'); |
94 | */ | 91 | */ |
95 | MochiKit.Signal.disconnectAllTo(this); | 92 | MochiKit.Signal.disconnectAllTo(this); |
96 | 93 | ||
97 | this.setEntropyElement(this.element()); | 94 | this.setEntropyElement(this.element()); |
98 | this.entropyElement().addClass("entropyLevelIndicator"); | 95 | this.entropyElement().addClass("entropyLevelIndicator"); |
99 | 96 | ||
100 | this.updateEntropyElement(); | 97 | this.updateEntropyElement(); |
101 | 98 | ||
102 | this.connect('onkeyup', 'updateEntropyElement'); | 99 | this.connect('onkeyup', 'updateEntropyElement'); |
103 | this.connect('onchange', 'updateEntropyElement'); | 100 | this.connect('onchange', 'updateEntropyElement'); |
104 | this.connect('onblur', 'updateEntropyElement'); | 101 | this.connect('onblur', 'updateEntropyElement'); |
105 | }, | 102 | }, |
106 | 103 | ||
107 | //----------------------------------------------------- | 104 | //----------------------------------------------------- |
108 | 105 | ||
109 | 'computeEntropyForString': function(aValue) { | 106 | 'computeEntropyForString': function(aValue) { |
110 | return Clipperz.PM.Crypto.passwordEntropy(aValue); | 107 | return Clipperz.PM.Crypto.passwordEntropy(aValue); |
111 | }, | 108 | }, |
112 | 109 | ||
113 | //----------------------------------------------------- | 110 | //----------------------------------------------------- |
114 | 111 | ||
115 | 'updateEntropyElement': function(anEvent) { | 112 | 'updateEntropyElement': function(anEvent) { |
116 | /* | 113 | /* |
117 | //MochiKit.Logging.logDebug(">>> PasswordEntropyDisplay.updateEntropyElement"); | 114 | //MochiKit.Logging.logDebug(">>> PasswordEntropyDisplay.updateEntropyElement"); |
118 | varmaxExtent; | 115 | varmaxExtent; |
119 | varentropy; | 116 | varentropy; |
120 | 117 | ||
diff --git a/frontend/gamma/js/Clipperz/PM/UI/Common/Components/ProgressBar.js b/frontend/gamma/js/Clipperz/PM/UI/Common/Components/ProgressBar.js index 7e7f8fe..5991530 100644 --- a/frontend/gamma/js/Clipperz/PM/UI/Common/Components/ProgressBar.js +++ b/frontend/gamma/js/Clipperz/PM/UI/Common/Components/ProgressBar.js | |||
@@ -1,73 +1,70 @@ | |||
1 | /* | 1 | /* |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | */ | 24 | */ |
28 | 25 | ||
29 | Clipperz.Base.module('Clipperz.PM.UI.Common.Components'); | 26 | Clipperz.Base.module('Clipperz.PM.UI.Common.Components'); |
30 | 27 | ||
31 | Clipperz.PM.UI.Common.Components.ProgressBar = function(args) { | 28 | Clipperz.PM.UI.Common.Components.ProgressBar = function(args) { |
32 | args = args || {}; | 29 | args = args || {}; |
33 | 30 | ||
34 | Clipperz.PM.UI.Common.Components.ProgressBar.superclass.constructor.apply(this, arguments); | 31 | Clipperz.PM.UI.Common.Components.ProgressBar.superclass.constructor.apply(this, arguments); |
35 | 32 | ||
36 | this._element = args.element|| Clipperz.Base.exception.raise('MandatoryParameter'); | 33 | this._element = args.element|| Clipperz.Base.exception.raise('MandatoryParameter'); |
37 | 34 | ||
38 | this.renderSelf(); | 35 | this.renderSelf(); |
39 | 36 | ||
40 | MochiKit.Signal.connect(Clipperz.PM.UI.Common.Controllers.ProgressBarController.defaultController, 'updateProgress', this, 'updateProgressHandler') | 37 | MochiKit.Signal.connect(Clipperz.PM.UI.Common.Controllers.ProgressBarController.defaultController, 'updateProgress', this, 'updateProgressHandler') |
41 | 38 | ||
42 | return this; | 39 | return this; |
43 | } | 40 | } |
44 | 41 | ||
45 | //============================================================================= | 42 | //============================================================================= |
46 | 43 | ||
47 | Clipperz.Base.extend(Clipperz.PM.UI.Common.Components.ProgressBar, Clipperz.PM.UI.Common.Components.BaseComponent, { | 44 | Clipperz.Base.extend(Clipperz.PM.UI.Common.Components.ProgressBar, Clipperz.PM.UI.Common.Components.BaseComponent, { |
48 | 45 | ||
49 | //------------------------------------------------------------------------- | 46 | //------------------------------------------------------------------------- |
50 | 47 | ||
51 | 'toString': function () { | 48 | 'toString': function () { |
52 | return "Clipperz.PM.UI.Common.Components.ProgressBar component"; | 49 | return "Clipperz.PM.UI.Common.Components.ProgressBar component"; |
53 | }, | 50 | }, |
54 | 51 | ||
55 | //------------------------------------------------------------------------- | 52 | //------------------------------------------------------------------------- |
56 | 53 | ||
57 | 'renderSelf': function() { | 54 | 'renderSelf': function() { |
58 | this.append(this.element(), {tag:'div', cls:'loadingBar', children:[ | 55 | this.append(this.element(), {tag:'div', cls:'loadingBar', children:[ |
59 | {tag:'div', cls:'loadingBarProgressBox', children:[ | 56 | {tag:'div', cls:'loadingBarProgressBox', children:[ |
60 | {tag:'div', id:this.getId('loadingBarProgress'), cls:'loadingBarProgress'} | 57 | {tag:'div', id:this.getId('loadingBarProgress'), cls:'loadingBarProgress'} |
61 | ]} | 58 | ]} |
62 | ]}); | 59 | ]}); |
63 | }, | 60 | }, |
64 | 61 | ||
65 | //------------------------------------------------------------------------- | 62 | //------------------------------------------------------------------------- |
66 | 63 | ||
67 | 'updateProgressHandler': function (anEvent) { | 64 | 'updateProgressHandler': function (anEvent) { |
68 | MochiKit.Style.setElementDimensions(this.getId('loadingBarProgress'), {w:anEvent}, '%'); | 65 | MochiKit.Style.setElementDimensions(this.getId('loadingBarProgress'), {w:anEvent}, '%'); |
69 | }, | 66 | }, |
70 | 67 | ||
71 | //------------------------------------------------------------------------- | 68 | //------------------------------------------------------------------------- |
72 | __syntaxFix__: "syntax fix" | 69 | __syntaxFix__: "syntax fix" |
73 | }); | 70 | }); |
diff --git a/frontend/gamma/js/Clipperz/PM/UI/Common/Components/SimpleMessagePanel.js b/frontend/gamma/js/Clipperz/PM/UI/Common/Components/SimpleMessagePanel.js index b9bb850..1992154 100644 --- a/frontend/gamma/js/Clipperz/PM/UI/Common/Components/SimpleMessagePanel.js +++ b/frontend/gamma/js/Clipperz/PM/UI/Common/Components/SimpleMessagePanel.js | |||
@@ -1,120 +1,117 @@ | |||
1 | /* | 1 | /* |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | */ | 24 | */ |
28 | 25 | ||
29 | Clipperz.Base.module('Clipperz.PM.UI.Web.Components'); | 26 | Clipperz.Base.module('Clipperz.PM.UI.Web.Components'); |
30 | 27 | ||
31 | Clipperz.PM.UI.Common.Components.SimpleMessagePanel = function(args) { | 28 | Clipperz.PM.UI.Common.Components.SimpleMessagePanel = function(args) { |
32 | args = args || {}; | 29 | args = args || {}; |
33 | 30 | ||
34 | Clipperz.PM.UI.Common.Components.SimpleMessagePanel.superclass.constructor.apply(this, arguments); | 31 | Clipperz.PM.UI.Common.Components.SimpleMessagePanel.superclass.constructor.apply(this, arguments); |
35 | 32 | ||
36 | this._title = args.title || Clipperz.Base.exception.raise('MandatoryParameter'); | 33 | this._title = args.title || Clipperz.Base.exception.raise('MandatoryParameter'); |
37 | this._text = args.text || Clipperz.Base.exception.raise('MandatoryParameter'); | 34 | this._text = args.text || Clipperz.Base.exception.raise('MandatoryParameter'); |
38 | this._type = args.type || Clipperz.Base.exception.raise('MandatoryParameter'); //ALERT, INFO, ERROR | 35 | this._type = args.type || Clipperz.Base.exception.raise('MandatoryParameter'); //ALERT, INFO, ERROR |
39 | this._buttons = args.buttons || Clipperz.Base.exception.raise('MandatoryParameter'); | 36 | this._buttons = args.buttons || Clipperz.Base.exception.raise('MandatoryParameter'); |
40 | 37 | ||
41 | this._buttonComponents = []; | 38 | this._buttonComponents = []; |
42 | this._deferred = null; | 39 | this._deferred = null; |
43 | 40 | ||
44 | this.renderModalMask(); | 41 | this.renderModalMask(); |
45 | 42 | ||
46 | return this; | 43 | return this; |
47 | } | 44 | } |
48 | 45 | ||
49 | //============================================================================= | 46 | //============================================================================= |
50 | 47 | ||
51 | Clipperz.Base.extend(Clipperz.PM.UI.Common.Components.SimpleMessagePanel, Clipperz.PM.UI.Common.Components.BaseComponent, { | 48 | Clipperz.Base.extend(Clipperz.PM.UI.Common.Components.SimpleMessagePanel, Clipperz.PM.UI.Common.Components.BaseComponent, { |
52 | 49 | ||
53 | //------------------------------------------------------------------------- | 50 | //------------------------------------------------------------------------- |
54 | 51 | ||
55 | 'toString': function () { | 52 | 'toString': function () { |
56 | return "Clipperz.PM.UI.Common.Components.SimpleMessagePanel component"; | 53 | return "Clipperz.PM.UI.Common.Components.SimpleMessagePanel component"; |
57 | }, | 54 | }, |
58 | 55 | ||
59 | //------------------------------------------------------------------------- | 56 | //------------------------------------------------------------------------- |
60 | 57 | ||
61 | 'deferred': function() { | 58 | 'deferred': function() { |
62 | if (this._deferred == null) { | 59 | if (this._deferred == null) { |
63 | this._deferred = new Clipperz.Async.Deferred("SimpleMessagePanel.deferred", {trace:false}); | 60 | this._deferred = new Clipperz.Async.Deferred("SimpleMessagePanel.deferred", {trace:false}); |
64 | } | 61 | } |
65 | 62 | ||
66 | return this._deferred; | 63 | return this._deferred; |
67 | }, | 64 | }, |
68 | 65 | ||
69 | //------------------------------------------------------------------------- | 66 | //------------------------------------------------------------------------- |
70 | 67 | ||
71 | 'title': function () { | 68 | 'title': function () { |
72 | return this._title; | 69 | return this._title; |
73 | }, | 70 | }, |
74 | 71 | ||
75 | 'setTitle': function (aValue) { | 72 | 'setTitle': function (aValue) { |
76 | this._title = aValue; | 73 | this._title = aValue; |
77 | 74 | ||
78 | if (this.getElement('title') != null) { | 75 | if (this.getElement('title') != null) { |
79 | this.getElement('title').innerHTML = aValue; | 76 | this.getElement('title').innerHTML = aValue; |
80 | } | 77 | } |
81 | }, | 78 | }, |
82 | 79 | ||
83 | //------------------------------------------------------------------------- | 80 | //------------------------------------------------------------------------- |
84 | 81 | ||
85 | 'text': function () { | 82 | 'text': function () { |
86 | return this._text; | 83 | return this._text; |
87 | }, | 84 | }, |
88 | 85 | ||
89 | 'setText': function (aValue) { | 86 | 'setText': function (aValue) { |
90 | this._text = aValue; | 87 | this._text = aValue; |
91 | 88 | ||
92 | if (this.getElement('text') != null) { | 89 | if (this.getElement('text') != null) { |
93 | this.getElement('text').innerHTML = aValue; | 90 | this.getElement('text').innerHTML = aValue; |
94 | } | 91 | } |
95 | }, | 92 | }, |
96 | 93 | ||
97 | //------------------------------------------------------------------------- | 94 | //------------------------------------------------------------------------- |
98 | 95 | ||
99 | 'type': function () { | 96 | 'type': function () { |
100 | return this._type; | 97 | return this._type; |
101 | }, | 98 | }, |
102 | 99 | ||
103 | 'setType': function (aValue) { | 100 | 'setType': function (aValue) { |
104 | if (this.getElement('icon') != null) { | 101 | if (this.getElement('icon') != null) { |
105 | MochiKit.DOM.removeElementClass(this.getId('icon'), this._type); | 102 | MochiKit.DOM.removeElementClass(this.getId('icon'), this._type); |
106 | MochiKit.DOM.addElementClass(this.getId('icon'), aValue); | 103 | MochiKit.DOM.addElementClass(this.getId('icon'), aValue); |
107 | } | 104 | } |
108 | 105 | ||
109 | this._type = aValue; | 106 | this._type = aValue; |
110 | }, | 107 | }, |
111 | 108 | ||
112 | //------------------------------------------------------------------------- | 109 | //------------------------------------------------------------------------- |
113 | 110 | ||
114 | 'buttons': function () { | 111 | 'buttons': function () { |
115 | return this._buttons; | 112 | return this._buttons; |
116 | }, | 113 | }, |
117 | 114 | ||
118 | 'setButtons': function (someValues) { | 115 | 'setButtons': function (someValues) { |
119 | MochiKit.Iter.forEach(this.buttonComponents(), MochiKit.Base.methodcaller('clear')); | 116 | MochiKit.Iter.forEach(this.buttonComponents(), MochiKit.Base.methodcaller('clear')); |
120 | 117 | ||
diff --git a/frontend/gamma/js/Clipperz/PM/UI/Common/Components/TabPanelComponent.js b/frontend/gamma/js/Clipperz/PM/UI/Common/Components/TabPanelComponent.js index afb3bf9..936514a 100644 --- a/frontend/gamma/js/Clipperz/PM/UI/Common/Components/TabPanelComponent.js +++ b/frontend/gamma/js/Clipperz/PM/UI/Common/Components/TabPanelComponent.js | |||
@@ -1,69 +1,66 @@ | |||
1 | /* | 1 | /* |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | */ | 24 | */ |
28 | 25 | ||
29 | Clipperz.Base.module('Clipperz.PM.UI.Common.Components'); | 26 | Clipperz.Base.module('Clipperz.PM.UI.Common.Components'); |
30 | 27 | ||
31 | Clipperz.PM.UI.Common.Components.TabPanelComponent = function(args) { | 28 | Clipperz.PM.UI.Common.Components.TabPanelComponent = function(args) { |
32 | args = args || {}; | 29 | args = args || {}; |
33 | Clipperz.PM.UI.Common.Components.TabPanelComponent.superclass.constructor.call(this, args); | 30 | Clipperz.PM.UI.Common.Components.TabPanelComponent.superclass.constructor.call(this, args); |
34 | 31 | ||
35 | this._tabPanelController = null; | 32 | this._tabPanelController = null; |
36 | 33 | ||
37 | return this; | 34 | return this; |
38 | } | 35 | } |
39 | 36 | ||
40 | //============================================================================= | 37 | //============================================================================= |
41 | 38 | ||
42 | Clipperz.Base.extend(Clipperz.PM.UI.Common.Components.TabPanelComponent, Clipperz.PM.UI.Common.Components.BaseComponent, { | 39 | Clipperz.Base.extend(Clipperz.PM.UI.Common.Components.TabPanelComponent, Clipperz.PM.UI.Common.Components.BaseComponent, { |
43 | 40 | ||
44 | 'toString': function () { | 41 | 'toString': function () { |
45 | return "Clipperz.PM.UI.Common.Components.TabPanelComponent component"; | 42 | return "Clipperz.PM.UI.Common.Components.TabPanelComponent component"; |
46 | }, | 43 | }, |
47 | 44 | ||
48 | //------------------------------------------------------------------------- | 45 | //------------------------------------------------------------------------- |
49 | 46 | ||
50 | 'tabPanelControllerConfiguration': function() { | 47 | 'tabPanelControllerConfiguration': function() { |
51 | return this._tabPanelControllerConfiguration; | 48 | return this._tabPanelControllerConfiguration; |
52 | }, | 49 | }, |
53 | 50 | ||
54 | 'tabPanelController': function() { | 51 | 'tabPanelController': function() { |
55 | if (this._tabPanelController == null) { | 52 | if (this._tabPanelController == null) { |
56 | this._tabPanelController = new Clipperz.PM.UI.Common.Controllers.TabPanelController({component:this, configuration:this.tabPanelControllerConfiguration()}); | 53 | this._tabPanelController = new Clipperz.PM.UI.Common.Controllers.TabPanelController({component:this, configuration:this.tabPanelControllerConfiguration()}); |
57 | } | 54 | } |
58 | 55 | ||
59 | return this._tabPanelController; | 56 | return this._tabPanelController; |
60 | }, | 57 | }, |
61 | 58 | ||
62 | 'initiallySelectedTab': function() { | 59 | 'initiallySelectedTab': function() { |
63 | return this._initiallySelectedTab; | 60 | return this._initiallySelectedTab; |
64 | }, | 61 | }, |
65 | 62 | ||
66 | //------------------------------------------------------------------------- | 63 | //------------------------------------------------------------------------- |
67 | __syntaxFix__: "syntax fix" | 64 | __syntaxFix__: "syntax fix" |
68 | 65 | ||
69 | }); | 66 | }); |
diff --git a/frontend/gamma/js/Clipperz/PM/UI/Common/Components/Tooltip.js b/frontend/gamma/js/Clipperz/PM/UI/Common/Components/Tooltip.js index 7507b86..095e8ed 100644 --- a/frontend/gamma/js/Clipperz/PM/UI/Common/Components/Tooltip.js +++ b/frontend/gamma/js/Clipperz/PM/UI/Common/Components/Tooltip.js | |||
@@ -1,120 +1,117 @@ | |||
1 | /* | 1 | /* |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | */ | 24 | */ |
28 | 25 | ||
29 | Clipperz.Base.module('Clipperz.PM.UI.Common.Components'); | 26 | Clipperz.Base.module('Clipperz.PM.UI.Common.Components'); |
30 | 27 | ||
31 | Clipperz.PM.UI.Common.Components.Tooltip = function(args) { | 28 | Clipperz.PM.UI.Common.Components.Tooltip = function(args) { |
32 | args = args || {}; | 29 | args = args || {}; |
33 | 30 | ||
34 | Clipperz.PM.UI.Common.Components.Tooltip.superclass.constructor.apply(this, arguments); | 31 | Clipperz.PM.UI.Common.Components.Tooltip.superclass.constructor.apply(this, arguments); |
35 | 32 | ||
36 | this._element = args.element|| Clipperz.Base.exception.raise('MandatoryParameter'); | 33 | this._element = args.element|| Clipperz.Base.exception.raise('MandatoryParameter'); |
37 | this._text = args.text || Clipperz.Base.exception.raise('MandatoryParameter'); | 34 | this._text = args.text || Clipperz.Base.exception.raise('MandatoryParameter'); |
38 | this._position = args.position || 'BELOW'; //'BELOW', 'ABOVE', 'LEFT', 'RIGHT' | 35 | this._position = args.position || 'BELOW'; //'BELOW', 'ABOVE', 'LEFT', 'RIGHT' |
39 | 36 | ||
40 | this._boxDimensions = null; | 37 | this._boxDimensions = null; |
41 | this._enabled = (typeof(args.enabled) == 'undefined' ? true : args.enabled); | 38 | this._enabled = (typeof(args.enabled) == 'undefined' ? true : args.enabled); |
42 | this._isVisible = false; | 39 | this._isVisible = false; |
43 | 40 | ||
44 | this.renderSelf(); | 41 | this.renderSelf(); |
45 | 42 | ||
46 | return this; | 43 | return this; |
47 | } | 44 | } |
48 | 45 | ||
49 | //============================================================================= | 46 | //============================================================================= |
50 | 47 | ||
51 | Clipperz.Base.extend(Clipperz.PM.UI.Common.Components.Tooltip, Clipperz.PM.UI.Common.Components.BaseComponent, { | 48 | Clipperz.Base.extend(Clipperz.PM.UI.Common.Components.Tooltip, Clipperz.PM.UI.Common.Components.BaseComponent, { |
52 | 49 | ||
53 | //------------------------------------------------------------------------- | 50 | //------------------------------------------------------------------------- |
54 | 51 | ||
55 | 'toString': function () { | 52 | 'toString': function () { |
56 | return "Clipperz.PM.UI.Common.Components.Tooltip component"; | 53 | return "Clipperz.PM.UI.Common.Components.Tooltip component"; |
57 | }, | 54 | }, |
58 | 55 | ||
59 | //------------------------------------------------------------------------- | 56 | //------------------------------------------------------------------------- |
60 | 57 | ||
61 | 'text': function () { | 58 | 'text': function () { |
62 | return this._text; | 59 | return this._text; |
63 | }, | 60 | }, |
64 | 61 | ||
65 | 'setText': function (aValue) { | 62 | 'setText': function (aValue) { |
66 | this._text = aValue; | 63 | this._text = aValue; |
67 | }, | 64 | }, |
68 | 65 | ||
69 | //------------------------------------------------------------------------- | 66 | //------------------------------------------------------------------------- |
70 | 67 | ||
71 | 'position': function () { | 68 | 'position': function () { |
72 | return this._position; | 69 | return this._position; |
73 | }, | 70 | }, |
74 | 71 | ||
75 | 'setPosition': function (aValue) { | 72 | 'setPosition': function (aValue) { |
76 | this._position = aValue; | 73 | this._position = aValue; |
77 | }, | 74 | }, |
78 | 75 | ||
79 | //------------------------------------------------------------------------- | 76 | //------------------------------------------------------------------------- |
80 | 77 | ||
81 | 'enabled': function () { | 78 | 'enabled': function () { |
82 | return this._enabled; | 79 | return this._enabled; |
83 | }, | 80 | }, |
84 | 81 | ||
85 | 'setIsEnabled': function (aValue) { | 82 | 'setIsEnabled': function (aValue) { |
86 | this._enabled = aValue; | 83 | this._enabled = aValue; |
87 | }, | 84 | }, |
88 | 85 | ||
89 | //------------------------------------------------------------------------- | 86 | //------------------------------------------------------------------------- |
90 | 87 | ||
91 | 'isVisible': function () { | 88 | 'isVisible': function () { |
92 | return this._isVisible; | 89 | return this._isVisible; |
93 | }, | 90 | }, |
94 | 91 | ||
95 | 'setIsVisible': function (aValue) { | 92 | 'setIsVisible': function (aValue) { |
96 | this._isVisible = aValue; | 93 | this._isVisible = aValue; |
97 | }, | 94 | }, |
98 | 95 | ||
99 | //------------------------------------------------------------------------- | 96 | //------------------------------------------------------------------------- |
100 | 97 | ||
101 | 'renderSelf': function() { | 98 | 'renderSelf': function() { |
102 | // this.append(this.element(), {tag:'div', id:this.getId('tooltip'), cls:'tooltip ' + this.position(), children:[ | 99 | // this.append(this.element(), {tag:'div', id:this.getId('tooltip'), cls:'tooltip ' + this.position(), children:[ |
103 | // this.append(MochiKit.DOM.currentDocument().body, {tag:'div', id:this.getId('tooltip'), cls:'tooltip ' + this.position(), children:[ | 100 | // this.append(MochiKit.DOM.currentDocument().body, {tag:'div', id:this.getId('tooltip'), cls:'tooltip ' + this.position(), children:[ |
104 | this.append(MochiKit.DOM.getElement('Clipperz_PM_UI_Common_Components_Tooltip_wrapperNode'), {tag:'div', id:this.getId('tooltip'), cls:'tooltip ' + this.position(), children:[ | 101 | this.append(MochiKit.DOM.getElement('Clipperz_PM_UI_Common_Components_Tooltip_wrapperNode'), {tag:'div', id:this.getId('tooltip'), cls:'tooltip ' + this.position(), children:[ |
105 | {tag:'div', id:this.getId('body'), cls:'tooltip_body', children:[ | 102 | {tag:'div', id:this.getId('body'), cls:'tooltip_body', children:[ |
106 | {tag:'div', cls:'tooltip_text', children:[ | 103 | {tag:'div', cls:'tooltip_text', children:[ |
107 | {tag:'span', html:this.text()} | 104 | {tag:'span', html:this.text()} |
108 | ]}, | 105 | ]}, |
109 | {tag:'div', id:this.getId('footer'), cls:'tooltip_footer'} | 106 | {tag:'div', id:this.getId('footer'), cls:'tooltip_footer'} |
110 | ]}, | 107 | ]}, |
111 | {tag:'div', id:this.getId('arrow'), cls:'tooltip_arrow'} | 108 | {tag:'div', id:this.getId('arrow'), cls:'tooltip_arrow'} |
112 | ]}); | 109 | ]}); |
113 | 110 | ||
114 | this._boxDimensions = MochiKit.Style.getElementDimensions(this.getId('body')); | 111 | this._boxDimensions = MochiKit.Style.getElementDimensions(this.getId('body')); |
115 | // this._boxDimensions.h += MochiKit.Style.getElementDimensions(this.getId('footer')).h; | 112 | // this._boxDimensions.h += MochiKit.Style.getElementDimensions(this.getId('footer')).h; |
116 | 113 | ||
117 | MochiKit.Style.hideElement(this.displayElement()); | 114 | MochiKit.Style.hideElement(this.displayElement()); |
118 | MochiKit.Signal.connect(this.element(), 'onmouseenter', this, 'show'); | 115 | MochiKit.Signal.connect(this.element(), 'onmouseenter', this, 'show'); |
119 | MochiKit.Signal.connect(this.element(), 'onmouseleave', this, 'hide'); | 116 | MochiKit.Signal.connect(this.element(), 'onmouseleave', this, 'hide'); |
120 | }, | 117 | }, |
diff --git a/frontend/gamma/js/Clipperz/PM/UI/Common/Components/TranslatorWidget.js b/frontend/gamma/js/Clipperz/PM/UI/Common/Components/TranslatorWidget.js index c31969e..c41fc7c 100644 --- a/frontend/gamma/js/Clipperz/PM/UI/Common/Components/TranslatorWidget.js +++ b/frontend/gamma/js/Clipperz/PM/UI/Common/Components/TranslatorWidget.js | |||
@@ -1,120 +1,117 @@ | |||
1 | /* | 1 | /* |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | */ | 24 | */ |
28 | 25 | ||
29 | Clipperz.Base.module('Clipperz.PM.UI.Common.Components'); | 26 | Clipperz.Base.module('Clipperz.PM.UI.Common.Components'); |
30 | 27 | ||
31 | Clipperz.PM.UI.Common.Components.TranslatorWidget = function(args) { | 28 | Clipperz.PM.UI.Common.Components.TranslatorWidget = function(args) { |
32 | Clipperz.log(">>> TranslatorWidget.new"); | 29 | Clipperz.log(">>> TranslatorWidget.new"); |
33 | args = args || {}; | 30 | args = args || {}; |
34 | 31 | ||
35 | Clipperz.PM.UI.Common.Components.TranslatorWidget.superclass.constructor.apply(this, arguments); | 32 | Clipperz.PM.UI.Common.Components.TranslatorWidget.superclass.constructor.apply(this, arguments); |
36 | 33 | ||
37 | // this._element = args.element|| Clipperz.Base.exception.raise('MandatoryParameter'); | 34 | // this._element = args.element|| Clipperz.Base.exception.raise('MandatoryParameter'); |
38 | // this._stringID = args.stringID || MochiKit.DOM.getNodeAttribute(this.element(), 'stringID')|| Clipperz.Base.exception.raise('MandatoryParameter'); | 35 | // this._stringID = args.stringID || MochiKit.DOM.getNodeAttribute(this.element(), 'stringID')|| Clipperz.Base.exception.raise('MandatoryParameter'); |
39 | 36 | ||
40 | //MochiKit.Signal.connect(this.element(), 'onmouseenter', this, 'show'); | 37 | //MochiKit.Signal.connect(this.element(), 'onmouseenter', this, 'show'); |
41 | //MochiKit.Signal.connect(this.element(), 'onmouseleave', this, 'hide'); | 38 | //MochiKit.Signal.connect(this.element(), 'onmouseleave', this, 'hide'); |
42 | 39 | ||
43 | Clipperz.log("<<< TranslatorWidget.new"); | 40 | Clipperz.log("<<< TranslatorWidget.new"); |
44 | return this; | 41 | return this; |
45 | } | 42 | } |
46 | 43 | ||
47 | //============================================================================= | 44 | //============================================================================= |
48 | 45 | ||
49 | Clipperz.Base.extend(Clipperz.PM.UI.Common.Components.TranslatorWidget, Clipperz.PM.UI.Common.Components.BaseComponent, { | 46 | Clipperz.Base.extend(Clipperz.PM.UI.Common.Components.TranslatorWidget, Clipperz.PM.UI.Common.Components.BaseComponent, { |
50 | 47 | ||
51 | //------------------------------------------------------------------------- | 48 | //------------------------------------------------------------------------- |
52 | 49 | ||
53 | 'toString': function () { | 50 | 'toString': function () { |
54 | return "Clipperz.PM.UI.Common.Components.TranslatorWidget component"; | 51 | return "Clipperz.PM.UI.Common.Components.TranslatorWidget component"; |
55 | }, | 52 | }, |
56 | 53 | ||
57 | //------------------------------------------------------------------------- | 54 | //------------------------------------------------------------------------- |
58 | /* | 55 | /* |
59 | 'renderSelf': function() { | 56 | 'renderSelf': function() { |
60 | this.append(this.element(), {tag:'div', id:this.getId('tooltip'), cls:'tooltip ' + this.position(), children:[ | 57 | this.append(this.element(), {tag:'div', id:this.getId('tooltip'), cls:'tooltip ' + this.position(), children:[ |
61 | {tag:'div', id:this.getId('body'), cls:'tooltip_body', children:[ | 58 | {tag:'div', id:this.getId('body'), cls:'tooltip_body', children:[ |
62 | {tag:'div', cls:'tooltip_text', children:[ | 59 | {tag:'div', cls:'tooltip_text', children:[ |
63 | {tag:'span', html:this.text()} | 60 | {tag:'span', html:this.text()} |
64 | ]}, | 61 | ]}, |
65 | {tag:'div', id:this.getId('footer'), cls:'tooltip_footer'} | 62 | {tag:'div', id:this.getId('footer'), cls:'tooltip_footer'} |
66 | ]}, | 63 | ]}, |
67 | {tag:'div', id:this.getId('arrow'), cls:'tooltip_arrow'} | 64 | {tag:'div', id:this.getId('arrow'), cls:'tooltip_arrow'} |
68 | ]}); | 65 | ]}); |
69 | 66 | ||
70 | this._boxDimensions = MochiKit.Style.getElementDimensions(this.getId('body')); | 67 | this._boxDimensions = MochiKit.Style.getElementDimensions(this.getId('body')); |
71 | // this._boxDimensions.h += MochiKit.Style.getElementDimensions(this.getId('footer')).h; | 68 | // this._boxDimensions.h += MochiKit.Style.getElementDimensions(this.getId('footer')).h; |
72 | 69 | ||
73 | MochiKit.Style.hideElement(this.displayElement()); | 70 | MochiKit.Style.hideElement(this.displayElement()); |
74 | MochiKit.Signal.connect(this.element(), 'onmouseenter', this, 'show'); | 71 | MochiKit.Signal.connect(this.element(), 'onmouseenter', this, 'show'); |
75 | MochiKit.Signal.connect(this.element(), 'onmouseleave', this, 'hide'); | 72 | MochiKit.Signal.connect(this.element(), 'onmouseleave', this, 'hide'); |
76 | }, | 73 | }, |
77 | */ | 74 | */ |
78 | //----------------------------------------------------- | 75 | //----------------------------------------------------- |
79 | /* | 76 | /* |
80 | 'displayElement': function() { | 77 | 'displayElement': function() { |
81 | return this.getElement('tooltip'); | 78 | return this.getElement('tooltip'); |
82 | }, | 79 | }, |
83 | */ | 80 | */ |
84 | //------------------------------------------------------------------------- | 81 | //------------------------------------------------------------------------- |
85 | /* | 82 | /* |
86 | 'boxDimensions': function () { | 83 | 'boxDimensions': function () { |
87 | return this._boxDimensions; | 84 | return this._boxDimensions; |
88 | }, | 85 | }, |
89 | */ | 86 | */ |
90 | //------------------------------------------------------------------------- | 87 | //------------------------------------------------------------------------- |
91 | 88 | ||
92 | 'show': function (anElement, aStringID) { | 89 | 'show': function (anElement, aStringID) { |
93 | Clipperz.log(">>> Clipperz.PM.UI.Common.Components.TranslatorWidget.show: " + aStringID); | 90 | Clipperz.log(">>> Clipperz.PM.UI.Common.Components.TranslatorWidget.show: " + aStringID); |
94 | /* | 91 | /* |
95 | var elementSizeAndPosition; | 92 | var elementSizeAndPosition; |
96 | var arrowPosition; | 93 | var arrowPosition; |
97 | var bodyPosition; | 94 | var bodyPosition; |
98 | 95 | ||
99 | arrowPosition = {}; | 96 | arrowPosition = {}; |
100 | bodyPosition = {}; | 97 | bodyPosition = {}; |
101 | 98 | ||
102 | elementSizeAndPosition = Clipperz.Style.getSizeAndPosition(this.element()); | 99 | elementSizeAndPosition = Clipperz.Style.getSizeAndPosition(this.element()); |
103 | switch (this.position()) { | 100 | switch (this.position()) { |
104 | case 'ABOVE': | 101 | case 'ABOVE': |
105 | MochiKit.Style.setElementDimensions(this.getId('arrow'), {w:36, h:13}, 'px'); | 102 | MochiKit.Style.setElementDimensions(this.getId('arrow'), {w:36, h:13}, 'px'); |
106 | bodyPosition.x = elementSizeAndPosition.position.x + (elementSizeAndPosition.dimensions.w/2 - this.boxDimensions().w/2); | 103 | bodyPosition.x = elementSizeAndPosition.position.x + (elementSizeAndPosition.dimensions.w/2 - this.boxDimensions().w/2); |
107 | bodyPosition.y = elementSizeAndPosition.position.y - this.boxDimensions().h - 13; | 104 | bodyPosition.y = elementSizeAndPosition.position.y - this.boxDimensions().h - 13; |
108 | 105 | ||
109 | arrowPosition.x = elementSizeAndPosition.position.x + (elementSizeAndPosition.dimensions.w/2 - 36/2); | 106 | arrowPosition.x = elementSizeAndPosition.position.x + (elementSizeAndPosition.dimensions.w/2 - 36/2); |
110 | arrowPosition.y = elementSizeAndPosition.position.y - 13; | 107 | arrowPosition.y = elementSizeAndPosition.position.y - 13; |
111 | break; | 108 | break; |
112 | case 'BELOW': | 109 | case 'BELOW': |
113 | MochiKit.Style.setElementDimensions(this.getId('arrow'), {w:36, h:13}, 'px'); | 110 | MochiKit.Style.setElementDimensions(this.getId('arrow'), {w:36, h:13}, 'px'); |
114 | bodyPosition.x = elementSizeAndPosition.position.x + (elementSizeAndPosition.dimensions.w/2 - this.boxDimensions().w/2); | 111 | bodyPosition.x = elementSizeAndPosition.position.x + (elementSizeAndPosition.dimensions.w/2 - this.boxDimensions().w/2); |
115 | bodyPosition.y = elementSizeAndPosition.position.y + elementSizeAndPosition.dimensions.h + 13; | 112 | bodyPosition.y = elementSizeAndPosition.position.y + elementSizeAndPosition.dimensions.h + 13; |
116 | 113 | ||
117 | arrowPosition.x = elementSizeAndPosition.position.x + (elementSizeAndPosition.dimensions.w/2 - 36/2); | 114 | arrowPosition.x = elementSizeAndPosition.position.x + (elementSizeAndPosition.dimensions.w/2 - 36/2); |
118 | arrowPosition.y = elementSizeAndPosition.position.y + elementSizeAndPosition.dimensions.h; | 115 | arrowPosition.y = elementSizeAndPosition.position.y + elementSizeAndPosition.dimensions.h; |
119 | break; | 116 | break; |
120 | case 'LEFT': | 117 | case 'LEFT': |
diff --git a/frontend/gamma/js/Clipperz/PM/UI/Common/Controllers/DirectLoginRunner.js b/frontend/gamma/js/Clipperz/PM/UI/Common/Controllers/DirectLoginRunner.js index e534435..5fd10f9 100644 --- a/frontend/gamma/js/Clipperz/PM/UI/Common/Controllers/DirectLoginRunner.js +++ b/frontend/gamma/js/Clipperz/PM/UI/Common/Controllers/DirectLoginRunner.js | |||
@@ -1,120 +1,117 @@ | |||
1 | /* | 1 | /* |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | */ | 24 | */ |
28 | 25 | ||
29 | Clipperz.Base.module('Clipperz.PM.UI.Common.Controllers'); | 26 | Clipperz.Base.module('Clipperz.PM.UI.Common.Controllers'); |
30 | 27 | ||
31 | Clipperz.PM.UI.Common.Controllers.DirectLoginRunner = function(args) { | 28 | Clipperz.PM.UI.Common.Controllers.DirectLoginRunner = function(args) { |
32 | this._directLogin = args['directLogin'] || Clipperz.Base.exception.raise('MandatoryParameter'); | 29 | this._directLogin = args['directLogin'] || Clipperz.Base.exception.raise('MandatoryParameter'); |
33 | this._target = Clipperz.PM.Crypto.randomKey(); | 30 | this._target = Clipperz.PM.Crypto.randomKey(); |
34 | 31 | ||
35 | return this; | 32 | return this; |
36 | } | 33 | } |
37 | 34 | ||
38 | MochiKit.Base.update(Clipperz.PM.UI.Common.Controllers.DirectLoginRunner.prototype, { | 35 | MochiKit.Base.update(Clipperz.PM.UI.Common.Controllers.DirectLoginRunner.prototype, { |
39 | 36 | ||
40 | 'toString': function() { | 37 | 'toString': function() { |
41 | return "Clipperz.PM.UI.Common.Controllers.DirectLoginRunner"; | 38 | return "Clipperz.PM.UI.Common.Controllers.DirectLoginRunner"; |
42 | }, | 39 | }, |
43 | 40 | ||
44 | //----------------------------------------------------------------------------- | 41 | //----------------------------------------------------------------------------- |
45 | 42 | ||
46 | 'directLogin': function () { | 43 | 'directLogin': function () { |
47 | return this._directLogin; | 44 | return this._directLogin; |
48 | }, | 45 | }, |
49 | 46 | ||
50 | //----------------------------------------------------------------------------- | 47 | //----------------------------------------------------------------------------- |
51 | 48 | ||
52 | 'target': function () { | 49 | 'target': function () { |
53 | return this._target; | 50 | return this._target; |
54 | }, | 51 | }, |
55 | 52 | ||
56 | //============================================================================= | 53 | //============================================================================= |
57 | 54 | ||
58 | 'setWindowTitle': function (aWindow, aTitle) { | 55 | 'setWindowTitle': function (aWindow, aTitle) { |
59 | aWindow.document.title = aTitle; | 56 | aWindow.document.title = aTitle; |
60 | }, | 57 | }, |
61 | 58 | ||
62 | 'setWindowBody': function (aWindow, anHTML) { | 59 | 'setWindowBody': function (aWindow, anHTML) { |
63 | aWindow.document.body.innerHTML = anHTML; | 60 | aWindow.document.body.innerHTML = anHTML; |
64 | }, | 61 | }, |
65 | 62 | ||
66 | //============================================================================= | 63 | //============================================================================= |
67 | 64 | ||
68 | 'initialWindowSetup': function (aWindow) { | 65 | 'initialWindowSetup': function (aWindow) { |
69 | this.setWindowTitle(aWindow, "Loading Clipperz Direct Login"); | 66 | this.setWindowTitle(aWindow, "Loading Clipperz Direct Login"); |
70 | this.setWindowBody (aWindow, MochiKit.DOM.toHTML(MochiKit.DOM.H3("Loading Clipperz Direct Login ..."))); | 67 | this.setWindowBody (aWindow, MochiKit.DOM.toHTML(MochiKit.DOM.H3("Loading Clipperz Direct Login ..."))); |
71 | }, | 68 | }, |
72 | 69 | ||
73 | //----------------------------------------------------------------------------- | 70 | //----------------------------------------------------------------------------- |
74 | 71 | ||
75 | 'updateWindowWithDirectLoginLabel': function (aWindow, aLabel) { | 72 | 'updateWindowWithDirectLoginLabel': function (aWindow, aLabel) { |
76 | var titleText; | 73 | var titleText; |
77 | var bodyText; | 74 | var bodyText; |
78 | 75 | ||
79 | titleText = "Loading '__label__' Direct Login".replace(/__label__/, aLabel) | 76 | titleText = "Loading '__label__' Direct Login".replace(/__label__/, aLabel) |
80 | bodyText = "Loading '__label__' Direct Login... ".replace(/__label__/, aLabel) | 77 | bodyText = "Loading '__label__' Direct Login... ".replace(/__label__/, aLabel) |
81 | 78 | ||
82 | this.setWindowTitle(aWindow, titleText); | 79 | this.setWindowTitle(aWindow, titleText); |
83 | this.setWindowBody (aWindow, MochiKit.DOM.toHTML(MochiKit.DOM.H3(bodyText))); | 80 | this.setWindowBody (aWindow, MochiKit.DOM.toHTML(MochiKit.DOM.H3(bodyText))); |
84 | }, | 81 | }, |
85 | 82 | ||
86 | //----------------------------------------------------------------------------- | 83 | //----------------------------------------------------------------------------- |
87 | 84 | ||
88 | 'updateWindowWithHTMLContent': function (aWindow, anHtml) { | 85 | 'updateWindowWithHTMLContent': function (aWindow, anHtml) { |
89 | this.setWindowBody(aWindow, anHtml); | 86 | this.setWindowBody(aWindow, anHtml); |
90 | }, | 87 | }, |
91 | 88 | ||
92 | //============================================================================= | 89 | //============================================================================= |
93 | 90 | ||
94 | 'submitLoginForm': function(aWindow, aSubmitFunction) { | 91 | 'submitLoginForm': function(aWindow, aSubmitFunction) { |
95 | MochiKit.DOM.withWindow(aWindow, MochiKit.Base.bind(function () { | 92 | MochiKit.DOM.withWindow(aWindow, MochiKit.Base.bind(function () { |
96 | var formElement; | 93 | var formElement; |
97 | var submitButtons; | 94 | var submitButtons; |
98 | 95 | ||
99 | formElement = MochiKit.DOM.getElement('directLoginForm'); | 96 | formElement = MochiKit.DOM.getElement('directLoginForm'); |
100 | 97 | ||
101 | submitButtons = MochiKit.Base.filter(function(anInputElement) { | 98 | submitButtons = MochiKit.Base.filter(function(anInputElement) { |
102 | return ((anInputElement.tagName.toLowerCase() == 'input') && (anInputElement.getAttribute('type').toLowerCase() == 'submit')); | 99 | return ((anInputElement.tagName.toLowerCase() == 'input') && (anInputElement.getAttribute('type').toLowerCase() == 'submit')); |
103 | }, formElement.elements); | 100 | }, formElement.elements); |
104 | 101 | ||
105 | if (submitButtons.length == 0) { | 102 | if (submitButtons.length == 0) { |
106 | if (typeof(formElement.submit) == 'function') { | 103 | if (typeof(formElement.submit) == 'function') { |
107 | formElement.submit(); | 104 | formElement.submit(); |
108 | } else { | 105 | } else { |
109 | aSubmitFunction.apply(formElement); | 106 | aSubmitFunction.apply(formElement); |
110 | } | 107 | } |
111 | /* | 108 | /* |
112 | varformSubmitFunction; | 109 | varformSubmitFunction; |
113 | 110 | ||
114 | formSubmitFunction = MochiKit.Base.method(formElement, 'submit'); | 111 | formSubmitFunction = MochiKit.Base.method(formElement, 'submit'); |
115 | if (Clipperz_IEisBroken == true) { | 112 | if (Clipperz_IEisBroken == true) { |
116 | formElement.submit(); | 113 | formElement.submit(); |
117 | } else { | 114 | } else { |
118 | formSubmitFunction(); | 115 | formSubmitFunction(); |
119 | } | 116 | } |
120 | */ | 117 | */ |
diff --git a/frontend/gamma/js/Clipperz/PM/UI/Common/Controllers/ProgressBarController.js b/frontend/gamma/js/Clipperz/PM/UI/Common/Controllers/ProgressBarController.js index a4fa400..41fe17f 100644 --- a/frontend/gamma/js/Clipperz/PM/UI/Common/Controllers/ProgressBarController.js +++ b/frontend/gamma/js/Clipperz/PM/UI/Common/Controllers/ProgressBarController.js | |||
@@ -1,120 +1,117 @@ | |||
1 | /* | 1 | /* |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | */ | 24 | */ |
28 | 25 | ||
29 | Clipperz.Base.module('Clipperz.PM.UI.Common.Controllers'); | 26 | Clipperz.Base.module('Clipperz.PM.UI.Common.Controllers'); |
30 | 27 | ||
31 | Clipperz.PM.UI.Common.Controllers.ProgressBarController = function(args) { | 28 | Clipperz.PM.UI.Common.Controllers.ProgressBarController = function(args) { |
32 | args = args || {}; | 29 | args = args || {}; |
33 | 30 | ||
34 | this._numberOfSteps= 0; | 31 | this._numberOfSteps= 0; |
35 | this._currentStep= 0; | 32 | this._currentStep= 0; |
36 | 33 | ||
37 | MochiKit.Signal.connect(Clipperz.Signal.NotificationCenter, 'initProgress', this, 'initProgressHandle'); | 34 | MochiKit.Signal.connect(Clipperz.Signal.NotificationCenter, 'initProgress', this, 'initProgressHandle'); |
38 | MochiKit.Signal.connect(Clipperz.Signal.NotificationCenter, 'updateProgress',this, 'updateProgressHandle'); | 35 | MochiKit.Signal.connect(Clipperz.Signal.NotificationCenter, 'updateProgress',this, 'updateProgressHandle'); |
39 | MochiKit.Signal.connect(Clipperz.Signal.NotificationCenter, 'advanceProgress',this, 'advanceProgressHandle'); | 36 | MochiKit.Signal.connect(Clipperz.Signal.NotificationCenter, 'advanceProgress',this, 'advanceProgressHandle'); |
40 | MochiKit.Signal.connect(Clipperz.Signal.NotificationCenter, 'progressDone', this, 'progressDoneHandle'); | 37 | MochiKit.Signal.connect(Clipperz.Signal.NotificationCenter, 'progressDone', this, 'progressDoneHandle'); |
41 | 38 | ||
42 | return this; | 39 | return this; |
43 | } | 40 | } |
44 | 41 | ||
45 | MochiKit.Base.update(Clipperz.PM.UI.Common.Controllers.ProgressBarController.prototype, { | 42 | MochiKit.Base.update(Clipperz.PM.UI.Common.Controllers.ProgressBarController.prototype, { |
46 | 43 | ||
47 | 'toString': function() { | 44 | 'toString': function() { |
48 | return "Clipperz.PM.UI.Common.Controllers.ProgressBarController"; | 45 | return "Clipperz.PM.UI.Common.Controllers.ProgressBarController"; |
49 | }, | 46 | }, |
50 | 47 | ||
51 | //----------------------------------------------------------------------------- | 48 | //----------------------------------------------------------------------------- |
52 | 49 | ||
53 | 'numberOfSteps': function() { | 50 | 'numberOfSteps': function() { |
54 | return this._numberOfSteps; | 51 | return this._numberOfSteps; |
55 | }, | 52 | }, |
56 | 53 | ||
57 | 'setNumberOfSteps': function (aValue) { | 54 | 'setNumberOfSteps': function (aValue) { |
58 | this._numberOfSteps = aValue; | 55 | this._numberOfSteps = aValue; |
59 | }, | 56 | }, |
60 | 57 | ||
61 | 'updateNumberOfSteps': function (aValue) { | 58 | 'updateNumberOfSteps': function (aValue) { |
62 | this._numberOfSteps += aValue; | 59 | this._numberOfSteps += aValue; |
63 | }, | 60 | }, |
64 | 61 | ||
65 | //----------------------------------------------------------------------------- | 62 | //----------------------------------------------------------------------------- |
66 | 63 | ||
67 | 'currentStep': function() { | 64 | 'currentStep': function() { |
68 | return this._currentStep; | 65 | return this._currentStep; |
69 | }, | 66 | }, |
70 | 67 | ||
71 | 'advanceCurrentStep': function () { | 68 | 'advanceCurrentStep': function () { |
72 | this._currentStep ++; | 69 | this._currentStep ++; |
73 | }, | 70 | }, |
74 | 71 | ||
75 | //----------------------------------------------------------------------------- | 72 | //----------------------------------------------------------------------------- |
76 | 73 | ||
77 | 'completedPercentage': function () { | 74 | 'completedPercentage': function () { |
78 | var result; | 75 | var result; |
79 | //Clipperz.log(">>> completedPercentage" + this.currentStep() + "/" + this.numberOfSteps(), this.currentStep() / this.numberOfSteps()); | 76 | //Clipperz.log(">>> completedPercentage" + this.currentStep() + "/" + this.numberOfSteps(), this.currentStep() / this.numberOfSteps()); |
80 | if (this.numberOfSteps() == 0) { | 77 | if (this.numberOfSteps() == 0) { |
81 | result = 0; | 78 | result = 0; |
82 | } else { | 79 | } else { |
83 | result = (Math.min(100, 100 * (this.currentStep() / this.numberOfSteps()))); | 80 | result = (Math.min(100, 100 * (this.currentStep() / this.numberOfSteps()))); |
84 | } | 81 | } |
85 | //Clipperz.log("<<< completedPercentage", result); | 82 | //Clipperz.log("<<< completedPercentage", result); |
86 | return result; | 83 | return result; |
87 | }, | 84 | }, |
88 | 85 | ||
89 | //----------------------------------------------------------------------------- | 86 | //----------------------------------------------------------------------------- |
90 | 87 | ||
91 | 'resetStatus': function () { | 88 | 'resetStatus': function () { |
92 | this._numberOfSteps= 0; | 89 | this._numberOfSteps= 0; |
93 | this._currentStep= 0; | 90 | this._currentStep= 0; |
94 | }, | 91 | }, |
95 | 92 | ||
96 | //----------------------------------------------------------------------------- | 93 | //----------------------------------------------------------------------------- |
97 | 94 | ||
98 | 'updateProgress': function () { | 95 | 'updateProgress': function () { |
99 | //Clipperz.log(">>> updateProgress: " + this.completedPercentage() + "%"); | 96 | //Clipperz.log(">>> updateProgress: " + this.completedPercentage() + "%"); |
100 | MochiKit.Signal.signal(this, 'updateProgress', this.completedPercentage()); | 97 | MochiKit.Signal.signal(this, 'updateProgress', this.completedPercentage()); |
101 | }, | 98 | }, |
102 | 99 | ||
103 | //============================================================================= | 100 | //============================================================================= |
104 | 101 | ||
105 | 'initProgressHandle': function (anEvent) { | 102 | 'initProgressHandle': function (anEvent) { |
106 | //Clipperz.log(">>> initProgressHandle - steps: " + (anEvent != null ? anEvent['steps'] : 0)); | 103 | //Clipperz.log(">>> initProgressHandle - steps: " + (anEvent != null ? anEvent['steps'] : 0)); |
107 | this.resetStatus(); | 104 | this.resetStatus(); |
108 | if (anEvent != null) { | 105 | if (anEvent != null) { |
109 | this.setNumberOfSteps(anEvent['steps']); | 106 | this.setNumberOfSteps(anEvent['steps']); |
110 | } | 107 | } |
111 | MochiKit.Signal.signal(this, 'initProgress'); | 108 | MochiKit.Signal.signal(this, 'initProgress'); |
112 | this.updateProgress(); | 109 | this.updateProgress(); |
113 | }, | 110 | }, |
114 | 111 | ||
115 | //............................................................................. | 112 | //............................................................................. |
116 | 113 | ||
117 | 'updateProgressHandle': function (anEvent) { | 114 | 'updateProgressHandle': function (anEvent) { |
118 | this.updateNumberOfSteps(anEvent['extraSteps']); | 115 | this.updateNumberOfSteps(anEvent['extraSteps']); |
119 | //Clipperz.log("=== updateProgressHandle - steps: " + this.numberOfSteps() + " (extra " + anEvent['extraSteps'] + ")"); | 116 | //Clipperz.log("=== updateProgressHandle - steps: " + this.numberOfSteps() + " (extra " + anEvent['extraSteps'] + ")"); |
120 | this.updateProgress(); | 117 | this.updateProgress(); |
diff --git a/frontend/gamma/js/Clipperz/PM/UI/Common/Controllers/TabPanelController.js b/frontend/gamma/js/Clipperz/PM/UI/Common/Controllers/TabPanelController.js index fbc5929..341fde9 100644 --- a/frontend/gamma/js/Clipperz/PM/UI/Common/Controllers/TabPanelController.js +++ b/frontend/gamma/js/Clipperz/PM/UI/Common/Controllers/TabPanelController.js | |||
@@ -1,120 +1,117 @@ | |||
1 | /* | 1 | /* |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | */ | 24 | */ |
28 | 25 | ||
29 | Clipperz.Base.module('Clipperz.PM.UI.Common.Controllers'); | 26 | Clipperz.Base.module('Clipperz.PM.UI.Common.Controllers'); |
30 | 27 | ||
31 | Clipperz.PM.UI.Common.Controllers.TabPanelController = function(args) { | 28 | Clipperz.PM.UI.Common.Controllers.TabPanelController = function(args) { |
32 | args = args || {}; | 29 | args = args || {}; |
33 | 30 | ||
34 | this._component = args.component; | 31 | this._component = args.component; |
35 | this._configuration = args.configuration; | 32 | this._configuration = args.configuration; |
36 | this._isEnabled = args.enabled || true; | 33 | this._isEnabled = args.enabled || true; |
37 | 34 | ||
38 | this._selectedTab = null; | 35 | this._selectedTab = null; |
39 | return this; | 36 | return this; |
40 | } | 37 | } |
41 | 38 | ||
42 | MochiKit.Base.update(Clipperz.PM.UI.Common.Controllers.TabPanelController.prototype, { | 39 | MochiKit.Base.update(Clipperz.PM.UI.Common.Controllers.TabPanelController.prototype, { |
43 | 40 | ||
44 | 'toString': function() { | 41 | 'toString': function() { |
45 | return "Clipperz.PM.UI.Common.Controllers.TabPanelController"; | 42 | return "Clipperz.PM.UI.Common.Controllers.TabPanelController"; |
46 | }, | 43 | }, |
47 | 44 | ||
48 | //----------------------------------------------------------------------------- | 45 | //----------------------------------------------------------------------------- |
49 | 46 | ||
50 | 'component': function() { | 47 | 'component': function() { |
51 | return this._component; | 48 | return this._component; |
52 | }, | 49 | }, |
53 | 50 | ||
54 | 'configuration': function() { | 51 | 'configuration': function() { |
55 | return this._configuration; | 52 | return this._configuration; |
56 | }, | 53 | }, |
57 | 54 | ||
58 | //----------------------------------------------------------------------------- | 55 | //----------------------------------------------------------------------------- |
59 | 56 | ||
60 | 'getElement': function(anElementID) { | 57 | 'getElement': function(anElementID) { |
61 | return this.component().getElement(anElementID); | 58 | return this.component().getElement(anElementID); |
62 | }, | 59 | }, |
63 | 60 | ||
64 | 'tabForTabElement': function(anElement) { | 61 | 'tabForTabElement': function(anElement) { |
65 | varresult; | 62 | varresult; |
66 | 63 | ||
67 | for (result in this.configuration()) { | 64 | for (result in this.configuration()) { |
68 | if (this.getElement(this.configuration()[result]['tab']) == anElement) { | 65 | if (this.getElement(this.configuration()[result]['tab']) == anElement) { |
69 | break; | 66 | break; |
70 | } | 67 | } |
71 | } | 68 | } |
72 | 69 | ||
73 | return result; | 70 | return result; |
74 | }, | 71 | }, |
75 | 72 | ||
76 | //----------------------------------------------------------------------------- | 73 | //----------------------------------------------------------------------------- |
77 | 74 | ||
78 | 'setupTab': function(aConfiguration) { | 75 | 'setupTab': function(aConfiguration) { |
79 | vartabElement; | 76 | vartabElement; |
80 | 77 | ||
81 | tabElement = this.getElement(aConfiguration['tab']); | 78 | tabElement = this.getElement(aConfiguration['tab']); |
82 | 79 | ||
83 | MochiKit.DOM.removeElementClass(tabElement, 'selected'); | 80 | MochiKit.DOM.removeElementClass(tabElement, 'selected'); |
84 | MochiKit.Signal.connect(tabElement, 'onclick', this, 'handleTabClick') | 81 | MochiKit.Signal.connect(tabElement, 'onclick', this, 'handleTabClick') |
85 | }, | 82 | }, |
86 | 83 | ||
87 | 'setupPanel': function(aConfiguration) { | 84 | 'setupPanel': function(aConfiguration) { |
88 | this.hidePanel(aConfiguration['panel']); | 85 | this.hidePanel(aConfiguration['panel']); |
89 | }, | 86 | }, |
90 | 87 | ||
91 | 'setup': function(args) { | 88 | 'setup': function(args) { |
92 | args = args || {}; | 89 | args = args || {}; |
93 | 90 | ||
94 | MochiKit.Base.map(MochiKit.Base.method(this, 'setupTab'),MochiKit.Base.values(this.configuration())); | 91 | MochiKit.Base.map(MochiKit.Base.method(this, 'setupTab'),MochiKit.Base.values(this.configuration())); |
95 | MochiKit.Base.map(MochiKit.Base.method(this, 'setupPanel'),MochiKit.Base.values(this.configuration())); | 92 | MochiKit.Base.map(MochiKit.Base.method(this, 'setupPanel'),MochiKit.Base.values(this.configuration())); |
96 | this.selectTab(args.selected); | 93 | this.selectTab(args.selected); |
97 | }, | 94 | }, |
98 | 95 | ||
99 | //----------------------------------------------------------------------------- | 96 | //----------------------------------------------------------------------------- |
100 | 97 | ||
101 | 'hidePanel': function(aPanel) { | 98 | 'hidePanel': function(aPanel) { |
102 | MochiKit.DOM.removeElementClass(this.getElement(aPanel), 'selected'); | 99 | MochiKit.DOM.removeElementClass(this.getElement(aPanel), 'selected'); |
103 | }, | 100 | }, |
104 | 101 | ||
105 | 'selectTab': function(aTab) { | 102 | 'selectTab': function(aTab) { |
106 | if ((aTab != this.selectedTab()) && (this.isEnabled())) { | 103 | if ((aTab != this.selectedTab()) && (this.isEnabled())) { |
107 | if (this.selectedTab() != null) { | 104 | if (this.selectedTab() != null) { |
108 | MochiKit.DOM.removeElementClass(this.getElement(this.configuration()[this.selectedTab()]['tab']),'selected'); | 105 | MochiKit.DOM.removeElementClass(this.getElement(this.configuration()[this.selectedTab()]['tab']),'selected'); |
109 | MochiKit.DOM.removeElementClass(this.getElement(this.configuration()[this.selectedTab()]['panel']),'selected'); | 106 | MochiKit.DOM.removeElementClass(this.getElement(this.configuration()[this.selectedTab()]['panel']),'selected'); |
110 | } | 107 | } |
111 | 108 | ||
112 | if (aTab != null) { | 109 | if (aTab != null) { |
113 | MochiKit.DOM.addElementClass(this.getElement(this.configuration()[aTab]['tab']),'selected'); | 110 | MochiKit.DOM.addElementClass(this.getElement(this.configuration()[aTab]['tab']),'selected'); |
114 | MochiKit.DOM.addElementClass(this.getElement(this.configuration()[aTab]['panel']),'selected'); | 111 | MochiKit.DOM.addElementClass(this.getElement(this.configuration()[aTab]['panel']),'selected'); |
115 | } | 112 | } |
116 | 113 | ||
117 | this.setSelectedTab(aTab); | 114 | this.setSelectedTab(aTab); |
118 | MochiKit.Signal.signal(this, 'tabSelected', aTab); | 115 | MochiKit.Signal.signal(this, 'tabSelected', aTab); |
119 | } | 116 | } |
120 | }, | 117 | }, |
diff --git a/frontend/gamma/js/Clipperz/PM/UI/Common/Controllers/WizardController.js b/frontend/gamma/js/Clipperz/PM/UI/Common/Controllers/WizardController.js index 868cea6..ef38bc6 100644 --- a/frontend/gamma/js/Clipperz/PM/UI/Common/Controllers/WizardController.js +++ b/frontend/gamma/js/Clipperz/PM/UI/Common/Controllers/WizardController.js | |||
@@ -1,31 +1,28 @@ | |||
1 | /* | 1 | /* |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | */ | 24 | */ |
28 | 25 | ||
29 | //Still empty, but here it should be reasonable to factor in code duplicated between | 26 | //Still empty, but here it should be reasonable to factor in code duplicated between |
30 | //- DirectLoginWizardController | 27 | //- DirectLoginWizardController |
31 | //- NewUserWizardController \ No newline at end of file | 28 | //- NewUserWizardController \ No newline at end of file |
diff --git a/frontend/gamma/js/Clipperz/PM/UI/Compact/MainController.js b/frontend/gamma/js/Clipperz/PM/UI/Compact/MainController.js index 22258f6..ea987cd 100644 --- a/frontend/gamma/js/Clipperz/PM/UI/Compact/MainController.js +++ b/frontend/gamma/js/Clipperz/PM/UI/Compact/MainController.js | |||
@@ -1,59 +1,56 @@ | |||
1 | /* | 1 | /* |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | */ | 24 | */ |
28 | 25 | ||
29 | Clipperz.Base.module('Clipperz.PM.UI.Compact'); | 26 | Clipperz.Base.module('Clipperz.PM.UI.Compact'); |
30 | 27 | ||
31 | Clipperz.PM.UI.Compact.MainController = function() { | 28 | Clipperz.PM.UI.Compact.MainController = function() { |
32 | //this._loginPanel = null; | 29 | //this._loginPanel = null; |
33 | //this._user = null; | 30 | //this._user = null; |
34 | // | 31 | // |
35 | //this._isRunningCompact = false; | 32 | //this._isRunningCompact = false; |
36 | // | 33 | // |
37 | //Clipperz.NotificationCenter.register(null, 'userConnected', this, 'userConnectedCallback'); | 34 | //Clipperz.NotificationCenter.register(null, 'userConnected', this, 'userConnectedCallback'); |
38 | //Clipperz.NotificationCenter.register(null, 'switchLanguage', this, 'switchLanguageHandler'); | 35 | //Clipperz.NotificationCenter.register(null, 'switchLanguage', this, 'switchLanguageHandler'); |
39 | // | 36 | // |
40 | //Clipperz.NotificationCenter.register(null, 'EXCEPTION', this, 'reportException'); | 37 | //Clipperz.NotificationCenter.register(null, 'EXCEPTION', this, 'reportException'); |
41 | 38 | ||
42 | return this; | 39 | return this; |
43 | } | 40 | } |
44 | 41 | ||
45 | MochiKit.Base.update(Clipperz.PM.UI.Compact.MainController.prototype, { | 42 | MochiKit.Base.update(Clipperz.PM.UI.Compact.MainController.prototype, { |
46 | 43 | ||
47 | 'toString': function() { | 44 | 'toString': function() { |
48 | return "Clipperz.PM.UI.Compact.MainController"; | 45 | return "Clipperz.PM.UI.Compact.MainController"; |
49 | }, | 46 | }, |
50 | 47 | ||
51 | //----------------------------------------------------------------------------- | 48 | //----------------------------------------------------------------------------- |
52 | 49 | ||
53 | 'run': function(shouldShowRegistrationForm) { | 50 | 'run': function(shouldShowRegistrationForm) { |
54 | MochiKit.Logging.logDebug("running " + this.toString()); | 51 | MochiKit.Logging.logDebug("running " + this.toString()); |
55 | }, | 52 | }, |
56 | 53 | ||
57 | //----------------------------------------------------------------------------- | 54 | //----------------------------------------------------------------------------- |
58 | __syntaxFix__: "syntax fix" | 55 | __syntaxFix__: "syntax fix" |
59 | }); \ No newline at end of file | 56 | }); \ No newline at end of file |
diff --git a/frontend/gamma/js/Clipperz/PM/UI/Web/Components/AccountPanel.js b/frontend/gamma/js/Clipperz/PM/UI/Web/Components/AccountPanel.js index 4378b19..ee6d7a3 100644 --- a/frontend/gamma/js/Clipperz/PM/UI/Web/Components/AccountPanel.js +++ b/frontend/gamma/js/Clipperz/PM/UI/Web/Components/AccountPanel.js | |||
@@ -1,120 +1,117 @@ | |||
1 | /* | 1 | /* |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | */ | 24 | */ |
28 | 25 | ||
29 | Clipperz.Base.module('Clipperz.PM.UI.Web.Components'); | 26 | Clipperz.Base.module('Clipperz.PM.UI.Web.Components'); |
30 | 27 | ||
31 | Clipperz.PM.UI.Web.Components.AccountPanel = function(args) { | 28 | Clipperz.PM.UI.Web.Components.AccountPanel = function(args) { |
32 | args = args || {}; | 29 | args = args || {}; |
33 | 30 | ||
34 | Clipperz.PM.UI.Web.Components.AccountPanel.superclass.constructor.apply(this, arguments); | 31 | Clipperz.PM.UI.Web.Components.AccountPanel.superclass.constructor.apply(this, arguments); |
35 | 32 | ||
36 | //this._initiallySelectedTab = args.selected || 'ACCOUNT'; | 33 | //this._initiallySelectedTab = args.selected || 'ACCOUNT'; |
37 | this._initiallySelectedTab = args.selected || 'PASSPHRASE'; | 34 | this._initiallySelectedTab = args.selected || 'PASSPHRASE'; |
38 | this._tabPanelControllerConfiguration = { | 35 | this._tabPanelControllerConfiguration = { |
39 | // 'ACCOUNT': { | 36 | // 'ACCOUNT': { |
40 | // tab:'accountTab', | 37 | // tab:'accountTab', |
41 | // panel:'accountPanel' | 38 | // panel:'accountPanel' |
42 | // }, | 39 | // }, |
43 | 'PASSPHRASE': { | 40 | 'PASSPHRASE': { |
44 | tab:'passphraseTab', | 41 | tab:'passphraseTab', |
45 | panel:'passphrasePanel' | 42 | panel:'passphrasePanel' |
46 | }, | 43 | }, |
47 | 'PREFERENCES': { | 44 | 'PREFERENCES': { |
48 | tab:'preferencesTab', | 45 | tab:'preferencesTab', |
49 | panel:'preferencesPanel' | 46 | panel:'preferencesPanel' |
50 | }, | 47 | }, |
51 | 'LOGIN_HISTORY': { | 48 | 'LOGIN_HISTORY': { |
52 | tab:'loginHistoryTab', | 49 | tab:'loginHistoryTab', |
53 | panel:'loginHistoryPanel' | 50 | panel:'loginHistoryPanel' |
54 | } | 51 | } |
55 | }; | 52 | }; |
56 | 53 | ||
57 | return this; | 54 | return this; |
58 | } | 55 | } |
59 | 56 | ||
60 | //============================================================================= | 57 | //============================================================================= |
61 | 58 | ||
62 | Clipperz.Base.extend(Clipperz.PM.UI.Web.Components.AccountPanel, Clipperz.PM.UI.Common.Components.TabPanelComponent, { | 59 | Clipperz.Base.extend(Clipperz.PM.UI.Web.Components.AccountPanel, Clipperz.PM.UI.Common.Components.TabPanelComponent, { |
63 | 60 | ||
64 | //------------------------------------------------------------------------- | 61 | //------------------------------------------------------------------------- |
65 | 62 | ||
66 | 'toString': function () { | 63 | 'toString': function () { |
67 | return "Clipperz.PM.UI.Web.Components.AccountPanel component"; | 64 | return "Clipperz.PM.UI.Web.Components.AccountPanel component"; |
68 | }, | 65 | }, |
69 | 66 | ||
70 | //------------------------------------------------------------------------- | 67 | //------------------------------------------------------------------------- |
71 | 68 | ||
72 | 'renderSelf': function(/*aContainer, aPosition*/) { | 69 | 'renderSelf': function(/*aContainer, aPosition*/) { |
73 | //Clipperz.log("AccountPanel.renderSelf element", this.element()); | 70 | //Clipperz.log("AccountPanel.renderSelf element", this.element()); |
74 | this.append(this.element(), [ | 71 | this.append(this.element(), [ |
75 | {tag:'div', cls:'header', children:[ | 72 | {tag:'div', cls:'header', children:[ |
76 | {tag:'div', cls:'subPanelTabs', children:[ | 73 | {tag:'div', cls:'subPanelTabs', children:[ |
77 | {tag:'ul', children:[ | 74 | {tag:'ul', children:[ |
78 | // {tag:'li', id:this.getId('accountTab'), children:[{tag:'a', href:'#', html:'Account'}], cls:'first'}, | 75 | // {tag:'li', id:this.getId('accountTab'), children:[{tag:'a', href:'#', html:'Account'}], cls:'first'}, |
79 | {tag:'li', id:this.getId('passphraseTab'), children:[{tag:'a', href:'#', html:'Passphrase'}], cls:'first'}, | 76 | {tag:'li', id:this.getId('passphraseTab'), children:[{tag:'a', href:'#', html:'Passphrase'}], cls:'first'}, |
80 | {tag:'li', id:this.getId('preferencesTab'), children:[{tag:'a', href:'#', html:'Preferences'}]}, | 77 | {tag:'li', id:this.getId('preferencesTab'), children:[{tag:'a', href:'#', html:'Preferences'}]}, |
81 | {tag:'li', id:this.getId('loginHistoryTab'),children:[{tag:'a', href:'#', html:'Login history'}]} | 78 | {tag:'li', id:this.getId('loginHistoryTab'),children:[{tag:'a', href:'#', html:'Login history'}]} |
82 | ]} | 79 | ]} |
83 | ]} | 80 | ]} |
84 | ]}, | 81 | ]}, |
85 | {tag:'div', cls:'body', children:[ | 82 | {tag:'div', cls:'body', children:[ |
86 | {tag:'div', cls:'accountPanel', children:[ | 83 | {tag:'div', cls:'accountPanel', children:[ |
87 | {tag:'div', cls:'subPanelContent', children:[ | 84 | {tag:'div', cls:'subPanelContent', children:[ |
88 | {tag:'ul', children:[ | 85 | {tag:'ul', children:[ |
89 | // {tag:'li', id:this.getId('accountPanel'),children:[ | 86 | // {tag:'li', id:this.getId('accountPanel'),children:[ |
90 | // {tag:'h3', html:"-- Account --"} | 87 | // {tag:'h3', html:"-- Account --"} |
91 | // ]}, | 88 | // ]}, |
92 | {tag:'li', id:this.getId('passphrasePanel'),children:[ | 89 | {tag:'li', id:this.getId('passphrasePanel'),children:[ |
93 | {tag:'h3', cls:'changePassphrase', html:"Change passphrase"}, | 90 | {tag:'h3', cls:'changePassphrase', html:"Change passphrase"}, |
94 | {tag:'form', id:this.getId('changePassphrase'), cls:'changePassphrase', children:[ | 91 | {tag:'form', id:this.getId('changePassphrase'), cls:'changePassphrase', children:[ |
95 | {tag:'div', cls:'currentCredentials', children:[ | 92 | {tag:'div', cls:'currentCredentials', children:[ |
96 | {tag:'div', cls:'field username', children:[ | 93 | {tag:'div', cls:'field username', children:[ |
97 | {tag:'label', html:"username", 'for':this.getId('currentUsername')}, | 94 | {tag:'label', html:"username", 'for':this.getId('currentUsername')}, |
98 | {tag:'input', id:this.getId('currentUsername')} | 95 | {tag:'input', id:this.getId('currentUsername')} |
99 | ]}, | 96 | ]}, |
100 | {tag:'div', cls:'field passphrase', children:[ | 97 | {tag:'div', cls:'field passphrase', children:[ |
101 | {tag:'label', html:"passphrase", 'for':this.getId('currentPassphrase')}, | 98 | {tag:'label', html:"passphrase", 'for':this.getId('currentPassphrase')}, |
102 | {tag:'input', id:this.getId('currentPassphrase')} | 99 | {tag:'input', id:this.getId('currentPassphrase')} |
103 | ]} | 100 | ]} |
104 | ]}, | 101 | ]}, |
105 | {tag:'div', cls:'newPassphrase', children:[ | 102 | {tag:'div', cls:'newPassphrase', children:[ |
106 | {tag:'div', cls:'field', children:[ | 103 | {tag:'div', cls:'field', children:[ |
107 | {tag:'label', html:"new passphrase", 'for':this.getId('newPassphrase')}, | 104 | {tag:'label', html:"new passphrase", 'for':this.getId('newPassphrase')}, |
108 | {tag:'input', id:this.getId('newPassphrase')} | 105 | {tag:'input', id:this.getId('newPassphrase')} |
109 | ]}, | 106 | ]}, |
110 | {tag:'div', cls:'field', children:[ | 107 | {tag:'div', cls:'field', children:[ |
111 | {tag:'label', html:"re-new passphrase", 'for':this.getId('reNewPassphrase')}, | 108 | {tag:'label', html:"re-new passphrase", 'for':this.getId('reNewPassphrase')}, |
112 | {tag:'input', id:this.getId('reNewPassphrase')} | 109 | {tag:'input', id:this.getId('reNewPassphrase')} |
113 | ]} | 110 | ]} |
114 | ]}, | 111 | ]}, |
115 | {tag:'div', cls:'confirm', children:[ | 112 | {tag:'div', cls:'confirm', children:[ |
116 | {tag:'input', type:'checkbox', id:this.getId('confirm')}, | 113 | {tag:'input', type:'checkbox', id:this.getId('confirm')}, |
117 | {tag:'label', html:"I understand that Clipperz will not be able to recover a lost passphrase", 'for':this.getId('confirm')} | 114 | {tag:'label', html:"I understand that Clipperz will not be able to recover a lost passphrase", 'for':this.getId('confirm')} |
118 | ]} | 115 | ]} |
119 | ]}, | 116 | ]}, |
120 | {tag:'div', cls:'clear'}, | 117 | {tag:'div', cls:'clear'}, |
diff --git a/frontend/gamma/js/Clipperz/PM/UI/Web/Components/AppPage.js b/frontend/gamma/js/Clipperz/PM/UI/Web/Components/AppPage.js index 67247df..3b3c8b4 100644 --- a/frontend/gamma/js/Clipperz/PM/UI/Web/Components/AppPage.js +++ b/frontend/gamma/js/Clipperz/PM/UI/Web/Components/AppPage.js | |||
@@ -1,78 +1,75 @@ | |||
1 | /* | 1 | /* |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | */ | 24 | */ |
28 | 25 | ||
29 | Clipperz.Base.module('Clipperz.PM.UI.Web.Components'); | 26 | Clipperz.Base.module('Clipperz.PM.UI.Web.Components'); |
30 | 27 | ||
31 | Clipperz.PM.UI.Web.Components.AppPage = function(args) { | 28 | Clipperz.PM.UI.Web.Components.AppPage = function(args) { |
32 | args = args || {}; | 29 | args = args || {}; |
33 | Clipperz.PM.UI.Web.Components.AppPage.superclass.constructor.call(this, args); | 30 | Clipperz.PM.UI.Web.Components.AppPage.superclass.constructor.call(this, args); |
34 | 31 | ||
35 | this._element = args.element || null; | 32 | this._element = args.element || null; |
36 | 33 | ||
37 | this._slots = { | 34 | this._slots = { |
38 | 'cardGrid' : this.getId('cardGrid'), | 35 | 'cardGrid' : this.getId('cardGrid'), |
39 | // 'directLoginGrid' : this.getId('directLoginGrid'), | 36 | // 'directLoginGrid' : this.getId('directLoginGrid'), |
40 | 'accountPanel': this.getId('accountPanel'), | 37 | 'accountPanel': this.getId('accountPanel'), |
41 | 'dataPanel': this.getId('dataPanel'), | 38 | 'dataPanel': this.getId('dataPanel'), |
42 | 'toolsPanel': this.getId('toolsPanel'), | 39 | 'toolsPanel': this.getId('toolsPanel'), |
43 | 'userInfoBox': this.getId('userInfoBox'), | 40 | 'userInfoBox': this.getId('userInfoBox'), |
44 | 'tabSidePanel': this.getId('tabSidePanel') | 41 | 'tabSidePanel': this.getId('tabSidePanel') |
45 | }; | 42 | }; |
46 | 43 | ||
47 | return this; | 44 | return this; |
48 | } | 45 | } |
49 | 46 | ||
50 | //============================================================================= | 47 | //============================================================================= |
51 | 48 | ||
52 | Clipperz.Base.extend(Clipperz.PM.UI.Web.Components.AppPage, Clipperz.PM.UI.Common.Components.BaseComponent, { | 49 | Clipperz.Base.extend(Clipperz.PM.UI.Web.Components.AppPage, Clipperz.PM.UI.Common.Components.BaseComponent, { |
53 | 50 | ||
54 | //------------------------------------------------------------------------- | 51 | //------------------------------------------------------------------------- |
55 | 52 | ||
56 | 'toString': function () { | 53 | 'toString': function () { |
57 | return "Clipperz.PM.UI.Web.Components.AppPage component"; | 54 | return "Clipperz.PM.UI.Web.Components.AppPage component"; |
58 | }, | 55 | }, |
59 | 56 | ||
60 | //------------------------------------------------------------------------- | 57 | //------------------------------------------------------------------------- |
61 | 58 | ||
62 | 'renderSelf': function(/*aContainer, aPosition*/) { | 59 | 'renderSelf': function(/*aContainer, aPosition*/) { |
63 | this.append(this.element(), {tag:'div', id:this.getId('userInfoBox'), cls:'userInfoBox'}); | 60 | this.append(this.element(), {tag:'div', id:this.getId('userInfoBox'), cls:'userInfoBox'}); |
64 | this.append(this.element(), {tag:'div', id:this.getId('sidePanels'), cls:'sidePanels'}); | 61 | this.append(this.element(), {tag:'div', id:this.getId('sidePanels'), cls:'sidePanels'}); |
65 | this.append(this.getId('sidePanels'),{tag:'div', id:this.getId('tabSidePanel'), cls:'tabSidePanel', children:[]}); | 62 | this.append(this.getId('sidePanels'),{tag:'div', id:this.getId('tabSidePanel'), cls:'tabSidePanel', children:[]}); |
66 | 63 | ||
67 | this.append(this.element(), {tag:'div', id:this.getId('mainPanels'), cls:'mainPanels'}); | 64 | this.append(this.element(), {tag:'div', id:this.getId('mainPanels'), cls:'mainPanels'}); |
68 | this.append(this.getId('mainPanels'), {tag:'div', id:this.getId('cardGrid'), cls:'gridComponent cardGrid'}); | 65 | this.append(this.getId('mainPanels'), {tag:'div', id:this.getId('cardGrid'), cls:'gridComponent cardGrid'}); |
69 | // this.append(this.getId('mainPanels'), {tag:'div', id:this.getId('directLoginGrid'), cls:'gridComponent directLoginGrid'}); | 66 | // this.append(this.getId('mainPanels'), {tag:'div', id:this.getId('directLoginGrid'), cls:'gridComponent directLoginGrid'}); |
70 | this.append(this.getId('mainPanels'), {tag:'div', id:this.getId('accountPanel'), cls:'otherPanel'}); | 67 | this.append(this.getId('mainPanels'), {tag:'div', id:this.getId('accountPanel'), cls:'otherPanel'}); |
71 | this.append(this.getId('mainPanels'), {tag:'div', id:this.getId('dataPanel'), cls:'otherPanel'}); | 68 | this.append(this.getId('mainPanels'), {tag:'div', id:this.getId('dataPanel'), cls:'otherPanel'}); |
72 | this.append(this.getId('mainPanels'), {tag:'div', id:this.getId('toolsPanel'), cls:'otherPanel'}); | 69 | this.append(this.getId('mainPanels'), {tag:'div', id:this.getId('toolsPanel'), cls:'otherPanel'}); |
73 | }, | 70 | }, |
74 | 71 | ||
75 | //------------------------------------------------------------------------- | 72 | //------------------------------------------------------------------------- |
76 | 73 | ||
77 | __syntaxFix__: "syntax fix" | 74 | __syntaxFix__: "syntax fix" |
78 | }); | 75 | }); |
diff --git a/frontend/gamma/js/Clipperz/PM/UI/Web/Components/BookmarkletComponent.js b/frontend/gamma/js/Clipperz/PM/UI/Web/Components/BookmarkletComponent.js index 42a6052..1835ca9 100644 --- a/frontend/gamma/js/Clipperz/PM/UI/Web/Components/BookmarkletComponent.js +++ b/frontend/gamma/js/Clipperz/PM/UI/Web/Components/BookmarkletComponent.js | |||
@@ -1,109 +1,106 @@ | |||
1 | /* | 1 | /* |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | */ | 24 | */ |
28 | 25 | ||
29 | Clipperz.Base.module('Clipperz.PM.UI.Web.Components'); | 26 | Clipperz.Base.module('Clipperz.PM.UI.Web.Components'); |
30 | 27 | ||
31 | Clipperz.PM.UI.Web.Components.BookmarkletComponent = function(args) { | 28 | Clipperz.PM.UI.Web.Components.BookmarkletComponent = function(args) { |
32 | args = args || {}; | 29 | args = args || {}; |
33 | 30 | ||
34 | Clipperz.PM.UI.Web.Components.BookmarkletComponent.superclass.constructor.apply(this, arguments); | 31 | Clipperz.PM.UI.Web.Components.BookmarkletComponent.superclass.constructor.apply(this, arguments); |
35 | MochiKit.Signal.connect(Clipperz.PM.Strings.Languages, 'switchLanguage', this, 'updateBookmarkletURLs'); | 32 | MochiKit.Signal.connect(Clipperz.PM.Strings.Languages, 'switchLanguage', this, 'updateBookmarkletURLs'); |
36 | 33 | ||
37 | return this; | 34 | return this; |
38 | } | 35 | } |
39 | 36 | ||
40 | //============================================================================= | 37 | //============================================================================= |
41 | 38 | ||
42 | Clipperz.Base.extend(Clipperz.PM.UI.Web.Components.BookmarkletComponent, Clipperz.PM.UI.Common.Components.BaseComponent, { | 39 | Clipperz.Base.extend(Clipperz.PM.UI.Web.Components.BookmarkletComponent, Clipperz.PM.UI.Common.Components.BaseComponent, { |
43 | 40 | ||
44 | //------------------------------------------------------------------------- | 41 | //------------------------------------------------------------------------- |
45 | 42 | ||
46 | 'toString': function () { | 43 | 'toString': function () { |
47 | return "Clipperz.PM.UI.Web.Components.BookmarkletComponent component"; | 44 | return "Clipperz.PM.UI.Web.Components.BookmarkletComponent component"; |
48 | }, | 45 | }, |
49 | 46 | ||
50 | //------------------------------------------------------------------------- | 47 | //------------------------------------------------------------------------- |
51 | 48 | ||
52 | 'renderSelf': function() { | 49 | 'renderSelf': function() { |
53 | // var bookmarkletUrl; | 50 | // var bookmarkletUrl; |
54 | // | 51 | // |
55 | // if (Clipperz_IEisBroken == true) { | 52 | // if (Clipperz_IEisBroken == true) { |
56 | // bookmarkletUrl = bookmarklet_ie; | 53 | // bookmarkletUrl = bookmarklet_ie; |
57 | // } else { | 54 | // } else { |
58 | /// bookmarkletUrl = bookmarklet; | 55 | /// bookmarkletUrl = bookmarklet; |
59 | // bookmarkletUrl = Clipperz.PM.Strings['bookmarklet']; | 56 | // bookmarkletUrl = Clipperz.PM.Strings['bookmarklet']; |
60 | // } | 57 | // } |
61 | 58 | ||
62 | this.append(this.element(), {tag:'div', cls:'bookmarklet', children: [ | 59 | this.append(this.element(), {tag:'div', cls:'bookmarklet', children: [ |
63 | {tag:'div', id:this.getId('linkBlock'), cls:'bookmarklet_link', children:[ | 60 | {tag:'div', id:this.getId('linkBlock'), cls:'bookmarklet_link', children:[ |
64 | // {tag:'a', id:this.getId('link'), href:bookmarkletUrl, children:[ | 61 | // {tag:'a', id:this.getId('link'), href:bookmarkletUrl, children:[ |
65 | {tag:'a', id:this.getId('link'), href:'#', children:[ | 62 | {tag:'a', id:this.getId('link'), href:'#', children:[ |
66 | {tag:'div', cls:'icon'}, | 63 | {tag:'div', cls:'icon'}, |
67 | {tag:'div', cls:'text', children:[ | 64 | {tag:'div', cls:'text', children:[ |
68 | {tag:'span', html:"add to Clipperz"} | 65 | {tag:'span', html:"add to Clipperz"} |
69 | ]} | 66 | ]} |
70 | ]} | 67 | ]} |
71 | ]} | 68 | ]} |
72 | ]}); | 69 | ]}); |
73 | 70 | ||
74 | new Clipperz.PM.UI.Common.Components.Tooltip({ | 71 | new Clipperz.PM.UI.Common.Components.Tooltip({ |
75 | element:this.getElement('linkBlock'), | 72 | element:this.getElement('linkBlock'), |
76 | text: "Drag and drop the \"add to Clipperz\" link above to the bookmark bar.", | 73 | text: "Drag and drop the \"add to Clipperz\" link above to the bookmark bar.", |
77 | position:'BELOW' | 74 | position:'BELOW' |
78 | }); | 75 | }); |
79 | 76 | ||
80 | MochiKit.Signal.connect(this.getId('link'), 'onclick', this, 'handleOnclick'); | 77 | MochiKit.Signal.connect(this.getId('link'), 'onclick', this, 'handleOnclick'); |
81 | this.updateBookmarkletURLs(); | 78 | this.updateBookmarkletURLs(); |
82 | }, | 79 | }, |
83 | 80 | ||
84 | //------------------------------------------------------------------------- | 81 | //------------------------------------------------------------------------- |
85 | 82 | ||
86 | 'handleOnclick': function (anEvent) { | 83 | 'handleOnclick': function (anEvent) { |
87 | anEvent.preventDefault(); | 84 | anEvent.preventDefault(); |
88 | 85 | ||
89 | Clipperz.log("BOOKMARKLET CLICK"); | 86 | Clipperz.log("BOOKMARKLET CLICK"); |
90 | }, | 87 | }, |
91 | 88 | ||
92 | //------------------------------------------------------------------------- | 89 | //------------------------------------------------------------------------- |
93 | 90 | ||
94 | 'updateBookmarkletURLs': function () { | 91 | 'updateBookmarkletURLs': function () { |
95 | var bookmarkletUrl; | 92 | var bookmarkletUrl; |
96 | 93 | ||
97 | if (Clipperz_IEisBroken == true) { | 94 | if (Clipperz_IEisBroken == true) { |
98 | bookmarkletUrl = bookmarklet_ie; | 95 | bookmarkletUrl = bookmarklet_ie; |
99 | } else { | 96 | } else { |
100 | // bookmarkletUrl = bookmarklet; | 97 | // bookmarkletUrl = bookmarklet; |
101 | bookmarkletUrl = Clipperz.PM.Strings.getValue('bookmarklet'); | 98 | bookmarkletUrl = Clipperz.PM.Strings.getValue('bookmarklet'); |
102 | } | 99 | } |
103 | 100 | ||
104 | this.getElement('link').href = bookmarkletUrl; | 101 | this.getElement('link').href = bookmarkletUrl; |
105 | }, | 102 | }, |
106 | 103 | ||
107 | //------------------------------------------------------------------------- | 104 | //------------------------------------------------------------------------- |
108 | __syntaxFix__: "syntax fix" | 105 | __syntaxFix__: "syntax fix" |
109 | }); | 106 | }); |
diff --git a/frontend/gamma/js/Clipperz/PM/UI/Web/Components/CardDialogComponent.js b/frontend/gamma/js/Clipperz/PM/UI/Web/Components/CardDialogComponent.js index e3238ca..af33d85 100644 --- a/frontend/gamma/js/Clipperz/PM/UI/Web/Components/CardDialogComponent.js +++ b/frontend/gamma/js/Clipperz/PM/UI/Web/Components/CardDialogComponent.js | |||
@@ -1,120 +1,117 @@ | |||
1 | /* | 1 | /* |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | */ | 24 | */ |
28 | 25 | ||
29 | Clipperz.Base.module('Clipperz.PM.UI.Web.Components'); | 26 | Clipperz.Base.module('Clipperz.PM.UI.Web.Components'); |
30 | 27 | ||
31 | Clipperz.PM.UI.Web.Components.CardDialogComponent = function(args) { | 28 | Clipperz.PM.UI.Web.Components.CardDialogComponent = function(args) { |
32 | args = args || {}; | 29 | args = args || {}; |
33 | 30 | ||
34 | Clipperz.PM.UI.Web.Components.CardDialogComponent.superclass.constructor.apply(this, arguments); | 31 | Clipperz.PM.UI.Web.Components.CardDialogComponent.superclass.constructor.apply(this, arguments); |
35 | 32 | ||
36 | this._tabPanelController = null; | 33 | this._tabPanelController = null; |
37 | 34 | ||
38 | this._tabPanelControllerConfiguration = { | 35 | this._tabPanelControllerConfiguration = { |
39 | 'DETAILS': { | 36 | 'DETAILS': { |
40 | tab:'detailTab', | 37 | tab:'detailTab', |
41 | panel:'detailTabpanel' | 38 | panel:'detailTabpanel' |
42 | }, | 39 | }, |
43 | 'DIRECT_LOGINS': { | 40 | 'DIRECT_LOGINS': { |
44 | tab:'directLoginTab', | 41 | tab:'directLoginTab', |
45 | panel:'directLoginTabpanel' | 42 | panel:'directLoginTabpanel' |
46 | }, | 43 | }, |
47 | 'SHARING': { | 44 | 'SHARING': { |
48 | tab:'sharingTab', | 45 | tab:'sharingTab', |
49 | panel:'sharingTabpanel' | 46 | panel:'sharingTabpanel' |
50 | } | 47 | } |
51 | }; | 48 | }; |
52 | 49 | ||
53 | this._tooltips = null; | 50 | this._tooltips = null; |
54 | 51 | ||
55 | this._isSavingEnabled = false; | 52 | this._isSavingEnabled = false; |
56 | this._hintMode = 'OFF'; //'ON' | 53 | this._hintMode = 'OFF'; //'ON' |
57 | 54 | ||
58 | this._fieldComponents = {}; | 55 | this._fieldComponents = {}; |
59 | this._directLoginComponents = {}; | 56 | this._directLoginComponents = {}; |
60 | 57 | ||
61 | this._displayMode = 'fixed'; //'scrollable'; | 58 | this._displayMode = 'fixed'; //'scrollable'; |
62 | 59 | ||
63 | return this; | 60 | return this; |
64 | } | 61 | } |
65 | 62 | ||
66 | //============================================================================= | 63 | //============================================================================= |
67 | 64 | ||
68 | Clipperz.Base.extend(Clipperz.PM.UI.Web.Components.CardDialogComponent, Clipperz.PM.UI.Common.Components.BaseComponent, { | 65 | Clipperz.Base.extend(Clipperz.PM.UI.Web.Components.CardDialogComponent, Clipperz.PM.UI.Common.Components.BaseComponent, { |
69 | 66 | ||
70 | //------------------------------------------------------------------------- | 67 | //------------------------------------------------------------------------- |
71 | 68 | ||
72 | 'toString': function () { | 69 | 'toString': function () { |
73 | return "Clipperz.PM.UI.Web.Components.CardDialogComponent component"; | 70 | return "Clipperz.PM.UI.Web.Components.CardDialogComponent component"; |
74 | }, | 71 | }, |
75 | 72 | ||
76 | //------------------------------------------------------------------------- | 73 | //------------------------------------------------------------------------- |
77 | 74 | ||
78 | 'tabPanelController': function () { | 75 | 'tabPanelController': function () { |
79 | if (this._tabPanelController == null) { | 76 | if (this._tabPanelController == null) { |
80 | this._tabPanelController = new Clipperz.PM.UI.Common.Controllers.TabPanelController({ | 77 | this._tabPanelController = new Clipperz.PM.UI.Common.Controllers.TabPanelController({ |
81 | component:this, | 78 | component:this, |
82 | configuration:this._tabPanelControllerConfiguration | 79 | configuration:this._tabPanelControllerConfiguration |
83 | }); | 80 | }); |
84 | 81 | ||
85 | MochiKit.Signal.connect(this._tabPanelController, 'tabSelected', this, 'handleTabSelected') | 82 | MochiKit.Signal.connect(this._tabPanelController, 'tabSelected', this, 'handleTabSelected') |
86 | } | 83 | } |
87 | 84 | ||
88 | return this._tabPanelController; | 85 | return this._tabPanelController; |
89 | }, | 86 | }, |
90 | 87 | ||
91 | //------------------------------------------------------------------------- | 88 | //------------------------------------------------------------------------- |
92 | 89 | ||
93 | 'renderSelf': function() { | 90 | 'renderSelf': function() { |
94 | this.append(this.element(), {tag:'div', cls:'CardDialog mainDialog loading', id:this.getId('panel'), children: [ | 91 | this.append(this.element(), {tag:'div', cls:'CardDialog mainDialog loading', id:this.getId('panel'), children: [ |
95 | {tag:'form', id:this.getId('form'), children:[ | 92 | {tag:'form', id:this.getId('form'), children:[ |
96 | // {tag:'input', type:'text', id:this.getId('hidden'), cls:'hidden'}, | 93 | // {tag:'input', type:'text', id:this.getId('hidden'), cls:'hidden'}, |
97 | {tag:'div', cls:'header', children:[ | 94 | {tag:'div', cls:'header', children:[ |
98 | {tag:'div', cls:'title', children:[ | 95 | {tag:'div', cls:'title', children:[ |
99 | {tag:'input', type:'text', id:this.getId('title')} | 96 | {tag:'input', type:'text', id:this.getId('title')} |
100 | ]} | 97 | ]} |
101 | ]}, | 98 | ]}, |
102 | {tag:'div', id:this.getId('body'), cls:'body', children:[ | 99 | {tag:'div', id:this.getId('body'), cls:'body', children:[ |
103 | {tag:'div', cls:'tabs', children:[ | 100 | {tag:'div', cls:'tabs', children:[ |
104 | {tag:'ul', cls:'tabs', children:[ | 101 | {tag:'ul', cls:'tabs', children:[ |
105 | {tag:'li', id:this.getId('detailTab'), children:[{tag:'span', html:"details"}]}, | 102 | {tag:'li', id:this.getId('detailTab'), children:[{tag:'span', html:"details"}]}, |
106 | {tag:'li', id:this.getId('directLoginTab'), children:[ | 103 | {tag:'li', id:this.getId('directLoginTab'), children:[ |
107 | {tag:'span', html:"direct logins"}//, | 104 | {tag:'span', html:"direct logins"}//, |
108 | // {tag:'div', id:this.getId('addDirectLoginButton'), cls:'addDirectLoginButton', children:[ | 105 | // {tag:'div', id:this.getId('addDirectLoginButton'), cls:'addDirectLoginButton', children:[ |
109 | // {tag:'span', html:"+"} | 106 | // {tag:'span', html:"+"} |
110 | // ]} | 107 | // ]} |
111 | ]}, | 108 | ]}, |
112 | {tag:'li', id:this.getId('sharingTab'), children:[{tag:'span', html:"sharing"}]} | 109 | {tag:'li', id:this.getId('sharingTab'), children:[{tag:'span', html:"sharing"}]} |
113 | ]} | 110 | ]} |
114 | ]}, | 111 | ]}, |
115 | {tag:'div', cls:'tabPanels', children:[ | 112 | {tag:'div', cls:'tabPanels', children:[ |
116 | {tag:'ul', cls:'tabPanels', children:[ | 113 | {tag:'ul', cls:'tabPanels', children:[ |
117 | {tag:'li', id:this.getId('detailTabpanel'), cls:'tabPanel', children:[ | 114 | {tag:'li', id:this.getId('detailTabpanel'), cls:'tabPanel', children:[ |
118 | {tag:'div', id:this.getId('recordFields'), children:[ | 115 | {tag:'div', id:this.getId('recordFields'), children:[ |
119 | {tag:'table', cls:'fields', cellpadding:'0', id:this.getId('fieldTable'), cellspacing:'0', children:[ | 116 | {tag:'table', cls:'fields', cellpadding:'0', id:this.getId('fieldTable'), cellspacing:'0', children:[ |
120 | {tag:'thead', children:[ | 117 | {tag:'thead', children:[ |
diff --git a/frontend/gamma/js/Clipperz/PM/UI/Web/Components/CardDialogRecordDirectLoginComponent.js b/frontend/gamma/js/Clipperz/PM/UI/Web/Components/CardDialogRecordDirectLoginComponent.js index 126c5b1..2e61f5f 100644 --- a/frontend/gamma/js/Clipperz/PM/UI/Web/Components/CardDialogRecordDirectLoginComponent.js +++ b/frontend/gamma/js/Clipperz/PM/UI/Web/Components/CardDialogRecordDirectLoginComponent.js | |||
@@ -1,120 +1,117 @@ | |||
1 | /* | 1 | /* |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | */ | 24 | */ |
28 | 25 | ||
29 | Clipperz.Base.module('Clipperz.PM.UI.Web.Components'); | 26 | Clipperz.Base.module('Clipperz.PM.UI.Web.Components'); |
30 | 27 | ||
31 | Clipperz.PM.UI.Web.Components.CardDialogRecordDirectLoginComponent = function(args) { | 28 | Clipperz.PM.UI.Web.Components.CardDialogRecordDirectLoginComponent = function(args) { |
32 | args = args || {}; | 29 | args = args || {}; |
33 | 30 | ||
34 | Clipperz.PM.UI.Web.Components.CardDialogRecordDirectLoginComponent.superclass.constructor.apply(this, arguments); | 31 | Clipperz.PM.UI.Web.Components.CardDialogRecordDirectLoginComponent.superclass.constructor.apply(this, arguments); |
35 | 32 | ||
36 | this._reference = args.reference|| Clipperz.Base.exception.raise('MandatoryParameter'); | 33 | this._reference = args.reference|| Clipperz.Base.exception.raise('MandatoryParameter'); |
37 | this._faviconComponent = null; | 34 | this._faviconComponent = null; |
38 | 35 | ||
39 | return this; | 36 | return this; |
40 | } | 37 | } |
41 | 38 | ||
42 | //============================================================================= | 39 | //============================================================================= |
43 | 40 | ||
44 | Clipperz.Base.extend(Clipperz.PM.UI.Web.Components.CardDialogRecordDirectLoginComponent, Clipperz.PM.UI.Common.Components.BaseComponent, { | 41 | Clipperz.Base.extend(Clipperz.PM.UI.Web.Components.CardDialogRecordDirectLoginComponent, Clipperz.PM.UI.Common.Components.BaseComponent, { |
45 | 42 | ||
46 | //------------------------------------------------------------------------- | 43 | //------------------------------------------------------------------------- |
47 | 44 | ||
48 | 'toString': function () { | 45 | 'toString': function () { |
49 | return "Clipperz.PM.UI.Web.Components.CardDialogRecordDirectLoginComponent component"; | 46 | return "Clipperz.PM.UI.Web.Components.CardDialogRecordDirectLoginComponent component"; |
50 | }, | 47 | }, |
51 | 48 | ||
52 | //------------------------------------------------------------------------- | 49 | //------------------------------------------------------------------------- |
53 | 50 | ||
54 | 'reference': function () { | 51 | 'reference': function () { |
55 | return this._reference; | 52 | return this._reference; |
56 | }, | 53 | }, |
57 | 54 | ||
58 | //------------------------------------------------------------------------- | 55 | //------------------------------------------------------------------------- |
59 | 56 | ||
60 | 'renderSelf': function() { | 57 | 'renderSelf': function() { |
61 | //console.log(">>> CardDialogRecordDirectLoginComponent.renderSelf"); | 58 | //console.log(">>> CardDialogRecordDirectLoginComponent.renderSelf"); |
62 | this.append(this.element(), [ | 59 | this.append(this.element(), [ |
63 | {tag:'div', cls:'cardDialogRecordDirectLoginComponent_favicon', children:[ | 60 | {tag:'div', cls:'cardDialogRecordDirectLoginComponent_favicon', children:[ |
64 | {tag:'img', cls:'favicon', id:this.getId('favicon')} | 61 | {tag:'img', cls:'favicon', id:this.getId('favicon')} |
65 | ]}, | 62 | ]}, |
66 | {tag:'div', cls:'cardDialogRecordDirectLoginComponent_label', children:[ | 63 | {tag:'div', cls:'cardDialogRecordDirectLoginComponent_label', children:[ |
67 | {tag:'input', id:this.getId('label'), type:'text'} | 64 | {tag:'input', id:this.getId('label'), type:'text'} |
68 | ]}, | 65 | ]}, |
69 | {tag:'div', cls:'open', children:[ | 66 | {tag:'div', cls:'open', children:[ |
70 | {tag:'span', children:[ | 67 | {tag:'span', children:[ |
71 | {tag:'a', href:'open', id:this.getId('open'), html:' '} | 68 | {tag:'a', href:'open', id:this.getId('open'), html:' '} |
72 | ]} | 69 | ]} |
73 | ]}, | 70 | ]}, |
74 | {tag:'div', cls:'edit', children:[ | 71 | {tag:'div', cls:'edit', children:[ |
75 | {tag:'span', children:[ | 72 | {tag:'span', children:[ |
76 | {tag:'a', href:'edit', id:this.getId('edit'), html:"edit"} | 73 | {tag:'a', href:'edit', id:this.getId('edit'), html:"edit"} |
77 | ]} | 74 | ]} |
78 | ]}, | 75 | ]}, |
79 | {tag:'div', cls:'delete', children:[ | 76 | {tag:'div', cls:'delete', children:[ |
80 | {tag:'span', children:[ | 77 | {tag:'span', children:[ |
81 | {tag:'a', href:'delete', id:this.getId('delete'), html:"delete"} | 78 | {tag:'a', href:'delete', id:this.getId('delete'), html:"delete"} |
82 | ]} | 79 | ]} |
83 | ]} | 80 | ]} |
84 | /* | 81 | /* |
85 | {tag:'td', cls:'fieldState'}, | 82 | {tag:'td', cls:'fieldState'}, |
86 | {tag:'td', cls:'fieldLabel', children:[ | 83 | {tag:'td', cls:'fieldLabel', children:[ |
87 | {tag:'input', cls:'label', id:this.getId('label')} | 84 | {tag:'input', cls:'label', id:this.getId('label')} |
88 | ]}, | 85 | ]}, |
89 | {tag:'td', cls:'fieldLock', children:[ | 86 | {tag:'td', cls:'fieldLock', children:[ |
90 | {tag:'div', cls:'unlocked', id:this.getId('isHidden')} | 87 | {tag:'div', cls:'unlocked', id:this.getId('isHidden')} |
91 | ]}, | 88 | ]}, |
92 | {tag:'td', cls:'fieldValue', children:[ | 89 | {tag:'td', cls:'fieldValue', children:[ |
93 | {tag:'div', cls:'unlocked', id:this.getId('valueWrapper'), children:[ | 90 | {tag:'div', cls:'unlocked', id:this.getId('valueWrapper'), children:[ |
94 | {tag:'input', type:'text', cls:'value', id:this.getId('value')} | 91 | {tag:'input', type:'text', cls:'value', id:this.getId('value')} |
95 | ]} | 92 | ]} |
96 | ]}, | 93 | ]}, |
97 | {tag:'td', cls:'fieldAddDelete', children:[ | 94 | {tag:'td', cls:'fieldAddDelete', children:[ |
98 | {tag:'div', cls:'delete', children:[ | 95 | {tag:'div', cls:'delete', children:[ |
99 | {tag:'span', children:[ | 96 | {tag:'span', children:[ |
100 | {tag:'a', href:'#', id:this.getId('delete'), html:"delete"} | 97 | {tag:'a', href:'#', id:this.getId('delete'), html:"delete"} |
101 | ]} | 98 | ]} |
102 | ]} | 99 | ]} |
103 | ]} | 100 | ]} |
104 | */ | 101 | */ |
105 | ]); | 102 | ]); |
106 | 103 | ||
107 | MochiKit.Signal.connect(this.getId('label'), 'onkeyup',MochiKit.Base.partial(MochiKit.Signal.signal, this, 'changedValue')); | 104 | MochiKit.Signal.connect(this.getId('label'), 'onkeyup',MochiKit.Base.partial(MochiKit.Signal.signal, this, 'changedValue')); |
108 | MochiKit.Signal.connect(this.getId('open'), 'onclick',this, 'openDirectLogin'); | 105 | MochiKit.Signal.connect(this.getId('open'), 'onclick',this, 'openDirectLogin'); |
109 | MochiKit.Signal.connect(this.getId('edit'), 'onclick',this, 'editDirectLogin'); | 106 | MochiKit.Signal.connect(this.getId('edit'), 'onclick',this, 'editDirectLogin'); |
110 | MochiKit.Signal.connect(this.getId('delete'), 'onclick',this, 'deleteDirectLogin'); | 107 | MochiKit.Signal.connect(this.getId('delete'), 'onclick',this, 'deleteDirectLogin'); |
111 | }, | 108 | }, |
112 | 109 | ||
113 | //------------------------------------------------------------------------- | 110 | //------------------------------------------------------------------------- |
114 | 111 | ||
115 | 'shouldShowElementWhileRendering': function () { | 112 | 'shouldShowElementWhileRendering': function () { |
116 | return false; | 113 | return false; |
117 | }, | 114 | }, |
118 | 115 | ||
119 | //------------------------------------------------------------------------- | 116 | //------------------------------------------------------------------------- |
120 | 117 | ||
diff --git a/frontend/gamma/js/Clipperz/PM/UI/Web/Components/CardDialogRecordFieldComponent.js b/frontend/gamma/js/Clipperz/PM/UI/Web/Components/CardDialogRecordFieldComponent.js index c1a7c13..b58062c 100644 --- a/frontend/gamma/js/Clipperz/PM/UI/Web/Components/CardDialogRecordFieldComponent.js +++ b/frontend/gamma/js/Clipperz/PM/UI/Web/Components/CardDialogRecordFieldComponent.js | |||
@@ -1,120 +1,117 @@ | |||
1 | /* | 1 | /* |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | */ | 24 | */ |
28 | 25 | ||
29 | Clipperz.Base.module('Clipperz.PM.UI.Web.Components'); | 26 | Clipperz.Base.module('Clipperz.PM.UI.Web.Components'); |
30 | 27 | ||
31 | Clipperz.PM.UI.Web.Components.CardDialogRecordFieldComponent = function(args) { | 28 | Clipperz.PM.UI.Web.Components.CardDialogRecordFieldComponent = function(args) { |
32 | args = args || {}; | 29 | args = args || {}; |
33 | 30 | ||
34 | Clipperz.PM.UI.Web.Components.CardDialogRecordFieldComponent.superclass.constructor.apply(this, arguments); | 31 | Clipperz.PM.UI.Web.Components.CardDialogRecordFieldComponent.superclass.constructor.apply(this, arguments); |
35 | 32 | ||
36 | this._reference = args.reference|| Clipperz.Base.exception.raise('MandatoryParameter'); | 33 | this._reference = args.reference|| Clipperz.Base.exception.raise('MandatoryParameter'); |
37 | this._actionType = null; | 34 | this._actionType = null; |
38 | 35 | ||
39 | return this; | 36 | return this; |
40 | } | 37 | } |
41 | 38 | ||
42 | //============================================================================= | 39 | //============================================================================= |
43 | 40 | ||
44 | Clipperz.Base.extend(Clipperz.PM.UI.Web.Components.CardDialogRecordFieldComponent, Clipperz.PM.UI.Common.Components.BaseComponent, { | 41 | Clipperz.Base.extend(Clipperz.PM.UI.Web.Components.CardDialogRecordFieldComponent, Clipperz.PM.UI.Common.Components.BaseComponent, { |
45 | 42 | ||
46 | //------------------------------------------------------------------------- | 43 | //------------------------------------------------------------------------- |
47 | 44 | ||
48 | 'toString': function () { | 45 | 'toString': function () { |
49 | return "Clipperz.PM.UI.Web.Components.CardDialogRecordFieldComponent component"; | 46 | return "Clipperz.PM.UI.Web.Components.CardDialogRecordFieldComponent component"; |
50 | }, | 47 | }, |
51 | 48 | ||
52 | //------------------------------------------------------------------------- | 49 | //------------------------------------------------------------------------- |
53 | 50 | ||
54 | 'renderSelf': function() { | 51 | 'renderSelf': function() { |
55 | this.append(this.element(), [ | 52 | this.append(this.element(), [ |
56 | {tag:'td', cls:'fieldState'}, | 53 | {tag:'td', cls:'fieldState'}, |
57 | {tag:'td', cls:'fieldLabel', children:[ | 54 | {tag:'td', cls:'fieldLabel', children:[ |
58 | {tag:'input', cls:'label', id:this.getId('label')} | 55 | {tag:'input', cls:'label', id:this.getId('label')} |
59 | ]}, | 56 | ]}, |
60 | {tag:'td', cls:'fieldLock', children:[ | 57 | {tag:'td', cls:'fieldLock', children:[ |
61 | {tag:'div', cls:'unlocked', id:this.getId('isHidden')} | 58 | {tag:'div', cls:'unlocked', id:this.getId('isHidden')} |
62 | ]}, | 59 | ]}, |
63 | {tag:'td', cls:'fieldValue', children:[ | 60 | {tag:'td', cls:'fieldValue', children:[ |
64 | {tag:'div', cls:'unlocked', id:this.getId('valueWrapper'), children:[ | 61 | {tag:'div', cls:'unlocked', id:this.getId('valueWrapper'), children:[ |
65 | {tag:'input', type:'text', cls:'value', id:this.getId('value')} | 62 | {tag:'input', type:'text', cls:'value', id:this.getId('value')} |
66 | ]} | 63 | ]} |
67 | ]}, | 64 | ]}, |
68 | {tag:'td', cls:'fieldAction', children:[ | 65 | {tag:'td', cls:'fieldAction', children:[ |
69 | {tag:'a', href:'#', id:this.getId('actionLink'), html:' '} | 66 | {tag:'a', href:'#', id:this.getId('actionLink'), html:' '} |
70 | ]}, | 67 | ]}, |
71 | {tag:'td', cls:'fieldAddDelete', children:[ | 68 | {tag:'td', cls:'fieldAddDelete', children:[ |
72 | {tag:'div', cls:'delete', children:[ | 69 | {tag:'div', cls:'delete', children:[ |
73 | {tag:'span', children:[ | 70 | {tag:'span', children:[ |
74 | {tag:'a', href:'#', id:this.getId('delete'), html:"delete"} | 71 | {tag:'a', href:'#', id:this.getId('delete'), html:"delete"} |
75 | ]} | 72 | ]} |
76 | ]} | 73 | ]} |
77 | ]} | 74 | ]} |
78 | ]); | 75 | ]); |
79 | 76 | ||
80 | MochiKit.Signal.connect(this.getId('label'), 'onkeyup',MochiKit.Base.partial(MochiKit.Signal.signal, this, 'changedValue')); | 77 | MochiKit.Signal.connect(this.getId('label'), 'onkeyup',MochiKit.Base.partial(MochiKit.Signal.signal, this, 'changedValue')); |
81 | MochiKit.Signal.connect(this.getId('isHidden'), 'onclick',this, 'toggleIsHidden'); | 78 | MochiKit.Signal.connect(this.getId('isHidden'), 'onclick',this, 'toggleIsHidden'); |
82 | MochiKit.Signal.connect(this.getId('value'), 'onkeyup',MochiKit.Base.partial(MochiKit.Signal.signal, this, 'changedValue')); | 79 | MochiKit.Signal.connect(this.getId('value'), 'onkeyup',MochiKit.Base.partial(MochiKit.Signal.signal, this, 'changedValue')); |
83 | MochiKit.Signal.connect(this.getId('actionLink'), 'onclick',this, 'handleActionLink'); | 80 | MochiKit.Signal.connect(this.getId('actionLink'), 'onclick',this, 'handleActionLink'); |
84 | MochiKit.Signal.connect(this.getId('delete'), 'onclick',this, 'deleteField'); | 81 | MochiKit.Signal.connect(this.getId('delete'), 'onclick',this, 'deleteField'); |
85 | // MochiKit.Signal.connect(this.getId('delete'), 'onclick',MochiKit.Base.partial(MochiKit.Signal.signal, this, 'deleteField', this.reference())); | 82 | // MochiKit.Signal.connect(this.getId('delete'), 'onclick',MochiKit.Base.partial(MochiKit.Signal.signal, this, 'deleteField', this.reference())); |
86 | }, | 83 | }, |
87 | 84 | ||
88 | //------------------------------------------------------------------------- | 85 | //------------------------------------------------------------------------- |
89 | 86 | ||
90 | 'shouldShowElementWhileRendering': function () { | 87 | 'shouldShowElementWhileRendering': function () { |
91 | return false; | 88 | return false; |
92 | }, | 89 | }, |
93 | 90 | ||
94 | //========================================================================= | 91 | //========================================================================= |
95 | 92 | ||
96 | 'reference': function () { | 93 | 'reference': function () { |
97 | return this._reference; | 94 | return this._reference; |
98 | }, | 95 | }, |
99 | 96 | ||
100 | //========================================================================= | 97 | //========================================================================= |
101 | 98 | ||
102 | 'label': function () { | 99 | 'label': function () { |
103 | return this.getElement('label').value; | 100 | return this.getElement('label').value; |
104 | }, | 101 | }, |
105 | 102 | ||
106 | 'setLabel': function (aValue) { | 103 | 'setLabel': function (aValue) { |
107 | // this.getElement('label').value = Clipperz.Base.sanitizeString(aValue); | 104 | // this.getElement('label').value = Clipperz.Base.sanitizeString(aValue); |
108 | this.getElement('label').value = aValue; | 105 | this.getElement('label').value = aValue; |
109 | }, | 106 | }, |
110 | 107 | ||
111 | //========================================================================= | 108 | //========================================================================= |
112 | 109 | ||
113 | 'value': function () { | 110 | 'value': function () { |
114 | return this.getElement('value').value; | 111 | return this.getElement('value').value; |
115 | }, | 112 | }, |
116 | 113 | ||
117 | 'setValue': function (aValue) { | 114 | 'setValue': function (aValue) { |
118 | // this.getElement('value').value = Clipperz.Base.sanitizeString(aValue); | 115 | // this.getElement('value').value = Clipperz.Base.sanitizeString(aValue); |
119 | this.getElement('value').value = aValue; | 116 | this.getElement('value').value = aValue; |
120 | }, | 117 | }, |
diff --git a/frontend/gamma/js/Clipperz/PM/UI/Web/Components/ColumnManager.js b/frontend/gamma/js/Clipperz/PM/UI/Web/Components/ColumnManager.js index bfc7e61..391c379 100644 --- a/frontend/gamma/js/Clipperz/PM/UI/Web/Components/ColumnManager.js +++ b/frontend/gamma/js/Clipperz/PM/UI/Web/Components/ColumnManager.js | |||
@@ -1,120 +1,117 @@ | |||
1 | /* | 1 | /* |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | */ | 24 | */ |
28 | 25 | ||
29 | Clipperz.Base.module('Clipperz.PM.UI.Web.Components'); | 26 | Clipperz.Base.module('Clipperz.PM.UI.Web.Components'); |
30 | 27 | ||
31 | //############################################################################# | 28 | //############################################################################# |
32 | 29 | ||
33 | Clipperz.PM.UI.Web.Components.ColumnManager = function(args) { | 30 | Clipperz.PM.UI.Web.Components.ColumnManager = function(args) { |
34 | args = args || {}; | 31 | args = args || {}; |
35 | Clipperz.PM.UI.Web.Components.ColumnManager.superclass.constructor.call(this, args); | 32 | Clipperz.PM.UI.Web.Components.ColumnManager.superclass.constructor.call(this, args); |
36 | 33 | ||
37 | this._name = args.name || Clipperz.Base.exception.raise('MandatoryParameter'); | 34 | this._name = args.name || Clipperz.Base.exception.raise('MandatoryParameter'); |
38 | this._selector = args.selector|| Clipperz.Base.exception.raise('MandatoryParameter');; | 35 | this._selector = args.selector|| Clipperz.Base.exception.raise('MandatoryParameter');; |
39 | this._label = args.label || null; | 36 | this._label = args.label || null; |
40 | this._isSortable = args.sortable|| false; | 37 | this._isSortable = args.sortable|| false; |
41 | this._comparator = args.comparator|| null; | 38 | this._comparator = args.comparator|| null; |
42 | this._sorted = args.sorted || 'UNSORTED'; //'ASCENDING' | 'DESCENDING' | 'UNSORTED' | 39 | this._sorted = args.sorted || 'UNSORTED'; //'ASCENDING' | 'DESCENDING' | 'UNSORTED' |
43 | this._cssClass = args.cssClass|| ''; | 40 | this._cssClass = args.cssClass|| ''; |
44 | 41 | ||
45 | this._signalIdentifiers = []; | 42 | this._signalIdentifiers = []; |
46 | 43 | ||
47 | return this; | 44 | return this; |
48 | } | 45 | } |
49 | 46 | ||
50 | //============================================================================= | 47 | //============================================================================= |
51 | 48 | ||
52 | Clipperz.Base.extend(Clipperz.PM.UI.Web.Components.ColumnManager, Clipperz.PM.UI.Common.Components.BaseComponent, { | 49 | Clipperz.Base.extend(Clipperz.PM.UI.Web.Components.ColumnManager, Clipperz.PM.UI.Common.Components.BaseComponent, { |
53 | 50 | ||
54 | 'toString': function () { | 51 | 'toString': function () { |
55 | return "Clipperz.PM.UI.Web.Components.ColumnManager - " + this._name; | 52 | return "Clipperz.PM.UI.Web.Components.ColumnManager - " + this._name; |
56 | }, | 53 | }, |
57 | 54 | ||
58 | 'name': function () { | 55 | 'name': function () { |
59 | return this._name; | 56 | return this._name; |
60 | }, | 57 | }, |
61 | 58 | ||
62 | 'label': function () { | 59 | 'label': function () { |
63 | return this._label; | 60 | return this._label; |
64 | }, | 61 | }, |
65 | 62 | ||
66 | 'selector': function () { | 63 | 'selector': function () { |
67 | return this._selector; | 64 | return this._selector; |
68 | }, | 65 | }, |
69 | 66 | ||
70 | 'comparator': function() { | 67 | 'comparator': function() { |
71 | return this._comparator; | 68 | return this._comparator; |
72 | }, | 69 | }, |
73 | 70 | ||
74 | 'cssClass': function() { | 71 | 'cssClass': function() { |
75 | return this._cssClass; | 72 | return this._cssClass; |
76 | }, | 73 | }, |
77 | 74 | ||
78 | //------------------------------------------------------------------------- | 75 | //------------------------------------------------------------------------- |
79 | 76 | ||
80 | 'isSortable': function () { | 77 | 'isSortable': function () { |
81 | return this._isSortable; | 78 | return this._isSortable; |
82 | }, | 79 | }, |
83 | 80 | ||
84 | //------------------------------------------------------------------------- | 81 | //------------------------------------------------------------------------- |
85 | 82 | ||
86 | 'sorted': function () { | 83 | 'sorted': function () { |
87 | return this._sorted; | 84 | return this._sorted; |
88 | }, | 85 | }, |
89 | 86 | ||
90 | 'isSorted': function () { | 87 | 'isSorted': function () { |
91 | return (this.sorted() != 'UNSORTED'); | 88 | return (this.sorted() != 'UNSORTED'); |
92 | }, | 89 | }, |
93 | 90 | ||
94 | 'setSorted': function(aValue) { | 91 | 'setSorted': function(aValue) { |
95 | this._sorted = aValue; | 92 | this._sorted = aValue; |
96 | this.updateSortIcon(); | 93 | this.updateSortIcon(); |
97 | }, | 94 | }, |
98 | 95 | ||
99 | //------------------------------------------------------------------------- | 96 | //------------------------------------------------------------------------- |
100 | 97 | ||
101 | 'signalIdentifiers': function () { | 98 | 'signalIdentifiers': function () { |
102 | return this._signalIdentifiers; | 99 | return this._signalIdentifiers; |
103 | }, | 100 | }, |
104 | 101 | ||
105 | 'resetSignalIdentifiers': function () { | 102 | 'resetSignalIdentifiers': function () { |
106 | this._signalIdentifiers = []; | 103 | this._signalIdentifiers = []; |
107 | }, | 104 | }, |
108 | 105 | ||
109 | //------------------------------------------------------------------------- | 106 | //------------------------------------------------------------------------- |
110 | 107 | ||
111 | 'disconnectRowsSignals': function () { | 108 | 'disconnectRowsSignals': function () { |
112 | MochiKit.Base.map(MochiKit.Signal.disconnect, this.signalIdentifiers()); | 109 | MochiKit.Base.map(MochiKit.Signal.disconnect, this.signalIdentifiers()); |
113 | this.resetSignalIdentifiers(); | 110 | this.resetSignalIdentifiers(); |
114 | }, | 111 | }, |
115 | 112 | ||
116 | 'connectEvent': function () { | 113 | 'connectEvent': function () { |
117 | var ident; | 114 | var ident; |
118 | 115 | ||
119 | ident = MochiKit.Signal.connect.apply(null, arguments); | 116 | ident = MochiKit.Signal.connect.apply(null, arguments); |
120 | this.signalIdentifiers().push(ident); | 117 | this.signalIdentifiers().push(ident); |
diff --git a/frontend/gamma/js/Clipperz/PM/UI/Web/Components/CreateNewCardSplashComponent.js b/frontend/gamma/js/Clipperz/PM/UI/Web/Components/CreateNewCardSplashComponent.js index 61d6ead..d3aa175 100644 --- a/frontend/gamma/js/Clipperz/PM/UI/Web/Components/CreateNewCardSplashComponent.js +++ b/frontend/gamma/js/Clipperz/PM/UI/Web/Components/CreateNewCardSplashComponent.js | |||
@@ -1,71 +1,68 @@ | |||
1 | /* | 1 | /* |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | */ | 24 | */ |
28 | 25 | ||
29 | Clipperz.Base.module('Clipperz.PM.UI.Web.Components'); | 26 | Clipperz.Base.module('Clipperz.PM.UI.Web.Components'); |
30 | 27 | ||
31 | Clipperz.PM.UI.Web.Components.CreateNewCardSplashComponent = function(args) { | 28 | Clipperz.PM.UI.Web.Components.CreateNewCardSplashComponent = function(args) { |
32 | args = args || {}; | 29 | args = args || {}; |
33 | 30 | ||
34 | Clipperz.PM.UI.Web.Components.CreateNewCardSplashComponent.superclass.constructor.apply(this, arguments); | 31 | Clipperz.PM.UI.Web.Components.CreateNewCardSplashComponent.superclass.constructor.apply(this, arguments); |
35 | 32 | ||
36 | return this; | 33 | return this; |
37 | } | 34 | } |
38 | 35 | ||
39 | //============================================================================= | 36 | //============================================================================= |
40 | 37 | ||
41 | Clipperz.Base.extend(Clipperz.PM.UI.Web.Components.CreateNewCardSplashComponent, Clipperz.PM.UI.Common.Components.BaseComponent, { | 38 | Clipperz.Base.extend(Clipperz.PM.UI.Web.Components.CreateNewCardSplashComponent, Clipperz.PM.UI.Common.Components.BaseComponent, { |
42 | 39 | ||
43 | //------------------------------------------------------------------------- | 40 | //------------------------------------------------------------------------- |
44 | 41 | ||
45 | 'toString': function () { | 42 | 'toString': function () { |
46 | return "Clipperz.PM.UI.Web.Components.CreateNewCardSplashComponent component"; | 43 | return "Clipperz.PM.UI.Web.Components.CreateNewCardSplashComponent component"; |
47 | }, | 44 | }, |
48 | 45 | ||
49 | //------------------------------------------------------------------------- | 46 | //------------------------------------------------------------------------- |
50 | 47 | ||
51 | 'renderSelf': function() { | 48 | 'renderSelf': function() { |
52 | this.append(this.element(), [ | 49 | this.append(this.element(), [ |
53 | {tag:'div', cls:'createNewCardSplash', id:this.getId('button'), children:[ | 50 | {tag:'div', cls:'createNewCardSplash', id:this.getId('button'), children:[ |
54 | {tag:'span', html:"Create New Card"} | 51 | {tag:'span', html:"Create New Card"} |
55 | ]} | 52 | ]} |
56 | ]); | 53 | ]); |
57 | 54 | ||
58 | MochiKit.Signal.connect(this.getElement('button'), 'onclick', this, 'handleClick'); | 55 | MochiKit.Signal.connect(this.getElement('button'), 'onclick', this, 'handleClick'); |
59 | }, | 56 | }, |
60 | 57 | ||
61 | //------------------------------------------------------------------------- | 58 | //------------------------------------------------------------------------- |
62 | 59 | ||
63 | 'handleClick': function (anEvent) { | 60 | 'handleClick': function (anEvent) { |
64 | anEvent.preventDefault(); | 61 | anEvent.preventDefault(); |
65 | MochiKit.Signal.signal(Clipperz.Signal.NotificationCenter, 'addCard', this.element()); | 62 | MochiKit.Signal.signal(Clipperz.Signal.NotificationCenter, 'addCard', this.element()); |
66 | }, | 63 | }, |
67 | 64 | ||
68 | //------------------------------------------------------------------------- | 65 | //------------------------------------------------------------------------- |
69 | 66 | ||
70 | __syntaxFix__: "syntax fix" | 67 | __syntaxFix__: "syntax fix" |
71 | }); | 68 | }); |
diff --git a/frontend/gamma/js/Clipperz/PM/UI/Web/Components/DataPanel.js b/frontend/gamma/js/Clipperz/PM/UI/Web/Components/DataPanel.js index 91d99e3..d2f1045 100644 --- a/frontend/gamma/js/Clipperz/PM/UI/Web/Components/DataPanel.js +++ b/frontend/gamma/js/Clipperz/PM/UI/Web/Components/DataPanel.js | |||
@@ -1,111 +1,108 @@ | |||
1 | /* | 1 | /* |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | */ | 24 | */ |
28 | 25 | ||
29 | Clipperz.Base.module('Clipperz.PM.UI.Web.Components'); | 26 | Clipperz.Base.module('Clipperz.PM.UI.Web.Components'); |
30 | 27 | ||
31 | Clipperz.PM.UI.Web.Components.DataPanel = function(args) { | 28 | Clipperz.PM.UI.Web.Components.DataPanel = function(args) { |
32 | args = args || {}; | 29 | args = args || {}; |
33 | 30 | ||
34 | Clipperz.PM.UI.Web.Components.DataPanel.superclass.constructor.apply(this, arguments); | 31 | Clipperz.PM.UI.Web.Components.DataPanel.superclass.constructor.apply(this, arguments); |
35 | 32 | ||
36 | this._initiallySelectedTab = args.selected || 'OFFLINE_COPY'; | 33 | this._initiallySelectedTab = args.selected || 'OFFLINE_COPY'; |
37 | this._tabPanelControllerConfiguration = { | 34 | this._tabPanelControllerConfiguration = { |
38 | 'OFFLINE_COPY': { | 35 | 'OFFLINE_COPY': { |
39 | tab:'offlineCopyTab', | 36 | tab:'offlineCopyTab', |
40 | panel:'offlineCopyPanel' | 37 | panel:'offlineCopyPanel' |
41 | }, | 38 | }, |
42 | 'SHARING': { | 39 | 'SHARING': { |
43 | tab:'sharingTab', | 40 | tab:'sharingTab', |
44 | panel:'sharingPanel' | 41 | panel:'sharingPanel' |
45 | }, | 42 | }, |
46 | 'IMPORT': { | 43 | 'IMPORT': { |
47 | tab:'importTab', | 44 | tab:'importTab', |
48 | panel:'importPanel' | 45 | panel:'importPanel' |
49 | }, | 46 | }, |
50 | 'EXPORT': { | 47 | 'EXPORT': { |
51 | tab:'exportTab', | 48 | tab:'exportTab', |
52 | panel:'exportPanel' | 49 | panel:'exportPanel' |
53 | } | 50 | } |
54 | }; | 51 | }; |
55 | 52 | ||
56 | return this; | 53 | return this; |
57 | } | 54 | } |
58 | 55 | ||
59 | //============================================================================= | 56 | //============================================================================= |
60 | 57 | ||
61 | Clipperz.Base.extend(Clipperz.PM.UI.Web.Components.DataPanel, Clipperz.PM.UI.Common.Components.TabPanelComponent, { | 58 | Clipperz.Base.extend(Clipperz.PM.UI.Web.Components.DataPanel, Clipperz.PM.UI.Common.Components.TabPanelComponent, { |
62 | 59 | ||
63 | //------------------------------------------------------------------------- | 60 | //------------------------------------------------------------------------- |
64 | 61 | ||
65 | 'toString': function () { | 62 | 'toString': function () { |
66 | return "Clipperz.PM.UI.Web.Components.DataPanel component"; | 63 | return "Clipperz.PM.UI.Web.Components.DataPanel component"; |
67 | }, | 64 | }, |
68 | 65 | ||
69 | //------------------------------------------------------------------------- | 66 | //------------------------------------------------------------------------- |
70 | 67 | ||
71 | 'renderSelf': function(/*aContainer, aPosition*/) { | 68 | 'renderSelf': function(/*aContainer, aPosition*/) { |
72 | this.append(this.element(), [ | 69 | this.append(this.element(), [ |
73 | {tag:'div', cls:'header', children:[ | 70 | {tag:'div', cls:'header', children:[ |
74 | {tag:'div', cls:'subPanelTabs', children:[ | 71 | {tag:'div', cls:'subPanelTabs', children:[ |
75 | {tag:'ul', children:[ | 72 | {tag:'ul', children:[ |
76 | {tag:'li', id:this.getId('offlineCopyTab'),children:[{tag:'a', href:'#', html:'Offline copy'}], cls:'first'}, | 73 | {tag:'li', id:this.getId('offlineCopyTab'),children:[{tag:'a', href:'#', html:'Offline copy'}], cls:'first'}, |
77 | {tag:'li', id:this.getId('sharingTab'), children:[{tag:'a', href:'#', html:'Sharing'}]}, | 74 | {tag:'li', id:this.getId('sharingTab'), children:[{tag:'a', href:'#', html:'Sharing'}]}, |
78 | {tag:'li', id:this.getId('importTab'), children:[{tag:'a', href:'#', html:'Import'}]}, | 75 | {tag:'li', id:this.getId('importTab'), children:[{tag:'a', href:'#', html:'Import'}]}, |
79 | {tag:'li', id:this.getId('exportTab'), children:[{tag:'a', href:'#', html:'Export'}]} | 76 | {tag:'li', id:this.getId('exportTab'), children:[{tag:'a', href:'#', html:'Export'}]} |
80 | ]} | 77 | ]} |
81 | ]} | 78 | ]} |
82 | ]}, | 79 | ]}, |
83 | {tag:'div', cls:'body', children:[ | 80 | {tag:'div', cls:'body', children:[ |
84 | {tag:'div', cls:'accountPanel', children:[ | 81 | {tag:'div', cls:'accountPanel', children:[ |
85 | {tag:'div', cls:'subPanelContent', children:[ | 82 | {tag:'div', cls:'subPanelContent', children:[ |
86 | {tag:'ul', children:[ | 83 | {tag:'ul', children:[ |
87 | {tag:'li', id:this.getId('offlineCopyPanel'),children:[ | 84 | {tag:'li', id:this.getId('offlineCopyPanel'),children:[ |
88 | {tag:'h3', html:"Offline copy"} | 85 | {tag:'h3', html:"Offline copy"} |
89 | ]}, | 86 | ]}, |
90 | {tag:'li', id:this.getId('sharingPanel'),children:[ | 87 | {tag:'li', id:this.getId('sharingPanel'),children:[ |
91 | {tag:'h3', html:"Sharing"} | 88 | {tag:'h3', html:"Sharing"} |
92 | ]}, | 89 | ]}, |
93 | {tag:'li', id:this.getId('importPanel'), children:[ | 90 | {tag:'li', id:this.getId('importPanel'), children:[ |
94 | {tag:'h3', html:"Import"} | 91 | {tag:'h3', html:"Import"} |
95 | ]}, | 92 | ]}, |
96 | {tag:'li', id:this.getId('exportPanel'), children:[ | 93 | {tag:'li', id:this.getId('exportPanel'), children:[ |
97 | {tag:'h3', html:"Export"} | 94 | {tag:'h3', html:"Export"} |
98 | ]} | 95 | ]} |
99 | ]} | 96 | ]} |
100 | ]} | 97 | ]} |
101 | ]} | 98 | ]} |
102 | ]}, | 99 | ]}, |
103 | {tag:'div', cls:'footer'} | 100 | {tag:'div', cls:'footer'} |
104 | ]); | 101 | ]); |
105 | 102 | ||
106 | this.tabPanelController().setup({selected:this.initiallySelectedTab()}); | 103 | this.tabPanelController().setup({selected:this.initiallySelectedTab()}); |
107 | }, | 104 | }, |
108 | 105 | ||
109 | //------------------------------------------------------------------------- | 106 | //------------------------------------------------------------------------- |
110 | __syntaxFix__: "syntax fix" | 107 | __syntaxFix__: "syntax fix" |
111 | }); | 108 | }); |
diff --git a/frontend/gamma/js/Clipperz/PM/UI/Web/Components/DateColumnManager.js b/frontend/gamma/js/Clipperz/PM/UI/Web/Components/DateColumnManager.js index 3f8aa88..ea55ba4 100644 --- a/frontend/gamma/js/Clipperz/PM/UI/Web/Components/DateColumnManager.js +++ b/frontend/gamma/js/Clipperz/PM/UI/Web/Components/DateColumnManager.js | |||
@@ -1,72 +1,69 @@ | |||
1 | /* | 1 | /* |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | */ | 24 | */ |
28 | 25 | ||
29 | Clipperz.Base.module('Clipperz.PM.UI.Web.Components'); | 26 | Clipperz.Base.module('Clipperz.PM.UI.Web.Components'); |
30 | 27 | ||
31 | //############################################################################# | 28 | //############################################################################# |
32 | 29 | ||
33 | Clipperz.PM.UI.Web.Components.DateColumnManager = function(args) { | 30 | Clipperz.PM.UI.Web.Components.DateColumnManager = function(args) { |
34 | args = args || {}; | 31 | args = args || {}; |
35 | Clipperz.PM.UI.Web.Components.DateColumnManager.superclass.constructor.call(this, args); | 32 | Clipperz.PM.UI.Web.Components.DateColumnManager.superclass.constructor.call(this, args); |
36 | 33 | ||
37 | this._format = args.format|| Clipperz.Base.exception.raise('MandatoryParameter'); | 34 | this._format = args.format|| Clipperz.Base.exception.raise('MandatoryParameter'); |
38 | 35 | ||
39 | return this; | 36 | return this; |
40 | } | 37 | } |
41 | 38 | ||
42 | //============================================================================= | 39 | //============================================================================= |
43 | 40 | ||
44 | Clipperz.Base.extend(Clipperz.PM.UI.Web.Components.DateColumnManager, Clipperz.PM.UI.Web.Components.ColumnManager, { | 41 | Clipperz.Base.extend(Clipperz.PM.UI.Web.Components.DateColumnManager, Clipperz.PM.UI.Web.Components.ColumnManager, { |
45 | 42 | ||
46 | 'toString': function () { | 43 | 'toString': function () { |
47 | return "Clipperz.PM.UI.Web.Components.DateColumnManager component"; | 44 | return "Clipperz.PM.UI.Web.Components.DateColumnManager component"; |
48 | }, | 45 | }, |
49 | 46 | ||
50 | //------------------------------------------------------------------------- | 47 | //------------------------------------------------------------------------- |
51 | 48 | ||
52 | 'format': function () { | 49 | 'format': function () { |
53 | return this._format; | 50 | return this._format; |
54 | }, | 51 | }, |
55 | 52 | ||
56 | //------------------------------------------------------------------------- | 53 | //------------------------------------------------------------------------- |
57 | 54 | ||
58 | 'renderCell': function(aRowElement, anObject) { | 55 | 'renderCell': function(aRowElement, anObject) { |
59 | Clipperz.DOM.Helper.append(aRowElement, {tag:'td', cls:this.cssClass(), children:[ | 56 | Clipperz.DOM.Helper.append(aRowElement, {tag:'td', cls:this.cssClass(), children:[ |
60 | { | 57 | { |
61 | tag:'span', | 58 | tag:'span', |
62 | title:Clipperz.PM.Date.formatDateWithTemplate(anObject[this.name()], "D, d M Y H:i:s"), | 59 | title:Clipperz.PM.Date.formatDateWithTemplate(anObject[this.name()], "D, d M Y H:i:s"), |
63 | html:Clipperz.PM.Date.formatDateWithTemplate(anObject[this.name()], this.format()) | 60 | html:Clipperz.PM.Date.formatDateWithTemplate(anObject[this.name()], this.format()) |
64 | } | 61 | } |
65 | ]}); | 62 | ]}); |
66 | }, | 63 | }, |
67 | 64 | ||
68 | //----------------------------------------------------- | 65 | //----------------------------------------------------- |
69 | 66 | ||
70 | '__syntax_fix__' : 'syntax fix' | 67 | '__syntax_fix__' : 'syntax fix' |
71 | }); | 68 | }); |
72 | 69 | ||
diff --git a/frontend/gamma/js/Clipperz/PM/UI/Web/Components/DeleteObjectColumnManager.js b/frontend/gamma/js/Clipperz/PM/UI/Web/Components/DeleteObjectColumnManager.js index ee60f2f..fe59494 100644 --- a/frontend/gamma/js/Clipperz/PM/UI/Web/Components/DeleteObjectColumnManager.js +++ b/frontend/gamma/js/Clipperz/PM/UI/Web/Components/DeleteObjectColumnManager.js | |||
@@ -1,70 +1,67 @@ | |||
1 | /* | 1 | /* |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | */ | 24 | */ |
28 | 25 | ||
29 | Clipperz.Base.module('Clipperz.PM.UI.Web.Components'); | 26 | Clipperz.Base.module('Clipperz.PM.UI.Web.Components'); |
30 | 27 | ||
31 | //############################################################################# | 28 | //############################################################################# |
32 | 29 | ||
33 | Clipperz.PM.UI.Web.Components.DeleteObjectColumnManager = function(args) { | 30 | Clipperz.PM.UI.Web.Components.DeleteObjectColumnManager = function(args) { |
34 | args = args || {}; | 31 | args = args || {}; |
35 | Clipperz.PM.UI.Web.Components.DeleteObjectColumnManager.superclass.constructor.call(this, args); | 32 | Clipperz.PM.UI.Web.Components.DeleteObjectColumnManager.superclass.constructor.call(this, args); |
36 | 33 | ||
37 | return this; | 34 | return this; |
38 | } | 35 | } |
39 | 36 | ||
40 | //============================================================================= | 37 | //============================================================================= |
41 | 38 | ||
42 | Clipperz.Base.extend(Clipperz.PM.UI.Web.Components.DeleteObjectColumnManager, Clipperz.PM.UI.Web.Components.LinkColumnManager, { | 39 | Clipperz.Base.extend(Clipperz.PM.UI.Web.Components.DeleteObjectColumnManager, Clipperz.PM.UI.Web.Components.LinkColumnManager, { |
43 | 40 | ||
44 | 'toString': function () { | 41 | 'toString': function () { |
45 | return "Clipperz.PM.UI.Web.Components.DeleteObjectColumnManager component"; | 42 | return "Clipperz.PM.UI.Web.Components.DeleteObjectColumnManager component"; |
46 | }, | 43 | }, |
47 | 44 | ||
48 | //------------------------------------------------------------------------- | 45 | //------------------------------------------------------------------------- |
49 | 46 | ||
50 | 'renderCell': function(aRowElement, anObject) { | 47 | 'renderCell': function(aRowElement, anObject) { |
51 | var tdElement; | 48 | var tdElement; |
52 | var linkElement; | 49 | var linkElement; |
53 | 50 | ||
54 | tdElement = Clipperz.DOM.Helper.append(aRowElement, {tag:'td', cls:this.cssClass(), children:[ | 51 | tdElement = Clipperz.DOM.Helper.append(aRowElement, {tag:'td', cls:this.cssClass(), children:[ |
55 | {tag:'div', cls:'delete', children:[ | 52 | {tag:'div', cls:'delete', children:[ |
56 | {tag:'span', children:[ | 53 | {tag:'span', children:[ |
57 | {tag:'a', href:'delete', html:"delete"} | 54 | {tag:'a', href:'delete', html:"delete"} |
58 | ]} | 55 | ]} |
59 | ]} | 56 | ]} |
60 | ]}); | 57 | ]}); |
61 | 58 | ||
62 | linkElement = MochiKit.DOM.getFirstElementByTagAndClassName('a', null, tdElement); | 59 | linkElement = MochiKit.DOM.getFirstElementByTagAndClassName('a', null, tdElement); |
63 | // MochiKit.Signal.connect(linkElement, 'onclick', MochiKit.Base.method(this, 'handleLinkClick', anObject['_rowObject'])); | 60 | // MochiKit.Signal.connect(linkElement, 'onclick', MochiKit.Base.method(this, 'handleLinkClick', anObject['_rowObject'])); |
64 | this.connectEvent(linkElement, 'onclick', MochiKit.Base.method(this, 'handleLinkClick', anObject['_rowObject'])); | 61 | this.connectEvent(linkElement, 'onclick', MochiKit.Base.method(this, 'handleLinkClick', anObject['_rowObject'])); |
65 | }, | 62 | }, |
66 | 63 | ||
67 | //----------------------------------------------------- | 64 | //----------------------------------------------------- |
68 | '__syntax_fix__' : 'syntax fix' | 65 | '__syntax_fix__' : 'syntax fix' |
69 | }); | 66 | }); |
70 | 67 | ||
diff --git a/frontend/gamma/js/Clipperz/PM/UI/Web/Components/DirectLoginColumnManager.js b/frontend/gamma/js/Clipperz/PM/UI/Web/Components/DirectLoginColumnManager.js index 4bf9020..a1f0f9f 100644 --- a/frontend/gamma/js/Clipperz/PM/UI/Web/Components/DirectLoginColumnManager.js +++ b/frontend/gamma/js/Clipperz/PM/UI/Web/Components/DirectLoginColumnManager.js | |||
@@ -1,90 +1,87 @@ | |||
1 | /* | 1 | /* |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | */ | 24 | */ |
28 | 25 | ||
29 | /* | 26 | /* |
30 | Clipperz.Base.module('Clipperz.PM.UI.Web.Components'); | 27 | Clipperz.Base.module('Clipperz.PM.UI.Web.Components'); |
31 | 28 | ||
32 | //############################################################################# | 29 | //############################################################################# |
33 | 30 | ||
34 | Clipperz.PM.UI.Web.Components.DirectLoginColumnManager = function(args) { | 31 | Clipperz.PM.UI.Web.Components.DirectLoginColumnManager = function(args) { |
35 | args = args || {}; | 32 | args = args || {}; |
36 | Clipperz.PM.UI.Web.Components.DirectLoginColumnManager.superclass.constructor.call(this, args); | 33 | Clipperz.PM.UI.Web.Components.DirectLoginColumnManager.superclass.constructor.call(this, args); |
37 | 34 | ||
38 | this._actionMethod = args.actionMethod || null; | 35 | this._actionMethod = args.actionMethod || null; |
39 | 36 | ||
40 | return this; | 37 | return this; |
41 | } | 38 | } |
42 | 39 | ||
43 | //============================================================================= | 40 | //============================================================================= |
44 | 41 | ||
45 | Clipperz.Base.extend(Clipperz.PM.UI.Web.Components.DirectLoginColumnManager, Clipperz.PM.UI.Web.Components.ColumnManager, { | 42 | Clipperz.Base.extend(Clipperz.PM.UI.Web.Components.DirectLoginColumnManager, Clipperz.PM.UI.Web.Components.ColumnManager, { |
46 | 43 | ||
47 | 'toString': function () { | 44 | 'toString': function () { |
48 | return "Clipperz.PM.UI.Web.Components.DateColumnManager component"; | 45 | return "Clipperz.PM.UI.Web.Components.DateColumnManager component"; |
49 | }, | 46 | }, |
50 | 47 | ||
51 | //------------------------------------------------------------------------- | 48 | //------------------------------------------------------------------------- |
52 | 49 | ||
53 | 'actionMethod': function () { | 50 | 'actionMethod': function () { |
54 | return this._actionMethod; | 51 | return this._actionMethod; |
55 | }, | 52 | }, |
56 | 53 | ||
57 | //------------------------------------------------------------------------- | 54 | //------------------------------------------------------------------------- |
58 | 55 | ||
59 | 'renderCell': function(aRowElement, anObject) { | 56 | 'renderCell': function(aRowElement, anObject) { |
60 | vartdElement; | 57 | vartdElement; |
61 | varlinkElement; | 58 | varlinkElement; |
62 | 59 | ||
63 | tdElement = Clipperz.DOM.Helper.append(aRowElement, {tag:'td', cls:this.cssClass(), children:[ | 60 | tdElement = Clipperz.DOM.Helper.append(aRowElement, {tag:'td', cls:this.cssClass(), children:[ |
64 | {tag:'div', cls:'directLogin_directLogin', children:[ | 61 | {tag:'div', cls:'directLogin_directLogin', children:[ |
65 | {tag:'div', cls:'directLogin_directLogin_body', children:[ | 62 | {tag:'div', cls:'directLogin_directLogin_body', children:[ |
66 | {tag:'a', href:'#', html:anObject[this.name()]} | 63 | {tag:'a', href:'#', html:anObject[this.name()]} |
67 | ]} | 64 | ]} |
68 | ]} | 65 | ]} |
69 | ]}); | 66 | ]}); |
70 | 67 | ||
71 | linkElement = MochiKit.DOM.getFirstElementByTagAndClassName('a', null, tdElement); | 68 | linkElement = MochiKit.DOM.getFirstElementByTagAndClassName('a', null, tdElement); |
72 | // MochiKit.Signal.connect(linkElement, 'onclick', MochiKit.Base.method(this, 'handleLinkClick', anObject['_rowObject'])); | 69 | // MochiKit.Signal.connect(linkElement, 'onclick', MochiKit.Base.method(this, 'handleLinkClick', anObject['_rowObject'])); |
73 | this.connectEvent(linkElement, 'onclick', MochiKit.Base.method(this, 'handleLinkClick', anObject['_rowObject'])); | 70 | this.connectEvent(linkElement, 'onclick', MochiKit.Base.method(this, 'handleLinkClick', anObject['_rowObject'])); |
74 | }, | 71 | }, |
75 | 72 | ||
76 | //----------------------------------------------------- | 73 | //----------------------------------------------------- |
77 | 74 | ||
78 | 'handleLinkClick': function (anObject, anEvent) { | 75 | 'handleLinkClick': function (anObject, anEvent) { |
79 | anEvent.preventDefault(); | 76 | anEvent.preventDefault(); |
80 | 77 | ||
81 | if (this.actionMethod() != null) { | 78 | if (this.actionMethod() != null) { |
82 | this.actionMethod()(anObject, anEvent); | 79 | this.actionMethod()(anObject, anEvent); |
83 | } | 80 | } |
84 | }, | 81 | }, |
85 | 82 | ||
86 | //----------------------------------------------------- | 83 | //----------------------------------------------------- |
87 | '__syntax_fix__' : 'syntax fix' | 84 | '__syntax_fix__' : 'syntax fix' |
88 | }); | 85 | }); |
89 | 86 | ||
90 | */ \ No newline at end of file | 87 | */ \ No newline at end of file |
diff --git a/frontend/gamma/js/Clipperz/PM/UI/Web/Components/DirectLoginEditingBindingComponent.js b/frontend/gamma/js/Clipperz/PM/UI/Web/Components/DirectLoginEditingBindingComponent.js index 9a9c0b2..1a76b0c 100644 --- a/frontend/gamma/js/Clipperz/PM/UI/Web/Components/DirectLoginEditingBindingComponent.js +++ b/frontend/gamma/js/Clipperz/PM/UI/Web/Components/DirectLoginEditingBindingComponent.js | |||
@@ -1,120 +1,117 @@ | |||
1 | /* | 1 | /* |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | */ | 24 | */ |
28 | 25 | ||
29 | Clipperz.Base.module('Clipperz.PM.UI.Web.Components'); | 26 | Clipperz.Base.module('Clipperz.PM.UI.Web.Components'); |
30 | 27 | ||
31 | Clipperz.PM.UI.Web.Components.DirectLoginEditingBindingComponent = function(args) { | 28 | Clipperz.PM.UI.Web.Components.DirectLoginEditingBindingComponent = function(args) { |
32 | args = args || {}; | 29 | args = args || {}; |
33 | 30 | ||
34 | Clipperz.PM.UI.Web.Components.DirectLoginEditingBindingComponent.superclass.constructor.apply(this, arguments); | 31 | Clipperz.PM.UI.Web.Components.DirectLoginEditingBindingComponent.superclass.constructor.apply(this, arguments); |
35 | 32 | ||
36 | this._formFieldName = args.formFieldName|| Clipperz.Base.exception.raise('MandatoryParameter'); | 33 | this._formFieldName = args.formFieldName|| Clipperz.Base.exception.raise('MandatoryParameter'); |
37 | this._fields = args.fields || Clipperz.Base.exception.raise('MandatoryParameter'); | 34 | this._fields = args.fields || Clipperz.Base.exception.raise('MandatoryParameter'); |
38 | this._initiallySelectedFieldKey = args.selectedFieldKey|| null; | 35 | this._initiallySelectedFieldKey = args.selectedFieldKey|| null; |
39 | 36 | ||
40 | return this; | 37 | return this; |
41 | } | 38 | } |
42 | 39 | ||
43 | //============================================================================= | 40 | //============================================================================= |
44 | 41 | ||
45 | Clipperz.Base.extend(Clipperz.PM.UI.Web.Components.DirectLoginEditingBindingComponent, Clipperz.PM.UI.Common.Components.BaseComponent, { | 42 | Clipperz.Base.extend(Clipperz.PM.UI.Web.Components.DirectLoginEditingBindingComponent, Clipperz.PM.UI.Common.Components.BaseComponent, { |
46 | 43 | ||
47 | //------------------------------------------------------------------------- | 44 | //------------------------------------------------------------------------- |
48 | 45 | ||
49 | 'toString': function () { | 46 | 'toString': function () { |
50 | return "Clipperz.PM.UI.Web.Components.DirectLoginEditingBindingComponent component"; | 47 | return "Clipperz.PM.UI.Web.Components.DirectLoginEditingBindingComponent component"; |
51 | }, | 48 | }, |
52 | 49 | ||
53 | //------------------------------------------------------------------------- | 50 | //------------------------------------------------------------------------- |
54 | 51 | ||
55 | 'formFieldName': function () { | 52 | 'formFieldName': function () { |
56 | return this._formFieldName; | 53 | return this._formFieldName; |
57 | }, | 54 | }, |
58 | 55 | ||
59 | //------------------------------------------------------------------------- | 56 | //------------------------------------------------------------------------- |
60 | 57 | ||
61 | 'fields': function () { | 58 | 'fields': function () { |
62 | return this._fields; | 59 | return this._fields; |
63 | }, | 60 | }, |
64 | 61 | ||
65 | //------------------------------------------------------------------------- | 62 | //------------------------------------------------------------------------- |
66 | 63 | ||
67 | 'selectedValue': function () { | 64 | 'selectedValue': function () { |
68 | var result; | 65 | var result; |
69 | 66 | ||
70 | result = this.getElement('select').value; | 67 | result = this.getElement('select').value; |
71 | 68 | ||
72 | if (result == '---') { | 69 | if (result == '---') { |
73 | result = null; | 70 | result = null; |
74 | } | 71 | } |
75 | 72 | ||
76 | return result; | 73 | return result; |
77 | }, | 74 | }, |
78 | 75 | ||
79 | 'initiallySelectedFieldKey': function () { | 76 | 'initiallySelectedFieldKey': function () { |
80 | return this._initiallySelectedFieldKey; | 77 | return this._initiallySelectedFieldKey; |
81 | }, | 78 | }, |
82 | 79 | ||
83 | //========================================================================= | 80 | //========================================================================= |
84 | 81 | ||
85 | 'renderSelf': function() { | 82 | 'renderSelf': function() { |
86 | var initiallySelectedOptions; | 83 | var initiallySelectedOptions; |
87 | 84 | ||
88 | this.append(this.element(), {tag:'div', id:this.getId('div'), cls:'binding', children:[ | 85 | this.append(this.element(), {tag:'div', id:this.getId('div'), cls:'binding', children:[ |
89 | {tag:'span', cls:'formFieldName', html:this.formFieldName()}, | 86 | {tag:'span', cls:'formFieldName', html:this.formFieldName()}, |
90 | {tag:'span', cls:'fieldLock', id:this.getId('isHidden'), children:[ | 87 | {tag:'span', cls:'fieldLock', id:this.getId('isHidden'), children:[ |
91 | {tag:'a', href:'#', id:this.getId('showHide'), html:' '} | 88 | {tag:'a', href:'#', id:this.getId('showHide'), html:' '} |
92 | ]}, | 89 | ]}, |
93 | {tag:'input', id:this.getId('input'), cls:'formFieldExampleValue', disabled:true, value:''}, | 90 | {tag:'input', id:this.getId('input'), cls:'formFieldExampleValue', disabled:true, value:''}, |
94 | {tag:'select', name:this.formFieldName(), id:this.getId('select'), cls:'formFieldMatchinCardField', children: | 91 | {tag:'select', name:this.formFieldName(), id:this.getId('select'), cls:'formFieldMatchinCardField', children: |
95 | MochiKit.Base.flattenArguments( | 92 | MochiKit.Base.flattenArguments( |
96 | {tag:'option', value:'---', html:"---"}, | 93 | {tag:'option', value:'---', html:"---"}, |
97 | MochiKit.Base.map( | 94 | MochiKit.Base.map( |
98 | MochiKit.Base.bind(function (aField) { return {tag:'option', value:aField['reference'], html:aField['label']}; }, this), | 95 | MochiKit.Base.bind(function (aField) { return {tag:'option', value:aField['reference'], html:aField['label']}; }, this), |
99 | this.fields() | 96 | this.fields() |
100 | ) | 97 | ) |
101 | ) | 98 | ) |
102 | } | 99 | } |
103 | ]}); | 100 | ]}); |
104 | 101 | ||
105 | MochiKit.Signal.connect(this.getElement('select'), 'onchange', this, 'handleSelectChange'); | 102 | MochiKit.Signal.connect(this.getElement('select'), 'onchange', this, 'handleSelectChange'); |
106 | MochiKit.Signal.connect(this.getElement('showHide'), 'onclick', this, 'handleShowHide'); | 103 | MochiKit.Signal.connect(this.getElement('showHide'), 'onclick', this, 'handleShowHide'); |
107 | 104 | ||
108 | if (! MochiKit.Base.isUndefinedOrNull(this.initiallySelectedFieldKey())) { | 105 | if (! MochiKit.Base.isUndefinedOrNull(this.initiallySelectedFieldKey())) { |
109 | initiallySelectedOptions = MochiKit.Selector.findChildElements(this.element(), ['option[value=' + this.initiallySelectedFieldKey() + ']']); | 106 | initiallySelectedOptions = MochiKit.Selector.findChildElements(this.element(), ['option[value=' + this.initiallySelectedFieldKey() + ']']); |
110 | if (initiallySelectedOptions.length == 1) { | 107 | if (initiallySelectedOptions.length == 1) { |
111 | MochiKit.DOM.updateNodeAttributes(initiallySelectedOptions[0], {selected:true}); | 108 | MochiKit.DOM.updateNodeAttributes(initiallySelectedOptions[0], {selected:true}); |
112 | this.handleSelectChange(); | 109 | this.handleSelectChange(); |
113 | } | 110 | } |
114 | } | 111 | } |
115 | }, | 112 | }, |
116 | 113 | ||
117 | //------------------------------------------------------------------------- | 114 | //------------------------------------------------------------------------- |
118 | 115 | ||
119 | 'setFieldValue': function (aValue) { | 116 | 'setFieldValue': function (aValue) { |
120 | this.getElement('input').value = aValue; | 117 | this.getElement('input').value = aValue; |
diff --git a/frontend/gamma/js/Clipperz/PM/UI/Web/Components/DirectLoginEditingComponent.js b/frontend/gamma/js/Clipperz/PM/UI/Web/Components/DirectLoginEditingComponent.js index d254c29..5114b1d 100644 --- a/frontend/gamma/js/Clipperz/PM/UI/Web/Components/DirectLoginEditingComponent.js +++ b/frontend/gamma/js/Clipperz/PM/UI/Web/Components/DirectLoginEditingComponent.js | |||
@@ -1,120 +1,117 @@ | |||
1 | /* | 1 | /* |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | */ | 24 | */ |
28 | 25 | ||
29 | Clipperz.Base.module('Clipperz.PM.UI.Web.Components'); | 26 | Clipperz.Base.module('Clipperz.PM.UI.Web.Components'); |
30 | 27 | ||
31 | Clipperz.PM.UI.Web.Components.DirectLoginEditingComponent = function(args) { | 28 | Clipperz.PM.UI.Web.Components.DirectLoginEditingComponent = function(args) { |
32 | args = args || {}; | 29 | args = args || {}; |
33 | 30 | ||
34 | Clipperz.PM.UI.Web.Components.DirectLoginEditingComponent.superclass.constructor.apply(this, arguments); | 31 | Clipperz.PM.UI.Web.Components.DirectLoginEditingComponent.superclass.constructor.apply(this, arguments); |
35 | 32 | ||
36 | this._tabPanelController = null; | 33 | this._tabPanelController = null; |
37 | 34 | ||
38 | this._initiallySelectedTab = args.selected || 'TYPE'; | 35 | this._initiallySelectedTab = args.selected || 'TYPE'; |
39 | this._tabPanelControllerConfiguration = { | 36 | this._tabPanelControllerConfiguration = { |
40 | 'LABEL': { | 37 | 'LABEL': { |
41 | tab:'labelTab', | 38 | tab:'labelTab', |
42 | panel:'labelTabpanel' | 39 | panel:'labelTabpanel' |
43 | }, | 40 | }, |
44 | 'TYPE': { | 41 | 'TYPE': { |
45 | tab:'typeTab', | 42 | tab:'typeTab', |
46 | panel:'typeTabpanel' | 43 | panel:'typeTabpanel' |
47 | }, | 44 | }, |
48 | 'CONFIGURATION': { | 45 | 'CONFIGURATION': { |
49 | tab:'configurationTab', | 46 | tab:'configurationTab', |
50 | panel:'configurationTabpanel' | 47 | panel:'configurationTabpanel' |
51 | }, | 48 | }, |
52 | 'BINDINGS': { | 49 | 'BINDINGS': { |
53 | tab:'bindingsTab', | 50 | tab:'bindingsTab', |
54 | panel:'bindingsTabpanel' | 51 | panel:'bindingsTabpanel' |
55 | }, | 52 | }, |
56 | 'FAVICON': { | 53 | 'FAVICON': { |
57 | tab:'faviconTab', | 54 | tab:'faviconTab', |
58 | panel:'faviconTabpanel' | 55 | panel:'faviconTabpanel' |
59 | }, | 56 | }, |
60 | 'DONE': { | 57 | 'DONE': { |
61 | tab:'doneTab', | 58 | tab:'doneTab', |
62 | panel:'doneTabpanel' | 59 | panel:'doneTabpanel' |
63 | } | 60 | } |
64 | }; | 61 | }; |
65 | 62 | ||
66 | this._directLoginReference = null; | 63 | this._directLoginReference = null; |
67 | 64 | ||
68 | this._directLoginFavicon = null; | 65 | this._directLoginFavicon = null; |
69 | 66 | ||
70 | this._updateFaviconCounter = 0; | 67 | this._updateFaviconCounter = 0; |
71 | this._faviconComponent = null; | 68 | this._faviconComponent = null; |
72 | 69 | ||
73 | this._bindingComponents= []; | 70 | this._bindingComponents= []; |
74 | this._formValueComponents = []; | 71 | this._formValueComponents = []; |
75 | 72 | ||
76 | return this; | 73 | return this; |
77 | } | 74 | } |
78 | 75 | ||
79 | //============================================================================= | 76 | //============================================================================= |
80 | 77 | ||
81 | //Clipperz.Base.extend(Clipperz.PM.UI.Web.Components.DirectLoginEditingComponent, Clipperz.PM.UI.Common.Components.BaseComponent, { | 78 | //Clipperz.Base.extend(Clipperz.PM.UI.Web.Components.DirectLoginEditingComponent, Clipperz.PM.UI.Common.Components.BaseComponent, { |
82 | Clipperz.Base.extend(Clipperz.PM.UI.Web.Components.DirectLoginEditingComponent, Clipperz.PM.UI.Common.Components.TabPanelComponent, { | 79 | Clipperz.Base.extend(Clipperz.PM.UI.Web.Components.DirectLoginEditingComponent, Clipperz.PM.UI.Common.Components.TabPanelComponent, { |
83 | 80 | ||
84 | //------------------------------------------------------------------------- | 81 | //------------------------------------------------------------------------- |
85 | 82 | ||
86 | 'toString': function () { | 83 | 'toString': function () { |
87 | return "Clipperz.PM.UI.Web.Components.DirectLoginEditingComponent component"; | 84 | return "Clipperz.PM.UI.Web.Components.DirectLoginEditingComponent component"; |
88 | }, | 85 | }, |
89 | 86 | ||
90 | //========================================================================= | 87 | //========================================================================= |
91 | 88 | ||
92 | 'directLoginReference': function () { | 89 | 'directLoginReference': function () { |
93 | return this._directLoginReference; | 90 | return this._directLoginReference; |
94 | }, | 91 | }, |
95 | 92 | ||
96 | //------------------------------------------------------------------------- | 93 | //------------------------------------------------------------------------- |
97 | 94 | ||
98 | 'setDirectLoginReference': function (aDirectLoginReference) { | 95 | 'setDirectLoginReference': function (aDirectLoginReference) { |
99 | this._directLoginReference = aDirectLoginReference; | 96 | this._directLoginReference = aDirectLoginReference; |
100 | 97 | ||
101 | return this._directLoginReference; | 98 | return this._directLoginReference; |
102 | }, | 99 | }, |
103 | 100 | ||
104 | //========================================================================= | 101 | //========================================================================= |
105 | 102 | ||
106 | 'label': function () { | 103 | 'label': function () { |
107 | return this.getElement('label').value | 104 | return this.getElement('label').value |
108 | }, | 105 | }, |
109 | 106 | ||
110 | 'setLabel': function (aValue) { | 107 | 'setLabel': function (aValue) { |
111 | //console.log("##> LABEL: " + aValue); | 108 | //console.log("##> LABEL: " + aValue); |
112 | this.getElement('label').value = (aValue ? aValue : ''); | 109 | this.getElement('label').value = (aValue ? aValue : ''); |
113 | }, | 110 | }, |
114 | 111 | ||
115 | //------------------------------------------------------------------------- | 112 | //------------------------------------------------------------------------- |
116 | 113 | ||
117 | 'favicon': function () { | 114 | 'favicon': function () { |
118 | return this.getElement('faviconURL').value; | 115 | return this.getElement('faviconURL').value; |
119 | }, | 116 | }, |
120 | 117 | ||
diff --git a/frontend/gamma/js/Clipperz/PM/UI/Web/Components/DirectLoginEditingFormValueComponent.js b/frontend/gamma/js/Clipperz/PM/UI/Web/Components/DirectLoginEditingFormValueComponent.js index b91eb98..fa57233 100644 --- a/frontend/gamma/js/Clipperz/PM/UI/Web/Components/DirectLoginEditingFormValueComponent.js +++ b/frontend/gamma/js/Clipperz/PM/UI/Web/Components/DirectLoginEditingFormValueComponent.js | |||
@@ -1,120 +1,117 @@ | |||
1 | /* | 1 | /* |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | */ | 24 | */ |
28 | 25 | ||
29 | Clipperz.Base.module('Clipperz.PM.UI.Web.Components'); | 26 | Clipperz.Base.module('Clipperz.PM.UI.Web.Components'); |
30 | 27 | ||
31 | Clipperz.PM.UI.Web.Components.DirectLoginEditingFormValueComponent = function(args) { | 28 | Clipperz.PM.UI.Web.Components.DirectLoginEditingFormValueComponent = function(args) { |
32 | args = args || {}; | 29 | args = args || {}; |
33 | 30 | ||
34 | Clipperz.PM.UI.Web.Components.DirectLoginEditingFormValueComponent.superclass.constructor.apply(this, arguments); | 31 | Clipperz.PM.UI.Web.Components.DirectLoginEditingFormValueComponent.superclass.constructor.apply(this, arguments); |
35 | 32 | ||
36 | this._formFieldName = args.formFieldName|| Clipperz.Base.exception.raise('MandatoryParameter'); | 33 | this._formFieldName = args.formFieldName|| Clipperz.Base.exception.raise('MandatoryParameter'); |
37 | this._fieldOptions = args.fieldOptions || Clipperz.Base.exception.raise('MandatoryParameter'); | 34 | this._fieldOptions = args.fieldOptions || Clipperz.Base.exception.raise('MandatoryParameter'); |
38 | this._initialValue = args.initialValue || null; | 35 | this._initialValue = args.initialValue || null; |
39 | 36 | ||
40 | return this; | 37 | return this; |
41 | } | 38 | } |
42 | 39 | ||
43 | //============================================================================= | 40 | //============================================================================= |
44 | 41 | ||
45 | Clipperz.Base.extend(Clipperz.PM.UI.Web.Components.DirectLoginEditingFormValueComponent, Clipperz.PM.UI.Common.Components.BaseComponent, { | 42 | Clipperz.Base.extend(Clipperz.PM.UI.Web.Components.DirectLoginEditingFormValueComponent, Clipperz.PM.UI.Common.Components.BaseComponent, { |
46 | 43 | ||
47 | //------------------------------------------------------------------------- | 44 | //------------------------------------------------------------------------- |
48 | 45 | ||
49 | 'toString': function () { | 46 | 'toString': function () { |
50 | return "Clipperz.PM.UI.Web.Components.DirectLoginEditingFormValueComponent component"; | 47 | return "Clipperz.PM.UI.Web.Components.DirectLoginEditingFormValueComponent component"; |
51 | }, | 48 | }, |
52 | 49 | ||
53 | //------------------------------------------------------------------------- | 50 | //------------------------------------------------------------------------- |
54 | 51 | ||
55 | 'formFieldName': function () { | 52 | 'formFieldName': function () { |
56 | return this._formFieldName; | 53 | return this._formFieldName; |
57 | }, | 54 | }, |
58 | 55 | ||
59 | //------------------------------------------------------------------------- | 56 | //------------------------------------------------------------------------- |
60 | 57 | ||
61 | 'fieldOptions': function () { | 58 | 'fieldOptions': function () { |
62 | return this._fieldOptions; | 59 | return this._fieldOptions; |
63 | }, | 60 | }, |
64 | 61 | ||
65 | 'fieldType': function () { | 62 | 'fieldType': function () { |
66 | return this.fieldOptions()['type']; | 63 | return this.fieldOptions()['type']; |
67 | }, | 64 | }, |
68 | 65 | ||
69 | 'optionValues': function () { | 66 | 'optionValues': function () { |
70 | return MochiKit.Base.map(function (anOptionValue) { | 67 | return MochiKit.Base.map(function (anOptionValue) { |
71 | return { | 68 | return { |
72 | 'label': anOptionValue['label'] || anOptionValue['value'], | 69 | 'label': anOptionValue['label'] || anOptionValue['value'], |
73 | 'value': anOptionValue['value'] | 70 | 'value': anOptionValue['value'] |
74 | } | 71 | } |
75 | }, this.fieldOptions()['options']); | 72 | }, this.fieldOptions()['options']); |
76 | }, | 73 | }, |
77 | 74 | ||
78 | //------------------------------------------------------------------------- | 75 | //------------------------------------------------------------------------- |
79 | 76 | ||
80 | 'selectedValue': function () { | 77 | 'selectedValue': function () { |
81 | var result; | 78 | var result; |
82 | 79 | ||
83 | result = this.getElement('select').value; | 80 | result = this.getElement('select').value; |
84 | 81 | ||
85 | if (result == '---') { | 82 | if (result == '---') { |
86 | result = null; | 83 | result = null; |
87 | } | 84 | } |
88 | 85 | ||
89 | return result; | 86 | return result; |
90 | }, | 87 | }, |
91 | 88 | ||
92 | 'initialValue': function () { | 89 | 'initialValue': function () { |
93 | return this._initialValue; | 90 | return this._initialValue; |
94 | }, | 91 | }, |
95 | 92 | ||
96 | //========================================================================= | 93 | //========================================================================= |
97 | 94 | ||
98 | 'renderSelf': function() { | 95 | 'renderSelf': function() { |
99 | //console.log(">>> DirectLoginEditingFormValueComponent.renderSelf"); | 96 | //console.log(">>> DirectLoginEditingFormValueComponent.renderSelf"); |
100 | //console.log("FIELD OPTIONS", this.fieldOptions()); | 97 | //console.log("FIELD OPTIONS", this.fieldOptions()); |
101 | //console.log("OPTION VALUES", this.optionValues()); | 98 | //console.log("OPTION VALUES", this.optionValues()); |
102 | this.append(this.element(), {tag:'div', id:this.getId('div'), cls:'formValue', children:[ | 99 | this.append(this.element(), {tag:'div', id:this.getId('div'), cls:'formValue', children:[ |
103 | {tag:'span', cls:'formFieldName', html:this.formFieldName()}, | 100 | {tag:'span', cls:'formFieldName', html:this.formFieldName()}, |
104 | {tag:'div', id:this.getId('values')} | 101 | {tag:'div', id:this.getId('values')} |
105 | ]}); | 102 | ]}); |
106 | 103 | ||
107 | if ((this.fieldType() == 'radio') || (this.fieldType() == 'select')) { | 104 | if ((this.fieldType() == 'radio') || (this.fieldType() == 'select')) { |
108 | this.append(this.getElement('values'), | 105 | this.append(this.getElement('values'), |
109 | {tag:'select', name:this.formFieldName(), id:this.getId('select'), cls:'formFieldMatchinCardField', children: | 106 | {tag:'select', name:this.formFieldName(), id:this.getId('select'), cls:'formFieldMatchinCardField', children: |
110 | MochiKit.Base.flattenArguments( | 107 | MochiKit.Base.flattenArguments( |
111 | // {tag:'option', value:'---', html:"---"}, | 108 | // {tag:'option', value:'---', html:"---"}, |
112 | MochiKit.Base.map( | 109 | MochiKit.Base.map( |
113 | MochiKit.Base.bind(function (aValue) { return {tag:'option', value:aValue['value'], html:aValue['label']}; }, this), | 110 | MochiKit.Base.bind(function (aValue) { return {tag:'option', value:aValue['value'], html:aValue['label']}; }, this), |
114 | this.optionValues() | 111 | this.optionValues() |
115 | ) | 112 | ) |
116 | ) | 113 | ) |
117 | } | 114 | } |
118 | ); | 115 | ); |
119 | 116 | ||
120 | MochiKit.Signal.connect(this.getElement('select'), 'onchange', this, 'handleSelectChange'); | 117 | MochiKit.Signal.connect(this.getElement('select'), 'onchange', this, 'handleSelectChange'); |
diff --git a/frontend/gamma/js/Clipperz/PM/UI/Web/Components/DirectLoginsColumnManager.js b/frontend/gamma/js/Clipperz/PM/UI/Web/Components/DirectLoginsColumnManager.js index 1f49575..d8dc941 100644 --- a/frontend/gamma/js/Clipperz/PM/UI/Web/Components/DirectLoginsColumnManager.js +++ b/frontend/gamma/js/Clipperz/PM/UI/Web/Components/DirectLoginsColumnManager.js | |||
@@ -1,120 +1,117 @@ | |||
1 | /* | 1 | /* |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | */ | 24 | */ |
28 | 25 | ||
29 | Clipperz.Base.module('Clipperz.PM.UI.Web.Components'); | 26 | Clipperz.Base.module('Clipperz.PM.UI.Web.Components'); |
30 | 27 | ||
31 | //############################################################################# | 28 | //############################################################################# |
32 | 29 | ||
33 | Clipperz.PM.UI.Web.Components.DirectLoginsColumnManager = function(args) { | 30 | Clipperz.PM.UI.Web.Components.DirectLoginsColumnManager = function(args) { |
34 | args = args || {}; | 31 | args = args || {}; |
35 | Clipperz.PM.UI.Web.Components.DirectLoginsColumnManager.superclass.constructor.call(this, args); | 32 | Clipperz.PM.UI.Web.Components.DirectLoginsColumnManager.superclass.constructor.call(this, args); |
36 | 33 | ||
37 | this._enterLeaveCounter = 0; | 34 | this._enterLeaveCounter = 0; |
38 | this._selectedRowObject = null; | 35 | this._selectedRowObject = null; |
39 | 36 | ||
40 | return this; | 37 | return this; |
41 | } | 38 | } |
42 | 39 | ||
43 | //============================================================================= | 40 | //============================================================================= |
44 | 41 | ||
45 | Clipperz.Base.extend(Clipperz.PM.UI.Web.Components.DirectLoginsColumnManager, Clipperz.PM.UI.Web.Components.ColumnManager, { | 42 | Clipperz.Base.extend(Clipperz.PM.UI.Web.Components.DirectLoginsColumnManager, Clipperz.PM.UI.Web.Components.ColumnManager, { |
46 | 43 | ||
47 | 'toString': function () { | 44 | 'toString': function () { |
48 | return "Clipperz.PM.UI.Web.Components.DirectLoginsColumnManager component"; | 45 | return "Clipperz.PM.UI.Web.Components.DirectLoginsColumnManager component"; |
49 | }, | 46 | }, |
50 | 47 | ||
51 | //------------------------------------------------------------------------- | 48 | //------------------------------------------------------------------------- |
52 | 49 | ||
53 | 'renderHeader': function(aTRElement) { | 50 | 'renderHeader': function(aTRElement) { |
54 | Clipperz.PM.UI.Web.Components.DirectLoginsColumnManager.superclass.renderHeader.call(this, aTRElement); | 51 | Clipperz.PM.UI.Web.Components.DirectLoginsColumnManager.superclass.renderHeader.call(this, aTRElement); |
55 | 52 | ||
56 | Clipperz.DOM.Helper.append(MochiKit.DOM.currentDocument().body, {tag:'div', cls:'DirectLoginListPopup', id:this.getId('DirectLoginListPopup'), children:[ | 53 | Clipperz.DOM.Helper.append(MochiKit.DOM.currentDocument().body, {tag:'div', cls:'DirectLoginListPopup', id:this.getId('DirectLoginListPopup'), children:[ |
57 | {tag:'div', cls:'DirectLoginListPopup_body', children:[ | 54 | {tag:'div', cls:'DirectLoginListPopup_body', children:[ |
58 | {tag:'ul', id:this.getId('DirectLoginListPopup_list'), children:[ | 55 | {tag:'ul', id:this.getId('DirectLoginListPopup_list'), children:[ |
59 | // {tag:'li', children:[ | 56 | // {tag:'li', children:[ |
60 | // {tag:'img', cls:'favicon', src:'http://www.microsoft.com/favicon.ico'}, | 57 | // {tag:'img', cls:'favicon', src:'http://www.microsoft.com/favicon.ico'}, |
61 | // {tag:'a', href:'#', html:"Google Mail"} | 58 | // {tag:'a', href:'#', html:"Google Mail"} |
62 | // ]}, | 59 | // ]}, |
63 | // ... | 60 | // ... |
64 | ]} | 61 | ]} |
65 | ]}, | 62 | ]}, |
66 | {tag:'div', cls:'DirectLoginListPopup_footer'} | 63 | {tag:'div', cls:'DirectLoginListPopup_footer'} |
67 | ]}); | 64 | ]}); |
68 | 65 | ||
69 | MochiKit.Style.hideElement(this.getId('DirectLoginListPopup')); | 66 | MochiKit.Style.hideElement(this.getId('DirectLoginListPopup')); |
70 | 67 | ||
71 | //BEWARE: use MochiKit.Signal.connect instead of this.connectEvent, as the HEADER is NOT redrawn after each refresh | 68 | //BEWARE: use MochiKit.Signal.connect instead of this.connectEvent, as the HEADER is NOT redrawn after each refresh |
72 | MochiKit.Signal.connect(this.getId('DirectLoginListPopup'), 'onmouseenter', this, 'handleDirectLoginListPopupEnter'); | 69 | MochiKit.Signal.connect(this.getId('DirectLoginListPopup'), 'onmouseenter', this, 'handleDirectLoginListPopupEnter'); |
73 | MochiKit.Signal.connect(this.getId('DirectLoginListPopup'), 'onmouseleave', this, 'handleDirectLoginListPopupLeave'); | 70 | MochiKit.Signal.connect(this.getId('DirectLoginListPopup'), 'onmouseleave', this, 'handleDirectLoginListPopupLeave'); |
74 | }, | 71 | }, |
75 | 72 | ||
76 | //------------------------------------------------------------------------- | 73 | //------------------------------------------------------------------------- |
77 | 74 | ||
78 | 'renderCell': function(aRowElement, anObject) { | 75 | 'renderCell': function(aRowElement, anObject) { |
79 | var i,c; | 76 | var i,c; |
80 | var directLoginsInfo; | 77 | var directLoginsInfo; |
81 | 78 | ||
82 | directLoginsInfo = anObject[this.name()]; | 79 | directLoginsInfo = anObject[this.name()]; |
83 | 80 | ||
84 | TDElement = Clipperz.DOM.Helper.append(aRowElement, {tag:'td', cls:'card_directLogins'}); | 81 | TDElement = Clipperz.DOM.Helper.append(aRowElement, {tag:'td', cls:'card_directLogins'}); |
85 | 82 | ||
86 | c = Math.min(2, directLoginsInfo.length); | 83 | c = Math.min(2, directLoginsInfo.length); |
87 | for (i=0; i<c; i++) { | 84 | for (i=0; i<c; i++) { |
88 | var elementID; | 85 | var elementID; |
89 | 86 | ||
90 | elementID = 'directLogin_' + directLoginsInfo[i]['_reference']; | 87 | elementID = 'directLogin_' + directLoginsInfo[i]['_reference']; |
91 | 88 | ||
92 | Clipperz.DOM.Helper.append(TDElement, {tag:'div', cls:'card_directLogin', children:[ | 89 | Clipperz.DOM.Helper.append(TDElement, {tag:'div', cls:'card_directLogin', children:[ |
93 | {tag:'div', cls:'card_directLogin_body', children:[ | 90 | {tag:'div', cls:'card_directLogin_body', children:[ |
94 | {tag:'a', href:'#', id:elementID, html:directLoginsInfo[i]['label']} | 91 | {tag:'a', href:'#', id:elementID, html:directLoginsInfo[i]['label']} |
95 | ]} | 92 | ]} |
96 | ]}); | 93 | ]}); |
97 | // MochiKit.Signal.connect(elementID, 'onclick', MochiKit.Base.method(this, 'handleDirectLoginClick', directLoginsInfo[i]['_rowObject'])); | 94 | // MochiKit.Signal.connect(elementID, 'onclick', MochiKit.Base.method(this, 'handleDirectLoginClick', directLoginsInfo[i]['_rowObject'])); |
98 | this.connectEvent(elementID, 'onclick', MochiKit.Base.method(this, 'handleDirectLoginClick', directLoginsInfo[i]['_rowObject'])); | 95 | this.connectEvent(elementID, 'onclick', MochiKit.Base.method(this, 'handleDirectLoginClick', directLoginsInfo[i]['_rowObject'])); |
99 | } | 96 | } |
100 | 97 | ||
101 | if (directLoginsInfo.length > 2) { | 98 | if (directLoginsInfo.length > 2) { |
102 | var ellipsesElement; | 99 | var ellipsesElement; |
103 | 100 | ||
104 | ellipsesElement = Clipperz.DOM.Helper.append(TDElement, {tag:'div', cls:'card_directLogin_ellipses', children:[ | 101 | ellipsesElement = Clipperz.DOM.Helper.append(TDElement, {tag:'div', cls:'card_directLogin_ellipses', children:[ |
105 | {tag:'div', cls:'card_directLogin_ellipses_body', children:[ | 102 | {tag:'div', cls:'card_directLogin_ellipses_body', children:[ |
106 | {tag:'span', html:'…'} | 103 | {tag:'span', html:'…'} |
107 | ]} | 104 | ]} |
108 | ]}); | 105 | ]}); |
109 | 106 | ||
110 | /// MochiKit.Signal.connect(ellipsesElement, 'onmouseenter', MochiKit.Base.method(this, 'handleEllipsesEnter', anObject)); | 107 | /// MochiKit.Signal.connect(ellipsesElement, 'onmouseenter', MochiKit.Base.method(this, 'handleEllipsesEnter', anObject)); |
111 | /// MochiKit.Signal.connect(ellipsesElement, 'onmouseleave', MochiKit.Base.method(this, 'handleEllipsesLeave')); | 108 | /// MochiKit.Signal.connect(ellipsesElement, 'onmouseleave', MochiKit.Base.method(this, 'handleEllipsesLeave')); |
112 | // MochiKit.Signal.connect(TDElement, 'onmouseleave', MochiKit.Base.method(this, 'handleTDLeave')); | 109 | // MochiKit.Signal.connect(TDElement, 'onmouseleave', MochiKit.Base.method(this, 'handleTDLeave')); |
113 | this.connectEvent(TDElement, 'onmouseleave', MochiKit.Base.method(this, 'handleTDLeave')); | 110 | this.connectEvent(TDElement, 'onmouseleave', MochiKit.Base.method(this, 'handleTDLeave')); |
114 | } | 111 | } |
115 | // MochiKit.Signal.connect(TDElement, 'onmouseenter', MochiKit.Base.method(this, 'handleTDEnter', anObject)); | 112 | // MochiKit.Signal.connect(TDElement, 'onmouseenter', MochiKit.Base.method(this, 'handleTDEnter', anObject)); |
116 | this.connectEvent(TDElement, 'onmouseenter', MochiKit.Base.method(this, 'handleTDEnter', anObject)); | 113 | this.connectEvent(TDElement, 'onmouseenter', MochiKit.Base.method(this, 'handleTDEnter', anObject)); |
117 | 114 | ||
118 | }, | 115 | }, |
119 | 116 | ||
120 | //========================================================================= | 117 | //========================================================================= |
diff --git a/frontend/gamma/js/Clipperz/PM/UI/Web/Components/FaviconColumnManager.js b/frontend/gamma/js/Clipperz/PM/UI/Web/Components/FaviconColumnManager.js index 19d1635..6297002 100644 --- a/frontend/gamma/js/Clipperz/PM/UI/Web/Components/FaviconColumnManager.js +++ b/frontend/gamma/js/Clipperz/PM/UI/Web/Components/FaviconColumnManager.js | |||
@@ -1,89 +1,86 @@ | |||
1 | /* | 1 | /* |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | */ | 24 | */ |
28 | 25 | ||
29 | Clipperz.Base.module('Clipperz.PM.UI.Web.Components'); | 26 | Clipperz.Base.module('Clipperz.PM.UI.Web.Components'); |
30 | 27 | ||
31 | //############################################################################# | 28 | //############################################################################# |
32 | 29 | ||
33 | Clipperz.PM.UI.Web.Components.FaviconColumnManager = function(args) { | 30 | Clipperz.PM.UI.Web.Components.FaviconColumnManager = function(args) { |
34 | args = args || {}; | 31 | args = args || {}; |
35 | Clipperz.PM.UI.Web.Components.FaviconColumnManager.superclass.constructor.call(this, args); | 32 | Clipperz.PM.UI.Web.Components.FaviconColumnManager.superclass.constructor.call(this, args); |
36 | 33 | ||
37 | return this; | 34 | return this; |
38 | } | 35 | } |
39 | 36 | ||
40 | //============================================================================= | 37 | //============================================================================= |
41 | 38 | ||
42 | Clipperz.Base.extend(Clipperz.PM.UI.Web.Components.FaviconColumnManager, Clipperz.PM.UI.Web.Components.ColumnManager, { | 39 | Clipperz.Base.extend(Clipperz.PM.UI.Web.Components.FaviconColumnManager, Clipperz.PM.UI.Web.Components.ColumnManager, { |
43 | 40 | ||
44 | 'toString': function () { | 41 | 'toString': function () { |
45 | return "Clipperz.PM.UI.Web.Components.FaviconColumnManager component"; | 42 | return "Clipperz.PM.UI.Web.Components.FaviconColumnManager component"; |
46 | }, | 43 | }, |
47 | 44 | ||
48 | //------------------------------------------------------------------------- | 45 | //------------------------------------------------------------------------- |
49 | 46 | ||
50 | 'renderCell': function(aRowElement, anObject) { | 47 | 'renderCell': function(aRowElement, anObject) { |
51 | varfaviconImageElement; | 48 | varfaviconImageElement; |
52 | var faviconUrl; | 49 | var faviconUrl; |
53 | 50 | ||
54 | faviconImageElement = this.getId('favicon'); | 51 | faviconImageElement = this.getId('favicon'); |
55 | faviconUrl = anObject[this.name()]; | 52 | faviconUrl = anObject[this.name()]; |
56 | 53 | ||
57 | if (faviconUrl == null) { | 54 | if (faviconUrl == null) { |
58 | faviconUrl = Clipperz.PM.Strings.getValue('defaultFaviconUrl'); | 55 | faviconUrl = Clipperz.PM.Strings.getValue('defaultFaviconUrl'); |
59 | } | 56 | } |
60 | 57 | ||
61 | Clipperz.DOM.Helper.append(aRowElement, {tag:'td', cls:this.cssClass(), children:[ | 58 | Clipperz.DOM.Helper.append(aRowElement, {tag:'td', cls:this.cssClass(), children:[ |
62 | {tag:'img', id:faviconImageElement, src:faviconUrl} | 59 | {tag:'img', id:faviconImageElement, src:faviconUrl} |
63 | ]}); | 60 | ]}); |
64 | 61 | ||
65 | MochiKit.Signal.connect(faviconImageElement, 'onload', this, 'handleLoadedFaviconImage'); | 62 | MochiKit.Signal.connect(faviconImageElement, 'onload', this, 'handleLoadedFaviconImage'); |
66 | MochiKit.Signal.connect(faviconImageElement, 'onerror', this, 'handleMissingFaviconImage'); | 63 | MochiKit.Signal.connect(faviconImageElement, 'onerror', this, 'handleMissingFaviconImage'); |
67 | MochiKit.Signal.connect(faviconImageElement, 'onabort', this, 'handleMissingFaviconImage'); | 64 | MochiKit.Signal.connect(faviconImageElement, 'onabort', this, 'handleMissingFaviconImage'); |
68 | }, | 65 | }, |
69 | 66 | ||
70 | //----------------------------------------------------- | 67 | //----------------------------------------------------- |
71 | 68 | ||
72 | 'handleLoadedFaviconImage': function(anEvent) { | 69 | 'handleLoadedFaviconImage': function(anEvent) { |
73 | MochiKit.Signal.disconnectAllTo(anEvent.src()); | 70 | MochiKit.Signal.disconnectAllTo(anEvent.src()); |
74 | if (anEvent.src().complete == false) { | 71 | if (anEvent.src().complete == false) { |
75 | anEvent.src().src = Clipperz.PM.Strings.getValue('defaultFaviconUrl'); | 72 | anEvent.src().src = Clipperz.PM.Strings.getValue('defaultFaviconUrl'); |
76 | } | 73 | } |
77 | }, | 74 | }, |
78 | 75 | ||
79 | //----------------------------------------------------- | 76 | //----------------------------------------------------- |
80 | 77 | ||
81 | 'handleMissingFaviconImage': function(anEvent) { | 78 | 'handleMissingFaviconImage': function(anEvent) { |
82 | MochiKit.Signal.disconnectAllTo(anEvent.src()); | 79 | MochiKit.Signal.disconnectAllTo(anEvent.src()); |
83 | anEvent.src().src = Clipperz.PM.Strings.getValue('defaultFaviconUrl'); | 80 | anEvent.src().src = Clipperz.PM.Strings.getValue('defaultFaviconUrl'); |
84 | }, | 81 | }, |
85 | 82 | ||
86 | //----------------------------------------------------- | 83 | //----------------------------------------------------- |
87 | '__syntax_fix__' : 'syntax fix' | 84 | '__syntax_fix__' : 'syntax fix' |
88 | }); | 85 | }); |
89 | 86 | ||
diff --git a/frontend/gamma/js/Clipperz/PM/UI/Web/Components/GridComponent.js b/frontend/gamma/js/Clipperz/PM/UI/Web/Components/GridComponent.js index 8b3e6c9..51d55f4 100644 --- a/frontend/gamma/js/Clipperz/PM/UI/Web/Components/GridComponent.js +++ b/frontend/gamma/js/Clipperz/PM/UI/Web/Components/GridComponent.js | |||
@@ -1,120 +1,117 @@ | |||
1 | /* | 1 | /* |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | */ | 24 | */ |
28 | 25 | ||
29 | Clipperz.Base.module('Clipperz.PM.UI.Web.Components'); | 26 | Clipperz.Base.module('Clipperz.PM.UI.Web.Components'); |
30 | 27 | ||
31 | Clipperz.PM.UI.Web.Components.GridComponent = function(args) { | 28 | Clipperz.PM.UI.Web.Components.GridComponent = function(args) { |
32 | args = args || {}; | 29 | args = args || {}; |
33 | 30 | ||
34 | Clipperz.PM.UI.Web.Components.GridComponent.superclass.constructor.apply(this, arguments); | 31 | Clipperz.PM.UI.Web.Components.GridComponent.superclass.constructor.apply(this, arguments); |
35 | 32 | ||
36 | this._columnsManagers = args.columnsManagers; | 33 | this._columnsManagers = args.columnsManagers; |
37 | 34 | ||
38 | this._rowsObjects = []; | 35 | this._rowsObjects = []; |
39 | this._noRowsGridComponent = null; | 36 | this._noRowsGridComponent = null; |
40 | 37 | ||
41 | this._slots = { | 38 | this._slots = { |
42 | 'headerSlot':this.getId('headerSlot') | 39 | 'headerSlot':this.getId('headerSlot') |
43 | }; | 40 | }; |
44 | 41 | ||
45 | return this; | 42 | return this; |
46 | } | 43 | } |
47 | 44 | ||
48 | //============================================================================= | 45 | //============================================================================= |
49 | 46 | ||
50 | Clipperz.Base.extend(Clipperz.PM.UI.Web.Components.GridComponent, Clipperz.PM.UI.Common.Components.BaseComponent, { | 47 | Clipperz.Base.extend(Clipperz.PM.UI.Web.Components.GridComponent, Clipperz.PM.UI.Common.Components.BaseComponent, { |
51 | 48 | ||
52 | //------------------------------------------------------------------------- | 49 | //------------------------------------------------------------------------- |
53 | 50 | ||
54 | 'toString': function () { | 51 | 'toString': function () { |
55 | return "Clipperz.PM.UI.Web.Components.GridComponent component"; | 52 | return "Clipperz.PM.UI.Web.Components.GridComponent component"; |
56 | }, | 53 | }, |
57 | 54 | ||
58 | //------------------------------------------------------------------------- | 55 | //------------------------------------------------------------------------- |
59 | 56 | ||
60 | 'rows': function () { | 57 | 'rows': function () { |
61 | throw Clipperz.Base.exception.AbstractMethod; | 58 | throw Clipperz.Base.exception.AbstractMethod; |
62 | // return this._rows; | 59 | // return this._rows; |
63 | }, | 60 | }, |
64 | 61 | ||
65 | //------------------------------------------------------------------------- | 62 | //------------------------------------------------------------------------- |
66 | 63 | ||
67 | 'columnsManagers': function () { | 64 | 'columnsManagers': function () { |
68 | return this._columnsManagers; | 65 | return this._columnsManagers; |
69 | }, | 66 | }, |
70 | 67 | ||
71 | //------------------------------------------------------------------------- | 68 | //------------------------------------------------------------------------- |
72 | 69 | ||
73 | 'renderSelf': function(/*aContainer, aPosition*/) { | 70 | 'renderSelf': function(/*aContainer, aPosition*/) { |
74 | this.append(this.element(), [ | 71 | this.append(this.element(), [ |
75 | {tag:'div', cls:'header', children:[ | 72 | {tag:'div', cls:'header', children:[ |
76 | {tag:'form', id:this.getId('searchForm'), cls:'search', children:[ | 73 | {tag:'form', id:this.getId('searchForm'), cls:'search', children:[ |
77 | {tag:'div', cls:'search', children:[ | 74 | {tag:'div', cls:'search', children:[ |
78 | {tag:'input', type:'text', id:this.getId('search'), cls:'search', placeholder:"search", name:'textToSearch'/*, value:"clipperz"*/} | 75 | {tag:'input', type:'text', id:this.getId('search'), cls:'search', placeholder:"search", name:'textToSearch'/*, value:"clipperz"*/} |
79 | ]}, | 76 | ]}, |
80 | {tag:'div', cls:'clearSearchButton', id:this.getId('clearSearch')}, | 77 | {tag:'div', cls:'clearSearchButton', id:this.getId('clearSearch')}, |
81 | // {tag:'input', type:'button', cls:'searchButton', name:'searchButton', value:"search"}, | 78 | // {tag:'input', type:'button', cls:'searchButton', name:'searchButton', value:"search"}, |
82 | {tag:'div', cls:'headerSlot', id:this.getId('headerSlot')} | 79 | {tag:'div', cls:'headerSlot', id:this.getId('headerSlot')} |
83 | ]} | 80 | ]} |
84 | ]}, | 81 | ]}, |
85 | {tag:'div', cls:'body', children:[ | 82 | {tag:'div', cls:'body', children:[ |
86 | {tag:'div', cls:'rows', id:this.getId('rows'), children:[ | 83 | {tag:'div', cls:'rows', id:this.getId('rows'), children:[ |
87 | {tag:'table', cellpadding:'0', cellspacing:'0', cls:'rows', children:[ | 84 | {tag:'table', cellpadding:'0', cellspacing:'0', cls:'rows', children:[ |
88 | {tag:'thead', children:[ | 85 | {tag:'thead', children:[ |
89 | {tag:'tr', id:this.getId('thead_tr'), children:[]} | 86 | {tag:'tr', id:this.getId('thead_tr'), children:[]} |
90 | ]}, | 87 | ]}, |
91 | {tag:'tbody', id:this.getId('gridRows'), children:[]} | 88 | {tag:'tbody', id:this.getId('gridRows'), children:[]} |
92 | ]} | 89 | ]} |
93 | ]}, | 90 | ]}, |
94 | {tag:'div', cls:'noRowsBlock', id:this.getId('noRowsBlock'), children:[]} | 91 | {tag:'div', cls:'noRowsBlock', id:this.getId('noRowsBlock'), children:[]} |
95 | ]}, | 92 | ]}, |
96 | {tag:'div', cls:'footer'} | 93 | {tag:'div', cls:'footer'} |
97 | ]); | 94 | ]); |
98 | 95 | ||
99 | this.renderHeader(); | 96 | this.renderHeader(); |
100 | MochiKit.Signal.connect(this.getId('clearSearch'), 'onclick', this, 'clearSearchHandler'); | 97 | MochiKit.Signal.connect(this.getId('clearSearch'), 'onclick', this, 'clearSearchHandler'); |
101 | }, | 98 | }, |
102 | 99 | ||
103 | //------------------------------------------------------------------------- | 100 | //------------------------------------------------------------------------- |
104 | 101 | ||
105 | 'renderHeader': function () { | 102 | 'renderHeader': function () { |
106 | var headerElement; | 103 | var headerElement; |
107 | 104 | ||
108 | headerElement = this.getElement('thead_tr'); | 105 | headerElement = this.getElement('thead_tr'); |
109 | headerElement.innerHTML = ""; | 106 | headerElement.innerHTML = ""; |
110 | 107 | ||
111 | MochiKit.Iter.forEach(this.columnsManagers(), function (aColumnManager) { | 108 | MochiKit.Iter.forEach(this.columnsManagers(), function (aColumnManager) { |
112 | aColumnManager.renderHeader(headerElement); | 109 | aColumnManager.renderHeader(headerElement); |
113 | }); | 110 | }); |
114 | }, | 111 | }, |
115 | 112 | ||
116 | //------------------------------------------------------------------------- | 113 | //------------------------------------------------------------------------- |
117 | 114 | ||
118 | 'update': function (someObjects) { | 115 | 'update': function (someObjects) { |
119 | this._rowsObjects = someObjects | 116 | this._rowsObjects = someObjects |
120 | this.refresh(); | 117 | this.refresh(); |
diff --git a/frontend/gamma/js/Clipperz/PM/UI/Web/Components/ImageColumnManager.js b/frontend/gamma/js/Clipperz/PM/UI/Web/Components/ImageColumnManager.js index 07b8dcc..3e03fcf 100644 --- a/frontend/gamma/js/Clipperz/PM/UI/Web/Components/ImageColumnManager.js +++ b/frontend/gamma/js/Clipperz/PM/UI/Web/Components/ImageColumnManager.js | |||
@@ -1,68 +1,65 @@ | |||
1 | /* | 1 | /* |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | */ | 24 | */ |
28 | 25 | ||
29 | Clipperz.Base.module('Clipperz.PM.UI.Web.Components'); | 26 | Clipperz.Base.module('Clipperz.PM.UI.Web.Components'); |
30 | 27 | ||
31 | //############################################################################# | 28 | //############################################################################# |
32 | 29 | ||
33 | Clipperz.PM.UI.Web.Components.ImageColumnManager = function(args) { | 30 | Clipperz.PM.UI.Web.Components.ImageColumnManager = function(args) { |
34 | args = args || {}; | 31 | args = args || {}; |
35 | Clipperz.PM.UI.Web.Components.ImageColumnManager.superclass.constructor.call(this, args); | 32 | Clipperz.PM.UI.Web.Components.ImageColumnManager.superclass.constructor.call(this, args); |
36 | 33 | ||
37 | return this; | 34 | return this; |
38 | } | 35 | } |
39 | 36 | ||
40 | //============================================================================= | 37 | //============================================================================= |
41 | 38 | ||
42 | Clipperz.Base.extend(Clipperz.PM.UI.Web.Components.ImageColumnManager, Clipperz.PM.UI.Web.Components.ColumnManager, { | 39 | Clipperz.Base.extend(Clipperz.PM.UI.Web.Components.ImageColumnManager, Clipperz.PM.UI.Web.Components.ColumnManager, { |
43 | 40 | ||
44 | 'toString': function () { | 41 | 'toString': function () { |
45 | return "Clipperz.PM.UI.Web.Components.ImageColumnManager component"; | 42 | return "Clipperz.PM.UI.Web.Components.ImageColumnManager component"; |
46 | }, | 43 | }, |
47 | 44 | ||
48 | //------------------------------------------------------------------------- | 45 | //------------------------------------------------------------------------- |
49 | 46 | ||
50 | 'renderCell': function(aRowElement, anObject) { | 47 | 'renderCell': function(aRowElement, anObject) { |
51 | Clipperz.DOM.Helper.append(aRowElement, {tag:'td', cls:this.cssClass(), children:[ | 48 | Clipperz.DOM.Helper.append(aRowElement, {tag:'td', cls:this.cssClass(), children:[ |
52 | {tag:'img', src:anObject[this.name()]} | 49 | {tag:'img', src:anObject[this.name()]} |
53 | ]}); | 50 | ]}); |
54 | 51 | ||
55 | // return Clipperz.Async.callbacks("ImageColumnManager.renderCell", [ | 52 | // return Clipperz.Async.callbacks("ImageColumnManager.renderCell", [ |
56 | // this.selector(), | 53 | // this.selector(), |
57 | // MochiKit.Base.bind(function (aValue) { | 54 | // MochiKit.Base.bind(function (aValue) { |
58 | // Clipperz.DOM.Helper.append(aRowElement, {tag:'td', cls:this.cssClass(), children:[ | 55 | // Clipperz.DOM.Helper.append(aRowElement, {tag:'td', cls:this.cssClass(), children:[ |
59 | // {tag:'img', src:aValue} | 56 | // {tag:'img', src:aValue} |
60 | // ]}); | 57 | // ]}); |
61 | // }, this) | 58 | // }, this) |
62 | // ], {trace:false}, anObject); | 59 | // ], {trace:false}, anObject); |
63 | }, | 60 | }, |
64 | 61 | ||
65 | //----------------------------------------------------- | 62 | //----------------------------------------------------- |
66 | '__syntax_fix__' : 'syntax fix' | 63 | '__syntax_fix__' : 'syntax fix' |
67 | }); | 64 | }); |
68 | 65 | ||
diff --git a/frontend/gamma/js/Clipperz/PM/UI/Web/Components/LinkColumnManager.js b/frontend/gamma/js/Clipperz/PM/UI/Web/Components/LinkColumnManager.js index e833190..f3f9cd5 100644 --- a/frontend/gamma/js/Clipperz/PM/UI/Web/Components/LinkColumnManager.js +++ b/frontend/gamma/js/Clipperz/PM/UI/Web/Components/LinkColumnManager.js | |||
@@ -1,92 +1,89 @@ | |||
1 | /* | 1 | /* |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | */ | 24 | */ |
28 | 25 | ||
29 | Clipperz.Base.module('Clipperz.PM.UI.Web.Components'); | 26 | Clipperz.Base.module('Clipperz.PM.UI.Web.Components'); |
30 | 27 | ||
31 | //############################################################################# | 28 | //############################################################################# |
32 | 29 | ||
33 | Clipperz.PM.UI.Web.Components.LinkColumnManager = function(args) { | 30 | Clipperz.PM.UI.Web.Components.LinkColumnManager = function(args) { |
34 | args = args || {}; | 31 | args = args || {}; |
35 | Clipperz.PM.UI.Web.Components.LinkColumnManager.superclass.constructor.call(this, args); | 32 | Clipperz.PM.UI.Web.Components.LinkColumnManager.superclass.constructor.call(this, args); |
36 | 33 | ||
37 | this._actionMethod = args.actionMethod || null; | 34 | this._actionMethod = args.actionMethod || null; |
38 | 35 | ||
39 | return this; | 36 | return this; |
40 | } | 37 | } |
41 | 38 | ||
42 | //============================================================================= | 39 | //============================================================================= |
43 | 40 | ||
44 | Clipperz.Base.extend(Clipperz.PM.UI.Web.Components.LinkColumnManager, Clipperz.PM.UI.Web.Components.ColumnManager, { | 41 | Clipperz.Base.extend(Clipperz.PM.UI.Web.Components.LinkColumnManager, Clipperz.PM.UI.Web.Components.ColumnManager, { |
45 | 42 | ||
46 | 'toString': function () { | 43 | 'toString': function () { |
47 | return "Clipperz.PM.UI.Web.Components.DateColumnManager component"; | 44 | return "Clipperz.PM.UI.Web.Components.DateColumnManager component"; |
48 | }, | 45 | }, |
49 | 46 | ||
50 | //------------------------------------------------------------------------- | 47 | //------------------------------------------------------------------------- |
51 | 48 | ||
52 | 'actionMethod': function () { | 49 | 'actionMethod': function () { |
53 | return this._actionMethod; | 50 | return this._actionMethod; |
54 | }, | 51 | }, |
55 | 52 | ||
56 | //------------------------------------------------------------------------- | 53 | //------------------------------------------------------------------------- |
57 | 54 | ||
58 | 'renderCell': function(aRowElement, anObject) { | 55 | 'renderCell': function(aRowElement, anObject) { |
59 | vartdElement; | 56 | vartdElement; |
60 | varlinkElement; | 57 | varlinkElement; |
61 | 58 | ||
62 | tdElement = Clipperz.DOM.Helper.append(aRowElement, {tag:'td', cls:this.cssClass(), children:[ | 59 | tdElement = Clipperz.DOM.Helper.append(aRowElement, {tag:'td', cls:this.cssClass(), children:[ |
63 | {tag:'span', children:[ | 60 | {tag:'span', children:[ |
64 | {tag:'a', href:'#', html:anObject[this.name()]} | 61 | {tag:'a', href:'#', html:anObject[this.name()]} |
65 | ]} | 62 | ]} |
66 | ]}); | 63 | ]}); |
67 | 64 | ||
68 | linkElement = MochiKit.DOM.getFirstElementByTagAndClassName('a', null, tdElement); | 65 | linkElement = MochiKit.DOM.getFirstElementByTagAndClassName('a', null, tdElement); |
69 | // MochiKit.Signal.connect(linkElement, 'onclick', MochiKit.Base.method(this, 'handleLinkClick', anObject['_rowObject'])); | 66 | // MochiKit.Signal.connect(linkElement, 'onclick', MochiKit.Base.method(this, 'handleLinkClick', anObject['_rowObject'])); |
70 | this.connectEvent(linkElement, 'onclick', MochiKit.Base.method(this, 'handleLinkClick', anObject['_rowObject'])); | 67 | this.connectEvent(linkElement, 'onclick', MochiKit.Base.method(this, 'handleLinkClick', anObject['_rowObject'])); |
71 | }, | 68 | }, |
72 | 69 | ||
73 | //----------------------------------------------------- | 70 | //----------------------------------------------------- |
74 | 71 | ||
75 | 'handleLinkClick': function (anObject, anEvent) { | 72 | 'handleLinkClick': function (anObject, anEvent) { |
76 | anEvent.preventDefault(); | 73 | anEvent.preventDefault(); |
77 | 74 | ||
78 | if (this.actionMethod() != null) { | 75 | if (this.actionMethod() != null) { |
79 | var deferredResult; | 76 | var deferredResult; |
80 | 77 | ||
81 | deferredResult = new Clipperz.Async.Deferred("LinkColumnManager.handleLinkClick", {trace:false}); | 78 | deferredResult = new Clipperz.Async.Deferred("LinkColumnManager.handleLinkClick", {trace:false}); |
82 | // deferredResult.addCallbackPass(MochiKit.Signal.signal, this, 'selectRow', anObject); | 79 | // deferredResult.addCallbackPass(MochiKit.Signal.signal, this, 'selectRow', anObject); |
83 | deferredResult.addCallback(this.actionMethod(), anObject, anEvent); | 80 | deferredResult.addCallback(this.actionMethod(), anObject, anEvent); |
84 | // deferredResult.addBothPass(MochiKit.Signal.signal, this, 'unselectRow', anObject); | 81 | // deferredResult.addBothPass(MochiKit.Signal.signal, this, 'unselectRow', anObject); |
85 | deferredResult.callback(); | 82 | deferredResult.callback(); |
86 | } | 83 | } |
87 | }, | 84 | }, |
88 | 85 | ||
89 | //----------------------------------------------------- | 86 | //----------------------------------------------------- |
90 | '__syntax_fix__' : 'syntax fix' | 87 | '__syntax_fix__' : 'syntax fix' |
91 | }); | 88 | }); |
92 | 89 | ||
diff --git a/frontend/gamma/js/Clipperz/PM/UI/Web/Components/LoginForm.js b/frontend/gamma/js/Clipperz/PM/UI/Web/Components/LoginForm.js index de20853..389d876 100644 --- a/frontend/gamma/js/Clipperz/PM/UI/Web/Components/LoginForm.js +++ b/frontend/gamma/js/Clipperz/PM/UI/Web/Components/LoginForm.js | |||
@@ -1,120 +1,117 @@ | |||
1 | /* | 1 | /* |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | */ | 24 | */ |
28 | 25 | ||
29 | Clipperz.Base.module('Clipperz.PM.UI.Web.Components'); | 26 | Clipperz.Base.module('Clipperz.PM.UI.Web.Components'); |
30 | 27 | ||
31 | Clipperz.PM.UI.Web.Components.LoginForm = function(args) { | 28 | Clipperz.PM.UI.Web.Components.LoginForm = function(args) { |
32 | args = args || {}; | 29 | args = args || {}; |
33 | 30 | ||
34 | this._autocomplete = args.autocomplete || 'off'; | 31 | this._autocomplete = args.autocomplete || 'off'; |
35 | 32 | ||
36 | Clipperz.PM.UI.Web.Components.LoginForm.superclass.constructor.apply(this, arguments); | 33 | Clipperz.PM.UI.Web.Components.LoginForm.superclass.constructor.apply(this, arguments); |
37 | 34 | ||
38 | this._slots = { | 35 | this._slots = { |
39 | 'passphraseEntropy':this.getId('passphraseEntropy') | 36 | 'passphraseEntropy':this.getId('passphraseEntropy') |
40 | }; | 37 | }; |
41 | 38 | ||
42 | return this; | 39 | return this; |
43 | } | 40 | } |
44 | 41 | ||
45 | //============================================================================= | 42 | //============================================================================= |
46 | 43 | ||
47 | Clipperz.Base.extend(Clipperz.PM.UI.Web.Components.LoginForm, Clipperz.PM.UI.Common.Components.BaseComponent, { | 44 | Clipperz.Base.extend(Clipperz.PM.UI.Web.Components.LoginForm, Clipperz.PM.UI.Common.Components.BaseComponent, { |
48 | 45 | ||
49 | //------------------------------------------------------------------------- | 46 | //------------------------------------------------------------------------- |
50 | 47 | ||
51 | 'toString': function () { | 48 | 'toString': function () { |
52 | return "Clipperz.PM.UI.Web.Components.LoginForm component"; | 49 | return "Clipperz.PM.UI.Web.Components.LoginForm component"; |
53 | }, | 50 | }, |
54 | 51 | ||
55 | 'autocomplete': function () { | 52 | 'autocomplete': function () { |
56 | return this._autocomplete; | 53 | return this._autocomplete; |
57 | }, | 54 | }, |
58 | 55 | ||
59 | //------------------------------------------------------------------------- | 56 | //------------------------------------------------------------------------- |
60 | 57 | ||
61 | 'renderSelf': function() { | 58 | 'renderSelf': function() { |
62 | this.append(this.element(), {tag:'div', id:'loginBox', children:[ | 59 | this.append(this.element(), {tag:'div', id:'loginBox', children:[ |
63 | {tag:'div', cls:'header'}, | 60 | {tag:'div', cls:'header'}, |
64 | {tag:'div', cls:'body', id:this.getId('body'), children:[ | 61 | {tag:'div', cls:'body', id:this.getId('body'), children:[ |
65 | {tag:'div', id:this.getId('loginForm'), children:[ | 62 | {tag:'div', id:this.getId('loginForm'), children:[ |
66 | {tag:'div', children:[ | 63 | {tag:'div', children:[ |
67 | {tag:'h4', html:'Login'}, | 64 | {tag:'h4', html:'Login'}, |
68 | // {tag:'form', cls:'loginForm', autocomplete:this.autocomplete(), children:[ | 65 | // {tag:'form', cls:'loginForm', autocomplete:this.autocomplete(), children:[ |
69 | {tag:'form', id:this.getId('form'), cls:'loginForm', children:[ | 66 | {tag:'form', id:this.getId('form'), cls:'loginForm', children:[ |
70 | {tag:'label', html:'username', 'for':this.getId('usernameField')}, | 67 | {tag:'label', html:'username', 'for':this.getId('usernameField')}, |
71 | {tag:'input', id:this.getId('usernameField'), type:'text', cls:'username'/*, value:'joe'*/}, | 68 | {tag:'input', id:this.getId('usernameField'), type:'text', cls:'username'/*, value:'joe'*/}, |
72 | {tag:'ul', id:this.getId('passwordOptions'), children:[ | 69 | {tag:'ul', id:this.getId('passwordOptions'), children:[ |
73 | {tag:'li', id:this.getId('passphraseOption'), children:[ | 70 | {tag:'li', id:this.getId('passphraseOption'), children:[ |
74 | {tag:'label', html:'passphrase / OTP', 'for':this.getId('passphraseField')}, | 71 | {tag:'label', html:'passphrase / OTP', 'for':this.getId('passphraseField')}, |
75 | {tag:'input', id:this.getId('passphraseField'), type:'password', cls:'password'/*, value:'clipperz'*/} | 72 | {tag:'input', id:this.getId('passphraseField'), type:'password', cls:'password'/*, value:'clipperz'*/} |
76 | ]} //, | 73 | ]} //, |
77 | /* | 74 | /* |
78 | {tag:'li', id:this.getId('otpOption'), children:[ | 75 | {tag:'li', id:this.getId('otpOption'), children:[ |
79 | {tag:'label', html:'one-time password', 'for':this.getId('otpField_1')}, | 76 | {tag:'label', html:'one-time password', 'for':this.getId('otpField_1')}, |
80 | {tag:'input', id:this.getId('otpField_1'), type:'text', cls:'otp', value:'abcd-efgh'}, | 77 | {tag:'input', id:this.getId('otpField_1'), type:'text', cls:'otp', value:'abcd-efgh'}, |
81 | {tag:'input', id:this.getId('otpField_2'), type:'text', cls:'otp', value:'abcd-efgh'}, | 78 | {tag:'input', id:this.getId('otpField_2'), type:'text', cls:'otp', value:'abcd-efgh'}, |
82 | {tag:'input', id:this.getId('otpField_3'), type:'text', cls:'otp', value:'abcd-efgh'}, | 79 | {tag:'input', id:this.getId('otpField_3'), type:'text', cls:'otp', value:'abcd-efgh'}, |
83 | {tag:'input', id:this.getId('otpField_4'), type:'text', cls:'otp', value:'abcd-efgh'} | 80 | {tag:'input', id:this.getId('otpField_4'), type:'text', cls:'otp', value:'abcd-efgh'} |
84 | ]} | 81 | ]} |
85 | */ | 82 | */ |
86 | ]}, | 83 | ]}, |
87 | // {tag:'input', id:this.getId('otpCheckbox'), type:'checkbox', cls:'checkbox'}, | 84 | // {tag:'input', id:this.getId('otpCheckbox'), type:'checkbox', cls:'checkbox'}, |
88 | // {tag:'label', html:'use a one-time passphrase', 'for':this.getId('otpCheckbox'), cls:'checkbox'}, | 85 | // {tag:'label', html:'use a one-time passphrase', 'for':this.getId('otpCheckbox'), cls:'checkbox'}, |
89 | 86 | ||
90 | {tag:'div', cls:'translations', children:[ | 87 | {tag:'div', cls:'translations', children:[ |
91 | {tag:'h4', html:'choose your language'}, | 88 | {tag:'h4', html:'choose your language'}, |
92 | {tag:'ul', children:[ | 89 | {tag:'ul', children:[ |
93 | {tag:'li', cls:'selected', html:'english'}, | 90 | {tag:'li', cls:'selected', html:'english'}, |
94 | {tag:'li', html:'italiano'}, | 91 | {tag:'li', html:'italiano'}, |
95 | {tag:'li', html:'dutch'}, | 92 | {tag:'li', html:'dutch'}, |
96 | {tag:'li', html:'french'}, | 93 | {tag:'li', html:'french'}, |
97 | {tag:'li', html:'spanish'}, | 94 | {tag:'li', html:'spanish'}, |
98 | {tag:'li', html:'chinese'}, | 95 | {tag:'li', html:'chinese'}, |
99 | {tag:'li', html:'japanese'}, | 96 | {tag:'li', html:'japanese'}, |
100 | {tag:'li', html:'portugal'}, | 97 | {tag:'li', html:'portugal'}, |
101 | {tag:'li', html:'arabic'} | 98 | {tag:'li', html:'arabic'} |
102 | ]} | 99 | ]} |
103 | ]}, | 100 | ]}, |
104 | 101 | ||
105 | {tag:'input', id:this.getId('submitButton'), type:'submit', value:'login', cls:'submit'} | 102 | {tag:'input', id:this.getId('submitButton'), type:'submit', value:'login', cls:'submit'} |
106 | ]} | 103 | ]} |
107 | ]} | 104 | ]} |
108 | ]} | 105 | ]} |
109 | ]}, | 106 | ]}, |
110 | {tag:'div', cls:'footer'} | 107 | {tag:'div', cls:'footer'} |
111 | ]}); | 108 | ]}); |
112 | 109 | ||
113 | if (this.autocomplete() == 'off') { | 110 | if (this.autocomplete() == 'off') { |
114 | MochiKit.DOM.updateNodeAttributes(this.getElement('form'), {autocomplete:'off'}); | 111 | MochiKit.DOM.updateNodeAttributes(this.getElement('form'), {autocomplete:'off'}); |
115 | } | 112 | } |
116 | 113 | ||
117 | // Clipperz.Style.setBackgroundGradient(this.getElement('body'), {from:"#ff9955", to:"#ff6622"}) | 114 | // Clipperz.Style.setBackgroundGradient(this.getElement('body'), {from:"#ff9955", to:"#ff6622"}) |
118 | 115 | ||
119 | // this.setEntropyDisplay(new Clipperz.PM.UI.Common.Components.PasswordEntropyDisplay(this.getElement('passphraseField'))); | 116 | // this.setEntropyDisplay(new Clipperz.PM.UI.Common.Components.PasswordEntropyDisplay(this.getElement('passphraseField'))); |
120 | 117 | ||
diff --git a/frontend/gamma/js/Clipperz/PM/UI/Web/Components/LoginPage.js b/frontend/gamma/js/Clipperz/PM/UI/Web/Components/LoginPage.js index 49c030d..2894af8 100644 --- a/frontend/gamma/js/Clipperz/PM/UI/Web/Components/LoginPage.js +++ b/frontend/gamma/js/Clipperz/PM/UI/Web/Components/LoginPage.js | |||
@@ -1,120 +1,117 @@ | |||
1 | /* | 1 | /* |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | */ | 24 | */ |
28 | 25 | ||
29 | Clipperz.Base.module('Clipperz.PM.UI.Web.Components'); | 26 | Clipperz.Base.module('Clipperz.PM.UI.Web.Components'); |
30 | 27 | ||
31 | Clipperz.PM.UI.Web.Components.LoginPage = function(args) { | 28 | Clipperz.PM.UI.Web.Components.LoginPage = function(args) { |
32 | args = args || {}; | 29 | args = args || {}; |
33 | 30 | ||
34 | Clipperz.PM.UI.Web.Components.LoginPage.superclass.constructor.apply(this, arguments); | 31 | Clipperz.PM.UI.Web.Components.LoginPage.superclass.constructor.apply(this, arguments); |
35 | 32 | ||
36 | this._slots = { | 33 | this._slots = { |
37 | 'loginForm':this.getId('loginBoxSlot') | 34 | 'loginForm':this.getId('loginBoxSlot') |
38 | }; | 35 | }; |
39 | 36 | ||
40 | return this; | 37 | return this; |
41 | } | 38 | } |
42 | 39 | ||
43 | //============================================================================= | 40 | //============================================================================= |
44 | 41 | ||
45 | Clipperz.Base.extend(Clipperz.PM.UI.Web.Components.LoginPage, Clipperz.PM.UI.Common.Components.BaseComponent, { | 42 | Clipperz.Base.extend(Clipperz.PM.UI.Web.Components.LoginPage, Clipperz.PM.UI.Common.Components.BaseComponent, { |
46 | 43 | ||
47 | //------------------------------------------------------------------------- | 44 | //------------------------------------------------------------------------- |
48 | 45 | ||
49 | 'toString': function () { | 46 | 'toString': function () { |
50 | return "Clipperz.PM.UI.Web.Components.LoginPage component"; | 47 | return "Clipperz.PM.UI.Web.Components.LoginPage component"; |
51 | }, | 48 | }, |
52 | 49 | ||
53 | //------------------------------------------------------------------------- | 50 | //------------------------------------------------------------------------- |
54 | 51 | ||
55 | 'renderSelf': function(/*aContainer, aPosition*/) { | 52 | 'renderSelf': function(/*aContainer, aPosition*/) { |
56 | this.append(this.element(), [ | 53 | this.append(this.element(), [ |
57 | {tag:'div', id:this.getId('loginBoxSlot')}, | 54 | {tag:'div', id:this.getId('loginBoxSlot')}, |
58 | {tag:'div', id:'main', children:[ | 55 | {tag:'div', id:'main', children:[ |
59 | {tag:'div', id:'featurePoints', children:[ | 56 | {tag:'div', id:'featurePoints', children:[ |
60 | {tag:'table', children:[ | 57 | {tag:'table', children:[ |
61 | {tag:'tr', children:[ | 58 | {tag:'tr', children:[ |
62 | {tag:'td', children:[ | 59 | {tag:'td', children:[ |
63 | {tag:'div', cls:'block', children:[ | 60 | {tag:'div', cls:'block', children:[ |
64 | {tag:'h3', html:'Clipperz is:'}, | 61 | {tag:'h3', html:'Clipperz is:'}, |
65 | {tag:'ul', children:[ | 62 | {tag:'ul', children:[ |
66 | {tag:'li', html:'a secure and simple password manager'}, | 63 | {tag:'li', html:'a secure and simple password manager'}, |
67 | {tag:'li', html:'an effective single sign-on solution'}, | 64 | {tag:'li', html:'an effective single sign-on solution'}, |
68 | {tag:'li', html:'a digital vault for your personal data'} | 65 | {tag:'li', html:'a digital vault for your personal data'} |
69 | ]} | 66 | ]} |
70 | ]}, | 67 | ]}, |
71 | {tag:'div', cls:'block', children:[ | 68 | {tag:'div', cls:'block', children:[ |
72 | {tag:'h3', html:'Clipperz benefits:'}, | 69 | {tag:'h3', html:'Clipperz benefits:'}, |
73 | {tag:'ul', children:[ | 70 | {tag:'ul', children:[ |
74 | {tag:'li', html:'free and completely anonymous'}, | 71 | {tag:'li', html:'free and completely anonymous'}, |
75 | {tag:'li', html:'access it any time from any computer'}, | 72 | {tag:'li', html:'access it any time from any computer'}, |
76 | {tag:'li', html:'no software to download and nothing to install'}, | 73 | {tag:'li', html:'no software to download and nothing to install'}, |
77 | {tag:'li', html:'avoid keeping secrets on your PC or on paper'} | 74 | {tag:'li', html:'avoid keeping secrets on your PC or on paper'} |
78 | ]} | 75 | ]} |
79 | ]} | 76 | ]} |
80 | ]}, {tag:'td', children:[ | 77 | ]}, {tag:'td', children:[ |
81 | {tag:'div', cls:'block', children:[ | 78 | {tag:'div', cls:'block', children:[ |
82 | {tag:'h3', html:'Clipperz security:'}, | 79 | {tag:'h3', html:'Clipperz security:'}, |
83 | {tag:'ul', children:[ | 80 | {tag:'ul', children:[ |
84 | {tag:'li', html:'your secretes are locally encrypted by your browser before being uploaded to Clipperz'}, | 81 | {tag:'li', html:'your secretes are locally encrypted by your browser before being uploaded to Clipperz'}, |
85 | {tag:'li', html:'the encryption key is a passphrase known only to you'}, | 82 | {tag:'li', html:'the encryption key is a passphrase known only to you'}, |
86 | {tag:'li', html:'Clipperz hosts your sensitive data in an encrypted form and could never access the data in its plain form'}, | 83 | {tag:'li', html:'Clipperz hosts your sensitive data in an encrypted form and could never access the data in its plain form'}, |
87 | {tag:'li', html:'Clipperz is built upon standard encryption schemes, nothing fancies of homemade'}, | 84 | {tag:'li', html:'Clipperz is built upon standard encryption schemes, nothing fancies of homemade'}, |
88 | {tag:'li', html:'you can review the source code anytime you like, but you need to know nothing about cryptography to be an happy user!'} | 85 | {tag:'li', html:'you can review the source code anytime you like, but you need to know nothing about cryptography to be an happy user!'} |
89 | ]} | 86 | ]} |
90 | ]} | 87 | ]} |
91 | ]} | 88 | ]} |
92 | ]} | 89 | ]} |
93 | ]} | 90 | ]} |
94 | ]}, | 91 | ]}, |
95 | {tag:'div', cls:'activeFeatures', children:[ | 92 | {tag:'div', cls:'activeFeatures', children:[ |
96 | {tag:'div', id:this.getId('registerButton'), cls:'createAccountLink', children:[ | 93 | {tag:'div', id:this.getId('registerButton'), cls:'createAccountLink', children:[ |
97 | {tag:'canvas', id:this.getId('registerButtonIcon')}, | 94 | {tag:'canvas', id:this.getId('registerButtonIcon')}, |
98 | {tag:'a', href:'#', id:this.getId('createAccountLink'), cls:'createAccountLink', children:[ | 95 | {tag:'a', href:'#', id:this.getId('createAccountLink'), cls:'createAccountLink', children:[ |
99 | {tag:'span', cls:'payoff', html:"Free sign up!"}, | 96 | {tag:'span', cls:'payoff', html:"Free sign up!"}, |
100 | {tag:'span', cls:'link', html:"Create account >>"} | 97 | {tag:'span', cls:'link', html:"Create account >>"} |
101 | ]} | 98 | ]} |
102 | ]}, | 99 | ]}, |
103 | {tag:'div', cls:'keepTogether', children:[ | 100 | {tag:'div', cls:'keepTogether', children:[ |
104 | {tag:'div', id:this.getId('screenshotLink'), cls:'screenshotLink', children:[ | 101 | {tag:'div', id:this.getId('screenshotLink'), cls:'screenshotLink', children:[ |
105 | {tag:'canvas', id:this.getId('lookIcon')}, | 102 | {tag:'canvas', id:this.getId('lookIcon')}, |
106 | {tag:'a', href:'#', cls:'screenshotLink', children:[ | 103 | {tag:'a', href:'#', cls:'screenshotLink', children:[ |
107 | {tag:'span', cls:'payoff', html:"Look Clipperz!"}, | 104 | {tag:'span', cls:'payoff', html:"Look Clipperz!"}, |
108 | {tag:'span', cls:'link', html:"screenshot tour >>"} | 105 | {tag:'span', cls:'link', html:"screenshot tour >>"} |
109 | ]} | 106 | ]} |
110 | ]}, | 107 | ]}, |
111 | {tag:'div', id:this.getId('offlineLink'), cls:'offlineLink', children:[ | 108 | {tag:'div', id:this.getId('offlineLink'), cls:'offlineLink', children:[ |
112 | {tag:'canvas', id:this.getId('downloadIcon')}, | 109 | {tag:'canvas', id:this.getId('downloadIcon')}, |
113 | {tag:'a', href:'#', cls:'offlineLink', children:[ | 110 | {tag:'a', href:'#', cls:'offlineLink', children:[ |
114 | {tag:'span', cls:'payoff', html:"Download!"}, | 111 | {tag:'span', cls:'payoff', html:"Download!"}, |
115 | {tag:'span', cls:'link', html:"Offline version >>"} | 112 | {tag:'span', cls:'link', html:"Offline version >>"} |
116 | ]} | 113 | ]} |
117 | ]} | 114 | ]} |
118 | ]} | 115 | ]} |
119 | ]} | 116 | ]} |
120 | ]} | 117 | ]} |
diff --git a/frontend/gamma/js/Clipperz/PM/UI/Web/Components/LoginProgress.js b/frontend/gamma/js/Clipperz/PM/UI/Web/Components/LoginProgress.js index 03c7b9e..5d082b5 100644 --- a/frontend/gamma/js/Clipperz/PM/UI/Web/Components/LoginProgress.js +++ b/frontend/gamma/js/Clipperz/PM/UI/Web/Components/LoginProgress.js | |||
@@ -1,120 +1,117 @@ | |||
1 | /* | 1 | /* |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | */ | 24 | */ |
28 | 25 | ||
29 | Clipperz.Base.module('Clipperz.PM.UI.Web.Components'); | 26 | Clipperz.Base.module('Clipperz.PM.UI.Web.Components'); |
30 | 27 | ||
31 | Clipperz.PM.UI.Web.Components.LoginProgress = function(args) { | 28 | Clipperz.PM.UI.Web.Components.LoginProgress = function(args) { |
32 | args = args || {}; | 29 | args = args || {}; |
33 | 30 | ||
34 | Clipperz.PM.UI.Web.Components.LoginProgress.superclass.constructor.apply(this, arguments); | 31 | Clipperz.PM.UI.Web.Components.LoginProgress.superclass.constructor.apply(this, arguments); |
35 | 32 | ||
36 | this._deferred = null; | 33 | this._deferred = null; |
37 | 34 | ||
38 | return this; | 35 | return this; |
39 | } | 36 | } |
40 | 37 | ||
41 | //============================================================================= | 38 | //============================================================================= |
42 | 39 | ||
43 | Clipperz.Base.extend(Clipperz.PM.UI.Web.Components.LoginProgress, Clipperz.PM.UI.Common.Components.BaseComponent, { | 40 | Clipperz.Base.extend(Clipperz.PM.UI.Web.Components.LoginProgress, Clipperz.PM.UI.Common.Components.BaseComponent, { |
44 | 41 | ||
45 | //------------------------------------------------------------------------- | 42 | //------------------------------------------------------------------------- |
46 | 43 | ||
47 | 'toString': function () { | 44 | 'toString': function () { |
48 | return "Clipperz.PM.UI.Web.Components.LoginProgress component"; | 45 | return "Clipperz.PM.UI.Web.Components.LoginProgress component"; |
49 | }, | 46 | }, |
50 | 47 | ||
51 | //------------------------------------------------------------------------- | 48 | //------------------------------------------------------------------------- |
52 | 49 | ||
53 | 'deferred': function() { | 50 | 'deferred': function() { |
54 | return this._deferred; | 51 | return this._deferred; |
55 | }, | 52 | }, |
56 | 53 | ||
57 | 'setDeferred': function(aValue) { | 54 | 'setDeferred': function(aValue) { |
58 | this._deferred = aValue; | 55 | this._deferred = aValue; |
59 | }, | 56 | }, |
60 | 57 | ||
61 | //------------------------------------------------------------------------- | 58 | //------------------------------------------------------------------------- |
62 | 59 | ||
63 | 'renderSelf': function() { | 60 | 'renderSelf': function() { |
64 | // var loginProgressElement; | 61 | // var loginProgressElement; |
65 | // | 62 | // |
66 | // loginProgressElement = MochiKit.DOM.getElement('loginProgress'); | 63 | // loginProgressElement = MochiKit.DOM.getElement('loginProgress'); |
67 | // | 64 | // |
68 | // if (loginProgressElement == null) { | 65 | // if (loginProgressElement == null) { |
69 | // loginProgressElement = this.append(this.element(), {tag:'div', id:'loginProgress', cls:'LoginProgress'}, true); | 66 | // loginProgressElement = this.append(this.element(), {tag:'div', id:'loginProgress', cls:'LoginProgress'}, true); |
70 | // } | 67 | // } |
71 | 68 | ||
72 | //console.log(">> LoginProgress.renderSelf", this.element()); | 69 | //console.log(">> LoginProgress.renderSelf", this.element()); |
73 | this.append(this.element(), {tag:'div', id:'loginProgress', cls:'LoginProgress', children: [ | 70 | this.append(this.element(), {tag:'div', id:'loginProgress', cls:'LoginProgress', children: [ |
74 | // this.append(loginProgressElement, [ | 71 | // this.append(loginProgressElement, [ |
75 | {tag:'div', cls:'header', children:[ | 72 | {tag:'div', cls:'header', children:[ |
76 | {tag:'h3', id:this.getId('title'), html:"login progress"} | 73 | {tag:'h3', id:this.getId('title'), html:"login progress"} |
77 | ]}, | 74 | ]}, |
78 | {tag:'div', cls:'body', children:[ | 75 | {tag:'div', cls:'body', children:[ |
79 | {tag:'div', id:this.getId('progressBar')}, | 76 | {tag:'div', id:this.getId('progressBar')}, |
80 | {tag:'div', id:this.getId('errorBox'), cls:'errorBox', children:[ | 77 | {tag:'div', id:this.getId('errorBox'), cls:'errorBox', children:[ |
81 | // {tag:'div',cls:'img ALERT', children:[{tag:'div'}]}, | 78 | // {tag:'div',cls:'img ALERT', children:[{tag:'div'}]}, |
82 | {tag:'div',cls:'img ALERT', children:[{tag:'canvas', id:this.getId('canvas')}]}, | 79 | {tag:'div',cls:'img ALERT', children:[{tag:'canvas', id:this.getId('canvas')}]}, |
83 | {tag:'p', html:"Login failed"} | 80 | {tag:'p', html:"Login failed"} |
84 | ]} | 81 | ]} |
85 | ]}, | 82 | ]}, |
86 | {tag:'div', cls:'footer', children:[ | 83 | {tag:'div', cls:'footer', children:[ |
87 | {tag:'div', cls:'buttonArea', id:this.getId('buttonArea'), children:[ | 84 | {tag:'div', cls:'buttonArea', id:this.getId('buttonArea'), children:[ |
88 | {tag:'div', cls:'button', id:this.getId('button'), children:[ | 85 | {tag:'div', cls:'button', id:this.getId('button'), children:[ |
89 | {tag:'a', href:'#', id:this.getId('buttonLink'), html:"cancel"} | 86 | {tag:'a', href:'#', id:this.getId('buttonLink'), html:"cancel"} |
90 | ]} | 87 | ]} |
91 | ]} | 88 | ]} |
92 | ]} | 89 | ]} |
93 | ]}); | 90 | ]}); |
94 | // ]); | 91 | // ]); |
95 | 92 | ||
96 | Clipperz.PM.UI.Canvas.marks['!'](this.getElement('canvas'), "#ffffff"); | 93 | Clipperz.PM.UI.Canvas.marks['!'](this.getElement('canvas'), "#ffffff"); |
97 | 94 | ||
98 | this.addComponent(new Clipperz.PM.UI.Common.Components.ProgressBar({'element':this.getElement('progressBar')})); | 95 | this.addComponent(new Clipperz.PM.UI.Common.Components.ProgressBar({'element':this.getElement('progressBar')})); |
99 | MochiKit.Style.hideElement(this.getElement('errorBox')); | 96 | MochiKit.Style.hideElement(this.getElement('errorBox')); |
100 | 97 | ||
101 | MochiKit.Signal.connect(this.getId('buttonLink'), 'onclick', this, 'cancelEventHandler'); | 98 | MochiKit.Signal.connect(this.getId('buttonLink'), 'onclick', this, 'cancelEventHandler'); |
102 | }, | 99 | }, |
103 | 100 | ||
104 | //------------------------------------------------------------------------- | 101 | //------------------------------------------------------------------------- |
105 | 102 | ||
106 | 'displayElement': function() { | 103 | 'displayElement': function() { |
107 | return MochiKit.DOM.getElement('loginProgress'); | 104 | return MochiKit.DOM.getElement('loginProgress'); |
108 | }, | 105 | }, |
109 | 106 | ||
110 | //------------------------------------------------------------------------- | 107 | //------------------------------------------------------------------------- |
111 | 108 | ||
112 | 'cancelEventHandler': function(anEvent) { | 109 | 'cancelEventHandler': function(anEvent) { |
113 | anEvent.preventDefault(); | 110 | anEvent.preventDefault(); |
114 | 111 | ||
115 | MochiKit.Signal.signal(this, 'cancelEvent'); | 112 | MochiKit.Signal.signal(this, 'cancelEvent'); |
116 | }, | 113 | }, |
117 | 114 | ||
118 | //------------------------------------------------------------------------- | 115 | //------------------------------------------------------------------------- |
119 | 116 | ||
120 | 'disableCancel': function() { | 117 | 'disableCancel': function() { |
diff --git a/frontend/gamma/js/Clipperz/PM/UI/Web/Components/NewUserCreationComponent.js b/frontend/gamma/js/Clipperz/PM/UI/Web/Components/NewUserCreationComponent.js index b40d1f3..feb16ad 100644 --- a/frontend/gamma/js/Clipperz/PM/UI/Web/Components/NewUserCreationComponent.js +++ b/frontend/gamma/js/Clipperz/PM/UI/Web/Components/NewUserCreationComponent.js | |||
@@ -1,120 +1,117 @@ | |||
1 | /* | 1 | /* |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | */ | 24 | */ |
28 | 25 | ||
29 | Clipperz.Base.module('Clipperz.PM.UI.Web.Components'); | 26 | Clipperz.Base.module('Clipperz.PM.UI.Web.Components'); |
30 | 27 | ||
31 | Clipperz.PM.UI.Web.Components.NewUserCreationComponent = function(args) { | 28 | Clipperz.PM.UI.Web.Components.NewUserCreationComponent = function(args) { |
32 | args = args || {}; | 29 | args = args || {}; |
33 | 30 | ||
34 | Clipperz.PM.UI.Web.Components.NewUserCreationComponent.superclass.constructor.apply(this, arguments); | 31 | Clipperz.PM.UI.Web.Components.NewUserCreationComponent.superclass.constructor.apply(this, arguments); |
35 | 32 | ||
36 | this._tabPanelController = null; | 33 | this._tabPanelController = null; |
37 | 34 | ||
38 | this._initiallySelectedTab = args.selected || 'CREDENTIALS'; | 35 | this._initiallySelectedTab = args.selected || 'CREDENTIALS'; |
39 | this._tabPanelControllerConfiguration = { | 36 | this._tabPanelControllerConfiguration = { |
40 | 'CREDENTIALS': { | 37 | 'CREDENTIALS': { |
41 | tab:'credentialsTab', | 38 | tab:'credentialsTab', |
42 | panel:'credentialsTabpanel' | 39 | panel:'credentialsTabpanel' |
43 | }, | 40 | }, |
44 | 'CHECK_CREDENTIALS': { | 41 | 'CHECK_CREDENTIALS': { |
45 | tab:'checkCredentialsTab', | 42 | tab:'checkCredentialsTab', |
46 | panel:'checkCredentialsTabpanel' | 43 | panel:'checkCredentialsTabpanel' |
47 | }, | 44 | }, |
48 | 'TERMS_OF_SERVICE': { | 45 | 'TERMS_OF_SERVICE': { |
49 | tab:'termsOfServiceTab', | 46 | tab:'termsOfServiceTab', |
50 | panel:'termsOfServiceTabpanel' | 47 | panel:'termsOfServiceTabpanel' |
51 | }, | 48 | }, |
52 | 'CREATE_USER': { | 49 | 'CREATE_USER': { |
53 | tab:'createUserTab', | 50 | tab:'createUserTab', |
54 | panel:'createUserTabpanel' | 51 | panel:'createUserTabpanel' |
55 | }//, | 52 | }//, |
56 | /* | 53 | /* |
57 | 'LOGIN': { | 54 | 'LOGIN': { |
58 | tab:'loginTab', | 55 | tab:'loginTab', |
59 | panel:'loginTabpanel' | 56 | panel:'loginTabpanel' |
60 | } | 57 | } |
61 | */ | 58 | */ |
62 | }; | 59 | }; |
63 | 60 | ||
64 | return this; | 61 | return this; |
65 | } | 62 | } |
66 | 63 | ||
67 | //============================================================================= | 64 | //============================================================================= |
68 | 65 | ||
69 | Clipperz.Base.extend(Clipperz.PM.UI.Web.Components.NewUserCreationComponent, Clipperz.PM.UI.Common.Components.TabPanelComponent, { | 66 | Clipperz.Base.extend(Clipperz.PM.UI.Web.Components.NewUserCreationComponent, Clipperz.PM.UI.Common.Components.TabPanelComponent, { |
70 | 67 | ||
71 | //------------------------------------------------------------------------- | 68 | //------------------------------------------------------------------------- |
72 | 69 | ||
73 | 'toString': function () { | 70 | 'toString': function () { |
74 | return "Clipperz.PM.UI.Web.Components.NewUserCreationComponent component"; | 71 | return "Clipperz.PM.UI.Web.Components.NewUserCreationComponent component"; |
75 | }, | 72 | }, |
76 | 73 | ||
77 | //========================================================================= | 74 | //========================================================================= |
78 | 75 | ||
79 | 'disableAllPanels': function () { | 76 | 'disableAllPanels': function () { |
80 | this.tabPanelController().selectTab(null); | 77 | this.tabPanelController().selectTab(null); |
81 | }, | 78 | }, |
82 | 79 | ||
83 | //------------------------------------------------------------------------- | 80 | //------------------------------------------------------------------------- |
84 | 81 | ||
85 | 'enableCredentialsPanel': function () { | 82 | 'enableCredentialsPanel': function () { |
86 | this.tabPanelController().selectTab('CREDENTIALS'); | 83 | this.tabPanelController().selectTab('CREDENTIALS'); |
87 | }, | 84 | }, |
88 | 85 | ||
89 | 'enableCheckCredentialsPanel': function () { | 86 | 'enableCheckCredentialsPanel': function () { |
90 | this.tabPanelController().selectTab('CHECK_CREDENTIALS'); | 87 | this.tabPanelController().selectTab('CHECK_CREDENTIALS'); |
91 | }, | 88 | }, |
92 | 89 | ||
93 | 'enableTermsOfServicePanel': function () { | 90 | 'enableTermsOfServicePanel': function () { |
94 | this.tabPanelController().selectTab('TERMS_OF_SERVICE'); | 91 | this.tabPanelController().selectTab('TERMS_OF_SERVICE'); |
95 | }, | 92 | }, |
96 | 93 | ||
97 | 'enableCreateUserPanel': function () { | 94 | 'enableCreateUserPanel': function () { |
98 | this.tabPanelController().selectTab('CREATE_USER'); | 95 | this.tabPanelController().selectTab('CREATE_USER'); |
99 | }, | 96 | }, |
100 | 97 | ||
101 | //'enableLoginPanel': function () { | 98 | //'enableLoginPanel': function () { |
102 | // this.tabPanelController().selectTab('LOGIN'); | 99 | // this.tabPanelController().selectTab('LOGIN'); |
103 | //}, | 100 | //}, |
104 | 101 | ||
105 | //========================================================================= | 102 | //========================================================================= |
106 | 103 | ||
107 | 'shouldShowElementWhileRendering': function() { | 104 | 'shouldShowElementWhileRendering': function() { |
108 | return false; | 105 | return false; |
109 | }, | 106 | }, |
110 | 107 | ||
111 | //========================================================================= | 108 | //========================================================================= |
112 | 109 | ||
113 | 'tabPanelController': function () { | 110 | 'tabPanelController': function () { |
114 | if (this._tabPanelController == null) { | 111 | if (this._tabPanelController == null) { |
115 | this._tabPanelController = new Clipperz.PM.UI.Common.Controllers.TabPanelController({ | 112 | this._tabPanelController = new Clipperz.PM.UI.Common.Controllers.TabPanelController({ |
116 | component:this, | 113 | component:this, |
117 | configuration:this._tabPanelControllerConfiguration | 114 | configuration:this._tabPanelControllerConfiguration |
118 | }); | 115 | }); |
119 | 116 | ||
120 | MochiKit.Signal.connect(this._tabPanelController, 'tabSelected', this, 'handleTabSelected') | 117 | MochiKit.Signal.connect(this._tabPanelController, 'tabSelected', this, 'handleTabSelected') |
diff --git a/frontend/gamma/js/Clipperz/PM/UI/Web/Components/Page.js b/frontend/gamma/js/Clipperz/PM/UI/Web/Components/Page.js index bed6675..3cc5a37 100644 --- a/frontend/gamma/js/Clipperz/PM/UI/Web/Components/Page.js +++ b/frontend/gamma/js/Clipperz/PM/UI/Web/Components/Page.js | |||
@@ -1,71 +1,68 @@ | |||
1 | /* | 1 | /* |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | */ | 24 | */ |
28 | 25 | ||
29 | Clipperz.Base.module('Clipperz.PM.UI.Web.Components'); | 26 | Clipperz.Base.module('Clipperz.PM.UI.Web.Components'); |
30 | 27 | ||
31 | Clipperz.PM.UI.Web.Components.Page = function(args) { | 28 | Clipperz.PM.UI.Web.Components.Page = function(args) { |
32 | args = args || {}; | 29 | args = args || {}; |
33 | 30 | ||
34 | Clipperz.PM.UI.Web.Components.Page.superclass.constructor.apply(this, arguments); | 31 | Clipperz.PM.UI.Web.Components.Page.superclass.constructor.apply(this, arguments); |
35 | 32 | ||
36 | this._slots = { | 33 | this._slots = { |
37 | 'header':'pageHeader', | 34 | 'header':'pageHeader', |
38 | 'body': 'pageBody', | 35 | 'body': 'pageBody', |
39 | 'footer':'pageFooter' | 36 | 'footer':'pageFooter' |
40 | }; | 37 | }; |
41 | 38 | ||
42 | return this; | 39 | return this; |
43 | } | 40 | } |
44 | 41 | ||
45 | //============================================================================= | 42 | //============================================================================= |
46 | 43 | ||
47 | Clipperz.Base.extend(Clipperz.PM.UI.Web.Components.Page, Clipperz.PM.UI.Common.Components.BaseComponent, { | 44 | Clipperz.Base.extend(Clipperz.PM.UI.Web.Components.Page, Clipperz.PM.UI.Common.Components.BaseComponent, { |
48 | 45 | ||
49 | //------------------------------------------------------------------------- | 46 | //------------------------------------------------------------------------- |
50 | 47 | ||
51 | 'toString': function () { | 48 | 'toString': function () { |
52 | return "Clipperz.PM.UI.Web.Components.Page component"; | 49 | return "Clipperz.PM.UI.Web.Components.Page component"; |
53 | }, | 50 | }, |
54 | 51 | ||
55 | //------------------------------------------------------------------------- | 52 | //------------------------------------------------------------------------- |
56 | 53 | ||
57 | 'renderSelf': function(/*aContainer, aPosition*/) { | 54 | 'renderSelf': function(/*aContainer, aPosition*/) { |
58 | this.append(this.element(), [ | 55 | this.append(this.element(), [ |
59 | {tag:'div', id:'pageHeaderAndBody', cls:'pageHeaderAndBody', children:[ | 56 | {tag:'div', id:'pageHeaderAndBody', cls:'pageHeaderAndBody', children:[ |
60 | {tag:'div', id:'pageHeader', cls:'pageHeader'}, | 57 | {tag:'div', id:'pageHeader', cls:'pageHeader'}, |
61 | {tag:'div', id:'pageBody', cls:'pageBody'} | 58 | {tag:'div', id:'pageBody', cls:'pageBody'} |
62 | ]}, | 59 | ]}, |
63 | {tag:'div', id:'pageFooter', cls:'pageFooter'} | 60 | {tag:'div', id:'pageFooter', cls:'pageFooter'} |
64 | ]); | 61 | ]); |
65 | 62 | ||
66 | }, | 63 | }, |
67 | 64 | ||
68 | //------------------------------------------------------------------------- | 65 | //------------------------------------------------------------------------- |
69 | 66 | ||
70 | __syntaxFix__: "syntax fix" | 67 | __syntaxFix__: "syntax fix" |
71 | }); | 68 | }); |
diff --git a/frontend/gamma/js/Clipperz/PM/UI/Web/Components/PageFooter.js b/frontend/gamma/js/Clipperz/PM/UI/Web/Components/PageFooter.js index 11135d8..5e8cd7f 100644 --- a/frontend/gamma/js/Clipperz/PM/UI/Web/Components/PageFooter.js +++ b/frontend/gamma/js/Clipperz/PM/UI/Web/Components/PageFooter.js | |||
@@ -1,71 +1,68 @@ | |||
1 | /* | 1 | /* |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | */ | 24 | */ |
28 | 25 | ||
29 | Clipperz.Base.module('Clipperz.PM.UI.Web.Components'); | 26 | Clipperz.Base.module('Clipperz.PM.UI.Web.Components'); |
30 | 27 | ||
31 | Clipperz.PM.UI.Web.Components.PageFooter = function(args) { | 28 | Clipperz.PM.UI.Web.Components.PageFooter = function(args) { |
32 | args = args || {}; | 29 | args = args || {}; |
33 | 30 | ||
34 | Clipperz.PM.UI.Web.Components.PageFooter.superclass.constructor.apply(this, arguments); | 31 | Clipperz.PM.UI.Web.Components.PageFooter.superclass.constructor.apply(this, arguments); |
35 | 32 | ||
36 | return this; | 33 | return this; |
37 | } | 34 | } |
38 | 35 | ||
39 | //============================================================================= | 36 | //============================================================================= |
40 | 37 | ||
41 | Clipperz.Base.extend(Clipperz.PM.UI.Web.Components.PageFooter, Clipperz.PM.UI.Common.Components.BaseComponent, { | 38 | Clipperz.Base.extend(Clipperz.PM.UI.Web.Components.PageFooter, Clipperz.PM.UI.Common.Components.BaseComponent, { |
42 | 39 | ||
43 | //------------------------------------------------------------------------- | 40 | //------------------------------------------------------------------------- |
44 | 41 | ||
45 | 'toString': function () { | 42 | 'toString': function () { |
46 | return "Clipperz.PM.UI.Web.Components.PageFooter component"; | 43 | return "Clipperz.PM.UI.Web.Components.PageFooter component"; |
47 | }, | 44 | }, |
48 | 45 | ||
49 | //------------------------------------------------------------------------- | 46 | //------------------------------------------------------------------------- |
50 | 47 | ||
51 | 'renderSelf': function(/*aContainer, aPosition*/) { | 48 | 'renderSelf': function(/*aContainer, aPosition*/) { |
52 | this.append(this.element(), [ | 49 | this.append(this.element(), [ |
53 | {tag:'div', cls:'footerWrapper', children:[ | 50 | {tag:'div', cls:'footerWrapper', children:[ |
54 | {tag:'div', cls:'footerContent', children:[ | 51 | {tag:'div', cls:'footerContent', children:[ |
55 | // {tag:'div', cls:'footerStarIcon'}, | 52 | // {tag:'div', cls:'footerStarIcon'}, |
56 | {tag:'canvas', id:this.getId('footerStarIcon'), cls:'footerStarIcon'}, | 53 | {tag:'canvas', id:this.getId('footerStarIcon'), cls:'footerStarIcon'}, |
57 | {tag:'span', cls:'copyright', html:'Copyright © 2009 Clipperz Srl'}, | 54 | {tag:'span', cls:'copyright', html:'Copyright © 2009 Clipperz Srl'}, |
58 | {tag:'a', href:'http://www.clipperz.com/terms_of_service',target:'_blank', html:'terms of service'}, | 55 | {tag:'a', href:'http://www.clipperz.com/terms_of_service',target:'_blank', html:'terms of service'}, |
59 | {tag:'a', href:'http://www.clipperz.com/privacy_policy',target:'_blank', html:'privacy policy'}, | 56 | {tag:'a', href:'http://www.clipperz.com/privacy_policy',target:'_blank', html:'privacy policy'}, |
60 | {tag:'span', cls:'applicationVersion', html:'application version: [1992]'} | 57 | {tag:'span', cls:'applicationVersion', html:'application version: [1992]'} |
61 | ]} | 58 | ]} |
62 | ]} | 59 | ]} |
63 | ]); | 60 | ]); |
64 | 61 | ||
65 | Clipperz.PM.UI.Canvas.star.normal(this.getElement('footerStarIcon'), "#7e7e7e"); | 62 | Clipperz.PM.UI.Canvas.star.normal(this.getElement('footerStarIcon'), "#7e7e7e"); |
66 | }, | 63 | }, |
67 | 64 | ||
68 | //------------------------------------------------------------------------- | 65 | //------------------------------------------------------------------------- |
69 | 66 | ||
70 | __syntaxFix__: "syntax fix" | 67 | __syntaxFix__: "syntax fix" |
71 | }); | 68 | }); |
diff --git a/frontend/gamma/js/Clipperz/PM/UI/Web/Components/PageHeader.js b/frontend/gamma/js/Clipperz/PM/UI/Web/Components/PageHeader.js index 3924434..bce8395 100644 --- a/frontend/gamma/js/Clipperz/PM/UI/Web/Components/PageHeader.js +++ b/frontend/gamma/js/Clipperz/PM/UI/Web/Components/PageHeader.js | |||
@@ -1,120 +1,117 @@ | |||
1 | /* | 1 | /* |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | */ | 24 | */ |
28 | 25 | ||
29 | Clipperz.Base.module('Clipperz.PM.UI.Web.Components'); | 26 | Clipperz.Base.module('Clipperz.PM.UI.Web.Components'); |
30 | 27 | ||
31 | Clipperz.PM.UI.Web.Components.PageHeader = function(args) { | 28 | Clipperz.PM.UI.Web.Components.PageHeader = function(args) { |
32 | args = args || {}; | 29 | args = args || {}; |
33 | 30 | ||
34 | Clipperz.PM.UI.Web.Components.PageHeader.superclass.constructor.apply(this, arguments); | 31 | Clipperz.PM.UI.Web.Components.PageHeader.superclass.constructor.apply(this, arguments); |
35 | this._newsIsOpen = args.newsIsOpen || false; | 32 | this._newsIsOpen = args.newsIsOpen || false; |
36 | this._animationDuration = args.animationDuration || 0.5; | 33 | this._animationDuration = args.animationDuration || 0.5; |
37 | 34 | ||
38 | this._offset = 82; | 35 | this._offset = 82; |
39 | 36 | ||
40 | return this; | 37 | return this; |
41 | } | 38 | } |
42 | 39 | ||
43 | //============================================================================= | 40 | //============================================================================= |
44 | 41 | ||
45 | Clipperz.Base.extend(Clipperz.PM.UI.Web.Components.PageHeader, Clipperz.PM.UI.Common.Components.BaseComponent, { | 42 | Clipperz.Base.extend(Clipperz.PM.UI.Web.Components.PageHeader, Clipperz.PM.UI.Common.Components.BaseComponent, { |
46 | 43 | ||
47 | //------------------------------------------------------------------------- | 44 | //------------------------------------------------------------------------- |
48 | 45 | ||
49 | 'toString': function () { | 46 | 'toString': function () { |
50 | return "Clipperz.PM.UI.Web.Components.PageHeader component"; | 47 | return "Clipperz.PM.UI.Web.Components.PageHeader component"; |
51 | }, | 48 | }, |
52 | 49 | ||
53 | //------------------------------------------------------------------------- | 50 | //------------------------------------------------------------------------- |
54 | 51 | ||
55 | 'iframeURL': function () { | 52 | 'iframeURL': function () { |
56 | // return './rss_view.html'; | 53 | // return './rss_view.html'; |
57 | return 'http://www.clipperz.com/files/clipperz.com/appTips/index.html'; | 54 | return 'http://www.clipperz.com/files/clipperz.com/appTips/index.html'; |
58 | }, | 55 | }, |
59 | 56 | ||
60 | //------------------------------------------------------------------------- | 57 | //------------------------------------------------------------------------- |
61 | 58 | ||
62 | 'renderSelf': function(/*aContainer, aPosition*/) { | 59 | 'renderSelf': function(/*aContainer, aPosition*/) { |
63 | this.append(this.element(), [ | 60 | this.append(this.element(), [ |
64 | {tag:'div', id:'miscLinks', children:[ | 61 | {tag:'div', id:'miscLinks', children:[ |
65 | {tag:'ul', children:[ | 62 | {tag:'ul', children:[ |
66 | {tag:'li', children:[{tag:'a', id:'donateHeaderLink', stringID:'pageHeader.donation', href:'http://www.clipperz.com/donations', target:'_blank', html:Clipperz.PM.Strings.getValue('pageHeader.donation')}]}, | 63 | {tag:'li', children:[{tag:'a', id:'donateHeaderLink', stringID:'pageHeader.donation', href:'http://www.clipperz.com/donations', target:'_blank', html:Clipperz.PM.Strings.getValue('pageHeader.donation')}]}, |
67 | {tag:'li', children:[{tag:'a', id:'forumHeaderLink', stringID:'pageHeader.forum', href:'http://www.clipperz.com/forum', target:'_blank', html:Clipperz.PM.Strings.getValue('pageHeader.forum')}]}, | 64 | {tag:'li', children:[{tag:'a', id:'forumHeaderLink', stringID:'pageHeader.forum', href:'http://www.clipperz.com/forum', target:'_blank', html:Clipperz.PM.Strings.getValue('pageHeader.forum')}]}, |
68 | {tag:'li', children:[{tag:'a', id:'creditsHeaderLink', stringID:'pageHeader.credits', href:'http://www.clipperz.com/credits', target:'_blank', html:Clipperz.PM.Strings.getValue('pageHeader.credits')}]}, | 65 | {tag:'li', children:[{tag:'a', id:'creditsHeaderLink', stringID:'pageHeader.credits', href:'http://www.clipperz.com/credits', target:'_blank', html:Clipperz.PM.Strings.getValue('pageHeader.credits')}]}, |
69 | {tag:'li', children:[{tag:'a', id:'feedbackHeaderLink', stringID:'pageHeader.feedback', href:'http://www.clipperz.com/contact', target:'_blank', html:Clipperz.PM.Strings.getValue('pageHeader.feedback')}]}, | 66 | {tag:'li', children:[{tag:'a', id:'feedbackHeaderLink', stringID:'pageHeader.feedback', href:'http://www.clipperz.com/contact', target:'_blank', html:Clipperz.PM.Strings.getValue('pageHeader.feedback')}]}, |
70 | {tag:'li', children:[{tag:'a', id:'helpHeaderLink', stringID:'pageHeader.help', href:'http://www.clipperz.com/support/user_guide',target:'_blank', html:Clipperz.PM.Strings.getValue('pageHeader.help')}]} | 67 | {tag:'li', children:[{tag:'a', id:'helpHeaderLink', stringID:'pageHeader.help', href:'http://www.clipperz.com/support/user_guide',target:'_blank', html:Clipperz.PM.Strings.getValue('pageHeader.help')}]} |
71 | ]} | 68 | ]} |
72 | ]}, | 69 | ]}, |
73 | {tag:'div', id:'logoFrame', children:[ | 70 | {tag:'div', id:'logoFrame', children:[ |
74 | {tag:'a', href:'http://www.clipperz.com', target:'_blank', children:[{tag:'div', id:'logo'}]}, | 71 | {tag:'a', href:'http://www.clipperz.com', target:'_blank', children:[{tag:'div', id:'logo'}]}, |
75 | {tag:'h5', cls:'clipperzPayoff', html:'keep it to yourself!'} | 72 | {tag:'h5', cls:'clipperzPayoff', html:'keep it to yourself!'} |
76 | ]}, | 73 | ]}, |
77 | {tag:'div', id:'news', cls:'hidden', children:[ | 74 | {tag:'div', id:'news', cls:'hidden', children:[ |
78 | // {tag:'div', cls:'close', children:[ | 75 | // {tag:'div', cls:'close', children:[ |
79 | // {tag:'a', href:'#', id:this.getId('closeTips'), html:'x'} | 76 | // {tag:'a', href:'#', id:this.getId('closeTips'), html:'x'} |
80 | // ]}, | 77 | // ]}, |
81 | {tag:'div', id:'newsframe', children:[ | 78 | {tag:'div', id:'newsframe', children:[ |
82 | {tag:'iframe', id:this.getId('iframe'), src:this.iframeURL()} | 79 | {tag:'iframe', id:this.getId('iframe'), src:this.iframeURL()} |
83 | ]}, | 80 | ]}, |
84 | {tag:'div', id:this.getId('newsGrip'), cls:'grip', children:[]} | 81 | {tag:'div', id:this.getId('newsGrip'), cls:'grip', children:[]} |
85 | ]}, | 82 | ]}, |
86 | {tag:'div', id:'featureTabs', children:[ | 83 | {tag:'div', id:'featureTabs', children:[ |
87 | {tag:'table', children:[{tag:'tr', children:[ | 84 | {tag:'table', children:[{tag:'tr', children:[ |
88 | {tag:'td', children:[{tag:'div', id:'feature_store', children:[{tag:'canvas', cls:'featureIcon', id:this.getId('storeIcon')}, {tag:'span', html:"Store and manage your password and online credentials"}]}]}, | 85 | {tag:'td', children:[{tag:'div', id:'feature_store', children:[{tag:'canvas', cls:'featureIcon', id:this.getId('storeIcon')}, {tag:'span', html:"Store and manage your password and online credentials"}]}]}, |
89 | {tag:'td', children:[{tag:'div', id:'feature_protect', children:[{tag:'canvas', cls:'featureIcon', id:this.getId('protectIcon')}, {tag:'span', html:"Protect all your sensitive data"}]}]}, | 86 | {tag:'td', children:[{tag:'div', id:'feature_protect', children:[{tag:'canvas', cls:'featureIcon', id:this.getId('protectIcon')}, {tag:'span', html:"Protect all your sensitive data"}]}]}, |
90 | {tag:'td', children:[{tag:'div', id:'feature_directLogin', children:[{tag:'canvas', cls:'featureIcon', id:this.getId('directLoginIcon')},{tag:'span', html:"Login to your web services without entering any username or password"}]}]}, | 87 | {tag:'td', children:[{tag:'div', id:'feature_directLogin', children:[{tag:'canvas', cls:'featureIcon', id:this.getId('directLoginIcon')},{tag:'span', html:"Login to your web services without entering any username or password"}]}]}, |
91 | {tag:'td', children:[{tag:'div', id:'feature_share', children:[{tag:'canvas', cls:'featureIcon', id:this.getId('shareIcon')}, {tag:'span', html:"Share secret with family members and associates"}]}]} | 88 | {tag:'td', children:[{tag:'div', id:'feature_share', children:[{tag:'canvas', cls:'featureIcon', id:this.getId('shareIcon')}, {tag:'span', html:"Share secret with family members and associates"}]}]} |
92 | ]}]} | 89 | ]}]} |
93 | ]} | 90 | ]} |
94 | ]); | 91 | ]); |
95 | 92 | ||
96 | Clipperz.PM.UI.Canvas.features.store(this.getElement('storeIcon'), "#ffffff"); | 93 | Clipperz.PM.UI.Canvas.features.store(this.getElement('storeIcon'), "#ffffff"); |
97 | Clipperz.PM.UI.Canvas.features.protect(this.getElement('protectIcon'), "#ffffff"); | 94 | Clipperz.PM.UI.Canvas.features.protect(this.getElement('protectIcon'), "#ffffff"); |
98 | Clipperz.PM.UI.Canvas.features.directLogin(this.getElement('directLoginIcon'), "#ffffff"); | 95 | Clipperz.PM.UI.Canvas.features.directLogin(this.getElement('directLoginIcon'), "#ffffff"); |
99 | Clipperz.PM.UI.Canvas.features.share(this.getElement('shareIcon'), "#ffffff", "#ffffff", "#ff0000"); | 96 | Clipperz.PM.UI.Canvas.features.share(this.getElement('shareIcon'), "#ffffff", "#ffffff", "#ff0000"); |
100 | 97 | ||
101 | MochiKit.Signal.connect(this.getElement('newsGrip'), 'onclick', this, 'toggleTips'); | 98 | MochiKit.Signal.connect(this.getElement('newsGrip'), 'onclick', this, 'toggleTips'); |
102 | MochiKit.Signal.connect(this.getElement('iframe'), 'onload', this, 'handleIframeDidLoad'); | 99 | MochiKit.Signal.connect(this.getElement('iframe'), 'onload', this, 'handleIframeDidLoad'); |
103 | }, | 100 | }, |
104 | 101 | ||
105 | //------------------------------------------------------------------------- | 102 | //------------------------------------------------------------------------- |
106 | 103 | ||
107 | 'switchToLoggedMode': function() { | 104 | 'switchToLoggedMode': function() { |
108 | // MochiKit.Style.addElementClass(this.element(), 'logged'); | 105 | // MochiKit.Style.addElementClass(this.element(), 'logged'); |
109 | MochiKit.Style.hideElement('featureTabs'); | 106 | MochiKit.Style.hideElement('featureTabs'); |
110 | }, | 107 | }, |
111 | 108 | ||
112 | //------------------------------------------------------------------------- | 109 | //------------------------------------------------------------------------- |
113 | 110 | ||
114 | 'animationDuration': function () { | 111 | 'animationDuration': function () { |
115 | return this._animationDuration; | 112 | return this._animationDuration; |
116 | }, | 113 | }, |
117 | 114 | ||
118 | 'offset': function () { | 115 | 'offset': function () { |
119 | return this._offset; | 116 | return this._offset; |
120 | }, | 117 | }, |
diff --git a/frontend/gamma/js/Clipperz/PM/UI/Web/Components/PasswordTooltip.js b/frontend/gamma/js/Clipperz/PM/UI/Web/Components/PasswordTooltip.js index 79c8d4f..987e51e 100644 --- a/frontend/gamma/js/Clipperz/PM/UI/Web/Components/PasswordTooltip.js +++ b/frontend/gamma/js/Clipperz/PM/UI/Web/Components/PasswordTooltip.js | |||
@@ -1,120 +1,117 @@ | |||
1 | /* | 1 | /* |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | */ | 24 | */ |
28 | 25 | ||
29 | Clipperz.Base.module('Clipperz.PM.UI.Common.Components'); | 26 | Clipperz.Base.module('Clipperz.PM.UI.Common.Components'); |
30 | 27 | ||
31 | Clipperz.PM.UI.Web.Components.PasswordTooltip = function(args) { | 28 | Clipperz.PM.UI.Web.Components.PasswordTooltip = function(args) { |
32 | args = args || {}; | 29 | args = args || {}; |
33 | 30 | ||
34 | Clipperz.PM.UI.Web.Components.PasswordTooltip.superclass.constructor.apply(this, arguments); | 31 | Clipperz.PM.UI.Web.Components.PasswordTooltip.superclass.constructor.apply(this, arguments); |
35 | 32 | ||
36 | this._referenceElement = args.referenceElement|| Clipperz.Base.exception.raise('MandatoryParameter'); | 33 | this._referenceElement = args.referenceElement|| Clipperz.Base.exception.raise('MandatoryParameter'); |
37 | this._text = args.text || Clipperz.Base.exception.raise('MandatoryParameter'); | 34 | this._text = args.text || Clipperz.Base.exception.raise('MandatoryParameter'); |
38 | 35 | ||
39 | this._boxDimensions = null; | 36 | this._boxDimensions = null; |
40 | this._isVisible = false; | 37 | this._isVisible = false; |
41 | 38 | ||
42 | this.renderSelf(); | 39 | this.renderSelf(); |
43 | 40 | ||
44 | return this; | 41 | return this; |
45 | } | 42 | } |
46 | 43 | ||
47 | //============================================================================= | 44 | //============================================================================= |
48 | 45 | ||
49 | Clipperz.Base.extend(Clipperz.PM.UI.Web.Components.PasswordTooltip, Clipperz.PM.UI.Common.Components.BaseComponent, { | 46 | Clipperz.Base.extend(Clipperz.PM.UI.Web.Components.PasswordTooltip, Clipperz.PM.UI.Common.Components.BaseComponent, { |
50 | 47 | ||
51 | //------------------------------------------------------------------------- | 48 | //------------------------------------------------------------------------- |
52 | 49 | ||
53 | 'toString': function () { | 50 | 'toString': function () { |
54 | return "Clipperz.PM.UI.Web.Components.PasswordTooltip component"; | 51 | return "Clipperz.PM.UI.Web.Components.PasswordTooltip component"; |
55 | }, | 52 | }, |
56 | 53 | ||
57 | //------------------------------------------------------------------------- | 54 | //------------------------------------------------------------------------- |
58 | 55 | ||
59 | 'referenceElement': function () { | 56 | 'referenceElement': function () { |
60 | return this._referenceElement; | 57 | return this._referenceElement; |
61 | }, | 58 | }, |
62 | 59 | ||
63 | //------------------------------------------------------------------------- | 60 | //------------------------------------------------------------------------- |
64 | 61 | ||
65 | 'text': function () { | 62 | 'text': function () { |
66 | return this._text; | 63 | return this._text; |
67 | }, | 64 | }, |
68 | 65 | ||
69 | 'setText': function (aValue) { | 66 | 'setText': function (aValue) { |
70 | this._text = aValue; | 67 | this._text = aValue; |
71 | }, | 68 | }, |
72 | 69 | ||
73 | //------------------------------------------------------------------------- | 70 | //------------------------------------------------------------------------- |
74 | 71 | ||
75 | 'isVisible': function () { | 72 | 'isVisible': function () { |
76 | return this._isVisible; | 73 | return this._isVisible; |
77 | }, | 74 | }, |
78 | 75 | ||
79 | 'setIsVisible': function (aValue) { | 76 | 'setIsVisible': function (aValue) { |
80 | this._isVisible = aValue; | 77 | this._isVisible = aValue; |
81 | }, | 78 | }, |
82 | 79 | ||
83 | //------------------------------------------------------------------------- | 80 | //------------------------------------------------------------------------- |
84 | 81 | ||
85 | 'renderSelf': function() { | 82 | 'renderSelf': function() { |
86 | this.append(MochiKit.DOM.getElement('Clipperz_PM_UI_Common_Components_Tooltip_wrapperNode'), {tag:'div', id:this.getId('tooltip'), cls:'passwordTooltip', children:[ | 83 | this.append(MochiKit.DOM.getElement('Clipperz_PM_UI_Common_Components_Tooltip_wrapperNode'), {tag:'div', id:this.getId('tooltip'), cls:'passwordTooltip', children:[ |
87 | {tag:'div', id:this.getId('body'), cls:'passwordTooltip_body', children:[ | 84 | {tag:'div', id:this.getId('body'), cls:'passwordTooltip_body', children:[ |
88 | {tag:'div', cls:'passwordTooltip_text', children:[ | 85 | {tag:'div', cls:'passwordTooltip_text', children:[ |
89 | {tag:'span', html:this.text()} | 86 | {tag:'span', html:this.text()} |
90 | ]}, | 87 | ]}, |
91 | {tag:'div', id:this.getId('footer'), cls:'passwordTooltip_footer'} | 88 | {tag:'div', id:this.getId('footer'), cls:'passwordTooltip_footer'} |
92 | ]}, | 89 | ]}, |
93 | {tag:'div', id:this.getId('arrow'), cls:'passwordTooltip_arrow'} | 90 | {tag:'div', id:this.getId('arrow'), cls:'passwordTooltip_arrow'} |
94 | ]}); | 91 | ]}); |
95 | 92 | ||
96 | this._boxDimensions = MochiKit.Style.getElementDimensions(this.getId('body')); | 93 | this._boxDimensions = MochiKit.Style.getElementDimensions(this.getId('body')); |
97 | // this._boxDimensions.h += MochiKit.Style.getElementDimensions(this.getId('footer')).h; | 94 | // this._boxDimensions.h += MochiKit.Style.getElementDimensions(this.getId('footer')).h; |
98 | 95 | ||
99 | MochiKit.Style.hideElement(this.displayElement()); | 96 | MochiKit.Style.hideElement(this.displayElement()); |
100 | MochiKit.Signal.connect(this.element(), 'onmouseenter', this, 'show'); | 97 | MochiKit.Signal.connect(this.element(), 'onmouseenter', this, 'show'); |
101 | MochiKit.Signal.connect(this.element(), 'onmouseleave', this, 'hide'); | 98 | MochiKit.Signal.connect(this.element(), 'onmouseleave', this, 'hide'); |
102 | }, | 99 | }, |
103 | 100 | ||
104 | //----------------------------------------------------- | 101 | //----------------------------------------------------- |
105 | 102 | ||
106 | 'displayElement': function() { | 103 | 'displayElement': function() { |
107 | return this.getElement('tooltip'); | 104 | return this.getElement('tooltip'); |
108 | }, | 105 | }, |
109 | 106 | ||
110 | //------------------------------------------------------------------------- | 107 | //------------------------------------------------------------------------- |
111 | 108 | ||
112 | 'boxDimensions': function () { | 109 | 'boxDimensions': function () { |
113 | return this._boxDimensions; | 110 | return this._boxDimensions; |
114 | }, | 111 | }, |
115 | 112 | ||
116 | //------------------------------------------------------------------------- | 113 | //------------------------------------------------------------------------- |
117 | 114 | ||
118 | 'show': function () { | 115 | 'show': function () { |
119 | var elementSizeAndPosition; | 116 | var elementSizeAndPosition; |
120 | var arrowPosition; | 117 | var arrowPosition; |
diff --git a/frontend/gamma/js/Clipperz/PM/UI/Web/Components/RulerComponent.js b/frontend/gamma/js/Clipperz/PM/UI/Web/Components/RulerComponent.js index ab8a38c..69c1ede 100644 --- a/frontend/gamma/js/Clipperz/PM/UI/Web/Components/RulerComponent.js +++ b/frontend/gamma/js/Clipperz/PM/UI/Web/Components/RulerComponent.js | |||
@@ -1,120 +1,117 @@ | |||
1 | /* | 1 | /* |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | */ | 24 | */ |
28 | 25 | ||
29 | Clipperz.Base.module('Clipperz.PM.UI.Web.Components'); | 26 | Clipperz.Base.module('Clipperz.PM.UI.Web.Components'); |
30 | 27 | ||
31 | Clipperz.PM.UI.Web.Components.RulerComponent = function(args) { | 28 | Clipperz.PM.UI.Web.Components.RulerComponent = function(args) { |
32 | args = args || {}; | 29 | args = args || {}; |
33 | Clipperz.PM.UI.Web.Components.RulerComponent.superclass.constructor.apply(this, arguments); | 30 | Clipperz.PM.UI.Web.Components.RulerComponent.superclass.constructor.apply(this, arguments); |
34 | 31 | ||
35 | this._translationContext = args.translationContext|| Clipperz.Base.exception.raise('MandatoryParameter'); | 32 | this._translationContext = args.translationContext|| Clipperz.Base.exception.raise('MandatoryParameter'); |
36 | // this._steps = args.steps || Clipperz.Base.exception.raise('MandatoryParameter'); | 33 | // this._steps = args.steps || Clipperz.Base.exception.raise('MandatoryParameter'); |
37 | this._steps = args.steps; | 34 | this._steps = args.steps; |
38 | 35 | ||
39 | this._currentStep = -1; | 36 | this._currentStep = -1; |
40 | 37 | ||
41 | return this; | 38 | return this; |
42 | } | 39 | } |
43 | 40 | ||
44 | //============================================================================= | 41 | //============================================================================= |
45 | 42 | ||
46 | Clipperz.Base.extend(Clipperz.PM.UI.Web.Components.RulerComponent, Clipperz.PM.UI.Common.Components.BaseComponent, { | 43 | Clipperz.Base.extend(Clipperz.PM.UI.Web.Components.RulerComponent, Clipperz.PM.UI.Common.Components.BaseComponent, { |
47 | 44 | ||
48 | //------------------------------------------------------------------------- | 45 | //------------------------------------------------------------------------- |
49 | 46 | ||
50 | 'toString': function () { | 47 | 'toString': function () { |
51 | return "Clipperz.PM.UI.Web.Components.RulerComponent component"; | 48 | return "Clipperz.PM.UI.Web.Components.RulerComponent component"; |
52 | }, | 49 | }, |
53 | 50 | ||
54 | //------------------------------------------------------------------------- | 51 | //------------------------------------------------------------------------- |
55 | 52 | ||
56 | 'resetStatus': function (args) { | 53 | 'resetStatus': function (args) { |
57 | args = args || {}; | 54 | args = args || {}; |
58 | 55 | ||
59 | if (this.currentStep() != 0) { | 56 | if (this.currentStep() != 0) { |
60 | var shouldAnimateTransition; | 57 | var shouldAnimateTransition; |
61 | 58 | ||
62 | shouldAnimateTransition = args.animateTransition || false; | 59 | shouldAnimateTransition = args.animateTransition || false; |
63 | 60 | ||
64 | if (shouldAnimateTransition) { | 61 | if (shouldAnimateTransition) { |
65 | this.moveToFirstStep(MochiKit.Base.method(this, 'cursorMoved')); | 62 | this.moveToFirstStep(MochiKit.Base.method(this, 'cursorMoved')); |
66 | } else { | 63 | } else { |
67 | this._currentStep = 0; | 64 | this._currentStep = 0; |
68 | this.cursorMoved(); | 65 | this.cursorMoved(); |
69 | } | 66 | } |
70 | } | 67 | } |
71 | }, | 68 | }, |
72 | 69 | ||
73 | //------------------------------------------------------------------------- | 70 | //------------------------------------------------------------------------- |
74 | 71 | ||
75 | 'translationContext': function () { | 72 | 'translationContext': function () { |
76 | return this._translationContext; | 73 | return this._translationContext; |
77 | }, | 74 | }, |
78 | 75 | ||
79 | 'steps': function () { | 76 | 'steps': function () { |
80 | return this._steps; | 77 | return this._steps; |
81 | }, | 78 | }, |
82 | 79 | ||
83 | 'setSteps': function (aValue) { | 80 | 'setSteps': function (aValue) { |
84 | this._steps = aValue; | 81 | this._steps = aValue; |
85 | this.renderStepsComponents(); | 82 | this.renderStepsComponents(); |
86 | this.resetStatus(); | 83 | this.resetStatus(); |
87 | }, | 84 | }, |
88 | 85 | ||
89 | 'translatedStepDescription': function (aStep) { | 86 | 'translatedStepDescription': function (aStep) { |
90 | return Clipperz.PM.Strings.getValue(this.translationContext() + '.' + aStep + '.' + 'name'); | 87 | return Clipperz.PM.Strings.getValue(this.translationContext() + '.' + aStep + '.' + 'name'); |
91 | }, | 88 | }, |
92 | 89 | ||
93 | //------------------------------------------------------------------------- | 90 | //------------------------------------------------------------------------- |
94 | 91 | ||
95 | 'renderSelf': function(/*aContainer, aPosition*/) { | 92 | 'renderSelf': function(/*aContainer, aPosition*/) { |
96 | this.setElement(this.append(MochiKit.DOM.currentDocument().body, [ | 93 | this.setElement(this.append(MochiKit.DOM.currentDocument().body, [ |
97 | {tag:'div', id:this.getId('rulerWrapper'), cls:'rulerWrapper fixed', children:[ | 94 | {tag:'div', id:this.getId('rulerWrapper'), cls:'rulerWrapper fixed', children:[ |
98 | {tag:'div', cls:'ruler', children:[ | 95 | {tag:'div', cls:'ruler', children:[ |
99 | {tag:'a', href:'#', id:this.getId('exit'), cls:'exit', html:' '}, | 96 | {tag:'a', href:'#', id:this.getId('exit'), cls:'exit', html:' '}, |
100 | {tag:'a', href:'#', id:this.getId('smallPreviousButton'),cls:'smallButton previous', html:' '}, | 97 | {tag:'a', href:'#', id:this.getId('smallPreviousButton'),cls:'smallButton previous', html:' '}, |
101 | {tag:'a', href:'#', id:this.getId('smallNextButton'), cls:'smallButton next', html:' '}, | 98 | {tag:'a', href:'#', id:this.getId('smallNextButton'), cls:'smallButton next', html:' '}, |
102 | {tag:'div', cls:'marker', id:this.getId('marker'), children:[ | 99 | {tag:'div', cls:'marker', id:this.getId('marker'), children:[ |
103 | {tag:'div', cls:'previous', id:this.getId('previousButton')}, | 100 | {tag:'div', cls:'previous', id:this.getId('previousButton')}, |
104 | {tag:'div', cls:'markerBody'}, | 101 | {tag:'div', cls:'markerBody'}, |
105 | {tag:'div', cls:'next', id:this.getId('nextButton')} | 102 | {tag:'div', cls:'next', id:this.getId('nextButton')} |
106 | ]}, | 103 | ]}, |
107 | {tag:'div', cls:'steps', id:this.getId('stepsFrame')}, | 104 | {tag:'div', cls:'steps', id:this.getId('stepsFrame')}, |
108 | // {tag:'div', cls:'steps' + ' ' + 'steps_' + this.steps().length, children:[ | 105 | // {tag:'div', cls:'steps' + ' ' + 'steps_' + this.steps().length, children:[ |
109 | // {tag:'ul', id:this.getId('steps'), children:MochiKit.Base.map(MochiKit.Base.bind(function (aStep) { return {tag:'li', children:[{tag:'span', html:this.translatedStepDescription(aStep)}]}}, this), this.steps())} | 106 | // {tag:'ul', id:this.getId('steps'), children:MochiKit.Base.map(MochiKit.Base.bind(function (aStep) { return {tag:'li', children:[{tag:'span', html:this.translatedStepDescription(aStep)}]}}, this), this.steps())} |
110 | // ]}, | 107 | // ]}, |
111 | {tag:'div', cls:'dots', id:this.getId('dotsFrame')} | 108 | {tag:'div', cls:'dots', id:this.getId('dotsFrame')} |
112 | // {tag:'div', cls:'dots' + ' ' + 'steps_' + this.steps().length, children:[ | 109 | // {tag:'div', cls:'dots' + ' ' + 'steps_' + this.steps().length, children:[ |
113 | // {tag:'ul', id:this.getId('dots'), children:MochiKit.Base.map(function (aStep) { return {tag:'li', children:[{tag:'span', html:'*'}]}}, this.steps())} | 110 | // {tag:'ul', id:this.getId('dots'), children:MochiKit.Base.map(function (aStep) { return {tag:'li', children:[{tag:'span', html:'*'}]}}, this.steps())} |
114 | // ]} | 111 | // ]} |
115 | ]} | 112 | ]} |
116 | ]} | 113 | ]} |
117 | ])); | 114 | ])); |
118 | //console.log("ELEMENT", this.element()); | 115 | //console.log("ELEMENT", this.element()); |
119 | 116 | ||
120 | MochiKit.Signal.connect(this.getElement('exit'), 'onclick', this, 'handleExit'); | 117 | MochiKit.Signal.connect(this.getElement('exit'), 'onclick', this, 'handleExit'); |
diff --git a/frontend/gamma/js/Clipperz/PM/UI/Web/Components/TabSidePanel.js b/frontend/gamma/js/Clipperz/PM/UI/Web/Components/TabSidePanel.js index 39a1ccb..666afe9 100644 --- a/frontend/gamma/js/Clipperz/PM/UI/Web/Components/TabSidePanel.js +++ b/frontend/gamma/js/Clipperz/PM/UI/Web/Components/TabSidePanel.js | |||
@@ -1,120 +1,117 @@ | |||
1 | /* | 1 | /* |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | */ | 24 | */ |
28 | 25 | ||
29 | Clipperz.Base.module('Clipperz.PM.UI.Web.Components'); | 26 | Clipperz.Base.module('Clipperz.PM.UI.Web.Components'); |
30 | 27 | ||
31 | Clipperz.PM.UI.Web.Components.TabSidePanel = function(args) { | 28 | Clipperz.PM.UI.Web.Components.TabSidePanel = function(args) { |
32 | args = args || {}; | 29 | args = args || {}; |
33 | Clipperz.PM.UI.Web.Components.TabSidePanel.superclass.constructor.call(this, args); | 30 | Clipperz.PM.UI.Web.Components.TabSidePanel.superclass.constructor.call(this, args); |
34 | 31 | ||
35 | this._element = args.element || null; | 32 | this._element = args.element || null; |
36 | 33 | ||
37 | this._slots = { | 34 | this._slots = { |
38 | }; | 35 | }; |
39 | 36 | ||
40 | return this; | 37 | return this; |
41 | } | 38 | } |
42 | 39 | ||
43 | //============================================================================= | 40 | //============================================================================= |
44 | 41 | ||
45 | Clipperz.Base.extend(Clipperz.PM.UI.Web.Components.TabSidePanel, Clipperz.PM.UI.Common.Components.BaseComponent, { | 42 | Clipperz.Base.extend(Clipperz.PM.UI.Web.Components.TabSidePanel, Clipperz.PM.UI.Common.Components.BaseComponent, { |
46 | 43 | ||
47 | //------------------------------------------------------------------------- | 44 | //------------------------------------------------------------------------- |
48 | 45 | ||
49 | 'toString': function () { | 46 | 'toString': function () { |
50 | return "Clipperz.PM.UI.Web.Components.TabSidePanel component"; | 47 | return "Clipperz.PM.UI.Web.Components.TabSidePanel component"; |
51 | }, | 48 | }, |
52 | 49 | ||
53 | //------------------------------------------------------------------------- | 50 | //------------------------------------------------------------------------- |
54 | 51 | ||
55 | 'deselectAllTabs': function() { | 52 | 'deselectAllTabs': function() { |
56 | var tabListItems; | 53 | var tabListItems; |
57 | 54 | ||
58 | tabListItems = [ | 55 | tabListItems = [ |
59 | 'cardsLI', | 56 | 'cardsLI', |
60 | // 'directLoginLI', | 57 | // 'directLoginLI', |
61 | 'accountLI', | 58 | 'accountLI', |
62 | 'dataLI', | 59 | 'dataLI', |
63 | 'toolsLI' | 60 | 'toolsLI' |
64 | ]; | 61 | ]; |
65 | 62 | ||
66 | //Clipperz.log("=== TabSidePanel.tabSelected anEvent.src().id", anEvent.src().id); | 63 | //Clipperz.log("=== TabSidePanel.tabSelected anEvent.src().id", anEvent.src().id); |
67 | for (var i in tabListItems) { | 64 | for (var i in tabListItems) { |
68 | //Clipperz.log("=== TabSidePanel.tabSelected aTabListItem", tabListItems[i]); | 65 | //Clipperz.log("=== TabSidePanel.tabSelected aTabListItem", tabListItems[i]); |
69 | MochiKit.DOM.removeElementClass(this.getId(tabListItems[i]), 'selected'); | 66 | MochiKit.DOM.removeElementClass(this.getId(tabListItems[i]), 'selected'); |
70 | } | 67 | } |
71 | }, | 68 | }, |
72 | 69 | ||
73 | 'selectTab': function(aTabName) { | 70 | 'selectTab': function(aTabName) { |
74 | this.deselectAllTabs(); | 71 | this.deselectAllTabs(); |
75 | MochiKit.DOM.addElementClass(this.getId(this.listItemIdForTabNamed(aTabName)), 'selected'); | 72 | MochiKit.DOM.addElementClass(this.getId(this.listItemIdForTabNamed(aTabName)), 'selected'); |
76 | MochiKit.Signal.signal(this, 'tabSelected', aTabName); | 73 | MochiKit.Signal.signal(this, 'tabSelected', aTabName); |
77 | }, | 74 | }, |
78 | 75 | ||
79 | 'tabNameForAnchorId': function(anId) { | 76 | 'tabNameForAnchorId': function(anId) { |
80 | var result; | 77 | var result; |
81 | 78 | ||
82 | switch(anId) { | 79 | switch(anId) { |
83 | case 'cards_tabSidePanel': | 80 | case 'cards_tabSidePanel': |
84 | result = 'cards'; | 81 | result = 'cards'; |
85 | break; | 82 | break; |
86 | // case 'directLogins_tabSidePanel': | 83 | // case 'directLogins_tabSidePanel': |
87 | // result = 'directLogins'; | 84 | // result = 'directLogins'; |
88 | // break; | 85 | // break; |
89 | case 'account_tabSidePanel': | 86 | case 'account_tabSidePanel': |
90 | result = 'account'; | 87 | result = 'account'; |
91 | break; | 88 | break; |
92 | case 'data_tabSidePanel': | 89 | case 'data_tabSidePanel': |
93 | result = 'data'; | 90 | result = 'data'; |
94 | break; | 91 | break; |
95 | case 'tools_tabSidePanel': | 92 | case 'tools_tabSidePanel': |
96 | result = 'tools'; | 93 | result = 'tools'; |
97 | break; | 94 | break; |
98 | } | 95 | } |
99 | 96 | ||
100 | return result; | 97 | return result; |
101 | }, | 98 | }, |
102 | 99 | ||
103 | 'listItemIdForTabNamed': function(aTabName) { | 100 | 'listItemIdForTabNamed': function(aTabName) { |
104 | var result; | 101 | var result; |
105 | 102 | ||
106 | switch (aTabName) { | 103 | switch (aTabName) { |
107 | case 'cards': | 104 | case 'cards': |
108 | result = 'cardsLI'; | 105 | result = 'cardsLI'; |
109 | break; | 106 | break; |
110 | // case 'directLogins': | 107 | // case 'directLogins': |
111 | // result = 'directLoginLI'; | 108 | // result = 'directLoginLI'; |
112 | // break; | 109 | // break; |
113 | case 'account': | 110 | case 'account': |
114 | result = 'accountLI'; | 111 | result = 'accountLI'; |
115 | break; | 112 | break; |
116 | case 'data': | 113 | case 'data': |
117 | result = 'dataLI'; | 114 | result = 'dataLI'; |
118 | break; | 115 | break; |
119 | case 'tools': | 116 | case 'tools': |
120 | result = 'toolsLI'; | 117 | result = 'toolsLI'; |
diff --git a/frontend/gamma/js/Clipperz/PM/UI/Web/Components/TextColumnManager.js b/frontend/gamma/js/Clipperz/PM/UI/Web/Components/TextColumnManager.js index 97e81b4..3dc9ce9 100644 --- a/frontend/gamma/js/Clipperz/PM/UI/Web/Components/TextColumnManager.js +++ b/frontend/gamma/js/Clipperz/PM/UI/Web/Components/TextColumnManager.js | |||
@@ -1,53 +1,50 @@ | |||
1 | /* | 1 | /* |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | */ | 24 | */ |
28 | 25 | ||
29 | Clipperz.Base.module('Clipperz.PM.UI.Web.Components'); | 26 | Clipperz.Base.module('Clipperz.PM.UI.Web.Components'); |
30 | 27 | ||
31 | //############################################################################# | 28 | //############################################################################# |
32 | 29 | ||
33 | Clipperz.PM.UI.Web.Components.TextColumnManager = function(args) { | 30 | Clipperz.PM.UI.Web.Components.TextColumnManager = function(args) { |
34 | args = args || {}; | 31 | args = args || {}; |
35 | Clipperz.PM.UI.Web.Components.TextColumnManager.superclass.constructor.call(this, args); | 32 | Clipperz.PM.UI.Web.Components.TextColumnManager.superclass.constructor.call(this, args); |
36 | 33 | ||
37 | return this; | 34 | return this; |
38 | } | 35 | } |
39 | 36 | ||
40 | //============================================================================= | 37 | //============================================================================= |
41 | 38 | ||
42 | Clipperz.Base.extend(Clipperz.PM.UI.Web.Components.TextColumnManager, Clipperz.PM.UI.Web.Components.ColumnManager, { | 39 | Clipperz.Base.extend(Clipperz.PM.UI.Web.Components.TextColumnManager, Clipperz.PM.UI.Web.Components.ColumnManager, { |
43 | 40 | ||
44 | 'toString': function () { | 41 | 'toString': function () { |
45 | return "Clipperz.PM.UI.Web.Components.TextColumnManager component"; | 42 | return "Clipperz.PM.UI.Web.Components.TextColumnManager component"; |
46 | }, | 43 | }, |
47 | 44 | ||
48 | //----------------------------------------------------- | 45 | //----------------------------------------------------- |
49 | 46 | ||
50 | '__syntax_fix__' : 'syntax fix' | 47 | '__syntax_fix__' : 'syntax fix' |
51 | 48 | ||
52 | }); | 49 | }); |
53 | 50 | ||
diff --git a/frontend/gamma/js/Clipperz/PM/UI/Web/Components/ToolsPanel.js b/frontend/gamma/js/Clipperz/PM/UI/Web/Components/ToolsPanel.js index 179c495..3ee6189 100644 --- a/frontend/gamma/js/Clipperz/PM/UI/Web/Components/ToolsPanel.js +++ b/frontend/gamma/js/Clipperz/PM/UI/Web/Components/ToolsPanel.js | |||
@@ -1,113 +1,110 @@ | |||
1 | /* | 1 | /* |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | */ | 24 | */ |
28 | 25 | ||
29 | Clipperz.Base.module('Clipperz.PM.UI.Web.Components'); | 26 | Clipperz.Base.module('Clipperz.PM.UI.Web.Components'); |
30 | 27 | ||
31 | Clipperz.PM.UI.Web.Components.ToolsPanel = function(args) { | 28 | Clipperz.PM.UI.Web.Components.ToolsPanel = function(args) { |
32 | args = args || {}; | 29 | args = args || {}; |
33 | 30 | ||
34 | Clipperz.PM.UI.Web.Components.ToolsPanel.superclass.constructor.apply(this, arguments); | 31 | Clipperz.PM.UI.Web.Components.ToolsPanel.superclass.constructor.apply(this, arguments); |
35 | 32 | ||
36 | this._initiallySelectedTab = args.selected || 'PASSWORD_GENERATOR'; | 33 | this._initiallySelectedTab = args.selected || 'PASSWORD_GENERATOR'; |
37 | this._tabPanelControllerConfiguration = { | 34 | this._tabPanelControllerConfiguration = { |
38 | 'PASSWORD_GENERATOR': { | 35 | 'PASSWORD_GENERATOR': { |
39 | tab:'passwordGeneratorTab', | 36 | tab:'passwordGeneratorTab', |
40 | panel:'passwordGeneratorPanel' | 37 | panel:'passwordGeneratorPanel' |
41 | }, | 38 | }, |
42 | 'BOOKMARKLET': { | 39 | 'BOOKMARKLET': { |
43 | tab:'bookmarkletTab', | 40 | tab:'bookmarkletTab', |
44 | panel:'bookmarkletPanel' | 41 | panel:'bookmarkletPanel' |
45 | }, | 42 | }, |
46 | 'COMPACT_EDITION': { | 43 | 'COMPACT_EDITION': { |
47 | tab:'compactEditionTab', | 44 | tab:'compactEditionTab', |
48 | panel:'compactEditionPanel' | 45 | panel:'compactEditionPanel' |
49 | }, | 46 | }, |
50 | 'HTTP_AUTH': { | 47 | 'HTTP_AUTH': { |
51 | tab:'httpAuthTab', | 48 | tab:'httpAuthTab', |
52 | panel:'httpAuthPanel' | 49 | panel:'httpAuthPanel' |
53 | } | 50 | } |
54 | }; | 51 | }; |
55 | 52 | ||
56 | return this; | 53 | return this; |
57 | } | 54 | } |
58 | 55 | ||
59 | //============================================================================= | 56 | //============================================================================= |
60 | 57 | ||
61 | Clipperz.Base.extend(Clipperz.PM.UI.Web.Components.ToolsPanel, Clipperz.PM.UI.Common.Components.TabPanelComponent, { | 58 | Clipperz.Base.extend(Clipperz.PM.UI.Web.Components.ToolsPanel, Clipperz.PM.UI.Common.Components.TabPanelComponent, { |
62 | 59 | ||
63 | //------------------------------------------------------------------------- | 60 | //------------------------------------------------------------------------- |
64 | 61 | ||
65 | 'toString': function () { | 62 | 'toString': function () { |
66 | return "Clipperz.PM.UI.Web.Components.ToolsPanel component"; | 63 | return "Clipperz.PM.UI.Web.Components.ToolsPanel component"; |
67 | }, | 64 | }, |
68 | 65 | ||
69 | //------------------------------------------------------------------------- | 66 | //------------------------------------------------------------------------- |
70 | 67 | ||
71 | 'renderSelf': function(/*aContainer, aPosition*/) { | 68 | 'renderSelf': function(/*aContainer, aPosition*/) { |
72 | this.append(this.element(), [ | 69 | this.append(this.element(), [ |
73 | {tag:'div', cls:'header', children:[ | 70 | {tag:'div', cls:'header', children:[ |
74 | {tag:'div', cls:'subPanelTabs', children:[ | 71 | {tag:'div', cls:'subPanelTabs', children:[ |
75 | {tag:'ul', children:[ | 72 | {tag:'ul', children:[ |
76 | {tag:'li', id:this.getId('passwordGeneratorTab'),children:[{tag:'a', href:'#', html:'Password generator'}], cls:'first'}, | 73 | {tag:'li', id:this.getId('passwordGeneratorTab'),children:[{tag:'a', href:'#', html:'Password generator'}], cls:'first'}, |
77 | {tag:'li', id:this.getId('bookmarkletTab'), children:[{tag:'a', href:'#', html:'Bookmarklet'}]}, | 74 | {tag:'li', id:this.getId('bookmarkletTab'), children:[{tag:'a', href:'#', html:'Bookmarklet'}]}, |
78 | {tag:'li', id:this.getId('compactEditionTab'), children:[{tag:'a', href:'#', html:'Compact edition'}]}, | 75 | {tag:'li', id:this.getId('compactEditionTab'), children:[{tag:'a', href:'#', html:'Compact edition'}]}, |
79 | {tag:'li', id:this.getId('httpAuthTab'), children:[{tag:'a', href:'#', html:'HTTP Auth'}]} | 76 | {tag:'li', id:this.getId('httpAuthTab'), children:[{tag:'a', href:'#', html:'HTTP Auth'}]} |
80 | ]} | 77 | ]} |
81 | ]} | 78 | ]} |
82 | ]}, | 79 | ]}, |
83 | {tag:'div', cls:'body', children:[ | 80 | {tag:'div', cls:'body', children:[ |
84 | {tag:'div', cls:'accountPanel', children:[ | 81 | {tag:'div', cls:'accountPanel', children:[ |
85 | {tag:'div', cls:'subPanelContent', children:[ | 82 | {tag:'div', cls:'subPanelContent', children:[ |
86 | {tag:'ul', children:[ | 83 | {tag:'ul', children:[ |
87 | {tag:'li', id:this.getId('passwordGeneratorPanel'),children:[ | 84 | {tag:'li', id:this.getId('passwordGeneratorPanel'),children:[ |
88 | {tag:'h3', html:"Password generator"} | 85 | {tag:'h3', html:"Password generator"} |
89 | ]}, | 86 | ]}, |
90 | {tag:'li', id:this.getId('bookmarkletPanel'),children:[ | 87 | {tag:'li', id:this.getId('bookmarkletPanel'),children:[ |
91 | {tag:'h3', html:"Bookmarklet"} | 88 | {tag:'h3', html:"Bookmarklet"} |
92 | ]}, | 89 | ]}, |
93 | {tag:'li', id:this.getId('compactEditionPanel'), children:[ | 90 | {tag:'li', id:this.getId('compactEditionPanel'), children:[ |
94 | {tag:'h3', html:"Compact edition"} | 91 | {tag:'h3', html:"Compact edition"} |
95 | ]}, | 92 | ]}, |
96 | {tag:'li', id:this.getId('httpAuthPanel'), children:[ | 93 | {tag:'li', id:this.getId('httpAuthPanel'), children:[ |
97 | {tag:'h3', html:"HTTP Auth"} | 94 | {tag:'h3', html:"HTTP Auth"} |
98 | ]} | 95 | ]} |
99 | ]} | 96 | ]} |
100 | ]} | 97 | ]} |
101 | ]} | 98 | ]} |
102 | ]}, | 99 | ]}, |
103 | {tag:'div', cls:'footer'} | 100 | {tag:'div', cls:'footer'} |
104 | ]); | 101 | ]); |
105 | 102 | ||
106 | this.tabPanelController().setup({selected:this.initiallySelectedTab()}); | 103 | this.tabPanelController().setup({selected:this.initiallySelectedTab()}); |
107 | }, | 104 | }, |
108 | 105 | ||
109 | //------------------------------------------------------------------------- | 106 | //------------------------------------------------------------------------- |
110 | 107 | ||
111 | 108 | ||
112 | __syntaxFix__: "syntax fix" | 109 | __syntaxFix__: "syntax fix" |
113 | }); | 110 | }); |
diff --git a/frontend/gamma/js/Clipperz/PM/UI/Web/Components/UnlockPasswordComponent.js b/frontend/gamma/js/Clipperz/PM/UI/Web/Components/UnlockPasswordComponent.js index 5b9d522..21ccf2a 100644 --- a/frontend/gamma/js/Clipperz/PM/UI/Web/Components/UnlockPasswordComponent.js +++ b/frontend/gamma/js/Clipperz/PM/UI/Web/Components/UnlockPasswordComponent.js | |||
@@ -1,120 +1,117 @@ | |||
1 | /* | 1 | /* |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | */ | 24 | */ |
28 | 25 | ||
29 | Clipperz.Base.module('Clipperz.PM.UI.Web.Components'); | 26 | Clipperz.Base.module('Clipperz.PM.UI.Web.Components'); |
30 | 27 | ||
31 | Clipperz.PM.UI.Web.Components.UnlockPasswordComponent = function(args) { | 28 | Clipperz.PM.UI.Web.Components.UnlockPasswordComponent = function(args) { |
32 | args = args || {}; | 29 | args = args || {}; |
33 | 30 | ||
34 | Clipperz.PM.UI.Web.Components.UnlockPasswordComponent.superclass.constructor.apply(this, arguments); | 31 | Clipperz.PM.UI.Web.Components.UnlockPasswordComponent.superclass.constructor.apply(this, arguments); |
35 | 32 | ||
36 | this._openFromElement = args.openFromElement || null; | 33 | this._openFromElement = args.openFromElement || null; |
37 | this._onOkCloseToElement = args.onOkCloseToElement || null; | 34 | this._onOkCloseToElement = args.onOkCloseToElement || null; |
38 | this._onCancelCloseToElement = args.onCancelCloseToElement|| null; | 35 | this._onCancelCloseToElement = args.onCancelCloseToElement|| null; |
39 | 36 | ||
40 | this._progressBarComponent = null; | 37 | this._progressBarComponent = null; |
41 | 38 | ||
42 | return this; | 39 | return this; |
43 | } | 40 | } |
44 | 41 | ||
45 | //============================================================================= | 42 | //============================================================================= |
46 | 43 | ||
47 | Clipperz.Base.extend(Clipperz.PM.UI.Web.Components.UnlockPasswordComponent, Clipperz.PM.UI.Common.Components.SimpleMessagePanel, { | 44 | Clipperz.Base.extend(Clipperz.PM.UI.Web.Components.UnlockPasswordComponent, Clipperz.PM.UI.Common.Components.SimpleMessagePanel, { |
48 | 45 | ||
49 | //------------------------------------------------------------------------- | 46 | //------------------------------------------------------------------------- |
50 | 47 | ||
51 | 'toString': function () { | 48 | 'toString': function () { |
52 | return "Clipperz.PM.UI.Web.Components.UnlockPasswordComponent component"; | 49 | return "Clipperz.PM.UI.Web.Components.UnlockPasswordComponent component"; |
53 | }, | 50 | }, |
54 | 51 | ||
55 | //------------------------------------------------------------------------- | 52 | //------------------------------------------------------------------------- |
56 | 53 | ||
57 | 'getPassphrase': function () { | 54 | 'getPassphrase': function () { |
58 | /* var deferredResult; | 55 | /* var deferredResult; |
59 | 56 | ||
60 | if (this.passphrase() == null) { | 57 | if (this.passphrase() == null) { |
61 | this.deferredShowModal({'openFromElement': this.openFromElement()}); | 58 | this.deferredShowModal({'openFromElement': this.openFromElement()}); |
62 | deferredResult = this.deferred(); | 59 | deferredResult = this.deferred(); |
63 | } else { | 60 | } else { |
64 | deferredResult = MochiKit.Async.succeed(this.passphrase()); | 61 | deferredResult = MochiKit.Async.succeed(this.passphrase()); |
65 | } | 62 | } |
66 | 63 | ||
67 | return deferredResult; | 64 | return deferredResult; |
68 | */ | 65 | */ |
69 | 66 | ||
70 | this.deferredShowModal({'openFromElement': this.openFromElement()}); | 67 | this.deferredShowModal({'openFromElement': this.openFromElement()}); |
71 | 68 | ||
72 | return this.deferred(); | 69 | return this.deferred(); |
73 | }, | 70 | }, |
74 | 71 | ||
75 | //------------------------------------------------------------------------- | 72 | //------------------------------------------------------------------------- |
76 | 73 | ||
77 | 'deferredShowModal': function (someParameters) { | 74 | 'deferredShowModal': function (someParameters) { |
78 | return Clipperz.Async.callbacks("UnlockPasswordComponent.deferredShowModal", [ | 75 | return Clipperz.Async.callbacks("UnlockPasswordComponent.deferredShowModal", [ |
79 | MochiKit.Base.bind(Clipperz.PM.UI.Web.Components.UnlockPasswordComponent.superclass.deferredShowModal, this, someParameters), | 76 | MochiKit.Base.bind(Clipperz.PM.UI.Web.Components.UnlockPasswordComponent.superclass.deferredShowModal, this, someParameters), |
80 | MochiKit.Base.method(this, 'getElement', 'passphrase'), | 77 | MochiKit.Base.method(this, 'getElement', 'passphrase'), |
81 | MochiKit.Base.methodcaller('focus') | 78 | MochiKit.Base.methodcaller('focus') |
82 | ], {trace:false}) | 79 | ], {trace:false}) |
83 | }, | 80 | }, |
84 | 81 | ||
85 | //------------------------------------------------------------------------- | 82 | //------------------------------------------------------------------------- |
86 | 83 | ||
87 | 'openFromElement': function () { | 84 | 'openFromElement': function () { |
88 | return this._openFromElement; | 85 | return this._openFromElement; |
89 | }, | 86 | }, |
90 | 87 | ||
91 | 'onOkCloseToElement': function () { | 88 | 'onOkCloseToElement': function () { |
92 | return this._onOkCloseToElement; | 89 | return this._onOkCloseToElement; |
93 | }, | 90 | }, |
94 | 91 | ||
95 | 'onCancelCloseToElement': function () { | 92 | 'onCancelCloseToElement': function () { |
96 | return this._onCancelCloseToElement; | 93 | return this._onCancelCloseToElement; |
97 | }, | 94 | }, |
98 | 95 | ||
99 | //------------------------------------------------------------------------- | 96 | //------------------------------------------------------------------------- |
100 | 97 | ||
101 | 'renderSelf': function() { | 98 | 'renderSelf': function() { |
102 | Clipperz.PM.UI.Web.Components.UnlockPasswordComponent.superclass.renderSelf.apply(this, arguments); | 99 | Clipperz.PM.UI.Web.Components.UnlockPasswordComponent.superclass.renderSelf.apply(this, arguments); |
103 | 100 | ||
104 | this.append(this.getElement('container'), {tag:'div', cls:'passphrase', children: [ | 101 | this.append(this.getElement('container'), {tag:'div', cls:'passphrase', children: [ |
105 | // {tag:'form', id:this.getId('passphraseForm'), children:[ | 102 | // {tag:'form', id:this.getId('passphraseForm'), children:[ |
106 | {tag:'input', id:this.getId('passphrase'), type:'password', name:'passphrase', value:''} | 103 | {tag:'input', id:this.getId('passphrase'), type:'password', name:'passphrase', value:''} |
107 | // ]} | 104 | // ]} |
108 | ]}); | 105 | ]}); |
109 | 106 | ||
110 | MochiKit.Signal.connect(Clipperz.Signal.NotificationCenter, 'userSuccessfullyLoggedIn', this, 'userSuccessfullyLoggedInHandler'); | 107 | MochiKit.Signal.connect(Clipperz.Signal.NotificationCenter, 'userSuccessfullyLoggedIn', this, 'userSuccessfullyLoggedInHandler'); |
111 | MochiKit.Signal.connect(Clipperz.Signal.NotificationCenter, 'userLoginFailed', this, 'userLoginFailedHandler'); | 108 | MochiKit.Signal.connect(Clipperz.Signal.NotificationCenter, 'userLoginFailed', this, 'userLoginFailedHandler'); |
112 | 109 | ||
113 | 110 | ||
114 | // MochiKit.Async.callLater(0.1, MochiKit.Base.method(this.getElement('passphrase'), 'focus')); | 111 | // MochiKit.Async.callLater(0.1, MochiKit.Base.method(this.getElement('passphrase'), 'focus')); |
115 | // this.getElement('passphrase').select(); | 112 | // this.getElement('passphrase').select(); |
116 | }, | 113 | }, |
117 | 114 | ||
118 | //------------------------------------------------------------------------- | 115 | //------------------------------------------------------------------------- |
119 | 116 | ||
120 | 'showProgressBar': function () { | 117 | 'showProgressBar': function () { |
diff --git a/frontend/gamma/js/Clipperz/PM/UI/Web/Components/UserInfoBox.js b/frontend/gamma/js/Clipperz/PM/UI/Web/Components/UserInfoBox.js index f26118e..d699dc6 100644 --- a/frontend/gamma/js/Clipperz/PM/UI/Web/Components/UserInfoBox.js +++ b/frontend/gamma/js/Clipperz/PM/UI/Web/Components/UserInfoBox.js | |||
@@ -1,120 +1,117 @@ | |||
1 | /* | 1 | /* |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | */ | 24 | */ |
28 | 25 | ||
29 | Clipperz.Base.module('Clipperz.PM.UI.Web.Components'); | 26 | Clipperz.Base.module('Clipperz.PM.UI.Web.Components'); |
30 | 27 | ||
31 | Clipperz.PM.UI.Web.Components.UserInfoBox = function(args) { | 28 | Clipperz.PM.UI.Web.Components.UserInfoBox = function(args) { |
32 | args = args || {}; | 29 | args = args || {}; |
33 | 30 | ||
34 | Clipperz.PM.UI.Web.Components.UserInfoBox.superclass.constructor.apply(this, arguments); | 31 | Clipperz.PM.UI.Web.Components.UserInfoBox.superclass.constructor.apply(this, arguments); |
35 | 32 | ||
36 | this._slots = {}; | 33 | this._slots = {}; |
37 | this._isLocked = false; | 34 | this._isLocked = false; |
38 | this._lockTooltip = null; | 35 | this._lockTooltip = null; |
39 | 36 | ||
40 | return this; | 37 | return this; |
41 | } | 38 | } |
42 | 39 | ||
43 | //============================================================================= | 40 | //============================================================================= |
44 | 41 | ||
45 | Clipperz.Base.extend(Clipperz.PM.UI.Web.Components.UserInfoBox, Clipperz.PM.UI.Common.Components.BaseComponent, { | 42 | Clipperz.Base.extend(Clipperz.PM.UI.Web.Components.UserInfoBox, Clipperz.PM.UI.Common.Components.BaseComponent, { |
46 | 43 | ||
47 | //------------------------------------------------------------------------- | 44 | //------------------------------------------------------------------------- |
48 | 45 | ||
49 | 'toString': function () { | 46 | 'toString': function () { |
50 | return "Clipperz.PM.UI.Web.Components.UserInfoBox component"; | 47 | return "Clipperz.PM.UI.Web.Components.UserInfoBox component"; |
51 | }, | 48 | }, |
52 | 49 | ||
53 | //------------------------------------------------------------------------- | 50 | //------------------------------------------------------------------------- |
54 | 51 | ||
55 | 'handleLogout': function(anEvent) { | 52 | 'handleLogout': function(anEvent) { |
56 | //Clipperz.log(">>> UserInfoBox.handleLogout"); | 53 | //Clipperz.log(">>> UserInfoBox.handleLogout"); |
57 | anEvent.preventDefault(); | 54 | anEvent.preventDefault(); |
58 | MochiKit.Signal.signal(this, 'logout'); | 55 | MochiKit.Signal.signal(this, 'logout'); |
59 | //Clipperz.log("<<< UserInfoBox.handleLogout"); | 56 | //Clipperz.log("<<< UserInfoBox.handleLogout"); |
60 | }, | 57 | }, |
61 | 58 | ||
62 | //------------------------------------------------------------------------- | 59 | //------------------------------------------------------------------------- |
63 | 60 | ||
64 | 'lockTooltip': function () { | 61 | 'lockTooltip': function () { |
65 | return this._lockTooltip; | 62 | return this._lockTooltip; |
66 | }, | 63 | }, |
67 | 64 | ||
68 | //------------------------------------------------------------------------- | 65 | //------------------------------------------------------------------------- |
69 | 66 | ||
70 | 'isLocked': function () { | 67 | 'isLocked': function () { |
71 | return this._isLocked; | 68 | return this._isLocked; |
72 | }, | 69 | }, |
73 | 70 | ||
74 | 'setIsLocked': function (aValue) { | 71 | 'setIsLocked': function (aValue) { |
75 | this._isLocked = aValue; | 72 | this._isLocked = aValue; |
76 | }, | 73 | }, |
77 | 74 | ||
78 | 'toggleLock': function(anEvent) { | 75 | 'toggleLock': function(anEvent) { |
79 | var deferredResult; | 76 | var deferredResult; |
80 | var shouldLock; | 77 | var shouldLock; |
81 | 78 | ||
82 | //console.log(">>> UserInfoBox.toggleLock [locked: " + this.isLocked() + "]"); | 79 | //console.log(">>> UserInfoBox.toggleLock [locked: " + this.isLocked() + "]"); |
83 | anEvent.preventDefault(); | 80 | anEvent.preventDefault(); |
84 | this.lockTooltip().hide(); | 81 | this.lockTooltip().hide(); |
85 | 82 | ||
86 | shouldLock = (this.isLocked() == false); | 83 | shouldLock = (this.isLocked() == false); |
87 | 84 | ||
88 | if (shouldLock) { | 85 | if (shouldLock) { |
89 | var maskElement; | 86 | var maskElement; |
90 | 87 | ||
91 | this.setIsLocked(true); | 88 | this.setIsLocked(true); |
92 | maskElement = this.getId('modalDialogMask'); | 89 | maskElement = this.getId('modalDialogMask'); |
93 | deferredResult = Clipperz.Async.callbacks("UserInfoBox.toggleLock [lock]", [ | 90 | deferredResult = Clipperz.Async.callbacks("UserInfoBox.toggleLock [lock]", [ |
94 | MochiKit.Base.partial(MochiKit.DOM.addElementClass, this.element(), 'locked'), | 91 | MochiKit.Base.partial(MochiKit.DOM.addElementClass, this.element(), 'locked'), |
95 | MochiKit.Base.partial(Clipperz.Visual.deferredAnimation, MochiKit.Visual.appear, maskElement, {from:0.0, to:0.75, duration:0.5}), | 92 | MochiKit.Base.partial(Clipperz.Visual.deferredAnimation, MochiKit.Visual.appear, maskElement, {from:0.0, to:0.75, duration:0.5}), |
96 | MochiKit.Base.method(Clipperz.PM.RunTime.mainController, 'setPassphraseDelegate', MochiKit.Base.method(this, 'askForPassphrase')), | 93 | MochiKit.Base.method(Clipperz.PM.RunTime.mainController, 'setPassphraseDelegate', MochiKit.Base.method(this, 'askForPassphrase')), |
97 | MochiKit.Base.partial(MochiKit.Signal.signal, this, 'lock') | 94 | MochiKit.Base.partial(MochiKit.Signal.signal, this, 'lock') |
98 | ], {trace:false}); | 95 | ], {trace:false}); |
99 | } else { | 96 | } else { |
100 | deferredResult = Clipperz.Async.callbacks("UserInfoBox.toggleLock [unlock]", [ | 97 | deferredResult = Clipperz.Async.callbacks("UserInfoBox.toggleLock [unlock]", [ |
101 | MochiKit.Base.partial(MochiKit.Signal.signal, this, 'unlock') | 98 | MochiKit.Base.partial(MochiKit.Signal.signal, this, 'unlock') |
102 | ], {trace:false}); | 99 | ], {trace:false}); |
103 | } | 100 | } |
104 | //console.log("<<< UserInfoBox.toggleLock"); | 101 | //console.log("<<< UserInfoBox.toggleLock"); |
105 | 102 | ||
106 | return deferredResult; | 103 | return deferredResult; |
107 | }, | 104 | }, |
108 | 105 | ||
109 | //------------------------------------------------------------------------- | 106 | //------------------------------------------------------------------------- |
110 | 107 | ||
111 | 'unlock': function () { | 108 | 'unlock': function () { |
112 | var deferredResult; | 109 | var deferredResult; |
113 | var maskElement; | 110 | var maskElement; |
114 | 111 | ||
115 | this.setIsLocked(false); | 112 | this.setIsLocked(false); |
116 | maskElement = this.getId('modalDialogMask'); | 113 | maskElement = this.getId('modalDialogMask'); |
117 | 114 | ||
118 | deferredResult = Clipperz.Async.callbacks("UserInfoBox.unlock", [ | 115 | deferredResult = Clipperz.Async.callbacks("UserInfoBox.unlock", [ |
119 | MochiKit.Base.partial(Clipperz.Visual.deferredAnimation, MochiKit.Visual.fade, maskElement, {from:0.75, to:0.0, duration:0.5}), | 116 | MochiKit.Base.partial(Clipperz.Visual.deferredAnimation, MochiKit.Visual.fade, maskElement, {from:0.75, to:0.0, duration:0.5}), |
120 | // Clipperz.Visual.deferredAnimation(MochiKit.Visual.fade, maskElement, {from:0.75, to:0.0, duration:0.5}), | 117 | // Clipperz.Visual.deferredAnimation(MochiKit.Visual.fade, maskElement, {from:0.75, to:0.0, duration:0.5}), |
diff --git a/frontend/gamma/js/Clipperz/PM/UI/Web/Controllers/AppController.js b/frontend/gamma/js/Clipperz/PM/UI/Web/Controllers/AppController.js index 05563bf..9a0e744 100644 --- a/frontend/gamma/js/Clipperz/PM/UI/Web/Controllers/AppController.js +++ b/frontend/gamma/js/Clipperz/PM/UI/Web/Controllers/AppController.js | |||
@@ -1,120 +1,117 @@ | |||
1 | /* | 1 | /* |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | */ | 24 | */ |
28 | 25 | ||
29 | Clipperz.Base.module('Clipperz.PM.UI.Web.Controllers'); | 26 | Clipperz.Base.module('Clipperz.PM.UI.Web.Controllers'); |
30 | 27 | ||
31 | Clipperz.PM.UI.Web.Controllers.AppController = function(args) { | 28 | Clipperz.PM.UI.Web.Controllers.AppController = function(args) { |
32 | 29 | ||
33 | this._user = null; | 30 | this._user = null; |
34 | this._tabSlotNames = { | 31 | this._tabSlotNames = { |
35 | //tabName: slotName | 32 | //tabName: slotName |
36 | 'cards': 'cardGrid', | 33 | 'cards': 'cardGrid', |
37 | // 'directLogins':'directLoginGrid', | 34 | // 'directLogins':'directLoginGrid', |
38 | 'account': 'accountPanel', | 35 | 'account': 'accountPanel', |
39 | 'data': 'dataPanel', | 36 | 'data': 'dataPanel', |
40 | 'tools': 'toolsPanel' | 37 | 'tools': 'toolsPanel' |
41 | }; | 38 | }; |
42 | 39 | ||
43 | //controllers | 40 | //controllers |
44 | this._cardsController= null; | 41 | this._cardsController= null; |
45 | //this._directLoginsController = null; | 42 | //this._directLoginsController = null; |
46 | this._filterController = null; //new Clipperz.PM.UI.Web.Controllers.FilterController(); | 43 | this._filterController = null; //new Clipperz.PM.UI.Web.Controllers.FilterController(); |
47 | 44 | ||
48 | //components | 45 | //components |
49 | this._appPage = null; | 46 | this._appPage = null; |
50 | this._userInfoBox = null; | 47 | this._userInfoBox = null; |
51 | this._tabSidePanel = null; | 48 | this._tabSidePanel = null; |
52 | 49 | ||
53 | // MochiKit.Signal.connect(Clipperz.Signal.NotificationCenter, 'editCard', this, 'handleEditCard'); | 50 | // MochiKit.Signal.connect(Clipperz.Signal.NotificationCenter, 'editCard', this, 'handleEditCard'); |
54 | // MochiKit.Signal.connect(Clipperz.Signal.NotificationCenter, 'deleteCard',this, 'handleDeleteCard'); | 51 | // MochiKit.Signal.connect(Clipperz.Signal.NotificationCenter, 'deleteCard',this, 'handleDeleteCard'); |
55 | 52 | ||
56 | MochiKit.Signal.connect(Clipperz.Signal.NotificationCenter, 'userDataSuccessfullySaved',this, 'userDataSuccessfullySavedHandler'); | 53 | MochiKit.Signal.connect(Clipperz.Signal.NotificationCenter, 'userDataSuccessfullySaved',this, 'userDataSuccessfullySavedHandler'); |
57 | 54 | ||
58 | return this; | 55 | return this; |
59 | } | 56 | } |
60 | 57 | ||
61 | MochiKit.Base.update(Clipperz.PM.UI.Web.Controllers.AppController.prototype, { | 58 | MochiKit.Base.update(Clipperz.PM.UI.Web.Controllers.AppController.prototype, { |
62 | 59 | ||
63 | 'toString': function() { | 60 | 'toString': function() { |
64 | return "Clipperz.PM.UI.Web.Controllers.AppController"; | 61 | return "Clipperz.PM.UI.Web.Controllers.AppController"; |
65 | }, | 62 | }, |
66 | 63 | ||
67 | //----------------------------------------------------------------------------- | 64 | //----------------------------------------------------------------------------- |
68 | 65 | ||
69 | 'setUser': function(anUser) { | 66 | 'setUser': function(anUser) { |
70 | this._user = anUser; | 67 | this._user = anUser; |
71 | }, | 68 | }, |
72 | 69 | ||
73 | 'user': function() { | 70 | 'user': function() { |
74 | return this._user; | 71 | return this._user; |
75 | }, | 72 | }, |
76 | 73 | ||
77 | //----------------------------------------------------------------------------- | 74 | //----------------------------------------------------------------------------- |
78 | /* | 75 | /* |
79 | 'tabSlotNames': function() { | 76 | 'tabSlotNames': function() { |
80 | return this._tabSlotNames; | 77 | return this._tabSlotNames; |
81 | }, | 78 | }, |
82 | */ | 79 | */ |
83 | 'slotNameForTab': function(aTabName) { | 80 | 'slotNameForTab': function(aTabName) { |
84 | return this._tabSlotNames[aTabName]; | 81 | return this._tabSlotNames[aTabName]; |
85 | }, | 82 | }, |
86 | 83 | ||
87 | 'hideAllAppPageTabSlots': function() { | 84 | 'hideAllAppPageTabSlots': function() { |
88 | var aTabName; | 85 | var aTabName; |
89 | 86 | ||
90 | for (aTabName in this._tabSlotNames) { | 87 | for (aTabName in this._tabSlotNames) { |
91 | this.appPage().hideSlot(this.slotNameForTab(aTabName)); | 88 | this.appPage().hideSlot(this.slotNameForTab(aTabName)); |
92 | } | 89 | } |
93 | }, | 90 | }, |
94 | 91 | ||
95 | //----------------------------------------------------------------------------- | 92 | //----------------------------------------------------------------------------- |
96 | 93 | ||
97 | 'appPage': function() { | 94 | 'appPage': function() { |
98 | if (this._appPage == null) { | 95 | if (this._appPage == null) { |
99 | this._appPage = new Clipperz.PM.UI.Web.Components.AppPage(); | 96 | this._appPage = new Clipperz.PM.UI.Web.Components.AppPage(); |
100 | } | 97 | } |
101 | 98 | ||
102 | return this._appPage; | 99 | return this._appPage; |
103 | }, | 100 | }, |
104 | 101 | ||
105 | //----------------------------------------------------------------------------- | 102 | //----------------------------------------------------------------------------- |
106 | 103 | ||
107 | 'tabSidePanel': function() { | 104 | 'tabSidePanel': function() { |
108 | if (this._tabSidePanel == null) { | 105 | if (this._tabSidePanel == null) { |
109 | this._tabSidePanel = new Clipperz.PM.UI.Web.Components.TabSidePanel(); | 106 | this._tabSidePanel = new Clipperz.PM.UI.Web.Components.TabSidePanel(); |
110 | } | 107 | } |
111 | 108 | ||
112 | return this._tabSidePanel; | 109 | return this._tabSidePanel; |
113 | }, | 110 | }, |
114 | 111 | ||
115 | //----------------------------------------------------------------------------- | 112 | //----------------------------------------------------------------------------- |
116 | 113 | ||
117 | 'userInfoBox': function() { | 114 | 'userInfoBox': function() { |
118 | if (this._userInfoBox == null) { | 115 | if (this._userInfoBox == null) { |
119 | this._userInfoBox = new Clipperz.PM.UI.Web.Components.UserInfoBox(); | 116 | this._userInfoBox = new Clipperz.PM.UI.Web.Components.UserInfoBox(); |
120 | 117 | ||
diff --git a/frontend/gamma/js/Clipperz/PM/UI/Web/Controllers/CardDialogController.js b/frontend/gamma/js/Clipperz/PM/UI/Web/Controllers/CardDialogController.js index 2340aeb..effde31 100644 --- a/frontend/gamma/js/Clipperz/PM/UI/Web/Controllers/CardDialogController.js +++ b/frontend/gamma/js/Clipperz/PM/UI/Web/Controllers/CardDialogController.js | |||
@@ -1,120 +1,117 @@ | |||
1 | /* | 1 | /* |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | */ | 24 | */ |
28 | 25 | ||
29 | Clipperz.Base.module('Clipperz.PM.UI.Web.Controllers'); | 26 | Clipperz.Base.module('Clipperz.PM.UI.Web.Controllers'); |
30 | 27 | ||
31 | Clipperz.PM.UI.Web.Controllers.CardDialogController = function(args) { | 28 | Clipperz.PM.UI.Web.Controllers.CardDialogController = function(args) { |
32 | args = args || {}; | 29 | args = args || {}; |
33 | 30 | ||
34 | Clipperz.PM.UI.Web.Controllers.CardDialogController.superclass.constructor.call(this, args); | 31 | Clipperz.PM.UI.Web.Controllers.CardDialogController.superclass.constructor.call(this, args); |
35 | 32 | ||
36 | this._record = args.record || Clipperz.Base.exception.raise('MandatoryParameter'); | 33 | this._record = args.record || Clipperz.Base.exception.raise('MandatoryParameter'); |
37 | this._delegate = args.delegate || Clipperz.Base.exception.raise('MandatoryParameter'); | 34 | this._delegate = args.delegate || Clipperz.Base.exception.raise('MandatoryParameter'); |
38 | 35 | ||
39 | this._referenceElement = null; | 36 | this._referenceElement = null; |
40 | this._cardDialogComponent = null; | 37 | this._cardDialogComponent = null; |
41 | 38 | ||
42 | this._fieldsReferences = {}; | 39 | this._fieldsReferences = {}; |
43 | this._directLoginReferences = {}; | 40 | this._directLoginReferences = {}; |
44 | 41 | ||
45 | this._directLoginWizardController = null; | 42 | this._directLoginWizardController = null; |
46 | this._directLoginEditingComponent = null; | 43 | this._directLoginEditingComponent = null; |
47 | this._isDirectLoginEditingComponentVisible = false; | 44 | this._isDirectLoginEditingComponentVisible = false; |
48 | 45 | ||
49 | return this; | 46 | return this; |
50 | }; | 47 | }; |
51 | 48 | ||
52 | Clipperz.Base.extend(Clipperz.PM.UI.Web.Controllers.CardDialogController, Object, { | 49 | Clipperz.Base.extend(Clipperz.PM.UI.Web.Controllers.CardDialogController, Object, { |
53 | 50 | ||
54 | 'toString': function() { | 51 | 'toString': function() { |
55 | return "Clipperz.PM.UI.Web.Controllers.CardDialogController"; | 52 | return "Clipperz.PM.UI.Web.Controllers.CardDialogController"; |
56 | }, | 53 | }, |
57 | 54 | ||
58 | //------------------------------------------------------------------------- | 55 | //------------------------------------------------------------------------- |
59 | 56 | ||
60 | 'record': function () { | 57 | 'record': function () { |
61 | return this._record; | 58 | return this._record; |
62 | }, | 59 | }, |
63 | 60 | ||
64 | 'delegate': function () { | 61 | 'delegate': function () { |
65 | return this._delegate; | 62 | return this._delegate; |
66 | }, | 63 | }, |
67 | 64 | ||
68 | //------------------------------------------------------------------------- | 65 | //------------------------------------------------------------------------- |
69 | 66 | ||
70 | 'fieldsReferences': function () { | 67 | 'fieldsReferences': function () { |
71 | return this._fieldsReferences; | 68 | return this._fieldsReferences; |
72 | }, | 69 | }, |
73 | 70 | ||
74 | 'directLoginReferences': function () { | 71 | 'directLoginReferences': function () { |
75 | return this._directLoginReferences; | 72 | return this._directLoginReferences; |
76 | }, | 73 | }, |
77 | 74 | ||
78 | //------------------------------------------------------------------------- | 75 | //------------------------------------------------------------------------- |
79 | 76 | ||
80 | 'referenceElement': function () { | 77 | 'referenceElement': function () { |
81 | return this._referenceElement; | 78 | return this._referenceElement; |
82 | }, | 79 | }, |
83 | 80 | ||
84 | 'setReferenceElement': function (anElement) { | 81 | 'setReferenceElement': function (anElement) { |
85 | this._referenceElement = anElement; | 82 | this._referenceElement = anElement; |
86 | }, | 83 | }, |
87 | 84 | ||
88 | //------------------------------------------------------------------------- | 85 | //------------------------------------------------------------------------- |
89 | 86 | ||
90 | 'cardDialogComponent': function () { | 87 | 'cardDialogComponent': function () { |
91 | if (this._cardDialogComponent == null) { | 88 | if (this._cardDialogComponent == null) { |
92 | this._cardDialogComponent = new Clipperz.PM.UI.Web.Components.CardDialogComponent(); | 89 | this._cardDialogComponent = new Clipperz.PM.UI.Web.Components.CardDialogComponent(); |
93 | 90 | ||
94 | MochiKit.Signal.connect(this._cardDialogComponent, 'cancel', this, 'handleCancel'); | 91 | MochiKit.Signal.connect(this._cardDialogComponent, 'cancel', this, 'handleCancel'); |
95 | MochiKit.Signal.connect(this._cardDialogComponent, 'save', this, 'handleSave'); | 92 | MochiKit.Signal.connect(this._cardDialogComponent, 'save', this, 'handleSave'); |
96 | 93 | ||
97 | MochiKit.Signal.connect(this._cardDialogComponent, 'addField', this, 'handleAddField'); | 94 | MochiKit.Signal.connect(this._cardDialogComponent, 'addField', this, 'handleAddField'); |
98 | MochiKit.Signal.connect(this._cardDialogComponent, 'changedValue',this, 'handleChangedValue'); | 95 | MochiKit.Signal.connect(this._cardDialogComponent, 'changedValue',this, 'handleChangedValue'); |
99 | 96 | ||
100 | MochiKit.Signal.connect(this._cardDialogComponent, 'addDirectLogin',this, 'handleAddDirectLogin'); | 97 | MochiKit.Signal.connect(this._cardDialogComponent, 'addDirectLogin',this, 'handleAddDirectLogin'); |
101 | MochiKit.Signal.connect(this._cardDialogComponent, 'keyPressed',this, 'handleCardDialogComponentKeyPressed'); | 98 | MochiKit.Signal.connect(this._cardDialogComponent, 'keyPressed',this, 'handleCardDialogComponentKeyPressed'); |
102 | } | 99 | } |
103 | 100 | ||
104 | return this._cardDialogComponent; | 101 | return this._cardDialogComponent; |
105 | }, | 102 | }, |
106 | 103 | ||
107 | //========================================================================= | 104 | //========================================================================= |
108 | 105 | ||
109 | 'directLoginWizardController': function () { | 106 | 'directLoginWizardController': function () { |
110 | if (this._directLoginWizardController == null) { | 107 | if (this._directLoginWizardController == null) { |
111 | this._directLoginWizardController = new Clipperz.PM.UI.Web.Controllers.DirectLoginWizardController({ | 108 | this._directLoginWizardController = new Clipperz.PM.UI.Web.Controllers.DirectLoginWizardController({ |
112 | 'cardLabel': this.cardDialogComponent().title(), | 109 | 'cardLabel': this.cardDialogComponent().title(), |
113 | 'directLoginEditingComponent': this.directLoginEditingComponent() | 110 | 'directLoginEditingComponent': this.directLoginEditingComponent() |
114 | }) | 111 | }) |
115 | 112 | ||
116 | MochiKit.Signal.connect(this._directLoginWizardController, 'exit',this, 'handleHideDirectLoginEditingComponent'); | 113 | MochiKit.Signal.connect(this._directLoginWizardController, 'exit',this, 'handleHideDirectLoginEditingComponent'); |
117 | MochiKit.Signal.connect(this._directLoginWizardController, 'done',this, 'handleCompleteDirectLoginEditingComponent'); | 114 | MochiKit.Signal.connect(this._directLoginWizardController, 'done',this, 'handleCompleteDirectLoginEditingComponent'); |
118 | } | 115 | } |
119 | 116 | ||
120 | return this._directLoginWizardController; | 117 | return this._directLoginWizardController; |
diff --git a/frontend/gamma/js/Clipperz/PM/UI/Web/Controllers/CardsController.js b/frontend/gamma/js/Clipperz/PM/UI/Web/Controllers/CardsController.js index b1a34b2..f58f0b8 100644 --- a/frontend/gamma/js/Clipperz/PM/UI/Web/Controllers/CardsController.js +++ b/frontend/gamma/js/Clipperz/PM/UI/Web/Controllers/CardsController.js | |||
@@ -1,120 +1,117 @@ | |||
1 | /* | 1 | /* |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | */ | 24 | */ |
28 | 25 | ||
29 | Clipperz.Base.module('Clipperz.PM.UI.Web.Controllers'); | 26 | Clipperz.Base.module('Clipperz.PM.UI.Web.Controllers'); |
30 | 27 | ||
31 | Clipperz.PM.UI.Web.Controllers.CardsController = function() { | 28 | Clipperz.PM.UI.Web.Controllers.CardsController = function() { |
32 | Clipperz.PM.UI.Web.Controllers.CardsController.superclass.constructor.apply(this, arguments); | 29 | Clipperz.PM.UI.Web.Controllers.CardsController.superclass.constructor.apply(this, arguments); |
33 | 30 | ||
34 | MochiKit.Signal.connect(Clipperz.Signal.NotificationCenter, 'cardDialogComponentClosed', this, 'handleHideCard'); | 31 | MochiKit.Signal.connect(Clipperz.Signal.NotificationCenter, 'cardDialogComponentClosed', this, 'handleHideCard'); |
35 | 32 | ||
36 | return this; | 33 | return this; |
37 | } | 34 | } |
38 | 35 | ||
39 | Clipperz.Base.extend(Clipperz.PM.UI.Web.Controllers.CardsController, Clipperz.PM.UI.Web.Controllers.GridController, { | 36 | Clipperz.Base.extend(Clipperz.PM.UI.Web.Controllers.CardsController, Clipperz.PM.UI.Web.Controllers.GridController, { |
40 | 37 | ||
41 | 'toString': function() { | 38 | 'toString': function() { |
42 | return "Clipperz.PM.UI.Web.Controllers.CardsController"; | 39 | return "Clipperz.PM.UI.Web.Controllers.CardsController"; |
43 | }, | 40 | }, |
44 | 41 | ||
45 | 'createGrid': function () { | 42 | 'createGrid': function () { |
46 | var grid; | 43 | var grid; |
47 | 44 | ||
48 | grid = new Clipperz.PM.UI.Web.Components.GridComponent({columnsManagers: [ | 45 | grid = new Clipperz.PM.UI.Web.Components.GridComponent({columnsManagers: [ |
49 | new Clipperz.PM.UI.Web.Components.FaviconColumnManager({ | 46 | new Clipperz.PM.UI.Web.Components.FaviconColumnManager({ |
50 | 'name': 'Cards.favicon', | 47 | 'name': 'Cards.favicon', |
51 | 'selector': MochiKit.Base.methodcaller('favicon'), | 48 | 'selector': MochiKit.Base.methodcaller('favicon'), |
52 | 'cssClass': 'favicon' | 49 | 'cssClass': 'favicon' |
53 | }), | 50 | }), |
54 | new Clipperz.PM.UI.Web.Components.LinkColumnManager({ | 51 | new Clipperz.PM.UI.Web.Components.LinkColumnManager({ |
55 | 'name': 'Cards.title', | 52 | 'name': 'Cards.title', |
56 | 'selector': MochiKit.Base.methodcaller('label'), | 53 | 'selector': MochiKit.Base.methodcaller('label'), |
57 | 'label': 'title', | 54 | 'label': 'title', |
58 | 'cssClass': 'title', | 55 | 'cssClass': 'title', |
59 | 'comparator': Clipperz.Base.caseInsensitiveCompare, | 56 | 'comparator': Clipperz.Base.caseInsensitiveCompare, |
60 | 'sortable': true, | 57 | 'sortable': true, |
61 | 'sorted': 'ASCENDING', | 58 | 'sorted': 'ASCENDING', |
62 | // 'actionMethod': function(anObject, anEvent) { MochiKit.Signal.signal(Clipperz.Signal.NotificationCenter, 'editCard', {objectData:anObject, element:anEvent.src()})} | 59 | // 'actionMethod': function(anObject, anEvent) { MochiKit.Signal.signal(Clipperz.Signal.NotificationCenter, 'editCard', {objectData:anObject, element:anEvent.src()})} |
63 | 'actionMethod': MochiKit.Base.method(this, 'handleShowCard') | 60 | 'actionMethod': MochiKit.Base.method(this, 'handleShowCard') |
64 | }), | 61 | }), |
65 | new Clipperz.PM.UI.Web.Components.DirectLoginsColumnManager({ | 62 | new Clipperz.PM.UI.Web.Components.DirectLoginsColumnManager({ |
66 | 'name': 'Cards.directLogins', | 63 | 'name': 'Cards.directLogins', |
67 | 'selector': MochiKit.Base.methodcaller('directLoginReferences'), | 64 | 'selector': MochiKit.Base.methodcaller('directLoginReferences'), |
68 | 'label': 'direct logins', | 65 | 'label': 'direct logins', |
69 | 'cssClass': 'directLogin' | 66 | 'cssClass': 'directLogin' |
70 | }), | 67 | }), |
71 | new Clipperz.PM.UI.Web.Components.DateColumnManager({ | 68 | new Clipperz.PM.UI.Web.Components.DateColumnManager({ |
72 | 'name': 'Cards.latestUpdate', | 69 | 'name': 'Cards.latestUpdate', |
73 | 'selector': MochiKit.Base.methodcaller('updateDate'), | 70 | 'selector': MochiKit.Base.methodcaller('updateDate'), |
74 | 'label': 'latest update', | 71 | 'label': 'latest update', |
75 | 'cssClass': 'latestUpdate', | 72 | 'cssClass': 'latestUpdate', |
76 | 'format': 'd-m-Y', | 73 | 'format': 'd-m-Y', |
77 | 'comparator': MochiKit.Base.compare, | 74 | 'comparator': MochiKit.Base.compare, |
78 | 'sortable': true, | 75 | 'sortable': true, |
79 | 'sorted': 'UNSORTED' | 76 | 'sorted': 'UNSORTED' |
80 | }), | 77 | }), |
81 | new Clipperz.PM.UI.Web.Components.DeleteObjectColumnManager({ | 78 | new Clipperz.PM.UI.Web.Components.DeleteObjectColumnManager({ |
82 | 'name': 'Cards.delete', | 79 | 'name': 'Cards.delete', |
83 | 'selector': MochiKit.Base.noop, | 80 | 'selector': MochiKit.Base.noop, |
84 | 'cssClass': 'delete', | 81 | 'cssClass': 'delete', |
85 | // 'actionMethod': function(anObject, anEvent) { MochiKit.Signal.signal(Clipperz.Signal.NotificationCenter, 'deleteCard', {objectData:anObject, element:anEvent.src()})} | 82 | // 'actionMethod': function(anObject, anEvent) { MochiKit.Signal.signal(Clipperz.Signal.NotificationCenter, 'deleteCard', {objectData:anObject, element:anEvent.src()})} |
86 | 'actionMethod': MochiKit.Base.method(this, 'handleDeleteCard') | 83 | 'actionMethod': MochiKit.Base.method(this, 'handleDeleteCard') |
87 | }) | 84 | }) |
88 | ]}); | 85 | ]}); |
89 | 86 | ||
90 | grid.setComponentForSlotNamed(new Clipperz.PM.UI.Web.Components.BookmarkletComponent(), 'headerSlot'); | 87 | grid.setComponentForSlotNamed(new Clipperz.PM.UI.Web.Components.BookmarkletComponent(), 'headerSlot'); |
91 | 88 | ||
92 | return grid; | 89 | return grid; |
93 | }, | 90 | }, |
94 | 91 | ||
95 | //----------------------------------------------------------------------------- | 92 | //----------------------------------------------------------------------------- |
96 | 93 | ||
97 | 'getRows': function () { | 94 | 'getRows': function () { |
98 | //TODO relying on user() in GridController, bad code smell :| | 95 | //TODO relying on user() in GridController, bad code smell :| |
99 | return this.user().getRecords(); | 96 | return this.user().getRecords(); |
100 | }, | 97 | }, |
101 | 98 | ||
102 | //============================================================================= | 99 | //============================================================================= |
103 | 100 | ||
104 | 'displayEmptyContent': function () { | 101 | 'displayEmptyContent': function () { |
105 | varemptyGridComponent; | 102 | varemptyGridComponent; |
106 | 103 | ||
107 | emptyGridComponent = new Clipperz.PM.UI.Web.Components.CreateNewCardSplashComponent(); | 104 | emptyGridComponent = new Clipperz.PM.UI.Web.Components.CreateNewCardSplashComponent(); |
108 | 105 | ||
109 | return Clipperz.Async.callbacks("CardsController.displayEmptyContent", [ | 106 | return Clipperz.Async.callbacks("CardsController.displayEmptyContent", [ |
110 | MochiKit.Base.method(this.grid(), 'setNoRowsGridComponent', emptyGridComponent), | 107 | MochiKit.Base.method(this.grid(), 'setNoRowsGridComponent', emptyGridComponent), |
111 | MochiKit.Base.bind(Clipperz.PM.UI.Web.Controllers.CardsController.superclass.displayEmptyContent, this) | 108 | MochiKit.Base.bind(Clipperz.PM.UI.Web.Controllers.CardsController.superclass.displayEmptyContent, this) |
112 | ], {trace:false}); | 109 | ], {trace:false}); |
113 | }, | 110 | }, |
114 | 111 | ||
115 | 'displaySelectedRows': function (aFilter) { | 112 | 'displaySelectedRows': function (aFilter) { |
116 | this.columnManagerWithName('Cards.directLogins').hideDirectLoginListPopup(); | 113 | this.columnManagerWithName('Cards.directLogins').hideDirectLoginListPopup(); |
117 | 114 | ||
118 | return Clipperz.PM.UI.Web.Controllers.CardsController.superclass.displaySelectedRows.apply(this, arguments); | 115 | return Clipperz.PM.UI.Web.Controllers.CardsController.superclass.displaySelectedRows.apply(this, arguments); |
119 | }, | 116 | }, |
120 | 117 | ||
diff --git a/frontend/gamma/js/Clipperz/PM/UI/Web/Controllers/DirectLoginWizardController.js b/frontend/gamma/js/Clipperz/PM/UI/Web/Controllers/DirectLoginWizardController.js index 38fdc08..c025a51 100644 --- a/frontend/gamma/js/Clipperz/PM/UI/Web/Controllers/DirectLoginWizardController.js +++ b/frontend/gamma/js/Clipperz/PM/UI/Web/Controllers/DirectLoginWizardController.js | |||
@@ -1,120 +1,117 @@ | |||
1 | /* | 1 | /* |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | */ | 24 | */ |
28 | 25 | ||
29 | Clipperz.Base.module('Clipperz.PM.UI.Web.Controllers'); | 26 | Clipperz.Base.module('Clipperz.PM.UI.Web.Controllers'); |
30 | 27 | ||
31 | Clipperz.PM.UI.Web.Controllers.DirectLoginWizardController = function(args) { | 28 | Clipperz.PM.UI.Web.Controllers.DirectLoginWizardController = function(args) { |
32 | this._directLoginEditingComponent = args.directLoginEditingComponent|| Clipperz.Base.exception.raise('MandatoryParameter'); | 29 | this._directLoginEditingComponent = args.directLoginEditingComponent|| Clipperz.Base.exception.raise('MandatoryParameter'); |
33 | this._cardLabel = args.cardLabel || Clipperz.Base.exception.raise('MandatoryParameter'); | 30 | this._cardLabel = args.cardLabel || Clipperz.Base.exception.raise('MandatoryParameter'); |
34 | 31 | ||
35 | MochiKit.Signal.connect(this._directLoginEditingComponent, 'changedValue',this, 'handleChangedValue'); | 32 | MochiKit.Signal.connect(this._directLoginEditingComponent, 'changedValue',this, 'handleChangedValue'); |
36 | MochiKit.Signal.connect(this._directLoginEditingComponent, 'moveForward',this, 'handleMoveForward'); | 33 | MochiKit.Signal.connect(this._directLoginEditingComponent, 'moveForward',this, 'handleMoveForward'); |
37 | MochiKit.Signal.connect(this._directLoginEditingComponent, 'keyPressed',this, 'handleDirectLoginEditingComponentKeyPressed'); | 34 | MochiKit.Signal.connect(this._directLoginEditingComponent, 'keyPressed',this, 'handleDirectLoginEditingComponentKeyPressed'); |
38 | 35 | ||
39 | this._directLogin = null; | 36 | this._directLogin = null; |
40 | this._directLoginHasJustBeenAdded = false; | 37 | this._directLoginHasJustBeenAdded = false; |
41 | 38 | ||
42 | this._rulerComponent = null; | 39 | this._rulerComponent = null; |
43 | 40 | ||
44 | this._steps = null; | 41 | this._steps = null; |
45 | this._currentStepIndex = 0; | 42 | this._currentStepIndex = 0; |
46 | this._isNextEnabled = false; | 43 | this._isNextEnabled = false; |
47 | 44 | ||
48 | this._recordFields = null; | 45 | this._recordFields = null; |
49 | this._originalBindings = null; | 46 | this._originalBindings = null; |
50 | 47 | ||
51 | this._bindingComponents = []; | 48 | this._bindingComponents = []; |
52 | this._formValueComponents = []; | 49 | this._formValueComponents = []; |
53 | 50 | ||
54 | return this; | 51 | return this; |
55 | } | 52 | } |
56 | 53 | ||
57 | MochiKit.Base.update(Clipperz.PM.UI.Web.Controllers.DirectLoginWizardController.prototype, { | 54 | MochiKit.Base.update(Clipperz.PM.UI.Web.Controllers.DirectLoginWizardController.prototype, { |
58 | 55 | ||
59 | 'toString': function() { | 56 | 'toString': function() { |
60 | return "Clipperz.PM.UI.Web.Controllers.DirectLoginWizardController"; | 57 | return "Clipperz.PM.UI.Web.Controllers.DirectLoginWizardController"; |
61 | }, | 58 | }, |
62 | 59 | ||
63 | //------------------------------------------------------------------------- | 60 | //------------------------------------------------------------------------- |
64 | 61 | ||
65 | 'directLogin': function () { | 62 | 'directLogin': function () { |
66 | return this._directLogin; | 63 | return this._directLogin; |
67 | }, | 64 | }, |
68 | 65 | ||
69 | //------------------------------------------------------------------------- | 66 | //------------------------------------------------------------------------- |
70 | 67 | ||
71 | 'directLoginHasJustBeenAdded': function () { | 68 | 'directLoginHasJustBeenAdded': function () { |
72 | return this._directLoginHasJustBeenAdded; | 69 | return this._directLoginHasJustBeenAdded; |
73 | }, | 70 | }, |
74 | 71 | ||
75 | 'setDirectLoginHasJustBeenAdded': function (aValue) { | 72 | 'setDirectLoginHasJustBeenAdded': function (aValue) { |
76 | this._directLoginHasJustBeenAdded = aValue; | 73 | this._directLoginHasJustBeenAdded = aValue; |
77 | }, | 74 | }, |
78 | 75 | ||
79 | //------------------------------------------------------------------------- | 76 | //------------------------------------------------------------------------- |
80 | 77 | ||
81 | 'directLoginEditingComponent': function () { | 78 | 'directLoginEditingComponent': function () { |
82 | return this._directLoginEditingComponent; | 79 | return this._directLoginEditingComponent; |
83 | }, | 80 | }, |
84 | 81 | ||
85 | //============================================================================= | 82 | //============================================================================= |
86 | 83 | ||
87 | 'cardLabel': function () { | 84 | 'cardLabel': function () { |
88 | return this._cardLabel; | 85 | return this._cardLabel; |
89 | }, | 86 | }, |
90 | 87 | ||
91 | //============================================================================= | 88 | //============================================================================= |
92 | 89 | ||
93 | 'resetCurrentStepIndex': function () { | 90 | 'resetCurrentStepIndex': function () { |
94 | this._currentStepIndex = 0; | 91 | this._currentStepIndex = 0; |
95 | this.rulerComponent().resetStatus(); | 92 | this.rulerComponent().resetStatus(); |
96 | }, | 93 | }, |
97 | 94 | ||
98 | //----------------------------------------------------------------------------- | 95 | //----------------------------------------------------------------------------- |
99 | 96 | ||
100 | 'enableNext': function (aValue) { | 97 | 'enableNext': function (aValue) { |
101 | this.rulerComponent().enableNext(aValue); | 98 | this.rulerComponent().enableNext(aValue); |
102 | this._isNextEnabled = aValue; | 99 | this._isNextEnabled = aValue; |
103 | }, | 100 | }, |
104 | 101 | ||
105 | 'isNextEnabled': function () { | 102 | 'isNextEnabled': function () { |
106 | return this._isNextEnabled; | 103 | return this._isNextEnabled; |
107 | }, | 104 | }, |
108 | 105 | ||
109 | //----------------------------------------------------------------------------- | 106 | //----------------------------------------------------------------------------- |
110 | 107 | ||
111 | 'enablePrevious': function (aValue) { | 108 | 'enablePrevious': function (aValue) { |
112 | this.rulerComponent().enablePrevious(aValue); | 109 | this.rulerComponent().enablePrevious(aValue); |
113 | }, | 110 | }, |
114 | 111 | ||
115 | //============================================================================= | 112 | //============================================================================= |
116 | 113 | ||
117 | 'bindingComponents': function () { | 114 | 'bindingComponents': function () { |
118 | return this._bindingComponents; | 115 | return this._bindingComponents; |
119 | }, | 116 | }, |
120 | 117 | ||
diff --git a/frontend/gamma/js/Clipperz/PM/UI/Web/Controllers/DirectLoginsController.js b/frontend/gamma/js/Clipperz/PM/UI/Web/Controllers/DirectLoginsController.js index 28401a2..6ca3be4 100644 --- a/frontend/gamma/js/Clipperz/PM/UI/Web/Controllers/DirectLoginsController.js +++ b/frontend/gamma/js/Clipperz/PM/UI/Web/Controllers/DirectLoginsController.js | |||
@@ -1,120 +1,117 @@ | |||
1 | /* | 1 | /* |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | */ | 24 | */ |
28 | 25 | ||
29 | /* | 26 | /* |
30 | Clipperz.Base.module('Clipperz.PM.UI.Web.Controllers'); | 27 | Clipperz.Base.module('Clipperz.PM.UI.Web.Controllers'); |
31 | 28 | ||
32 | Clipperz.PM.UI.Web.Controllers.DirectLoginsController = function() { | 29 | Clipperz.PM.UI.Web.Controllers.DirectLoginsController = function() { |
33 | Clipperz.PM.UI.Web.Controllers.DirectLoginsController.superclass.constructor.apply(this, arguments); | 30 | Clipperz.PM.UI.Web.Controllers.DirectLoginsController.superclass.constructor.apply(this, arguments); |
34 | 31 | ||
35 | return this; | 32 | return this; |
36 | }; | 33 | }; |
37 | 34 | ||
38 | Clipperz.Base.extend(Clipperz.PM.UI.Web.Controllers.DirectLoginsController, Clipperz.PM.UI.Web.Controllers.GridController, { | 35 | Clipperz.Base.extend(Clipperz.PM.UI.Web.Controllers.DirectLoginsController, Clipperz.PM.UI.Web.Controllers.GridController, { |
39 | 36 | ||
40 | 'createGrid': function () { | 37 | 'createGrid': function () { |
41 | return new Clipperz.PM.UI.Web.Components.GridComponent({columnsManagers: [ | 38 | return new Clipperz.PM.UI.Web.Components.GridComponent({columnsManagers: [ |
42 | new Clipperz.PM.UI.Web.Components.FaviconColumnManager({ | 39 | new Clipperz.PM.UI.Web.Components.FaviconColumnManager({ |
43 | 'name': 'DirectLogins.favicon', | 40 | 'name': 'DirectLogins.favicon', |
44 | 'selector': MochiKit.Base.methodcaller('favicon'), | 41 | 'selector': MochiKit.Base.methodcaller('favicon'), |
45 | 'cssClass': 'favicon' | 42 | 'cssClass': 'favicon' |
46 | }), | 43 | }), |
47 | // new Clipperz.PM.UI.Web.Components.LinkColumnManager({ | 44 | // new Clipperz.PM.UI.Web.Components.LinkColumnManager({ |
48 | new Clipperz.PM.UI.Web.Components.DirectLoginColumnManager({ | 45 | new Clipperz.PM.UI.Web.Components.DirectLoginColumnManager({ |
49 | 'name': 'DirectLogins.title', | 46 | 'name': 'DirectLogins.title', |
50 | 'selector': MochiKit.Base.methodcaller('label'), | 47 | 'selector': MochiKit.Base.methodcaller('label'), |
51 | 'label': 'title', | 48 | 'label': 'title', |
52 | 'cssClass': 'title', | 49 | 'cssClass': 'title', |
53 | 'comparator': Clipperz.Base.caseInsensitiveCompare, | 50 | 'comparator': Clipperz.Base.caseInsensitiveCompare, |
54 | 'sortable': true, | 51 | 'sortable': true, |
55 | 'sorted': 'ASCENDING', | 52 | 'sorted': 'ASCENDING', |
56 | 'actionMethod': MochiKit.Base.methodcaller('runDirectLogin') | 53 | 'actionMethod': MochiKit.Base.methodcaller('runDirectLogin') |
57 | }), | 54 | }), |
58 | // new Clipperz.PM.UI.Web.Components.TextColumnManager({ //should be StrengthColumnManager | 55 | // new Clipperz.PM.UI.Web.Components.TextColumnManager({ //should be StrengthColumnManager |
59 | // 'label':'strength', | 56 | // 'label':'strength', |
60 | // 'cssClass':'title', | 57 | // 'cssClass':'title', |
61 | // 'selector': MochiKit.Base.methodcaller('label') //should be 'strength' or a strenght evaluation function | 58 | // 'selector': MochiKit.Base.methodcaller('label') //should be 'strength' or a strenght evaluation function |
62 | // }), | 59 | // }), |
63 | new Clipperz.PM.UI.Web.Components.LinkColumnManager({ | 60 | new Clipperz.PM.UI.Web.Components.LinkColumnManager({ |
64 | 'name': 'DirectLogins.cardTitle', | 61 | 'name': 'DirectLogins.cardTitle', |
65 | 'selector': MochiKit.Base.compose(MochiKit.Base.methodcaller('label'), MochiKit.Base.methodcaller('record')), | 62 | 'selector': MochiKit.Base.compose(MochiKit.Base.methodcaller('label'), MochiKit.Base.methodcaller('record')), |
66 | 'label': 'card', | 63 | 'label': 'card', |
67 | 'cssClass': 'cardTitle', | 64 | 'cssClass': 'cardTitle', |
68 | 'comparator': Clipperz.Base.caseInsensitiveCompare, | 65 | 'comparator': Clipperz.Base.caseInsensitiveCompare, |
69 | 'sortable': true, | 66 | 'sortable': true, |
70 | 'sorted': 'UNSORTED', | 67 | 'sorted': 'UNSORTED', |
71 | 'actionMethod': MochiKit.Base.method(this, 'handleShowCard') | 68 | 'actionMethod': MochiKit.Base.method(this, 'handleShowCard') |
72 | }), | 69 | }), |
73 | // new Clipperz.PM.UI.Web.Components.TextColumnManager({ //should be StrengthColumnManager | 70 | // new Clipperz.PM.UI.Web.Components.TextColumnManager({ //should be StrengthColumnManager |
74 | // 'label':'last access', | 71 | // 'label':'last access', |
75 | // 'cssClass':'title', | 72 | // 'cssClass':'title', |
76 | // 'selector': MochiKit.Base.methodcaller('label') | 73 | // 'selector': MochiKit.Base.methodcaller('label') |
77 | // // 'sortable': true, | 74 | // // 'sortable': true, |
78 | // // 'sorted': 'UNSORTED' | 75 | // // 'sorted': 'UNSORTED' |
79 | // }), | 76 | // }), |
80 | // new Clipperz.PM.UI.Web.Components.TextColumnManager({ | 77 | // new Clipperz.PM.UI.Web.Components.TextColumnManager({ |
81 | // 'label':'commands', | 78 | // 'label':'commands', |
82 | // 'cssClass':'title', | 79 | // 'cssClass':'title', |
83 | // 'selector': MochiKit.Base.methodcaller('label'), //should be a function for commands display | 80 | // 'selector': MochiKit.Base.methodcaller('label'), //should be a function for commands display |
84 | // }), | 81 | // }), |
85 | new Clipperz.PM.UI.Web.Components.DeleteObjectColumnManager({ | 82 | new Clipperz.PM.UI.Web.Components.DeleteObjectColumnManager({ |
86 | 'name': 'DirectLogins.delete', | 83 | 'name': 'DirectLogins.delete', |
87 | 'selector': MochiKit.Base.noop, | 84 | 'selector': MochiKit.Base.noop, |
88 | 'cssClass': 'delete', | 85 | 'cssClass': 'delete', |
89 | // 'actionMethod': function(anObject, anEvent) { MochiKit.Signal.signal(Clipperz.Signal.NotificationCenter, 'deleteDirectLogin', {objectData:anObject, element:anEvent.src()})} | 86 | // 'actionMethod': function(anObject, anEvent) { MochiKit.Signal.signal(Clipperz.Signal.NotificationCenter, 'deleteDirectLogin', {objectData:anObject, element:anEvent.src()})} |
90 | 'actionMethod': MochiKit.Base.method(this, 'handleDeleteDirectLogin') | 87 | 'actionMethod': MochiKit.Base.method(this, 'handleDeleteDirectLogin') |
91 | }) | 88 | }) |
92 | ]}); | 89 | ]}); |
93 | 90 | ||
94 | }, | 91 | }, |
95 | 92 | ||
96 | //----------------------------------------------------------------------------- | 93 | //----------------------------------------------------------------------------- |
97 | 94 | ||
98 | 'getRows': function () { | 95 | 'getRows': function () { |
99 | //TODO: relying on user() in GridController, bad code smell :| | 96 | //TODO: relying on user() in GridController, bad code smell :| |
100 | return this.user().getDirectLogins(); | 97 | return this.user().getDirectLogins(); |
101 | }, | 98 | }, |
102 | 99 | ||
103 | //----------------------------------------------------------------------------- | 100 | //----------------------------------------------------------------------------- |
104 | 101 | ||
105 | 'handleShowCard': function (anObject, anEvent) { | 102 | 'handleShowCard': function (anObject, anEvent) { |
106 | var cardDialogController; | 103 | var cardDialogController; |
107 | 104 | ||
108 | cardDialogController = new Clipperz.PM.UI.Web.Controllers.CardDialogController({record:anObject.record()}) | 105 | cardDialogController = new Clipperz.PM.UI.Web.Controllers.CardDialogController({record:anObject.record()}) |
109 | cardDialogController.run(anEvent.src()); | 106 | cardDialogController.run(anEvent.src()); |
110 | }, | 107 | }, |
111 | 108 | ||
112 | //----------------------------------------------------------------------------- | 109 | //----------------------------------------------------------------------------- |
113 | 110 | ||
114 | 'handleDeleteDirectLogin': function (anObject, anEvent) { | 111 | 'handleDeleteDirectLogin': function (anObject, anEvent) { |
115 | var deferredResult; | 112 | var deferredResult; |
116 | var confirmationDialog; | 113 | var confirmationDialog; |
117 | 114 | ||
118 | confirmationDialog = new Clipperz.PM.UI.Common.Components.SimpleMessagePanel({ | 115 | confirmationDialog = new Clipperz.PM.UI.Common.Components.SimpleMessagePanel({ |
119 | title:"Delete DirectLogin", | 116 | title:"Delete DirectLogin", |
120 | text:"Do you want to delete …", | 117 | text:"Do you want to delete …", |
diff --git a/frontend/gamma/js/Clipperz/PM/UI/Web/Controllers/FilterController.js b/frontend/gamma/js/Clipperz/PM/UI/Web/Controllers/FilterController.js index 13e02bc..bfc093a 100644 --- a/frontend/gamma/js/Clipperz/PM/UI/Web/Controllers/FilterController.js +++ b/frontend/gamma/js/Clipperz/PM/UI/Web/Controllers/FilterController.js | |||
@@ -1,120 +1,117 @@ | |||
1 | /* | 1 | /* |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | */ | 24 | */ |
28 | 25 | ||
29 | Clipperz.Base.module('Clipperz.PM.UI.Web.Controllers'); | 26 | Clipperz.Base.module('Clipperz.PM.UI.Web.Controllers'); |
30 | 27 | ||
31 | Clipperz.PM.UI.Web.Controllers.FilterController = function(args) { | 28 | Clipperz.PM.UI.Web.Controllers.FilterController = function(args) { |
32 | args = args || {}; | 29 | args = args || {}; |
33 | 30 | ||
34 | Clipperz.PM.UI.Web.Controllers.FilterController.superclass.constructor.call(this, args); | 31 | Clipperz.PM.UI.Web.Controllers.FilterController.superclass.constructor.call(this, args); |
35 | 32 | ||
36 | this._filterElements = []; | 33 | this._filterElements = []; |
37 | this._filter = ""; | 34 | this._filter = ""; |
38 | 35 | ||
39 | this._pendingSearchClicks = 0; | 36 | this._pendingSearchClicks = 0; |
40 | 37 | ||
41 | return this; | 38 | return this; |
42 | }; | 39 | }; |
43 | 40 | ||
44 | 41 | ||
45 | Clipperz.Base.extend(Clipperz.PM.UI.Web.Controllers.FilterController, Object, { | 42 | Clipperz.Base.extend(Clipperz.PM.UI.Web.Controllers.FilterController, Object, { |
46 | 43 | ||
47 | //----------------------------------------------------------------------------- | 44 | //----------------------------------------------------------------------------- |
48 | 45 | ||
49 | 'getFilter': function () { | 46 | 'getFilter': function () { |
50 | return this._filter; | 47 | return this._filter; |
51 | }, | 48 | }, |
52 | 49 | ||
53 | '_setFilter': function (aFilterElement, aFilter) { | 50 | '_setFilter': function (aFilterElement, aFilter) { |
54 | if (aFilter != this._filter) { | 51 | if (aFilter != this._filter) { |
55 | this._filter = aFilter; | 52 | this._filter = aFilter; |
56 | MochiKit.Signal.signal(this, 'filterUpdated', aFilter); | 53 | MochiKit.Signal.signal(this, 'filterUpdated', aFilter); |
57 | this.updateFilterElements(aFilterElement, aFilter); | 54 | this.updateFilterElements(aFilterElement, aFilter); |
58 | } | 55 | } |
59 | }, | 56 | }, |
60 | 57 | ||
61 | 'setFilter': function (aFilter) { | 58 | 'setFilter': function (aFilter) { |
62 | this._setFilter(null, aFilter); | 59 | this._setFilter(null, aFilter); |
63 | }, | 60 | }, |
64 | 61 | ||
65 | //----------------------------------------------------------------------------- | 62 | //----------------------------------------------------------------------------- |
66 | 63 | ||
67 | 'filterElements': function () { | 64 | 'filterElements': function () { |
68 | return this._filterElements; | 65 | return this._filterElements; |
69 | }, | 66 | }, |
70 | 67 | ||
71 | 'registerFilterElement': function (aFilterElement) { | 68 | 'registerFilterElement': function (aFilterElement) { |
72 | //Clipperz.log("=== FilterController.registerFilterElement", aFilterElement); | 69 | //Clipperz.log("=== FilterController.registerFilterElement", aFilterElement); |
73 | this._filterElements.push(aFilterElement); | 70 | this._filterElements.push(aFilterElement); |
74 | MochiKit.Signal.connect(aFilterElement, 'onkeydown', this, 'searchClickHandler'); | 71 | MochiKit.Signal.connect(aFilterElement, 'onkeydown', this, 'searchClickHandler'); |
75 | MochiKit.Signal.connect(aFilterElement, 'onfocus', this, 'searchClickHandler'); | 72 | MochiKit.Signal.connect(aFilterElement, 'onfocus', this, 'searchClickHandler'); |
76 | }, | 73 | }, |
77 | 74 | ||
78 | 'removeFilterElement': function (aFilterElement) { | 75 | 'removeFilterElement': function (aFilterElement) { |
79 | var i; | 76 | var i; |
80 | var filterElements; | 77 | var filterElements; |
81 | for (i=0; i < filterElements; i++) { | 78 | for (i=0; i < filterElements; i++) { |
82 | if (filterElements[i] == aFilterElement); | 79 | if (filterElements[i] == aFilterElement); |
83 | filterElements.splice(i, 1); | 80 | filterElements.splice(i, 1); |
84 | // TODO unregister/disconnect filterElement ??MochiKit.Signal.disconnect(this.grid().filterElement(), 'updateFilter', this.filterController(), 'handleUpdateFilter'); | 81 | // TODO unregister/disconnect filterElement ??MochiKit.Signal.disconnect(this.grid().filterElement(), 'updateFilter', this.filterController(), 'handleUpdateFilter'); |
85 | } | 82 | } |
86 | }, | 83 | }, |
87 | 84 | ||
88 | 'updateFilterElements': function (aSourceElement, aFilterString) { | 85 | 'updateFilterElements': function (aSourceElement, aFilterString) { |
89 | MochiKit.Iter.forEach(this.filterElements(), | 86 | MochiKit.Iter.forEach(this.filterElements(), |
90 | function (aFilterElement) { | 87 | function (aFilterElement) { |
91 | if (aFilterElement != aSourceElement) { | 88 | if (aFilterElement != aSourceElement) { |
92 | aFilterElement.value = aFilterString; | 89 | aFilterElement.value = aFilterString; |
93 | } | 90 | } |
94 | } | 91 | } |
95 | ); | 92 | ); |
96 | 93 | ||
97 | if (aSourceElement != null) { | 94 | if (aSourceElement != null) { |
98 | aSourceElement.focus(); | 95 | aSourceElement.focus(); |
99 | } | 96 | } |
100 | }, | 97 | }, |
101 | 98 | ||
102 | //----------------------------------------------------------------------------- | 99 | //----------------------------------------------------------------------------- |
103 | 100 | ||
104 | 'run': function () { | 101 | 'run': function () { |
105 | //Clipperz.log("=== FilterController.run"); | 102 | //Clipperz.log("=== FilterController.run"); |
106 | }, | 103 | }, |
107 | 104 | ||
108 | //----------------------------------------------------------------------------- | 105 | //----------------------------------------------------------------------------- |
109 | 106 | ||
110 | 'pendingSearchClicks': function () { | 107 | 'pendingSearchClicks': function () { |
111 | return this._pendingSearchClicks; | 108 | return this._pendingSearchClicks; |
112 | }, | 109 | }, |
113 | 110 | ||
114 | 'incrementPendingSearchClicks': function () { | 111 | 'incrementPendingSearchClicks': function () { |
115 | this._pendingSearchClicks++; | 112 | this._pendingSearchClicks++; |
116 | }, | 113 | }, |
117 | 114 | ||
118 | 'decrementPendingSearchClicks': function () { | 115 | 'decrementPendingSearchClicks': function () { |
119 | this._pendingSearchClicks--; | 116 | this._pendingSearchClicks--; |
120 | }, | 117 | }, |
diff --git a/frontend/gamma/js/Clipperz/PM/UI/Web/Controllers/GridController.js b/frontend/gamma/js/Clipperz/PM/UI/Web/Controllers/GridController.js index 740a091..8bb3016 100644 --- a/frontend/gamma/js/Clipperz/PM/UI/Web/Controllers/GridController.js +++ b/frontend/gamma/js/Clipperz/PM/UI/Web/Controllers/GridController.js | |||
@@ -1,120 +1,117 @@ | |||
1 | /* | 1 | /* |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | */ | 24 | */ |
28 | 25 | ||
29 | Clipperz.Base.module('Clipperz.PM.UI.Web.Controllers'); | 26 | Clipperz.Base.module('Clipperz.PM.UI.Web.Controllers'); |
30 | 27 | ||
31 | Clipperz.PM.UI.Web.Controllers.GridController = function(args) { | 28 | Clipperz.PM.UI.Web.Controllers.GridController = function(args) { |
32 | args = args || {}; | 29 | args = args || {}; |
33 | 30 | ||
34 | Clipperz.PM.UI.Web.Controllers.GridController.superclass.constructor.call(this, args); | 31 | Clipperz.PM.UI.Web.Controllers.GridController.superclass.constructor.call(this, args); |
35 | 32 | ||
36 | this._grid = null; | 33 | this._grid = null; |
37 | this._user = null; | 34 | this._user = null; |
38 | this._sortedColumnManager = null; | 35 | this._sortedColumnManager = null; |
39 | this._cachedObjects = null; | 36 | this._cachedObjects = null; |
40 | this._filterController = args.filterController || null; | 37 | this._filterController = args.filterController || null; |
41 | 38 | ||
42 | this._deferredDisplaySelectedRowsInvocation = null; | 39 | this._deferredDisplaySelectedRowsInvocation = null; |
43 | 40 | ||
44 | return this; | 41 | return this; |
45 | }; | 42 | }; |
46 | 43 | ||
47 | Clipperz.Base.extend(Clipperz.PM.UI.Web.Controllers.GridController, Object, { | 44 | Clipperz.Base.extend(Clipperz.PM.UI.Web.Controllers.GridController, Object, { |
48 | 45 | ||
49 | 'toString': function() { | 46 | 'toString': function() { |
50 | return "Clipperz.PM.UI.Web.Controllers.GridController"; | 47 | return "Clipperz.PM.UI.Web.Controllers.GridController"; |
51 | }, | 48 | }, |
52 | 49 | ||
53 | //----------------------------------------------------------------------------- | 50 | //----------------------------------------------------------------------------- |
54 | 51 | ||
55 | 'createGrid': function () { | 52 | 'createGrid': function () { |
56 | throw Clipperz.Base.exception.AbstractMethod; | 53 | throw Clipperz.Base.exception.AbstractMethod; |
57 | }, | 54 | }, |
58 | 55 | ||
59 | 'setupWithGrid': function (aGrid) { | 56 | 'setupWithGrid': function (aGrid) { |
60 | this._grid = aGrid; | 57 | this._grid = aGrid; |
61 | 58 | ||
62 | if (this._grid != null) { | 59 | if (this._grid != null) { |
63 | MochiKit.Iter.forEach(this.columnsManagers(), function (aColumnManager) { | 60 | MochiKit.Iter.forEach(this.columnsManagers(), function (aColumnManager) { |
64 | if (aColumnManager.isSortable()) { | 61 | if (aColumnManager.isSortable()) { |
65 | if (aColumnManager.isSorted()) { | 62 | if (aColumnManager.isSorted()) { |
66 | this.setSortedColumnManager(aColumnManager); | 63 | this.setSortedColumnManager(aColumnManager); |
67 | } | 64 | } |
68 | MochiKit.Signal.connect(aColumnManager, 'sort', this, 'handleColumnManagerSort'); | 65 | MochiKit.Signal.connect(aColumnManager, 'sort', this, 'handleColumnManagerSort'); |
69 | } | 66 | } |
70 | MochiKit.Signal.connect(aColumnManager, 'selectRow', this, 'handleColumnManagerSelectRow'); | 67 | MochiKit.Signal.connect(aColumnManager, 'selectRow', this, 'handleColumnManagerSelectRow'); |
71 | MochiKit.Signal.connect(aColumnManager, 'unselectRow', this, 'handleColumnManagerUnselectRow'); | 68 | MochiKit.Signal.connect(aColumnManager, 'unselectRow', this, 'handleColumnManagerUnselectRow'); |
72 | }, this); | 69 | }, this); |
73 | } | 70 | } |
74 | }, | 71 | }, |
75 | 72 | ||
76 | 'grid': function() { | 73 | 'grid': function() { |
77 | if (this._grid == null) { | 74 | if (this._grid == null) { |
78 | this.setupWithGrid(this.createGrid()); | 75 | this.setupWithGrid(this.createGrid()); |
79 | } | 76 | } |
80 | 77 | ||
81 | return this._grid; | 78 | return this._grid; |
82 | }, | 79 | }, |
83 | 80 | ||
84 | 'filterController': function () { | 81 | 'filterController': function () { |
85 | //Clipperz.log('GridController.filterController >>>', this._filterController); | 82 | //Clipperz.log('GridController.filterController >>>', this._filterController); |
86 | if (this._filterController == null) { | 83 | if (this._filterController == null) { |
87 | this._filterController = new Clipperz.PM.UI.Web.Controllers.FilterController(); | 84 | this._filterController = new Clipperz.PM.UI.Web.Controllers.FilterController(); |
88 | } | 85 | } |
89 | //Clipperz.log('GridController.filterController <<<', this._filterController); | 86 | //Clipperz.log('GridController.filterController <<<', this._filterController); |
90 | return this._filterController; | 87 | return this._filterController; |
91 | }, | 88 | }, |
92 | 89 | ||
93 | //----------------------------------------------------------------------------- | 90 | //----------------------------------------------------------------------------- |
94 | 91 | ||
95 | 'columnsManagers': function () { | 92 | 'columnsManagers': function () { |
96 | return this.grid().columnsManagers(); | 93 | return this.grid().columnsManagers(); |
97 | }, | 94 | }, |
98 | 95 | ||
99 | 'columnManagerWithName': function (aName) { | 96 | 'columnManagerWithName': function (aName) { |
100 | varmanagers; | 97 | varmanagers; |
101 | var result; | 98 | var result; |
102 | 99 | ||
103 | managers = MochiKit.Base.filter(function (aManager) { return aManager.name() == aName; } , this.columnsManagers()); | 100 | managers = MochiKit.Base.filter(function (aManager) { return aManager.name() == aName; } , this.columnsManagers()); |
104 | 101 | ||
105 | if (managers.length == 1) { | 102 | if (managers.length == 1) { |
106 | result = managers[0]; | 103 | result = managers[0]; |
107 | } else if (managers.length == 0) { | 104 | } else if (managers.length == 0) { |
108 | result = null; | 105 | result = null; |
109 | } else { | 106 | } else { |
110 | throw "WTF!!!"; | 107 | throw "WTF!!!"; |
111 | } | 108 | } |
112 | 109 | ||
113 | return result; | 110 | return result; |
114 | }, | 111 | }, |
115 | 112 | ||
116 | 'sortedColumnManager': function () { | 113 | 'sortedColumnManager': function () { |
117 | return this._sortedColumnManager; | 114 | return this._sortedColumnManager; |
118 | }, | 115 | }, |
119 | 116 | ||
120 | 'setSortedColumnManager': function(aValue) { | 117 | 'setSortedColumnManager': function(aValue) { |
diff --git a/frontend/gamma/js/Clipperz/PM/UI/Web/Controllers/LoginController.js b/frontend/gamma/js/Clipperz/PM/UI/Web/Controllers/LoginController.js index d88af41..d0b378c 100644 --- a/frontend/gamma/js/Clipperz/PM/UI/Web/Controllers/LoginController.js +++ b/frontend/gamma/js/Clipperz/PM/UI/Web/Controllers/LoginController.js | |||
@@ -1,120 +1,117 @@ | |||
1 | /* | 1 | /* |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | */ | 24 | */ |
28 | 25 | ||
29 | Clipperz.Base.module('Clipperz.PM.UI.Web.Controllers'); | 26 | Clipperz.Base.module('Clipperz.PM.UI.Web.Controllers'); |
30 | 27 | ||
31 | Clipperz.PM.UI.Web.Controllers.LoginController = function(args) { | 28 | Clipperz.PM.UI.Web.Controllers.LoginController = function(args) { |
32 | this._args = args || {}; | 29 | this._args = args || {}; |
33 | 30 | ||
34 | this._loginPage = null; | 31 | this._loginPage = null; |
35 | 32 | ||
36 | this._newUserWizardController = null; | 33 | this._newUserWizardController = null; |
37 | this._newUserCreationComponent = null; | 34 | this._newUserCreationComponent = null; |
38 | 35 | ||
39 | return this; | 36 | return this; |
40 | } | 37 | } |
41 | 38 | ||
42 | MochiKit.Base.update(Clipperz.PM.UI.Web.Controllers.LoginController.prototype, { | 39 | MochiKit.Base.update(Clipperz.PM.UI.Web.Controllers.LoginController.prototype, { |
43 | 40 | ||
44 | 'toString': function() { | 41 | 'toString': function() { |
45 | return "Clipperz.PM.UI.Web.Controllers.LoginController"; | 42 | return "Clipperz.PM.UI.Web.Controllers.LoginController"; |
46 | }, | 43 | }, |
47 | 44 | ||
48 | 'args': function () { | 45 | 'args': function () { |
49 | return this._args; | 46 | return this._args; |
50 | }, | 47 | }, |
51 | 48 | ||
52 | //----------------------------------------------------------------------------- | 49 | //----------------------------------------------------------------------------- |
53 | 50 | ||
54 | 'loginPage': function() { | 51 | 'loginPage': function() { |
55 | if (this._loginPage == null) { | 52 | if (this._loginPage == null) { |
56 | this._loginPage = new Clipperz.PM.UI.Web.Components.LoginPage(); | 53 | this._loginPage = new Clipperz.PM.UI.Web.Components.LoginPage(); |
57 | 54 | ||
58 | MochiKit.Signal.connect(this._loginPage, 'createNewAccountClick', this, 'handleCreateNewAccountClick') | 55 | MochiKit.Signal.connect(this._loginPage, 'createNewAccountClick', this, 'handleCreateNewAccountClick') |
59 | } | 56 | } |
60 | 57 | ||
61 | return this._loginPage; | 58 | return this._loginPage; |
62 | }, | 59 | }, |
63 | 60 | ||
64 | //----------------------------------------------------------------------------- | 61 | //----------------------------------------------------------------------------- |
65 | 62 | ||
66 | 'run': function(args) { | 63 | 'run': function(args) { |
67 | varslot; | 64 | varslot; |
68 | varloginPage; | 65 | varloginPage; |
69 | varloginForm; | 66 | varloginForm; |
70 | 67 | ||
71 | slot = args.slot; | 68 | slot = args.slot; |
72 | 69 | ||
73 | loginForm =new Clipperz.PM.UI.Web.Components.LoginForm({'autocomplete': this.args()['autocomplete']}); | 70 | loginForm =new Clipperz.PM.UI.Web.Components.LoginForm({'autocomplete': this.args()['autocomplete']}); |
74 | 71 | ||
75 | slot.setContent(this.loginPage()); | 72 | slot.setContent(this.loginPage()); |
76 | this.loginPage().slotNamed('loginForm').setContent(loginForm); | 73 | this.loginPage().slotNamed('loginForm').setContent(loginForm); |
77 | 74 | ||
78 | MochiKit.Signal.connect(loginForm, 'doLogin', MochiKit.Base.method(this, 'doLogin', loginForm)); | 75 | MochiKit.Signal.connect(loginForm, 'doLogin', MochiKit.Base.method(this, 'doLogin', loginForm)); |
79 | MochiKit.Signal.connect(Clipperz.Signal.NotificationCenter, 'doLogin', MochiKit.Base.method(this, 'doLogin', loginForm)); | 76 | MochiKit.Signal.connect(Clipperz.Signal.NotificationCenter, 'doLogin', MochiKit.Base.method(this, 'doLogin', loginForm)); |
80 | }, | 77 | }, |
81 | 78 | ||
82 | //----------------------------------------------------------------------------- | 79 | //----------------------------------------------------------------------------- |
83 | 80 | ||
84 | 'doLogin': function(aLoginForm, anEvent) { | 81 | 'doLogin': function(aLoginForm, anEvent) { |
85 | var deferredResult; | 82 | var deferredResult; |
86 | varparameters; | 83 | varparameters; |
87 | // varshouldUseOTP; | 84 | // varshouldUseOTP; |
88 | var loginProgress; | 85 | var loginProgress; |
89 | varuser; | 86 | varuser; |
90 | var getPassphraseDelegate; | 87 | var getPassphraseDelegate; |
91 | 88 | ||
92 | parameters = anEvent; | 89 | parameters = anEvent; |
93 | // shouldUseOTP = (typeof(parameters.passphrase) == 'undefined'); | 90 | // shouldUseOTP = (typeof(parameters.passphrase) == 'undefined'); |
94 | 91 | ||
95 | getPassphraseDelegate = MochiKit.Base.partial(MochiKit.Async.succeed, parameters.passphrase); | 92 | getPassphraseDelegate = MochiKit.Base.partial(MochiKit.Async.succeed, parameters.passphrase); |
96 | user = new Clipperz.PM.DataModel.User({'username':parameters.username, 'getPassphraseFunction':MochiKit.Base.method(Clipperz.PM.RunTime.mainController, 'getPassphrase')}); | 93 | user = new Clipperz.PM.DataModel.User({'username':parameters.username, 'getPassphraseFunction':MochiKit.Base.method(Clipperz.PM.RunTime.mainController, 'getPassphrase')}); |
97 | 94 | ||
98 | loginProgress = new Clipperz.PM.UI.Web.Components.LoginProgress(); | 95 | loginProgress = new Clipperz.PM.UI.Web.Components.LoginProgress(); |
99 | 96 | ||
100 | deferredResult = new Clipperz.Async.Deferred("LoginController.doLogin", {trace:false}); | 97 | deferredResult = new Clipperz.Async.Deferred("LoginController.doLogin", {trace:false}); |
101 | deferredResult.addCallbackPass(MochiKit.Signal.signal, Clipperz.Signal.NotificationCenter, 'initProgress', {'steps':4}); | 98 | deferredResult.addCallbackPass(MochiKit.Signal.signal, Clipperz.Signal.NotificationCenter, 'initProgress', {'steps':4}); |
102 | deferredResult.addMethod(Clipperz.PM.RunTime.mainController, 'setPassphraseDelegate', getPassphraseDelegate); | 99 | deferredResult.addMethod(Clipperz.PM.RunTime.mainController, 'setPassphraseDelegate', getPassphraseDelegate); |
103 | deferredResult.addMethod(loginProgress, 'deferredShowModal', {deferredObject:deferredResult, openFromElement:aLoginForm.submitButtonElement()}); | 100 | deferredResult.addMethod(loginProgress, 'deferredShowModal', {deferredObject:deferredResult, openFromElement:aLoginForm.submitButtonElement()}); |
104 | deferredResult.addMethod(Clipperz.Crypto.PRNG.defaultRandomGenerator(), 'deferredEntropyCollection'); | 101 | deferredResult.addMethod(Clipperz.Crypto.PRNG.defaultRandomGenerator(), 'deferredEntropyCollection'); |
105 | // if (shouldUseOTP == false) { | 102 | // if (shouldUseOTP == false) { |
106 | deferredResult.addMethod(user, 'login'); | 103 | deferredResult.addMethod(user, 'login'); |
107 | // } else { | 104 | // } else { |
108 | // deferredResult.addMethod(user, 'loginUsingOTP', parameters.username, parameters.otp); | 105 | // deferredResult.addMethod(user, 'loginUsingOTP', parameters.username, parameters.otp); |
109 | // } | 106 | // } |
110 | deferredResult.addCallback(function(aLoginProgress, res) { | 107 | deferredResult.addCallback(function(aLoginProgress, res) { |
111 | aLoginProgress.disableCancel(); | 108 | aLoginProgress.disableCancel(); |
112 | return res; | 109 | return res; |
113 | }, loginProgress); | 110 | }, loginProgress); |
114 | deferredResult.addCallback(function () { | 111 | deferredResult.addCallback(function () { |
115 | MochiKit.Signal.connect(Clipperz.Signal.NotificationCenter, 'CARDS_CONTROLLER_DID_RUN',MochiKit.Base.method(loginProgress, 'deferredHideModalAndRemove', {closeToElement:MochiKit.DOM.currentDocument().body})); | 112 | MochiKit.Signal.connect(Clipperz.Signal.NotificationCenter, 'CARDS_CONTROLLER_DID_RUN',MochiKit.Base.method(loginProgress, 'deferredHideModalAndRemove', {closeToElement:MochiKit.DOM.currentDocument().body})); |
116 | }) | 113 | }) |
117 | deferredResult.addMethod(this, 'userLoggedIn', user, loginProgress, aLoginForm); | 114 | deferredResult.addMethod(this, 'userLoggedIn', user, loginProgress, aLoginForm); |
118 | deferredResult.addErrback (MochiKit.Base.method(this, 'handleFailedLogin', loginProgress)); | 115 | deferredResult.addErrback (MochiKit.Base.method(this, 'handleFailedLogin', loginProgress)); |
119 | 116 | ||
120 | deferredResult.addErrback (MochiKit.Base.method(loginProgress, 'deferredHideModalAndRemove', {closeToElement:aLoginForm.submitButtonElement()})); | 117 | deferredResult.addErrback (MochiKit.Base.method(loginProgress, 'deferredHideModalAndRemove', {closeToElement:aLoginForm.submitButtonElement()})); |
diff --git a/frontend/gamma/js/Clipperz/PM/UI/Web/Controllers/MainController.js b/frontend/gamma/js/Clipperz/PM/UI/Web/Controllers/MainController.js index aa0d6ad..c83e3c0 100644 --- a/frontend/gamma/js/Clipperz/PM/UI/Web/Controllers/MainController.js +++ b/frontend/gamma/js/Clipperz/PM/UI/Web/Controllers/MainController.js | |||
@@ -1,120 +1,117 @@ | |||
1 | /* | 1 | /* |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | */ | 24 | */ |
28 | 25 | ||
29 | Clipperz.Base.module('Clipperz.PM.UI.Web.Controllers'); | 26 | Clipperz.Base.module('Clipperz.PM.UI.Web.Controllers'); |
30 | 27 | ||
31 | Clipperz.PM.UI.Web.Controllers.MainController = function(args) { | 28 | Clipperz.PM.UI.Web.Controllers.MainController = function(args) { |
32 | this._args = args; | 29 | this._args = args; |
33 | 30 | ||
34 | //controllers | 31 | //controllers |
35 | this._loginController =null; | 32 | this._loginController =null; |
36 | this._appController =null; | 33 | this._appController =null; |
37 | 34 | ||
38 | //components | 35 | //components |
39 | this._headerComponent = null; | 36 | this._headerComponent = null; |
40 | this._pageComponent =null; | 37 | this._pageComponent =null; |
41 | this._footerComponent = null; | 38 | this._footerComponent = null; |
42 | 39 | ||
43 | this._passphraseDelegateLock = new MochiKit.Async.DeferredLock(); | 40 | this._passphraseDelegateLock = new MochiKit.Async.DeferredLock(); |
44 | this._passphraseDelegateLock.acquire(); | 41 | this._passphraseDelegateLock.acquire(); |
45 | //Clipperz.log('MainController init _passphraseDelegateLock', this._passphraseDelegateLock); | 42 | //Clipperz.log('MainController init _passphraseDelegateLock', this._passphraseDelegateLock); |
46 | this._passphraseDelegate = null; | 43 | this._passphraseDelegate = null; |
47 | 44 | ||
48 | MochiKit.Signal.connect(Clipperz.Signal.NotificationCenter, 'remoteRequestSent', this, 'handleRemoteRequestSent'); | 45 | MochiKit.Signal.connect(Clipperz.Signal.NotificationCenter, 'remoteRequestSent', this, 'handleRemoteRequestSent'); |
49 | MochiKit.Signal.connect(Clipperz.Signal.NotificationCenter, 'remoteRequestReceived',this, 'handleRemoteRequestReceived'); | 46 | MochiKit.Signal.connect(Clipperz.Signal.NotificationCenter, 'remoteRequestReceived',this, 'handleRemoteRequestReceived'); |
50 | 47 | ||
51 | return this; | 48 | return this; |
52 | } | 49 | } |
53 | 50 | ||
54 | MochiKit.Base.update(Clipperz.PM.UI.Web.Controllers.MainController.prototype, { | 51 | MochiKit.Base.update(Clipperz.PM.UI.Web.Controllers.MainController.prototype, { |
55 | 52 | ||
56 | 'toString': function() { | 53 | 'toString': function() { |
57 | return "Clipperz.PM.UI.Web.Controllers.MainController"; | 54 | return "Clipperz.PM.UI.Web.Controllers.MainController"; |
58 | }, | 55 | }, |
59 | 56 | ||
60 | 'args': function () { | 57 | 'args': function () { |
61 | return this._args; | 58 | return this._args; |
62 | }, | 59 | }, |
63 | 60 | ||
64 | //----------------------------------------------------------------------------- | 61 | //----------------------------------------------------------------------------- |
65 | 62 | ||
66 | 'headerComponent': function() { | 63 | 'headerComponent': function() { |
67 | if (this._headerComponent == null) { | 64 | if (this._headerComponent == null) { |
68 | this._headerComponent = new Clipperz.PM.UI.Web.Components.PageHeader(); | 65 | this._headerComponent = new Clipperz.PM.UI.Web.Components.PageHeader(); |
69 | } | 66 | } |
70 | 67 | ||
71 | return this._headerComponent; | 68 | return this._headerComponent; |
72 | }, | 69 | }, |
73 | 70 | ||
74 | 'footerComponent': function() { | 71 | 'footerComponent': function() { |
75 | if (this._footerComponent == null) { | 72 | if (this._footerComponent == null) { |
76 | this._footerComponent = new Clipperz.PM.UI.Web.Components.PageFooter(); | 73 | this._footerComponent = new Clipperz.PM.UI.Web.Components.PageFooter(); |
77 | } | 74 | } |
78 | 75 | ||
79 | return this._footerComponent; | 76 | return this._footerComponent; |
80 | }, | 77 | }, |
81 | 78 | ||
82 | //----------------------------------------------------------------------------- | 79 | //----------------------------------------------------------------------------- |
83 | 80 | ||
84 | 'pageComponent': function() { | 81 | 'pageComponent': function() { |
85 | if (this._pageComponent == null) { | 82 | if (this._pageComponent == null) { |
86 | this._pageComponent = new Clipperz.PM.UI.Web.Components.Page({element:MochiKit.DOM.getElement('mainDiv')}); | 83 | this._pageComponent = new Clipperz.PM.UI.Web.Components.Page({element:MochiKit.DOM.getElement('mainDiv')}); |
87 | } | 84 | } |
88 | 85 | ||
89 | return this._pageComponent; | 86 | return this._pageComponent; |
90 | }, | 87 | }, |
91 | 88 | ||
92 | //----------------------------------------------------------------------------- | 89 | //----------------------------------------------------------------------------- |
93 | 90 | ||
94 | 'loginController': function() { | 91 | 'loginController': function() { |
95 | if (this._loginController == null) { | 92 | if (this._loginController == null) { |
96 | this._loginController = new Clipperz.PM.UI.Web.Controllers.LoginController(this.args()); | 93 | this._loginController = new Clipperz.PM.UI.Web.Controllers.LoginController(this.args()); |
97 | 94 | ||
98 | MochiKit.Signal.connect(this._loginController, 'userLoggedIn', this, 'loginControllerUserLoggedInCallback'); | 95 | MochiKit.Signal.connect(this._loginController, 'userLoggedIn', this, 'loginControllerUserLoggedInCallback'); |
99 | } | 96 | } |
100 | 97 | ||
101 | return this._loginController; | 98 | return this._loginController; |
102 | }, | 99 | }, |
103 | 100 | ||
104 | 'appController': function() { | 101 | 'appController': function() { |
105 | if (this._appController == null) { | 102 | if (this._appController == null) { |
106 | this._appController = new Clipperz.PM.UI.Web.Controllers.AppController(); | 103 | this._appController = new Clipperz.PM.UI.Web.Controllers.AppController(); |
107 | 104 | ||
108 | MochiKit.Signal.connect(this._appController, 'logout', this, 'handleLogout'); | 105 | MochiKit.Signal.connect(this._appController, 'logout', this, 'handleLogout'); |
109 | } | 106 | } |
110 | 107 | ||
111 | return this._appController; | 108 | return this._appController; |
112 | }, | 109 | }, |
113 | 110 | ||
114 | //----------------------------------------------------------------------------- | 111 | //----------------------------------------------------------------------------- |
115 | 112 | ||
116 | 'run': function(shoudShowRegistrationForm) { | 113 | 'run': function(shoudShowRegistrationForm) { |
117 | this.pageComponent().slotNamed('header').setContent(this.headerComponent()); | 114 | this.pageComponent().slotNamed('header').setContent(this.headerComponent()); |
118 | this.pageComponent().slotNamed('footer').setContent(this.footerComponent()); | 115 | this.pageComponent().slotNamed('footer').setContent(this.footerComponent()); |
119 | 116 | ||
120 | this.pageComponent().render(); | 117 | this.pageComponent().render(); |
diff --git a/frontend/gamma/js/Clipperz/PM/UI/Web/Controllers/NewUserWizardController.js b/frontend/gamma/js/Clipperz/PM/UI/Web/Controllers/NewUserWizardController.js index 28d9d20..7db6888 100644 --- a/frontend/gamma/js/Clipperz/PM/UI/Web/Controllers/NewUserWizardController.js +++ b/frontend/gamma/js/Clipperz/PM/UI/Web/Controllers/NewUserWizardController.js | |||
@@ -1,120 +1,117 @@ | |||
1 | /* | 1 | /* |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | */ | 24 | */ |
28 | 25 | ||
29 | Clipperz.Base.module('Clipperz.PM.UI.Web.Controllers'); | 26 | Clipperz.Base.module('Clipperz.PM.UI.Web.Controllers'); |
30 | 27 | ||
31 | Clipperz.PM.UI.Web.Controllers.NewUserWizardController = function(args) { | 28 | Clipperz.PM.UI.Web.Controllers.NewUserWizardController = function(args) { |
32 | this._newUserCreationComponent = args.newUserCreationComponent|| Clipperz.Base.exception.raise('MandatoryParameter'); | 29 | this._newUserCreationComponent = args.newUserCreationComponent|| Clipperz.Base.exception.raise('MandatoryParameter'); |
33 | 30 | ||
34 | MochiKit.Signal.connect(this._newUserCreationComponent, 'changedValue',this, 'handleChangedValue'); | 31 | MochiKit.Signal.connect(this._newUserCreationComponent, 'changedValue',this, 'handleChangedValue'); |
35 | MochiKit.Signal.connect(this._newUserCreationComponent, 'moveForward',this, 'handleMoveForward'); | 32 | MochiKit.Signal.connect(this._newUserCreationComponent, 'moveForward',this, 'handleMoveForward'); |
36 | MochiKit.Signal.connect(this._newUserCreationComponent, 'keyPressed',this, 'handleNewUserCreationComponentKeyPressed'); | 33 | MochiKit.Signal.connect(this._newUserCreationComponent, 'keyPressed',this, 'handleNewUserCreationComponentKeyPressed'); |
37 | 34 | ||
38 | this._rulerComponent = null; | 35 | this._rulerComponent = null; |
39 | 36 | ||
40 | this._steps = null; | 37 | this._steps = null; |
41 | this._currentStepIndex = 0; | 38 | this._currentStepIndex = 0; |
42 | this._isNextEnabled = false; | 39 | this._isNextEnabled = false; |
43 | 40 | ||
44 | this._userCreationState = 'IDLE'; //'IN PROGRESS', 'DONE', 'FAILED' | 41 | this._userCreationState = 'IDLE'; //'IN PROGRESS', 'DONE', 'FAILED' |
45 | this._user = null; | 42 | this._user = null; |
46 | return this; | 43 | return this; |
47 | } | 44 | } |
48 | 45 | ||
49 | MochiKit.Base.update(Clipperz.PM.UI.Web.Controllers.NewUserWizardController.prototype, { | 46 | MochiKit.Base.update(Clipperz.PM.UI.Web.Controllers.NewUserWizardController.prototype, { |
50 | 47 | ||
51 | 'toString': function() { | 48 | 'toString': function() { |
52 | return "Clipperz.PM.UI.Web.Controllers.NewUserWizardController"; | 49 | return "Clipperz.PM.UI.Web.Controllers.NewUserWizardController"; |
53 | }, | 50 | }, |
54 | 51 | ||
55 | //------------------------------------------------------------------------- | 52 | //------------------------------------------------------------------------- |
56 | 53 | ||
57 | 'newUserCreationComponent': function () { | 54 | 'newUserCreationComponent': function () { |
58 | return this._newUserCreationComponent; | 55 | return this._newUserCreationComponent; |
59 | }, | 56 | }, |
60 | 57 | ||
61 | //============================================================================= | 58 | //============================================================================= |
62 | 59 | ||
63 | 'user': function () { | 60 | 'user': function () { |
64 | return this._user; | 61 | return this._user; |
65 | }, | 62 | }, |
66 | 63 | ||
67 | 'setUser': function (aValue) { | 64 | 'setUser': function (aValue) { |
68 | this._user = aValue; | 65 | this._user = aValue; |
69 | }, | 66 | }, |
70 | 67 | ||
71 | //----------------------------------------------------------------------------- | 68 | //----------------------------------------------------------------------------- |
72 | 69 | ||
73 | 'userCreationState': function () { | 70 | 'userCreationState': function () { |
74 | return this._userCreationState; | 71 | return this._userCreationState; |
75 | }, | 72 | }, |
76 | 73 | ||
77 | 'setUserCreationState': function (aValue) { | 74 | 'setUserCreationState': function (aValue) { |
78 | //console.log("+++ NewUserWizardController.setUserCreationState", aValue); | 75 | //console.log("+++ NewUserWizardController.setUserCreationState", aValue); |
79 | this._userCreationState = aValue; | 76 | this._userCreationState = aValue; |
80 | this.checkState(); | 77 | this.checkState(); |
81 | }, | 78 | }, |
82 | 79 | ||
83 | //============================================================================= | 80 | //============================================================================= |
84 | 81 | ||
85 | 'resetCurrentStepIndex': function () { | 82 | 'resetCurrentStepIndex': function () { |
86 | this._currentStepIndex = 0; | 83 | this._currentStepIndex = 0; |
87 | this.rulerComponent().resetStatus({animateTransition:true}); | 84 | this.rulerComponent().resetStatus({animateTransition:true}); |
88 | }, | 85 | }, |
89 | 86 | ||
90 | //----------------------------------------------------------------------------- | 87 | //----------------------------------------------------------------------------- |
91 | 88 | ||
92 | 'enableNext': function (aValue) { | 89 | 'enableNext': function (aValue) { |
93 | this.rulerComponent().enableNext(aValue); | 90 | this.rulerComponent().enableNext(aValue); |
94 | this._isNextEnabled = aValue; | 91 | this._isNextEnabled = aValue; |
95 | }, | 92 | }, |
96 | 93 | ||
97 | 'isNextEnabled': function () { | 94 | 'isNextEnabled': function () { |
98 | return this._isNextEnabled; | 95 | return this._isNextEnabled; |
99 | }, | 96 | }, |
100 | 97 | ||
101 | //----------------------------------------------------------------------------- | 98 | //----------------------------------------------------------------------------- |
102 | 99 | ||
103 | 'enablePrevious': function (aValue) { | 100 | 'enablePrevious': function (aValue) { |
104 | this.rulerComponent().enablePrevious(aValue); | 101 | this.rulerComponent().enablePrevious(aValue); |
105 | }, | 102 | }, |
106 | 103 | ||
107 | //============================================================================= | 104 | //============================================================================= |
108 | 105 | ||
109 | 'rulerComponent': function () { | 106 | 'rulerComponent': function () { |
110 | if (this._rulerComponent == null) { | 107 | if (this._rulerComponent == null) { |
111 | this._rulerComponent = new Clipperz.PM.UI.Web.Components.RulerComponent({ | 108 | this._rulerComponent = new Clipperz.PM.UI.Web.Components.RulerComponent({ |
112 | translationContext:'Wizards.NewUserWizard' | 109 | translationContext:'Wizards.NewUserWizard' |
113 | }); | 110 | }); |
114 | this._rulerComponent.render(); | 111 | this._rulerComponent.render(); |
115 | 112 | ||
116 | MochiKit.Signal.connect(this._rulerComponent, 'exit', this, 'handleExit'); | 113 | MochiKit.Signal.connect(this._rulerComponent, 'exit', this, 'handleExit'); |
117 | MochiKit.Signal.connect(this._rulerComponent, 'done', this, 'done'); | 114 | MochiKit.Signal.connect(this._rulerComponent, 'done', this, 'done'); |
118 | MochiKit.Signal.connect(this._rulerComponent, 'moveForward',this, 'handleMoveForward'); | 115 | MochiKit.Signal.connect(this._rulerComponent, 'moveForward',this, 'handleMoveForward'); |
119 | MochiKit.Signal.connect(this._rulerComponent, 'moveBackward',this, 'handleMoveBackward'); | 116 | MochiKit.Signal.connect(this._rulerComponent, 'moveBackward',this, 'handleMoveBackward'); |
120 | MochiKit.Signal.connect(this._rulerComponent, 'cursorMoved',this, 'handleCursorMoved'); | 117 | MochiKit.Signal.connect(this._rulerComponent, 'cursorMoved',this, 'handleCursorMoved'); |
diff --git a/frontend/gamma/js/Clipperz/PM/UI/iPhone/Components/CardDetail.js b/frontend/gamma/js/Clipperz/PM/UI/iPhone/Components/CardDetail.js index 23fd236..5380aa1 100644 --- a/frontend/gamma/js/Clipperz/PM/UI/iPhone/Components/CardDetail.js +++ b/frontend/gamma/js/Clipperz/PM/UI/iPhone/Components/CardDetail.js | |||
@@ -1,120 +1,117 @@ | |||
1 | /* | 1 | /* |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | */ | 24 | */ |
28 | 25 | ||
29 | Clipperz.Base.module('Clipperz.PM.UI.iPhone.Components'); | 26 | Clipperz.Base.module('Clipperz.PM.UI.iPhone.Components'); |
30 | 27 | ||
31 | Clipperz.PM.UI.iPhone.Components.CardDetail = function(args) { | 28 | Clipperz.PM.UI.iPhone.Components.CardDetail = function(args) { |
32 | args = args || {}; | 29 | args = args || {}; |
33 | 30 | ||
34 | Clipperz.PM.UI.iPhone.Components.CardDetail.superclass.constructor.apply(this, arguments); | 31 | Clipperz.PM.UI.iPhone.Components.CardDetail.superclass.constructor.apply(this, arguments); |
35 | 32 | ||
36 | this._cardReference = null; | 33 | this._cardReference = null; |
37 | 34 | ||
38 | return this; | 35 | return this; |
39 | } | 36 | } |
40 | 37 | ||
41 | //============================================================================= | 38 | //============================================================================= |
42 | 39 | ||
43 | Clipperz.Base.extend(Clipperz.PM.UI.iPhone.Components.CardDetail, Clipperz.PM.UI.Common.Components.BaseComponent, { | 40 | Clipperz.Base.extend(Clipperz.PM.UI.iPhone.Components.CardDetail, Clipperz.PM.UI.Common.Components.BaseComponent, { |
44 | 41 | ||
45 | //------------------------------------------------------------------------- | 42 | //------------------------------------------------------------------------- |
46 | 43 | ||
47 | 'toString': function () { | 44 | 'toString': function () { |
48 | return "Clipperz.PM.UI.iPhone.Components.CardDetail component"; | 45 | return "Clipperz.PM.UI.iPhone.Components.CardDetail component"; |
49 | }, | 46 | }, |
50 | 47 | ||
51 | //------------------------------------------------------------------------- | 48 | //------------------------------------------------------------------------- |
52 | 49 | ||
53 | 'cardReference': function () { | 50 | 'cardReference': function () { |
54 | return this._cardReference; | 51 | return this._cardReference; |
55 | }, | 52 | }, |
56 | 53 | ||
57 | 'setCardReference': function (aValue) { | 54 | 'setCardReference': function (aValue) { |
58 | this._cardReference = aValue; | 55 | this._cardReference = aValue; |
59 | }, | 56 | }, |
60 | 57 | ||
61 | //------------------------------------------------------------------------- | 58 | //------------------------------------------------------------------------- |
62 | 59 | ||
63 | 'renderSelf': function(/*aContainer, aPosition*/) { | 60 | 'renderSelf': function(/*aContainer, aPosition*/) { |
64 | this.append(this.element(), [ | 61 | this.append(this.element(), [ |
65 | {tag:'div', cls:'cardDetail', id:this.getId('cardDetail'), children:[ | 62 | {tag:'div', cls:'cardDetail', id:this.getId('cardDetail'), children:[ |
66 | {tag:'div', id:this.getId('progressBar')} //, | 63 | {tag:'div', id:this.getId('progressBar')} //, |
67 | // {tag:'h1', cls:'loading', html:"loading"} | 64 | // {tag:'h1', cls:'loading', html:"loading"} |
68 | ]} | 65 | ]} |
69 | ]); | 66 | ]); |
70 | 67 | ||
71 | this.addComponent(new Clipperz.PM.UI.Common.Components.ProgressBar({'element':this.getElement('progressBar')})); | 68 | this.addComponent(new Clipperz.PM.UI.Common.Components.ProgressBar({'element':this.getElement('progressBar')})); |
72 | MochiKit.Signal.signal(Clipperz.PM.UI.Common.Controllers.ProgressBarController.defaultController, 'updateProgress', 0); | 69 | MochiKit.Signal.signal(Clipperz.PM.UI.Common.Controllers.ProgressBarController.defaultController, 'updateProgress', 0); |
73 | }, | 70 | }, |
74 | 71 | ||
75 | //========================================================================= | 72 | //========================================================================= |
76 | 73 | ||
77 | 'showCardDetails': function (someData) { | 74 | 'showCardDetails': function (someData) { |
78 | this.element().innerHTML = ''; | 75 | this.element().innerHTML = ''; |
79 | this.append(this.element(), [ | 76 | this.append(this.element(), [ |
80 | {tag:'fieldset', id:this.getId('fields'), children:MochiKit.Base.map(function (aFieldData) { | 77 | {tag:'fieldset', id:this.getId('fields'), children:MochiKit.Base.map(function (aFieldData) { |
81 | return {tag:'div', cls:'row', children:[ | 78 | return {tag:'div', cls:'row', children:[ |
82 | {tag:'label', html:aFieldData['label']}, | 79 | {tag:'label', html:aFieldData['label']}, |
83 | // {tag:'span', cls:('fieldValue ' + (aFieldData['isHidden']? 'password' : 'text')), html:aFieldData['value']} | 80 | // {tag:'span', cls:('fieldValue ' + (aFieldData['isHidden']? 'password' : 'text')), html:aFieldData['value']} |
84 | {tag:'div', cls:('fieldValue ' + (aFieldData['isHidden']? 'password' : 'text')), children:[ | 81 | {tag:'div', cls:('fieldValue ' + (aFieldData['isHidden']? 'password' : 'text')), children:[ |
85 | {tag:'div', children:[{tag:'p', html:aFieldData['value']}]} | 82 | {tag:'div', children:[{tag:'p', html:aFieldData['value']}]} |
86 | ]} | 83 | ]} |
87 | // {tag:'input', type:'text', cls:('fieldValue ' + (aFieldData['isHidden']? 'password' : 'text')), value:aFieldData['value'], disabled:true} | 84 | // {tag:'input', type:'text', cls:('fieldValue ' + (aFieldData['isHidden']? 'password' : 'text')), value:aFieldData['value'], disabled:true} |
88 | 85 | ||
89 | ]} | 86 | ]} |
90 | }, someData['fields'])} | 87 | }, someData['fields'])} |
91 | ]); | 88 | ]); |
92 | 89 | ||
93 | MochiKit.Iter.forEach(MochiKit.Selector.findChildElements(this.element(), ['span.password']), MochiKit.Base.bind(function (aPasswordElement) { | 90 | MochiKit.Iter.forEach(MochiKit.Selector.findChildElements(this.element(), ['span.password']), MochiKit.Base.bind(function (aPasswordElement) { |
94 | MochiKit.Signal.connect(aPasswordElement, 'onclick', function (anEvent) { alert(MochiKit.DOM.scrapeText(anEvent.src())); }) | 91 | MochiKit.Signal.connect(aPasswordElement, 'onclick', function (anEvent) { alert(MochiKit.DOM.scrapeText(anEvent.src())); }) |
95 | }, this)); | 92 | }, this)); |
96 | 93 | ||
97 | if (someData['directLogins'].length > 0) { | 94 | if (someData['directLogins'].length > 0) { |
98 | this.append(this.element(), [ | 95 | this.append(this.element(), [ |
99 | {tag:'h2', html:"Direct logins"}, | 96 | {tag:'h2', html:"Direct logins"}, |
100 | {tag:'fieldset', id:this.getId('directLogins'), children:MochiKit.Base.map(function (aDirectLoginData) { | 97 | {tag:'fieldset', id:this.getId('directLogins'), children:MochiKit.Base.map(function (aDirectLoginData) { |
101 | return {tag:'div', cls:'row', id:('directLogin_' + aDirectLoginData['_reference']), children:[ | 98 | return {tag:'div', cls:'row', id:('directLogin_' + aDirectLoginData['_reference']), children:[ |
102 | {tag:'img', cls:'favicon', src:aDirectLoginData['favicon']}, | 99 | {tag:'img', cls:'favicon', src:aDirectLoginData['favicon']}, |
103 | // {tag:'input', cls:'directLogin', disabled:'disabled', type:'text', name:aDirectLoginData['label'], value:aDirectLoginData['label']} | 100 | // {tag:'input', cls:'directLogin', disabled:'disabled', type:'text', name:aDirectLoginData['label'], value:aDirectLoginData['label']} |
104 | {tag:'span', cls:'directLogin', html:aDirectLoginData['label']} | 101 | {tag:'span', cls:'directLogin', html:aDirectLoginData['label']} |
105 | ]} | 102 | ]} |
106 | }, someData['directLogins'])} | 103 | }, someData['directLogins'])} |
107 | ]); | 104 | ]); |
108 | 105 | ||
109 | MochiKit.Base.map(MochiKit.Base.bind(function (aRowNode) { | 106 | MochiKit.Base.map(MochiKit.Base.bind(function (aRowNode) { |
110 | MochiKit.Signal.connect(aRowNode, 'onclick', this, 'directLoginClickHandler'); | 107 | MochiKit.Signal.connect(aRowNode, 'onclick', this, 'directLoginClickHandler'); |
111 | }, this), | 108 | }, this), |
112 | MochiKit.Selector.findChildElements(this.getElement('directLogins'), ['div.row']) | 109 | MochiKit.Selector.findChildElements(this.getElement('directLogins'), ['div.row']) |
113 | ) | 110 | ) |
114 | }; | 111 | }; |
115 | 112 | ||
116 | if (someData['notes'] != '') { | 113 | if (someData['notes'] != '') { |
117 | this.append(this.element(), [ | 114 | this.append(this.element(), [ |
118 | {tag:'h2', html:"Notes"}, | 115 | {tag:'h2', html:"Notes"}, |
119 | {tag:'fieldset', id:this.getId('fieldset'), children:[ | 116 | {tag:'fieldset', id:this.getId('fieldset'), children:[ |
120 | {tag:'div', cls:'row notes', children:[ | 117 | {tag:'div', cls:'row notes', children:[ |
diff --git a/frontend/gamma/js/Clipperz/PM/UI/iPhone/Components/CardList.js b/frontend/gamma/js/Clipperz/PM/UI/iPhone/Components/CardList.js index 770f983..c3f2701 100644 --- a/frontend/gamma/js/Clipperz/PM/UI/iPhone/Components/CardList.js +++ b/frontend/gamma/js/Clipperz/PM/UI/iPhone/Components/CardList.js | |||
@@ -1,120 +1,117 @@ | |||
1 | /* | 1 | /* |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | */ | 24 | */ |
28 | 25 | ||
29 | Clipperz.Base.module('Clipperz.PM.UI.iPhone.Components'); | 26 | Clipperz.Base.module('Clipperz.PM.UI.iPhone.Components'); |
30 | 27 | ||
31 | Clipperz.PM.UI.iPhone.Components.CardList = function(args) { | 28 | Clipperz.PM.UI.iPhone.Components.CardList = function(args) { |
32 | args = args || {}; | 29 | args = args || {}; |
33 | 30 | ||
34 | Clipperz.PM.UI.iPhone.Components.CardList.superclass.constructor.apply(this, arguments); | 31 | Clipperz.PM.UI.iPhone.Components.CardList.superclass.constructor.apply(this, arguments); |
35 | 32 | ||
36 | this._cardDetail = null; | 33 | this._cardDetail = null; |
37 | 34 | ||
38 | return this; | 35 | return this; |
39 | } | 36 | } |
40 | 37 | ||
41 | //============================================================================= | 38 | //============================================================================= |
42 | 39 | ||
43 | Clipperz.Base.extend(Clipperz.PM.UI.iPhone.Components.CardList, Clipperz.PM.UI.Common.Components.BaseComponent, { | 40 | Clipperz.Base.extend(Clipperz.PM.UI.iPhone.Components.CardList, Clipperz.PM.UI.Common.Components.BaseComponent, { |
44 | 41 | ||
45 | //------------------------------------------------------------------------- | 42 | //------------------------------------------------------------------------- |
46 | 43 | ||
47 | 'toString': function () { | 44 | 'toString': function () { |
48 | return "Clipperz.PM.UI.iPhone.Components.CardList component"; | 45 | return "Clipperz.PM.UI.iPhone.Components.CardList component"; |
49 | }, | 46 | }, |
50 | 47 | ||
51 | //------------------------------------------------------------------------- | 48 | //------------------------------------------------------------------------- |
52 | 49 | ||
53 | 'renderSelf': function(/*aContainer, aPosition*/) { | 50 | 'renderSelf': function(/*aContainer, aPosition*/) { |
54 | this.append(this.element(), [ | 51 | this.append(this.element(), [ |
55 | {tag:'div', cls:'toolbar', id:'toolbar', children:[ | 52 | {tag:'div', cls:'toolbar', id:'toolbar', children:[ |
56 | {tag:'h1', id:'pageTitle', html:"cards"}, | 53 | {tag:'h1', id:'pageTitle', html:"cards"}, |
57 | {tag:'a', id:'backButton', cls:'button', href:'#', html:"cards"} | 54 | {tag:'a', id:'backButton', cls:'button', href:'#', html:"cards"} |
58 | ]}, | 55 | ]}, |
59 | {tag:'div', cls:'cardList', id:this.getId('cardList'), children:[ | 56 | {tag:'div', cls:'cardList', id:this.getId('cardList'), children:[ |
60 | {tag:'form', title:'search', cls:'panel cardListSearchForm', id:this.getId('cardListSearchForm'), children:[ | 57 | {tag:'form', title:'search', cls:'panel cardListSearchForm', id:this.getId('cardListSearchForm'), children:[ |
61 | {tag:'input', type:'search', name:'search', value:"", placeholder:"search", id:this.getId('searchField')} | 58 | {tag:'input', type:'search', name:'search', value:"", placeholder:"search", id:this.getId('searchField')} |
62 | ]}, | 59 | ]}, |
63 | {tag:'ul', cls:'panel cardListPanel', id:this.getId('cardListPanel'), children:[]} | 60 | {tag:'ul', cls:'panel cardListPanel', id:this.getId('cardListPanel'), children:[]} |
64 | ]}, | 61 | ]}, |
65 | {tag:'div', cls:'panel cardDetailPanel', id:this.getId('cardDetail')} | 62 | {tag:'div', cls:'panel cardDetailPanel', id:this.getId('cardDetail')} |
66 | ]); | 63 | ]); |
67 | 64 | ||
68 | MochiKit.Signal.connect(this.getElement('cardListSearchForm'), 'onsubmit', this,'searchHandler'); | 65 | MochiKit.Signal.connect(this.getElement('cardListSearchForm'), 'onsubmit', this,'searchHandler'); |
69 | MochiKit.Signal.connect(this.getElement('cardListSearchForm'), 'onkeydown', this,'searchHandler'); | 66 | MochiKit.Signal.connect(this.getElement('cardListSearchForm'), 'onkeydown', this,'searchHandler'); |
70 | MochiKit.Signal.connect(this.getElement('cardListSearchForm'), 'onkeyup', this,'searchHandler'); | 67 | MochiKit.Signal.connect(this.getElement('cardListSearchForm'), 'onkeyup', this,'searchHandler'); |
71 | 68 | ||
72 | MochiKit.Signal.connect(this.getElement('cardListPanel'), 'onclick', this,'cardListClickHandler'); | 69 | MochiKit.Signal.connect(this.getElement('cardListPanel'), 'onclick', this,'cardListClickHandler'); |
73 | MochiKit.Signal.connect('backButton', 'onclick', this,'backButtonClickHandler'); | 70 | MochiKit.Signal.connect('backButton', 'onclick', this,'backButtonClickHandler'); |
74 | 71 | ||
75 | MochiKit.Style.hideElement('backButton'); | 72 | MochiKit.Style.hideElement('backButton'); |
76 | MochiKit.Style.hideElement(this.getElement('cardDetail')); | 73 | MochiKit.Style.hideElement(this.getElement('cardDetail')); |
77 | }, | 74 | }, |
78 | 75 | ||
79 | //------------------------------------------------------------------------- | 76 | //------------------------------------------------------------------------- |
80 | 77 | ||
81 | 'searchHandler': function (anEvent) { | 78 | 'searchHandler': function (anEvent) { |
82 | if ((typeof(anEvent.key()) != 'undefined') && (anEvent.key().string == 'KEY_ENTER')) { //RETURN | 79 | if ((typeof(anEvent.key()) != 'undefined') && (anEvent.key().string == 'KEY_ENTER')) { //RETURN |
83 | anEvent.preventDefault(); | 80 | anEvent.preventDefault(); |
84 | } else { | 81 | } else { |
85 | if ((typeof(anEvent.key()) != 'undefined') && (anEvent.key().string == 'KEY_ESCAPE')) { | 82 | if ((typeof(anEvent.key()) != 'undefined') && (anEvent.key().string == 'KEY_ESCAPE')) { |
86 | anEvent.target().value = ""; | 83 | anEvent.target().value = ""; |
87 | } | 84 | } |
88 | 85 | ||
89 | if (anEvent.type() == 'keyup') { | 86 | if (anEvent.type() == 'keyup') { |
90 | MochiKit.Signal.signal(this, 'searchEvent', anEvent.target().value); | 87 | MochiKit.Signal.signal(this, 'searchEvent', anEvent.target().value); |
91 | } | 88 | } |
92 | } | 89 | } |
93 | }, | 90 | }, |
94 | 91 | ||
95 | //------------------------------------------------------------------------- | 92 | //------------------------------------------------------------------------- |
96 | 93 | ||
97 | 'update': function (someObjects) { | 94 | 'update': function (someObjects) { |
98 | varcardListPanel; | 95 | varcardListPanel; |
99 | var i,c; | 96 | var i,c; |
100 | 97 | ||
101 | cardListPanel = this.getElement('cardListPanel'); | 98 | cardListPanel = this.getElement('cardListPanel'); |
102 | cardListPanel.innerHTML = ''; | 99 | cardListPanel.innerHTML = ''; |
103 | 100 | ||
104 | c = someObjects.length; | 101 | c = someObjects.length; |
105 | 102 | ||
106 | for (i=0; i<c; i++) { | 103 | for (i=0; i<c; i++) { |
107 | this.append(cardListPanel, {tag:'li', cls:'cardListItem', id:('cardListItem_' + someObjects[i]['_reference']), children:[ | 104 | this.append(cardListPanel, {tag:'li', cls:'cardListItem', id:('cardListItem_' + someObjects[i]['_reference']), children:[ |
108 | {tag:'img', src:(someObjects[i]['favicon'] ? someObjects[i]['favicon'] : 'data:application/octet-stream;charset=utf-8;base64,AAABAAEAFxcAAAEAGAD8BgAAFgAAACgAAAAXAAAALgAAAAEAGAAAAAAAAAAAABIXAAASFwAAAAAAAAAAAAD///////////////////////////////////////////////////////////////////////////////////////////9zAC////////////////////////////////////////////////////////////////////////////////////////////9pAG////////////////////////////////////////////////////////////////////////////////////////////9rAC////////////////////////////////////////////////////////////////////////////////////////////9yAHP////////////////////////IyMizs7O6urrq6ur////////////Ozs6zs7Ozs7Pq6ur///////////////////////8AAAD////////////////////V1dWXl5eXl5eXl5elpaX4+Pj////Ozs6Xl5eXl5eXl5eenp7///////////////////////8AAAD////////////////////Ozs6Xl5eXl5eXl5eXl5fBwcHq6uqenp6Xl5eXl5eXl5eXl5f///////////////////////8AAAD////////////////////j4+OXl5eXl5eXl5eXl5eXl5elpaWXl5eXl5eXl5eXl5ezs7P///////////////////////8AAAD////////////////////////IyMiXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eenp7x8fH////////////////////////////////////////////////////4+PilpaWXl5eXl5eXl5eXl5eXl5eXl5eXl5fOzs7////////////////////////////////////////////////////////q6uq6urqXl5eXl5eXl5eXl5eXl5eXl5eenp7V1dX4+Pj///////////////////////8AAAD////////////4+PjOzs6lpaWXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5e6urrj4+P///////////////8AAAD////////////BwcGXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5fx8fH///////////8AAAD///////////+zs7OXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5fj4+P///////////8AAAD////////////IyMiXl5eXl5eXl5eXl5e6urqXl5eXl5eXl5eXl5esrKylpaWXl5eXl5eXl5eenp7x8fH///////////8AAAD////////////////Ozs7Ozs7V1dX4+Pj///+Xl5eXl5eXl5eXl5fOzs7////q6urOzs7Ozs7q6ur///////////////8AAAD///////////////////////////////////+Xl5eXl5eXl5eXl5fOzs7///////////////////////////////////8AAAD///////////////////////////////////+Xl5eXl5eXl5eXl5fOzs7///////////////////////////////////8AAAD///////////////////////////////////+Xl5eXl5eXl5eXl5fOzs7///////////////////////////////////8AAAD////////////////////////////////////IyMiXl5eXl5eenp7x8fH///////////////////////////////////8AAAD////////////////////////////////////////j4+Pj4+Px8fH///////////////////////////////////////8AAAD///////////////////////////////////////////////////////////////////////////////////////////8AAAD///////////////////////////////////////////////////////////////////////////////////////////8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAo=')}, | 105 | {tag:'img', src:(someObjects[i]['favicon'] ? someObjects[i]['favicon'] : 'data:application/octet-stream;charset=utf-8;base64,AAABAAEAFxcAAAEAGAD8BgAAFgAAACgAAAAXAAAALgAAAAEAGAAAAAAAAAAAABIXAAASFwAAAAAAAAAAAAD///////////////////////////////////////////////////////////////////////////////////////////9zAC////////////////////////////////////////////////////////////////////////////////////////////9pAG////////////////////////////////////////////////////////////////////////////////////////////9rAC////////////////////////////////////////////////////////////////////////////////////////////9yAHP////////////////////////IyMizs7O6urrq6ur////////////Ozs6zs7Ozs7Pq6ur///////////////////////8AAAD////////////////////V1dWXl5eXl5eXl5elpaX4+Pj////Ozs6Xl5eXl5eXl5eenp7///////////////////////8AAAD////////////////////Ozs6Xl5eXl5eXl5eXl5fBwcHq6uqenp6Xl5eXl5eXl5eXl5f///////////////////////8AAAD////////////////////j4+OXl5eXl5eXl5eXl5eXl5elpaWXl5eXl5eXl5eXl5ezs7P///////////////////////8AAAD////////////////////////IyMiXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eenp7x8fH////////////////////////////////////////////////////4+PilpaWXl5eXl5eXl5eXl5eXl5eXl5eXl5fOzs7////////////////////////////////////////////////////////q6uq6urqXl5eXl5eXl5eXl5eXl5eXl5eenp7V1dX4+Pj///////////////////////8AAAD////////////4+PjOzs6lpaWXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5e6urrj4+P///////////////8AAAD////////////BwcGXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5fx8fH///////////8AAAD///////////+zs7OXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5fj4+P///////////8AAAD////////////IyMiXl5eXl5eXl5eXl5e6urqXl5eXl5eXl5eXl5esrKylpaWXl5eXl5eXl5eenp7x8fH///////////8AAAD////////////////Ozs7Ozs7V1dX4+Pj///+Xl5eXl5eXl5eXl5fOzs7////q6urOzs7Ozs7q6ur///////////////8AAAD///////////////////////////////////+Xl5eXl5eXl5eXl5fOzs7///////////////////////////////////8AAAD///////////////////////////////////+Xl5eXl5eXl5eXl5fOzs7///////////////////////////////////8AAAD///////////////////////////////////+Xl5eXl5eXl5eXl5fOzs7///////////////////////////////////8AAAD////////////////////////////////////IyMiXl5eXl5eenp7x8fH///////////////////////////////////8AAAD////////////////////////////////////////j4+Pj4+Px8fH///////////////////////////////////////8AAAD///////////////////////////////////////////////////////////////////////////////////////////8AAAD///////////////////////////////////////////////////////////////////////////////////////////8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAo=')}, |
109 | {tag:'a', id:('cardListReference_' + someObjects[i]['_reference']), href:'#', html:someObjects[i]['label']} | 106 | {tag:'a', id:('cardListReference_' + someObjects[i]['_reference']), href:'#', html:someObjects[i]['label']} |
110 | ]}) | 107 | ]}) |
111 | 108 | ||
112 | MochiKit.Signal.connect('cardListItem_' + someObjects[i]['_reference'], 'onclick', this, 'cardListClickHandler'); | 109 | MochiKit.Signal.connect('cardListItem_' + someObjects[i]['_reference'], 'onclick', this, 'cardListClickHandler'); |
113 | } | 110 | } |
114 | 111 | ||
115 | }, | 112 | }, |
116 | 113 | ||
117 | 'cardListClickHandler': function (anEvent) { | 114 | 'cardListClickHandler': function (anEvent) { |
118 | anEvent.preventDefault(); | 115 | anEvent.preventDefault(); |
119 | 116 | ||
120 | if (/(cardListReference_|cardListItem_)/.test(anEvent.target().id)) { | 117 | if (/(cardListReference_|cardListItem_)/.test(anEvent.target().id)) { |
diff --git a/frontend/gamma/js/Clipperz/PM/UI/iPhone/Components/LoginForm.js b/frontend/gamma/js/Clipperz/PM/UI/iPhone/Components/LoginForm.js index eec83b0..5341878 100644 --- a/frontend/gamma/js/Clipperz/PM/UI/iPhone/Components/LoginForm.js +++ b/frontend/gamma/js/Clipperz/PM/UI/iPhone/Components/LoginForm.js | |||
@@ -1,120 +1,117 @@ | |||
1 | /* | 1 | /* |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | */ | 24 | */ |
28 | 25 | ||
29 | Clipperz.Base.module('Clipperz.PM.UI.iPhone.Components'); | 26 | Clipperz.Base.module('Clipperz.PM.UI.iPhone.Components'); |
30 | 27 | ||
31 | Clipperz.PM.UI.iPhone.Components.LoginForm = function(args) { | 28 | Clipperz.PM.UI.iPhone.Components.LoginForm = function(args) { |
32 | args = args || {}; | 29 | args = args || {}; |
33 | 30 | ||
34 | Clipperz.PM.UI.iPhone.Components.LoginForm.superclass.constructor.apply(this, arguments); | 31 | Clipperz.PM.UI.iPhone.Components.LoginForm.superclass.constructor.apply(this, arguments); |
35 | 32 | ||
36 | return this; | 33 | return this; |
37 | } | 34 | } |
38 | 35 | ||
39 | //============================================================================= | 36 | //============================================================================= |
40 | 37 | ||
41 | Clipperz.Base.extend(Clipperz.PM.UI.iPhone.Components.LoginForm, Clipperz.PM.UI.Common.Components.BaseComponent, { | 38 | Clipperz.Base.extend(Clipperz.PM.UI.iPhone.Components.LoginForm, Clipperz.PM.UI.Common.Components.BaseComponent, { |
42 | 39 | ||
43 | //------------------------------------------------------------------------- | 40 | //------------------------------------------------------------------------- |
44 | 41 | ||
45 | 'toString': function () { | 42 | 'toString': function () { |
46 | return "Clipperz.PM.UI.iPhone.Components.LoginForm component"; | 43 | return "Clipperz.PM.UI.iPhone.Components.LoginForm component"; |
47 | }, | 44 | }, |
48 | 45 | ||
49 | //------------------------------------------------------------------------- | 46 | //------------------------------------------------------------------------- |
50 | 47 | ||
51 | 'focusOnUsername': function () { | 48 | 'focusOnUsername': function () { |
52 | this.getElement('username').focus(); | 49 | this.getElement('username').focus(); |
53 | }, | 50 | }, |
54 | 51 | ||
55 | //------------------------------------------------------------------------- | 52 | //------------------------------------------------------------------------- |
56 | 53 | ||
57 | 'username': function () { | 54 | 'username': function () { |
58 | return this.getElement('username').value; | 55 | return this.getElement('username').value; |
59 | }, | 56 | }, |
60 | 57 | ||
61 | 'passphrase': function () { | 58 | 'passphrase': function () { |
62 | return this.getElement('passphrase').value; | 59 | return this.getElement('passphrase').value; |
63 | }, | 60 | }, |
64 | 61 | ||
65 | //------------------------------------------------------------------------- | 62 | //------------------------------------------------------------------------- |
66 | 63 | ||
67 | 'renderSelf': function(/*aContainer, aPosition*/) { | 64 | 'renderSelf': function(/*aContainer, aPosition*/) { |
68 | this.append(this.element(), [ | 65 | this.append(this.element(), [ |
69 | {tag:'div', cls:'toolbar iPhoneClipperzToolbar', children:[ | 66 | {tag:'div', cls:'toolbar iPhoneClipperzToolbar', children:[ |
70 | {tag:'h1', id:'pageTitle', html:'Clipperz'}, | 67 | {tag:'h1', id:'pageTitle', html:'Clipperz'}, |
71 | {tag:'a', id:'backButton', cls:'button', href:'#', html:"back"} | 68 | {tag:'a', id:'backButton', cls:'button', href:'#', html:"back"} |
72 | ]}, | 69 | ]}, |
73 | {tag:'form', title:'Theaters', cls:'panel toolbarlessPanel loginForm', id:this.getId('loginFormPanel'), children:[ | 70 | {tag:'form', title:'Theaters', cls:'panel toolbarlessPanel loginForm', id:this.getId('loginFormPanel'), children:[ |
74 | {tag:'fieldset', id:this.getId('fieldset'), children:[ | 71 | {tag:'fieldset', id:this.getId('fieldset'), children:[ |
75 | {tag:'div', cls:'row', children:[ | 72 | {tag:'div', cls:'row', children:[ |
76 | {tag:'label', html:"username"}, | 73 | {tag:'label', html:"username"}, |
77 | {tag:'input', type:'text', name:'username', value:"", autocorrect:'off', autocapitalize:'off', id:this.getId('username')} | 74 | {tag:'input', type:'text', name:'username', value:"", autocorrect:'off', autocapitalize:'off', id:this.getId('username')} |
78 | ]}, | 75 | ]}, |
79 | {tag:'div', cls:'row', children:[ | 76 | {tag:'div', cls:'row', children:[ |
80 | {tag:'label', html:"passphrase"}, | 77 | {tag:'label', html:"passphrase"}, |
81 | {tag:'input', type:'password', name:'passphrase', value:"", id:this.getId('passphrase')} | 78 | {tag:'input', type:'password', name:'passphrase', value:"", id:this.getId('passphrase')} |
82 | ]} | 79 | ]} |
83 | ]}, | 80 | ]}, |
84 | {tag:'a', cls:'whiteButton', type:'submit', href:'#', html:"Login", id:this.getId('submit')} | 81 | {tag:'a', cls:'whiteButton', type:'submit', href:'#', html:"Login", id:this.getId('submit')} |
85 | ]}, | 82 | ]}, |
86 | {tag:'div', cls:'panel toolbarlessPanel loginProgressPanel', id:this.getId('loginProgressPanel'), children:[ | 83 | {tag:'div', cls:'panel toolbarlessPanel loginProgressPanel', id:this.getId('loginProgressPanel'), children:[ |
87 | {tag:'div', id:this.getId('progressBar')} //, | 84 | {tag:'div', id:this.getId('progressBar')} //, |
88 | // {tag:'a', cls:'whiteButton', type:'submit', href:'#', html:"Cancel", id:this.getId('cancel')} | 85 | // {tag:'a', cls:'whiteButton', type:'submit', href:'#', html:"Cancel", id:this.getId('cancel')} |
89 | ]}, | 86 | ]}, |
90 | {tag:'div', cls:'panel loginErrorPanel', id:this.getId('loginErrorPanel'), children:[ | 87 | {tag:'div', cls:'panel loginErrorPanel', id:this.getId('loginErrorPanel'), children:[ |
91 | {tag:'div', cls:'errorMessage', id:this.getId('errorMessageBox'), children:[ | 88 | {tag:'div', cls:'errorMessage', id:this.getId('errorMessageBox'), children:[ |
92 | {tag:'h2', id:this.getId('errorMessage'), html:"Login failed"} | 89 | {tag:'h2', id:this.getId('errorMessage'), html:"Login failed"} |
93 | ]} | 90 | ]} |
94 | ]} | 91 | ]} |
95 | ]); | 92 | ]); |
96 | 93 | ||
97 | MochiKit.Signal.connect(this.getElement('submit'), 'onclick',this, 'submitHandler'); | 94 | MochiKit.Signal.connect(this.getElement('submit'), 'onclick',this, 'submitHandler'); |
98 | MochiKit.Signal.connect(this.getElement('loginFormPanel'), 'onsubmit',this, 'submitHandler'); | 95 | MochiKit.Signal.connect(this.getElement('loginFormPanel'), 'onsubmit',this, 'submitHandler'); |
99 | 96 | ||
100 | // MochiKit.Signal.connect(this.getElement('cancel'), 'onclick',this, 'cancelHandler'); | 97 | // MochiKit.Signal.connect(this.getElement('cancel'), 'onclick',this, 'cancelHandler'); |
101 | MochiKit.Signal.connect('backButton', 'onclick',this, 'backHandler'); | 98 | MochiKit.Signal.connect('backButton', 'onclick',this, 'backHandler'); |
102 | 99 | ||
103 | this.addComponent(new Clipperz.PM.UI.Common.Components.ProgressBar({'element':this.getElement('progressBar')})); | 100 | this.addComponent(new Clipperz.PM.UI.Common.Components.ProgressBar({'element':this.getElement('progressBar')})); |
104 | 101 | ||
105 | // MochiKit.Style.hideElement(this.getElement('errorMessage')); | 102 | // MochiKit.Style.hideElement(this.getElement('errorMessage')); |
106 | 103 | ||
107 | this.showLoginForm(); | 104 | this.showLoginForm(); |
108 | // MochiKit.Async.callLater(0.2, MochiKit.Base.method(this, 'focusOnUsername')); | 105 | // MochiKit.Async.callLater(0.2, MochiKit.Base.method(this, 'focusOnUsername')); |
109 | }, | 106 | }, |
110 | 107 | ||
111 | //------------------------------------------------------------------------- | 108 | //------------------------------------------------------------------------- |
112 | 109 | ||
113 | 'showLoginForm': function () { | 110 | 'showLoginForm': function () { |
114 | MochiKit.Style.showElement(this.getElement('loginFormPanel')); | 111 | MochiKit.Style.showElement(this.getElement('loginFormPanel')); |
115 | MochiKit.Style.hideElement(this.getElement('loginProgressPanel')); | 112 | MochiKit.Style.hideElement(this.getElement('loginProgressPanel')); |
116 | MochiKit.Style.hideElement(this.getElement('loginErrorPanel')); | 113 | MochiKit.Style.hideElement(this.getElement('loginErrorPanel')); |
117 | MochiKit.Style.hideElement('backButton'); | 114 | MochiKit.Style.hideElement('backButton'); |
118 | }, | 115 | }, |
119 | 116 | ||
120 | 'slideInLoginForm': function () { | 117 | 'slideInLoginForm': function () { |
diff --git a/frontend/gamma/js/Clipperz/PM/UI/iPhone/Controllers/MainController.js b/frontend/gamma/js/Clipperz/PM/UI/iPhone/Controllers/MainController.js index b43d877..3fcaae1 100644 --- a/frontend/gamma/js/Clipperz/PM/UI/iPhone/Controllers/MainController.js +++ b/frontend/gamma/js/Clipperz/PM/UI/iPhone/Controllers/MainController.js | |||
@@ -1,120 +1,117 @@ | |||
1 | /* | 1 | /* |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | */ | 24 | */ |
28 | 25 | ||
29 | Clipperz.Base.module('Clipperz.PM.UI.iPhone.Controllers'); | 26 | Clipperz.Base.module('Clipperz.PM.UI.iPhone.Controllers'); |
30 | 27 | ||
31 | //Some parts of this controller have been derived from the iUI library. | 28 | //Some parts of this controller have been derived from the iUI library. |
32 | 29 | ||
33 | Clipperz.PM.UI.iPhone.Controllers.MainController = function() { | 30 | Clipperz.PM.UI.iPhone.Controllers.MainController = function() { |
34 | this._loginForm = null; | 31 | this._loginForm = null; |
35 | this._cardList = null; | 32 | this._cardList = null; |
36 | this._cachedValues =null; | 33 | this._cachedValues =null; |
37 | this._user = null; | 34 | this._user = null; |
38 | 35 | ||
39 | if (typeof window.onorientationchange == 'object') { | 36 | if (typeof window.onorientationchange == 'object') { |
40 | MochiKit.Signal.connect(window, 'onorientationchange', this, 'orientationChangeHandler'); | 37 | MochiKit.Signal.connect(window, 'onorientationchange', this, 'orientationChangeHandler'); |
41 | MochiKit.Async.callLater(0, MochiKit.Base.method(this, 'orientationChangeHandler')); | 38 | MochiKit.Async.callLater(0, MochiKit.Base.method(this, 'orientationChangeHandler')); |
42 | } else { | 39 | } else { |
43 | this.setOrientation('portrait'); | 40 | this.setOrientation('portrait'); |
44 | // this.setOrientation('landscape'); | 41 | // this.setOrientation('landscape'); |
45 | } | 42 | } |
46 | 43 | ||
47 | this.addMetaTag('viewport', 'width=devicewidth; initial-scale=1.0; maximum-scale=1.0; user-scalable=0;'); | 44 | this.addMetaTag('viewport', 'width=devicewidth; initial-scale=1.0; maximum-scale=1.0; user-scalable=0;'); |
48 | this.addMetaTag('apple-mobile-web-app-capable', 'yes'); | 45 | this.addMetaTag('apple-mobile-web-app-capable', 'yes'); |
49 | this.addMetaTag('apple-mobile-web-app-status-bar-style', 'black'); | 46 | this.addMetaTag('apple-mobile-web-app-status-bar-style', 'black'); |
50 | 47 | ||
51 | this.addLinkTag('apple-touch-icon', 'data:image/png;charset=utf-8;base64,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'); | 48 | this.addLinkTag('apple-touch-icon', 'data:image/png;charset=utf-8;base64,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'); |
52 | //this.addLinkTag('apple-touch-startup-image', 'default.png'); | 49 | //this.addLinkTag('apple-touch-startup-image', 'default.png'); |
53 | 50 | ||
54 | // if (!window.navigator.standalone)// not running as an installed app | 51 | // if (!window.navigator.standalone)// not running as an installed app |
55 | 52 | ||
56 | MochiKit.Signal.connect(Clipperz.Signal.NotificationCenter, 'selectedDirectLogin', this, 'selectedDirectLoginHandler'); | 53 | MochiKit.Signal.connect(Clipperz.Signal.NotificationCenter, 'selectedDirectLogin', this, 'selectedDirectLoginHandler'); |
57 | 54 | ||
58 | MochiKit.DOM.addElementClass(document.body, 'iPhone'); | 55 | MochiKit.DOM.addElementClass(document.body, 'iPhone'); |
59 | return this; | 56 | return this; |
60 | } | 57 | } |
61 | 58 | ||
62 | MochiKit.Base.update(Clipperz.PM.UI.iPhone.Controllers.MainController.prototype, { | 59 | MochiKit.Base.update(Clipperz.PM.UI.iPhone.Controllers.MainController.prototype, { |
63 | 60 | ||
64 | 'toString': function () { | 61 | 'toString': function () { |
65 | return "Clipperz.PM.UI.iPhone.Controllers.MainController"; | 62 | return "Clipperz.PM.UI.iPhone.Controllers.MainController"; |
66 | }, | 63 | }, |
67 | 64 | ||
68 | //========================================================================= | 65 | //========================================================================= |
69 | 66 | ||
70 | 'user': function () { | 67 | 'user': function () { |
71 | return this._user; | 68 | return this._user; |
72 | }, | 69 | }, |
73 | 70 | ||
74 | 'setUser': function (aValue) { | 71 | 'setUser': function (aValue) { |
75 | this._user = aValue; | 72 | this._user = aValue; |
76 | }, | 73 | }, |
77 | 74 | ||
78 | //========================================================================= | 75 | //========================================================================= |
79 | 76 | ||
80 | 'loginForm': function() { | 77 | 'loginForm': function() { |
81 | if (this._loginForm == null) { | 78 | if (this._loginForm == null) { |
82 | MochiKit.DOM.removeElement('mainDiv'); | 79 | MochiKit.DOM.removeElement('mainDiv'); |
83 | this._loginForm = new Clipperz.PM.UI.iPhone.Components.LoginForm({element:MochiKit.DOM.currentDocument().body}); | 80 | this._loginForm = new Clipperz.PM.UI.iPhone.Components.LoginForm({element:MochiKit.DOM.currentDocument().body}); |
84 | MochiKit.Signal.connect(this._loginForm, 'doLogin', this, 'doLoginHandler') | 81 | MochiKit.Signal.connect(this._loginForm, 'doLogin', this, 'doLoginHandler') |
85 | } | 82 | } |
86 | 83 | ||
87 | return this._loginForm; | 84 | return this._loginForm; |
88 | }, | 85 | }, |
89 | 86 | ||
90 | 'removeLoginForm': function () { | 87 | 'removeLoginForm': function () { |
91 | if (this._loginForm != null) { | 88 | if (this._loginForm != null) { |
92 | this._loginForm.remove(); | 89 | this._loginForm.remove(); |
93 | this._loginForm = null; | 90 | this._loginForm = null; |
94 | } | 91 | } |
95 | }, | 92 | }, |
96 | 93 | ||
97 | //----------------------------------------------------------------------------- | 94 | //----------------------------------------------------------------------------- |
98 | 95 | ||
99 | 'cardList': function () { | 96 | 'cardList': function () { |
100 | if (this._cardList == null) { | 97 | if (this._cardList == null) { |
101 | this._cardList = new Clipperz.PM.UI.iPhone.Components.CardList({element:MochiKit.DOM.currentDocument().body}); | 98 | this._cardList = new Clipperz.PM.UI.iPhone.Components.CardList({element:MochiKit.DOM.currentDocument().body}); |
102 | MochiKit.Signal.connect(this._cardList, 'searchEvent',this, 'searchEventHandler') | 99 | MochiKit.Signal.connect(this._cardList, 'searchEvent',this, 'searchEventHandler') |
103 | MochiKit.Signal.connect(this._cardList, 'selectedCard',this, 'selecetedCardHandler') | 100 | MochiKit.Signal.connect(this._cardList, 'selectedCard',this, 'selecetedCardHandler') |
104 | } | 101 | } |
105 | 102 | ||
106 | return this._cardList; | 103 | return this._cardList; |
107 | }, | 104 | }, |
108 | 105 | ||
109 | //========================================================================= | 106 | //========================================================================= |
110 | 107 | ||
111 | 'currentWidth': function () { | 108 | 'currentWidth': function () { |
112 | return this._currentWidth; | 109 | return this._currentWidth; |
113 | }, | 110 | }, |
114 | 111 | ||
115 | 'setCurrentWidth': function (aValue) { | 112 | 'setCurrentWidth': function (aValue) { |
116 | this._currentWidth = aValue; | 113 | this._currentWidth = aValue; |
117 | }, | 114 | }, |
118 | 115 | ||
119 | //========================================================================= | 116 | //========================================================================= |
120 | 117 | ||
diff --git a/frontend/gamma/js/Clipperz/Set.js b/frontend/gamma/js/Clipperz/Set.js index 61e0769..7023888 100644 --- a/frontend/gamma/js/Clipperz/Set.js +++ b/frontend/gamma/js/Clipperz/Set.js | |||
@@ -1,120 +1,117 @@ | |||
1 | /* | 1 | /* |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | */ | 24 | */ |
28 | 25 | ||
29 | 26 | ||
30 | if (typeof(Clipperz) == 'undefined') { | 27 | if (typeof(Clipperz) == 'undefined') { |
31 | Clipperz = {}; | 28 | Clipperz = {}; |
32 | } | 29 | } |
33 | 30 | ||
34 | //############################################################################# | 31 | //############################################################################# |
35 | 32 | ||
36 | Clipperz.Set = function(args) { | 33 | Clipperz.Set = function(args) { |
37 | args = args || {}; | 34 | args = args || {}; |
38 | //MochiKit.Base.bindMethods(this); | 35 | //MochiKit.Base.bindMethods(this); |
39 | 36 | ||
40 | if (args.items != null) { | 37 | if (args.items != null) { |
41 | this._items = args.items.slice(); | 38 | this._items = args.items.slice(); |
42 | } else { | 39 | } else { |
43 | this._items = []; | 40 | this._items = []; |
44 | } | 41 | } |
45 | 42 | ||
46 | return this; | 43 | return this; |
47 | } | 44 | } |
48 | 45 | ||
49 | //============================================================================= | 46 | //============================================================================= |
50 | 47 | ||
51 | Clipperz.Set.prototype = MochiKit.Base.update(null, { | 48 | Clipperz.Set.prototype = MochiKit.Base.update(null, { |
52 | 49 | ||
53 | //------------------------------------------------------------------------- | 50 | //------------------------------------------------------------------------- |
54 | 51 | ||
55 | 'toString': function() { | 52 | 'toString': function() { |
56 | return "Clipperz.Set"; | 53 | return "Clipperz.Set"; |
57 | }, | 54 | }, |
58 | 55 | ||
59 | //------------------------------------------------------------------------- | 56 | //------------------------------------------------------------------------- |
60 | 57 | ||
61 | 'items': function() { | 58 | 'items': function() { |
62 | return this._items; | 59 | return this._items; |
63 | }, | 60 | }, |
64 | 61 | ||
65 | //------------------------------------------------------------------------- | 62 | //------------------------------------------------------------------------- |
66 | 63 | ||
67 | 'popAnItem': function() { | 64 | 'popAnItem': function() { |
68 | var result; | 65 | var result; |
69 | 66 | ||
70 | if (this.size() > 0) { | 67 | if (this.size() > 0) { |
71 | result = this.items().pop(); | 68 | result = this.items().pop(); |
72 | } else { | 69 | } else { |
73 | result = null; | 70 | result = null; |
74 | } | 71 | } |
75 | 72 | ||
76 | return result; | 73 | return result; |
77 | }, | 74 | }, |
78 | 75 | ||
79 | //------------------------------------------------------------------------- | 76 | //------------------------------------------------------------------------- |
80 | 77 | ||
81 | 'allItems': function() { | 78 | 'allItems': function() { |
82 | return this.items(); | 79 | return this.items(); |
83 | }, | 80 | }, |
84 | 81 | ||
85 | //------------------------------------------------------------------------- | 82 | //------------------------------------------------------------------------- |
86 | 83 | ||
87 | 'contains': function(anItem) { | 84 | 'contains': function(anItem) { |
88 | return (this.indexOf(anItem) != -1); | 85 | return (this.indexOf(anItem) != -1); |
89 | }, | 86 | }, |
90 | 87 | ||
91 | //------------------------------------------------------------------------- | 88 | //------------------------------------------------------------------------- |
92 | 89 | ||
93 | 'indexOf': function(anItem) { | 90 | 'indexOf': function(anItem) { |
94 | varresult; | 91 | varresult; |
95 | vari, c; | 92 | vari, c; |
96 | 93 | ||
97 | result = -1; | 94 | result = -1; |
98 | 95 | ||
99 | c = this.items().length; | 96 | c = this.items().length; |
100 | for (i=0; (i<c) && (result == -1); i++) { | 97 | for (i=0; (i<c) && (result == -1); i++) { |
101 | if (this.items()[i] === anItem) { | 98 | if (this.items()[i] === anItem) { |
102 | result = i; | 99 | result = i; |
103 | } | 100 | } |
104 | } | 101 | } |
105 | 102 | ||
106 | return result; | 103 | return result; |
107 | }, | 104 | }, |
108 | 105 | ||
109 | //------------------------------------------------------------------------- | 106 | //------------------------------------------------------------------------- |
110 | 107 | ||
111 | 'add': function(anItem) { | 108 | 'add': function(anItem) { |
112 | if (anItem.constructor == Array) { | 109 | if (anItem.constructor == Array) { |
113 | MochiKit.Base.map(MochiKit.Base.bind(this,add, this), anItem); | 110 | MochiKit.Base.map(MochiKit.Base.bind(this,add, this), anItem); |
114 | } else { | 111 | } else { |
115 | if (! this.contains(anItem)) { | 112 | if (! this.contains(anItem)) { |
116 | this.items().push(anItem); | 113 | this.items().push(anItem); |
117 | } | 114 | } |
118 | } | 115 | } |
119 | }, | 116 | }, |
120 | 117 | ||
diff --git a/frontend/gamma/js/Clipperz/Signal.js b/frontend/gamma/js/Clipperz/Signal.js index b82499a..ca3e322 100644 --- a/frontend/gamma/js/Clipperz/Signal.js +++ b/frontend/gamma/js/Clipperz/Signal.js | |||
@@ -1,71 +1,68 @@ | |||
1 | /* | 1 | /* |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | */ | 24 | */ |
28 | 25 | ||
29 | if (typeof(Clipperz) == 'undefined') { Clipperz = {}; } | 26 | if (typeof(Clipperz) == 'undefined') { Clipperz = {}; } |
30 | if (typeof(Clipperz.Signal) == 'undefined') { Clipperz.Signal = {}; } | 27 | if (typeof(Clipperz.Signal) == 'undefined') { Clipperz.Signal = {}; } |
31 | 28 | ||
32 | Clipperz.Signal.VERSION = "0.1"; | 29 | Clipperz.Signal.VERSION = "0.1"; |
33 | Clipperz.Signal.NAME = "Clipperz.Signal"; | 30 | Clipperz.Signal.NAME = "Clipperz.Signal"; |
34 | 31 | ||
35 | MochiKit.Base.update(Clipperz.Signal, { | 32 | MochiKit.Base.update(Clipperz.Signal, { |
36 | 33 | ||
37 | //------------------------------------------------------------------------- | 34 | //------------------------------------------------------------------------- |
38 | 35 | ||
39 | '__repr__': function () { | 36 | '__repr__': function () { |
40 | return "[" + this.NAME + " " + this.VERSION + "]"; | 37 | return "[" + this.NAME + " " + this.VERSION + "]"; |
41 | }, | 38 | }, |
42 | 39 | ||
43 | //------------------------------------------------------------------------- | 40 | //------------------------------------------------------------------------- |
44 | 41 | ||
45 | 'toString': function () { | 42 | 'toString': function () { |
46 | return this.__repr__(); | 43 | return this.__repr__(); |
47 | }, | 44 | }, |
48 | 45 | ||
49 | //------------------------------------------------------------------------- | 46 | //------------------------------------------------------------------------- |
50 | 47 | ||
51 | 'fireNativeEvent': function(element, eventName) { | 48 | 'fireNativeEvent': function(element, eventName) { |
52 | if (element.fireEvent) { | 49 | if (element.fireEvent) { |
53 | // MSIE | 50 | // MSIE |
54 | element.fireEvent(eventName); | 51 | element.fireEvent(eventName); |
55 | } else { | 52 | } else { |
56 | // W3C | 53 | // W3C |
57 | var event; | 54 | var event; |
58 | 55 | ||
59 | event = document.createEvent("HTMLEvents"); | 56 | event = document.createEvent("HTMLEvents"); |
60 | event.initEvent(eventName.replace(/^on/, ""), true, true); | 57 | event.initEvent(eventName.replace(/^on/, ""), true, true); |
61 | element.dispatchEvent(event); | 58 | element.dispatchEvent(event); |
62 | } | 59 | } |
63 | }, | 60 | }, |
64 | 61 | ||
65 | //------------------------------------------------------------------------- | 62 | //------------------------------------------------------------------------- |
66 | __syntaxFix__: "syntax fix" | 63 | __syntaxFix__: "syntax fix" |
67 | 64 | ||
68 | }); | 65 | }); |
69 | 66 | ||
70 | Clipperz.Signal.NotificationCenter = {}; | 67 | Clipperz.Signal.NotificationCenter = {}; |
71 | 68 | ||
diff --git a/frontend/gamma/js/Clipperz/Style.js b/frontend/gamma/js/Clipperz/Style.js index 3717f61..d377893 100644 --- a/frontend/gamma/js/Clipperz/Style.js +++ b/frontend/gamma/js/Clipperz/Style.js | |||
@@ -1,94 +1,91 @@ | |||
1 | /* | 1 | /* |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | */ | 24 | */ |
28 | 25 | ||
29 | if (typeof(Clipperz) == 'undefined') { Clipperz = {}; } | 26 | if (typeof(Clipperz) == 'undefined') { Clipperz = {}; } |
30 | if (typeof(Clipperz.Style) == 'undefined') { Clipperz.Style = {}; } | 27 | if (typeof(Clipperz.Style) == 'undefined') { Clipperz.Style = {}; } |
31 | 28 | ||
32 | Clipperz.Style.VERSION = "0.1"; | 29 | Clipperz.Style.VERSION = "0.1"; |
33 | Clipperz.Style.NAME = "Clipperz.DOM"; | 30 | Clipperz.Style.NAME = "Clipperz.DOM"; |
34 | 31 | ||
35 | MochiKit.Base.update(Clipperz.Style, { | 32 | MochiKit.Base.update(Clipperz.Style, { |
36 | 33 | ||
37 | //------------------------------------------------------------------------- | 34 | //------------------------------------------------------------------------- |
38 | 35 | ||
39 | '__repr__': function () { | 36 | '__repr__': function () { |
40 | return "[" + this.NAME + " " + this.VERSION + "]"; | 37 | return "[" + this.NAME + " " + this.VERSION + "]"; |
41 | }, | 38 | }, |
42 | 39 | ||
43 | //------------------------------------------------------------------------- | 40 | //------------------------------------------------------------------------- |
44 | 41 | ||
45 | 'toString': function () { | 42 | 'toString': function () { |
46 | return this.__repr__(); | 43 | return this.__repr__(); |
47 | }, | 44 | }, |
48 | 45 | ||
49 | //------------------------------------------------------------------------- | 46 | //------------------------------------------------------------------------- |
50 | 47 | ||
51 | 'applyZebraStylesToTable': function(aTable) { | 48 | 'applyZebraStylesToTable': function(aTable) { |
52 | var tbody; | 49 | var tbody; |
53 | var tbodyRows; | 50 | var tbodyRows; |
54 | var i,c; | 51 | var i,c; |
55 | 52 | ||
56 | tbody = MochiKit.DOM.getFirstElementByTagAndClassName('tbody', null, aTable); | 53 | tbody = MochiKit.DOM.getFirstElementByTagAndClassName('tbody', null, aTable); |
57 | tbodyRows = tbody.childNodes; | 54 | tbodyRows = tbody.childNodes; |
58 | // tbodyRows = MochiKit.DOM.getElementsByTagAndClassName('tr', null, tbody) | 55 | // tbodyRows = MochiKit.DOM.getElementsByTagAndClassName('tr', null, tbody) |
59 | c = tbodyRows.length; | 56 | c = tbodyRows.length; |
60 | for (i=0; i<c; i++) { | 57 | for (i=0; i<c; i++) { |
61 | var element; | 58 | var element; |
62 | 59 | ||
63 | element = YAHOO.Element.get(tbodyRows[i]); | 60 | element = YAHOO.Element.get(tbodyRows[i]); |
64 | element.addClass(((i%2 == 0) ? "zebra_odd": "zebra_even")); | 61 | element.addClass(((i%2 == 0) ? "zebra_odd": "zebra_even")); |
65 | element.removeClass(((i%2 == 1) ? "zebra_odd": "zebra_even")); | 62 | element.removeClass(((i%2 == 1) ? "zebra_odd": "zebra_even")); |
66 | } | 63 | } |
67 | }, | 64 | }, |
68 | 65 | ||
69 | //------------------------------------------------------------------------- | 66 | //------------------------------------------------------------------------- |
70 | 67 | ||
71 | 'getSizeAndPosition': function (anElement) { | 68 | 'getSizeAndPosition': function (anElement) { |
72 | var result; | 69 | var result; |
73 | 70 | ||
74 | if (anElement != null) { | 71 | if (anElement != null) { |
75 | result ={ dimensions:MochiKit.Style.getElementDimensions(anElement), position:MochiKit.Style.getElementPosition(anElement)}; | 72 | result ={ dimensions:MochiKit.Style.getElementDimensions(anElement), position:MochiKit.Style.getElementPosition(anElement)}; |
76 | } else { | 73 | } else { |
77 | result ={ dimensions:MochiKit.Style.getViewportDimensions(), position:MochiKit.Style.getViewportPosition()}; | 74 | result ={ dimensions:MochiKit.Style.getViewportDimensions(), position:MochiKit.Style.getViewportPosition()}; |
78 | } | 75 | } |
79 | 76 | ||
80 | return result; | 77 | return result; |
81 | }, | 78 | }, |
82 | 79 | ||
83 | 'setBackgroundGradient': function (anElement, someParameters) { | 80 | 'setBackgroundGradient': function (anElement, someParameters) { |
84 | // background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(#ff9955), to(#ff6622), color-stop(1,#333333)); | 81 | // background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(#ff9955), to(#ff6622), color-stop(1,#333333)); |
85 | // background: -moz-linear-gradient(0% 100% 90deg,#ff6622, #ff9955); | 82 | // background: -moz-linear-gradient(0% 100% 90deg,#ff6622, #ff9955); |
86 | MochiKit.Style.setStyle(anElement, {'background': '-webkit-gradient(linear, 0% 0%, 0% 100%, from(' + someParameters['from'] + '), to(' + someParameters['to'] + '), color-stop(1,#333333))'}); | 83 | MochiKit.Style.setStyle(anElement, {'background': '-webkit-gradient(linear, 0% 0%, 0% 100%, from(' + someParameters['from'] + '), to(' + someParameters['to'] + '), color-stop(1,#333333))'}); |
87 | MochiKit.Style.setStyle(anElement, {'background': '-moz-linear-gradient(0% 100% 90deg,' + someParameters['to'] + ', ' + someParameters['from'] + ')'}); | 84 | MochiKit.Style.setStyle(anElement, {'background': '-moz-linear-gradient(0% 100% 90deg,' + someParameters['to'] + ', ' + someParameters['from'] + ')'}); |
88 | }, | 85 | }, |
89 | 86 | ||
90 | //------------------------------------------------------------------------- | 87 | //------------------------------------------------------------------------- |
91 | __syntaxFix__: "syntax fix" | 88 | __syntaxFix__: "syntax fix" |
92 | 89 | ||
93 | }); | 90 | }); |
94 | 91 | ||
diff --git a/frontend/gamma/js/Clipperz/Visual.js b/frontend/gamma/js/Clipperz/Visual.js index b907d5c..c2da3b7 100644 --- a/frontend/gamma/js/Clipperz/Visual.js +++ b/frontend/gamma/js/Clipperz/Visual.js | |||
@@ -1,120 +1,117 @@ | |||
1 | /* | 1 | /* |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | */ | 24 | */ |
28 | 25 | ||
29 | if (typeof(Clipperz) == 'undefined') { Clipperz = {}; } | 26 | if (typeof(Clipperz) == 'undefined') { Clipperz = {}; } |
30 | if (typeof(Clipperz.Visual) == 'undefined') { Clipperz.Visual = {}; } | 27 | if (typeof(Clipperz.Visual) == 'undefined') { Clipperz.Visual = {}; } |
31 | 28 | ||
32 | Clipperz.Visual.VERSION = "0.1"; | 29 | Clipperz.Visual.VERSION = "0.1"; |
33 | Clipperz.Visual.NAME = "Clipperz.Visual"; | 30 | Clipperz.Visual.NAME = "Clipperz.Visual"; |
34 | 31 | ||
35 | MochiKit.Base.update(Clipperz.Visual, { | 32 | MochiKit.Base.update(Clipperz.Visual, { |
36 | 33 | ||
37 | //------------------------------------------------------------------------- | 34 | //------------------------------------------------------------------------- |
38 | 35 | ||
39 | '__repr__': function () { | 36 | '__repr__': function () { |
40 | return "[" + this.NAME + " " + this.VERSION + "]"; | 37 | return "[" + this.NAME + " " + this.VERSION + "]"; |
41 | }, | 38 | }, |
42 | 39 | ||
43 | //------------------------------------------------------------------------- | 40 | //------------------------------------------------------------------------- |
44 | 41 | ||
45 | 'toString': function () { | 42 | 'toString': function () { |
46 | return this.__repr__(); | 43 | return this.__repr__(); |
47 | }, | 44 | }, |
48 | 45 | ||
49 | //------------------------------------------------------------------------- | 46 | //------------------------------------------------------------------------- |
50 | 47 | ||
51 | 'deferredResize': function (anElement, someOptions) { | 48 | 'deferredResize': function (anElement, someOptions) { |
52 | var deferredResult; | 49 | var deferredResult; |
53 | var moveTransition; | 50 | var moveTransition; |
54 | var scaleTransition; | 51 | var scaleTransition; |
55 | var duration; | 52 | var duration; |
56 | 53 | ||
57 | duration = someOptions.duration || 0.5; | 54 | duration = someOptions.duration || 0.5; |
58 | 55 | ||
59 | deferredResult = new Clipperz.Async.Deferred("Visual.deferredResize", {trace:false}); | 56 | deferredResult = new Clipperz.Async.Deferred("Visual.deferredResize", {trace:false}); |
60 | deferredResult.addCallback(MochiKit.Async.succeed, arguments[arguments.length - 1]); | 57 | deferredResult.addCallback(MochiKit.Async.succeed, arguments[arguments.length - 1]); |
61 | 58 | ||
62 | moveTransition = MochiKit.Visual.Transitions.linear;//MochiKit.Visual.Transitions.sinoidal; | 59 | moveTransition = MochiKit.Visual.Transitions.linear;//MochiKit.Visual.Transitions.sinoidal; |
63 | scaleTransition = MochiKit.Visual.Transitions.linear;//MochiKit.Visual.Transitions.sinoidal; | 60 | scaleTransition = MochiKit.Visual.Transitions.linear;//MochiKit.Visual.Transitions.sinoidal; |
64 | 61 | ||
65 | MochiKit.Style.setElementPosition(anElement, {x:someOptions.from.position.x, y:someOptions.from.position.y }, 'px'); | 62 | MochiKit.Style.setElementPosition(anElement, {x:someOptions.from.position.x, y:someOptions.from.position.y }, 'px'); |
66 | 63 | ||
67 | new MochiKit.Visual.Parallel([ | 64 | new MochiKit.Visual.Parallel([ |
68 | new MochiKit.Visual.Move(anElement, {x:someOptions.to.position.x, y:someOptions.to.position.y, mode:'absolute', transition:moveTransition, sync:true}), | 65 | new MochiKit.Visual.Move(anElement, {x:someOptions.to.position.x, y:someOptions.to.position.y, mode:'absolute', transition:moveTransition, sync:true}), |
69 | new Clipperz.Visual.Resize(anElement, {fromSize:{h:someOptions.from.dimensions.h, w:someOptions.from.dimensions.w}, toSize:{h:someOptions.to.dimensions.h, w:someOptions.to.dimensions.w}, transition:scaleTransition, scaleContent:false, scaleFromCenter:false, restoreAfterFinish:true, sync:true}) | 66 | new Clipperz.Visual.Resize(anElement, {fromSize:{h:someOptions.from.dimensions.h, w:someOptions.from.dimensions.w}, toSize:{h:someOptions.to.dimensions.h, w:someOptions.to.dimensions.w}, transition:scaleTransition, scaleContent:false, scaleFromCenter:false, restoreAfterFinish:true, sync:true}) |
70 | ], {duration:duration, afterFinish:MochiKit.Base.method(deferredResult, 'callback')}) | 67 | ], {duration:duration, afterFinish:MochiKit.Base.method(deferredResult, 'callback')}) |
71 | 68 | ||
72 | return deferredResult; | 69 | return deferredResult; |
73 | }, | 70 | }, |
74 | 71 | ||
75 | //------------------------------------------------------------------------- | 72 | //------------------------------------------------------------------------- |
76 | 73 | ||
77 | 'deferredAnimation': function (anAnimation, someParameters, someOptions) { | 74 | 'deferredAnimation': function (anAnimation, someParameters, someOptions) { |
78 | vardeferredResult; | 75 | vardeferredResult; |
79 | var afterFinishCallback; | 76 | var afterFinishCallback; |
80 | var options; | 77 | var options; |
81 | 78 | ||
82 | deferredResult = new Clipperz.Async.Deferred("Clipperz.Visual.deferredAnimation", {trace:false}); | 79 | deferredResult = new Clipperz.Async.Deferred("Clipperz.Visual.deferredAnimation", {trace:false}); |
83 | deferredResult.addCallback(MochiKit.Async.succeed, arguments[arguments.length - 1]); | 80 | deferredResult.addCallback(MochiKit.Async.succeed, arguments[arguments.length - 1]); |
84 | 81 | ||
85 | if (MochiKit.Base.isUndefinedOrNull(someOptions)) { | 82 | if (MochiKit.Base.isUndefinedOrNull(someOptions)) { |
86 | options = {} | 83 | options = {} |
87 | } else { | 84 | } else { |
88 | options = someOptions; | 85 | options = someOptions; |
89 | } | 86 | } |
90 | 87 | ||
91 | if (MochiKit.Base.isUndefinedOrNull(someOptions['afterFinish'])) { | 88 | if (MochiKit.Base.isUndefinedOrNull(someOptions['afterFinish'])) { |
92 | options['afterFinish'] = MochiKit.Base.noop; | 89 | options['afterFinish'] = MochiKit.Base.noop; |
93 | } | 90 | } |
94 | 91 | ||
95 | MochiKit.Base.update(options, { | 92 | MochiKit.Base.update(options, { |
96 | 'afterFinish': MochiKit.Base.compose(options['afterFinish'], MochiKit.Base.method(deferredResult, 'callback')) | 93 | 'afterFinish': MochiKit.Base.compose(options['afterFinish'], MochiKit.Base.method(deferredResult, 'callback')) |
97 | }); | 94 | }); |
98 | 95 | ||
99 | new anAnimation(someParameters, options); | 96 | new anAnimation(someParameters, options); |
100 | 97 | ||
101 | return deferredResult; | 98 | return deferredResult; |
102 | }, | 99 | }, |
103 | 100 | ||
104 | //------------------------------------------------------------------------- | 101 | //------------------------------------------------------------------------- |
105 | 102 | ||
106 | 'deferredAnimations': function (aSinchronizationType, someAnimations, someOptions) { | 103 | 'deferredAnimations': function (aSinchronizationType, someAnimations, someOptions) { |
107 | var deferredResult; | 104 | var deferredResult; |
108 | varoptions; | 105 | varoptions; |
109 | 106 | ||
110 | deferredResult = new Clipperz.Async.Deferred("Visual.deferredParallelAnimations", {trace:false}); | 107 | deferredResult = new Clipperz.Async.Deferred("Visual.deferredParallelAnimations", {trace:false}); |
111 | deferredResult.addCallback(MochiKit.Async.succeed, arguments[arguments.length - 1]); | 108 | deferredResult.addCallback(MochiKit.Async.succeed, arguments[arguments.length - 1]); |
112 | 109 | ||
113 | options = someOptions; | 110 | options = someOptions; |
114 | if (MochiKit.Base.isUndefinedOrNull(someOptions['afterFinish'])) { | 111 | if (MochiKit.Base.isUndefinedOrNull(someOptions['afterFinish'])) { |
115 | options['afterFinish'] = MochiKit.Base.noop; | 112 | options['afterFinish'] = MochiKit.Base.noop; |
116 | } | 113 | } |
117 | MochiKit.Base.update(options, { | 114 | MochiKit.Base.update(options, { |
118 | 'afterFinish': MochiKit.Base.compose(options['afterFinish'], MochiKit.Base.method(deferredResult, 'callback')) | 115 | 'afterFinish': MochiKit.Base.compose(options['afterFinish'], MochiKit.Base.method(deferredResult, 'callback')) |
119 | }); | 116 | }); |
120 | 117 | ||
diff --git a/frontend/gamma/js/Clipperz/YUI/DomHelper.js b/frontend/gamma/js/Clipperz/YUI/DomHelper.js index dbd8c93..87c74f5 100644 --- a/frontend/gamma/js/Clipperz/YUI/DomHelper.js +++ b/frontend/gamma/js/Clipperz/YUI/DomHelper.js | |||
@@ -1,120 +1,117 @@ | |||
1 | /* | 1 | /* |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | */ | 24 | */ |
28 | 25 | ||
29 | if (typeof(Clipperz) == 'undefined') { Clipperz = {}; } | 26 | if (typeof(Clipperz) == 'undefined') { Clipperz = {}; } |
30 | if (typeof(Clipperz.YUI) == 'undefined') { Clipperz.YUI = {}; } | 27 | if (typeof(Clipperz.YUI) == 'undefined') { Clipperz.YUI = {}; } |
31 | 28 | ||
32 | 29 | ||
33 | /** | 30 | /** |
34 | * @class Clipperz.ext.DomHelper | 31 | * @class Clipperz.ext.DomHelper |
35 | * Utility class for working with DOM and/or Templates. It transparently supports using HTML fragments or DOM. | 32 | * Utility class for working with DOM and/or Templates. It transparently supports using HTML fragments or DOM. |
36 | * For more information see <a href="http://www.jackslocum.com/yui/2006/10/06/domhelper-create-elements-using-dom-html-fragments-or-templates/">this blog post with examples</a>. | 33 | * For more information see <a href="http://www.jackslocum.com/yui/2006/10/06/domhelper-create-elements-using-dom-html-fragments-or-templates/">this blog post with examples</a>. |
37 | * @singleton | 34 | * @singleton |
38 | */ | 35 | */ |
39 | Clipperz.YUI.DomHelper = new function(){ | 36 | Clipperz.YUI.DomHelper = new function(){ |
40 | /**@private*/ | 37 | /**@private*/ |
41 | var d = document; | 38 | var d = document; |
42 | var tempTableEl = null; | 39 | var tempTableEl = null; |
43 | /** True to force the use of DOM instead of html fragments @type Boolean */ | 40 | /** True to force the use of DOM instead of html fragments @type Boolean */ |
44 | this.useDom = false; | 41 | this.useDom = false; |
45 | var emptyTags = /^(?:base|basefont|br|frame|hr|img|input|isindex|link|meta|nextid|range|spacer|wbr|audioscope|area|param|keygen|col|limittext|spot|tab|over|right|left|choose|atop|of)$/i; | 42 | var emptyTags = /^(?:base|basefont|br|frame|hr|img|input|isindex|link|meta|nextid|range|spacer|wbr|audioscope|area|param|keygen|col|limittext|spot|tab|over|right|left|choose|atop|of)$/i; |
46 | /** | 43 | /** |
47 | * Applies a style specification to an element | 44 | * Applies a style specification to an element |
48 | * @param {String/HTMLElement} el The element to apply styles to | 45 | * @param {String/HTMLElement} el The element to apply styles to |
49 | * @param {String/Object/Function} styles A style specification string eg "width:100px", or object in the form {width:"100px"}, or | 46 | * @param {String/Object/Function} styles A style specification string eg "width:100px", or object in the form {width:"100px"}, or |
50 | * a function which returns such a specification. | 47 | * a function which returns such a specification. |
51 | */ | 48 | */ |
52 | this.applyStyles = function(el, styles){ | 49 | this.applyStyles = function(el, styles){ |
53 | if(styles){ | 50 | if(styles){ |
54 | var D = YAHOO.util.Dom; | 51 | var D = YAHOO.util.Dom; |
55 | if (typeof styles == "string"){ | 52 | if (typeof styles == "string"){ |
56 | var re = /\s?([a-z\-]*)\:([^;]*);?/gi; | 53 | var re = /\s?([a-z\-]*)\:([^;]*);?/gi; |
57 | var matches; | 54 | var matches; |
58 | while ((matches = re.exec(styles)) != null){ | 55 | while ((matches = re.exec(styles)) != null){ |
59 | D.setStyle(el, matches[1], matches[2]); | 56 | D.setStyle(el, matches[1], matches[2]); |
60 | } | 57 | } |
61 | }else if (typeof styles == "object"){ | 58 | }else if (typeof styles == "object"){ |
62 | for (var style in styles){ | 59 | for (var style in styles){ |
63 | D.setStyle(el, style, styles[style]); | 60 | D.setStyle(el, style, styles[style]); |
64 | } | 61 | } |
65 | }else if (typeof styles == "function"){ | 62 | }else if (typeof styles == "function"){ |
66 | Clipperz.YUI.DomHelper.applyStyles(el, styles.call()); | 63 | Clipperz.YUI.DomHelper.applyStyles(el, styles.call()); |
67 | } | 64 | } |
68 | } | 65 | } |
69 | }; | 66 | }; |
70 | 67 | ||
71 | // build as innerHTML where available | 68 | // build as innerHTML where available |
72 | /** @ignore */ | 69 | /** @ignore */ |
73 | var createHtml = function(o){ | 70 | var createHtml = function(o){ |
74 | var b = ''; | 71 | var b = ''; |
75 | 72 | ||
76 | if(typeof(o['html']) != 'undefined') { | 73 | if(typeof(o['html']) != 'undefined') { |
77 | o['html'] = Clipperz.Base.sanitizeString(o['html']); | 74 | o['html'] = Clipperz.Base.sanitizeString(o['html']); |
78 | } else if (typeof(o['htmlString']) != 'undefined') { | 75 | } else if (typeof(o['htmlString']) != 'undefined') { |
79 | o['html'] = o['htmlString']; | 76 | o['html'] = o['htmlString']; |
80 | delete o.htmlString; | 77 | delete o.htmlString; |
81 | } | 78 | } |
82 | 79 | ||
83 | if (MochiKit.Base.isArrayLike(o)) { | 80 | if (MochiKit.Base.isArrayLike(o)) { |
84 | for (var i = 0, l = o.length; i < l; i++) { | 81 | for (var i = 0, l = o.length; i < l; i++) { |
85 | b += createHtml(o[i]); | 82 | b += createHtml(o[i]); |
86 | } | 83 | } |
87 | return b; | 84 | return b; |
88 | } | 85 | } |
89 | 86 | ||
90 | b += '<' + o.tag; | 87 | b += '<' + o.tag; |
91 | for(var attr in o){ | 88 | for(var attr in o){ |
92 | if(attr == 'tag' || attr == 'children' || attr == 'html' || typeof o[attr] == 'function') continue; | 89 | if(attr == 'tag' || attr == 'children' || attr == 'html' || typeof o[attr] == 'function') continue; |
93 | if(attr == 'style'){ | 90 | if(attr == 'style'){ |
94 | var s = o['style']; | 91 | var s = o['style']; |
95 | if(typeof s == 'function'){ | 92 | if(typeof s == 'function'){ |
96 | s = s.call(); | 93 | s = s.call(); |
97 | } | 94 | } |
98 | if(typeof s == 'string'){ | 95 | if(typeof s == 'string'){ |
99 | b += ' style="' + s + '"'; | 96 | b += ' style="' + s + '"'; |
100 | }else if(typeof s == 'object'){ | 97 | }else if(typeof s == 'object'){ |
101 | b += ' style="'; | 98 | b += ' style="'; |
102 | for(var key in s){ | 99 | for(var key in s){ |
103 | if(typeof s[key] != 'function'){ | 100 | if(typeof s[key] != 'function'){ |
104 | b += key + ':' + s[key] + ';'; | 101 | b += key + ':' + s[key] + ';'; |
105 | } | 102 | } |
106 | } | 103 | } |
107 | b += '"'; | 104 | b += '"'; |
108 | } | 105 | } |
109 | }else{ | 106 | }else{ |
110 | if(attr == 'cls'){ | 107 | if(attr == 'cls'){ |
111 | b += ' class="' + o['cls'] + '"'; | 108 | b += ' class="' + o['cls'] + '"'; |
112 | }else if(attr == 'htmlFor'){ | 109 | }else if(attr == 'htmlFor'){ |
113 | b += ' for="' + o['htmlFor'] + '"'; | 110 | b += ' for="' + o['htmlFor'] + '"'; |
114 | }else{ | 111 | }else{ |
115 | b += ' ' + attr + '="' + o[attr] + '"'; | 112 | b += ' ' + attr + '="' + o[attr] + '"'; |
116 | } | 113 | } |
117 | } | 114 | } |
118 | } | 115 | } |
119 | if(emptyTags.test(o.tag)){ | 116 | if(emptyTags.test(o.tag)){ |
120 | b += ' />'; | 117 | b += ' />'; |
diff --git a/frontend/gamma/js/Clipperz/YUI/DomQuery.js b/frontend/gamma/js/Clipperz/YUI/DomQuery.js index 4a143ab..76d0fae 100644 --- a/frontend/gamma/js/Clipperz/YUI/DomQuery.js +++ b/frontend/gamma/js/Clipperz/YUI/DomQuery.js | |||
@@ -1,120 +1,117 @@ | |||
1 | /* | 1 | /* |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | */ | 24 | */ |
28 | 25 | ||
29 | if (typeof(Clipperz) == 'undefined') { Clipperz = {}; } | 26 | if (typeof(Clipperz) == 'undefined') { Clipperz = {}; } |
30 | if (typeof(Clipperz.YUI) == 'undefined') { Clipperz.YUI = {}; } | 27 | if (typeof(Clipperz.YUI) == 'undefined') { Clipperz.YUI = {}; } |
31 | 28 | ||
32 | 29 | ||
33 | /* | 30 | /* |
34 | * yui-ext 0.40 | 31 | * yui-ext 0.40 |
35 | * Copyright(c) 2006, Jack Slocum. | 32 | * Copyright(c) 2006, Jack Slocum. |
36 | */ | 33 | */ |
37 | 34 | ||
38 | /** | 35 | /** |
39 | * @class Clipperz.YUI.DomQuery | 36 | * @class Clipperz.YUI.DomQuery |
40 | * Provides high performance selector/xpath processing by compiling queries into reusable functions. | 37 | * Provides high performance selector/xpath processing by compiling queries into reusable functions. |
41 | * New pseudo classes and matchers can be plugged. It works on HTML and XML documents (if a content node is passed in). | 38 | * New pseudo classes and matchers can be plugged. It works on HTML and XML documents (if a content node is passed in). |
42 | * @singleton | 39 | * @singleton |
43 | */ | 40 | */ |
44 | Clipperz.YUI.DomQuery = function(){ | 41 | Clipperz.YUI.DomQuery = function(){ |
45 | var cache = {}, simpleCache = {}, valueCache = {}; | 42 | var cache = {}, simpleCache = {}, valueCache = {}; |
46 | var nonSpace = /\S/; | 43 | var nonSpace = /\S/; |
47 | var trimRe = /^\s*(.*?)\s*$/; | 44 | var trimRe = /^\s*(.*?)\s*$/; |
48 | var tplRe = /\{(\d+)\}/g; | 45 | var tplRe = /\{(\d+)\}/g; |
49 | var modeRe = /^(\s?[\/>]\s?|\s|$)/; | 46 | var modeRe = /^(\s?[\/>]\s?|\s|$)/; |
50 | var clsRes = {}; | 47 | var clsRes = {}; |
51 | 48 | ||
52 | function child(p, index){ | 49 | function child(p, index){ |
53 | var i = 0; | 50 | var i = 0; |
54 | var n = p.firstChild; | 51 | var n = p.firstChild; |
55 | while(n){ | 52 | while(n){ |
56 | if(n.nodeType == 1){ | 53 | if(n.nodeType == 1){ |
57 | i++; | 54 | i++; |
58 | if(i == index){ | 55 | if(i == index){ |
59 | return n; | 56 | return n; |
60 | } | 57 | } |
61 | } | 58 | } |
62 | n = n.nextSibling; | 59 | n = n.nextSibling; |
63 | } | 60 | } |
64 | return null; | 61 | return null; |
65 | }; | 62 | }; |
66 | 63 | ||
67 | function next(d){ | 64 | function next(d){ |
68 | var n = d.nextSibling; | 65 | var n = d.nextSibling; |
69 | while(n && n.nodeType != 1){ | 66 | while(n && n.nodeType != 1){ |
70 | n = n.nextSibling; | 67 | n = n.nextSibling; |
71 | } | 68 | } |
72 | return n; | 69 | return n; |
73 | }; | 70 | }; |
74 | 71 | ||
75 | function prev(d){ | 72 | function prev(d){ |
76 | var n = d.previousSibling; | 73 | var n = d.previousSibling; |
77 | while(n && n.nodeType != 1){ | 74 | while(n && n.nodeType != 1){ |
78 | n = n.previousSibling; | 75 | n = n.previousSibling; |
79 | } | 76 | } |
80 | return n; | 77 | return n; |
81 | }; | 78 | }; |
82 | 79 | ||
83 | function clean(d){ | 80 | function clean(d){ |
84 | var n = d.firstChild, ni = -1; | 81 | var n = d.firstChild, ni = -1; |
85 | while(n){ | 82 | while(n){ |
86 | var nx = n.nextSibling; | 83 | var nx = n.nextSibling; |
87 | if(n.nodeType == 3 && !nonSpace.test(n.nodeValue)){ | 84 | if(n.nodeType == 3 && !nonSpace.test(n.nodeValue)){ |
88 | d.removeChild(n); | 85 | d.removeChild(n); |
89 | }else{ | 86 | }else{ |
90 | n.nodeIndex = ++ni; | 87 | n.nodeIndex = ++ni; |
91 | } | 88 | } |
92 | n = nx; | 89 | n = nx; |
93 | } | 90 | } |
94 | return this; | 91 | return this; |
95 | }; | 92 | }; |
96 | 93 | ||
97 | function byClassName(c, a, v){ | 94 | function byClassName(c, a, v){ |
98 | if(!v){ | 95 | if(!v){ |
99 | return c; | 96 | return c; |
100 | } | 97 | } |
101 | var re = clsRes[v]; | 98 | var re = clsRes[v]; |
102 | if(!re){ | 99 | if(!re){ |
103 | re = new RegExp('(?:^|\\s)(?:' + v + ')(?:\\s|$)'); | 100 | re = new RegExp('(?:^|\\s)(?:' + v + ')(?:\\s|$)'); |
104 | clsRes[v] = re; | 101 | clsRes[v] = re; |
105 | } | 102 | } |
106 | var r = []; | 103 | var r = []; |
107 | for(var i = 0, ci; ci = c[i]; i++){ | 104 | for(var i = 0, ci; ci = c[i]; i++){ |
108 | if(re.test(ci.className)){ | 105 | if(re.test(ci.className)){ |
109 | r[r.length] = ci; | 106 | r[r.length] = ci; |
110 | } | 107 | } |
111 | } | 108 | } |
112 | return r; | 109 | return r; |
113 | }; | 110 | }; |
114 | 111 | ||
115 | function convert(c){ | 112 | function convert(c){ |
116 | if(c.slice){ | 113 | if(c.slice){ |
117 | return c; | 114 | return c; |
118 | } | 115 | } |
119 | var r = []; | 116 | var r = []; |
120 | for(var i = 0, l = c.length; i < l; i++){ | 117 | for(var i = 0, l = c.length; i < l; i++){ |
diff --git a/frontend/gamma/js/Clipperz/YUI/Utils.js b/frontend/gamma/js/Clipperz/YUI/Utils.js index 4d4a5f9..e9929fc 100644 --- a/frontend/gamma/js/Clipperz/YUI/Utils.js +++ b/frontend/gamma/js/Clipperz/YUI/Utils.js | |||
@@ -1,98 +1,95 @@ | |||
1 | /* | 1 | /* |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | */ | 24 | */ |
28 | 25 | ||
29 | if (typeof YAHOO == 'undefined') { YAHOO = {}; }; | 26 | if (typeof YAHOO == 'undefined') { YAHOO = {}; }; |
30 | if (typeof YAHOO.util == 'undefined') { YAHOO.util = {}; }; | 27 | if (typeof YAHOO.util == 'undefined') { YAHOO.util = {}; }; |
31 | if (typeof YAHOO.util.Dom == 'undefined') { YAHOO.util.Dom = {}; }; | 28 | if (typeof YAHOO.util.Dom == 'undefined') { YAHOO.util.Dom = {}; }; |
32 | 29 | ||
33 | YAHOO.extend = function(subc, superc, overrides) { | 30 | YAHOO.extend = function(subc, superc, overrides) { |
34 | var F = function() {}; | 31 | var F = function() {}; |
35 | F.prototype=superc.prototype; | 32 | F.prototype=superc.prototype; |
36 | subc.prototype=new F(); | 33 | subc.prototype=new F(); |
37 | subc.prototype.constructor=subc; | 34 | subc.prototype.constructor=subc; |
38 | subc.superclass=superc.prototype; | 35 | subc.superclass=superc.prototype; |
39 | if (superc.prototype.constructor == Object.prototype.constructor) { | 36 | if (superc.prototype.constructor == Object.prototype.constructor) { |
40 | superc.prototype.constructor=superc; | 37 | superc.prototype.constructor=superc; |
41 | } | 38 | } |
42 | 39 | ||
43 | if (overrides) { | 40 | if (overrides) { |
44 | for (var i in overrides) { | 41 | for (var i in overrides) { |
45 | subc.prototype[i]=overrides[i]; | 42 | subc.prototype[i]=overrides[i]; |
46 | } | 43 | } |
47 | } | 44 | } |
48 | }; | 45 | }; |
49 | 46 | ||
50 | YAHOO.override = function(origclass, overrides){ | 47 | YAHOO.override = function(origclass, overrides){ |
51 | if(overrides){ | 48 | if(overrides){ |
52 | var p = origclass.prototype; | 49 | var p = origclass.prototype; |
53 | for(var method in overrides){ | 50 | for(var method in overrides){ |
54 | p[method] = overrides[method]; | 51 | p[method] = overrides[method]; |
55 | } | 52 | } |
56 | } | 53 | } |
57 | }; | 54 | }; |
58 | 55 | ||
59 | YAHOO.extendX = function(subclass, superclass, overrides){ | 56 | YAHOO.extendX = function(subclass, superclass, overrides){ |
60 | YAHOO.extend(subclass, superclass); | 57 | YAHOO.extend(subclass, superclass); |
61 | subclass.override = function(o){ | 58 | subclass.override = function(o){ |
62 | YAHOO.override(subclass, o); | 59 | YAHOO.override(subclass, o); |
63 | }; | 60 | }; |
64 | if(!subclass.prototype.override){ | 61 | if(!subclass.prototype.override){ |
65 | subclass.prototype.override = function(o){ | 62 | subclass.prototype.override = function(o){ |
66 | for(var method in o){ | 63 | for(var method in o){ |
67 | this[method] = o[method]; | 64 | this[method] = o[method]; |
68 | } | 65 | } |
69 | }; | 66 | }; |
70 | } | 67 | } |
71 | if(overrides){ | 68 | if(overrides){ |
72 | subclass.override(overrides); | 69 | subclass.override(overrides); |
73 | }; | 70 | }; |
74 | 71 | ||
75 | }; | 72 | }; |
76 | 73 | ||
77 | YAHOO.util.Dom.get = function(el) { | 74 | YAHOO.util.Dom.get = function(el) { |
78 | if (!el) { return null; } // nothing to work with | 75 | if (!el) { return null; } // nothing to work with |
79 | 76 | ||
80 | if (typeof el != 'string' && !(el instanceof Array) ) { // assuming HTMLElement or HTMLCollection, so pass back as is | 77 | if (typeof el != 'string' && !(el instanceof Array) ) { // assuming HTMLElement or HTMLCollection, so pass back as is |
81 | return el; | 78 | return el; |
82 | } | 79 | } |
83 | 80 | ||
84 | if (typeof el == 'string') { // ID | 81 | if (typeof el == 'string') { // ID |
85 | return document.getElementById(el); | 82 | return document.getElementById(el); |
86 | } | 83 | } |
87 | else { // array of ID's and/or elements | 84 | else { // array of ID's and/or elements |
88 | var collection = []; | 85 | var collection = []; |
89 | for (var i = 0, len = el.length; i < len; ++i) { | 86 | for (var i = 0, len = el.length; i < len; ++i) { |
90 | collection[collection.length] = YAHOO.util.Dom.get(el[i]); | 87 | collection[collection.length] = YAHOO.util.Dom.get(el[i]); |
91 | } | 88 | } |
92 | 89 | ||
93 | return collection; | 90 | return collection; |
94 | } | 91 | } |
95 | 92 | ||
96 | return null; // safety, should never happen | 93 | return null; // safety, should never happen |
97 | }; | 94 | }; |
98 | 95 | ||
diff --git a/frontend/gamma/js/main.js b/frontend/gamma/js/main.js index abb178f..352c4c7 100644 --- a/frontend/gamma/js/main.js +++ b/frontend/gamma/js/main.js | |||
@@ -1,109 +1,106 @@ | |||
1 | /* | 1 | /* |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | */ | 24 | */ |
28 | 25 | ||
29 | function _pm_logEvent(anEvent) { | 26 | function _pm_logEvent(anEvent) { |
30 | //console.log("####", anEvent); | 27 | //console.log("####", anEvent); |
31 | 28 | ||
32 | anEvent.preventDefault(); | 29 | anEvent.preventDefault(); |
33 | } | 30 | } |
34 | 31 | ||
35 | function handleGenericDeferredError(anError) { | 32 | function handleGenericDeferredError(anError) { |
36 | var result; | 33 | var result; |
37 | 34 | ||
38 | if (anError instanceof MochiKit.Async.CancelledError) { | 35 | if (anError instanceof MochiKit.Async.CancelledError) { |
39 | result = anError; | 36 | result = anError; |
40 | } else { | 37 | } else { |
41 | MochiKit.Logging.logError("## MainController - GENERIC ERROR" + "\n" + "==>> " + anError + " <<==\n" + anError.stack); | 38 | MochiKit.Logging.logError("## MainController - GENERIC ERROR" + "\n" + "==>> " + anError + " <<==\n" + anError.stack); |
42 | //console.log(anError); | 39 | //console.log(anError); |
43 | result = new MochiKit.Async.CancelledError(anError); | 40 | result = new MochiKit.Async.CancelledError(anError); |
44 | } | 41 | } |
45 | 42 | ||
46 | return result; | 43 | return result; |
47 | } | 44 | } |
48 | 45 | ||
49 | 46 | ||
50 | Clipperz.PM.RunTime = {}; | 47 | Clipperz.PM.RunTime = {}; |
51 | 48 | ||
52 | 49 | ||
53 | function run() { | 50 | function run() { |
54 | var shouldShowRegistrationForm; | 51 | var shouldShowRegistrationForm; |
55 | var useCompactDesign; | 52 | var useCompactDesign; |
56 | var controllerParameters; | 53 | var controllerParameters; |
57 | //var iPhoneDesign; | 54 | //var iPhoneDesign; |
58 | 55 | ||
59 | //MochiKit.Signal.connect(document.body, 'onkeydown', _pm_logEvent); | 56 | //MochiKit.Signal.connect(document.body, 'onkeydown', _pm_logEvent); |
60 | //MochiKit.Signal.connect(document.body, 'onkeypress', _pm_logEvent); | 57 | //MochiKit.Signal.connect(document.body, 'onkeypress', _pm_logEvent); |
61 | //MochiKit.Signal.connect(document.body, 'onclick', _pm_logEvent); | 58 | //MochiKit.Signal.connect(document.body, 'onclick', _pm_logEvent); |
62 | 59 | ||
63 | controllerParameters = {}; | 60 | controllerParameters = {}; |
64 | 61 | ||
65 | MochiKit.DOM.removeElement('javaScriptAlert'); | 62 | MochiKit.DOM.removeElement('javaScriptAlert'); |
66 | Clipperz.PM.Strings.Languages.initSetup(); | 63 | Clipperz.PM.Strings.Languages.initSetup(); |
67 | 64 | ||
68 | if (window.location.search.indexOf('registration') != -1) { | 65 | if (window.location.search.indexOf('registration') != -1) { |
69 | shouldShowRegistrationForm = true; | 66 | shouldShowRegistrationForm = true; |
70 | } else { | 67 | } else { |
71 | shouldShowRegistrationForm = false; | 68 | shouldShowRegistrationForm = false; |
72 | } | 69 | } |
73 | 70 | ||
74 | if (window.location.search.indexOf('autocomplete') != -1) { | 71 | if (window.location.search.indexOf('autocomplete') != -1) { |
75 | controllerParameters['autocomplete'] = 'on' | 72 | controllerParameters['autocomplete'] = 'on' |
76 | } | 73 | } |
77 | 74 | ||
78 | //if ((window.location.search.indexOf('iPhone') != -1) || (navigator.userAgent.match('iPhone'))) { | 75 | //if ((window.location.search.indexOf('iPhone') != -1) || (navigator.userAgent.match('iPhone'))) { |
79 | // iPhoneDesign = true; | 76 | // iPhoneDesign = true; |
80 | //} else { | 77 | //} else { |
81 | // iPhoneDesign = false; | 78 | // iPhoneDesign = false; |
82 | //} | 79 | //} |
83 | 80 | ||
84 | if (window.location.search.indexOf('compact') != -1) { | 81 | if (window.location.search.indexOf('compact') != -1) { |
85 | useCompactDesign = true; | 82 | useCompactDesign = true; |
86 | } else { | 83 | } else { |
87 | useCompactDesign = false; | 84 | useCompactDesign = false; |
88 | } | 85 | } |
89 | 86 | ||
90 | if (useCompactDesign == true) { | 87 | if (useCompactDesign == true) { |
91 | Clipperz.PM.RunTime.mainController = new Clipperz.PM.UI.Compact.Controllers.MainController(controllerParameters); | 88 | Clipperz.PM.RunTime.mainController = new Clipperz.PM.UI.Compact.Controllers.MainController(controllerParameters); |
92 | //} else if (iPhoneDesign == true) { | 89 | //} else if (iPhoneDesign == true) { |
93 | // Clipperz.PM.RunTime.mainController = new Clipperz.PM.UI.iPhone.Controllers.MainController(); | 90 | // Clipperz.PM.RunTime.mainController = new Clipperz.PM.UI.iPhone.Controllers.MainController(); |
94 | } else { | 91 | } else { |
95 | Clipperz.PM.RunTime.mainController = new Clipperz.PM.UI.Web.Controllers.MainController(controllerParameters); | 92 | Clipperz.PM.RunTime.mainController = new Clipperz.PM.UI.Web.Controllers.MainController(controllerParameters); |
96 | } | 93 | } |
97 | 94 | ||
98 | Clipperz.PM.RunTime.mainController.run(shouldShowRegistrationForm); | 95 | Clipperz.PM.RunTime.mainController.run(shouldShowRegistrationForm); |
99 | 96 | ||
100 | //Clipperz.log("HASH: " + window.location.hash); | 97 | //Clipperz.log("HASH: " + window.location.hash); |
101 | if (window.location.hash != "") { | 98 | if (window.location.hash != "") { |
102 | window.location.hash = "" | 99 | window.location.hash = "" |
103 | } | 100 | } |
104 | //Clipperz.log("HASH cleaned"); | 101 | //Clipperz.log("HASH cleaned"); |
105 | //#credentials=base64encoded({username:'joe', passphrase:'clipperz'}) | 102 | //#credentials=base64encoded({username:'joe', passphrase:'clipperz'}) |
106 | //MochiKit.Signal.signal(Clipperz.Signal.NotificationCenter, 'doLogin', {username:'joe', passphrase:'clipperz'}); | 103 | //MochiKit.Signal.signal(Clipperz.Signal.NotificationCenter, 'doLogin', {username:'joe', passphrase:'clipperz'}); |
107 | } | 104 | } |
108 | 105 | ||
109 | MochiKit.DOM.addLoadEvent(run); | 106 | MochiKit.DOM.addLoadEvent(run); |
diff --git a/frontend/gamma/js/main_iPhone.js b/frontend/gamma/js/main_iPhone.js index f13e95c..0644f68 100644 --- a/frontend/gamma/js/main_iPhone.js +++ b/frontend/gamma/js/main_iPhone.js | |||
@@ -1,60 +1,57 @@ | |||
1 | /* | 1 | /* |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | */ | 24 | */ |
28 | 25 | ||
29 | function _pm_logEvent(anEvent) { | 26 | function _pm_logEvent(anEvent) { |
30 | //console.log("####", anEvent); | 27 | //console.log("####", anEvent); |
31 | 28 | ||
32 | anEvent.preventDefault(); | 29 | anEvent.preventDefault(); |
33 | } | 30 | } |
34 | 31 | ||
35 | function handleGenericDeferredError(anError) { | 32 | function handleGenericDeferredError(anError) { |
36 | var result; | 33 | var result; |
37 | 34 | ||
38 | if (anError instanceof MochiKit.Async.CancelledError) { | 35 | if (anError instanceof MochiKit.Async.CancelledError) { |
39 | result = anError; | 36 | result = anError; |
40 | } else { | 37 | } else { |
41 | MochiKit.Logging.logError("## MainController - GENERIC ERROR" + "\n" + "==>> " + anError + " <<==\n" + anError.stack); | 38 | MochiKit.Logging.logError("## MainController - GENERIC ERROR" + "\n" + "==>> " + anError + " <<==\n" + anError.stack); |
42 | result = new MochiKit.Async.CancelledError(anError); | 39 | result = new MochiKit.Async.CancelledError(anError); |
43 | } | 40 | } |
44 | 41 | ||
45 | return result; | 42 | return result; |
46 | } | 43 | } |
47 | 44 | ||
48 | 45 | ||
49 | Clipperz.PM.RunTime = {}; | 46 | Clipperz.PM.RunTime = {}; |
50 | 47 | ||
51 | 48 | ||
52 | function run() { | 49 | function run() { |
53 | MochiKit.DOM.removeElement('javaScriptAlert'); | 50 | MochiKit.DOM.removeElement('javaScriptAlert'); |
54 | Clipperz.PM.Strings.Languages.initSetup(); | 51 | Clipperz.PM.Strings.Languages.initSetup(); |
55 | 52 | ||
56 | Clipperz.PM.RunTime.mainController = new Clipperz.PM.UI.iPhone.Controllers.MainController(); | 53 | Clipperz.PM.RunTime.mainController = new Clipperz.PM.UI.iPhone.Controllers.MainController(); |
57 | Clipperz.PM.RunTime.mainController.run(false); | 54 | Clipperz.PM.RunTime.mainController.run(false); |
58 | } | 55 | } |
59 | 56 | ||
60 | MochiKit.DOM.addLoadEvent(run); | 57 | MochiKit.DOM.addLoadEvent(run); |
diff --git a/frontend/gamma/tests/SimpleTest/SimpleTest.Async.js b/frontend/gamma/tests/SimpleTest/SimpleTest.Async.js index 040cdbf..3633182 100644 --- a/frontend/gamma/tests/SimpleTest/SimpleTest.Async.js +++ b/frontend/gamma/tests/SimpleTest/SimpleTest.Async.js | |||
@@ -1,120 +1,117 @@ | |||
1 | /* | 1 | /* |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | */ | 24 | */ |
28 | 25 | ||
29 | MochiKit.Base.update(Clipperz.Async.Deferred.prototype, { | 26 | MochiKit.Base.update(Clipperz.Async.Deferred.prototype, { |
30 | /* | 27 | /* |
31 | '_addTest': function(anExpectedValue, aDescription, isDeep, aResult) { | 28 | '_addTest': function(anExpectedValue, aDescription, isDeep, aResult) { |
32 | if (isDeep) { | 29 | if (isDeep) { |
33 | SimpleTest.isDeeply(aResult, anExpectedValue, aDescription); | 30 | SimpleTest.isDeeply(aResult, anExpectedValue, aDescription); |
34 | } else { | 31 | } else { |
35 | SimpleTest.is(aResult, anExpectedValue, aDescription); | 32 | SimpleTest.is(aResult, anExpectedValue, aDescription); |
36 | } | 33 | } |
37 | 34 | ||
38 | return aResult; | 35 | return aResult; |
39 | }, | 36 | }, |
40 | */ | 37 | */ |
41 | 'addTest': function (anExpectedValue, aDescription, isDeep) { | 38 | 'addTest': function (anExpectedValue, aDescription, isDeep) { |
42 | // this.addMethod(this, '_addTest', anExpectedValue, aDescription, isDeep); | 39 | // this.addMethod(this, '_addTest', anExpectedValue, aDescription, isDeep); |
43 | // this.addCallback(Clipperz.Async.test, anExpectedValue, aDescription, isDeep); | 40 | // this.addCallback(Clipperz.Async.test, anExpectedValue, aDescription, isDeep); |
44 | 41 | ||
45 | if (isDeep) { | 42 | if (isDeep) { |
46 | // SimpleTest.isDeeply(aResult, anExpectedValue, aDescription); | 43 | // SimpleTest.isDeeply(aResult, anExpectedValue, aDescription); |
47 | this.addCallback(Clipperz.Async.Test.isDeeply(anExpectedValue, aDescription)); | 44 | this.addCallback(Clipperz.Async.Test.isDeeply(anExpectedValue, aDescription)); |
48 | } else { | 45 | } else { |
49 | // SimpleTest.is(aResult, anExpectedValue, aDescription); | 46 | // SimpleTest.is(aResult, anExpectedValue, aDescription); |
50 | this.addCallback(Clipperz.Async.Test.is(anExpectedValue, aDescription)); | 47 | this.addCallback(Clipperz.Async.Test.is(anExpectedValue, aDescription)); |
51 | } | 48 | } |
52 | }, | 49 | }, |
53 | 50 | ||
54 | //------------------------------------------------------------------------- | 51 | //------------------------------------------------------------------------- |
55 | 52 | ||
56 | 'shouldSucceed': function (aDescription) { | 53 | 'shouldSucceed': function (aDescription) { |
57 | this.addCallbackPass(SimpleTest.ok, true, aDescription); | 54 | this.addCallbackPass(SimpleTest.ok, true, aDescription); |
58 | this.addErrbackPass (SimpleTest.ok, false, aDescription); | 55 | this.addErrbackPass (SimpleTest.ok, false, aDescription); |
59 | this.addBoth(MochiKit.Async.succeed, null); | 56 | this.addBoth(MochiKit.Async.succeed, null); |
60 | }, | 57 | }, |
61 | 58 | ||
62 | 'shouldFail': function (aDescription) { | 59 | 'shouldFail': function (aDescription) { |
63 | this.addCallbackPass(SimpleTest.ok, false, aDescription); | 60 | this.addCallbackPass(SimpleTest.ok, false, aDescription); |
64 | this.addErrbackPass (SimpleTest.ok, true, aDescription); | 61 | this.addErrbackPass (SimpleTest.ok, true, aDescription); |
65 | this.addBoth(MochiKit.Async.succeed, null); | 62 | this.addBoth(MochiKit.Async.succeed, null); |
66 | }, | 63 | }, |
67 | 64 | ||
68 | //------------------------------------------------------------------------- | 65 | //------------------------------------------------------------------------- |
69 | 66 | ||
70 | }); | 67 | }); |
71 | 68 | ||
72 | 69 | ||
73 | Clipperz.Async.Test = {}; | 70 | Clipperz.Async.Test = {}; |
74 | MochiKit.Base.update(Clipperz.Async.Test, { | 71 | MochiKit.Base.update(Clipperz.Async.Test, { |
75 | 72 | ||
76 | 'is': function (anExpectedResult, aDescription) { | 73 | 'is': function (anExpectedResult, aDescription) { |
77 | return MochiKit.Base.partial(function (anExpectedResult, aDescription, aResult) { | 74 | return MochiKit.Base.partial(function (anExpectedResult, aDescription, aResult) { |
78 | SimpleTest.is(aResult, anExpectedResult, aDescription); | 75 | SimpleTest.is(aResult, anExpectedResult, aDescription); |
79 | 76 | ||
80 | return aResult; | 77 | return aResult; |
81 | }, anExpectedResult, aDescription); | 78 | }, anExpectedResult, aDescription); |
82 | }, | 79 | }, |
83 | 80 | ||
84 | //------------------------------------------------------------------------- | 81 | //------------------------------------------------------------------------- |
85 | 82 | ||
86 | 'ok': function (aDescription) { | 83 | 'ok': function (aDescription) { |
87 | return MochiKit.Base.partial(function (aDescription, aResult) { | 84 | return MochiKit.Base.partial(function (aDescription, aResult) { |
88 | SimpleTest.ok(aResult, aDescription); | 85 | SimpleTest.ok(aResult, aDescription); |
89 | 86 | ||
90 | return aResult; | 87 | return aResult; |
91 | }, aDescription); | 88 | }, aDescription); |
92 | }, | 89 | }, |
93 | 90 | ||
94 | //------------------------------------------------------------------------- | 91 | //------------------------------------------------------------------------- |
95 | 92 | ||
96 | 'fail': function(aDescription) { | 93 | 'fail': function(aDescription) { |
97 | return MochiKit.Base.partial(function (aDescription, aResult) { | 94 | return MochiKit.Base.partial(function (aDescription, aResult) { |
98 | SimpleTest.ok(!aResult, aDescription); | 95 | SimpleTest.ok(!aResult, aDescription); |
99 | 96 | ||
100 | return aResult; | 97 | return aResult; |
101 | }, aDescription); | 98 | }, aDescription); |
102 | }, | 99 | }, |
103 | 100 | ||
104 | //------------------------------------------------------------------------- | 101 | //------------------------------------------------------------------------- |
105 | 102 | ||
106 | 'isDeeply': function (anExpectedResult, aDescription) { | 103 | 'isDeeply': function (anExpectedResult, aDescription) { |
107 | return MochiKit.Base.partial(function (anExpectedResult, aDescription, aResult) { | 104 | return MochiKit.Base.partial(function (anExpectedResult, aDescription, aResult) { |
108 | SimpleTest.isDeeply(aResult, anExpectedResult, aDescription); | 105 | SimpleTest.isDeeply(aResult, anExpectedResult, aDescription); |
109 | 106 | ||
110 | return aResult; | 107 | return aResult; |
111 | }, anExpectedResult, aDescription); | 108 | }, anExpectedResult, aDescription); |
112 | }, | 109 | }, |
113 | 110 | ||
114 | //------------------------------------------------------------------------- | 111 | //------------------------------------------------------------------------- |
115 | __syntaxFix__: "syntax fix" | 112 | __syntaxFix__: "syntax fix" |
116 | }); | 113 | }); |
117 | 114 | ||
118 | 115 | ||
119 | SimpleTest.runDeferredTests = function (aName, aTestSet, aTestArguments) { | 116 | SimpleTest.runDeferredTests = function (aName, aTestSet, aTestArguments) { |
120 | try { | 117 | try { |
diff --git a/frontend/gamma/tests/index.html b/frontend/gamma/tests/index.html index 865f8f1..ef89088 100755 --- a/frontend/gamma/tests/index.html +++ b/frontend/gamma/tests/index.html | |||
@@ -1,56 +1,53 @@ | |||
1 | <!-- | 1 | <!-- |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | --> | 24 | --> |
28 | 25 | ||
29 | <html> | 26 | <html> |
30 | <head> | 27 | <head> |
31 | <script type="text/javascript" src="../js/MochiKit/MochiKit.js"></script> | 28 | <script type="text/javascript" src="../js/MochiKit/MochiKit.js"></script> |
32 | <script type="text/javascript" src="./SimpleTest/TestRunner.js"></script> | 29 | <script type="text/javascript" src="./SimpleTest/TestRunner.js"></script> |
33 | </head> | 30 | </head> |
34 | <body> | 31 | <body> |
35 | <script type="text/javascript"> | 32 | <script type="text/javascript"> |
36 | TestRunner.runTests( | 33 | TestRunner.runTests( |
37 | /* | 34 | /* |
38 | //'tests/Clipperz/Base.html', | 35 | //'tests/Clipperz/Base.html', |
39 | //'tests/Clipperz/Set.html', | 36 | //'tests/Clipperz/Set.html', |
40 | 'tests/Clipperz/index.html', | 37 | 'tests/Clipperz/index.html', |
41 | 38 | ||
42 | //'tests/Clipperz/Crypto/Base.html', | 39 | //'tests/Clipperz/Crypto/Base.html', |
43 | //'tests/Clipperz/Crypto/BigInt.html', | 40 | //'tests/Clipperz/Crypto/BigInt.html', |
44 | //'tests/Clipperz/Crypto/SRP.html' | 41 | //'tests/Clipperz/Crypto/SRP.html' |
45 | 'tests/Clipperz/Crypto/index.html', | 42 | 'tests/Clipperz/Crypto/index.html', |
46 | 'tests/Clipperz/PM/index.html', | 43 | 'tests/Clipperz/PM/index.html', |
47 | 'tests/Clipperz/PM/DataModel/index.html' | 44 | 'tests/Clipperz/PM/DataModel/index.html' |
48 | */ | 45 | */ |
49 | 46 | ||
50 | 'tests/index.html' | 47 | 'tests/index.html' |
51 | 48 | ||
52 | 49 | ||
53 | ); | 50 | ); |
54 | </script> | 51 | </script> |
55 | </body> | 52 | </body> |
56 | </html> \ No newline at end of file | 53 | </html> \ No newline at end of file |
diff --git a/frontend/gamma/tests/tests/Bookmarklet/Bookmarklet.css b/frontend/gamma/tests/tests/Bookmarklet/Bookmarklet.css index 3847475..fd79d8a 100644 --- a/frontend/gamma/tests/tests/Bookmarklet/Bookmarklet.css +++ b/frontend/gamma/tests/tests/Bookmarklet/Bookmarklet.css | |||
@@ -1,120 +1,117 @@ | |||
1 | /* | 1 | /* |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | */ | 24 | */ |
28 | 25 | ||
29 | /* @override | 26 | /* @override |
30 | http://localhost:8000/tests/js/tests/Bookmarklet/Bookmarklet.css | 27 | http://localhost:8000/tests/js/tests/Bookmarklet/Bookmarklet.css |
31 | http://www.clipperz.com/files/clipperz.com/bookmarklet/0.3.0/Bookmarklet.css | 28 | http://www.clipperz.com/files/clipperz.com/bookmarklet/0.3.0/Bookmarklet.css |
32 | */ | 29 | */ |
33 | 30 | ||
34 | div#clipperzBookmarklet { | 31 | div#clipperzBookmarklet { |
35 | margin: 0; | 32 | margin: 0; |
36 | padding: 0; | 33 | padding: 0; |
37 | border: 0; | 34 | border: 0; |
38 | outline: 0; | 35 | outline: 0; |
39 | font-size: 100%; | 36 | font-size: 100%; |
40 | vertical-align: baseline; | 37 | vertical-align: baseline; |
41 | background: transparent; | 38 | background: transparent; |
42 | 39 | ||
43 | position: absolute; | 40 | position: absolute; |
44 | top: 80px; | 41 | top: 80px; |
45 | left: 100px; | 42 | left: 100px; |
46 | width: 202px; | 43 | width: 202px; |
47 | height: 202px; | 44 | height: 202px; |
48 | background: url(./background.png) no-repeat; | 45 | background: url(./background.png) no-repeat; |
49 | } | 46 | } |
50 | 47 | ||
51 | div#clipperzBookmarklet div#clipperzBookmarkletClose { | 48 | div#clipperzBookmarklet div#clipperzBookmarkletClose { |
52 | margin: 0; | 49 | margin: 0; |
53 | padding: 0; | 50 | padding: 0; |
54 | border: 0; | 51 | border: 0; |
55 | outline: 0; | 52 | outline: 0; |
56 | font-size: 100%; | 53 | font-size: 100%; |
57 | vertical-align: baseline; | 54 | vertical-align: baseline; |
58 | background: transparent; | 55 | background: transparent; |
59 | 56 | ||
60 | position: absolute; | 57 | position: absolute; |
61 | left: 168px; | 58 | left: 168px; |
62 | top: 5px; | 59 | top: 5px; |
63 | width: 25px; | 60 | width: 25px; |
64 | height: 25px; | 61 | height: 25px; |
65 | background: url(./close.png) no-repeat; | 62 | background: url(./close.png) no-repeat; |
66 | } | 63 | } |
67 | 64 | ||
68 | div#clipperzBookmarklet div#clipperzBookmarkletClose:hover { | 65 | div#clipperzBookmarklet div#clipperzBookmarkletClose:hover { |
69 | background: url(./close_selected.png) no-repeat; | 66 | background: url(./close_selected.png) no-repeat; |
70 | cursor: pointer; | 67 | cursor: pointer; |
71 | } | 68 | } |
72 | 69 | ||
73 | div#clipperzBookmarklet div#clipperzBookmarkletResult { | 70 | div#clipperzBookmarklet div#clipperzBookmarkletResult { |
74 | margin: 0; | 71 | margin: 0; |
75 | padding: 0; | 72 | padding: 0; |
76 | border: 0; | 73 | border: 0; |
77 | outline: 0; | 74 | outline: 0; |
78 | font-size: 100%; | 75 | font-size: 100%; |
79 | vertical-align: baseline; | 76 | vertical-align: baseline; |
80 | background: transparent; | 77 | background: transparent; |
81 | 78 | ||
82 | position: absolute; | 79 | position: absolute; |
83 | width: 145px; | 80 | width: 145px; |
84 | top: 61px; | 81 | top: 61px; |
85 | left: 27px; | 82 | left: 27px; |
86 | height: 63px; | 83 | height: 63px; |
87 | overflow: hidden; | 84 | overflow: hidden; |
88 | } | 85 | } |
89 | 86 | ||
90 | div#clipperzBookmarklet div#clipperzBookmarkletResultIcon { | 87 | div#clipperzBookmarklet div#clipperzBookmarkletResultIcon { |
91 | margin: 0; | 88 | margin: 0; |
92 | padding: 0; | 89 | padding: 0; |
93 | border: 0; | 90 | border: 0; |
94 | outline: 0; | 91 | outline: 0; |
95 | font-size: 100%; | 92 | font-size: 100%; |
96 | vertical-align: baseline; | 93 | vertical-align: baseline; |
97 | 94 | ||
98 | width: 28px; | 95 | width: 28px; |
99 | height: 35px; | 96 | height: 35px; |
100 | position: absolute; | 97 | position: absolute; |
101 | } | 98 | } |
102 | 99 | ||
103 | div#clipperzBookmarklet div#clipperzBookmarkletResultIcon.ok { | 100 | div#clipperzBookmarklet div#clipperzBookmarkletResultIcon.ok { |
104 | background: transparent url(./info.png); | 101 | background: transparent url(./info.png); |
105 | } | 102 | } |
106 | 103 | ||
107 | div#clipperzBookmarklet div#clipperzBookmarkletResultIcon.fail { | 104 | div#clipperzBookmarklet div#clipperzBookmarkletResultIcon.fail { |
108 | background: transparent url(./error.png); | 105 | background: transparent url(./error.png); |
109 | } | 106 | } |
110 | 107 | ||
111 | div#clipperzBookmarklet div#clipperzBookmarkletResult p { | 108 | div#clipperzBookmarklet div#clipperzBookmarkletResult p { |
112 | margin: 0; | 109 | margin: 0; |
113 | padding: 0; | 110 | padding: 0; |
114 | border: 0; | 111 | border: 0; |
115 | outline: 0; | 112 | outline: 0; |
116 | font-size: 100%; | 113 | font-size: 100%; |
117 | vertical-align: baseline; | 114 | vertical-align: baseline; |
118 | background: transparent; | 115 | background: transparent; |
119 | 116 | ||
120 | font-family: Helvetica, Arial, Geneva, sans-serif; | 117 | font-family: Helvetica, Arial, Geneva, sans-serif; |
diff --git a/frontend/gamma/tests/tests/Bookmarklet/Fail.html b/frontend/gamma/tests/tests/Bookmarklet/Fail.html index 9a95bad..d3d1ec9 100644 --- a/frontend/gamma/tests/tests/Bookmarklet/Fail.html +++ b/frontend/gamma/tests/tests/Bookmarklet/Fail.html | |||
@@ -1,113 +1,110 @@ | |||
1 | <!-- | 1 | <!-- |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | --> | 24 | --> |
28 | 25 | ||
29 | <html> | 26 | <html> |
30 | <head> | 27 | <head> |
31 | <title>Bookmarlet TEST - fail</title> | 28 | <title>Bookmarlet TEST - fail</title> |
32 | <script type="text/javascript" src="../../../js/MochiKit/MochiKit.js"></script> | 29 | <script type="text/javascript" src="../../../js/MochiKit/MochiKit.js"></script> |
33 | <script type="text/javascript" src="../../SimpleTest/SimpleTest.js"></script> | 30 | <script type="text/javascript" src="../../SimpleTest/SimpleTest.js"></script> |
34 | <link rel="stylesheet" type="text/css" href="../../SimpleTest/test.css"> | 31 | <link rel="stylesheet" type="text/css" href="../../SimpleTest/test.css"> |
35 | 32 | ||
36 | <!-- link rel="stylesheet" type="text/css" href="./Bookmarklet.css" --> | 33 | <!-- link rel="stylesheet" type="text/css" href="./Bookmarklet.css" --> |
37 | <script type='text/javascript' src='../../../js/Bookmarklet.js'></script> | 34 | <script type='text/javascript' src='../../../js/Bookmarklet.js'></script> |
38 | <script type='text/javascript' src='../../../../_build/_scratch/bookmarklet_test.js'></script> | 35 | <script type='text/javascript' src='../../../../_build/_scratch/bookmarklet_test.js'></script> |
39 | </head> | 36 | </head> |
40 | <body> | 37 | <body> |
41 | 38 | ||
42 | <!-- TWITTER Login Form --> | 39 | <!-- TWITTER Login Form --> |
43 | <!-- form id="signin" action="https://twitter.com/sessions" method="post"> | 40 | <!-- form id="signin" action="https://twitter.com/sessions" method="post"> |
44 | <input id="authenticity_token" type="hidden" value="a3a9abfa089122e4b437736313e54f2a25911101" name="authenticity_token"/> | 41 | <input id="authenticity_token" type="hidden" value="a3a9abfa089122e4b437736313e54f2a25911101" name="authenticity_token"/> |
45 | <fieldset class="common-form standard-form"> | 42 | <fieldset class="common-form standard-form"> |
46 | <legend>Please sign in</legend> | 43 | <legend>Please sign in</legend> |
47 | <p> | 44 | <p> |
48 | <label class="inside" for="username" tabindex="1">user name or email address:</label> | 45 | <label class="inside" for="username" tabindex="1">user name or email address:</label> |
49 | <input id="username" type="text" title="username" value="" name="session[username_or_email]"/> | 46 | <input id="username" type="text" title="username" value="" name="session[username_or_email]"/> |
50 | </p> | 47 | </p> |
51 | <p> | 48 | <p> |
52 | <label class="inside" for="password" tabindex="2">password:</label> | 49 | <label class="inside" for="password" tabindex="2">password:</label> |
53 | <input id="password" type="password" title="password" value="" name="session[password]"/> | 50 | <input id="password" type="password" title="password" value="" name="session[password]"/> |
54 | </p> | 51 | </p> |
55 | <p class="remember"></p> | 52 | <p class="remember"></p> |
56 | <p class="submit"></p> | 53 | <p class="submit"></p> |
57 | <p class="forgot"></p> | 54 | <p class="forgot"></p> |
58 | <p class="complete"></p> | 55 | <p class="complete"></p> |
59 | </fieldset> | 56 | </fieldset> |
60 | </form --> | 57 | </form --> |
61 | 58 | ||
62 | <!-- ###################################################################### --> | 59 | <!-- ###################################################################### --> |
63 | <!-- | 60 | <!-- |
64 | <div id="clipperzBookmarklet" style=""> | 61 | <div id="clipperzBookmarklet" style=""> |
65 | <div id="clipperzBookmarkletResult" style=""><p>The direct login configuration has been collected.</p></div> | 62 | <div id="clipperzBookmarkletResult" style=""><p>The direct login configuration has been collected.</p></div> |
66 | <div id="clipperzBookmarletButton" style=""></div> | 63 | <div id="clipperzBookmarletButton" style=""></div> |
67 | <div id="clipperzBookmarletAfterCopyHint" style=""><p>Now you can return to the Clipperz main interface and create a new card</p></div> | 64 | <div id="clipperzBookmarletAfterCopyHint" style=""><p>Now you can return to the Clipperz main interface and create a new card</p></div> |
68 | </div> | 65 | </div> |
69 | --> | 66 | --> |
70 | <!-- | 67 | <!-- |
71 | <div id="clipperzBookmarklet"> | 68 | <div id="clipperzBookmarklet"> |
72 | <div id="clipperzBookmarkletResult"><div id="clipperzBookmarkletResultIcon"></div><p id="clipperzBookmarkletResultText"></p></div> | 69 | <div id="clipperzBookmarkletResult"><div id="clipperzBookmarkletResultIcon"></div><p id="clipperzBookmarkletResultText"></p></div> |
73 | <div id="clipperzBookmarletButton"></div> | 70 | <div id="clipperzBookmarletButton"></div> |
74 | <div id="clipperzBookmarletAfterCopyHint"><p id="clipperzBookmarkletHintText"></p></div> | 71 | <div id="clipperzBookmarletAfterCopyHint"><p id="clipperzBookmarkletHintText"></p></div> |
75 | </div> | 72 | </div> |
76 | --> | 73 | --> |
77 | 74 | ||
78 | 75 | ||
79 | <!-- ###################################################################### --> | 76 | <!-- ###################################################################### --> |
80 | 77 | ||
81 | <pre id="test"> | 78 | <pre id="test"> |
82 | <script type="text/javascript"> | 79 | <script type="text/javascript"> |
83 | try { | 80 | try { |
84 | runBookmarklet(); | 81 | runBookmarklet(); |
85 | // varparameters; | 82 | // varparameters; |
86 | //runBookmarklet(); | 83 | //runBookmarklet(); |
87 | 84 | ||
88 | //parameters = getLoginFormConfiguration(); | 85 | //parameters = getLoginFormConfiguration(); |
89 | 86 | ||
90 | // SimpleTest.ok(parameters != null, "The bookmarklet returns something useful"); | 87 | // SimpleTest.ok(parameters != null, "The bookmarklet returns something useful"); |
91 | // SimpleTest.ok(bookmarkletClip != null,"The clipboard bridge has been created"); | 88 | // SimpleTest.ok(bookmarkletClip != null,"The clipboard bridge has been created"); |
92 | // SimpleTest.ok(bookmarkletClip.ready,"The clipboard bridge has been created AND is ready"); | 89 | // SimpleTest.ok(bookmarkletClip.ready,"The clipboard bridge has been created AND is ready"); |
93 | SimpleTest.ok(true, "no exception raised"); | 90 | SimpleTest.ok(true, "no exception raised"); |
94 | 91 | ||
95 | } catch (err) { | 92 | } catch (err) { |
96 | 93 | ||
97 | var s = "test suite failure!\n"; | 94 | var s = "test suite failure!\n"; |
98 | var o = {}; | 95 | var o = {}; |
99 | var k = null; | 96 | var k = null; |
100 | for (k in err) { | 97 | for (k in err) { |
101 | // ensure unique keys?! | 98 | // ensure unique keys?! |
102 | if (!o[k]) { | 99 | if (!o[k]) { |
103 | s += k + ": " + err[k] + "\n"; | 100 | s += k + ": " + err[k] + "\n"; |
104 | o[k] = err[k]; | 101 | o[k] = err[k]; |
105 | } | 102 | } |
106 | } | 103 | } |
107 | ok ( false, s ); | 104 | ok ( false, s ); |
108 | } | 105 | } |
109 | 106 | ||
110 | </script> | 107 | </script> |
111 | </pre> | 108 | </pre> |
112 | </body> | 109 | </body> |
113 | </html> | 110 | </html> |
diff --git a/frontend/gamma/tests/tests/Bookmarklet/Twitter.html b/frontend/gamma/tests/tests/Bookmarklet/Twitter.html index c9ee827..27dc6a1 100644 --- a/frontend/gamma/tests/tests/Bookmarklet/Twitter.html +++ b/frontend/gamma/tests/tests/Bookmarklet/Twitter.html | |||
@@ -1,113 +1,110 @@ | |||
1 | <!-- | 1 | <!-- |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | --> | 24 | --> |
28 | 25 | ||
29 | <html> | 26 | <html> |
30 | <head> | 27 | <head> |
31 | <title>Bookmarlet TEST - ok</title> | 28 | <title>Bookmarlet TEST - ok</title> |
32 | <script type="text/javascript" src="../../../js/MochiKit/MochiKit.js"></script> | 29 | <script type="text/javascript" src="../../../js/MochiKit/MochiKit.js"></script> |
33 | <script type="text/javascript" src="../../SimpleTest/SimpleTest.js"></script> | 30 | <script type="text/javascript" src="../../SimpleTest/SimpleTest.js"></script> |
34 | <link rel="stylesheet" type="text/css" href="../../SimpleTest/test.css"> | 31 | <link rel="stylesheet" type="text/css" href="../../SimpleTest/test.css"> |
35 | 32 | ||
36 | <!-- link rel="stylesheet" type="text/css" href="./Bookmarklet.css" --> | 33 | <!-- link rel="stylesheet" type="text/css" href="./Bookmarklet.css" --> |
37 | <script type='text/javascript' src='../../../js/Bookmarklet.js'></script> | 34 | <script type='text/javascript' src='../../../js/Bookmarklet.js'></script> |
38 | <script type='text/javascript' src='../../../../_build/_scratch/bookmarklet_test.js'></script> | 35 | <script type='text/javascript' src='../../../../_build/_scratch/bookmarklet_test.js'></script> |
39 | </head> | 36 | </head> |
40 | <body> | 37 | <body> |
41 | 38 | ||
42 | <!-- TWITTER Login Form --> | 39 | <!-- TWITTER Login Form --> |
43 | <form id="signin" action="https://twitter.com/sessions" method="post"> | 40 | <form id="signin" action="https://twitter.com/sessions" method="post"> |
44 | <input id="authenticity_token" type="hidden" value="a3a9abfa089122e4b437736313e54f2a25911101" name="authenticity_token"/> | 41 | <input id="authenticity_token" type="hidden" value="a3a9abfa089122e4b437736313e54f2a25911101" name="authenticity_token"/> |
45 | <fieldset class="common-form standard-form"> | 42 | <fieldset class="common-form standard-form"> |
46 | <legend>Please sign in</legend> | 43 | <legend>Please sign in</legend> |
47 | <p> | 44 | <p> |
48 | <label class="inside" for="username" tabindex="1">user name or email address:</label> | 45 | <label class="inside" for="username" tabindex="1">user name or email address:</label> |
49 | <input id="username" type="text" title="username" value="" name="session[username_or_email]"/> | 46 | <input id="username" type="text" title="username" value="" name="session[username_or_email]"/> |
50 | </p> | 47 | </p> |
51 | <p> | 48 | <p> |
52 | <label class="inside" for="password" tabindex="2">password:</label> | 49 | <label class="inside" for="password" tabindex="2">password:</label> |
53 | <input id="password" type="password" title="password" value="" name="session[password]"/> | 50 | <input id="password" type="password" title="password" value="" name="session[password]"/> |
54 | </p> | 51 | </p> |
55 | <p class="remember"></p> | 52 | <p class="remember"></p> |
56 | <p class="submit"></p> | 53 | <p class="submit"></p> |
57 | <p class="forgot"></p> | 54 | <p class="forgot"></p> |
58 | <p class="complete"></p> | 55 | <p class="complete"></p> |
59 | </fieldset> | 56 | </fieldset> |
60 | </form> | 57 | </form> |
61 | 58 | ||
62 | <!-- ###################################################################### --> | 59 | <!-- ###################################################################### --> |
63 | <!-- | 60 | <!-- |
64 | <div id="clipperzBookmarklet" style=""> | 61 | <div id="clipperzBookmarklet" style=""> |
65 | <div id="clipperzBookmarkletResult" style=""><p>The direct login configuration has been collected.</p></div> | 62 | <div id="clipperzBookmarkletResult" style=""><p>The direct login configuration has been collected.</p></div> |
66 | <div id="clipperzBookmarletButton" style=""></div> | 63 | <div id="clipperzBookmarletButton" style=""></div> |
67 | <div id="clipperzBookmarletAfterCopyHint" style=""><p>Now you can return to the Clipperz main interface and create a new card</p></div> | 64 | <div id="clipperzBookmarletAfterCopyHint" style=""><p>Now you can return to the Clipperz main interface and create a new card</p></div> |
68 | </div> | 65 | </div> |
69 | --> | 66 | --> |
70 | <!-- | 67 | <!-- |
71 | <div id="clipperzBookmarklet"> | 68 | <div id="clipperzBookmarklet"> |
72 | <div id="clipperzBookmarkletResult"><div id="clipperzBookmarkletResultIcon"></div><p id="clipperzBookmarkletResultText"></p></div> | 69 | <div id="clipperzBookmarkletResult"><div id="clipperzBookmarkletResultIcon"></div><p id="clipperzBookmarkletResultText"></p></div> |
73 | <div id="clipperzBookmarletButton"></div> | 70 | <div id="clipperzBookmarletButton"></div> |
74 | <div id="clipperzBookmarletAfterCopyHint"><p id="clipperzBookmarkletHintText"></p></div> | 71 | <div id="clipperzBookmarletAfterCopyHint"><p id="clipperzBookmarkletHintText"></p></div> |
75 | </div> | 72 | </div> |
76 | --> | 73 | --> |
77 | 74 | ||
78 | 75 | ||
79 | <!-- ###################################################################### --> | 76 | <!-- ###################################################################### --> |
80 | 77 | ||
81 | <pre id="test"> | 78 | <pre id="test"> |
82 | <script type="text/javascript"> | 79 | <script type="text/javascript"> |
83 | try { | 80 | try { |
84 | runBookmarklet(); | 81 | runBookmarklet(); |
85 | // varparameters; | 82 | // varparameters; |
86 | //runBookmarklet(); | 83 | //runBookmarklet(); |
87 | 84 | ||
88 | //parameters = getLoginFormConfiguration(); | 85 | //parameters = getLoginFormConfiguration(); |
89 | 86 | ||
90 | // SimpleTest.ok(parameters != null, "The bookmarklet returns something useful"); | 87 | // SimpleTest.ok(parameters != null, "The bookmarklet returns something useful"); |
91 | // SimpleTest.ok(bookmarkletClip != null,"The clipboard bridge has been created"); | 88 | // SimpleTest.ok(bookmarkletClip != null,"The clipboard bridge has been created"); |
92 | // SimpleTest.ok(bookmarkletClip.ready,"The clipboard bridge has been created AND is ready"); | 89 | // SimpleTest.ok(bookmarkletClip.ready,"The clipboard bridge has been created AND is ready"); |
93 | SimpleTest.ok(true, "no exception raised"); | 90 | SimpleTest.ok(true, "no exception raised"); |
94 | 91 | ||
95 | } catch (err) { | 92 | } catch (err) { |
96 | 93 | ||
97 | var s = "test suite failure!\n"; | 94 | var s = "test suite failure!\n"; |
98 | var o = {}; | 95 | var o = {}; |
99 | var k = null; | 96 | var k = null; |
100 | for (k in err) { | 97 | for (k in err) { |
101 | // ensure unique keys?! | 98 | // ensure unique keys?! |
102 | if (!o[k]) { | 99 | if (!o[k]) { |
103 | s += k + ": " + err[k] + "\n"; | 100 | s += k + ": " + err[k] + "\n"; |
104 | o[k] = err[k]; | 101 | o[k] = err[k]; |
105 | } | 102 | } |
106 | } | 103 | } |
107 | ok ( false, s ); | 104 | ok ( false, s ); |
108 | } | 105 | } |
109 | 106 | ||
110 | </script> | 107 | </script> |
111 | </pre> | 108 | </pre> |
112 | </body> | 109 | </body> |
113 | </html> | 110 | </html> |
diff --git a/frontend/gamma/tests/tests/Bookmarklet/index.html b/frontend/gamma/tests/tests/Bookmarklet/index.html index 729bf21..9ee3dec 100644 --- a/frontend/gamma/tests/tests/Bookmarklet/index.html +++ b/frontend/gamma/tests/tests/Bookmarklet/index.html | |||
@@ -1,42 +1,39 @@ | |||
1 | <!-- | 1 | <!-- |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | --> | 24 | --> |
28 | 25 | ||
29 | <html> | 26 | <html> |
30 | <head> | 27 | <head> |
31 | <title>Complete TEST suite</title> | 28 | <title>Complete TEST suite</title> |
32 | <script type="text/javascript" src="../../../js/MochiKit/MochiKit.js"></script> | 29 | <script type="text/javascript" src="../../../js/MochiKit/MochiKit.js"></script> |
33 | <script type="text/javascript" src="../../SimpleTest/TestRunner.js"></script> | 30 | <script type="text/javascript" src="../../SimpleTest/TestRunner.js"></script> |
34 | </head> | 31 | </head> |
35 | <body> | 32 | <body> |
36 | <script> | 33 | <script> |
37 | TestRunner.runTests( | 34 | TestRunner.runTests( |
38 | 'Twitter.html' | 35 | 'Twitter.html' |
39 | ); | 36 | ); |
40 | </script> | 37 | </script> |
41 | </body> | 38 | </body> |
42 | </html> \ No newline at end of file | 39 | </html> \ No newline at end of file |
diff --git a/frontend/gamma/tests/tests/Clipperz/Async.html b/frontend/gamma/tests/tests/Clipperz/Async.html index 02f4de2..6d28fdb 100644 --- a/frontend/gamma/tests/tests/Clipperz/Async.html +++ b/frontend/gamma/tests/tests/Clipperz/Async.html | |||
@@ -1,53 +1,50 @@ | |||
1 | <!-- | 1 | <!-- |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | --> | 24 | --> |
28 | 25 | ||
29 | <html> | 26 | <html> |
30 | <head> | 27 | <head> |
31 | <title>Clipperz.Async - test</title> | 28 | <title>Clipperz.Async - test</title> |
32 | 29 | ||
33 | <script type="text/javascript" src="../../../js/MochiKit/MochiKit.js"></script> | 30 | <script type="text/javascript" src="../../../js/MochiKit/MochiKit.js"></script> |
34 | <script type="text/javascript" src="../../SimpleTest/SimpleTest.js"></script> | 31 | <script type="text/javascript" src="../../SimpleTest/SimpleTest.js"></script> |
35 | <link rel="stylesheet" type="text/css" href="../../SimpleTest/test.css"> | 32 | <link rel="stylesheet" type="text/css" href="../../SimpleTest/test.css"> |
36 | 33 | ||
37 | <script type='text/javascript' src='../../../js/JSON/json2.js'></script> | 34 | <script type='text/javascript' src='../../../js/JSON/json2.js'></script> |
38 | 35 | ||
39 | <script type='text/javascript' src='../../../js/Clipperz/YUI/Utils.js'></script> | 36 | <script type='text/javascript' src='../../../js/Clipperz/YUI/Utils.js'></script> |
40 | <script type='text/javascript' src='../../../js/Clipperz/Base.js'></script> | 37 | <script type='text/javascript' src='../../../js/Clipperz/Base.js'></script> |
41 | <script type='text/javascript' src='../../../js/Clipperz/ByteArray.js'></script> | 38 | <script type='text/javascript' src='../../../js/Clipperz/ByteArray.js'></script> |
42 | <script type='text/javascript' src='../../../js/Clipperz/Logging.js'></script> | 39 | <script type='text/javascript' src='../../../js/Clipperz/Logging.js'></script> |
43 | <script type='text/javascript' src='../../../js/Clipperz/Async.js'></script> | 40 | <script type='text/javascript' src='../../../js/Clipperz/Async.js'></script> |
44 | <script type="text/javascript" src="../../SimpleTest/SimpleTest.Async.js"></script> | 41 | <script type="text/javascript" src="../../SimpleTest/SimpleTest.Async.js"></script> |
45 | </head> | 42 | </head> |
46 | <body> | 43 | <body> |
47 | 44 | ||
48 | <pre id="test"> | 45 | <pre id="test"> |
49 | <!--<script type="text/javascript" src="User.data.js"></script>//--> | 46 | <!--<script type="text/javascript" src="User.data.js"></script>//--> |
50 | <script type="text/javascript" src="Async.test.js"></script> | 47 | <script type="text/javascript" src="Async.test.js"></script> |
51 | </pre> | 48 | </pre> |
52 | </body> | 49 | </body> |
53 | </html> | 50 | </html> |
diff --git a/frontend/gamma/tests/tests/Clipperz/Async.test.js b/frontend/gamma/tests/tests/Clipperz/Async.test.js index fa6daca..443130e 100644 --- a/frontend/gamma/tests/tests/Clipperz/Async.test.js +++ b/frontend/gamma/tests/tests/Clipperz/Async.test.js | |||
@@ -1,120 +1,117 @@ | |||
1 | /* | 1 | /* |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | */ | 24 | */ |
28 | 25 | ||
29 | testObject = function (aLabel) { | 26 | testObject = function (aLabel) { |
30 | this._label = aLabel; | 27 | this._label = aLabel; |
31 | this._sibling = null; | 28 | this._sibling = null; |
32 | } | 29 | } |
33 | 30 | ||
34 | testObject.prototype = { | 31 | testObject.prototype = { |
35 | 'label': function () { | 32 | 'label': function () { |
36 | return MochiKit.Async.succeed(this._label); | 33 | return MochiKit.Async.succeed(this._label); |
37 | }, | 34 | }, |
38 | 35 | ||
39 | 'shouldHit': function () { | 36 | 'shouldHit': function () { |
40 | var filterRegExp; | 37 | var filterRegExp; |
41 | 38 | ||
42 | filterRegExp = new RegExp("hit", "i"); | 39 | filterRegExp = new RegExp("hit", "i"); |
43 | 40 | ||
44 | return Clipperz.Async.callbacks("testObject.shouldHit", [ | 41 | return Clipperz.Async.callbacks("testObject.shouldHit", [ |
45 | MochiKit.Base.method(this, 'label'), | 42 | MochiKit.Base.method(this, 'label'), |
46 | MochiKit.Base.method(filterRegExp, 'test') | 43 | MochiKit.Base.method(filterRegExp, 'test') |
47 | ]); | 44 | ]); |
48 | }, | 45 | }, |
49 | 46 | ||
50 | 'sibling': function () { | 47 | 'sibling': function () { |
51 | return this._sibling; | 48 | return this._sibling; |
52 | }, | 49 | }, |
53 | 50 | ||
54 | 'setSibling': function (aSibling) { | 51 | 'setSibling': function (aSibling) { |
55 | this._sibling = aSibling; | 52 | this._sibling = aSibling; |
56 | } | 53 | } |
57 | 54 | ||
58 | } | 55 | } |
59 | 56 | ||
60 | var tests = { | 57 | var tests = { |
61 | 58 | ||
62 | //------------------------------------------------------------------------- | 59 | //------------------------------------------------------------------------- |
63 | 60 | ||
64 | 'succeedingForkedDeferrer_test': function (someTestArgs) { | 61 | 'succeedingForkedDeferrer_test': function (someTestArgs) { |
65 | var deferredResult; | 62 | var deferredResult; |
66 | 63 | ||
67 | deferredResult = new Clipperz.Async.Deferred('Async.test succeedingForkedDeferred', someTestArgs); | 64 | deferredResult = new Clipperz.Async.Deferred('Async.test succeedingForkedDeferred', someTestArgs); |
68 | deferredResult.addCallback(Clipperz.Async.forkAndJoin("Async.test succeedingForkedDeferred", | 65 | deferredResult.addCallback(Clipperz.Async.forkAndJoin("Async.test succeedingForkedDeferred", |
69 | [ | 66 | [ |
70 | MochiKit.Base.partial(MochiKit.Async.succeed, 3), | 67 | MochiKit.Base.partial(MochiKit.Async.succeed, 3), |
71 | MochiKit.Base.partial(MochiKit.Async.succeed, 2) | 68 | MochiKit.Base.partial(MochiKit.Async.succeed, 2) |
72 | ], someTestArgs | 69 | ], someTestArgs |
73 | )); | 70 | )); |
74 | deferredResult.addCallback(function (anAsyncResult) { | 71 | deferredResult.addCallback(function (anAsyncResult) { |
75 | var sum; | 72 | var sum; |
76 | 73 | ||
77 | sum = MochiKit.Iter.reduce(MochiKit.Base.operator.add, anAsyncResult); | 74 | sum = MochiKit.Iter.reduce(MochiKit.Base.operator.add, anAsyncResult); |
78 | SimpleTest.is(sum, 5, "the sum of all the returned results should be 5"); | 75 | SimpleTest.is(sum, 5, "the sum of all the returned results should be 5"); |
79 | }); | 76 | }); |
80 | deferredResult.addErrback(function() { | 77 | deferredResult.addErrback(function() { |
81 | SimpleTest.ok(false, "forkAndJoin should succeed and execution path should NOT go through here (1)") | 78 | SimpleTest.ok(false, "forkAndJoin should succeed and execution path should NOT go through here (1)") |
82 | }) | 79 | }) |
83 | deferredResult.callback(); | 80 | deferredResult.callback(); |
84 | 81 | ||
85 | return deferredResult; | 82 | return deferredResult; |
86 | }, | 83 | }, |
87 | 84 | ||
88 | //------------------------------------------------------------------------- | 85 | //------------------------------------------------------------------------- |
89 | 86 | ||
90 | 'succeedingForkedAndWaitDeferrer_test': function (someTestArgs) { | 87 | 'succeedingForkedAndWaitDeferrer_test': function (someTestArgs) { |
91 | var deferredResult; | 88 | var deferredResult; |
92 | 89 | ||
93 | deferredResult = new Clipperz.Async.Deferred('succeedingForkedAndWaitDeferrer_test', someTestArgs); | 90 | deferredResult = new Clipperz.Async.Deferred('succeedingForkedAndWaitDeferrer_test', someTestArgs); |
94 | deferredResult.addCallback(Clipperz.Async.forkAndJoin("Async.test succeedingForkedAndWaitDeferrer", | 91 | deferredResult.addCallback(Clipperz.Async.forkAndJoin("Async.test succeedingForkedAndWaitDeferrer", |
95 | [ | 92 | [ |
96 | MochiKit.Base.partial(MochiKit.Async.callLater, 2, MochiKit.Async.succeed, 3), | 93 | MochiKit.Base.partial(MochiKit.Async.callLater, 2, MochiKit.Async.succeed, 3), |
97 | MochiKit.Base.partial(MochiKit.Async.callLater, 1, MochiKit.Async.succeed, 2), | 94 | MochiKit.Base.partial(MochiKit.Async.callLater, 1, MochiKit.Async.succeed, 2), |
98 | MochiKit.Base.partial(MochiKit.Async.callLater, 3, MochiKit.Async.succeed, 7) | 95 | MochiKit.Base.partial(MochiKit.Async.callLater, 3, MochiKit.Async.succeed, 7) |
99 | ], someTestArgs | 96 | ], someTestArgs |
100 | )); | 97 | )); |
101 | deferredResult.addCallback(function (anAsyncResult) { | 98 | deferredResult.addCallback(function (anAsyncResult) { |
102 | var sum; | 99 | var sum; |
103 | 100 | ||
104 | sum = MochiKit.Iter.reduce(MochiKit.Base.operator.add, anAsyncResult); | 101 | sum = MochiKit.Iter.reduce(MochiKit.Base.operator.add, anAsyncResult); |
105 | SimpleTest.is(sum, 12, "the sum of all the returned results should be 12"); | 102 | SimpleTest.is(sum, 12, "the sum of all the returned results should be 12"); |
106 | }); | 103 | }); |
107 | deferredResult.addErrback(function() { | 104 | deferredResult.addErrback(function() { |
108 | SimpleTest.ok(false, "forkAndJoin should succeed and execution path should NOT go through here (2)") | 105 | SimpleTest.ok(false, "forkAndJoin should succeed and execution path should NOT go through here (2)") |
109 | }) | 106 | }) |
110 | deferredResult.callback(); | 107 | deferredResult.callback(); |
111 | 108 | ||
112 | return deferredResult; | 109 | return deferredResult; |
113 | }, | 110 | }, |
114 | 111 | ||
115 | //------------------------------------------------------------------------- | 112 | //------------------------------------------------------------------------- |
116 | 113 | ||
117 | 'failingForkedDeferrer_test': function (someTestArgs) { | 114 | 'failingForkedDeferrer_test': function (someTestArgs) { |
118 | var deferredResult; | 115 | var deferredResult; |
119 | 116 | ||
120 | deferredResult = new Clipperz.Async.Deferred('Async.test failingForkedDeferred', someTestArgs); | 117 | deferredResult = new Clipperz.Async.Deferred('Async.test failingForkedDeferred', someTestArgs); |
diff --git a/frontend/gamma/tests/tests/Clipperz/Base.html b/frontend/gamma/tests/tests/Clipperz/Base.html index 6b29417..a1b1df8 100644 --- a/frontend/gamma/tests/tests/Clipperz/Base.html +++ b/frontend/gamma/tests/tests/Clipperz/Base.html | |||
@@ -1,55 +1,52 @@ | |||
1 | <!-- | 1 | <!-- |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | --> | 24 | --> |
28 | 25 | ||
29 | <html> | 26 | <html> |
30 | <head> | 27 | <head> |
31 | <title>Clipperz.Base - TEST</title> | 28 | <title>Clipperz.Base - TEST</title> |
32 | 29 | ||
33 | <script type="text/javascript" src="../../../js/MochiKit/MochiKit.js"></script> | 30 | <script type="text/javascript" src="../../../js/MochiKit/MochiKit.js"></script> |
34 | <script type="text/javascript" src="../../SimpleTest/SimpleTest.js"></script> | 31 | <script type="text/javascript" src="../../SimpleTest/SimpleTest.js"></script> |
35 | <link rel="stylesheet" type="text/css" href="../../SimpleTest/test.css"> | 32 | <link rel="stylesheet" type="text/css" href="../../SimpleTest/test.css"> |
36 | 33 | ||
37 | <script type='text/javascript' src='../../../js/JSON/json2.js'></script> | 34 | <script type='text/javascript' src='../../../js/JSON/json2.js'></script> |
38 | 35 | ||
39 | <script type='text/javascript' src='../../../js/Clipperz/YUI/Utils.js'></script> | 36 | <script type='text/javascript' src='../../../js/Clipperz/YUI/Utils.js'></script> |
40 | <script type='text/javascript' src='../../../js/Clipperz/Base.js'></script> | 37 | <script type='text/javascript' src='../../../js/Clipperz/Base.js'></script> |
41 | <script type='text/javascript' src='../../../js/Clipperz/ByteArray.js'></script> | 38 | <script type='text/javascript' src='../../../js/Clipperz/ByteArray.js'></script> |
42 | <script type='text/javascript' src='../../../js/Clipperz/Logging.js'></script> | 39 | <script type='text/javascript' src='../../../js/Clipperz/Logging.js'></script> |
43 | <script type='text/javascript' src='../../../js/Clipperz/Async.js'></script> | 40 | <script type='text/javascript' src='../../../js/Clipperz/Async.js'></script> |
44 | <script type='text/javascript' src='../../../js/Clipperz/KeyValueObjectStore.js'></script> | 41 | <script type='text/javascript' src='../../../js/Clipperz/KeyValueObjectStore.js'></script> |
45 | 42 | ||
46 | 43 | ||
47 | <script type="text/javascript" src="../../SimpleTest/SimpleTest.Async.js"></script> | 44 | <script type="text/javascript" src="../../SimpleTest/SimpleTest.Async.js"></script> |
48 | 45 | ||
49 | </head> | 46 | </head> |
50 | <body> | 47 | <body> |
51 | <pre id="test"> | 48 | <pre id="test"> |
52 | <script type="text/javascript" src="Base.test.js"></script> | 49 | <script type="text/javascript" src="Base.test.js"></script> |
53 | </pre> | 50 | </pre> |
54 | </body> | 51 | </body> |
55 | </html> | 52 | </html> |
diff --git a/frontend/gamma/tests/tests/Clipperz/Base.test.js b/frontend/gamma/tests/tests/Clipperz/Base.test.js index e5c7caf..fc827f7 100644 --- a/frontend/gamma/tests/tests/Clipperz/Base.test.js +++ b/frontend/gamma/tests/tests/Clipperz/Base.test.js | |||
@@ -1,120 +1,117 @@ | |||
1 | /* | 1 | /* |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | */ | 24 | */ |
28 | 25 | ||
29 | 26 | ||
30 | //============================================================================= | 27 | //============================================================================= |
31 | 28 | ||
32 | testEvalJSON = function(aString, shouldFail, aDescription) { | 29 | testEvalJSON = function(aString, shouldFail, aDescription) { |
33 | var result; | 30 | var result; |
34 | 31 | ||
35 | if (shouldFail == true) { | 32 | if (shouldFail == true) { |
36 | try { | 33 | try { |
37 | result = Clipperz.Base.evalJSON(aString); | 34 | result = Clipperz.Base.evalJSON(aString); |
38 | is(true, false, aDescription + ": vulnerability not caught"); | 35 | is(true, false, aDescription + ": vulnerability not caught"); |
39 | //console.log(result); | 36 | //console.log(result); |
40 | } catch(exception) { | 37 | } catch(exception) { |
41 | is(true, true, aDescription + ": vulnerability correctly caught"); | 38 | is(true, true, aDescription + ": vulnerability correctly caught"); |
42 | } | 39 | } |
43 | } else { | 40 | } else { |
44 | try { | 41 | try { |
45 | result = Clipperz.Base.evalJSON(aString); | 42 | result = Clipperz.Base.evalJSON(aString); |
46 | is(true, true, aDescription + ": configuration correctly checked"); | 43 | is(true, true, aDescription + ": configuration correctly checked"); |
47 | } catch(exception) { | 44 | } catch(exception) { |
48 | is(true, false, aDescription + ": configuration wrongly caught as malicious"); | 45 | is(true, false, aDescription + ": configuration wrongly caught as malicious"); |
49 | // console.log(exception); | 46 | // console.log(exception); |
50 | } | 47 | } |
51 | } | 48 | } |
52 | 49 | ||
53 | return result; | 50 | return result; |
54 | } | 51 | } |
55 | 52 | ||
56 | //============================================================================= | 53 | //============================================================================= |
57 | 54 | ||
58 | var tests = { | 55 | var tests = { |
59 | 56 | ||
60 | '001_test': function () { | 57 | '001_test': function () { |
61 | var stringToSplit; | 58 | var stringToSplit; |
62 | varsplittedString; | 59 | varsplittedString; |
63 | 60 | ||
64 | stringToSplit = "stringToSplit"; | 61 | stringToSplit = "stringToSplit"; |
65 | splittedString = Clipperz.Base.splitStringAtFixedTokenSize(stringToSplit, 2); | 62 | splittedString = Clipperz.Base.splitStringAtFixedTokenSize(stringToSplit, 2); |
66 | is(splittedString.length, 7); | 63 | is(splittedString.length, 7); |
67 | is(splittedString[0], 'st'); | 64 | is(splittedString[0], 'st'); |
68 | is(splittedString[1], 'ri'); | 65 | is(splittedString[1], 'ri'); |
69 | is(splittedString[2], 'ng'); | 66 | is(splittedString[2], 'ng'); |
70 | is(splittedString[3], 'To'); | 67 | is(splittedString[3], 'To'); |
71 | is(splittedString[4], 'Sp'); | 68 | is(splittedString[4], 'Sp'); |
72 | is(splittedString[5], 'li'); | 69 | is(splittedString[5], 'li'); |
73 | is(splittedString[6], 't', "test that should pass"); | 70 | is(splittedString[6], 't', "test that should pass"); |
74 | 71 | ||
75 | stringToSplit = "stringToSplit"; | 72 | stringToSplit = "stringToSplit"; |
76 | splittedString = Clipperz.Base.splitStringAtFixedTokenSize(stringToSplit, 20); | 73 | splittedString = Clipperz.Base.splitStringAtFixedTokenSize(stringToSplit, 20); |
77 | is(splittedString.length, 1); | 74 | is(splittedString.length, 1); |
78 | is(splittedString[0], 'stringToSplit'); | 75 | is(splittedString[0], 'stringToSplit'); |
79 | 76 | ||
80 | stringToSplit = null; | 77 | stringToSplit = null; |
81 | splittedString = Clipperz.Base.splitStringAtFixedTokenSize(stringToSplit, 20); | 78 | splittedString = Clipperz.Base.splitStringAtFixedTokenSize(stringToSplit, 20); |
82 | is(splittedString.length, 0); | 79 | is(splittedString.length, 0); |
83 | }, | 80 | }, |
84 | 81 | ||
85 | //------------------------------------------------------------------------- | 82 | //------------------------------------------------------------------------- |
86 | 83 | ||
87 | '002_test': function () { | 84 | '002_test': function () { |
88 | var anObject; | 85 | var anObject; |
89 | 86 | ||
90 | anObject = "String"; | 87 | anObject = "String"; |
91 | is(Clipperz.Base.objectType(anObject), 'string', "test on strings (1)"); | 88 | is(Clipperz.Base.objectType(anObject), 'string', "test on strings (1)"); |
92 | anObject = new String("String"); | 89 | anObject = new String("String"); |
93 | is(Clipperz.Base.objectType(anObject), 'string', "test on strings (2)"); | 90 | is(Clipperz.Base.objectType(anObject), 'string', "test on strings (2)"); |
94 | 91 | ||
95 | anObject = 120; | 92 | anObject = 120; |
96 | is(Clipperz.Base.objectType(anObject), 'number', "test on numbers (1)"); | 93 | is(Clipperz.Base.objectType(anObject), 'number', "test on numbers (1)"); |
97 | anObject = new Number(120); | 94 | anObject = new Number(120); |
98 | is(Clipperz.Base.objectType(anObject), 'number', "test on numbers (2)"); | 95 | is(Clipperz.Base.objectType(anObject), 'number', "test on numbers (2)"); |
99 | 96 | ||
100 | anObject = true; | 97 | anObject = true; |
101 | is(Clipperz.Base.objectType(anObject), 'boolean', "test on booleans (1)"); | 98 | is(Clipperz.Base.objectType(anObject), 'boolean', "test on booleans (1)"); |
102 | anObject = new Boolean(true); | 99 | anObject = new Boolean(true); |
103 | is(Clipperz.Base.objectType(anObject), 'boolean', "test on booleans (2)"); | 100 | is(Clipperz.Base.objectType(anObject), 'boolean', "test on booleans (2)"); |
104 | 101 | ||
105 | anObject = new Date; | 102 | anObject = new Date; |
106 | is(Clipperz.Base.objectType(anObject), 'date', "test on dates"); | 103 | is(Clipperz.Base.objectType(anObject), 'date', "test on dates"); |
107 | 104 | ||
108 | anObject = new Error("test"); | 105 | anObject = new Error("test"); |
109 | is(Clipperz.Base.objectType(anObject), 'error', "test on errors"); | 106 | is(Clipperz.Base.objectType(anObject), 'error', "test on errors"); |
110 | 107 | ||
111 | anObject = function() {}; | 108 | anObject = function() {}; |
112 | is(Clipperz.Base.objectType(anObject), 'function', "test on functions"); | 109 | is(Clipperz.Base.objectType(anObject), 'function', "test on functions"); |
113 | 110 | ||
114 | anObject = new Object(); | 111 | anObject = new Object(); |
115 | is(Clipperz.Base.objectType(anObject), 'object', "test on objects"); | 112 | is(Clipperz.Base.objectType(anObject), 'object', "test on objects"); |
116 | 113 | ||
117 | 114 | ||
118 | anObject = [1, 2, 3]; | 115 | anObject = [1, 2, 3]; |
119 | is(Clipperz.Base.objectType(anObject), 'array', "test on arrays"); | 116 | is(Clipperz.Base.objectType(anObject), 'array', "test on arrays"); |
120 | }, | 117 | }, |
diff --git a/frontend/gamma/tests/tests/Clipperz/ByteArray.html b/frontend/gamma/tests/tests/Clipperz/ByteArray.html index c8b8ae7..6dc7116 100644 --- a/frontend/gamma/tests/tests/Clipperz/ByteArray.html +++ b/frontend/gamma/tests/tests/Clipperz/ByteArray.html | |||
@@ -1,71 +1,68 @@ | |||
1 | <!-- | 1 | <!-- |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | --> | 24 | --> |
28 | 25 | ||
29 | <html> | 26 | <html> |
30 | <head> | 27 | <head> |
31 | <title>Clipperz.ByteArray - tests</title> | 28 | <title>Clipperz.ByteArray - tests</title> |
32 | 29 | ||
33 | <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/> | 30 | <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/> |
34 | 31 | ||
35 | <script type="text/javascript" src="../../../js/MochiKit/MochiKit.js"></script> | 32 | <script type="text/javascript" src="../../../js/MochiKit/MochiKit.js"></script> |
36 | <script type="text/javascript" src="../../SimpleTest/SimpleTest.js"></script> | 33 | <script type="text/javascript" src="../../SimpleTest/SimpleTest.js"></script> |
37 | <link rel="stylesheet" type="text/css" href="../../SimpleTest/test.css"> | 34 | <link rel="stylesheet" type="text/css" href="../../SimpleTest/test.css"> |
38 | 35 | ||
39 | <script type='text/javascript' src='../../../js/JSON/json2.js'></script> | 36 | <script type='text/javascript' src='../../../js/JSON/json2.js'></script> |
40 | 37 | ||
41 | <script type='text/javascript' src='../../../js/Clipperz/YUI/Utils.js'></script> | 38 | <script type='text/javascript' src='../../../js/Clipperz/YUI/Utils.js'></script> |
42 | <script type='text/javascript' src='../../../js/Clipperz/YUI/DomHelper.js'></script> | 39 | <script type='text/javascript' src='../../../js/Clipperz/YUI/DomHelper.js'></script> |
43 | <script type='text/javascript' src='../../../js/Clipperz/Base.js'></script> | 40 | <script type='text/javascript' src='../../../js/Clipperz/Base.js'></script> |
44 | <script type='text/javascript' src='../../../js/Clipperz/ByteArray.js'></script> | 41 | <script type='text/javascript' src='../../../js/Clipperz/ByteArray.js'></script> |
45 | <script type='text/javascript' src='../../../js/Clipperz/Async.js'></script> | 42 | <script type='text/javascript' src='../../../js/Clipperz/Async.js'></script> |
46 | <script type='text/javascript' src='../../../js/Clipperz/Logging.js'></script> | 43 | <script type='text/javascript' src='../../../js/Clipperz/Logging.js'></script> |
47 | <script type='text/javascript' src='../../../js/Clipperz/Crypto/Base.js'></script> | 44 | <script type='text/javascript' src='../../../js/Clipperz/Crypto/Base.js'></script> |
48 | <script type='text/javascript' src='../../../js/Clipperz/Crypto/BigInt.js'></script> | 45 | <script type='text/javascript' src='../../../js/Clipperz/Crypto/BigInt.js'></script> |
49 | <script type='text/javascript' src='../../../js/Clipperz/Crypto/AES.js'></script> | 46 | <script type='text/javascript' src='../../../js/Clipperz/Crypto/AES.js'></script> |
50 | <script type='text/javascript' src='../../../js/Clipperz/Crypto/SHA.js'></script> | 47 | <script type='text/javascript' src='../../../js/Clipperz/Crypto/SHA.js'></script> |
51 | <script type='text/javascript' src='../../../js/Clipperz/Crypto/PRNG.js'></script> | 48 | <script type='text/javascript' src='../../../js/Clipperz/Crypto/PRNG.js'></script> |
52 | <!-- script type='text/javascript' src='../../../js/Clipperz/Crypto/BigInt.js'></script --> | 49 | <!-- script type='text/javascript' src='../../../js/Clipperz/Crypto/BigInt.js'></script --> |
53 | 50 | ||
54 | <script type="text/javascript" src="../../SimpleTest/SimpleTest.Async.js"></script> | 51 | <script type="text/javascript" src="../../SimpleTest/SimpleTest.Async.js"></script> |
55 | 52 | ||
56 | </head> | 53 | </head> |
57 | <body> | 54 | <body> |
58 | 55 | ||
59 | <pre id="test"> | 56 | <pre id="test"> |
60 | <script> | 57 | <script> |
61 | Clipperz_IEisBroken = false; | 58 | Clipperz_IEisBroken = false; |
62 | </script> | 59 | </script> |
63 | <script type="text/javascript"> | 60 | <script type="text/javascript"> |
64 | var longAsciiText = "Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Nullam ac ipsum. Morbi mauris. Aenean ac elit id metus lobortis elementum. Proin at quam ac ipsum pellentesque adipiscing. Aenean vestibulum, nisl eu suscipit iaculis, quam pede congue mi, sit amet dapibus metus neque eget dui. Suspendisse posuere diam ac sapien. Nulla lobortis dapibus leo. Quisque ornare tortor quis turpis. Aliquam erat volutpat. Ut faucibus lacinia magna. Nunc metus leo, volutpat quis, mollis ac, sagittis ut, turpis. Quisque purus. Mauris ante enim, vehicula eu, suscipit vitae, laoreet vel, nulla. Pellentesque pede leo, aliquam quis, vehicula eget, rhoncus nec, metus. Vestibulum tellus. Suspendisse blandit. Pellentesque vel tellus. Maecenas arcu. Duis eget purus. Curabitur non pede nec odio cursus luctus. In non elit. Nullam eget nunc in nisl elementum commodo. Vivamus sollicitudin pede quis dui. Morbi commodo. Praesent a risus id urna hendrerit fermentum. Nunc ultricies tristique odio. Phasellus imperdiet, sapien eget viverra blandit, tortor risus blandit nisi, et sodales libero dolor quis nisl. Morbi vel enim. Nunc in quam. Vestibulum a magna. Fusce auctor elit in augue. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Mauris tincidunt consectetuer leo. Etiam non turpis. Vestibulum eros. Praesent venenatis adipiscing augue. Pellentesque dapibus odio ac arcu rhoncus sagittis. Nullam vitae augue. Ut magna nulla, congue eu, porta in, egestas quis, ligula. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Curabitur malesuada neque non nulla. Nulla facilisi. Fusce viverra magna ut tellus. Sed rutrum pretium sapien. Vivamus dui. Cras fringilla. Nullam lorem. Vestibulum varius, purus at imperdiet fermentum, metus diam ultricies lacus, vitae aliquam ipsum libero sit amet felis. Sed eget eros ac velit commodo sollicitudin. Morbi in metus in mi viverra lacinia. Sed ut urna. Suspendisse imperdiet tellus ac velit. Duis malesuada velit sit amet sapien. Vestibulum a sapien id libero accumsan luctus. Fusce iaculis. Donec pulvinar orci ut pede. Nam placerat sem ut sem. Ut pretium bibendum nisl. Suspendisse potenti. Phasellus mollis neque in neque. Suspendisse augue magna, eleifend et, malesuada at, viverra in, nisl. Donec vel lectus in justo ultrices tristique. Aliquam erat volutpat. Morbi suscipit, risus ac volutpat mollis, risus metus hendrerit sapien, ac scelerisque est orci eu est. Quisque sit amet velit. Sed libero diam, semper id, eleifend ac, iaculis non, nulla. Donec varius tincidunt arcu. Sed quis metus eu erat adipiscing viverra. Donec odio. Aenean sagittis nisl sed purus. Fusce vel nibh quis felis accumsan bibendum. Etiam et risus ac tortor cursus pharetra. Maecenas tellus. Pellentesque nec felis id eros vehicula commodo. Aliquam interdum sagittis odio. Maecenas at lorem eget mi aliquet sagittis. Mauris quis nibh in odio sodales lacinia. Proin augue mauris, placerat a, blandit vel, tincidunt eget, ante. Quisque turpis purus, placerat eget, tempor consectetuer, aliquet ac, enim. Etiam eleifend vestibulum mi. Vivamus gravida. Morbi dolor. In hac habitasse platea dictumst. Nulla commodo lectus faucibus lorem. Phasellus aliquet pede id metus hendrerit tempus. Fusce convallis pede ac neque tempor dignissim. Sed vitae lorem sit amet justo dapibus porta. Ut quam orci, pretium non, sagittis nec, condimentum id, dolor. Sed tempor. Nunc porta rutrum leo. Nunc id sem. Sed nibh tortor, dapibus eget, feugiat a, pretium pretium, purus. Suspendisse suscipit lobortis sem. Praesent pharetra orci. Quisque molestie tristique quam. Maecenas nunc lorem, rhoncus non, venenatis sed, sodales at, felis. Quisque semper. Quisque malesuada est quis lacus. Nullam a justo. Aliquam pellentesque, ante ut congue molestie, nisl sapien posuere nisl, eu cursus nulla ligula vel nisl. Fusce commodo lacinia magna. Aenean rutrum vestibulum lorem. Pellentesque fermentum tristique ipsum. Nulla facilisi. Donec id mi eget ipsum commodo egestas. Mauris iaculis. Nulla vulputate mi at nisl. In condimentum sodales tellus. Donec metus orci, mollis vel, accumsan ac, ornare ac, lacus. Pellentesque accumsan est et tellus. Nam mollis. Aenean accumsan eros sit amet tellus. Praesent eu libero. Sed tempus urna nec dolor. Nulla facilisi. Duis eleifend rhoncus neque. Curabitur consectetuer quam eu justo. Sed metus. Vivamus risus. Aliquam erat volutpat. Aliquam erat volutpat. Nunc semper urna. Praesent molestie libero a lacus. Nullam suscipit lobortis velit. Praesent rhoncus, felis ut interdum dapibus, ipsum lectus vestibulum nulla, in interdum risus dolor eget orci. Nullam venenatis. Suspendisse laoreet, arcu a luctus consectetuer, libero ligula condimentum quam, eget elementum mauris tortor sed enim. Pellentesque leo. Nam interdum malesuada ante. Praesent fermentum nunc et dolor. Donec auctor volutpat odio. Pellentesque volutpat egestas ipsum. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Cras ac ligula eu justo dignissim accumsan. Nullam nisi. Fusce id sem. Fusce et urna. Pellentesque commodo pharetra lorem. Donec erat. Vestibulum elit arcu, commodo et, consequat eget, posuere eget, sem. Morbi sed nulla sed neque commodo commodo. Aliquam erat volutpat. Ut id turpis a enim malesuada vestibulum. In arcu dui, dignissim vitae, blandit eu, egestas ac, arcu. In ultricies sapien vitae nisi. Proin rhoncus magna eget tortor. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. In dictum. Sed volutpat pharetra quam. Mauris eget eros. Fusce malesuada dolor id pede. Praesent nec justo sed nisi vehicula varius. In scelerisque convallis nulla. Pellentesque sodales massa vulputate urna. Duis metus urna, imperdiet ac, sodales vel, ullamcorper sed, pede. Vestibulum aliquam mollis metus. Praesent tempus tristique elit. Maecenas tellus tortor, pretium id, mollis id, molestie non, turpis. Vivamus nibh magna, bibendum vitae, a."; | 61 | var longAsciiText = "Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Nullam ac ipsum. Morbi mauris. Aenean ac elit id metus lobortis elementum. Proin at quam ac ipsum pellentesque adipiscing. Aenean vestibulum, nisl eu suscipit iaculis, quam pede congue mi, sit amet dapibus metus neque eget dui. Suspendisse posuere diam ac sapien. Nulla lobortis dapibus leo. Quisque ornare tortor quis turpis. Aliquam erat volutpat. Ut faucibus lacinia magna. Nunc metus leo, volutpat quis, mollis ac, sagittis ut, turpis. Quisque purus. Mauris ante enim, vehicula eu, suscipit vitae, laoreet vel, nulla. Pellentesque pede leo, aliquam quis, vehicula eget, rhoncus nec, metus. Vestibulum tellus. Suspendisse blandit. Pellentesque vel tellus. Maecenas arcu. Duis eget purus. Curabitur non pede nec odio cursus luctus. In non elit. Nullam eget nunc in nisl elementum commodo. Vivamus sollicitudin pede quis dui. Morbi commodo. Praesent a risus id urna hendrerit fermentum. Nunc ultricies tristique odio. Phasellus imperdiet, sapien eget viverra blandit, tortor risus blandit nisi, et sodales libero dolor quis nisl. Morbi vel enim. Nunc in quam. Vestibulum a magna. Fusce auctor elit in augue. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Mauris tincidunt consectetuer leo. Etiam non turpis. Vestibulum eros. Praesent venenatis adipiscing augue. Pellentesque dapibus odio ac arcu rhoncus sagittis. Nullam vitae augue. Ut magna nulla, congue eu, porta in, egestas quis, ligula. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Curabitur malesuada neque non nulla. Nulla facilisi. Fusce viverra magna ut tellus. Sed rutrum pretium sapien. Vivamus dui. Cras fringilla. Nullam lorem. Vestibulum varius, purus at imperdiet fermentum, metus diam ultricies lacus, vitae aliquam ipsum libero sit amet felis. Sed eget eros ac velit commodo sollicitudin. Morbi in metus in mi viverra lacinia. Sed ut urna. Suspendisse imperdiet tellus ac velit. Duis malesuada velit sit amet sapien. Vestibulum a sapien id libero accumsan luctus. Fusce iaculis. Donec pulvinar orci ut pede. Nam placerat sem ut sem. Ut pretium bibendum nisl. Suspendisse potenti. Phasellus mollis neque in neque. Suspendisse augue magna, eleifend et, malesuada at, viverra in, nisl. Donec vel lectus in justo ultrices tristique. Aliquam erat volutpat. Morbi suscipit, risus ac volutpat mollis, risus metus hendrerit sapien, ac scelerisque est orci eu est. Quisque sit amet velit. Sed libero diam, semper id, eleifend ac, iaculis non, nulla. Donec varius tincidunt arcu. Sed quis metus eu erat adipiscing viverra. Donec odio. Aenean sagittis nisl sed purus. Fusce vel nibh quis felis accumsan bibendum. Etiam et risus ac tortor cursus pharetra. Maecenas tellus. Pellentesque nec felis id eros vehicula commodo. Aliquam interdum sagittis odio. Maecenas at lorem eget mi aliquet sagittis. Mauris quis nibh in odio sodales lacinia. Proin augue mauris, placerat a, blandit vel, tincidunt eget, ante. Quisque turpis purus, placerat eget, tempor consectetuer, aliquet ac, enim. Etiam eleifend vestibulum mi. Vivamus gravida. Morbi dolor. In hac habitasse platea dictumst. Nulla commodo lectus faucibus lorem. Phasellus aliquet pede id metus hendrerit tempus. Fusce convallis pede ac neque tempor dignissim. Sed vitae lorem sit amet justo dapibus porta. Ut quam orci, pretium non, sagittis nec, condimentum id, dolor. Sed tempor. Nunc porta rutrum leo. Nunc id sem. Sed nibh tortor, dapibus eget, feugiat a, pretium pretium, purus. Suspendisse suscipit lobortis sem. Praesent pharetra orci. Quisque molestie tristique quam. Maecenas nunc lorem, rhoncus non, venenatis sed, sodales at, felis. Quisque semper. Quisque malesuada est quis lacus. Nullam a justo. Aliquam pellentesque, ante ut congue molestie, nisl sapien posuere nisl, eu cursus nulla ligula vel nisl. Fusce commodo lacinia magna. Aenean rutrum vestibulum lorem. Pellentesque fermentum tristique ipsum. Nulla facilisi. Donec id mi eget ipsum commodo egestas. Mauris iaculis. Nulla vulputate mi at nisl. In condimentum sodales tellus. Donec metus orci, mollis vel, accumsan ac, ornare ac, lacus. Pellentesque accumsan est et tellus. Nam mollis. Aenean accumsan eros sit amet tellus. Praesent eu libero. Sed tempus urna nec dolor. Nulla facilisi. Duis eleifend rhoncus neque. Curabitur consectetuer quam eu justo. Sed metus. Vivamus risus. Aliquam erat volutpat. Aliquam erat volutpat. Nunc semper urna. Praesent molestie libero a lacus. Nullam suscipit lobortis velit. Praesent rhoncus, felis ut interdum dapibus, ipsum lectus vestibulum nulla, in interdum risus dolor eget orci. Nullam venenatis. Suspendisse laoreet, arcu a luctus consectetuer, libero ligula condimentum quam, eget elementum mauris tortor sed enim. Pellentesque leo. Nam interdum malesuada ante. Praesent fermentum nunc et dolor. Donec auctor volutpat odio. Pellentesque volutpat egestas ipsum. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Cras ac ligula eu justo dignissim accumsan. Nullam nisi. Fusce id sem. Fusce et urna. Pellentesque commodo pharetra lorem. Donec erat. Vestibulum elit arcu, commodo et, consequat eget, posuere eget, sem. Morbi sed nulla sed neque commodo commodo. Aliquam erat volutpat. Ut id turpis a enim malesuada vestibulum. In arcu dui, dignissim vitae, blandit eu, egestas ac, arcu. In ultricies sapien vitae nisi. Proin rhoncus magna eget tortor. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. In dictum. Sed volutpat pharetra quam. Mauris eget eros. Fusce malesuada dolor id pede. Praesent nec justo sed nisi vehicula varius. In scelerisque convallis nulla. Pellentesque sodales massa vulputate urna. Duis metus urna, imperdiet ac, sodales vel, ullamcorper sed, pede. Vestibulum aliquam mollis metus. Praesent tempus tristique elit. Maecenas tellus tortor, pretium id, mollis id, molestie non, turpis. Vivamus nibh magna, bibendum vitae, a."; |
65 | var longIsoLatin1Text = "¡¢£¤¥¦§¨©ª«¬®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ¡¢£¤¥¦§¨©ª«¬®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ¡¢£¤¥¦§¨©ª«¬®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ¡¢£¤¥¦§¨©ª«¬®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ¡¢£¤¥¦§¨©ª«¬®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ¡¢£¤¥¦§¨©ª«¬®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ¡¢£¤¥¦§¨©ª«¬®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ¡¢£¤¥¦§¨©ª«¬®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ¡¢£¤¥¦§¨©ª«¬®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ¡¢£¤¥¦§¨©ª«¬®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ¡¢£¤¥¦§¨©ª«¬®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ¡¢£¤¥¦§¨©ª«¬®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ¡¢£¤¥¦§¨©ª«¬®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ¡¢£¤¥¦§¨©ª«¬®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ¡¢£¤¥¦§¨©ª«¬®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ¡¢£¤¥¦§¨©ª«¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ¡¢£¤¥¦§¨©ª«¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ¡¢£¤¥¦§¨©ª«¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ¡¢£¤¥¦§¨©ª«¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ¡¢£¤¥¦§¨©ª«¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ¡¢£¤¥¦§¨©ª«¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ¡¢£¤¥¦§¨©ª«¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ¡¢£¤¥¦§¨©ª«¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ¡¢£¤¥¦§¨©ª«¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ¡¢£¤¥¦§¨©ª«¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ¡¢£¤¥¦§¨©ª«¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ¡¢£¤¥¦§¨©ª«¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ¡¢£¤¥¦§¨©ª«¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ¡¢£¤¥¦§¨©ª«¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ¡¢£¤¥¦§¨©ª«¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ¡¢£¤¥¦§¨©ª«¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ¡¢£¤¥¦§¨©ª«¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ¡¢£¤¥¦§¨©ª«¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ¡¢£¤¥¦§¨©ª«¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ¡¢£¤¥¦§¨©ª«¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùù"; | 62 | var longIsoLatin1Text = "¡¢£¤¥¦§¨©ª«¬®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ¡¢£¤¥¦§¨©ª«¬®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ¡¢£¤¥¦§¨©ª«¬®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ¡¢£¤¥¦§¨©ª«¬®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ¡¢£¤¥¦§¨©ª«¬®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ¡¢£¤¥¦§¨©ª«¬®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ¡¢£¤¥¦§¨©ª«¬®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ¡¢£¤¥¦§¨©ª«¬®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ¡¢£¤¥¦§¨©ª«¬®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ¡¢£¤¥¦§¨©ª«¬®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ¡¢£¤¥¦§¨©ª«¬®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ¡¢£¤¥¦§¨©ª«¬®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ¡¢£¤¥¦§¨©ª«¬®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ¡¢£¤¥¦§¨©ª«¬®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ¡¢£¤¥¦§¨©ª«¬®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ¡¢£¤¥¦§¨©ª«¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ¡¢£¤¥¦§¨©ª«¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ¡¢£¤¥¦§¨©ª«¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ¡¢£¤¥¦§¨©ª«¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ¡¢£¤¥¦§¨©ª«¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ¡¢£¤¥¦§¨©ª«¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ¡¢£¤¥¦§¨©ª«¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ¡¢£¤¥¦§¨©ª«¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ¡¢£¤¥¦§¨©ª«¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ¡¢£¤¥¦§¨©ª«¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ¡¢£¤¥¦§¨©ª«¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ¡¢£¤¥¦§¨©ª«¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ¡¢£¤¥¦§¨©ª«¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ¡¢£¤¥¦§¨©ª«¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ¡¢£¤¥¦§¨©ª«¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ¡¢£¤¥¦§¨©ª«¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ¡¢£¤¥¦§¨©ª«¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ¡¢£¤¥¦§¨©ª«¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ¡¢£¤¥¦§¨©ª«¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ¡¢£¤¥¦§¨©ª«¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùù"; |
66 | var longUtf8Text = "客家方言简体字危及了对古代文学的研究共有找华语并不被中国政府很好的接受然而汉语之所以能统称为汉语第客家方言简体字危及了对古代文学的研究共有找华语并不被中国政府很好的接受然而汉语之所以能统称为汉语第客家方言简体字危及了对古代文学的研究共有找华语并不被中国政府很好的接受然而汉语之所以能统称为汉语第客家方言简体字危及了对古代文学的研究共有找华语并不被中国政府很好的接受然而汉语之所以能统称为汉语第客家方言简体字危及了对古代文学的研究共有找华语并不被中国政府很好的接受然而汉语之所以能统称为汉语第客家方言简体字危及了对古代文学的研究共有找华语并不被中国政府很好的接受然而汉语之所以能统称为汉语第客家方言简体字危及了对古代文学的研究共有找华语并不被中国政府很好的接受然而汉语之所以能统称为汉语第客家方言简体字危及了对古代文学的研究共有找华语并不被中国政府很好的接受然而汉语之所以能统称为汉语第客家方言简体字危及了对古代文学的研究共有找华语并不被中国政府很好的接受然而汉语之所以能统称为汉语第客家方言简体字危及了对古代文学的研究共有找华语并不被中国政府很好的接受然而汉语之所以能统称为汉语第客家方言简体字危及了对古代文学的研究共有找华语并不被中国政府很好的接受然而汉语之所以能统称为汉语第客家方言简体字危及了对古代文学的研究共有找华语并不被中国政府很好的接受然而汉语之所以能统称为汉语第客家方言简体字危及了对古代文学的研究共有找华语并不被中国政府很好的接受然而汉语之所以能统称为汉语第客家方言简体字危及了对古代文学的研究共有找华语并不被中国政府很好的接受然而汉语之所以能统称为汉语第客家方言简体字危及了对古代文学的研究共有找华语并不被中国政府很好的接受然而汉语之所以能统称为汉语第客家方言简体字危及了对古代文学的研究共有找华语并不被中国政府很好的接受然而汉语之所以能统称为汉语第客家方言简体字危及了对古代文学的研究共有找华语并不被中国政府很好的接受然而汉语之所以能统称为汉语第客家方言简体字危及了对古代文学的研究共有找华语并不被中国政府很好的接受然而汉语之所以能统称为汉语第客家方言简体字危及了对古代文学的研究共有找华语并不被中国政府很好的接受然而汉语之所以能统称为汉语第客家方言简体字危及了对古代文学的研究共有找华语并不被中国政府很好的接受然而汉语之所以能统称为汉语第客家方言简体字危及了对古代文学的研究共有找华语并不被中国政府很好的接受然而汉语之所以能统称为汉语第客家方言简体字危及了对古代文学的研究共有找华语并不被中国政府很好的接受然而汉语之所以能统称为汉语第客家方言简体字危及了对古代文学的研究共有找华语并不被中国政府很好的接受然而汉语之所以能统称为汉语第客家方言简体字危及了对古代文学的研究共有找华语并不被中国政府很好的接受然而汉语之所以能统称为汉语第客家方言简体字危及了对古代文学的研究共有找华语并不被中国政府很好的接受然而汉语之所以能统称为汉语第客家方言简体字危及了对古代文学的研究共有找华语并不被中国政府很好的接受然而汉语之所以能统称为汉语第客家方言简体字危及了对古代文学的研究共有找华语并不被中国政府很好的接受然而汉语之所以能统称为汉语第客家方言简体字危及了对古代文学的研究共有找华语并不被中国政府很好的接受然而汉语之所以能统称为汉语第客家方言简体字危及了对古代文学的研究共有找华语并不被中国政府很好的接受然而汉语之所以能统称为汉语第客家方言简体字危及了对古代文学的研究共有找华语并不被中国政府很好的接受然而汉语之所以能统称为汉语第客家方言简体字危及了对古代文学的研究共有找华语并不被中国政府很好的接受然而汉语之所以能统称为汉语第客家方言简体字危及了对古代文学的研究共有找华语并不被中国政府很好的接受然而汉语之所以能统称为汉语第客家方言简体字危及了对古代文学的研究共有找华语并不被中国政府很好的接受然而汉语之所以能统称为汉语第客家方言简体字危及了对古代文学的研究共有找华语并不被中国政府很好的接受然而汉语之所以能统称为汉语第客家方言简体字危及了对古代文学的研究共有找华语并不被中国政府很好的接受然而汉语之所以能统称为汉语第客家方言简体字危及了对古代文学的研究共有找华语并不被中国政府很好的接受然而汉语之所以能统称为汉语第客家方言简体字危及了对古代文学的研究共有找华语并不被中国政府很好的接受然而汉语之所以能统称为汉语第客家方言简体字危及了对古代文学的研究共有找华语并不被中国政府很好的接受然而汉语之所以能统称为汉语第客家方言简体字危及了对古代文学的研究共有找华语并不被中国政府很好的接受然而汉语之所以能统称为汉语第客家方言简体字危及了对古代文学的研究共有找华语并不被中国政府很好的接受然而汉语之所以能统称为汉语第客家方言简体字危及了对古代文学的研究共有找华语并不被中国政府很好的接受然而汉语之"; | 63 | var longUtf8Text = "客家方言简体字危及了对古代文学的研究共有找华语并不被中国政府很好的接受然而汉语之所以能统称为汉语第客家方言简体字危及了对古代文学的研究共有找华语并不被中国政府很好的接受然而汉语之所以能统称为汉语第客家方言简体字危及了对古代文学的研究共有找华语并不被中国政府很好的接受然而汉语之所以能统称为汉语第客家方言简体字危及了对古代文学的研究共有找华语并不被中国政府很好的接受然而汉语之所以能统称为汉语第客家方言简体字危及了对古代文学的研究共有找华语并不被中国政府很好的接受然而汉语之所以能统称为汉语第客家方言简体字危及了对古代文学的研究共有找华语并不被中国政府很好的接受然而汉语之所以能统称为汉语第客家方言简体字危及了对古代文学的研究共有找华语并不被中国政府很好的接受然而汉语之所以能统称为汉语第客家方言简体字危及了对古代文学的研究共有找华语并不被中国政府很好的接受然而汉语之所以能统称为汉语第客家方言简体字危及了对古代文学的研究共有找华语并不被中国政府很好的接受然而汉语之所以能统称为汉语第客家方言简体字危及了对古代文学的研究共有找华语并不被中国政府很好的接受然而汉语之所以能统称为汉语第客家方言简体字危及了对古代文学的研究共有找华语并不被中国政府很好的接受然而汉语之所以能统称为汉语第客家方言简体字危及了对古代文学的研究共有找华语并不被中国政府很好的接受然而汉语之所以能统称为汉语第客家方言简体字危及了对古代文学的研究共有找华语并不被中国政府很好的接受然而汉语之所以能统称为汉语第客家方言简体字危及了对古代文学的研究共有找华语并不被中国政府很好的接受然而汉语之所以能统称为汉语第客家方言简体字危及了对古代文学的研究共有找华语并不被中国政府很好的接受然而汉语之所以能统称为汉语第客家方言简体字危及了对古代文学的研究共有找华语并不被中国政府很好的接受然而汉语之所以能统称为汉语第客家方言简体字危及了对古代文学的研究共有找华语并不被中国政府很好的接受然而汉语之所以能统称为汉语第客家方言简体字危及了对古代文学的研究共有找华语并不被中国政府很好的接受然而汉语之所以能统称为汉语第客家方言简体字危及了对古代文学的研究共有找华语并不被中国政府很好的接受然而汉语之所以能统称为汉语第客家方言简体字危及了对古代文学的研究共有找华语并不被中国政府很好的接受然而汉语之所以能统称为汉语第客家方言简体字危及了对古代文学的研究共有找华语并不被中国政府很好的接受然而汉语之所以能统称为汉语第客家方言简体字危及了对古代文学的研究共有找华语并不被中国政府很好的接受然而汉语之所以能统称为汉语第客家方言简体字危及了对古代文学的研究共有找华语并不被中国政府很好的接受然而汉语之所以能统称为汉语第客家方言简体字危及了对古代文学的研究共有找华语并不被中国政府很好的接受然而汉语之所以能统称为汉语第客家方言简体字危及了对古代文学的研究共有找华语并不被中国政府很好的接受然而汉语之所以能统称为汉语第客家方言简体字危及了对古代文学的研究共有找华语并不被中国政府很好的接受然而汉语之所以能统称为汉语第客家方言简体字危及了对古代文学的研究共有找华语并不被中国政府很好的接受然而汉语之所以能统称为汉语第客家方言简体字危及了对古代文学的研究共有找华语并不被中国政府很好的接受然而汉语之所以能统称为汉语第客家方言简体字危及了对古代文学的研究共有找华语并不被中国政府很好的接受然而汉语之所以能统称为汉语第客家方言简体字危及了对古代文学的研究共有找华语并不被中国政府很好的接受然而汉语之所以能统称为汉语第客家方言简体字危及了对古代文学的研究共有找华语并不被中国政府很好的接受然而汉语之所以能统称为汉语第客家方言简体字危及了对古代文学的研究共有找华语并不被中国政府很好的接受然而汉语之所以能统称为汉语第客家方言简体字危及了对古代文学的研究共有找华语并不被中国政府很好的接受然而汉语之所以能统称为汉语第客家方言简体字危及了对古代文学的研究共有找华语并不被中国政府很好的接受然而汉语之所以能统称为汉语第客家方言简体字危及了对古代文学的研究共有找华语并不被中国政府很好的接受然而汉语之所以能统称为汉语第客家方言简体字危及了对古代文学的研究共有找华语并不被中国政府很好的接受然而汉语之所以能统称为汉语第客家方言简体字危及了对古代文学的研究共有找华语并不被中国政府很好的接受然而汉语之所以能统称为汉语第客家方言简体字危及了对古代文学的研究共有找华语并不被中国政府很好的接受然而汉语之所以能统称为汉语第客家方言简体字危及了对古代文学的研究共有找华语并不被中国政府很好的接受然而汉语之所以能统称为汉语第客家方言简体字危及了对古代文学的研究共有找华语并不被中国政府很好的接受然而汉语之所以能统称为汉语第客家方言简体字危及了对古代文学的研究共有找华语并不被中国政府很好的接受然而汉语之"; |
67 | </script> | 64 | </script> |
68 | <script type="text/javascript" src="ByteArray.test.js"></script> | 65 | <script type="text/javascript" src="ByteArray.test.js"></script> |
69 | </pre> | 66 | </pre> |
70 | </body> | 67 | </body> |
71 | </html> | 68 | </html> |
diff --git a/frontend/gamma/tests/tests/Clipperz/ByteArray.test.js b/frontend/gamma/tests/tests/Clipperz/ByteArray.test.js index ef2660e..43d74a0 100644 --- a/frontend/gamma/tests/tests/Clipperz/ByteArray.test.js +++ b/frontend/gamma/tests/tests/Clipperz/ByteArray.test.js | |||
@@ -1,120 +1,117 @@ | |||
1 | /* | 1 | /* |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | */ | 24 | */ |
28 | 25 | ||
29 | Clipperz.Crypto.PRNG.defaultRandomGenerator().fastEntropyAccumulationForTestingPurpose(); | 26 | Clipperz.Crypto.PRNG.defaultRandomGenerator().fastEntropyAccumulationForTestingPurpose(); |
30 | 27 | ||
31 | var tests = { | 28 | var tests = { |
32 | 29 | ||
33 | //------------------------------------------------------------------------- | 30 | //------------------------------------------------------------------------- |
34 | 31 | ||
35 | 'core_tests': function (someTestArgs) { | 32 | 'core_tests': function (someTestArgs) { |
36 | // vardeferredResult; | 33 | // vardeferredResult; |
37 | 34 | ||
38 | // deferredResult = new Clipperz.Async.Deferred("core_tests", someTestArgs); | 35 | // deferredResult = new Clipperz.Async.Deferred("core_tests", someTestArgs); |
39 | // deferredResult.addCallback(function() { | 36 | // deferredResult.addCallback(function() { |
40 | var byteArray; | 37 | var byteArray; |
41 | 38 | ||
42 | byteArray = new Clipperz.ByteArray(); | 39 | byteArray = new Clipperz.ByteArray(); |
43 | 40 | ||
44 | try { | 41 | try { |
45 | byteArray.checkByteValue(512); | 42 | byteArray.checkByteValue(512); |
46 | is(false, true, "a value greater that a byte (0x200) should have raised an exception - NO Exception"); | 43 | is(false, true, "a value greater that a byte (0x200) should have raised an exception - NO Exception"); |
47 | } catch(e) { | 44 | } catch(e) { |
48 | // is(e.name, | 45 | // is(e.name, |
49 | // "Clipperz.ByteArray.exception.InvalidValue", | 46 | // "Clipperz.ByteArray.exception.InvalidValue", |
50 | // "appending a value greater that a byte (0x200) should have raised an exception - EXCEPTION HANDLER") | 47 | // "appending a value greater that a byte (0x200) should have raised an exception - EXCEPTION HANDLER") |
51 | ok(/Clipperz\.ByteArray\.exception\.InvalidValue.*/.test(e.name), | 48 | ok(/Clipperz\.ByteArray\.exception\.InvalidValue.*/.test(e.name), |
52 | "appending a value greater that a byte (0x200) should have raised an exception - EXCEPTION HANDLER") | 49 | "appending a value greater that a byte (0x200) should have raised an exception - EXCEPTION HANDLER") |
53 | }; | 50 | }; |
54 | 51 | ||
55 | // }); | 52 | // }); |
56 | // deferredResult.callback(); | 53 | // deferredResult.callback(); |
57 | 54 | ||
58 | // return deferredResult; | 55 | // return deferredResult; |
59 | 56 | ||
60 | }, | 57 | }, |
61 | 58 | ||
62 | //------------------------------------------------------------------------- | 59 | //------------------------------------------------------------------------- |
63 | 60 | ||
64 | 'basic_tests': function (someTestArgs) { | 61 | 'basic_tests': function (someTestArgs) { |
65 | vardeferredResult; | 62 | vardeferredResult; |
66 | 63 | ||
67 | deferredResult = new Clipperz.Async.Deferred("simple_tests", someTestArgs); | 64 | deferredResult = new Clipperz.Async.Deferred("simple_tests", someTestArgs); |
68 | deferredResult.addCallback(function() { | 65 | deferredResult.addCallback(function() { |
69 | var byteArray; | 66 | var byteArray; |
70 | var byteArray2; | 67 | var byteArray2; |
71 | varbyteArrayIterator; | 68 | varbyteArrayIterator; |
72 | varnextBlock; | 69 | varnextBlock; |
73 | 70 | ||
74 | byteArray = new Clipperz.ByteArray(); | 71 | byteArray = new Clipperz.ByteArray(); |
75 | is(byteArray.length(), 0, "before adding any element the length is 0"); | 72 | is(byteArray.length(), 0, "before adding any element the length is 0"); |
76 | byteArray.appendByte(10); | 73 | byteArray.appendByte(10); |
77 | is(byteArray.length(), 1, "adding a single byte the length == 1"); | 74 | is(byteArray.length(), 1, "adding a single byte the length == 1"); |
78 | is(byteArray.byteAtIndex(0), 10, "the first element is correct"); | 75 | is(byteArray.byteAtIndex(0), 10, "the first element is correct"); |
79 | 76 | ||
80 | byteArrayIterator = new Clipperz.ByteArrayIterator({byteArray:byteArray, blockSize:(8/8), finalPadding:true}); | 77 | byteArrayIterator = new Clipperz.ByteArrayIterator({byteArray:byteArray, blockSize:(8/8), finalPadding:true}); |
81 | nextBlock = byteArrayIterator.nextBlock(); | 78 | nextBlock = byteArrayIterator.nextBlock(); |
82 | is(nextBlock.constructor, Array, "ByteArrayIterator.nextBlock returns an array of byte values"); | 79 | is(nextBlock.constructor, Array, "ByteArrayIterator.nextBlock returns an array of byte values"); |
83 | is(nextBlock.length, 1, "as the block size is 8bit, the returned array has only one element"); | 80 | is(nextBlock.length, 1, "as the block size is 8bit, the returned array has only one element"); |
84 | is(nextBlock[0], 10, "the element of the returned block is correct"); | 81 | is(nextBlock[0], 10, "the element of the returned block is correct"); |
85 | nextBlock = byteArrayIterator.nextBlock(); | 82 | nextBlock = byteArrayIterator.nextBlock(); |
86 | is(nextBlock, null, "after the last element, the nextBlock returns null"); | 83 | is(nextBlock, null, "after the last element, the nextBlock returns null"); |
87 | 84 | ||
88 | byteArray = new Clipperz.ByteArray(); | 85 | byteArray = new Clipperz.ByteArray(); |
89 | byteArray.appendBytes(10, 20, 45, 38); | 86 | byteArray.appendBytes(10, 20, 45, 38); |
90 | is(byteArray.length(), 4, "Appending more bytes, returns the right length"); | 87 | is(byteArray.length(), 4, "Appending more bytes, returns the right length"); |
91 | is(byteArray.byteAtIndex(0), 10, "and all the elements are right [0]"); | 88 | is(byteArray.byteAtIndex(0), 10, "and all the elements are right [0]"); |
92 | is(byteArray.byteAtIndex(1), 20, "and all the elements are right [1]"); | 89 | is(byteArray.byteAtIndex(1), 20, "and all the elements are right [1]"); |
93 | is(byteArray.byteAtIndex(2), 45, "and all the elements are right [2]"); | 90 | is(byteArray.byteAtIndex(2), 45, "and all the elements are right [2]"); |
94 | is(byteArray.byteAtIndex(3), 38, "and all the elements are right [3]"); | 91 | is(byteArray.byteAtIndex(3), 38, "and all the elements are right [3]"); |
95 | 92 | ||
96 | byteArray2 = new Clipperz.ByteArray(); | 93 | byteArray2 = new Clipperz.ByteArray(); |
97 | byteArray2.appendBytes([10, 20, 45, 38]); | 94 | byteArray2.appendBytes([10, 20, 45, 38]); |
98 | is(byteArray.equals(byteArray2), true, "equals method tested with a byteArray created with the same values"); | 95 | is(byteArray.equals(byteArray2), true, "equals method tested with a byteArray created with the same values"); |
99 | 96 | ||
100 | byteArray2 = new Clipperz.ByteArray(); | 97 | byteArray2 = new Clipperz.ByteArray(); |
101 | byteArray2.appendBytes([20, 11, 3, 22]); | 98 | byteArray2.appendBytes([20, 11, 3, 22]); |
102 | is(byteArray.equals(byteArray2), false, "equals method tested with a byteArray created with different values"); | 99 | is(byteArray.equals(byteArray2), false, "equals method tested with a byteArray created with different values"); |
103 | 100 | ||
104 | byteArrayIterator = new Clipperz.ByteArrayIterator({byteArray:byteArray, blockSize:(8/8), finalPadding:true}); | 101 | byteArrayIterator = new Clipperz.ByteArrayIterator({byteArray:byteArray, blockSize:(8/8), finalPadding:true}); |
105 | nextBlock = byteArrayIterator.nextBlock(); | 102 | nextBlock = byteArrayIterator.nextBlock(); |
106 | is(nextBlock.length, 1, "the size of the block returned by the byteArrayIterator match with the configured blockedSize"); | 103 | is(nextBlock.length, 1, "the size of the block returned by the byteArrayIterator match with the configured blockedSize"); |
107 | is(nextBlock[0], 10, "the values returned by nextBlock are right [1]"); | 104 | is(nextBlock[0], 10, "the values returned by nextBlock are right [1]"); |
108 | nextBlock = byteArrayIterator.nextBlock(); | 105 | nextBlock = byteArrayIterator.nextBlock(); |
109 | is(nextBlock[0], 20, "the values returned by nextBlock are right [2]"); | 106 | is(nextBlock[0], 20, "the values returned by nextBlock are right [2]"); |
110 | nextBlock = byteArrayIterator.nextBlock(); | 107 | nextBlock = byteArrayIterator.nextBlock(); |
111 | is(nextBlock[0], 45, "the values returned by nextBlock are right [3]"); | 108 | is(nextBlock[0], 45, "the values returned by nextBlock are right [3]"); |
112 | nextBlock = byteArrayIterator.nextBlock(); | 109 | nextBlock = byteArrayIterator.nextBlock(); |
113 | is(nextBlock[0], 38, "the values returned by nextBlock are right [4]"); | 110 | is(nextBlock[0], 38, "the values returned by nextBlock are right [4]"); |
114 | nextBlock = byteArrayIterator.nextBlock(); | 111 | nextBlock = byteArrayIterator.nextBlock(); |
115 | is(nextBlock, null, "after the last block the nextBlock method returns null"); | 112 | is(nextBlock, null, "after the last block the nextBlock method returns null"); |
116 | 113 | ||
117 | byteArrayIterator = new Clipperz.ByteArrayIterator({byteArray:byteArray, blockSize:(16/8), finalPadding:true}); | 114 | byteArrayIterator = new Clipperz.ByteArrayIterator({byteArray:byteArray, blockSize:(16/8), finalPadding:true}); |
118 | nextBlock = byteArrayIterator.nextBlock(); | 115 | nextBlock = byteArrayIterator.nextBlock(); |
119 | is(nextBlock.length, 2, "on the same data, using a different block size, returns the right length"); | 116 | is(nextBlock.length, 2, "on the same data, using a different block size, returns the right length"); |
120 | is(nextBlock[0], 10, "and also the data are fine [1][0]"); | 117 | is(nextBlock[0], 10, "and also the data are fine [1][0]"); |
diff --git a/frontend/gamma/tests/tests/Clipperz/Crypto/AES.html b/frontend/gamma/tests/tests/Clipperz/Crypto/AES.html index 93089b7..828ccb8 100644 --- a/frontend/gamma/tests/tests/Clipperz/Crypto/AES.html +++ b/frontend/gamma/tests/tests/Clipperz/Crypto/AES.html | |||
@@ -1,120 +1,117 @@ | |||
1 | <!-- | 1 | <!-- |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | --> | 24 | --> |
28 | 25 | ||
29 | <html> | 26 | <html> |
30 | <head> | 27 | <head> |
31 | <title>Clipperz.Crypto.AES_v3 - TEST</title> | 28 | <title>Clipperz.Crypto.AES_v3 - TEST</title> |
32 | 29 | ||
33 | <script type="text/javascript" src="../../../../js/MochiKit/MochiKit.js"></script> | 30 | <script type="text/javascript" src="../../../../js/MochiKit/MochiKit.js"></script> |
34 | <script type="text/javascript" src="../../../../js/JSLog/jslog.js"></script> | 31 | <script type="text/javascript" src="../../../../js/JSLog/jslog.js"></script> |
35 | <script type="text/javascript" src="../../../SimpleTest/SimpleTest.js"></script> | 32 | <script type="text/javascript" src="../../../SimpleTest/SimpleTest.js"></script> |
36 | <link rel="stylesheet" type="text/css" href="../../../SimpleTest/test.css"> | 33 | <link rel="stylesheet" type="text/css" href="../../../SimpleTest/test.css"> |
37 | 34 | ||
38 | <script type='text/javascript' src='../../../../js/JSON/json2.js'></script> | 35 | <script type='text/javascript' src='../../../../js/JSON/json2.js'></script> |
39 | 36 | ||
40 | <script type='text/javascript' src='../../../../js/Clipperz/YUI/Utils.js'></script> | 37 | <script type='text/javascript' src='../../../../js/Clipperz/YUI/Utils.js'></script> |
41 | <script type='text/javascript' src='../../../../js/Clipperz/YUI/DomHelper.js'></script> | 38 | <script type='text/javascript' src='../../../../js/Clipperz/YUI/DomHelper.js'></script> |
42 | <script type='text/javascript' src='../../../../js/Clipperz/Base.js'></script> | 39 | <script type='text/javascript' src='../../../../js/Clipperz/Base.js'></script> |
43 | <script type='text/javascript' src='../../../../js/Clipperz/ByteArray.js'></script> | 40 | <script type='text/javascript' src='../../../../js/Clipperz/ByteArray.js'></script> |
44 | 41 | ||
45 | <script type='text/javascript' src='../../../../js/Clipperz/Crypto/SHA.js'></script> | 42 | <script type='text/javascript' src='../../../../js/Clipperz/Crypto/SHA.js'></script> |
46 | <script type='text/javascript' src='../../../../js/Clipperz/Crypto/AES.js'></script> | 43 | <script type='text/javascript' src='../../../../js/Clipperz/Crypto/AES.js'></script> |
47 | 44 | ||
48 | </head> | 45 | </head> |
49 | <body> | 46 | <body> |
50 | <pre id="test"> | 47 | <pre id="test"> |
51 | <script type="text/javascript"> | 48 | <script type="text/javascript"> |
52 | 49 | ||
53 | try { | 50 | try { |
54 | var block; | 51 | var block; |
55 | var keyValue; | 52 | var keyValue; |
56 | varkey; | 53 | varkey; |
57 | var encryptedBlock; | 54 | var encryptedBlock; |
58 | var startTime, endTime; | 55 | var startTime, endTime; |
59 | 56 | ||
60 | startTime = new Date(); | 57 | startTime = new Date(); |
61 | 58 | ||
62 | keyValue = new Clipperz.ByteArray("0x00010203050607080a0b0c0d0f10111214151617191a1b1c1e1f202123242526"); | 59 | keyValue = new Clipperz.ByteArray("0x00010203050607080a0b0c0d0f10111214151617191a1b1c1e1f202123242526"); |
63 | key = new Clipperz.Crypto.AES.Key({key:keyValue}); | 60 | key = new Clipperz.Crypto.AES.Key({key:keyValue}); |
64 | block = new Clipperz.ByteArray("0x834eadfccac7e1b30664b1aba44815ab"); | 61 | block = new Clipperz.ByteArray("0x834eadfccac7e1b30664b1aba44815ab"); |
65 | encryptedBlock = new Clipperz.ByteArray(Clipperz.Crypto.AES.encryptBlock(key, block.arrayValues())); | 62 | encryptedBlock = new Clipperz.ByteArray(Clipperz.Crypto.AES.encryptBlock(key, block.arrayValues())); |
66 | is(encryptedBlock.toHexString(), "0x1946dabf6a03a2a2c3d0b05080aed6fc", "Test 1"); | 63 | is(encryptedBlock.toHexString(), "0x1946dabf6a03a2a2c3d0b05080aed6fc", "Test 1"); |
67 | 64 | ||
68 | keyValue = new Clipperz.ByteArray("0x28292a2b2d2e2f30323334353738393a3c3d3e3f41424344464748494b4c4d4e"); | 65 | keyValue = new Clipperz.ByteArray("0x28292a2b2d2e2f30323334353738393a3c3d3e3f41424344464748494b4c4d4e"); |
69 | key = new Clipperz.Crypto.AES.Key({key:keyValue}); | 66 | key = new Clipperz.Crypto.AES.Key({key:keyValue}); |
70 | block = new Clipperz.ByteArray("0xd9dc4dba3021b05d67c0518f72b62bf1"); | 67 | block = new Clipperz.ByteArray("0xd9dc4dba3021b05d67c0518f72b62bf1"); |
71 | encryptedBlock = new Clipperz.ByteArray(Clipperz.Crypto.AES.encryptBlock(key, block.arrayValues())); | 68 | encryptedBlock = new Clipperz.ByteArray(Clipperz.Crypto.AES.encryptBlock(key, block.arrayValues())); |
72 | is(encryptedBlock.toHexString(), "0x5ed301d747d3cc715445ebdec62f2fb4", "Test 2"); | 69 | is(encryptedBlock.toHexString(), "0x5ed301d747d3cc715445ebdec62f2fb4", "Test 2"); |
73 | 70 | ||
74 | keyValue = new Clipperz.ByteArray("0x50515253555657585a5b5c5d5f60616264656667696a6b6c6e6f707173747576"); | 71 | keyValue = new Clipperz.ByteArray("0x50515253555657585a5b5c5d5f60616264656667696a6b6c6e6f707173747576"); |
75 | key = new Clipperz.Crypto.AES.Key({key:keyValue}); | 72 | key = new Clipperz.Crypto.AES.Key({key:keyValue}); |
76 | block = new Clipperz.ByteArray("0xa291d86301a4a739f7392173aa3c604c"); | 73 | block = new Clipperz.ByteArray("0xa291d86301a4a739f7392173aa3c604c"); |
77 | encryptedBlock = new Clipperz.ByteArray(Clipperz.Crypto.AES.encryptBlock(key, block.arrayValues())); | 74 | encryptedBlock = new Clipperz.ByteArray(Clipperz.Crypto.AES.encryptBlock(key, block.arrayValues())); |
78 | is(encryptedBlock.toHexString(), "0x6585c8f43d13a6beab6419fc5935b9d0", "Test 3"); | 75 | is(encryptedBlock.toHexString(), "0x6585c8f43d13a6beab6419fc5935b9d0", "Test 3"); |
79 | 76 | ||
80 | keyValue = new Clipperz.ByteArray("0x78797a7b7d7e7f80828384858788898a8c8d8e8f91929394969798999b9c9d9e"); | 77 | keyValue = new Clipperz.ByteArray("0x78797a7b7d7e7f80828384858788898a8c8d8e8f91929394969798999b9c9d9e"); |
81 | key = new Clipperz.Crypto.AES.Key({key:keyValue}); | 78 | key = new Clipperz.Crypto.AES.Key({key:keyValue}); |
82 | block = new Clipperz.ByteArray("0x4264b2696498de4df79788a9f83e9390"); | 79 | block = new Clipperz.ByteArray("0x4264b2696498de4df79788a9f83e9390"); |
83 | encryptedBlock = new Clipperz.ByteArray(Clipperz.Crypto.AES.encryptBlock(key, block.arrayValues())); | 80 | encryptedBlock = new Clipperz.ByteArray(Clipperz.Crypto.AES.encryptBlock(key, block.arrayValues())); |
84 | is(encryptedBlock.toHexString(), "0x2a5b56a596680fcc0e05f5e0f151ecae", "Test 4"); | 81 | is(encryptedBlock.toHexString(), "0x2a5b56a596680fcc0e05f5e0f151ecae", "Test 4"); |
85 | 82 | ||
86 | keyValue = new Clipperz.ByteArray("0xa0a1a2a3a5a6a7a8aaabacadafb0b1b2b4b5b6b7b9babbbcbebfc0c1c3c4c5c6"); | 83 | keyValue = new Clipperz.ByteArray("0xa0a1a2a3a5a6a7a8aaabacadafb0b1b2b4b5b6b7b9babbbcbebfc0c1c3c4c5c6"); |
87 | key = new Clipperz.Crypto.AES.Key({key:keyValue}); | 84 | key = new Clipperz.Crypto.AES.Key({key:keyValue}); |
88 | block = new Clipperz.ByteArray("0xee9932b3721804d5a83ef5949245b6f6"); | 85 | block = new Clipperz.ByteArray("0xee9932b3721804d5a83ef5949245b6f6"); |
89 | encryptedBlock = new Clipperz.ByteArray(Clipperz.Crypto.AES.encryptBlock(key, block.arrayValues())); | 86 | encryptedBlock = new Clipperz.ByteArray(Clipperz.Crypto.AES.encryptBlock(key, block.arrayValues())); |
90 | is(encryptedBlock.toHexString(), "0xf5d6ff414fd2c6181494d20c37f2b8c4", "Test 5"); | 87 | is(encryptedBlock.toHexString(), "0xf5d6ff414fd2c6181494d20c37f2b8c4", "Test 5"); |
91 | 88 | ||
92 | keyValue = new Clipperz.ByteArray("0xc8c9cacbcdcecfd0d2d3d4d5d7d8d9dadcdddedfe1e2e3e4e6e7e8e9ebecedee"); | 89 | keyValue = new Clipperz.ByteArray("0xc8c9cacbcdcecfd0d2d3d4d5d7d8d9dadcdddedfe1e2e3e4e6e7e8e9ebecedee"); |
93 | key = new Clipperz.Crypto.AES.Key({key:keyValue}); | 90 | key = new Clipperz.Crypto.AES.Key({key:keyValue}); |
94 | block = new Clipperz.ByteArray("0xe6248f55c5fdcbca9cbbb01c88a2ea77"); | 91 | block = new Clipperz.ByteArray("0xe6248f55c5fdcbca9cbbb01c88a2ea77"); |
95 | encryptedBlock = new Clipperz.ByteArray(Clipperz.Crypto.AES.encryptBlock(key, block.arrayValues())); | 92 | encryptedBlock = new Clipperz.ByteArray(Clipperz.Crypto.AES.encryptBlock(key, block.arrayValues())); |
96 | is(encryptedBlock.toHexString(), "0x85399c01f59fffb5204f19f8482f00b8", "Test 6"); | 93 | is(encryptedBlock.toHexString(), "0x85399c01f59fffb5204f19f8482f00b8", "Test 6"); |
97 | 94 | ||
98 | keyValue = new Clipperz.ByteArray("0xf0f1f2f3f5f6f7f8fafbfcfdfe01000204050607090a0b0c0e0f101113141516"); | 95 | keyValue = new Clipperz.ByteArray("0xf0f1f2f3f5f6f7f8fafbfcfdfe01000204050607090a0b0c0e0f101113141516"); |
99 | key = new Clipperz.Crypto.AES.Key({key:keyValue}); | 96 | key = new Clipperz.Crypto.AES.Key({key:keyValue}); |
100 | block = new Clipperz.ByteArray("0xb8358e41b9dff65fd461d55a99266247"); | 97 | block = new Clipperz.ByteArray("0xb8358e41b9dff65fd461d55a99266247"); |
101 | encryptedBlock = new Clipperz.ByteArray(Clipperz.Crypto.AES.encryptBlock(key, block.arrayValues())); | 98 | encryptedBlock = new Clipperz.ByteArray(Clipperz.Crypto.AES.encryptBlock(key, block.arrayValues())); |
102 | is(encryptedBlock.toHexString(), "0x92097b4c88a041ddf98144bc8d22e8e7", "Test 7"); | 99 | is(encryptedBlock.toHexString(), "0x92097b4c88a041ddf98144bc8d22e8e7", "Test 7"); |
103 | 100 | ||
104 | keyValue = new Clipperz.ByteArray("0x18191a1b1d1e1f20222324252728292a2c2d2e2f31323334363738393b3c3d3e"); | 101 | keyValue = new Clipperz.ByteArray("0x18191a1b1d1e1f20222324252728292a2c2d2e2f31323334363738393b3c3d3e"); |
105 | key = new Clipperz.Crypto.AES.Key({key:keyValue}); | 102 | key = new Clipperz.Crypto.AES.Key({key:keyValue}); |
106 | block = new Clipperz.ByteArray("0xf0e2d72260af58e21e015ab3a4c0d906"); | 103 | block = new Clipperz.ByteArray("0xf0e2d72260af58e21e015ab3a4c0d906"); |
107 | encryptedBlock = new Clipperz.ByteArray(Clipperz.Crypto.AES.encryptBlock(key, block.arrayValues())); | 104 | encryptedBlock = new Clipperz.ByteArray(Clipperz.Crypto.AES.encryptBlock(key, block.arrayValues())); |
108 | is(encryptedBlock.toHexString(), "0x89bd5b73b356ab412aef9f76cea2d65c", "Test 8"); | 105 | is(encryptedBlock.toHexString(), "0x89bd5b73b356ab412aef9f76cea2d65c", "Test 8"); |
109 | 106 | ||
110 | keyValue = new Clipperz.ByteArray("0x40414243454647484a4b4c4d4f50515254555657595a5b5c5e5f606163646566"); | 107 | keyValue = new Clipperz.ByteArray("0x40414243454647484a4b4c4d4f50515254555657595a5b5c5e5f606163646566"); |
111 | key = new Clipperz.Crypto.AES.Key({key:keyValue}); | 108 | key = new Clipperz.Crypto.AES.Key({key:keyValue}); |
112 | block = new Clipperz.ByteArray("0x475b8b823ce8893db3c44a9f2a379ff7"); | 109 | block = new Clipperz.ByteArray("0x475b8b823ce8893db3c44a9f2a379ff7"); |
113 | encryptedBlock = new Clipperz.ByteArray(Clipperz.Crypto.AES.encryptBlock(key, block.arrayValues())); | 110 | encryptedBlock = new Clipperz.ByteArray(Clipperz.Crypto.AES.encryptBlock(key, block.arrayValues())); |
114 | is(encryptedBlock.toHexString(), "0x2536969093c55ff9454692f2fac2f530", "Test 9"); | 111 | is(encryptedBlock.toHexString(), "0x2536969093c55ff9454692f2fac2f530", "Test 9"); |
115 | 112 | ||
116 | keyValue = new Clipperz.ByteArray("0x68696a6b6d6e6f70727374757778797a7c7d7e7f81828384868788898b8c8d8e"); | 113 | keyValue = new Clipperz.ByteArray("0x68696a6b6d6e6f70727374757778797a7c7d7e7f81828384868788898b8c8d8e"); |
117 | key = new Clipperz.Crypto.AES.Key({key:keyValue}); | 114 | key = new Clipperz.Crypto.AES.Key({key:keyValue}); |
118 | block = new Clipperz.ByteArray("0x688f5281945812862f5f3076cf80412f"); | 115 | block = new Clipperz.ByteArray("0x688f5281945812862f5f3076cf80412f"); |
119 | encryptedBlock = new Clipperz.ByteArray(Clipperz.Crypto.AES.encryptBlock(key, block.arrayValues())); | 116 | encryptedBlock = new Clipperz.ByteArray(Clipperz.Crypto.AES.encryptBlock(key, block.arrayValues())); |
120 | is(encryptedBlock.toHexString(), "0x07fc76a872843f3f6e0081ee9396d637", "Test 10"); | 117 | is(encryptedBlock.toHexString(), "0x07fc76a872843f3f6e0081ee9396d637", "Test 10"); |
diff --git a/frontend/gamma/tests/tests/Clipperz/Crypto/AES.performance.html b/frontend/gamma/tests/tests/Clipperz/Crypto/AES.performance.html index 0d1cf07..4817096 100644 --- a/frontend/gamma/tests/tests/Clipperz/Crypto/AES.performance.html +++ b/frontend/gamma/tests/tests/Clipperz/Crypto/AES.performance.html | |||
@@ -1,120 +1,117 @@ | |||
1 | <!-- | 1 | <!-- |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | --> | 24 | --> |
28 | 25 | ||
29 | <html> | 26 | <html> |
30 | <head> | 27 | <head> |
31 | <title>Clipperz.Crypto.AES_performance - TEST</title> | 28 | <title>Clipperz.Crypto.AES_performance - TEST</title> |
32 | 29 | ||
33 | <script> | 30 | <script> |
34 | jslog_config_enabled = true; | 31 | jslog_config_enabled = true; |
35 | </script> | 32 | </script> |
36 | 33 | ||
37 | <script type="text/javascript" src="../../../../js/MochiKit/MochiKit.js"></script> | 34 | <script type="text/javascript" src="../../../../js/MochiKit/MochiKit.js"></script> |
38 | <script type="text/javascript" src="../../../../js/JSLog/jslog.js"></script> | 35 | <script type="text/javascript" src="../../../../js/JSLog/jslog.js"></script> |
39 | <script type="text/javascript" src="../../../SimpleTest/SimpleTest.js"></script> | 36 | <script type="text/javascript" src="../../../SimpleTest/SimpleTest.js"></script> |
40 | <link rel="stylesheet" type="text/css" href="../../../SimpleTest/test.css"> | 37 | <link rel="stylesheet" type="text/css" href="../../../SimpleTest/test.css"> |
41 | 38 | ||
42 | <script type='text/javascript' src='../../../../js/JSON/json2.js'></script> | 39 | <script type='text/javascript' src='../../../../js/JSON/json2.js'></script> |
43 | 40 | ||
44 | <script type='text/javascript' src='../../../../js/Clipperz/YUI/Utils.js'></script> | 41 | <script type='text/javascript' src='../../../../js/Clipperz/YUI/Utils.js'></script> |
45 | <script type='text/javascript' src='../../../../js/Clipperz/YUI/DomHelper.js'></script> | 42 | <script type='text/javascript' src='../../../../js/Clipperz/YUI/DomHelper.js'></script> |
46 | <script type='text/javascript' src='../../../../js/Clipperz/Base.js'></script> | 43 | <script type='text/javascript' src='../../../../js/Clipperz/Base.js'></script> |
47 | <script type='text/javascript' src='../../../../js/Clipperz/Logging.js'></script> | 44 | <script type='text/javascript' src='../../../../js/Clipperz/Logging.js'></script> |
48 | <script type='text/javascript' src='../../../../js/Clipperz/ByteArray.js'></script> | 45 | <script type='text/javascript' src='../../../../js/Clipperz/ByteArray.js'></script> |
49 | 46 | ||
50 | <script type='text/javascript' src='../../../../js/Clipperz/Crypto/Base.js'></script> | 47 | <script type='text/javascript' src='../../../../js/Clipperz/Crypto/Base.js'></script> |
51 | <script type='text/javascript' src='../../../../js/Clipperz/Crypto/SHA.js'></script> | 48 | <script type='text/javascript' src='../../../../js/Clipperz/Crypto/SHA.js'></script> |
52 | <script type='text/javascript' src='../../../../js/Clipperz/Crypto/AES.js'></script> | 49 | <script type='text/javascript' src='../../../../js/Clipperz/Crypto/AES.js'></script> |
53 | 50 | ||
54 | <script type='text/javascript' src='../../../../js/Clipperz/Crypto/PRNG.js'></script> | 51 | <script type='text/javascript' src='../../../../js/Clipperz/Crypto/PRNG.js'></script> |
55 | <script type='text/javascript' src='../../../../js/Clipperz/PM/Proxy.js'></script> | 52 | <script type='text/javascript' src='../../../../js/Clipperz/PM/Proxy.js'></script> |
56 | <script type='text/javascript' src='../../../../js/Clipperz/PM/Connection.js'></script> | 53 | <script type='text/javascript' src='../../../../js/Clipperz/PM/Connection.js'></script> |
57 | <script type='text/javascript' src='../../../../js/Clipperz/PM/Crypto.js'></script> | 54 | <script type='text/javascript' src='../../../../js/Clipperz/PM/Crypto.js'></script> |
58 | 55 | ||
59 | </head> | 56 | </head> |
60 | <body> | 57 | <body> |
61 | <pre id="test"> | 58 | <pre id="test"> |
62 | <script type="text/javascript"> | 59 | <script type="text/javascript"> |
63 | Clipperz.Crypto.PRNG.defaultRandomGenerator().fastEntropyAccumulationForTestingPurpose(); | 60 | Clipperz.Crypto.PRNG.defaultRandomGenerator().fastEntropyAccumulationForTestingPurpose(); |
64 | 61 | ||
65 | try { | 62 | try { |
66 | 63 | ||
67 | var password; | 64 | var password; |
68 | varplainText; | 65 | varplainText; |
69 | varencryptedText; | 66 | varencryptedText; |
70 | var decryptedText; | 67 | var decryptedText; |
71 | /* | 68 | /* |
72 | password = "trustno1"; | 69 | password = "trustno1"; |
73 | plainText = "The quick brown fox jumps over the lazy dog"; | 70 | plainText = "The quick brown fox jumps over the lazy dog"; |
74 | //console.profile("encrypt"); | 71 | //console.profile("encrypt"); |
75 | encryptedText = Clipperz.PM.Crypto.encryptingFunctions.versions['0.2'].encrypt(password, plainText); | 72 | encryptedText = Clipperz.PM.Crypto.encryptingFunctions.versions['0.2'].encrypt(password, plainText); |
76 | //console.profileEnd(); | 73 | //console.profileEnd(); |
77 | //console.profile("decrypt"); | 74 | //console.profile("decrypt"); |
78 | decryptedText = Clipperz.PM.Crypto.encryptingFunctions.versions['0.2'].decrypt(password, encryptedText); | 75 | decryptedText = Clipperz.PM.Crypto.encryptingFunctions.versions['0.2'].decrypt(password, encryptedText); |
79 | //console.profileEnd(); | 76 | //console.profileEnd(); |
80 | is(decryptedText, plainText, "simple string encrypted/decrypted"); | 77 | is(decryptedText, plainText, "simple string encrypted/decrypted"); |
81 | */ | 78 | */ |
82 | 79 | ||
83 | password = "L7bd9fQMhborMbYcHtlr"; | 80 | password = "L7bd9fQMhborMbYcHtlr"; |
84 | plainText = {"records":{"f1aac97154a0e52c5e33508afa82df5a9d6dcde24883a240b8c072a3238da0b6":{"label":"imap4all [no]", "key":"f54b5033d1152456acb67974c45ee6771f8411e300c9533359dfacacf60dcbbd", "notes":""}, "c9dae2b7a60b300008306f5ec731b60050250df8f8ff34f7d9cce92762121b99":{"label":"Il manifesto", "key":"6e0ef134503110e72f444e7d102a4b1cc6ae28f2e0b1287c2b1875ff052fc16c", "notes":""}, "70d536c89a86b1aa9e077d6f9c717306a5d6c8d5549789e42dfb4f981484f116":{"label":"OmniGroup applications", "key":"7b432b7dae39ff5951db31947fa721dc012af0da4055760c6df3b02e776ef22c", "notes":"url: http://www.omnigroup.com\n\nLicence owner: Giulio Cesare Solaroli\n\nOmniWeb: EQGP-EMKH-LKWP-MUHQ-OUHL-LDF\nOmniGraffle:\nOmniOutliner:\nOmniDiskSweeper:"}, "111855cedd650dfcbbce597d764583c6b040df4b71f5fa0161fb8d10514ee48f":{"label":"R@cine", "key":"57295772c84669b0a224f435e9b75c797ae5999a2d9473ab50f9384ae54f49d6", "notes":""}, "378a790452de46e1079a99eba2e15094a096b418cccd0262b8b20244eb94d2df":{"label":"NewsGator", "key":"6ee16f6932ee02000c49dbcc685c84074b40d7956e5f4bc1100030a0f9a41f1a", "notes":""}, "30c4f575799fc6908765fc8b54f4a9a483cb32e12aa89feae545976870a9102e":{"label":"GMail - giulio.cesare", "key":"0395efd852b00700bcf78b65350ec15932430df71201d2c53a11b0269b557d1a", "notes":""}, "b2836a864ff081b6f053c3f5f13dfb29c81af33d25a316cdd82af747ea71bea0":{"label":"GMail - clipperz.com", "key":"90d6ae70d89c8211404b6f9d6c70b6b9c113fff74f474a67b34acd9c1c048d1f", "notes":""}, "6ad2cda35f97743cfddf2133cdf3142fe6419e683484531f1ef1e67431f44284":{"label":"Aruba - hosting", "key":"5c7472d24d57391c63ea99ed1fc9de179d225abd335fa65702018cfea6083d47", "notes":""}, "741ce1d21839c69db754309b04ce02fbb4104f6cb87572c056ae4af918420700":{"label":"Aruba - sql hosting", "key":"f6bd942ac3b0b7065771e5197c7499b345a10f7a4843d00c3ba3809d0ea059dc", "notes":""}, "1cef440eecea59f47554aa04b94e18c1d9fc761246b911f89a7da72d544cac48":{"label":"Amazon", "key":"1ae022b4d14b642f113703b2a98931bd892dec2da785ab5ff6fc1d0aac7537f1", "notes":""}, "d34c13773b5d8154355c2605024a1dfaf66279ba0fbe3ac19fc1cbc642278fe4":{"label":"YouTube [no]", "key":"4c6593d4f6448137939b364b84c81501fadb60f7871fe5fa63c93e97bb5c4648", "notes":""}, "5054f0b94cd97610a1bc0ed8671b6fb5b25bf7a5582677059fcaaea75fac27bc":{"label":"DynDns - gcsolaroli", "key":"f8ed9e7a3630deed046eda37ebc63ecb4d63668a2f97224d7628fdc53b242467", "notes":""}, "73fb52ed51533657d6ebb020d5026fb4deb601dadce802de58f7fff4b56e1495":{"label":"DynDns - clipperz", "key":"d8bc295177383a523e67b61b166e0ca956ab4c2ee86800559a009d2716064f6d", "notes":""}, "48d4c0546c032be26ecce4da41e020129afa7fc34cfe164ea72e1c9953d2e6bb":{"label":"Bol.it", "key":"cada5dadeebd8d12190954d21f1a944c8799d034f028be195b448935fcf970c7", "notes":""}, "d62d420db34720ccc054df06b88725ea79020ffa9389ca15e70137fb4dfd0883":{"label":"Freenigma - clipperz.com", "key":"f09cb3790c1110794b834702b8c487c1a42b2508fbe6450a8468477d93790b2e", "notes":""}, "ccd44ae294e7694ea53009c7198506cc0fe3121ad5d9fe2635d247e2afdab2ae":{"label":"Freenigma", "key":"4b05738f6faebc147eac5e425054a91d3cc59dd63844e82d1f0864c0ac8efec7", "notes":""}, "bd5a587bb977a2c728fcd0fa6093dd63a4e62138cf89721115fe45e0396ba5d2":{"label":"clipperz.com - blog", "key":"9cc24328bbce18e8713962428d8123e309a12f7e1d9537bc252e134501734003", "notes":""}, "c2b99939e40d100218baa3ed1cb2a25a5cf726485b0336a0989b104a94157b5f":{"label":"Apple", "key":"75f2651af400629c4e5dd8bcdc3a6c691150d23d6e1a4eb263ff810926d1228f", "notes":""}, "b5bd38d8eb5e23b1354884cc519e05580864fadf74d0a19d2c691cd0c7054d77":{"label":".mac", "key":"5934ae96d2e01282effb368d9086c2ba5d1d856ad91dd6f04f5bace26a1c0cbe", "notes":""}, "ff79a2282cf246add520a3c06e835cf6ffaaae95067d45e8e2e8f44da2501380":{"label":"3nity", "key":"33d84c4a91ab053cbf8115c689ede7e504b81199884de449acc257bea534f57f", "notes":""}, "7b2f2a59ebb34b5a49f20b99b546f08b9f4f62cbefdce9699f8ef7e74aeb0552":{"label":"ACM", "key":"b4976bb0892baba81d628513d191de100d89acd58efbb07c823a5bb4abe48a7a", "notes":""}, "b83a6bac0da3a27eb909d34cbad183e77088952f01d8d5321613b7b01635a020":{"label":"Adobe", "key":"d162bc404994a79ec97e0106c3a4edf2f83aca25def130242e11e95e74bd0aaa", "notes":""}, "befc571e9cda1a7dfb1d15200240ca5170386280ee7be6a12716904cb6d0ea44":{"label":"Adobe Photoshop Elements 3", "key":"18a62c3c2065399819707322f467ff4be030d7939acbe5182c8194599845c428", "notes":"Photoshop Elements 2:\n1057-4312-5223-2206-9509-6837"}, "0424f72608fedc969d64a6d5b4a16dd3ce860a230cd6d87d936439f4dd2aafc7":{"label":"Agatra", "key":"c35158a21b2af75d414232b742ab738d042314e00209f8fca94c8c704c891f23", "notes":""}, "e5e17c29fd598acb4f4c7d621dbdcb045d4d0cabf7d8a19e24420c440cdc3935":{"label":"AIM", "key":"8561ac421d845921978387b5e6b362750b57ed08feda8ec12b9378b69f67ceff", "notes":""}, "de890eb76a4b0cabd4ffd490adad1ff1b73238c7b5ee6dde1a2aeab2d03ebe93":{"label":"Anna Vespignani", "key":"79a970af0d2d30643dc2db4d16757395c1f22c311919036c2a22b7581982144a", "notes":""}, "0dc8d3989d0b35d672c012057d3eb7b111f16e79329e08a9ffb31ac7accbab21":{"label":"Bloglines", "key":"fe81f4df8c42fd81c830f9af408e9b074e77fd430e26d0ee285844fe3b092aec", "notes":""}, "85a40a322a59c80cb46519900269dcc7cf6947213d03dfc9371dd1930373a65b":{"label":"Bow.it", "key":"64a1a9fec99c9238dc8180a01484a1ccf5f50fcd6e9a95a52b8b49fb9ca00bdc", "notes":""}, "60308062a1848a301641a74712d220eef191a280ba0a8355992f0e61ed793811":{"label":"GMail - feedback", "key":"fad310cb2e6152c3faf78b7183c99f3044f5d31ee364068b80580c271a7784ef", "notes":""}, "257ac2da79ee1cd46dfa214d91f5ece213b6bbade28d1ee71495c81a3d7e033a":{"label":"Fineco", "key":"8f99de2635b5dad7987180bc0bff49947eb37cc75d6a5d1ee1f13ed7567465a3", "notes":""}, "78261622810232b6da5efcd52b1c9b0bd87c62517bf4df25323ca6a0b49d84ec":{"label":"mon.itor.us", "key":"d2aa7164007c5deac8bb73580a6ab0d051f747e801ecd30284eff725d0ffaba2", "notes":""}, "4b78dc0376d07e57d77b4c7318d2f222956adb6ff7360b73e60b8bb8b85f3d11":{"label":"Lamba Probe - forum", "key":"f73906817fddba4d8f816334cb2fd0cd5ae91bc29bce6a69fdd5cf98fc96911f", "notes":""}, "78ca2c85908275d788c2f7dd0306ca5e03b83637bb3812272b697e12e9dbf941":{"label":"MeasureMap", "key":"2385ce9536ebb7863b6a4c8b1f5c428587e4d6420a4bbcd31b935cb00bbd768e", "notes":""}, "4c2c7f0d733b647e6f388c9a4590a2a864cd2de259b66aba9b3cf92bdc3cf9bc":{"label":"NGI - Squillo", "key":"96f20c212be02fb38c8b2dfc83d8e864dd84dcb95297a7fecf9280e1e4dcffe3", "notes":""}, "eaeadf6d36f8ee6916c33b9e5bf480b663dc90c0c7f370ff5a1f2fd998cf1143":{"label":"NGI - F5", "key":"00347769244b208647c24e6a64f8fa4213e97eb2135ecfcb277b341c28616a59", "notes":""}, "19654392222206d60547073209672dde1c743ea371ddc20a2bd8254e561a4ec0":{"label":"CVSdude", "key":"ed0ab5080a29eb1b20927142d21ab8f67b61c2c7b19623bb610af030dfd42c02", "notes":""}, "6b10514d50e745f1dab5a40e8629ecf1a8c78a5d6e3895f3637fb67d2d3f9993":{"label":"Yahoo", "key":"6380a7655cd790d1f1e6f482e92ae04201568ff0cab887e65102e9396df1b86e", "notes":"note"}}, "directLogins":{"eac496e0b1ec75ea403f821fedc7f51f98dac639713ebe577f969f607a8943f5":{"record":"111855cedd650dfcbbce597d764583c6b040df4b71f5fa0161fb8d10514ee48f", "label":"R@cine - WebMail", "favicon":"http://www.racine.ra.it/favicon.ico"}, "ef564a022630d4395a9ecac854f3b127b3518cec362323ccc605079c0749c152":{"record":"1cef440eecea59f47554aa04b94e18c1d9fc761246b911f89a7da72d544cac48", "label":"Amazon sign in", "favicon":"http://www.amazon.com/favicon.ico"}, "4f14b88a4055ff23a00d625382650888ce9284fe869304775e43e3e33ee5bbb6":{"record":"6ad2cda35f97743cfddf2133cdf3142fe6419e683484531f1ef1e67431f44284", "label":"Aruba - hosting", "favicon":"http://hosting.aruba.it/favicon.ico"}, "e94c0d12d1db0badc31a8bbbbc4b08d2065a39f458462bbff9756f7b5eb7fedf":{"record":"741ce1d21839c69db754309b04ce02fbb4104f6cb87572c056ae4af918420700", "label":"Aruba - sql hosting", "favicon":"http://mysql.aruba.it/favicon.ico"}, "7299249153ef93a44e2f248ca3a73badde56e71d70919bb5637093c2abbe2c9a":{"record":"bd5a587bb977a2c728fcd0fa6093dd63a4e62138cf89721115fe45e0396ba5d2", "label":"clipperz.com - blog", "favicon":"http://www.clipperz.com/favicon.ico"}, "66876dbae68778d4c104bc12f01adcb21d47d9eace8db30ef95f74f461afcb59":{"record":"73fb52ed51533657d6ebb020d5026fb4deb601dadce802de58f7fff4b56e1495", "label":"DynDns - clipperz", "favicon":"http://www.dyndns.com/favicon.ico"}, "a60c65030a1797abde3e2089c3e5de9648f66bf71cebf0b58c26e729ad8d6a45":{"record":"5054f0b94cd97610a1bc0ed8671b6fb5b25bf7a5582677059fcaaea75fac27bc", "label":"DynDns - gcsolaroli", "favicon":"http://www.dyndns.com/favicon.ico"}, "08d6c5dff9fed4a2f237c32dd0a93ac46b2c45370d07f56fa76064be3b8fecbf":{"record":"30c4f575799fc6908765fc8b54f4a9a483cb32e12aa89feae545976870a9102e", "label":"GMail - giulio.cesare", "favicon":"http://www.google.com/favicon.ico"}, "9e75e12f0f52f248cc7ae517869dd7b02303037d32d9fb4fa0ab0e013923c304":{"record":"c9dae2b7a60b300008306f5ec731b60050250df8f8ff34f7d9cce92762121b99", "label":"Il manifesto", "favicon":"http://abbonati.ilmanifesto.it/favicon.ico"}, "935bf9553fbcb85b8bd5b98c6901d7cccb2566b395f192cbea71e7822979aaf2":{"record":"f1aac97154a0e52c5e33508afa82df5a9d6dcde24883a240b8c072a3238da0b6", "label":"Imap4All.com - account", "favicon":"http://www.imap4all.com/favicon.ico"}, "9504205ec29b89e6ccd0f3afc7a447d8891da0c71a0222f1860f98a8f8bc6677":{"record":"f1aac97154a0e52c5e33508afa82df5a9d6dcde24883a240b8c072a3238da0b6", "label":"Imap4all.com - WebMail", "favicon":"http://webmail.imap4all.com/favicon.ico"}, "3d8dd32d2290ca98789c914580ac2436ece97234217a07d752726d2ac48a4ebf":{"record":"d34c13773b5d8154355c2605024a1dfaf66279ba0fbe3ac19fc1cbc642278fe4", "label":"YouTube [no]", "favicon":"http://www.youtube.com/favicon.ico"}, "7c4b6b5a16984c43ed6d99b04ddfa7e00b624de729ec8aaa3d0f539fb67587e2":{"record":"c2b99939e40d100218baa3ed1cb2a25a5cf726485b0336a0989b104a94157b5f", "label":"Apple Store - Italia", "favicon":"http://store.apple.com/favicon.ico"}, "0b9a98262b50f0ebae5af077467bc627619738873690238fd61093ce9922c9f9":{"record":"ff79a2282cf246add520a3c06e835cf6ffaaae95067d45e8e2e8f44da2501380", "label":"3nity", "favicon":"http://www.3nity.de/favicon.ico"}, "aadeb3388629cfc3b15954f26cf284f52e084191dcdf75752dc4c53d2006c5be":{"record":"7b2f2a59ebb34b5a49f20b99b546f08b9f4f62cbefdce9699f8ef7e74aeb0552", "label":"ACM Web Account", "favicon":"http://portal.acm.org/favicon.ico"}, "3d21c71f2e284ec76f1ae0bb990b683979918f758635bb7d008150f4d7b1447d":{"record":"b83a6bac0da3a27eb909d34cbad183e77088952f01d8d5321613b7b01635a020", "label":"Adobe - Sign In", "favicon":"http://www.adobe.com/favicon.ico"}, "e61a331c998804d46044d4c2acaf96c2fce806f6549e1e16c7d2334872a70953":{"record":"0424f72608fedc969d64a6d5b4a16dd3ce860a230cd6d87d936439f4dd2aafc7", "label":"Agatra [no]", "favicon":"http://www.agatra.com/favicon.ico"}, "9bcd99564fda778061246439fa098dcc79de75b16c542f61e6de7d36dbaf97dc":{"record":"e5e17c29fd598acb4f4c7d621dbdcb045d4d0cabf7d8a19e24420c440cdc3935", "label":"AIM [no]", "favicon":"http://my.screenname.aol.com/favicon.ico"}, "c7093f4663c6e0eba941c557cb86da83fc68cbea36c922e168d0867e6cabe9fe":{"record":"0dc8d3989d0b35d672c012057d3eb7b111f16e79329e08a9ffb31ac7accbab21", "label":"Bloglines", "favicon":"http://www.bloglines.com/favicon.ico"}, "915f2e9460f6e54c6137f3876f9179fc8d2162c59f26e12899c2db6b0e70a68f":{"record":"85a40a322a59c80cb46519900269dcc7cf6947213d03dfc9371dd1930373a65b", "label":"Bow.it", "favicon":"http://www.bow.it/favicon.ico"}, "779701af1beb2a91735ba1a2e471b948f0d985bb0df256f5e089291ce3405bd2":{"record":"b2836a864ff081b6f053c3f5f13dfb29c81af33d25a316cdd82af747ea71bea0", "label":"GMail - Clipperz", "favicon":"http://www.google.com/favicon.ico"}, "1c300539a98c874d52134b6b5a591172acc00c0947692f3da284447f7d511eaf":{"record":"60308062a1848a301641a74712d220eef191a280ba0a8355992f0e61ed793811", "label":"GMail - feedback", "favicon":"http://www.google.com/favicon.ico"}, "f9dccdf7a98735fd7a6b5d04c09177005c0de14f8f92b04007f06a281ecdf31e":{"record":"30c4f575799fc6908765fc8b54f4a9a483cb32e12aa89feae545976870a9102e", "label":"Blogger", "favicon":"http://www.google.com/favicon.ico"}, "48497a89f3bfd567758977e1c32b4497d28c843880667ee52fa4cfcb53c5f9e4":{"record":"378a790452de46e1079a99eba2e15094a096b418cccd0262b8b20244eb94d2df", "label":"NewsGator", "favicon":"http://www.newsgator.com/favicon.ico"}, "134cd28f150df4f2a089f4807bb7a35fb7ece22ec41244f72e63f8b43637a4cd":{"record":"4b78dc0376d07e57d77b4c7318d2f222956adb6ff7360b73e60b8bb8b85f3d11", "label":"Lambda Probe - forum", "favicon":"http://www.lambdaprobe.org/favicon.ico"}, "2ab6106a81513b70f1ba0d7c5c3ef54fa6f4bcadf01d2eeaa2b31b9299551398":{"record":"78ca2c85908275d788c2f7dd0306ca5e03b83637bb3812272b697e12e9dbf941", "label":"Measure Map", "favicon":"http://alpha.measuremap.com/favicon.ico"}, "53ccdc41b43da9b018847f9faa8effb35e7a6c6e78a54e9ee7816fc02f0ea63b":{"record":"4c2c7f0d733b647e6f388c9a4590a2a864cd2de259b66aba9b3cf92bdc3cf9bc", "label":"NGI - Squillo", "favicon":"http://www.ngi.it/favicon.ico"}, "ca520e7081fba1df3ef79c3d00266cffc8e4567def29d67ae812b7ed6283fb12":{"record":"eaeadf6d36f8ee6916c33b9e5bf480b663dc90c0c7f370ff5a1f2fd998cf1143", "label":"NGI - F5", "favicon":"http://www.ngi.it/favicon.ico"}, "80e63e135d7abd2b2990f42af4f8d1f8e8b1146aed44dc36975061fbf360a983":{"record":"6b10514d50e745f1dab5a40e8629ecf1a8c78a5d6e3895f3637fb67d2d3f9993", "label":"Yahoo! Mail", "favicon":"http://login.yahoo.com/favicon.ico"}}, "preferences":{"preferredLanguage":"en-US"}}; | 81 | plainText = {"records":{"f1aac97154a0e52c5e33508afa82df5a9d6dcde24883a240b8c072a3238da0b6":{"label":"imap4all [no]", "key":"f54b5033d1152456acb67974c45ee6771f8411e300c9533359dfacacf60dcbbd", "notes":""}, "c9dae2b7a60b300008306f5ec731b60050250df8f8ff34f7d9cce92762121b99":{"label":"Il manifesto", "key":"6e0ef134503110e72f444e7d102a4b1cc6ae28f2e0b1287c2b1875ff052fc16c", "notes":""}, "70d536c89a86b1aa9e077d6f9c717306a5d6c8d5549789e42dfb4f981484f116":{"label":"OmniGroup applications", "key":"7b432b7dae39ff5951db31947fa721dc012af0da4055760c6df3b02e776ef22c", "notes":"url: http://www.omnigroup.com\n\nLicence owner: Giulio Cesare Solaroli\n\nOmniWeb: EQGP-EMKH-LKWP-MUHQ-OUHL-LDF\nOmniGraffle:\nOmniOutliner:\nOmniDiskSweeper:"}, "111855cedd650dfcbbce597d764583c6b040df4b71f5fa0161fb8d10514ee48f":{"label":"R@cine", "key":"57295772c84669b0a224f435e9b75c797ae5999a2d9473ab50f9384ae54f49d6", "notes":""}, "378a790452de46e1079a99eba2e15094a096b418cccd0262b8b20244eb94d2df":{"label":"NewsGator", "key":"6ee16f6932ee02000c49dbcc685c84074b40d7956e5f4bc1100030a0f9a41f1a", "notes":""}, "30c4f575799fc6908765fc8b54f4a9a483cb32e12aa89feae545976870a9102e":{"label":"GMail - giulio.cesare", "key":"0395efd852b00700bcf78b65350ec15932430df71201d2c53a11b0269b557d1a", "notes":""}, "b2836a864ff081b6f053c3f5f13dfb29c81af33d25a316cdd82af747ea71bea0":{"label":"GMail - clipperz.com", "key":"90d6ae70d89c8211404b6f9d6c70b6b9c113fff74f474a67b34acd9c1c048d1f", "notes":""}, "6ad2cda35f97743cfddf2133cdf3142fe6419e683484531f1ef1e67431f44284":{"label":"Aruba - hosting", "key":"5c7472d24d57391c63ea99ed1fc9de179d225abd335fa65702018cfea6083d47", "notes":""}, "741ce1d21839c69db754309b04ce02fbb4104f6cb87572c056ae4af918420700":{"label":"Aruba - sql hosting", "key":"f6bd942ac3b0b7065771e5197c7499b345a10f7a4843d00c3ba3809d0ea059dc", "notes":""}, "1cef440eecea59f47554aa04b94e18c1d9fc761246b911f89a7da72d544cac48":{"label":"Amazon", "key":"1ae022b4d14b642f113703b2a98931bd892dec2da785ab5ff6fc1d0aac7537f1", "notes":""}, "d34c13773b5d8154355c2605024a1dfaf66279ba0fbe3ac19fc1cbc642278fe4":{"label":"YouTube [no]", "key":"4c6593d4f6448137939b364b84c81501fadb60f7871fe5fa63c93e97bb5c4648", "notes":""}, "5054f0b94cd97610a1bc0ed8671b6fb5b25bf7a5582677059fcaaea75fac27bc":{"label":"DynDns - gcsolaroli", "key":"f8ed9e7a3630deed046eda37ebc63ecb4d63668a2f97224d7628fdc53b242467", "notes":""}, "73fb52ed51533657d6ebb020d5026fb4deb601dadce802de58f7fff4b56e1495":{"label":"DynDns - clipperz", "key":"d8bc295177383a523e67b61b166e0ca956ab4c2ee86800559a009d2716064f6d", "notes":""}, "48d4c0546c032be26ecce4da41e020129afa7fc34cfe164ea72e1c9953d2e6bb":{"label":"Bol.it", "key":"cada5dadeebd8d12190954d21f1a944c8799d034f028be195b448935fcf970c7", "notes":""}, "d62d420db34720ccc054df06b88725ea79020ffa9389ca15e70137fb4dfd0883":{"label":"Freenigma - clipperz.com", "key":"f09cb3790c1110794b834702b8c487c1a42b2508fbe6450a8468477d93790b2e", "notes":""}, "ccd44ae294e7694ea53009c7198506cc0fe3121ad5d9fe2635d247e2afdab2ae":{"label":"Freenigma", "key":"4b05738f6faebc147eac5e425054a91d3cc59dd63844e82d1f0864c0ac8efec7", "notes":""}, "bd5a587bb977a2c728fcd0fa6093dd63a4e62138cf89721115fe45e0396ba5d2":{"label":"clipperz.com - blog", "key":"9cc24328bbce18e8713962428d8123e309a12f7e1d9537bc252e134501734003", "notes":""}, "c2b99939e40d100218baa3ed1cb2a25a5cf726485b0336a0989b104a94157b5f":{"label":"Apple", "key":"75f2651af400629c4e5dd8bcdc3a6c691150d23d6e1a4eb263ff810926d1228f", "notes":""}, "b5bd38d8eb5e23b1354884cc519e05580864fadf74d0a19d2c691cd0c7054d77":{"label":".mac", "key":"5934ae96d2e01282effb368d9086c2ba5d1d856ad91dd6f04f5bace26a1c0cbe", "notes":""}, "ff79a2282cf246add520a3c06e835cf6ffaaae95067d45e8e2e8f44da2501380":{"label":"3nity", "key":"33d84c4a91ab053cbf8115c689ede7e504b81199884de449acc257bea534f57f", "notes":""}, "7b2f2a59ebb34b5a49f20b99b546f08b9f4f62cbefdce9699f8ef7e74aeb0552":{"label":"ACM", "key":"b4976bb0892baba81d628513d191de100d89acd58efbb07c823a5bb4abe48a7a", "notes":""}, "b83a6bac0da3a27eb909d34cbad183e77088952f01d8d5321613b7b01635a020":{"label":"Adobe", "key":"d162bc404994a79ec97e0106c3a4edf2f83aca25def130242e11e95e74bd0aaa", "notes":""}, "befc571e9cda1a7dfb1d15200240ca5170386280ee7be6a12716904cb6d0ea44":{"label":"Adobe Photoshop Elements 3", "key":"18a62c3c2065399819707322f467ff4be030d7939acbe5182c8194599845c428", "notes":"Photoshop Elements 2:\n1057-4312-5223-2206-9509-6837"}, "0424f72608fedc969d64a6d5b4a16dd3ce860a230cd6d87d936439f4dd2aafc7":{"label":"Agatra", "key":"c35158a21b2af75d414232b742ab738d042314e00209f8fca94c8c704c891f23", "notes":""}, "e5e17c29fd598acb4f4c7d621dbdcb045d4d0cabf7d8a19e24420c440cdc3935":{"label":"AIM", "key":"8561ac421d845921978387b5e6b362750b57ed08feda8ec12b9378b69f67ceff", "notes":""}, "de890eb76a4b0cabd4ffd490adad1ff1b73238c7b5ee6dde1a2aeab2d03ebe93":{"label":"Anna Vespignani", "key":"79a970af0d2d30643dc2db4d16757395c1f22c311919036c2a22b7581982144a", "notes":""}, "0dc8d3989d0b35d672c012057d3eb7b111f16e79329e08a9ffb31ac7accbab21":{"label":"Bloglines", "key":"fe81f4df8c42fd81c830f9af408e9b074e77fd430e26d0ee285844fe3b092aec", "notes":""}, "85a40a322a59c80cb46519900269dcc7cf6947213d03dfc9371dd1930373a65b":{"label":"Bow.it", "key":"64a1a9fec99c9238dc8180a01484a1ccf5f50fcd6e9a95a52b8b49fb9ca00bdc", "notes":""}, "60308062a1848a301641a74712d220eef191a280ba0a8355992f0e61ed793811":{"label":"GMail - feedback", "key":"fad310cb2e6152c3faf78b7183c99f3044f5d31ee364068b80580c271a7784ef", "notes":""}, "257ac2da79ee1cd46dfa214d91f5ece213b6bbade28d1ee71495c81a3d7e033a":{"label":"Fineco", "key":"8f99de2635b5dad7987180bc0bff49947eb37cc75d6a5d1ee1f13ed7567465a3", "notes":""}, "78261622810232b6da5efcd52b1c9b0bd87c62517bf4df25323ca6a0b49d84ec":{"label":"mon.itor.us", "key":"d2aa7164007c5deac8bb73580a6ab0d051f747e801ecd30284eff725d0ffaba2", "notes":""}, "4b78dc0376d07e57d77b4c7318d2f222956adb6ff7360b73e60b8bb8b85f3d11":{"label":"Lamba Probe - forum", "key":"f73906817fddba4d8f816334cb2fd0cd5ae91bc29bce6a69fdd5cf98fc96911f", "notes":""}, "78ca2c85908275d788c2f7dd0306ca5e03b83637bb3812272b697e12e9dbf941":{"label":"MeasureMap", "key":"2385ce9536ebb7863b6a4c8b1f5c428587e4d6420a4bbcd31b935cb00bbd768e", "notes":""}, "4c2c7f0d733b647e6f388c9a4590a2a864cd2de259b66aba9b3cf92bdc3cf9bc":{"label":"NGI - Squillo", "key":"96f20c212be02fb38c8b2dfc83d8e864dd84dcb95297a7fecf9280e1e4dcffe3", "notes":""}, "eaeadf6d36f8ee6916c33b9e5bf480b663dc90c0c7f370ff5a1f2fd998cf1143":{"label":"NGI - F5", "key":"00347769244b208647c24e6a64f8fa4213e97eb2135ecfcb277b341c28616a59", "notes":""}, "19654392222206d60547073209672dde1c743ea371ddc20a2bd8254e561a4ec0":{"label":"CVSdude", "key":"ed0ab5080a29eb1b20927142d21ab8f67b61c2c7b19623bb610af030dfd42c02", "notes":""}, "6b10514d50e745f1dab5a40e8629ecf1a8c78a5d6e3895f3637fb67d2d3f9993":{"label":"Yahoo", "key":"6380a7655cd790d1f1e6f482e92ae04201568ff0cab887e65102e9396df1b86e", "notes":"note"}}, "directLogins":{"eac496e0b1ec75ea403f821fedc7f51f98dac639713ebe577f969f607a8943f5":{"record":"111855cedd650dfcbbce597d764583c6b040df4b71f5fa0161fb8d10514ee48f", "label":"R@cine - WebMail", "favicon":"http://www.racine.ra.it/favicon.ico"}, "ef564a022630d4395a9ecac854f3b127b3518cec362323ccc605079c0749c152":{"record":"1cef440eecea59f47554aa04b94e18c1d9fc761246b911f89a7da72d544cac48", "label":"Amazon sign in", "favicon":"http://www.amazon.com/favicon.ico"}, "4f14b88a4055ff23a00d625382650888ce9284fe869304775e43e3e33ee5bbb6":{"record":"6ad2cda35f97743cfddf2133cdf3142fe6419e683484531f1ef1e67431f44284", "label":"Aruba - hosting", "favicon":"http://hosting.aruba.it/favicon.ico"}, "e94c0d12d1db0badc31a8bbbbc4b08d2065a39f458462bbff9756f7b5eb7fedf":{"record":"741ce1d21839c69db754309b04ce02fbb4104f6cb87572c056ae4af918420700", "label":"Aruba - sql hosting", "favicon":"http://mysql.aruba.it/favicon.ico"}, "7299249153ef93a44e2f248ca3a73badde56e71d70919bb5637093c2abbe2c9a":{"record":"bd5a587bb977a2c728fcd0fa6093dd63a4e62138cf89721115fe45e0396ba5d2", "label":"clipperz.com - blog", "favicon":"http://www.clipperz.com/favicon.ico"}, "66876dbae68778d4c104bc12f01adcb21d47d9eace8db30ef95f74f461afcb59":{"record":"73fb52ed51533657d6ebb020d5026fb4deb601dadce802de58f7fff4b56e1495", "label":"DynDns - clipperz", "favicon":"http://www.dyndns.com/favicon.ico"}, "a60c65030a1797abde3e2089c3e5de9648f66bf71cebf0b58c26e729ad8d6a45":{"record":"5054f0b94cd97610a1bc0ed8671b6fb5b25bf7a5582677059fcaaea75fac27bc", "label":"DynDns - gcsolaroli", "favicon":"http://www.dyndns.com/favicon.ico"}, "08d6c5dff9fed4a2f237c32dd0a93ac46b2c45370d07f56fa76064be3b8fecbf":{"record":"30c4f575799fc6908765fc8b54f4a9a483cb32e12aa89feae545976870a9102e", "label":"GMail - giulio.cesare", "favicon":"http://www.google.com/favicon.ico"}, "9e75e12f0f52f248cc7ae517869dd7b02303037d32d9fb4fa0ab0e013923c304":{"record":"c9dae2b7a60b300008306f5ec731b60050250df8f8ff34f7d9cce92762121b99", "label":"Il manifesto", "favicon":"http://abbonati.ilmanifesto.it/favicon.ico"}, "935bf9553fbcb85b8bd5b98c6901d7cccb2566b395f192cbea71e7822979aaf2":{"record":"f1aac97154a0e52c5e33508afa82df5a9d6dcde24883a240b8c072a3238da0b6", "label":"Imap4All.com - account", "favicon":"http://www.imap4all.com/favicon.ico"}, "9504205ec29b89e6ccd0f3afc7a447d8891da0c71a0222f1860f98a8f8bc6677":{"record":"f1aac97154a0e52c5e33508afa82df5a9d6dcde24883a240b8c072a3238da0b6", "label":"Imap4all.com - WebMail", "favicon":"http://webmail.imap4all.com/favicon.ico"}, "3d8dd32d2290ca98789c914580ac2436ece97234217a07d752726d2ac48a4ebf":{"record":"d34c13773b5d8154355c2605024a1dfaf66279ba0fbe3ac19fc1cbc642278fe4", "label":"YouTube [no]", "favicon":"http://www.youtube.com/favicon.ico"}, "7c4b6b5a16984c43ed6d99b04ddfa7e00b624de729ec8aaa3d0f539fb67587e2":{"record":"c2b99939e40d100218baa3ed1cb2a25a5cf726485b0336a0989b104a94157b5f", "label":"Apple Store - Italia", "favicon":"http://store.apple.com/favicon.ico"}, "0b9a98262b50f0ebae5af077467bc627619738873690238fd61093ce9922c9f9":{"record":"ff79a2282cf246add520a3c06e835cf6ffaaae95067d45e8e2e8f44da2501380", "label":"3nity", "favicon":"http://www.3nity.de/favicon.ico"}, "aadeb3388629cfc3b15954f26cf284f52e084191dcdf75752dc4c53d2006c5be":{"record":"7b2f2a59ebb34b5a49f20b99b546f08b9f4f62cbefdce9699f8ef7e74aeb0552", "label":"ACM Web Account", "favicon":"http://portal.acm.org/favicon.ico"}, "3d21c71f2e284ec76f1ae0bb990b683979918f758635bb7d008150f4d7b1447d":{"record":"b83a6bac0da3a27eb909d34cbad183e77088952f01d8d5321613b7b01635a020", "label":"Adobe - Sign In", "favicon":"http://www.adobe.com/favicon.ico"}, "e61a331c998804d46044d4c2acaf96c2fce806f6549e1e16c7d2334872a70953":{"record":"0424f72608fedc969d64a6d5b4a16dd3ce860a230cd6d87d936439f4dd2aafc7", "label":"Agatra [no]", "favicon":"http://www.agatra.com/favicon.ico"}, "9bcd99564fda778061246439fa098dcc79de75b16c542f61e6de7d36dbaf97dc":{"record":"e5e17c29fd598acb4f4c7d621dbdcb045d4d0cabf7d8a19e24420c440cdc3935", "label":"AIM [no]", "favicon":"http://my.screenname.aol.com/favicon.ico"}, "c7093f4663c6e0eba941c557cb86da83fc68cbea36c922e168d0867e6cabe9fe":{"record":"0dc8d3989d0b35d672c012057d3eb7b111f16e79329e08a9ffb31ac7accbab21", "label":"Bloglines", "favicon":"http://www.bloglines.com/favicon.ico"}, "915f2e9460f6e54c6137f3876f9179fc8d2162c59f26e12899c2db6b0e70a68f":{"record":"85a40a322a59c80cb46519900269dcc7cf6947213d03dfc9371dd1930373a65b", "label":"Bow.it", "favicon":"http://www.bow.it/favicon.ico"}, "779701af1beb2a91735ba1a2e471b948f0d985bb0df256f5e089291ce3405bd2":{"record":"b2836a864ff081b6f053c3f5f13dfb29c81af33d25a316cdd82af747ea71bea0", "label":"GMail - Clipperz", "favicon":"http://www.google.com/favicon.ico"}, "1c300539a98c874d52134b6b5a591172acc00c0947692f3da284447f7d511eaf":{"record":"60308062a1848a301641a74712d220eef191a280ba0a8355992f0e61ed793811", "label":"GMail - feedback", "favicon":"http://www.google.com/favicon.ico"}, "f9dccdf7a98735fd7a6b5d04c09177005c0de14f8f92b04007f06a281ecdf31e":{"record":"30c4f575799fc6908765fc8b54f4a9a483cb32e12aa89feae545976870a9102e", "label":"Blogger", "favicon":"http://www.google.com/favicon.ico"}, "48497a89f3bfd567758977e1c32b4497d28c843880667ee52fa4cfcb53c5f9e4":{"record":"378a790452de46e1079a99eba2e15094a096b418cccd0262b8b20244eb94d2df", "label":"NewsGator", "favicon":"http://www.newsgator.com/favicon.ico"}, "134cd28f150df4f2a089f4807bb7a35fb7ece22ec41244f72e63f8b43637a4cd":{"record":"4b78dc0376d07e57d77b4c7318d2f222956adb6ff7360b73e60b8bb8b85f3d11", "label":"Lambda Probe - forum", "favicon":"http://www.lambdaprobe.org/favicon.ico"}, "2ab6106a81513b70f1ba0d7c5c3ef54fa6f4bcadf01d2eeaa2b31b9299551398":{"record":"78ca2c85908275d788c2f7dd0306ca5e03b83637bb3812272b697e12e9dbf941", "label":"Measure Map", "favicon":"http://alpha.measuremap.com/favicon.ico"}, "53ccdc41b43da9b018847f9faa8effb35e7a6c6e78a54e9ee7816fc02f0ea63b":{"record":"4c2c7f0d733b647e6f388c9a4590a2a864cd2de259b66aba9b3cf92bdc3cf9bc", "label":"NGI - Squillo", "favicon":"http://www.ngi.it/favicon.ico"}, "ca520e7081fba1df3ef79c3d00266cffc8e4567def29d67ae812b7ed6283fb12":{"record":"eaeadf6d36f8ee6916c33b9e5bf480b663dc90c0c7f370ff5a1f2fd998cf1143", "label":"NGI - F5", "favicon":"http://www.ngi.it/favicon.ico"}, "80e63e135d7abd2b2990f42af4f8d1f8e8b1146aed44dc36975061fbf360a983":{"record":"6b10514d50e745f1dab5a40e8629ecf1a8c78a5d6e3895f3637fb67d2d3f9993", "label":"Yahoo! Mail", "favicon":"http://login.yahoo.com/favicon.ico"}}, "preferences":{"preferredLanguage":"en-US"}}; |
85 | /* */ | 82 | /* */ |
86 | plainText = { | 83 | plainText = { |
87 | "records": { | 84 | "records": { |
88 | "1": { | 85 | "1": { |
89 | "label":"imap4all [no]", | 86 | "label":"imap4all [no]", |
90 | "key":"f54b5033d1152456acb67974c45ee6771f8411e300c9533359dfacacf60dcbbd", | 87 | "key":"f54b5033d1152456acb67974c45ee6771f8411e300c9533359dfacacf60dcbbd", |
91 | "notes":"" | 88 | "notes":"" |
92 | }, | 89 | }, |
93 | "2": { | 90 | "2": { |
94 | "label":"Il manifesto", | 91 | "label":"Il manifesto", |
95 | "key":"6e0ef134503110e72f444e7d102a4b1cc6ae28f2e0b1287c2b1875ff052fc16c", | 92 | "key":"6e0ef134503110e72f444e7d102a4b1cc6ae28f2e0b1287c2b1875ff052fc16c", |
96 | "notes":"" | 93 | "notes":"" |
97 | }, | 94 | }, |
98 | "3": { | 95 | "3": { |
99 | "label": "OmniGroup applications", | 96 | "label": "OmniGroup applications", |
100 | "key": "7b432b7dae39ff5951db31947fa721dc012af0da4055760c6df3b02e776ef22c", | 97 | "key": "7b432b7dae39ff5951db31947fa721dc012af0da4055760c6df3b02e776ef22c", |
101 | "notes": "url: http://www.omnigroup.com\n\nLicence owner: Giulio Cesare Solaroli\n\nOmniWeb: EQGP-EMKH-LKWP-MUHQ-OUHL-LDF\nOmniGraffle:\nOmniOutliner:\nOmniDiskSweeper:" | 98 | "notes": "url: http://www.omnigroup.com\n\nLicence owner: Giulio Cesare Solaroli\n\nOmniWeb: EQGP-EMKH-LKWP-MUHQ-OUHL-LDF\nOmniGraffle:\nOmniOutliner:\nOmniDiskSweeper:" |
102 | }, | 99 | }, |
103 | "4": { | 100 | "4": { |
104 | "label": "R@cine", | 101 | "label": "R@cine", |
105 | "key": "57295772c84669b0a224f435e9b75c797ae5999a2d9473ab50f9384ae54f49d6", | 102 | "key": "57295772c84669b0a224f435e9b75c797ae5999a2d9473ab50f9384ae54f49d6", |
106 | "notes": "" | 103 | "notes": "" |
107 | }, | 104 | }, |
108 | "5": { | 105 | "5": { |
109 | "label": "NewsGator", | 106 | "label": "NewsGator", |
110 | "key": "6ee16f6932ee02000c49dbcc685c84074b40d7956e5f4bc1100030a0f9a41f1a", | 107 | "key": "6ee16f6932ee02000c49dbcc685c84074b40d7956e5f4bc1100030a0f9a41f1a", |
111 | "notes": "" | 108 | "notes": "" |
112 | }, | 109 | }, |
113 | "6": { | 110 | "6": { |
114 | "label": "GMail - giulio.cesare", | 111 | "label": "GMail - giulio.cesare", |
115 | "key": "0395efd852b00700bcf78b65350ec15932430df71201d2c53a11b0269b557d1a", | 112 | "key": "0395efd852b00700bcf78b65350ec15932430df71201d2c53a11b0269b557d1a", |
116 | "notes": "" | 113 | "notes": "" |
117 | }, | 114 | }, |
118 | "7": { | 115 | "7": { |
119 | "label": "GMail - clipperz.com", | 116 | "label": "GMail - clipperz.com", |
120 | "key": "90d6ae70d89c8211404b6f9d6c70b6b9c113fff74f474a67b34acd9c1c048d1f", | 117 | "key": "90d6ae70d89c8211404b6f9d6c70b6b9c113fff74f474a67b34acd9c1c048d1f", |
diff --git a/frontend/gamma/tests/tests/Clipperz/Crypto/Base.html b/frontend/gamma/tests/tests/Clipperz/Crypto/Base.html index 86fc49a..0ffcdb8 100644 --- a/frontend/gamma/tests/tests/Clipperz/Crypto/Base.html +++ b/frontend/gamma/tests/tests/Clipperz/Crypto/Base.html | |||
@@ -1,120 +1,117 @@ | |||
1 | <!-- | 1 | <!-- |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | --> | 24 | --> |
28 | 25 | ||
29 | <html> | 26 | <html> |
30 | <head> | 27 | <head> |
31 | <script type="text/javascript" src="../../../../js/MochiKit/MochiKit.js"></script> | 28 | <script type="text/javascript" src="../../../../js/MochiKit/MochiKit.js"></script> |
32 | <script type="text/javascript" src="../../../../js/JSLog/jslog.js"></script> | 29 | <script type="text/javascript" src="../../../../js/JSLog/jslog.js"></script> |
33 | <script type="text/javascript" src="../../../SimpleTest/SimpleTest.js"></script> | 30 | <script type="text/javascript" src="../../../SimpleTest/SimpleTest.js"></script> |
34 | <link rel="stylesheet" type="text/css" href="../../../SimpleTest/test.css"> | 31 | <link rel="stylesheet" type="text/css" href="../../../SimpleTest/test.css"> |
35 | 32 | ||
36 | <script type='text/javascript' src='../../../../js/Clipperz/YUI/Utils.js'></script> | 33 | <script type='text/javascript' src='../../../../js/Clipperz/YUI/Utils.js'></script> |
37 | <script type='text/javascript' src='../../../../js/Clipperz/Base.js'></script> | 34 | <script type='text/javascript' src='../../../../js/Clipperz/Base.js'></script> |
38 | <script type='text/javascript' src='../../../../js/Clipperz/ByteArray.js'></script> | 35 | <script type='text/javascript' src='../../../../js/Clipperz/ByteArray.js'></script> |
39 | 36 | ||
40 | <script type='text/javascript' src='../../../../js/Clipperz/Crypto/BigInt.js'></script> | 37 | <script type='text/javascript' src='../../../../js/Clipperz/Crypto/BigInt.js'></script> |
41 | <script type='text/javascript' src='../../../../js/Clipperz/Crypto/Base.js'></script> | 38 | <script type='text/javascript' src='../../../../js/Clipperz/Crypto/Base.js'></script> |
42 | <script type='text/javascript' src='../../../../js/Clipperz/Crypto/Functions.js'></script> | 39 | <script type='text/javascript' src='../../../../js/Clipperz/Crypto/Functions.js'></script> |
43 | <script type='text/javascript' src='../../../../js/Clipperz/Crypto/BigInt.js'></script> | 40 | <script type='text/javascript' src='../../../../js/Clipperz/Crypto/BigInt.js'></script> |
44 | 41 | ||
45 | </head> | 42 | </head> |
46 | <body> | 43 | <body> |
47 | <pre id="test"> | 44 | <pre id="test"> |
48 | <script type="text/javascript"> | 45 | <script type="text/javascript"> |
49 | try { | 46 | try { |
50 | var secretKey; | 47 | var secretKey; |
51 | varpublicKey; | 48 | varpublicKey; |
52 | varplainString; | 49 | varplainString; |
53 | varencryptedString; | 50 | varencryptedString; |
54 | 51 | ||
55 | 52 | ||
56 | secretKey = "s3cr37k39"; | 53 | secretKey = "s3cr37k39"; |
57 | plainString = "The Quick Brown Fox Jumps Over The Lazy Dog"; | 54 | plainString = "The Quick Brown Fox Jumps Over The Lazy Dog"; |
58 | encryptedString = Clipperz.Crypto.Base.encryptUsingSecretKey(secretKey, plainString); | 55 | encryptedString = Clipperz.Crypto.Base.encryptUsingSecretKey(secretKey, plainString); |
59 | 56 | ||
60 | //------------------------------------------------------------------------- | 57 | //------------------------------------------------------------------------- |
61 | // | 58 | // |
62 | //Secret key encryption / decryption | 59 | //Secret key encryption / decryption |
63 | // | 60 | // |
64 | is (isUndefinedOrNull(encryptedString), false, "An encrypted string should not be empty"); | 61 | is (isUndefinedOrNull(encryptedString), false, "An encrypted string should not be empty"); |
65 | is (plainString, Clipperz.Crypto.Base.decryptUsingSecretKey(secretKey, encryptedString), "I should be able to encrypt and then decrypt safely"); | 62 | is (plainString, Clipperz.Crypto.Base.decryptUsingSecretKey(secretKey, encryptedString), "I should be able to encrypt and then decrypt safely"); |
66 | 63 | ||
67 | try { | 64 | try { |
68 | vardecryptedText; | 65 | vardecryptedText; |
69 | 66 | ||
70 | decryptedText = Clipperz.Crypto.Base.decryptUsingSecretKey("anotherKey", encryptedString); | 67 | decryptedText = Clipperz.Crypto.Base.decryptUsingSecretKey("anotherKey", encryptedString); |
71 | ok( false, "It should not be possible to decrypt a text with a different passphrase (decrypted text: " + decryptedText + ")" ); | 68 | ok( false, "It should not be possible to decrypt a text with a different passphrase (decrypted text: " + decryptedText + ")" ); |
72 | } catch (e) { | 69 | } catch (e) { |
73 | ok( e instanceof Error, "Trying to decrypt a message with the wrong passphrase raised an error" ); | 70 | ok( e instanceof Error, "Trying to decrypt a message with the wrong passphrase raised an error" ); |
74 | } | 71 | } |
75 | 72 | ||
76 | is (encryptedString == Clipperz.Crypto.Base.encryptUsingSecretKey(secretKey, plainString), false, "Two consecutive encryption of the same text should return different values"); | 73 | is (encryptedString == Clipperz.Crypto.Base.encryptUsingSecretKey(secretKey, plainString), false, "Two consecutive encryption of the same text should return different values"); |
77 | 74 | ||
78 | secretKey = "trustno1"; | 75 | secretKey = "trustno1"; |
79 | plainString = "59fed719f8959a468de367f77a33a7536d53b8e4d25ed49ccc89a94cd6899da90415623fb73386e9635034fb65ad5f248445a1c66703f760d64a8271ad342b1"; | 76 | plainString = "59fed719f8959a468de367f77a33a7536d53b8e4d25ed49ccc89a94cd6899da90415623fb73386e9635034fb65ad5f248445a1c66703f760d64a8271ad342b1"; |
80 | encryptedString = Clipperz.Crypto.Base.encryptUsingSecretKey(secretKey, plainString); | 77 | encryptedString = Clipperz.Crypto.Base.encryptUsingSecretKey(secretKey, plainString); |
81 | is (plainString, Clipperz.Crypto.Base.decryptUsingSecretKey(secretKey, encryptedString), "I should be able to encrypt and then decrypt safely"); | 78 | is (plainString, Clipperz.Crypto.Base.decryptUsingSecretKey(secretKey, encryptedString), "I should be able to encrypt and then decrypt safely"); |
82 | 79 | ||
83 | secretKey = "trustno1"; | 80 | secretKey = "trustno1"; |
84 | plainString = "Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Sed pede. Curabitur a mi id nisi euismod rutrum. Phasellus gravida. Ut luctus. Praesent quis leo sit amet orci imperdiet malesuada. Aenean molestie mauris euismod odio. Suspendisse ullamcorper facilisis nisl. Fusce vestibulum consectetuer risus. Curabitur ut turpis eget arcu facilisis ultricies. Morbi elementum, erat vitae dictum imperdiet, nisi purus rutrum odio, eget ornare ipsum nisl in tortor. Duis vestibulum, nulla et bibendum volutpat, mauris metus facilisis elit, vel gravida tortor leo at enim. Vivamus pulvinar lorem vitae tortor. Morbi rhoncus suscipit urna. Praesent placerat tempus augue. Fusce varius dui a nisi consequat ultricies. Curabitur at nisi. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos hymenaeos. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas."; | 81 | plainString = "Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Sed pede. Curabitur a mi id nisi euismod rutrum. Phasellus gravida. Ut luctus. Praesent quis leo sit amet orci imperdiet malesuada. Aenean molestie mauris euismod odio. Suspendisse ullamcorper facilisis nisl. Fusce vestibulum consectetuer risus. Curabitur ut turpis eget arcu facilisis ultricies. Morbi elementum, erat vitae dictum imperdiet, nisi purus rutrum odio, eget ornare ipsum nisl in tortor. Duis vestibulum, nulla et bibendum volutpat, mauris metus facilisis elit, vel gravida tortor leo at enim. Vivamus pulvinar lorem vitae tortor. Morbi rhoncus suscipit urna. Praesent placerat tempus augue. Fusce varius dui a nisi consequat ultricies. Curabitur at nisi. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos hymenaeos. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas."; |
85 | encryptedString = Clipperz.Crypto.Base.encryptUsingSecretKey(secretKey, plainString); | 82 | encryptedString = Clipperz.Crypto.Base.encryptUsingSecretKey(secretKey, plainString); |
86 | is (plainString, Clipperz.Crypto.Base.decryptUsingSecretKey(secretKey, encryptedString), "I should be able to encrypt and then decrypt safely"); | 83 | is (plainString, Clipperz.Crypto.Base.decryptUsingSecretKey(secretKey, encryptedString), "I should be able to encrypt and then decrypt safely"); |
87 | 84 | ||
88 | secretKey = "trustno1"; | 85 | secretKey = "trustno1"; |
89 | plainString = "Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Sed pede. Curabitur a mi id nisi euismod rutrum. Phasellus gravida. Ut luctus. Praesent quis leo sit amet orci imperdiet malesuada. Aenean molestie mauris euismod odio. Suspendisse ullamcorper facilisis nisl. Fusce vestibulum consectetuer risus. Curabitur ut turpis eget arcu facilisis ultricies. Morbi elementum, erat vitae dictum imperdiet, nisi purus rutrum odio, eget ornare ipsum nisl in tortor. Duis vestibulum, nulla et bibendum volutpat, mauris metus facilisis elit, vel gravida tortor leo at enim. Vivamus pulvinar lorem vitae tortor. Morbi rhoncus suscipit urna. Praesent placerat tempus augue. Fusce varius dui a nisi consequat ultricies. Curabitur at nisi. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos hymenaeos. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas./n/n/nMorbi vel leo non justo condimentum convallis. Vestibulum posuere aliquam nunc. Donec magna magna, euismod nec, pharetra fringilla, tristique mattis, turpis. Duis condimentum lacus eu felis. Sed ultricies. Nullam lacinia ante id diam. Ut quis enim. Fusce at felis quis neque vehicula tempor. Sed feugiat sodales sem. Duis cursus massa in ligula. Vestibulum volutpat, risus in ornare porta, tortor orci vestibulum felis, et eleifend risus odio nec eros. Integer lorem turpis, imperdiet eu, tempor eu, ultricies nec, est. Ut congue. Morbi lacinia vehicula pede. Cras neque sapien, feugiat ac, eleifend eget, mattis et, nisl. Morbi at augue vitae massa laoreet gravida./n/n/nSuspendisse vehicula convallis sem. Sed vel urna. Proin dolor diam, malesuada in, aliquet a, sagittis et, magna. Cras at dui eu mi porta fermentum. Donec pharetra purus sed velit. Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Quisque euismod ornare neque. In odio nisi, bibendum non, vulputate ut, tincidunt a, ante. Sed risus arcu, tempus laoreet, euismod id, laoreet mollis, arcu. Ut tempor orci in nibh. Suspendisse potenti. Maecenas accumsan augue at nisl. Donec elementum diam nec metus. Sed vitae lacus sed libero varius semper. Aenean hendrerit tristique arcu. Praesent adipiscing ornare purus. Vestibulum quis eros nec risus accumsan laoreet. Duis consequat ante ut turpis. Curabitur aliquam suscipit ligula. Vivamus adipiscing./n/n/nCurabitur facilisis neque sit amet erat. Aliquam odio augue, vulputate lobortis, rutrum ut, tristique id, leo. Vivamus eu magna. Maecenas et libero. Integer porta, lorem at mollis ullamcorper, purus metus vestibulum erat, ut fringilla dui ante id mi. Morbi vitae ligula. Praesent ornare sapien sed massa. Mauris rhoncus fermentum dolor. Mauris gravida, justo et mollis malesuada, dolor erat fermentum nulla, vel suscipit leo ligula vel augue. Praesent magna enim, dignissim sed, aliquet quis, fermentum viverra, nisi. Vivamus condimentum, nisi quis posuere viverra, enim nunc faucibus lectus, mollis aliquam ipsum enim vel lacus. Suspendisse eget ligula. Aliquam ut metus et justo consectetuer ornare. Donec dapibus tristique pede. Vestibulum interdum ultricies tortor./n/n/nNunc nonummy dictum tortor. Quisque at elit a arcu nonummy elementum. Quisque auctor, risus et sodales euismod, turpis tellus consectetuer ante, quis egestas justo enim quis mi. Nunc fermentum sodales felis. Vivamus odio mi, dignissim vitae, auctor nec, tempus eget, lacus. Ut sapien massa, hendrerit eget, sagittis at, eleifend condimentum, arcu. Curabitur purus orci, facilisis vel, dapibus id, varius rutrum, tortor. Fusce accumsan viverra sem. Quisque tincidunt venenatis risus. Sed tortor justo, volutpat malesuada, sodales ut, vehicula id, magna. Nunc placerat, nibh et imperdiet ultricies, urna nulla luctus sapien, et porta mi odio ac neque. Morbi dignissim. Sed risus pede, adipiscing gravida, pharetra sit amet, convallis non, orci. Morbi adipiscing mauris id massa. Nullam fermentum. Suspendisse eget est"; | 86 | plainString = "Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Sed pede. Curabitur a mi id nisi euismod rutrum. Phasellus gravida. Ut luctus. Praesent quis leo sit amet orci imperdiet malesuada. Aenean molestie mauris euismod odio. Suspendisse ullamcorper facilisis nisl. Fusce vestibulum consectetuer risus. Curabitur ut turpis eget arcu facilisis ultricies. Morbi elementum, erat vitae dictum imperdiet, nisi purus rutrum odio, eget ornare ipsum nisl in tortor. Duis vestibulum, nulla et bibendum volutpat, mauris metus facilisis elit, vel gravida tortor leo at enim. Vivamus pulvinar lorem vitae tortor. Morbi rhoncus suscipit urna. Praesent placerat tempus augue. Fusce varius dui a nisi consequat ultricies. Curabitur at nisi. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos hymenaeos. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas./n/n/nMorbi vel leo non justo condimentum convallis. Vestibulum posuere aliquam nunc. Donec magna magna, euismod nec, pharetra fringilla, tristique mattis, turpis. Duis condimentum lacus eu felis. Sed ultricies. Nullam lacinia ante id diam. Ut quis enim. Fusce at felis quis neque vehicula tempor. Sed feugiat sodales sem. Duis cursus massa in ligula. Vestibulum volutpat, risus in ornare porta, tortor orci vestibulum felis, et eleifend risus odio nec eros. Integer lorem turpis, imperdiet eu, tempor eu, ultricies nec, est. Ut congue. Morbi lacinia vehicula pede. Cras neque sapien, feugiat ac, eleifend eget, mattis et, nisl. Morbi at augue vitae massa laoreet gravida./n/n/nSuspendisse vehicula convallis sem. Sed vel urna. Proin dolor diam, malesuada in, aliquet a, sagittis et, magna. Cras at dui eu mi porta fermentum. Donec pharetra purus sed velit. Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Quisque euismod ornare neque. In odio nisi, bibendum non, vulputate ut, tincidunt a, ante. Sed risus arcu, tempus laoreet, euismod id, laoreet mollis, arcu. Ut tempor orci in nibh. Suspendisse potenti. Maecenas accumsan augue at nisl. Donec elementum diam nec metus. Sed vitae lacus sed libero varius semper. Aenean hendrerit tristique arcu. Praesent adipiscing ornare purus. Vestibulum quis eros nec risus accumsan laoreet. Duis consequat ante ut turpis. Curabitur aliquam suscipit ligula. Vivamus adipiscing./n/n/nCurabitur facilisis neque sit amet erat. Aliquam odio augue, vulputate lobortis, rutrum ut, tristique id, leo. Vivamus eu magna. Maecenas et libero. Integer porta, lorem at mollis ullamcorper, purus metus vestibulum erat, ut fringilla dui ante id mi. Morbi vitae ligula. Praesent ornare sapien sed massa. Mauris rhoncus fermentum dolor. Mauris gravida, justo et mollis malesuada, dolor erat fermentum nulla, vel suscipit leo ligula vel augue. Praesent magna enim, dignissim sed, aliquet quis, fermentum viverra, nisi. Vivamus condimentum, nisi quis posuere viverra, enim nunc faucibus lectus, mollis aliquam ipsum enim vel lacus. Suspendisse eget ligula. Aliquam ut metus et justo consectetuer ornare. Donec dapibus tristique pede. Vestibulum interdum ultricies tortor./n/n/nNunc nonummy dictum tortor. Quisque at elit a arcu nonummy elementum. Quisque auctor, risus et sodales euismod, turpis tellus consectetuer ante, quis egestas justo enim quis mi. Nunc fermentum sodales felis. Vivamus odio mi, dignissim vitae, auctor nec, tempus eget, lacus. Ut sapien massa, hendrerit eget, sagittis at, eleifend condimentum, arcu. Curabitur purus orci, facilisis vel, dapibus id, varius rutrum, tortor. Fusce accumsan viverra sem. Quisque tincidunt venenatis risus. Sed tortor justo, volutpat malesuada, sodales ut, vehicula id, magna. Nunc placerat, nibh et imperdiet ultricies, urna nulla luctus sapien, et porta mi odio ac neque. Morbi dignissim. Sed risus pede, adipiscing gravida, pharetra sit amet, convallis non, orci. Morbi adipiscing mauris id massa. Nullam fermentum. Suspendisse eget est"; |
90 | encryptedString = Clipperz.Crypto.Base.encryptUsingSecretKey(secretKey, plainString); | 87 | encryptedString = Clipperz.Crypto.Base.encryptUsingSecretKey(secretKey, plainString); |
91 | is (plainString, Clipperz.Crypto.Base.decryptUsingSecretKey(secretKey, encryptedString), "I should be able to encrypt and then decrypt safely"); | 88 | is (plainString, Clipperz.Crypto.Base.decryptUsingSecretKey(secretKey, encryptedString), "I should be able to encrypt and then decrypt safely"); |
92 | 89 | ||
93 | //secretKey = "trustno1"; | 90 | //secretKey = "trustno1"; |
94 | //plainString = "{}"; | 91 | //plainString = "{}"; |
95 | // plainString = "{'tags': {'personal': ['ref_1', 'ref_3'], 'business': ['ref_2', 'ref_3']}, 'records': {'ref_1': {'label': 'record_1', 'key': 'key_1'}, 'ref_2': {'label': 'record_2', 'key': 'key_2'}, 'ref_3': {'label': 'record_3', 'key': 'key_3'}}}"; | 92 | // plainString = "{'tags': {'personal': ['ref_1', 'ref_3'], 'business': ['ref_2', 'ref_3']}, 'records': {'ref_1': {'label': 'record_1', 'key': 'key_1'}, 'ref_2': {'label': 'record_2', 'key': 'key_2'}, 'ref_3': {'label': 'record_3', 'key': 'key_3'}}}"; |
96 | //plainString = "{'tags': {}, 'records': {'07a5a92fcb334f757998ba14f3251f126d038318b3ac5e584bd712804c548084': {'label': 'Un bel record', 'key': '2a3f261c20a6a98dcc82b13fba013130b759f20602b4b13c5760879e087482a4'}}}"; | 93 | //plainString = "{'tags': {}, 'records': {'07a5a92fcb334f757998ba14f3251f126d038318b3ac5e584bd712804c548084': {'label': 'Un bel record', 'key': '2a3f261c20a6a98dcc82b13fba013130b759f20602b4b13c5760879e087482a4'}}}"; |
97 | //encryptedString = Clipperz.Crypto.Base.encryptUsingSecretKey(secretKey, plainString); | 94 | //encryptedString = Clipperz.Crypto.Base.encryptUsingSecretKey(secretKey, plainString); |
98 | //is(encryptedString, "{}", "encrypted value"); | 95 | //is(encryptedString, "{}", "encrypted value"); |
99 | 96 | ||
100 | 97 | ||
101 | //secretKey = "trustno1"; | 98 | //secretKey = "trustno1"; |
102 | //encryptedString = "0d43a4544424ffa519f2e43b7a46f703884fd94ff9879479563f6f252a573b253d3e77bc4f5f30f17bd11d2907718921ab8c9e1faccbe4314793fa323eb85eaf1bfbce5f7deea601e15b781782181cbff3c649dafef39abb70e8573e4f9be220f2286b01c3bd51d5c4a79b9d44a27be3b0994667302e301ca3dc074fb1bc7abc03d12b9e58ba0249435a120858c96e8ae99570718541499ab958a8fb92b63390be070ff61fc6ef107061693ab14c1915118cc6671ab7cf99b9cca553d6b5a7c314bffcd933e0a59f056d842a47cfe8571110b4764c5225443210d99b43b80a23c20fe953de3e1329d72cfb20139fe1ca"; | 99 | //encryptedString = "0d43a4544424ffa519f2e43b7a46f703884fd94ff9879479563f6f252a573b253d3e77bc4f5f30f17bd11d2907718921ab8c9e1faccbe4314793fa323eb85eaf1bfbce5f7deea601e15b781782181cbff3c649dafef39abb70e8573e4f9be220f2286b01c3bd51d5c4a79b9d44a27be3b0994667302e301ca3dc074fb1bc7abc03d12b9e58ba0249435a120858c96e8ae99570718541499ab958a8fb92b63390be070ff61fc6ef107061693ab14c1915118cc6671ab7cf99b9cca553d6b5a7c314bffcd933e0a59f056d842a47cfe8571110b4764c5225443210d99b43b80a23c20fe953de3e1329d72cfb20139fe1ca"; |
103 | //plainString = Clipperz.Crypto.Base.decryptUsingSecretKey(secretKey, encryptedString); | 100 | //plainString = Clipperz.Crypto.Base.decryptUsingSecretKey(secretKey, encryptedString); |
104 | //is(plainString, "{}", "decrypted value"); | 101 | //is(plainString, "{}", "decrypted value"); |
105 | 102 | ||
106 | //------------------------------------------------------------------------- | 103 | //------------------------------------------------------------------------- |
107 | // | 104 | // |
108 | //Java secret key encryption / JavaScript decryption | 105 | //Java secret key encryption / JavaScript decryption |
109 | // | 106 | // |
110 | secretKey = "s3cr37k39"; | 107 | secretKey = "s3cr37k39"; |
111 | plainString = "The Quick Brown Fox Jumps Over The Lazy Dog"; | 108 | plainString = "The Quick Brown Fox Jumps Over The Lazy Dog"; |
112 | encryptedString = "9be538c3dde4dfab9384c0ef71dc624299fbbe71be8d1fe8991fd6cae88a883cf459d7cd56913a2b69815782cf74d7ce5c2c08034661f7f8aa59cf420e913086896840ebb45102d44d733d32de2a7dc8"; | 109 | encryptedString = "9be538c3dde4dfab9384c0ef71dc624299fbbe71be8d1fe8991fd6cae88a883cf459d7cd56913a2b69815782cf74d7ce5c2c08034661f7f8aa59cf420e913086896840ebb45102d44d733d32de2a7dc8"; |
113 | is (plainString, Clipperz.Crypto.Base.decryptUsingSecretKey(secretKey, encryptedString), "I should be able to encrypt and then decrypt safely"); | 110 | is (plainString, Clipperz.Crypto.Base.decryptUsingSecretKey(secretKey, encryptedString), "I should be able to encrypt and then decrypt safely"); |
114 | 111 | ||
115 | //------------------------------------------------------------------------- | 112 | //------------------------------------------------------------------------- |
116 | // | 113 | // |
117 | //Public key encryption -> Private key decryption | 114 | //Public key encryption -> Private key decryption |
118 | // | 115 | // |
119 | { | 116 | { |
120 | varcleanKey; | 117 | varcleanKey; |
diff --git a/frontend/gamma/tests/tests/Clipperz/Crypto/BigInt.html b/frontend/gamma/tests/tests/Clipperz/Crypto/BigInt.html index bdb0cbc..b970a9a 100644 --- a/frontend/gamma/tests/tests/Clipperz/Crypto/BigInt.html +++ b/frontend/gamma/tests/tests/Clipperz/Crypto/BigInt.html | |||
@@ -1,120 +1,117 @@ | |||
1 | <!-- | 1 | <!-- |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | --> | 24 | --> |
28 | 25 | ||
29 | <html> | 26 | <html> |
30 | <head> | 27 | <head> |
31 | <script type="text/javascript" src="../../../../js/MochiKit/MochiKit.js"></script> | 28 | <script type="text/javascript" src="../../../../js/MochiKit/MochiKit.js"></script> |
32 | <script type="text/javascript" src="../../../../js/JSLog/jslog.js"></script> | 29 | <script type="text/javascript" src="../../../../js/JSLog/jslog.js"></script> |
33 | <script type="text/javascript" src="../../../SimpleTest/SimpleTest.js"></script> | 30 | <script type="text/javascript" src="../../../SimpleTest/SimpleTest.js"></script> |
34 | <link rel="stylesheet" type="text/css" href="../../../SimpleTest/test.css"> | 31 | <link rel="stylesheet" type="text/css" href="../../../SimpleTest/test.css"> |
35 | 32 | ||
36 | <script type='text/javascript' src='../../../../js/Clipperz/YUI/Utils.js'></script> | 33 | <script type='text/javascript' src='../../../../js/Clipperz/YUI/Utils.js'></script> |
37 | <script type='text/javascript' src='../../../../js/Clipperz/YUI/DomHelper.js'></script> | 34 | <script type='text/javascript' src='../../../../js/Clipperz/YUI/DomHelper.js'></script> |
38 | <script type='text/javascript' src='../../../../js/Clipperz/Base.js'></script> | 35 | <script type='text/javascript' src='../../../../js/Clipperz/Base.js'></script> |
39 | <script type='text/javascript' src='../../../../js/Clipperz/ByteArray.js'></script> | 36 | <script type='text/javascript' src='../../../../js/Clipperz/ByteArray.js'></script> |
40 | 37 | ||
41 | <script type='text/javascript' src='../../../../js/Clipperz/Crypto/BigInt.js'></script> | 38 | <script type='text/javascript' src='../../../../js/Clipperz/Crypto/BigInt.js'></script> |
42 | <script type='text/javascript' src='../../../../js/Clipperz/Crypto/Base.js'></script> | 39 | <script type='text/javascript' src='../../../../js/Clipperz/Crypto/Base.js'></script> |
43 | <script type='text/javascript' src='../../../../js/Clipperz/Crypto/Functions.js'></script> | 40 | <script type='text/javascript' src='../../../../js/Clipperz/Crypto/Functions.js'></script> |
44 | </head> | 41 | </head> |
45 | <body> | 42 | <body> |
46 | <pre id="test"> | 43 | <pre id="test"> |
47 | <script type="text/javascript"> | 44 | <script type="text/javascript"> |
48 | try { | 45 | try { |
49 | varbigInt_1; | 46 | varbigInt_1; |
50 | varbigInt_2; | 47 | varbigInt_2; |
51 | varresult; | 48 | varresult; |
52 | varexpectedResult; | 49 | varexpectedResult; |
53 | 50 | ||
54 | // | 51 | // |
55 | //Constructur and equality test | 52 | //Constructur and equality test |
56 | // | 53 | // |
57 | bigInt_1 = new Clipperz.Crypto.BigInt("110"); | 54 | bigInt_1 = new Clipperz.Crypto.BigInt("110"); |
58 | is (bigInt_1.equals(bigInt_1), true, ""); | 55 | is (bigInt_1.equals(bigInt_1), true, ""); |
59 | 56 | ||
60 | bigInt_1 = new Clipperz.Crypto.BigInt("110"); | 57 | bigInt_1 = new Clipperz.Crypto.BigInt("110"); |
61 | bigInt_2 = new Clipperz.Crypto.BigInt("110", 10); | 58 | bigInt_2 = new Clipperz.Crypto.BigInt("110", 10); |
62 | is (bigInt_1.equals(bigInt_2), true, ""); | 59 | is (bigInt_1.equals(bigInt_2), true, ""); |
63 | 60 | ||
64 | bigInt_1 = new Clipperz.Crypto.BigInt("110"); | 61 | bigInt_1 = new Clipperz.Crypto.BigInt("110"); |
65 | bigInt_2 = new Clipperz.Crypto.BigInt(110); | 62 | bigInt_2 = new Clipperz.Crypto.BigInt(110); |
66 | is (bigInt_1.equals(bigInt_2), true, ""); | 63 | is (bigInt_1.equals(bigInt_2), true, ""); |
67 | 64 | ||
68 | bigInt_1 = new Clipperz.Crypto.BigInt(6); | 65 | bigInt_1 = new Clipperz.Crypto.BigInt(6); |
69 | bigInt_2 = new Clipperz.Crypto.BigInt("110", 2); | 66 | bigInt_2 = new Clipperz.Crypto.BigInt("110", 2); |
70 | is (bigInt_1.equals(bigInt_2), true, ""); | 67 | is (bigInt_1.equals(bigInt_2), true, ""); |
71 | 68 | ||
72 | bigInt_1 = new Clipperz.Crypto.BigInt(6); | 69 | bigInt_1 = new Clipperz.Crypto.BigInt(6); |
73 | bigInt_2 = new Clipperz.Crypto.BigInt("110", 3); | 70 | bigInt_2 = new Clipperz.Crypto.BigInt("110", 3); |
74 | is (bigInt_1.equals(bigInt_2), false, ""); | 71 | is (bigInt_1.equals(bigInt_2), false, ""); |
75 | 72 | ||
76 | 73 | ||
77 | // | 74 | // |
78 | //Addition test | 75 | //Addition test |
79 | // | 76 | // |
80 | bigInt_1 = new Clipperz.Crypto.BigInt(6); | 77 | bigInt_1 = new Clipperz.Crypto.BigInt(6); |
81 | bigInt_2 = new Clipperz.Crypto.BigInt(110); | 78 | bigInt_2 = new Clipperz.Crypto.BigInt(110); |
82 | result = bigInt_1.add(bigInt_2); | 79 | result = bigInt_1.add(bigInt_2); |
83 | expectedResult = new Clipperz.Crypto.BigInt(116); | 80 | expectedResult = new Clipperz.Crypto.BigInt(116); |
84 | is (result.equals(expectedResult), true, ""); | 81 | is (result.equals(expectedResult), true, ""); |
85 | is (result.equals(Clipperz.Crypto.BigInt.add(bigInt_1, bigInt_2)), true, "instance method === static function"); | 82 | is (result.equals(Clipperz.Crypto.BigInt.add(bigInt_1, bigInt_2)), true, "instance method === static function"); |
86 | 83 | ||
87 | bigInt_1 = new Clipperz.Crypto.BigInt(6); | 84 | bigInt_1 = new Clipperz.Crypto.BigInt(6); |
88 | result = bigInt_1.add(6); | 85 | result = bigInt_1.add(6); |
89 | expectedResult = new Clipperz.Crypto.BigInt(12); | 86 | expectedResult = new Clipperz.Crypto.BigInt(12); |
90 | is (result.equals(expectedResult), true, ""); | 87 | is (result.equals(expectedResult), true, ""); |
91 | 88 | ||
92 | bigInt_1 = new Clipperz.Crypto.BigInt("16161616161616161616161616161616161616161616161616161"); | 89 | bigInt_1 = new Clipperz.Crypto.BigInt("16161616161616161616161616161616161616161616161616161"); |
93 | bigInt_2 = new Clipperz.Crypto.BigInt("42424242424242424242424242424242424242424242424242424"); | 90 | bigInt_2 = new Clipperz.Crypto.BigInt("42424242424242424242424242424242424242424242424242424"); |
94 | result = bigInt_1.add(bigInt_2); | 91 | result = bigInt_1.add(bigInt_2); |
95 | expectedResult = new Clipperz.Crypto.BigInt("58585858585858585858585858585858585858585858585858585"); | 92 | expectedResult = new Clipperz.Crypto.BigInt("58585858585858585858585858585858585858585858585858585"); |
96 | is (result.equals(expectedResult), true, ""); | 93 | is (result.equals(expectedResult), true, ""); |
97 | 94 | ||
98 | bigInt_1 = new Clipperz.Crypto.BigInt("16161616161616161616161616161616161616161616161616161"); | 95 | bigInt_1 = new Clipperz.Crypto.BigInt("16161616161616161616161616161616161616161616161616161"); |
99 | bigInt_2 = new Clipperz.Crypto.BigInt("42424242424242424242424242424242424242424242424242424"); | 96 | bigInt_2 = new Clipperz.Crypto.BigInt("42424242424242424242424242424242424242424242424242424"); |
100 | result = bigInt_1.add(bigInt_2); | 97 | result = bigInt_1.add(bigInt_2); |
101 | expectedResult = new Clipperz.Crypto.BigInt("58585858585858585858585851585858585858585858585858585"); | 98 | expectedResult = new Clipperz.Crypto.BigInt("58585858585858585858585851585858585858585858585858585"); |
102 | is (result.equals(expectedResult), false, ""); | 99 | is (result.equals(expectedResult), false, ""); |
103 | 100 | ||
104 | bigInt_1 = new Clipperz.Crypto.BigInt("86161616161616161616161616161616161616161616161616161"); | 101 | bigInt_1 = new Clipperz.Crypto.BigInt("86161616161616161616161616161616161616161616161616161"); |
105 | bigInt_2 = new Clipperz.Crypto.BigInt("42424242424242424242424242424242424242424242424242424"); | 102 | bigInt_2 = new Clipperz.Crypto.BigInt("42424242424242424242424242424242424242424242424242424"); |
106 | result = bigInt_1.add(bigInt_2); | 103 | result = bigInt_1.add(bigInt_2); |
107 | expectedResult = new Clipperz.Crypto.BigInt("128585858585858585858585858585858585858585858585858585"); | 104 | expectedResult = new Clipperz.Crypto.BigInt("128585858585858585858585858585858585858585858585858585"); |
108 | is (result.equals(expectedResult), true, ""); | 105 | is (result.equals(expectedResult), true, ""); |
109 | 106 | ||
110 | bigInt_1 = new Clipperz.Crypto.BigInt("6541652165410321654063516540621063540654" + | 107 | bigInt_1 = new Clipperz.Crypto.BigInt("6541652165410321654063516540621063540654" + |
111 | "0654065106540654165416521654103216540635" + | 108 | "0654065106540654165416521654103216540635" + |
112 | "1654062106354065406540651065406541"); | 109 | "1654062106354065406540651065406541"); |
113 | bigInt_2 = new Clipperz.Crypto.BigInt("3046540351035403510354035103510351351351" + | 110 | bigInt_2 = new Clipperz.Crypto.BigInt("3046540351035403510354035103510351351351" + |
114 | "0351350435103213540634132135401351035403" + | 111 | "0351350435103213540634132135401351035403" + |
115 | "5403540354103540"); | 112 | "5403540354103540"); |
116 | result = bigInt_1.add(bigInt_2); | 113 | result = bigInt_1.add(bigInt_2); |
117 | expectedResult = new Clipperz.Crypto.BigInt("6541652165410321657110056891656467051008" + | 114 | expectedResult = new Clipperz.Crypto.BigInt("6541652165410321657110056891656467051008" + |
118 | "1005100210054167675767872089206430081269" + | 115 | "1005100210054167675767872089206430081269" + |
119 | "2975416119864419441944191419510081"); | 116 | "2975416119864419441944191419510081"); |
120 | is (result.equals(expectedResult), true, ""); | 117 | is (result.equals(expectedResult), true, ""); |
diff --git a/frontend/gamma/tests/tests/Clipperz/Crypto/ECC.B283.deferred.html b/frontend/gamma/tests/tests/Clipperz/Crypto/ECC.B283.deferred.html index ba98167..9ef9146 100644 --- a/frontend/gamma/tests/tests/Clipperz/Crypto/ECC.B283.deferred.html +++ b/frontend/gamma/tests/tests/Clipperz/Crypto/ECC.B283.deferred.html | |||
@@ -1,120 +1,117 @@ | |||
1 | <!-- | 1 | <!-- |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | --> | 24 | --> |
28 | 25 | ||
29 | <html> | 26 | <html> |
30 | <head> | 27 | <head> |
31 | <!-- - -> | 28 | <!-- - -> |
32 | <script type="text/javascript" src="../../../../js/MochiKit/MochiKit.js"></script> | 29 | <script type="text/javascript" src="../../../../js/MochiKit/MochiKit.js"></script> |
33 | <!- - --> | 30 | <!- - --> |
34 | <!-- --> | 31 | <!-- --> |
35 | <script type="text/javascript" src="../../../../js/MochiKit/Base.js"></script> | 32 | <script type="text/javascript" src="../../../../js/MochiKit/Base.js"></script> |
36 | <script type="text/javascript" src="../../../../js/MochiKit/Async.js"></script> | 33 | <script type="text/javascript" src="../../../../js/MochiKit/Async.js"></script> |
37 | <script type="text/javascript" src="../../../../js/MochiKit/DOM.js"></script> | 34 | <script type="text/javascript" src="../../../../js/MochiKit/DOM.js"></script> |
38 | <script type="text/javascript" src="../../../../js/MochiKit/Logging.js"></script> | 35 | <script type="text/javascript" src="../../../../js/MochiKit/Logging.js"></script> |
39 | <script type="text/javascript" src="../../../../js/MochiKit/Iter.js"></script> | 36 | <script type="text/javascript" src="../../../../js/MochiKit/Iter.js"></script> |
40 | <!-- --> | 37 | <!-- --> |
41 | 38 | ||
42 | <!-- - -> | 39 | <!-- - -> |
43 | <script type="text/javascript" src="../../../../js/MochiKit/Style.js"></script> | 40 | <script type="text/javascript" src="../../../../js/MochiKit/Style.js"></script> |
44 | <script type="text/javascript" src="../../../../js/MochiKit/Signal.js"></script> | 41 | <script type="text/javascript" src="../../../../js/MochiKit/Signal.js"></script> |
45 | <script type="text/javascript" src="../../../../js/MochiKit/Color.js"></script> | 42 | <script type="text/javascript" src="../../../../js/MochiKit/Color.js"></script> |
46 | <script type="text/javascript" src="../../../../js/MochiKit/Position.js"></script> | 43 | <script type="text/javascript" src="../../../../js/MochiKit/Position.js"></script> |
47 | <script type="text/javascript" src="../../../../js/MochiKit/Visual.js"></script> | 44 | <script type="text/javascript" src="../../../../js/MochiKit/Visual.js"></script> |
48 | <!- - --> | 45 | <!- - --> |
49 | 46 | ||
50 | 47 | ||
51 | <script type="text/javascript" src="../../../SimpleTest/SimpleTest.js"></script> | 48 | <script type="text/javascript" src="../../../SimpleTest/SimpleTest.js"></script> |
52 | <link rel="stylesheet" type="text/css" href="../../../SimpleTest/test.css"> | 49 | <link rel="stylesheet" type="text/css" href="../../../SimpleTest/test.css"> |
53 | 50 | ||
54 | <!--<script type='text/javascript' src='../../../../js/Clipperz/Base.js'></script>--> | 51 | <!--<script type='text/javascript' src='../../../../js/Clipperz/Base.js'></script>--> |
55 | <!--<script type='text/javascript' src='../../../../js/Clipperz/ByteArray.js'></script>--> | 52 | <!--<script type='text/javascript' src='../../../../js/Clipperz/ByteArray.js'></script>--> |
56 | <!--<script type='text/javascript' src='../../../../js/Clipperz/Crypto/Base.js'></script>--> | 53 | <!--<script type='text/javascript' src='../../../../js/Clipperz/Crypto/Base.js'></script>--> |
57 | 54 | ||
58 | <script type='text/javascript' src='../../../../js/Clipperz/Crypto/ECC/BinaryField/Value.js'></script> | 55 | <script type='text/javascript' src='../../../../js/Clipperz/Crypto/ECC/BinaryField/Value.js'></script> |
59 | <script type='text/javascript' src='../../../../js/Clipperz/Crypto/ECC/BinaryField/Point.js'></script> | 56 | <script type='text/javascript' src='../../../../js/Clipperz/Crypto/ECC/BinaryField/Point.js'></script> |
60 | <script type='text/javascript' src='../../../../js/Clipperz/Crypto/ECC/BinaryField/FiniteField.js'></script> | 57 | <script type='text/javascript' src='../../../../js/Clipperz/Crypto/ECC/BinaryField/FiniteField.js'></script> |
61 | <script type='text/javascript' src='../../../../js/Clipperz/Crypto/ECC/BinaryField/Curve.js'></script> | 58 | <script type='text/javascript' src='../../../../js/Clipperz/Crypto/ECC/BinaryField/Curve.js'></script> |
62 | 59 | ||
63 | <script type='text/javascript' src='../../../../js/Clipperz/Crypto/ECC/StandardCurves.js'></script> | 60 | <script type='text/javascript' src='../../../../js/Clipperz/Crypto/ECC/StandardCurves.js'></script> |
64 | 61 | ||
65 | </head> | 62 | </head> |
66 | <body> | 63 | <body> |
67 | <pre id="test"> | 64 | <pre id="test"> |
68 | <script type="text/javascript"> | 65 | <script type="text/javascript"> |
69 | try { | 66 | try { |
70 | 67 | ||
71 | var deferredResult; | 68 | var deferredResult; |
72 | 69 | ||
73 | 70 | ||
74 | deferredResult = new MochiKit.Async.Deferred(); | 71 | deferredResult = new MochiKit.Async.Deferred(); |
75 | //deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("** 1: " + res); return res;}); | 72 | //deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("** 1: " + res); return res;}); |
76 | 73 | ||
77 | // | 74 | // |
78 | //ECC.Curve.multiplication | 75 | //ECC.Curve.multiplication |
79 | // | 76 | // |
80 | varcurve; | 77 | varcurve; |
81 | var f2m; | 78 | var f2m; |
82 | var f2m_improved; | 79 | var f2m_improved; |
83 | var value; | 80 | var value; |
84 | var moduledValue; | 81 | var moduledValue; |
85 | var result; | 82 | var result; |
86 | var result_improved; | 83 | var result_improved; |
87 | var expectedResul; | 84 | var expectedResul; |
88 | 85 | ||
89 | f2m = new Clipperz.Crypto.ECC.BinaryField.FiniteField({modulus:new Clipperz.Crypto.ECC.BinaryField.Value('08000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 000010a1', 16)}) | 86 | f2m = new Clipperz.Crypto.ECC.BinaryField.FiniteField({modulus:new Clipperz.Crypto.ECC.BinaryField.Value('08000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 000010a1', 16)}) |
90 | f2m_improved = Clipperz.Crypto.ECC.StandardCurves.B283().finiteField(); | 87 | f2m_improved = Clipperz.Crypto.ECC.StandardCurves.B283().finiteField(); |
91 | 88 | ||
92 | curve = Clipperz.Crypto.ECC.StandardCurves.B283(); | 89 | curve = Clipperz.Crypto.ECC.StandardCurves.B283(); |
93 | 90 | ||
94 | /** / | 91 | /** / |
95 | value = new Clipperz.Crypto.ECC.BinaryField.Value("7b", 16); | 92 | value = new Clipperz.Crypto.ECC.BinaryField.Value("7b", 16); |
96 | result = curve.multiply(value, curve.G()); | 93 | result = curve.multiply(value, curve.G()); |
97 | expectedResult = new Clipperz.Crypto.ECC.BinaryField.Point({ | 94 | expectedResult = new Clipperz.Crypto.ECC.BinaryField.Point({ |
98 | x: new Clipperz.Crypto.ECC.BinaryField.Value('29705d23a9cda75e43984bdb9a8fd33304682da0f506a69bdbd5f36657e11b41e35fcdd', 16), | 95 | x: new Clipperz.Crypto.ECC.BinaryField.Value('29705d23a9cda75e43984bdb9a8fd33304682da0f506a69bdbd5f36657e11b41e35fcdd', 16), |
99 | y: new Clipperz.Crypto.ECC.BinaryField.Value('59157d2ace16563a905361c5206cc0775c3330f4978bddf8aa9916c451cf9951313623b', 16) | 96 | y: new Clipperz.Crypto.ECC.BinaryField.Value('59157d2ace16563a905361c5206cc0775c3330f4978bddf8aa9916c451cf9951313623b', 16) |
100 | }); | 97 | }); |
101 | is(result.x().asString(16), expectedResult.x().asString(16), "ECC.Curve.multiplication: result.x does match"); | 98 | is(result.x().asString(16), expectedResult.x().asString(16), "ECC.Curve.multiplication: result.x does match"); |
102 | is(result.y().asString(16), expectedResult.y().asString(16), "ECC.Curve.multiplication: result.y does match"); | 99 | is(result.y().asString(16), expectedResult.y().asString(16), "ECC.Curve.multiplication: result.y does match"); |
103 | / **/ | 100 | / **/ |
104 | 101 | ||
105 | value = new Clipperz.Crypto.ECC.BinaryField.Value("ba35032a24eb81238251d85824998bebae3b3e09f4d3845256c87585cf62416ee43191", 16); | 102 | value = new Clipperz.Crypto.ECC.BinaryField.Value("ba35032a24eb81238251d85824998bebae3b3e09f4d3845256c87585cf62416ee43191", 16); |
106 | 103 | ||
107 | //deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("** 6: " + res); return res;}); | 104 | //deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("** 6: " + res); return res;}); |
108 | //deferredResult.addCallback(console.time, 'B283.deferred.multiply - moduled value'); | 105 | //deferredResult.addCallback(console.time, 'B283.deferred.multiply - moduled value'); |
109 | //deferredResult.addBoth(function(res) {MochiKit.Base.logDebug("2 - " + res); return res;}); | 106 | //deferredResult.addBoth(function(res) {MochiKit.Base.logDebug("2 - " + res); return res;}); |
110 | //deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("** 7: " + res); return res;}); | 107 | //deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("** 7: " + res); return res;}); |
111 | deferredResult.addMethod(curve, 'deferredMultiply', value, curve.G()); | 108 | deferredResult.addMethod(curve, 'deferredMultiply', value, curve.G()); |
112 | //deferredResult.addBoth(function(res) {MochiKit.Base.logDebug("3 - " + res); return res;}); | 109 | //deferredResult.addBoth(function(res) {MochiKit.Base.logDebug("3 - " + res); return res;}); |
113 | //deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("** 8: " + res); return res;}); | 110 | //deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("** 8: " + res); return res;}); |
114 | //deferredResult.addBoth(function(res) {console.timeEnd('B283.deferred.multiply - moduled value'); return res;}); | 111 | //deferredResult.addBoth(function(res) {console.timeEnd('B283.deferred.multiply - moduled value'); return res;}); |
115 | //deferredResult.addBoth(function(res) {MochiKit.Base.logDebug("4 - " + res); return res;}); | 112 | //deferredResult.addBoth(function(res) {MochiKit.Base.logDebug("4 - " + res); return res;}); |
116 | //deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("** 9: " + res); return res;}); | 113 | //deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("** 9: " + res); return res;}); |
117 | deferredResult.addCallback(function(res) { | 114 | deferredResult.addCallback(function(res) { |
118 | var expectedResult; | 115 | var expectedResult; |
119 | 116 | ||
120 | expectedResult = new Clipperz.Crypto.ECC.BinaryField.Point({ | 117 | expectedResult = new Clipperz.Crypto.ECC.BinaryField.Point({ |
diff --git a/frontend/gamma/tests/tests/Clipperz/Crypto/ECC.BinaryField.FiniteField.B283.html b/frontend/gamma/tests/tests/Clipperz/Crypto/ECC.BinaryField.FiniteField.B283.html index 3d7efaa..6024021 100644 --- a/frontend/gamma/tests/tests/Clipperz/Crypto/ECC.BinaryField.FiniteField.B283.html +++ b/frontend/gamma/tests/tests/Clipperz/Crypto/ECC.BinaryField.FiniteField.B283.html | |||
@@ -1,120 +1,117 @@ | |||
1 | <!-- | 1 | <!-- |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | --> | 24 | --> |
28 | 25 | ||
29 | <html> | 26 | <html> |
30 | <head> | 27 | <head> |
31 | <script type="text/javascript" src="../../../../js/MochiKit/MochiKit.js"></script> | 28 | <script type="text/javascript" src="../../../../js/MochiKit/MochiKit.js"></script> |
32 | <script type="text/javascript" src="../../../../js/JSLog/jslog.js"></script> | 29 | <script type="text/javascript" src="../../../../js/JSLog/jslog.js"></script> |
33 | <script type="text/javascript" src="../../../SimpleTest/SimpleTest.js"></script> | 30 | <script type="text/javascript" src="../../../SimpleTest/SimpleTest.js"></script> |
34 | <link rel="stylesheet" type="text/css" href="../../../SimpleTest/test.css"> | 31 | <link rel="stylesheet" type="text/css" href="../../../SimpleTest/test.css"> |
35 | 32 | ||
36 | <script type='text/javascript' src='../../../../js/Clipperz/Base.js'></script> | 33 | <script type='text/javascript' src='../../../../js/Clipperz/Base.js'></script> |
37 | <script type='text/javascript' src='../../../../js/Clipperz/ByteArray.js'></script> | 34 | <script type='text/javascript' src='../../../../js/Clipperz/ByteArray.js'></script> |
38 | 35 | ||
39 | <script type='text/javascript' src='../../../../js/Clipperz/Crypto/BigInt.js'></script> | 36 | <script type='text/javascript' src='../../../../js/Clipperz/Crypto/BigInt.js'></script> |
40 | <script type='text/javascript' src='../../../../js/Clipperz/Crypto/Base.js'></script> | 37 | <script type='text/javascript' src='../../../../js/Clipperz/Crypto/Base.js'></script> |
41 | <!--<script type='text/javascript' src='../../../../js/Clipperz/Crypto/ECC.js'></script>--> | 38 | <!--<script type='text/javascript' src='../../../../js/Clipperz/Crypto/ECC.js'></script>--> |
42 | <script type='text/javascript' src='../../../../js/Clipperz/Crypto/ECC/BinaryField/Value.js'></script> | 39 | <script type='text/javascript' src='../../../../js/Clipperz/Crypto/ECC/BinaryField/Value.js'></script> |
43 | <script type='text/javascript' src='../../../../js/Clipperz/Crypto/ECC/BinaryField/Point.js'></script> | 40 | <script type='text/javascript' src='../../../../js/Clipperz/Crypto/ECC/BinaryField/Point.js'></script> |
44 | <script type='text/javascript' src='../../../../js/Clipperz/Crypto/ECC/BinaryField/FiniteField.js'></script> | 41 | <script type='text/javascript' src='../../../../js/Clipperz/Crypto/ECC/BinaryField/FiniteField.js'></script> |
45 | <script type='text/javascript' src='../../../../js/Clipperz/Crypto/ECC/BinaryField/Curve.js'></script> | 42 | <script type='text/javascript' src='../../../../js/Clipperz/Crypto/ECC/BinaryField/Curve.js'></script> |
46 | <script type='text/javascript' src='../../../../js/Clipperz/Crypto/Functions.js'></script> | 43 | <script type='text/javascript' src='../../../../js/Clipperz/Crypto/Functions.js'></script> |
47 | </head> | 44 | </head> |
48 | <body> | 45 | <body> |
49 | <pre id="test"> | 46 | <pre id="test"> |
50 | <script type="text/javascript"> | 47 | <script type="text/javascript"> |
51 | try { | 48 | try { |
52 | // | 49 | // |
53 | //ECC.BinaryFiniteField | 50 | //ECC.BinaryFiniteField |
54 | // | 51 | // |
55 | varf2m; | 52 | varf2m; |
56 | varf2m_improved; | 53 | varf2m_improved; |
57 | var a, a1, b; | 54 | var a, a1, b; |
58 | var result; | 55 | var result; |
59 | var result_improved; | 56 | var result_improved; |
60 | var expectedResul; | 57 | var expectedResul; |
61 | 58 | ||
62 | f2m = new Clipperz.Crypto.ECC.BinaryField.FiniteField({modulus:new Clipperz.Crypto.ECC.BinaryField.Value('08000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 000010a1', 16)}) | 59 | f2m = new Clipperz.Crypto.ECC.BinaryField.FiniteField({modulus:new Clipperz.Crypto.ECC.BinaryField.Value('08000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 000010a1', 16)}) |
63 | f2m_improved = Clipperz.Crypto.ECC.StandardCurves.B283().finiteField(); | 60 | f2m_improved = Clipperz.Crypto.ECC.StandardCurves.B283().finiteField(); |
64 | a = new Clipperz.Crypto.ECC.BinaryField.Value("05c91e41 d9ca17ef 9d8a33c1 a44eba6d 368fde02 1c492077 1a46eb01 a481e5f7 f430749d", 16); | 61 | a = new Clipperz.Crypto.ECC.BinaryField.Value("05c91e41 d9ca17ef 9d8a33c1 a44eba6d 368fde02 1c492077 1a46eb01 a481e5f7 f430749d", 16); |
65 | b = new Clipperz.Crypto.ECC.BinaryField.Value("07377071 2de7d57b a803f65f 45786c06 876b8066 db75ec47 81c053b0 a0f78e2c a6ab5187", 16); | 62 | b = new Clipperz.Crypto.ECC.BinaryField.Value("07377071 2de7d57b a803f65f 45786c06 876b8066 db75ec47 81c053b0 a0f78e2c a6ab5187", 16); |
66 | 63 | ||
67 | // | 64 | // |
68 | //addition | 65 | //addition |
69 | // | 66 | // |
70 | result = f2m.add(a, b); | 67 | result = f2m.add(a, b); |
71 | expectedResult = new Clipperz.Crypto.ECC.BinaryField.Value("2fe6e30f42dc2943589c59ee136d66bb1e45e64c73ccc309b86b8b104766bdb529b251a", 16); | 68 | expectedResult = new Clipperz.Crypto.ECC.BinaryField.Value("2fe6e30f42dc2943589c59ee136d66bb1e45e64c73ccc309b86b8b104766bdb529b251a", 16); |
72 | is(result.asString(16), expectedResult.asString(16), "ECC.BinaryFinetField.add"); | 69 | is(result.asString(16), expectedResult.asString(16), "ECC.BinaryFinetField.add"); |
73 | 70 | ||
74 | 71 | ||
75 | // | 72 | // |
76 | //negation | 73 | //negation |
77 | // | 74 | // |
78 | result = f2m.negate(a); | 75 | result = f2m.negate(a); |
79 | expectedResult = new Clipperz.Crypto.ECC.BinaryField.Value("5c91e41d9ca17ef9d8a33c1a44eba6d368fde021c4920771a46eb01a481e5f7f430749d", 16); | 76 | expectedResult = new Clipperz.Crypto.ECC.BinaryField.Value("5c91e41d9ca17ef9d8a33c1a44eba6d368fde021c4920771a46eb01a481e5f7f430749d", 16); |
80 | is(result.asString(16), expectedResult.asString(16), "ECC.BinaryFinetField.negate"); | 77 | is(result.asString(16), expectedResult.asString(16), "ECC.BinaryFinetField.negate"); |
81 | 78 | ||
82 | 79 | ||
83 | // | 80 | // |
84 | //multiplication | 81 | //multiplication |
85 | // | 82 | // |
86 | result = f2m.multiply(a, b); | 83 | result = f2m.multiply(a, b); |
87 | expectedResult = new Clipperz.Crypto.ECC.BinaryField.Value("2bacb89668741f6d1f7fd7d3df2f045814086adba11d8bb5f12f3f9851e3b66fbe283cb", 16); | 84 | expectedResult = new Clipperz.Crypto.ECC.BinaryField.Value("2bacb89668741f6d1f7fd7d3df2f045814086adba11d8bb5f12f3f9851e3b66fbe283cb", 16); |
88 | is(result.asString(16), expectedResult.asString(16), "ECC.BinaryFinetField.multiply"); | 85 | is(result.asString(16), expectedResult.asString(16), "ECC.BinaryFinetField.multiply"); |
89 | 86 | ||
90 | 87 | ||
91 | // | 88 | // |
92 | //fast multiplication | 89 | //fast multiplication |
93 | // | 90 | // |
94 | result = f2m.fastMultiply(a, b); | 91 | result = f2m.fastMultiply(a, b); |
95 | expectedResult = f2m.multiply(a, b); | 92 | expectedResult = f2m.multiply(a, b); |
96 | is(result.asString(16), expectedResult.asString(16), "ECC.BinaryFinetField.fastMultiply"); | 93 | is(result.asString(16), expectedResult.asString(16), "ECC.BinaryFinetField.fastMultiply"); |
97 | 94 | ||
98 | a = new Clipperz.Crypto.ECC.BinaryField.Value("2fe6e30f42dc2943589c59ee136d66bb1e45e64c73ccc309b86b8b104766bdb529b251a", 16); | 95 | a = new Clipperz.Crypto.ECC.BinaryField.Value("2fe6e30f42dc2943589c59ee136d66bb1e45e64c73ccc309b86b8b104766bdb529b251a", 16); |
99 | b = new Clipperz.Crypto.ECC.BinaryField.Value("5c91e41d9ca17ef9d8a33c1a44eba6d368fde021c4920771a46eb01a481e5f7f430749d", 16); | 96 | b = new Clipperz.Crypto.ECC.BinaryField.Value("5c91e41d9ca17ef9d8a33c1a44eba6d368fde021c4920771a46eb01a481e5f7f430749d", 16); |
100 | result = f2m.fastMultiply(a, b); | 97 | result = f2m.fastMultiply(a, b); |
101 | expectedResult = f2m.multiply(a, b); | 98 | expectedResult = f2m.multiply(a, b); |
102 | is(result.asString(16), expectedResult.asString(16), "ECC.BinaryFinetField.B283.fastMultiply"); | 99 | is(result.asString(16), expectedResult.asString(16), "ECC.BinaryFinetField.B283.fastMultiply"); |
103 | 100 | ||
104 | // | 101 | // |
105 | //square | 102 | //square |
106 | // | 103 | // |
107 | a = new Clipperz.Crypto.ECC.BinaryField.Value("1111", 16); | 104 | a = new Clipperz.Crypto.ECC.BinaryField.Value("1111", 16); |
108 | result = f2m.square(a); | 105 | result = f2m.square(a); |
109 | expectedResult = f2m.multiply(a, a); | 106 | expectedResult = f2m.multiply(a, a); |
110 | is(result.asString(16), expectedResult.asString(16), "ECC.BinaryFinetField.square"); | 107 | is(result.asString(16), expectedResult.asString(16), "ECC.BinaryFinetField.square"); |
111 | 108 | ||
112 | a = new Clipperz.Crypto.ECC.BinaryField.Value("11111111", 16); | 109 | a = new Clipperz.Crypto.ECC.BinaryField.Value("11111111", 16); |
113 | result = f2m.square(a); | 110 | result = f2m.square(a); |
114 | expectedResult = f2m.multiply(a, a); | 111 | expectedResult = f2m.multiply(a, a); |
115 | is(result.asString(16), expectedResult.asString(16), "ECC.BinaryFinetField.square"); | 112 | is(result.asString(16), expectedResult.asString(16), "ECC.BinaryFinetField.square"); |
116 | 113 | ||
117 | a = new Clipperz.Crypto.ECC.BinaryField.Value("5c91e41d9ca17ef9d8a33c1a44eba6d368fde021c4920771a46eb01a481e5f7f430749d", 16); | 114 | a = new Clipperz.Crypto.ECC.BinaryField.Value("5c91e41d9ca17ef9d8a33c1a44eba6d368fde021c4920771a46eb01a481e5f7f430749d", 16); |
118 | result = f2m.square(a); | 115 | result = f2m.square(a); |
119 | expectedResult = f2m.multiply(a, a); | 116 | expectedResult = f2m.multiply(a, a); |
120 | is(result.asString(16), expectedResult.asString(16), "ECC.BinaryFinetField.square"); | 117 | is(result.asString(16), expectedResult.asString(16), "ECC.BinaryFinetField.square"); |
diff --git a/frontend/gamma/tests/tests/Clipperz/Crypto/ECC.BinaryField.FiniteField.html b/frontend/gamma/tests/tests/Clipperz/Crypto/ECC.BinaryField.FiniteField.html index 6bddb26..5a7a4f7 100644 --- a/frontend/gamma/tests/tests/Clipperz/Crypto/ECC.BinaryField.FiniteField.html +++ b/frontend/gamma/tests/tests/Clipperz/Crypto/ECC.BinaryField.FiniteField.html | |||
@@ -1,120 +1,117 @@ | |||
1 | <!-- | 1 | <!-- |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | --> | 24 | --> |
28 | 25 | ||
29 | <html> | 26 | <html> |
30 | <head> | 27 | <head> |
31 | <script type="text/javascript" src="../../../../js/MochiKit/MochiKit.js"></script> | 28 | <script type="text/javascript" src="../../../../js/MochiKit/MochiKit.js"></script> |
32 | <script type="text/javascript" src="../../../../js/JSLog/jslog.js"></script> | 29 | <script type="text/javascript" src="../../../../js/JSLog/jslog.js"></script> |
33 | <script type="text/javascript" src="../../../SimpleTest/SimpleTest.js"></script> | 30 | <script type="text/javascript" src="../../../SimpleTest/SimpleTest.js"></script> |
34 | <link rel="stylesheet" type="text/css" href="../../../SimpleTest/test.css"> | 31 | <link rel="stylesheet" type="text/css" href="../../../SimpleTest/test.css"> |
35 | 32 | ||
36 | <script type='text/javascript' src='../../../../js/Clipperz/Base.js'></script> | 33 | <script type='text/javascript' src='../../../../js/Clipperz/Base.js'></script> |
37 | <script type='text/javascript' src='../../../../js/Clipperz/ByteArray.js'></script> | 34 | <script type='text/javascript' src='../../../../js/Clipperz/ByteArray.js'></script> |
38 | 35 | ||
39 | <script type='text/javascript' src='../../../../js/Clipperz/Crypto/BigInt.js'></script> | 36 | <script type='text/javascript' src='../../../../js/Clipperz/Crypto/BigInt.js'></script> |
40 | <script type='text/javascript' src='../../../../js/Clipperz/Crypto/Base.js'></script> | 37 | <script type='text/javascript' src='../../../../js/Clipperz/Crypto/Base.js'></script> |
41 | <!--<script type='text/javascript' src='../../../../js/Clipperz/Crypto/ECC.js'></script>--> | 38 | <!--<script type='text/javascript' src='../../../../js/Clipperz/Crypto/ECC.js'></script>--> |
42 | <script type='text/javascript' src='../../../../js/Clipperz/Crypto/ECC/BinaryField/Value.js'></script> | 39 | <script type='text/javascript' src='../../../../js/Clipperz/Crypto/ECC/BinaryField/Value.js'></script> |
43 | <script type='text/javascript' src='../../../../js/Clipperz/Crypto/ECC/BinaryField/Point.js'></script> | 40 | <script type='text/javascript' src='../../../../js/Clipperz/Crypto/ECC/BinaryField/Point.js'></script> |
44 | <script type='text/javascript' src='../../../../js/Clipperz/Crypto/ECC/BinaryField/FiniteField.js'></script> | 41 | <script type='text/javascript' src='../../../../js/Clipperz/Crypto/ECC/BinaryField/FiniteField.js'></script> |
45 | <script type='text/javascript' src='../../../../js/Clipperz/Crypto/ECC/BinaryField/Curve.js'></script> | 42 | <script type='text/javascript' src='../../../../js/Clipperz/Crypto/ECC/BinaryField/Curve.js'></script> |
46 | <script type='text/javascript' src='../../../../js/Clipperz/Crypto/Functions.js'></script> | 43 | <script type='text/javascript' src='../../../../js/Clipperz/Crypto/Functions.js'></script> |
47 | </head> | 44 | </head> |
48 | <body> | 45 | <body> |
49 | <pre id="test"> | 46 | <pre id="test"> |
50 | <script type="text/javascript"> | 47 | <script type="text/javascript"> |
51 | try { | 48 | try { |
52 | // | 49 | // |
53 | //ECC.BinaryFiniteField | 50 | //ECC.BinaryFiniteField |
54 | // | 51 | // |
55 | varf2m; | 52 | varf2m; |
56 | varf2m_improved; | 53 | varf2m_improved; |
57 | var a, b; | 54 | var a, b; |
58 | var result; | 55 | var result; |
59 | var result_improved; | 56 | var result_improved; |
60 | var expectedResul; | 57 | var expectedResul; |
61 | 58 | ||
62 | f2m = new Clipperz.Crypto.ECC.BinaryField.FiniteField({modulus:new Clipperz.Crypto.ECC.BinaryField.Value('80000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000425', 16)}) | 59 | f2m = new Clipperz.Crypto.ECC.BinaryField.FiniteField({modulus:new Clipperz.Crypto.ECC.BinaryField.Value('80000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000425', 16)}) |
63 | f2m_improved = Clipperz.Crypto.ECC.StandardCurves.B571().finiteField(); | 60 | f2m_improved = Clipperz.Crypto.ECC.StandardCurves.B571().finiteField(); |
64 | a = new Clipperz.Crypto.ECC.BinaryField.Value("01401ca8 7b8f1446 84a2c58a e9308c23 7789e4bf 1f36dd11 7c150b7d 6076dd1d a6197fe4 c5225a06 4db0e422 2589d5ca 50eb6bb6 b7147a03 f6152843 8a8767c6 a6c4a688 3fd6f067", 16); | 61 | a = new Clipperz.Crypto.ECC.BinaryField.Value("01401ca8 7b8f1446 84a2c58a e9308c23 7789e4bf 1f36dd11 7c150b7d 6076dd1d a6197fe4 c5225a06 4db0e422 2589d5ca 50eb6bb6 b7147a03 f6152843 8a8767c6 a6c4a688 3fd6f067", 16); |
65 | b = new Clipperz.Crypto.ECC.BinaryField.Value("0112f5c9 7e74737b 38925faf e22cea3e 12b868d4 ddea5b33 41db8fc2 e788cab7 4f0a7a3c c27087a8 93659453 69938650 a99217d5 66e13f80 dc87f082 73f7411b 6b01ef1d 399c772a", 16); | 62 | b = new Clipperz.Crypto.ECC.BinaryField.Value("0112f5c9 7e74737b 38925faf e22cea3e 12b868d4 ddea5b33 41db8fc2 e788cab7 4f0a7a3c c27087a8 93659453 69938650 a99217d5 66e13f80 dc87f082 73f7411b 6b01ef1d 399c772a", 16); |
66 | 63 | ||
67 | // | 64 | // |
68 | //addition | 65 | //addition |
69 | // | 66 | // |
70 | result = f2m.add(a, b); | 67 | result = f2m.add(a, b); |
71 | expectedResult = new Clipperz.Crypto.ECC.BinaryField.Value("52e96105fb673dbc309a250b1c661d65318c6bc2dc86223dce84bf87fe17aae91305d80752ddaeded570714c1a539af9797c63d1f545832a92d8c1f97026ddcdc54995064a874d", 16); | 68 | expectedResult = new Clipperz.Crypto.ECC.BinaryField.Value("52e96105fb673dbc309a250b1c661d65318c6bc2dc86223dce84bf87fe17aae91305d80752ddaeded570714c1a539af9797c63d1f545832a92d8c1f97026ddcdc54995064a874d", 16); |
72 | is(result.asString(16), expectedResult.asString(16), "ECC.BinaryFinetField.add"); | 69 | is(result.asString(16), expectedResult.asString(16), "ECC.BinaryFinetField.add"); |
73 | 70 | ||
74 | 71 | ||
75 | // | 72 | // |
76 | //negation | 73 | //negation |
77 | // | 74 | // |
78 | result = f2m.negate(a); | 75 | result = f2m.negate(a); |
79 | expectedResult = new Clipperz.Crypto.ECC.BinaryField.Value("1401ca87b8f144684a2c58ae9308c237789e4bf1f36dd117c150b7d6076dd1da6197fe4c5225a064db0e4222589d5ca50eb6bb6b7147a03f61528438a8767c6a6c4a6883fd6f067", 16); | 76 | expectedResult = new Clipperz.Crypto.ECC.BinaryField.Value("1401ca87b8f144684a2c58ae9308c237789e4bf1f36dd117c150b7d6076dd1da6197fe4c5225a064db0e4222589d5ca50eb6bb6b7147a03f61528438a8767c6a6c4a6883fd6f067", 16); |
80 | is(result.asString(16), expectedResult.asString(16), "ECC.BinaryFinetField.negate"); | 77 | is(result.asString(16), expectedResult.asString(16), "ECC.BinaryFinetField.negate"); |
81 | 78 | ||
82 | 79 | ||
83 | // | 80 | // |
84 | //multiplication | 81 | //multiplication |
85 | // | 82 | // |
86 | result = f2m.multiply(a, b); | 83 | result = f2m.multiply(a, b); |
87 | expectedResult = new Clipperz.Crypto.ECC.BinaryField.Value("4f8e4c0ae7664b284d3b4cb1b3f9568a1ce6e6e96b5381e184fe0822cb3d5c3a3f01ffd0206355d9e5c4853472bb33cf6b2d861d6b48c39d33a360e9a63ad2f7102f92e68a12312", 16); | 84 | expectedResult = new Clipperz.Crypto.ECC.BinaryField.Value("4f8e4c0ae7664b284d3b4cb1b3f9568a1ce6e6e96b5381e184fe0822cb3d5c3a3f01ffd0206355d9e5c4853472bb33cf6b2d861d6b48c39d33a360e9a63ad2f7102f92e68a12312", 16); |
88 | is(result.asString(16), expectedResult.asString(16), "ECC.BinaryFinetField.multiply"); | 85 | is(result.asString(16), expectedResult.asString(16), "ECC.BinaryFinetField.multiply"); |
89 | 86 | ||
90 | 87 | ||
91 | // | 88 | // |
92 | //fast multiplication | 89 | //fast multiplication |
93 | // | 90 | // |
94 | result = f2m.fastMultiply(a, b); | 91 | result = f2m.fastMultiply(a, b); |
95 | expectedResult = f2m.multiply(a, b); | 92 | expectedResult = f2m.multiply(a, b); |
96 | is(result.asString(16), expectedResult.asString(16), "ECC.BinaryFinetField.fastMultiply"); | 93 | is(result.asString(16), expectedResult.asString(16), "ECC.BinaryFinetField.fastMultiply"); |
97 | 94 | ||
98 | a = new Clipperz.Crypto.ECC.BinaryField.Value("52e96105fb673dbc309a250b1c661d65318c6bc2dc86223dce84bf87fe17aae91305d80752ddaeded570714c1a539af9797c63d1f545832a92d8c1f97026ddcdc54995064a874d", 16); | 95 | a = new Clipperz.Crypto.ECC.BinaryField.Value("52e96105fb673dbc309a250b1c661d65318c6bc2dc86223dce84bf87fe17aae91305d80752ddaeded570714c1a539af9797c63d1f545832a92d8c1f97026ddcdc54995064a874d", 16); |
99 | b = new Clipperz.Crypto.ECC.BinaryField.Value("1401ca87b8f144684a2c58ae9308c237789e4bf1f36dd117c150b7d6076dd1da6197fe4c5225a064db0e4222589d5ca50eb6bb6b7147a03f61528438a8767c6a6c4a6883fd6f067", 16); | 96 | b = new Clipperz.Crypto.ECC.BinaryField.Value("1401ca87b8f144684a2c58ae9308c237789e4bf1f36dd117c150b7d6076dd1da6197fe4c5225a064db0e4222589d5ca50eb6bb6b7147a03f61528438a8767c6a6c4a6883fd6f067", 16); |
100 | result = f2m.fastMultiply(a, b); | 97 | result = f2m.fastMultiply(a, b); |
101 | expectedResult = f2m.multiply(a, b); | 98 | expectedResult = f2m.multiply(a, b); |
102 | is(result.asString(16), expectedResult.asString(16), "ECC.BinaryFinetField.fastMultiply"); | 99 | is(result.asString(16), expectedResult.asString(16), "ECC.BinaryFinetField.fastMultiply"); |
103 | 100 | ||
104 | // | 101 | // |
105 | //square | 102 | //square |
106 | // | 103 | // |
107 | a = new Clipperz.Crypto.ECC.BinaryField.Value("1111", 16); | 104 | a = new Clipperz.Crypto.ECC.BinaryField.Value("1111", 16); |
108 | result = f2m.square(a); | 105 | result = f2m.square(a); |
109 | expectedResult = f2m.multiply(a, a); | 106 | expectedResult = f2m.multiply(a, a); |
110 | is(result.asString(16), expectedResult.asString(16), "ECC.BinaryFinetField.square"); | 107 | is(result.asString(16), expectedResult.asString(16), "ECC.BinaryFinetField.square"); |
111 | 108 | ||
112 | a = new Clipperz.Crypto.ECC.BinaryField.Value("11111111", 16); | 109 | a = new Clipperz.Crypto.ECC.BinaryField.Value("11111111", 16); |
113 | result = f2m.square(a); | 110 | result = f2m.square(a); |
114 | expectedResult = f2m.multiply(a, a); | 111 | expectedResult = f2m.multiply(a, a); |
115 | is(result.asString(16), expectedResult.asString(16), "ECC.BinaryFinetField.square"); | 112 | is(result.asString(16), expectedResult.asString(16), "ECC.BinaryFinetField.square"); |
116 | 113 | ||
117 | a = new Clipperz.Crypto.ECC.BinaryField.Value("1401ca87b8f144684a2c58ae9308c237789e4bf1f36dd117c150b7d6076dd1da6197fe4c5225a064db0e4222589d5ca50eb6bb6b7147a03f61528438a8767c6a6c4a6883fd6f067", 16); | 114 | a = new Clipperz.Crypto.ECC.BinaryField.Value("1401ca87b8f144684a2c58ae9308c237789e4bf1f36dd117c150b7d6076dd1da6197fe4c5225a064db0e4222589d5ca50eb6bb6b7147a03f61528438a8767c6a6c4a6883fd6f067", 16); |
118 | result = f2m.square(a); | 115 | result = f2m.square(a); |
119 | expectedResult = f2m.multiply(a, a); | 116 | expectedResult = f2m.multiply(a, a); |
120 | is(result.asString(16), expectedResult.asString(16), "ECC.BinaryFinetField.square"); | 117 | is(result.asString(16), expectedResult.asString(16), "ECC.BinaryFinetField.square"); |
diff --git a/frontend/gamma/tests/tests/Clipperz/Crypto/ECC.BinaryField.Value.html b/frontend/gamma/tests/tests/Clipperz/Crypto/ECC.BinaryField.Value.html index 885bcc4..c58cf42 100644 --- a/frontend/gamma/tests/tests/Clipperz/Crypto/ECC.BinaryField.Value.html +++ b/frontend/gamma/tests/tests/Clipperz/Crypto/ECC.BinaryField.Value.html | |||
@@ -1,120 +1,117 @@ | |||
1 | <!-- | 1 | <!-- |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | --> | 24 | --> |
28 | 25 | ||
29 | <html> | 26 | <html> |
30 | <head> | 27 | <head> |
31 | <script type="text/javascript" src="../../../../js/MochiKit/MochiKit.js"></script> | 28 | <script type="text/javascript" src="../../../../js/MochiKit/MochiKit.js"></script> |
32 | <script type="text/javascript" src="../../../../js/JSLog/jslog.js"></script> | 29 | <script type="text/javascript" src="../../../../js/JSLog/jslog.js"></script> |
33 | <script type="text/javascript" src="../../../SimpleTest/SimpleTest.js"></script> | 30 | <script type="text/javascript" src="../../../SimpleTest/SimpleTest.js"></script> |
34 | <link rel="stylesheet" type="text/css" href="../../../SimpleTest/test.css"> | 31 | <link rel="stylesheet" type="text/css" href="../../../SimpleTest/test.css"> |
35 | 32 | ||
36 | <script type='text/javascript' src='../../../../js/Clipperz/Base.js'></script> | 33 | <script type='text/javascript' src='../../../../js/Clipperz/Base.js'></script> |
37 | <script type='text/javascript' src='../../../../js/Clipperz/ByteArray.js'></script> | 34 | <script type='text/javascript' src='../../../../js/Clipperz/ByteArray.js'></script> |
38 | 35 | ||
39 | <script type='text/javascript' src='../../../../js/Clipperz/Crypto/BigInt.js'></script> | 36 | <script type='text/javascript' src='../../../../js/Clipperz/Crypto/BigInt.js'></script> |
40 | <script type='text/javascript' src='../../../../js/Clipperz/Crypto/Base.js'></script> | 37 | <script type='text/javascript' src='../../../../js/Clipperz/Crypto/Base.js'></script> |
41 | <!--<script type='text/javascript' src='../../../../js/Clipperz/Crypto/ECC.js'></script>--> | 38 | <!--<script type='text/javascript' src='../../../../js/Clipperz/Crypto/ECC.js'></script>--> |
42 | <script type='text/javascript' src='../../../../js/Clipperz/Crypto/ECC/BinaryField/Value.js'></script> | 39 | <script type='text/javascript' src='../../../../js/Clipperz/Crypto/ECC/BinaryField/Value.js'></script> |
43 | <script type='text/javascript' src='../../../../js/Clipperz/Crypto/ECC/BinaryField/Point.js'></script> | 40 | <script type='text/javascript' src='../../../../js/Clipperz/Crypto/ECC/BinaryField/Point.js'></script> |
44 | <script type='text/javascript' src='../../../../js/Clipperz/Crypto/ECC/BinaryField/FiniteField.js'></script> | 41 | <script type='text/javascript' src='../../../../js/Clipperz/Crypto/ECC/BinaryField/FiniteField.js'></script> |
45 | <script type='text/javascript' src='../../../../js/Clipperz/Crypto/ECC/BinaryField/Curve.js'></script> | 42 | <script type='text/javascript' src='../../../../js/Clipperz/Crypto/ECC/BinaryField/Curve.js'></script> |
46 | <script type='text/javascript' src='../../../../js/Clipperz/Crypto/Functions.js'></script> | 43 | <script type='text/javascript' src='../../../../js/Clipperz/Crypto/Functions.js'></script> |
47 | </head> | 44 | </head> |
48 | <body> | 45 | <body> |
49 | <pre id="test"> | 46 | <pre id="test"> |
50 | <script type="text/javascript"> | 47 | <script type="text/javascript"> |
51 | try { | 48 | try { |
52 | var value_1; | 49 | var value_1; |
53 | var value_2; | 50 | var value_2; |
54 | 51 | ||
55 | value_1 = new Clipperz.Crypto.ECC.BinaryField.Value("a", 16); | 52 | value_1 = new Clipperz.Crypto.ECC.BinaryField.Value("a", 16); |
56 | is(value_1.asString(16), "0a"); | 53 | is(value_1.asString(16), "0a"); |
57 | 54 | ||
58 | value_1 = new Clipperz.Crypto.ECC.BinaryField.Value("ffff", 16); | 55 | value_1 = new Clipperz.Crypto.ECC.BinaryField.Value("ffff", 16); |
59 | is(value_1.asString(16), "ffff"); | 56 | is(value_1.asString(16), "ffff"); |
60 | 57 | ||
61 | value_1 = new Clipperz.Crypto.ECC.BinaryField.Value("7fff", 16); | 58 | value_1 = new Clipperz.Crypto.ECC.BinaryField.Value("7fff", 16); |
62 | is(value_1.asString(16), "7fff"); | 59 | is(value_1.asString(16), "7fff"); |
63 | 60 | ||
64 | is(parseInt("ffff", 16), 65535); | 61 | is(parseInt("ffff", 16), 65535); |
65 | is(parseInt("ffffff", 16), 16777215); | 62 | is(parseInt("ffffff", 16), 16777215); |
66 | is(parseInt("ffffffff", 16), 4294967295); | 63 | is(parseInt("ffffffff", 16), 4294967295); |
67 | is(parseInt("ffffffffff", 16), 1099511627775); | 64 | is(parseInt("ffffffffff", 16), 1099511627775); |
68 | is(parseInt("ffffffffffff", 16), 281474976710655); | 65 | is(parseInt("ffffffffffff", 16), 281474976710655); |
69 | is(parseInt("ffffffffffffff", 16), 72057594037927940); | 66 | is(parseInt("ffffffffffffff", 16), 72057594037927940); |
70 | is(parseInt("ffffffffffffffff", 16), 18446744073709552000); | 67 | is(parseInt("ffffffffffffffff", 16), 18446744073709552000); |
71 | is(parseInt("10000000000000000", 16), 18446744073709552001); | 68 | is(parseInt("10000000000000000", 16), 18446744073709552001); |
72 | is(parseInt("10000000000000001", 16), 18446744073709552002); | 69 | is(parseInt("10000000000000001", 16), 18446744073709552002); |
73 | is(parseInt("10000000000000009", 16), 18446744073709552010); | 70 | is(parseInt("10000000000000009", 16), 18446744073709552010); |
74 | 71 | ||
75 | value_1 = new Clipperz.Crypto.ECC.BinaryField.Value("000108cbbacda1f03ea9360301045434ec7d82ba150936df08a229cbb4832ce1", 16); | 72 | value_1 = new Clipperz.Crypto.ECC.BinaryField.Value("000108cbbacda1f03ea9360301045434ec7d82ba150936df08a229cbb4832ce1", 16); |
76 | is(value_1.wordSize(), 8, "check the number of words of a 64 char hex string using the 'wordSize' method"); | 73 | is(value_1.wordSize(), 8, "check the number of words of a 64 char hex string using the 'wordSize' method"); |
77 | 74 | ||
78 | // 000108cb bacda1f0 3ea93603 01045434 ec7d82ba 150936df 08a229cb b4832ce1 | 75 | // 000108cb bacda1f0 3ea93603 01045434 ec7d82ba 150936df 08a229cb b4832ce1 |
79 | is(value_1.value()[0], parseInt("b4832ce1", 16), "word[0]"); | 76 | is(value_1.value()[0], parseInt("b4832ce1", 16), "word[0]"); |
80 | is(value_1.value()[1], parseInt("08a229cb", 16), "word[1]"); | 77 | is(value_1.value()[1], parseInt("08a229cb", 16), "word[1]"); |
81 | is(value_1.value()[2], parseInt("150936df", 16), "word[2]"); | 78 | is(value_1.value()[2], parseInt("150936df", 16), "word[2]"); |
82 | is(value_1.value()[3], parseInt("ec7d82ba", 16), "word[3]"); | 79 | is(value_1.value()[3], parseInt("ec7d82ba", 16), "word[3]"); |
83 | is(value_1.value()[4], parseInt("01045434", 16), "word[4]"); | 80 | is(value_1.value()[4], parseInt("01045434", 16), "word[4]"); |
84 | is(value_1.value()[5], parseInt("3ea93603", 16), "word[5]"); | 81 | is(value_1.value()[5], parseInt("3ea93603", 16), "word[5]"); |
85 | is(value_1.value()[6], parseInt("bacda1f0", 16), "word[6]"); | 82 | is(value_1.value()[6], parseInt("bacda1f0", 16), "word[6]"); |
86 | is(value_1.value()[7], parseInt("000108cb", 16), "word[7]"); | 83 | is(value_1.value()[7], parseInt("000108cb", 16), "word[7]"); |
87 | 84 | ||
88 | is(value_1.asString(16), "0108cbbacda1f03ea9360301045434ec7d82ba150936df08a229cbb4832ce1", "asString(16)"); | 85 | is(value_1.asString(16), "0108cbbacda1f03ea9360301045434ec7d82ba150936df08a229cbb4832ce1", "asString(16)"); |
89 | 86 | ||
90 | value_1 = new Clipperz.Crypto.ECC.BinaryField.Value('10 00000000 00000000', 16); | 87 | value_1 = new Clipperz.Crypto.ECC.BinaryField.Value('10 00000000 00000000', 16); |
91 | is(value_1.wordSize(), 3, "check the number of words of a value with only a bit set on the first slot of byte at position 17"); | 88 | is(value_1.wordSize(), 3, "check the number of words of a value with only a bit set on the first slot of byte at position 17"); |
92 | is(value_1.value()[0], parseInt("00000000", 16), "word[0]"); | 89 | is(value_1.value()[0], parseInt("00000000", 16), "word[0]"); |
93 | is(value_1.value()[1], parseInt("00000000", 16), "word[1]"); | 90 | is(value_1.value()[1], parseInt("00000000", 16), "word[1]"); |
94 | is(value_1.value()[2], parseInt("10", 16), "word[2]"); | 91 | is(value_1.value()[2], parseInt("10", 16), "word[2]"); |
95 | is(value_1.asString(16), "100000000000000000", "2^17 asString(16)"); | 92 | is(value_1.asString(16), "100000000000000000", "2^17 asString(16)"); |
96 | 93 | ||
97 | // | 94 | // |
98 | //XOR | 95 | //XOR |
99 | // | 96 | // |
100 | value_1 = new Clipperz.Crypto.ECC.BinaryField.Value('e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855', 16); | 97 | value_1 = new Clipperz.Crypto.ECC.BinaryField.Value('e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855', 16); |
101 | value_2 = new Clipperz.Crypto.ECC.BinaryField.Value('e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855', 16); | 98 | value_2 = new Clipperz.Crypto.ECC.BinaryField.Value('e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855', 16); |
102 | result = value_1.xor(value_2); | 99 | result = value_1.xor(value_2); |
103 | expectedResult = new Clipperz.Crypto.ECC.BinaryField.Value('0', 16); | 100 | expectedResult = new Clipperz.Crypto.ECC.BinaryField.Value('0', 16); |
104 | is(result.asString(16), expectedResult.asString(16), "a xor a = 0"); | 101 | is(result.asString(16), expectedResult.asString(16), "a xor a = 0"); |
105 | 102 | ||
106 | // | 103 | // |
107 | value_1 = new Clipperz.Crypto.ECC.BinaryField.Value('e3b0c442 98fc1c14 9afbf4c8 996fb924 27ae41e4 649b934c a495991b 7852b855', 16); | 104 | value_1 = new Clipperz.Crypto.ECC.BinaryField.Value('e3b0c442 98fc1c14 9afbf4c8 996fb924 27ae41e4 649b934c a495991b 7852b855', 16); |
108 | value_2 = new Clipperz.Crypto.ECC.BinaryField.Value('e3b0c442 98fc1c14 9afbf4c8 996fb924 27ae41e4 649b935c a495991b 7852b855', 16); | 105 | value_2 = new Clipperz.Crypto.ECC.BinaryField.Value('e3b0c442 98fc1c14 9afbf4c8 996fb924 27ae41e4 649b935c a495991b 7852b855', 16); |
109 | result = value_1.xor(value_2); | 106 | result = value_1.xor(value_2); |
110 | expectedResult = new Clipperz.Crypto.ECC.BinaryField.Value('10 00000000 00000000', 16); | 107 | expectedResult = new Clipperz.Crypto.ECC.BinaryField.Value('10 00000000 00000000', 16); |
111 | is(result.asString(16), expectedResult.asString(16), "single bit difference"); | 108 | is(result.asString(16), expectedResult.asString(16), "single bit difference"); |
112 | 109 | ||
113 | // | 110 | // |
114 | value_1 = new Clipperz.Crypto.ECC.BinaryField.Value("01", 16); | 111 | value_1 = new Clipperz.Crypto.ECC.BinaryField.Value("01", 16); |
115 | value_2 = new Clipperz.Crypto.ECC.BinaryField.Value('e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b935ca495991b7852b855', 16); | 112 | value_2 = new Clipperz.Crypto.ECC.BinaryField.Value('e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b935ca495991b7852b855', 16); |
116 | result = value_1.xor(value_2); | 113 | result = value_1.xor(value_2); |
117 | expectedResult = new Clipperz.Crypto.ECC.BinaryField.Value('e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b935ca495991b7852b854', 16); | 114 | expectedResult = new Clipperz.Crypto.ECC.BinaryField.Value('e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b935ca495991b7852b854', 16); |
118 | is(result.asString(16), expectedResult.asString(16), "01 xor value"); | 115 | is(result.asString(16), expectedResult.asString(16), "01 xor value"); |
119 | 116 | ||
120 | // | 117 | // |
diff --git a/frontend/gamma/tests/tests/Clipperz/Crypto/ECC.K283.deferred.html b/frontend/gamma/tests/tests/Clipperz/Crypto/ECC.K283.deferred.html index b53a9a1..b784f66 100644 --- a/frontend/gamma/tests/tests/Clipperz/Crypto/ECC.K283.deferred.html +++ b/frontend/gamma/tests/tests/Clipperz/Crypto/ECC.K283.deferred.html | |||
@@ -1,120 +1,117 @@ | |||
1 | <!-- | 1 | <!-- |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | --> | 24 | --> |
28 | 25 | ||
29 | <html> | 26 | <html> |
30 | <head> | 27 | <head> |
31 | <!-- - -> | 28 | <!-- - -> |
32 | <script type="text/javascript" src="../../../../js/MochiKit/MochiKit.js"></script> | 29 | <script type="text/javascript" src="../../../../js/MochiKit/MochiKit.js"></script> |
33 | <!- - --> | 30 | <!- - --> |
34 | <!-- --> | 31 | <!-- --> |
35 | <script type="text/javascript" src="../../../../js/MochiKit/Base.js"></script> | 32 | <script type="text/javascript" src="../../../../js/MochiKit/Base.js"></script> |
36 | <script type="text/javascript" src="../../../../js/MochiKit/Async.js"></script> | 33 | <script type="text/javascript" src="../../../../js/MochiKit/Async.js"></script> |
37 | <script type="text/javascript" src="../../../../js/MochiKit/DOM.js"></script> | 34 | <script type="text/javascript" src="../../../../js/MochiKit/DOM.js"></script> |
38 | <script type="text/javascript" src="../../../../js/MochiKit/Logging.js"></script> | 35 | <script type="text/javascript" src="../../../../js/MochiKit/Logging.js"></script> |
39 | <script type="text/javascript" src="../../../../js/MochiKit/Iter.js"></script> | 36 | <script type="text/javascript" src="../../../../js/MochiKit/Iter.js"></script> |
40 | <!-- --> | 37 | <!-- --> |
41 | 38 | ||
42 | <!-- - -> | 39 | <!-- - -> |
43 | <script type="text/javascript" src="../../../../js/MochiKit/Style.js"></script> | 40 | <script type="text/javascript" src="../../../../js/MochiKit/Style.js"></script> |
44 | <script type="text/javascript" src="../../../../js/MochiKit/Signal.js"></script> | 41 | <script type="text/javascript" src="../../../../js/MochiKit/Signal.js"></script> |
45 | <script type="text/javascript" src="../../../../js/MochiKit/Color.js"></script> | 42 | <script type="text/javascript" src="../../../../js/MochiKit/Color.js"></script> |
46 | <script type="text/javascript" src="../../../../js/MochiKit/Position.js"></script> | 43 | <script type="text/javascript" src="../../../../js/MochiKit/Position.js"></script> |
47 | <script type="text/javascript" src="../../../../js/MochiKit/Visual.js"></script> | 44 | <script type="text/javascript" src="../../../../js/MochiKit/Visual.js"></script> |
48 | <!- - --> | 45 | <!- - --> |
49 | 46 | ||
50 | 47 | ||
51 | <script type="text/javascript" src="../../../SimpleTest/SimpleTest.js"></script> | 48 | <script type="text/javascript" src="../../../SimpleTest/SimpleTest.js"></script> |
52 | <link rel="stylesheet" type="text/css" href="../../../SimpleTest/test.css"> | 49 | <link rel="stylesheet" type="text/css" href="../../../SimpleTest/test.css"> |
53 | 50 | ||
54 | <!--<script type='text/javascript' src='../../../../js/Clipperz/Base.js'></script>--> | 51 | <!--<script type='text/javascript' src='../../../../js/Clipperz/Base.js'></script>--> |
55 | <!--<script type='text/javascript' src='../../../../js/Clipperz/ByteArray.js'></script>--> | 52 | <!--<script type='text/javascript' src='../../../../js/Clipperz/ByteArray.js'></script>--> |
56 | <!--<script type='text/javascript' src='../../../../js/Clipperz/Crypto/Base.js'></script>--> | 53 | <!--<script type='text/javascript' src='../../../../js/Clipperz/Crypto/Base.js'></script>--> |
57 | 54 | ||
58 | <!--<script type='text/javascript' src='../../../../js/Clipperz/Crypto/ECC/BinaryField/Value.js'></script>--> | 55 | <!--<script type='text/javascript' src='../../../../js/Clipperz/Crypto/ECC/BinaryField/Value.js'></script>--> |
59 | <!--<script type='text/javascript' src='../../../../js/Clipperz/Crypto/ECC/BinaryField/Point.js'></script>--> | 56 | <!--<script type='text/javascript' src='../../../../js/Clipperz/Crypto/ECC/BinaryField/Point.js'></script>--> |
60 | <!--<script type='text/javascript' src='../../../../js/Clipperz/Crypto/ECC/BinaryField/FiniteField.js'></script>--> | 57 | <!--<script type='text/javascript' src='../../../../js/Clipperz/Crypto/ECC/BinaryField/FiniteField.js'></script>--> |
61 | <!--<script type='text/javascript' src='../../../../js/Clipperz/Crypto/ECC/BinaryField/Curve.js'></script>--> | 58 | <!--<script type='text/javascript' src='../../../../js/Clipperz/Crypto/ECC/BinaryField/Curve.js'></script>--> |
62 | 59 | ||
63 | <script type='text/javascript' src='../../../../js/Clipperz/Crypto/ECC/Koblitz/Value.js'></script> | 60 | <script type='text/javascript' src='../../../../js/Clipperz/Crypto/ECC/Koblitz/Value.js'></script> |
64 | <script type='text/javascript' src='../../../../js/Clipperz/Crypto/ECC/Koblitz/Point.js'></script> | 61 | <script type='text/javascript' src='../../../../js/Clipperz/Crypto/ECC/Koblitz/Point.js'></script> |
65 | <script type='text/javascript' src='../../../../js/Clipperz/Crypto/ECC/Koblitz/FiniteField.js'></script> | 62 | <script type='text/javascript' src='../../../../js/Clipperz/Crypto/ECC/Koblitz/FiniteField.js'></script> |
66 | <script type='text/javascript' src='../../../../js/Clipperz/Crypto/ECC/Koblitz/Curve.js'></script> | 63 | <script type='text/javascript' src='../../../../js/Clipperz/Crypto/ECC/Koblitz/Curve.js'></script> |
67 | 64 | ||
68 | <script type='text/javascript' src='../../../../js/Clipperz/Crypto/ECC/StandardCurves.js'></script> | 65 | <script type='text/javascript' src='../../../../js/Clipperz/Crypto/ECC/StandardCurves.js'></script> |
69 | 66 | ||
70 | </head> | 67 | </head> |
71 | <body> | 68 | <body> |
72 | <pre id="test"> | 69 | <pre id="test"> |
73 | <script type="text/javascript"> | 70 | <script type="text/javascript"> |
74 | try { | 71 | try { |
75 | 72 | ||
76 | var deferredResult; | 73 | var deferredResult; |
77 | 74 | ||
78 | 75 | ||
79 | deferredResult = new MochiKit.Async.Deferred(); | 76 | deferredResult = new MochiKit.Async.Deferred(); |
80 | //deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("** 1: " + res); return res;}); | 77 | //deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("** 1: " + res); return res;}); |
81 | 78 | ||
82 | // | 79 | // |
83 | //ECC.Curve.multiplication | 80 | //ECC.Curve.multiplication |
84 | // | 81 | // |
85 | varcurve; | 82 | varcurve; |
86 | var f2m; | 83 | var f2m; |
87 | var f2m_improved; | 84 | var f2m_improved; |
88 | var value; | 85 | var value; |
89 | var moduledValue; | 86 | var moduledValue; |
90 | var result; | 87 | var result; |
91 | var result_improved; | 88 | var result_improved; |
92 | var expectedResul; | 89 | var expectedResul; |
93 | 90 | ||
94 | f2m = new Clipperz.Crypto.ECC.Koblitz.FiniteField({modulus:new Clipperz.Crypto.ECC.Koblitz.Value('08000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 000010a1', 16)}) | 91 | f2m = new Clipperz.Crypto.ECC.Koblitz.FiniteField({modulus:new Clipperz.Crypto.ECC.Koblitz.Value('08000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 000010a1', 16)}) |
95 | f2m_improved = Clipperz.Crypto.ECC.StandardCurves.K283().finiteField(); | 92 | f2m_improved = Clipperz.Crypto.ECC.StandardCurves.K283().finiteField(); |
96 | 93 | ||
97 | curve = Clipperz.Crypto.ECC.StandardCurves.K283(); | 94 | curve = Clipperz.Crypto.ECC.StandardCurves.K283(); |
98 | 95 | ||
99 | /** / | 96 | /** / |
100 | value = new Clipperz.Crypto.ECC.Koblitz.Value("7b", 16); | 97 | value = new Clipperz.Crypto.ECC.Koblitz.Value("7b", 16); |
101 | result = curve.multiply(value, curve.G()); | 98 | result = curve.multiply(value, curve.G()); |
102 | expectedResult = new Clipperz.Crypto.ECC.Koblitz.Point({ | 99 | expectedResult = new Clipperz.Crypto.ECC.Koblitz.Point({ |
103 | x: new Clipperz.Crypto.ECC.Koblitz.Value('29705d23a9cda75e43984bdb9a8fd33304682da0f506a69bdbd5f36657e11b41e35fcdd', 16), | 100 | x: new Clipperz.Crypto.ECC.Koblitz.Value('29705d23a9cda75e43984bdb9a8fd33304682da0f506a69bdbd5f36657e11b41e35fcdd', 16), |
104 | y: new Clipperz.Crypto.ECC.Koblitz.Value('59157d2ace16563a905361c5206cc0775c3330f4978bddf8aa9916c451cf9951313623b', 16) | 101 | y: new Clipperz.Crypto.ECC.Koblitz.Value('59157d2ace16563a905361c5206cc0775c3330f4978bddf8aa9916c451cf9951313623b', 16) |
105 | }); | 102 | }); |
106 | is(result.x().asString(16), expectedResult.x().asString(16), "ECC.Curve.multiplication: result.x does match"); | 103 | is(result.x().asString(16), expectedResult.x().asString(16), "ECC.Curve.multiplication: result.x does match"); |
107 | is(result.y().asString(16), expectedResult.y().asString(16), "ECC.Curve.multiplication: result.y does match"); | 104 | is(result.y().asString(16), expectedResult.y().asString(16), "ECC.Curve.multiplication: result.y does match"); |
108 | / **/ | 105 | / **/ |
109 | 106 | ||
110 | value = new Clipperz.Crypto.ECC.Koblitz.Value("ba35032a24eb81238251d85824998bebae3b3e09f4d3845256c87585cf62416ee43191", 16); | 107 | value = new Clipperz.Crypto.ECC.Koblitz.Value("ba35032a24eb81238251d85824998bebae3b3e09f4d3845256c87585cf62416ee43191", 16); |
111 | 108 | ||
112 | //deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("** 6: " + res); return res;}); | 109 | //deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("** 6: " + res); return res;}); |
113 | //deferredResult.addCallback(console.time, 'K283.deferred.multiply - moduled value'); | 110 | //deferredResult.addCallback(console.time, 'K283.deferred.multiply - moduled value'); |
114 | //deferredResult.addBoth(function(res) {MochiKit.Base.logDebug("2 - " + res); return res;}); | 111 | //deferredResult.addBoth(function(res) {MochiKit.Base.logDebug("2 - " + res); return res;}); |
115 | //deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("** 7: " + res); return res;}); | 112 | //deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("** 7: " + res); return res;}); |
116 | deferredResult.addMethod(curve, 'deferredMultiply', value, curve.G()); | 113 | deferredResult.addMethod(curve, 'deferredMultiply', value, curve.G()); |
117 | //deferredResult.addBoth(function(res) {MochiKit.Base.logDebug("3 - " + res); return res;}); | 114 | //deferredResult.addBoth(function(res) {MochiKit.Base.logDebug("3 - " + res); return res;}); |
118 | //deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("** 8: " + res); return res;}); | 115 | //deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("** 8: " + res); return res;}); |
119 | //deferredResult.addBoth(function(res) {console.timeEnd('K283.deferred.multiply - moduled value'); return res;}); | 116 | //deferredResult.addBoth(function(res) {console.timeEnd('K283.deferred.multiply - moduled value'); return res;}); |
120 | //deferredResult.addBoth(function(res) {MochiKit.Base.logDebug("4 - " + res); return res;}); | 117 | //deferredResult.addBoth(function(res) {MochiKit.Base.logDebug("4 - " + res); return res;}); |
diff --git a/frontend/gamma/tests/tests/Clipperz/Crypto/JSCrypto_vs_Clipperz.html b/frontend/gamma/tests/tests/Clipperz/Crypto/JSCrypto_vs_Clipperz.html index 1342349..2968894 100644 --- a/frontend/gamma/tests/tests/Clipperz/Crypto/JSCrypto_vs_Clipperz.html +++ b/frontend/gamma/tests/tests/Clipperz/Crypto/JSCrypto_vs_Clipperz.html | |||
@@ -1,70 +1,67 @@ | |||
1 | <!-- | 1 | <!-- |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | --> | 24 | --> |
28 | 25 | ||
29 | <html> | 26 | <html> |
30 | <head> | 27 | <head> |
31 | <title>Clipperz.Crypto.JSCrypto_vs_Clipperz - tests</title> | 28 | <title>Clipperz.Crypto.JSCrypto_vs_Clipperz - tests</title> |
32 | 29 | ||
33 | <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/> | 30 | <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/> |
34 | 31 | ||
35 | <script type="text/javascript" src="../../../../js/MochiKit/MochiKit.js"></script> | 32 | <script type="text/javascript" src="../../../../js/MochiKit/MochiKit.js"></script> |
36 | <script type="text/javascript" src="../../../SimpleTest/SimpleTest.js"></script> | 33 | <script type="text/javascript" src="../../../SimpleTest/SimpleTest.js"></script> |
37 | <link rel="stylesheet" type="text/css" href="../../../SimpleTest/test.css"> | 34 | <link rel="stylesheet" type="text/css" href="../../../SimpleTest/test.css"> |
38 | 35 | ||
39 | <script type='text/javascript' src='../../../../js/JSON/json2.js'></script> | 36 | <script type='text/javascript' src='../../../../js/JSON/json2.js'></script> |
40 | 37 | ||
41 | <script type='text/javascript' src='../../../../js/Clipperz/YUI/Utils.js'></script> | 38 | <script type='text/javascript' src='../../../../js/Clipperz/YUI/Utils.js'></script> |
42 | <script type='text/javascript' src='../../../../js/Clipperz/YUI/DomHelper.js'></script> | 39 | <script type='text/javascript' src='../../../../js/Clipperz/YUI/DomHelper.js'></script> |
43 | <script type='text/javascript' src='../../../../js/Clipperz/Base.js'></script> | 40 | <script type='text/javascript' src='../../../../js/Clipperz/Base.js'></script> |
44 | <script type='text/javascript' src='../../../../js/Clipperz/ByteArray.js'></script> | 41 | <script type='text/javascript' src='../../../../js/Clipperz/ByteArray.js'></script> |
45 | <script type='text/javascript' src='../../../../js/Clipperz/Async.js'></script> | 42 | <script type='text/javascript' src='../../../../js/Clipperz/Async.js'></script> |
46 | <script type='text/javascript' src='../../../../js/Clipperz/Logging.js'></script> | 43 | <script type='text/javascript' src='../../../../js/Clipperz/Logging.js'></script> |
47 | <script type='text/javascript' src='../../../../js/Clipperz/Crypto/Base.js'></script> | 44 | <script type='text/javascript' src='../../../../js/Clipperz/Crypto/Base.js'></script> |
48 | <script type='text/javascript' src='../../../../js/Clipperz/Crypto/BigInt.js'></script> | 45 | <script type='text/javascript' src='../../../../js/Clipperz/Crypto/BigInt.js'></script> |
49 | <script type='text/javascript' src='../../../../js/Clipperz/Crypto/AES.js'></script> | 46 | <script type='text/javascript' src='../../../../js/Clipperz/Crypto/AES.js'></script> |
50 | <script type='text/javascript' src='../../../../js/Clipperz/Crypto/SHA.js'></script> | 47 | <script type='text/javascript' src='../../../../js/Clipperz/Crypto/SHA.js'></script> |
51 | <script type='text/javascript' src='../../../../js/Clipperz/Crypto/PRNG.js'></script> | 48 | <script type='text/javascript' src='../../../../js/Clipperz/Crypto/PRNG.js'></script> |
52 | <script type='text/javascript' src='../../../../js/Clipperz/PM/Crypto.js'></script> | 49 | <script type='text/javascript' src='../../../../js/Clipperz/PM/Crypto.js'></script> |
53 | 50 | ||
54 | <script type='text/javascript' src='./jscrypto.js'></script> | 51 | <script type='text/javascript' src='./jscrypto.js'></script> |
55 | 52 | ||
56 | <script type="text/javascript" src="../../../SimpleTest/SimpleTest.Async.js"></script> | 53 | <script type="text/javascript" src="../../../SimpleTest/SimpleTest.Async.js"></script> |
57 | 54 | ||
58 | </head> | 55 | </head> |
59 | <body> | 56 | <body> |
60 | 57 | ||
61 | <pre id="test"> | 58 | <pre id="test"> |
62 | <script type="text/javascript"> | 59 | <script type="text/javascript"> |
63 | var longAsciiText = "Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Nullam ac ipsum. Morbi mauris. Aenean ac elit id metus lobortis elementum. Proin at quam ac ipsum pellentesque adipiscing. Aenean vestibulum, nisl eu suscipit iaculis, quam pede congue mi, sit amet dapibus metus neque eget dui. Suspendisse posuere diam ac sapien. Nulla lobortis dapibus leo. Quisque ornare tortor quis turpis. Aliquam erat volutpat. Ut faucibus lacinia magna. Nunc metus leo, volutpat quis, mollis ac, sagittis ut, turpis. Quisque purus. Mauris ante enim, vehicula eu, suscipit vitae, laoreet vel, nulla. Pellentesque pede leo, aliquam quis, vehicula eget, rhoncus nec, metus. Vestibulum tellus. Suspendisse blandit. Pellentesque vel tellus. Maecenas arcu. Duis eget purus. Curabitur non pede nec odio cursus luctus. In non elit. Nullam eget nunc in nisl elementum commodo. Vivamus sollicitudin pede quis dui. Morbi commodo. Praesent a risus id urna hendrerit fermentum. Nunc ultricies tristique odio. Phasellus imperdiet, sapien eget viverra blandit, tortor risus blandit nisi, et sodales libero dolor quis nisl. Morbi vel enim. Nunc in quam. Vestibulum a magna. Fusce auctor elit in augue. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Mauris tincidunt consectetuer leo. Etiam non turpis. Vestibulum eros. Praesent venenatis adipiscing augue. Pellentesque dapibus odio ac arcu rhoncus sagittis. Nullam vitae augue. Ut magna nulla, congue eu, porta in, egestas quis, ligula. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Curabitur malesuada neque non nulla. Nulla facilisi. Fusce viverra magna ut tellus. Sed rutrum pretium sapien. Vivamus dui. Cras fringilla. Nullam lorem. Vestibulum varius, purus at imperdiet fermentum, metus diam ultricies lacus, vitae aliquam ipsum libero sit amet felis. Sed eget eros ac velit commodo sollicitudin. Morbi in metus in mi viverra lacinia. Sed ut urna. Suspendisse imperdiet tellus ac velit. Duis malesuada velit sit amet sapien. Vestibulum a sapien id libero accumsan luctus. Fusce iaculis. Donec pulvinar orci ut pede. Nam placerat sem ut sem. Ut pretium bibendum nisl. Suspendisse potenti. Phasellus mollis neque in neque. Suspendisse augue magna, eleifend et, malesuada at, viverra in, nisl. Donec vel lectus in justo ultrices tristique. Aliquam erat volutpat. Morbi suscipit, risus ac volutpat mollis, risus metus hendrerit sapien, ac scelerisque est orci eu est. Quisque sit amet velit. Sed libero diam, semper id, eleifend ac, iaculis non, nulla. Donec varius tincidunt arcu. Sed quis metus eu erat adipiscing viverra. Donec odio. Aenean sagittis nisl sed purus. Fusce vel nibh quis felis accumsan bibendum. Etiam et risus ac tortor cursus pharetra. Maecenas tellus. Pellentesque nec felis id eros vehicula commodo. Aliquam interdum sagittis odio. Maecenas at lorem eget mi aliquet sagittis. Mauris quis nibh in odio sodales lacinia. Proin augue mauris, placerat a, blandit vel, tincidunt eget, ante. Quisque turpis purus, placerat eget, tempor consectetuer, aliquet ac, enim. Etiam eleifend vestibulum mi. Vivamus gravida. Morbi dolor. In hac habitasse platea dictumst. Nulla commodo lectus faucibus lorem. Phasellus aliquet pede id metus hendrerit tempus. Fusce convallis pede ac neque tempor dignissim. Sed vitae lorem sit amet justo dapibus porta. Ut quam orci, pretium non, sagittis nec, condimentum id, dolor. Sed tempor. Nunc porta rutrum leo. Nunc id sem. Sed nibh tortor, dapibus eget, feugiat a, pretium pretium, purus. Suspendisse suscipit lobortis sem. Praesent pharetra orci. Quisque molestie tristique quam. Maecenas nunc lorem, rhoncus non, venenatis sed, sodales at, felis. Quisque semper. Quisque malesuada est quis lacus. Nullam a justo. Aliquam pellentesque, ante ut congue molestie, nisl sapien posuere nisl, eu cursus nulla ligula vel nisl. Fusce commodo lacinia magna. Aenean rutrum vestibulum lorem. Pellentesque fermentum tristique ipsum. Nulla facilisi. Donec id mi eget ipsum commodo egestas. Mauris iaculis. Nulla vulputate mi at nisl. In condimentum sodales tellus. Donec metus orci, mollis vel, accumsan ac, ornare ac, lacus. Pellentesque accumsan est et tellus. Nam mollis. Aenean accumsan eros sit amet tellus. Praesent eu libero. Sed tempus urna nec dolor. Nulla facilisi. Duis eleifend rhoncus neque. Curabitur consectetuer quam eu justo. Sed metus. Vivamus risus. Aliquam erat volutpat. Aliquam erat volutpat. Nunc semper urna. Praesent molestie libero a lacus. Nullam suscipit lobortis velit. Praesent rhoncus, felis ut interdum dapibus, ipsum lectus vestibulum nulla, in interdum risus dolor eget orci. Nullam venenatis. Suspendisse laoreet, arcu a luctus consectetuer, libero ligula condimentum quam, eget elementum mauris tortor sed enim. Pellentesque leo. Nam interdum malesuada ante. Praesent fermentum nunc et dolor. Donec auctor volutpat odio. Pellentesque volutpat egestas ipsum. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Cras ac ligula eu justo dignissim accumsan. Nullam nisi. Fusce id sem. Fusce et urna. Pellentesque commodo pharetra lorem. Donec erat. Vestibulum elit arcu, commodo et, consequat eget, posuere eget, sem. Morbi sed nulla sed neque commodo commodo. Aliquam erat volutpat. Ut id turpis a enim malesuada vestibulum. In arcu dui, dignissim vitae, blandit eu, egestas ac, arcu. In ultricies sapien vitae nisi. Proin rhoncus magna eget tortor. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. In dictum. Sed volutpat pharetra quam. Mauris eget eros. Fusce malesuada dolor id pede. Praesent nec justo sed nisi vehicula varius. In scelerisque convallis nulla. Pellentesque sodales massa vulputate urna. Duis metus urna, imperdiet ac, sodales vel, ullamcorper sed, pede. Vestibulum aliquam mollis metus. Praesent tempus tristique elit. Maecenas tellus tortor, pretium id, mollis id, molestie non, turpis. Vivamus nibh magna, bibendum vitae, a."; | 60 | var longAsciiText = "Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Nullam ac ipsum. Morbi mauris. Aenean ac elit id metus lobortis elementum. Proin at quam ac ipsum pellentesque adipiscing. Aenean vestibulum, nisl eu suscipit iaculis, quam pede congue mi, sit amet dapibus metus neque eget dui. Suspendisse posuere diam ac sapien. Nulla lobortis dapibus leo. Quisque ornare tortor quis turpis. Aliquam erat volutpat. Ut faucibus lacinia magna. Nunc metus leo, volutpat quis, mollis ac, sagittis ut, turpis. Quisque purus. Mauris ante enim, vehicula eu, suscipit vitae, laoreet vel, nulla. Pellentesque pede leo, aliquam quis, vehicula eget, rhoncus nec, metus. Vestibulum tellus. Suspendisse blandit. Pellentesque vel tellus. Maecenas arcu. Duis eget purus. Curabitur non pede nec odio cursus luctus. In non elit. Nullam eget nunc in nisl elementum commodo. Vivamus sollicitudin pede quis dui. Morbi commodo. Praesent a risus id urna hendrerit fermentum. Nunc ultricies tristique odio. Phasellus imperdiet, sapien eget viverra blandit, tortor risus blandit nisi, et sodales libero dolor quis nisl. Morbi vel enim. Nunc in quam. Vestibulum a magna. Fusce auctor elit in augue. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Mauris tincidunt consectetuer leo. Etiam non turpis. Vestibulum eros. Praesent venenatis adipiscing augue. Pellentesque dapibus odio ac arcu rhoncus sagittis. Nullam vitae augue. Ut magna nulla, congue eu, porta in, egestas quis, ligula. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Curabitur malesuada neque non nulla. Nulla facilisi. Fusce viverra magna ut tellus. Sed rutrum pretium sapien. Vivamus dui. Cras fringilla. Nullam lorem. Vestibulum varius, purus at imperdiet fermentum, metus diam ultricies lacus, vitae aliquam ipsum libero sit amet felis. Sed eget eros ac velit commodo sollicitudin. Morbi in metus in mi viverra lacinia. Sed ut urna. Suspendisse imperdiet tellus ac velit. Duis malesuada velit sit amet sapien. Vestibulum a sapien id libero accumsan luctus. Fusce iaculis. Donec pulvinar orci ut pede. Nam placerat sem ut sem. Ut pretium bibendum nisl. Suspendisse potenti. Phasellus mollis neque in neque. Suspendisse augue magna, eleifend et, malesuada at, viverra in, nisl. Donec vel lectus in justo ultrices tristique. Aliquam erat volutpat. Morbi suscipit, risus ac volutpat mollis, risus metus hendrerit sapien, ac scelerisque est orci eu est. Quisque sit amet velit. Sed libero diam, semper id, eleifend ac, iaculis non, nulla. Donec varius tincidunt arcu. Sed quis metus eu erat adipiscing viverra. Donec odio. Aenean sagittis nisl sed purus. Fusce vel nibh quis felis accumsan bibendum. Etiam et risus ac tortor cursus pharetra. Maecenas tellus. Pellentesque nec felis id eros vehicula commodo. Aliquam interdum sagittis odio. Maecenas at lorem eget mi aliquet sagittis. Mauris quis nibh in odio sodales lacinia. Proin augue mauris, placerat a, blandit vel, tincidunt eget, ante. Quisque turpis purus, placerat eget, tempor consectetuer, aliquet ac, enim. Etiam eleifend vestibulum mi. Vivamus gravida. Morbi dolor. In hac habitasse platea dictumst. Nulla commodo lectus faucibus lorem. Phasellus aliquet pede id metus hendrerit tempus. Fusce convallis pede ac neque tempor dignissim. Sed vitae lorem sit amet justo dapibus porta. Ut quam orci, pretium non, sagittis nec, condimentum id, dolor. Sed tempor. Nunc porta rutrum leo. Nunc id sem. Sed nibh tortor, dapibus eget, feugiat a, pretium pretium, purus. Suspendisse suscipit lobortis sem. Praesent pharetra orci. Quisque molestie tristique quam. Maecenas nunc lorem, rhoncus non, venenatis sed, sodales at, felis. Quisque semper. Quisque malesuada est quis lacus. Nullam a justo. Aliquam pellentesque, ante ut congue molestie, nisl sapien posuere nisl, eu cursus nulla ligula vel nisl. Fusce commodo lacinia magna. Aenean rutrum vestibulum lorem. Pellentesque fermentum tristique ipsum. Nulla facilisi. Donec id mi eget ipsum commodo egestas. Mauris iaculis. Nulla vulputate mi at nisl. In condimentum sodales tellus. Donec metus orci, mollis vel, accumsan ac, ornare ac, lacus. Pellentesque accumsan est et tellus. Nam mollis. Aenean accumsan eros sit amet tellus. Praesent eu libero. Sed tempus urna nec dolor. Nulla facilisi. Duis eleifend rhoncus neque. Curabitur consectetuer quam eu justo. Sed metus. Vivamus risus. Aliquam erat volutpat. Aliquam erat volutpat. Nunc semper urna. Praesent molestie libero a lacus. Nullam suscipit lobortis velit. Praesent rhoncus, felis ut interdum dapibus, ipsum lectus vestibulum nulla, in interdum risus dolor eget orci. Nullam venenatis. Suspendisse laoreet, arcu a luctus consectetuer, libero ligula condimentum quam, eget elementum mauris tortor sed enim. Pellentesque leo. Nam interdum malesuada ante. Praesent fermentum nunc et dolor. Donec auctor volutpat odio. Pellentesque volutpat egestas ipsum. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Cras ac ligula eu justo dignissim accumsan. Nullam nisi. Fusce id sem. Fusce et urna. Pellentesque commodo pharetra lorem. Donec erat. Vestibulum elit arcu, commodo et, consequat eget, posuere eget, sem. Morbi sed nulla sed neque commodo commodo. Aliquam erat volutpat. Ut id turpis a enim malesuada vestibulum. In arcu dui, dignissim vitae, blandit eu, egestas ac, arcu. In ultricies sapien vitae nisi. Proin rhoncus magna eget tortor. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. In dictum. Sed volutpat pharetra quam. Mauris eget eros. Fusce malesuada dolor id pede. Praesent nec justo sed nisi vehicula varius. In scelerisque convallis nulla. Pellentesque sodales massa vulputate urna. Duis metus urna, imperdiet ac, sodales vel, ullamcorper sed, pede. Vestibulum aliquam mollis metus. Praesent tempus tristique elit. Maecenas tellus tortor, pretium id, mollis id, molestie non, turpis. Vivamus nibh magna, bibendum vitae, a."; |
64 | var longIsoLatin1Text = "¡¢£¤¥¦§¨©ª«¬®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ¡¢£¤¥¦§¨©ª«¬®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ¡¢£¤¥¦§¨©ª«¬®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ¡¢£¤¥¦§¨©ª«¬®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ¡¢£¤¥¦§¨©ª«¬®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ¡¢£¤¥¦§¨©ª«¬®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ¡¢£¤¥¦§¨©ª«¬®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ¡¢£¤¥¦§¨©ª«¬®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ¡¢£¤¥¦§¨©ª«¬®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ¡¢£¤¥¦§¨©ª«¬®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ¡¢£¤¥¦§¨©ª«¬®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ¡¢£¤¥¦§¨©ª«¬®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ¡¢£¤¥¦§¨©ª«¬®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ¡¢£¤¥¦§¨©ª«¬®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ¡¢£¤¥¦§¨©ª«¬®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ¡¢£¤¥¦§¨©ª«¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ¡¢£¤¥¦§¨©ª«¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ¡¢£¤¥¦§¨©ª«¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ¡¢£¤¥¦§¨©ª«¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ¡¢£¤¥¦§¨©ª«¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ¡¢£¤¥¦§¨©ª«¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ¡¢£¤¥¦§¨©ª«¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ¡¢£¤¥¦§¨©ª«¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ¡¢£¤¥¦§¨©ª«¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ¡¢£¤¥¦§¨©ª«¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ¡¢£¤¥¦§¨©ª«¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ¡¢£¤¥¦§¨©ª«¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ¡¢£¤¥¦§¨©ª«¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ¡¢£¤¥¦§¨©ª«¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ¡¢£¤¥¦§¨©ª«¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ¡¢£¤¥¦§¨©ª«¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ¡¢£¤¥¦§¨©ª«¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ¡¢£¤¥¦§¨©ª«¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ¡¢£¤¥¦§¨©ª«¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ¡¢£¤¥¦§¨©ª«¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùù"; | 61 | var longIsoLatin1Text = "¡¢£¤¥¦§¨©ª«¬®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ¡¢£¤¥¦§¨©ª«¬®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ¡¢£¤¥¦§¨©ª«¬®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ¡¢£¤¥¦§¨©ª«¬®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ¡¢£¤¥¦§¨©ª«¬®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ¡¢£¤¥¦§¨©ª«¬®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ¡¢£¤¥¦§¨©ª«¬®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ¡¢£¤¥¦§¨©ª«¬®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ¡¢£¤¥¦§¨©ª«¬®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ¡¢£¤¥¦§¨©ª«¬®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ¡¢£¤¥¦§¨©ª«¬®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ¡¢£¤¥¦§¨©ª«¬®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ¡¢£¤¥¦§¨©ª«¬®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ¡¢£¤¥¦§¨©ª«¬®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ¡¢£¤¥¦§¨©ª«¬®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ¡¢£¤¥¦§¨©ª«¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ¡¢£¤¥¦§¨©ª«¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ¡¢£¤¥¦§¨©ª«¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ¡¢£¤¥¦§¨©ª«¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ¡¢£¤¥¦§¨©ª«¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ¡¢£¤¥¦§¨©ª«¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ¡¢£¤¥¦§¨©ª«¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ¡¢£¤¥¦§¨©ª«¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ¡¢£¤¥¦§¨©ª«¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ¡¢£¤¥¦§¨©ª«¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ¡¢£¤¥¦§¨©ª«¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ¡¢£¤¥¦§¨©ª«¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ¡¢£¤¥¦§¨©ª«¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ¡¢£¤¥¦§¨©ª«¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ¡¢£¤¥¦§¨©ª«¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ¡¢£¤¥¦§¨©ª«¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ¡¢£¤¥¦§¨©ª«¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ¡¢£¤¥¦§¨©ª«¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ¡¢£¤¥¦§¨©ª«¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ¡¢£¤¥¦§¨©ª«¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùù"; |
65 | var longUtf8Text = "客家方言简体字危及了对古代文学的研究共有找华语并不被中国政府很好的接受然而汉语之所以能统称为汉语第客家方言简体字危及了对古代文学的研究共有找华语并不被中国政府很好的接受然而汉语之所以能统称为汉语第客家方言简体字危及了对古代文学的研究共有找华语并不被中国政府很好的接受然而汉语之所以能统称为汉语第客家方言简体字危及了对古代文学的研究共有找华语并不被中国政府很好的接受然而汉语之所以能统称为汉语第客家方言简体字危及了对古代文学的研究共有找华语并不被中国政府很好的接受然而汉语之所以能统称为汉语第客家方言简体字危及了对古代文学的研究共有找华语并不被中国政府很好的接受然而汉语之所以能统称为汉语第客家方言简体字危及了对古代文学的研究共有找华语并不被中国政府很好的接受然而汉语之所以能统称为汉语第客家方言简体字危及了对古代文学的研究共有找华语并不被中国政府很好的接受然而汉语之所以能统称为汉语第客家方言简体字危及了对古代文学的研究共有找华语并不被中国政府很好的接受然而汉语之所以能统称为汉语第客家方言简体字危及了对古代文学的研究共有找华语并不被中国政府很好的接受然而汉语之所以能统称为汉语第客家方言简体字危及了对古代文学的研究共有找华语并不被中国政府很好的接受然而汉语之所以能统称为汉语第客家方言简体字危及了对古代文学的研究共有找华语并不被中国政府很好的接受然而汉语之所以能统称为汉语第客家方言简体字危及了对古代文学的研究共有找华语并不被中国政府很好的接受然而汉语之所以能统称为汉语第客家方言简体字危及了对古代文学的研究共有找华语并不被中国政府很好的接受然而汉语之所以能统称为汉语第客家方言简体字危及了对古代文学的研究共有找华语并不被中国政府很好的接受然而汉语之所以能统称为汉语第客家方言简体字危及了对古代文学的研究共有找华语并不被中国政府很好的接受然而汉语之所以能统称为汉语第客家方言简体字危及了对古代文学的研究共有找华语并不被中国政府很好的接受然而汉语之所以能统称为汉语第客家方言简体字危及了对古代文学的研究共有找华语并不被中国政府很好的接受然而汉语之所以能统称为汉语第客家方言简体字危及了对古代文学的研究共有找华语并不被中国政府很好的接受然而汉语之所以能统称为汉语第客家方言简体字危及了对古代文学的研究共有找华语并不被中国政府很好的接受然而汉语之所以能统称为汉语第客家方言简体字危及了对古代文学的研究共有找华语并不被中国政府很好的接受然而汉语之所以能统称为汉语第客家方言简体字危及了对古代文学的研究共有找华语并不被中国政府很好的接受然而汉语之所以能统称为汉语第客家方言简体字危及了对古代文学的研究共有找华语并不被中国政府很好的接受然而汉语之所以能统称为汉语第客家方言简体字危及了对古代文学的研究共有找华语并不被中国政府很好的接受然而汉语之所以能统称为汉语第客家方言简体字危及了对古代文学的研究共有找华语并不被中国政府很好的接受然而汉语之所以能统称为汉语第客家方言简体字危及了对古代文学的研究共有找华语并不被中国政府很好的接受然而汉语之所以能统称为汉语第客家方言简体字危及了对古代文学的研究共有找华语并不被中国政府很好的接受然而汉语之所以能统称为汉语第客家方言简体字危及了对古代文学的研究共有找华语并不被中国政府很好的接受然而汉语之所以能统称为汉语第客家方言简体字危及了对古代文学的研究共有找华语并不被中国政府很好的接受然而汉语之所以能统称为汉语第客家方言简体字危及了对古代文学的研究共有找华语并不被中国政府很好的接受然而汉语之所以能统称为汉语第客家方言简体字危及了对古代文学的研究共有找华语并不被中国政府很好的接受然而汉语之所以能统称为汉语第客家方言简体字危及了对古代文学的研究共有找华语并不被中国政府很好的接受然而汉语之所以能统称为汉语第客家方言简体字危及了对古代文学的研究共有找华语并不被中国政府很好的接受然而汉语之所以能统称为汉语第客家方言简体字危及了对古代文学的研究共有找华语并不被中国政府很好的接受然而汉语之所以能统称为汉语第客家方言简体字危及了对古代文学的研究共有找华语并不被中国政府很好的接受然而汉语之所以能统称为汉语第客家方言简体字危及了对古代文学的研究共有找华语并不被中国政府很好的接受然而汉语之所以能统称为汉语第客家方言简体字危及了对古代文学的研究共有找华语并不被中国政府很好的接受然而汉语之所以能统称为汉语第客家方言简体字危及了对古代文学的研究共有找华语并不被中国政府很好的接受然而汉语之所以能统称为汉语第客家方言简体字危及了对古代文学的研究共有找华语并不被中国政府很好的接受然而汉语之所以能统称为汉语第客家方言简体字危及了对古代文学的研究共有找华语并不被中国政府很好的接受然而汉语之所以能统称为汉语第客家方言简体字危及了对古代文学的研究共有找华语并不被中国政府很好的接受然而汉语之"; | 62 | var longUtf8Text = "客家方言简体字危及了对古代文学的研究共有找华语并不被中国政府很好的接受然而汉语之所以能统称为汉语第客家方言简体字危及了对古代文学的研究共有找华语并不被中国政府很好的接受然而汉语之所以能统称为汉语第客家方言简体字危及了对古代文学的研究共有找华语并不被中国政府很好的接受然而汉语之所以能统称为汉语第客家方言简体字危及了对古代文学的研究共有找华语并不被中国政府很好的接受然而汉语之所以能统称为汉语第客家方言简体字危及了对古代文学的研究共有找华语并不被中国政府很好的接受然而汉语之所以能统称为汉语第客家方言简体字危及了对古代文学的研究共有找华语并不被中国政府很好的接受然而汉语之所以能统称为汉语第客家方言简体字危及了对古代文学的研究共有找华语并不被中国政府很好的接受然而汉语之所以能统称为汉语第客家方言简体字危及了对古代文学的研究共有找华语并不被中国政府很好的接受然而汉语之所以能统称为汉语第客家方言简体字危及了对古代文学的研究共有找华语并不被中国政府很好的接受然而汉语之所以能统称为汉语第客家方言简体字危及了对古代文学的研究共有找华语并不被中国政府很好的接受然而汉语之所以能统称为汉语第客家方言简体字危及了对古代文学的研究共有找华语并不被中国政府很好的接受然而汉语之所以能统称为汉语第客家方言简体字危及了对古代文学的研究共有找华语并不被中国政府很好的接受然而汉语之所以能统称为汉语第客家方言简体字危及了对古代文学的研究共有找华语并不被中国政府很好的接受然而汉语之所以能统称为汉语第客家方言简体字危及了对古代文学的研究共有找华语并不被中国政府很好的接受然而汉语之所以能统称为汉语第客家方言简体字危及了对古代文学的研究共有找华语并不被中国政府很好的接受然而汉语之所以能统称为汉语第客家方言简体字危及了对古代文学的研究共有找华语并不被中国政府很好的接受然而汉语之所以能统称为汉语第客家方言简体字危及了对古代文学的研究共有找华语并不被中国政府很好的接受然而汉语之所以能统称为汉语第客家方言简体字危及了对古代文学的研究共有找华语并不被中国政府很好的接受然而汉语之所以能统称为汉语第客家方言简体字危及了对古代文学的研究共有找华语并不被中国政府很好的接受然而汉语之所以能统称为汉语第客家方言简体字危及了对古代文学的研究共有找华语并不被中国政府很好的接受然而汉语之所以能统称为汉语第客家方言简体字危及了对古代文学的研究共有找华语并不被中国政府很好的接受然而汉语之所以能统称为汉语第客家方言简体字危及了对古代文学的研究共有找华语并不被中国政府很好的接受然而汉语之所以能统称为汉语第客家方言简体字危及了对古代文学的研究共有找华语并不被中国政府很好的接受然而汉语之所以能统称为汉语第客家方言简体字危及了对古代文学的研究共有找华语并不被中国政府很好的接受然而汉语之所以能统称为汉语第客家方言简体字危及了对古代文学的研究共有找华语并不被中国政府很好的接受然而汉语之所以能统称为汉语第客家方言简体字危及了对古代文学的研究共有找华语并不被中国政府很好的接受然而汉语之所以能统称为汉语第客家方言简体字危及了对古代文学的研究共有找华语并不被中国政府很好的接受然而汉语之所以能统称为汉语第客家方言简体字危及了对古代文学的研究共有找华语并不被中国政府很好的接受然而汉语之所以能统称为汉语第客家方言简体字危及了对古代文学的研究共有找华语并不被中国政府很好的接受然而汉语之所以能统称为汉语第客家方言简体字危及了对古代文学的研究共有找华语并不被中国政府很好的接受然而汉语之所以能统称为汉语第客家方言简体字危及了对古代文学的研究共有找华语并不被中国政府很好的接受然而汉语之所以能统称为汉语第客家方言简体字危及了对古代文学的研究共有找华语并不被中国政府很好的接受然而汉语之所以能统称为汉语第客家方言简体字危及了对古代文学的研究共有找华语并不被中国政府很好的接受然而汉语之所以能统称为汉语第客家方言简体字危及了对古代文学的研究共有找华语并不被中国政府很好的接受然而汉语之所以能统称为汉语第客家方言简体字危及了对古代文学的研究共有找华语并不被中国政府很好的接受然而汉语之所以能统称为汉语第客家方言简体字危及了对古代文学的研究共有找华语并不被中国政府很好的接受然而汉语之所以能统称为汉语第客家方言简体字危及了对古代文学的研究共有找华语并不被中国政府很好的接受然而汉语之所以能统称为汉语第客家方言简体字危及了对古代文学的研究共有找华语并不被中国政府很好的接受然而汉语之所以能统称为汉语第客家方言简体字危及了对古代文学的研究共有找华语并不被中国政府很好的接受然而汉语之所以能统称为汉语第客家方言简体字危及了对古代文学的研究共有找华语并不被中国政府很好的接受然而汉语之所以能统称为汉语第客家方言简体字危及了对古代文学的研究共有找华语并不被中国政府很好的接受然而汉语之"; |
66 | </script> | 63 | </script> |
67 | <script type="text/javascript" src="JSCrypto_vs_Clipperz.test.js"></script> | 64 | <script type="text/javascript" src="JSCrypto_vs_Clipperz.test.js"></script> |
68 | </pre> | 65 | </pre> |
69 | </body> | 66 | </body> |
70 | </html> | 67 | </html> |
diff --git a/frontend/gamma/tests/tests/Clipperz/Crypto/JSCrypto_vs_Clipperz.test.js b/frontend/gamma/tests/tests/Clipperz/Crypto/JSCrypto_vs_Clipperz.test.js index 7dc688c..1580e6c 100644 --- a/frontend/gamma/tests/tests/Clipperz/Crypto/JSCrypto_vs_Clipperz.test.js +++ b/frontend/gamma/tests/tests/Clipperz/Crypto/JSCrypto_vs_Clipperz.test.js | |||
@@ -1,120 +1,117 @@ | |||
1 | /* | 1 | /* |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | */ | 24 | */ |
28 | 25 | ||
29 | //function logElapsedTime(aDescription, aStartTime, anEndTime) { | 26 | //function logElapsedTime(aDescription, aStartTime, anEndTime) { |
30 | //MochiKit.Logging.logDebug(aDescription + " - took " + (anEndTime - aStartTime) + "ms"); | 27 | //MochiKit.Logging.logDebug(aDescription + " - took " + (anEndTime - aStartTime) + "ms"); |
31 | //SimpleTest.ok(true, aDescription + " - took " + (anEndTime - aStartTime) + "ms"); | 28 | //SimpleTest.ok(true, aDescription + " - took " + (anEndTime - aStartTime) + "ms"); |
32 | //} | 29 | //} |
33 | 30 | ||
34 | var asciiTestString = longAsciiText; | 31 | var asciiTestString = longAsciiText; |
35 | //asciiTestString = asciiTestString + asciiTestString + asciiTestString + asciiTestString + asciiTestString + asciiTestString + asciiTestString + asciiTestString + asciiTestString + asciiTestString; | 32 | //asciiTestString = asciiTestString + asciiTestString + asciiTestString + asciiTestString + asciiTestString + asciiTestString + asciiTestString + asciiTestString + asciiTestString + asciiTestString; |
36 | //asciiTestString = asciiTestString + asciiTestString + asciiTestString + asciiTestString + asciiTestString + asciiTestString + asciiTestString + asciiTestString + asciiTestString + asciiTestString; | 33 | //asciiTestString = asciiTestString + asciiTestString + asciiTestString + asciiTestString + asciiTestString + asciiTestString + asciiTestString + asciiTestString + asciiTestString + asciiTestString; |
37 | //asciiTestString = asciiTestString + asciiTestString + asciiTestString + asciiTestString + asciiTestString + asciiTestString + asciiTestString + asciiTestString + asciiTestString + asciiTestString; | 34 | //asciiTestString = asciiTestString + asciiTestString + asciiTestString + asciiTestString + asciiTestString + asciiTestString + asciiTestString + asciiTestString + asciiTestString + asciiTestString; |
38 | //asciiTestString = asciiTestString + asciiTestString + asciiTestString + asciiTestString + asciiTestString + asciiTestString + asciiTestString + asciiTestString + asciiTestString + asciiTestString; | 35 | //asciiTestString = asciiTestString + asciiTestString + asciiTestString + asciiTestString + asciiTestString + asciiTestString + asciiTestString + asciiTestString + asciiTestString + asciiTestString; |
39 | //asciiTestString = asciiTestString + asciiTestString; | 36 | //asciiTestString = asciiTestString + asciiTestString; |
40 | //asciiTestString = asciiTestString + asciiTestString; | 37 | //asciiTestString = asciiTestString + asciiTestString; |
41 | 38 | ||
42 | var isoLatin1TestString= longIsoLatin1Text; | 39 | var isoLatin1TestString= longIsoLatin1Text; |
43 | //isoLatin1TestString = isoLatin1TestString + isoLatin1TestString + isoLatin1TestString + isoLatin1TestString + isoLatin1TestString + isoLatin1TestString + isoLatin1TestString + isoLatin1TestString + isoLatin1TestString + isoLatin1TestString; | 40 | //isoLatin1TestString = isoLatin1TestString + isoLatin1TestString + isoLatin1TestString + isoLatin1TestString + isoLatin1TestString + isoLatin1TestString + isoLatin1TestString + isoLatin1TestString + isoLatin1TestString + isoLatin1TestString; |
44 | //isoLatin1TestString = isoLatin1TestString + isoLatin1TestString + isoLatin1TestString + isoLatin1TestString + isoLatin1TestString + isoLatin1TestString + isoLatin1TestString + isoLatin1TestString + isoLatin1TestString + isoLatin1TestString; | 41 | //isoLatin1TestString = isoLatin1TestString + isoLatin1TestString + isoLatin1TestString + isoLatin1TestString + isoLatin1TestString + isoLatin1TestString + isoLatin1TestString + isoLatin1TestString + isoLatin1TestString + isoLatin1TestString; |
45 | //isoLatin1TestString = isoLatin1TestString + isoLatin1TestString + isoLatin1TestString + isoLatin1TestString + isoLatin1TestString + isoLatin1TestString + isoLatin1TestString + isoLatin1TestString + isoLatin1TestString + isoLatin1TestString; | 42 | //isoLatin1TestString = isoLatin1TestString + isoLatin1TestString + isoLatin1TestString + isoLatin1TestString + isoLatin1TestString + isoLatin1TestString + isoLatin1TestString + isoLatin1TestString + isoLatin1TestString + isoLatin1TestString; |
46 | //isoLatin1TestString = isoLatin1TestString + isoLatin1TestString; | 43 | //isoLatin1TestString = isoLatin1TestString + isoLatin1TestString; |
47 | //isoLatin1TestString = isoLatin1TestString + isoLatin1TestString; | 44 | //isoLatin1TestString = isoLatin1TestString + isoLatin1TestString; |
48 | 45 | ||
49 | var utf8TestString = longUtf8Text; | 46 | var utf8TestString = longUtf8Text; |
50 | //utf8TestString = utf8TestString + utf8TestString + utf8TestString + utf8TestString + utf8TestString + utf8TestString + utf8TestString + utf8TestString + utf8TestString + utf8TestString; | 47 | //utf8TestString = utf8TestString + utf8TestString + utf8TestString + utf8TestString + utf8TestString + utf8TestString + utf8TestString + utf8TestString + utf8TestString + utf8TestString; |
51 | //utf8TestString = utf8TestString + utf8TestString + utf8TestString + utf8TestString + utf8TestString + utf8TestString + utf8TestString + utf8TestString + utf8TestString + utf8TestString; | 48 | //utf8TestString = utf8TestString + utf8TestString + utf8TestString + utf8TestString + utf8TestString + utf8TestString + utf8TestString + utf8TestString + utf8TestString + utf8TestString; |
52 | //utf8TestString = utf8TestString + utf8TestString; | 49 | //utf8TestString = utf8TestString + utf8TestString; |
53 | //utf8TestString = utf8TestString + utf8TestString; | 50 | //utf8TestString = utf8TestString + utf8TestString; |
54 | 51 | ||
55 | var times = { | 52 | var times = { |
56 | 'Clipperz': {}, | 53 | 'Clipperz': {}, |
57 | 'JSCrypto': {} | 54 | 'JSCrypto': {} |
58 | }; | 55 | }; |
59 | 56 | ||
60 | function appendResults (aDescription, aTimer) { | 57 | function appendResults (aDescription, aTimer) { |
61 | MochiKit.DOM.appendChildNodes(MochiKit.DOM.getElement('timerTBODY'), | 58 | MochiKit.DOM.appendChildNodes(MochiKit.DOM.getElement('timerTBODY'), |
62 | MochiKit.DOM.TR(null, | 59 | MochiKit.DOM.TR(null, |
63 | MochiKit.DOM.TH({align:'left'}, aDescription), | 60 | MochiKit.DOM.TH({align:'left'}, aDescription), |
64 | MochiKit.DOM.TH(null, aTimer['ascii']['encrypt'] + ' - ' + aTimer['ascii']['decrypt'])//, | 61 | MochiKit.DOM.TH(null, aTimer['ascii']['encrypt'] + ' - ' + aTimer['ascii']['decrypt'])//, |
65 | // MochiKit.DOM.TH(null, aTimer['isoLatin1']['encrypt']+ ' - ' + aTimer['isoLatin1']['decrypt']), | 62 | // MochiKit.DOM.TH(null, aTimer['isoLatin1']['encrypt']+ ' - ' + aTimer['isoLatin1']['decrypt']), |
66 | // MochiKit.DOM.TH(null, aTimer['utf8']['encrypt'] + ' - ' + aTimer['utf8']['decrypt']) | 63 | // MochiKit.DOM.TH(null, aTimer['utf8']['encrypt'] + ' - ' + aTimer['utf8']['decrypt']) |
67 | ) | 64 | ) |
68 | ); | 65 | ); |
69 | 66 | ||
70 | } | 67 | } |
71 | 68 | ||
72 | //============================================================================= | 69 | //============================================================================= |
73 | 70 | ||
74 | function timeRegularFunction (aDescription, aString, anEncryptFunction, aDecryptFunction, aTimer, aKey) { | 71 | function timeRegularFunction (aDescription, aString, anEncryptFunction, aDecryptFunction, aTimer, aKey) { |
75 | var start; | 72 | var start; |
76 | var end; | 73 | var end; |
77 | var encryptTime; | 74 | var encryptTime; |
78 | var decryptTime; | 75 | var decryptTime; |
79 | var ciphertext; | 76 | var ciphertext; |
80 | var plaintext; | 77 | var plaintext; |
81 | 78 | ||
82 | 79 | ||
83 | start = new Date(); | 80 | start = new Date(); |
84 | ciphertext = anEncryptFunction('trustno1', aString); | 81 | ciphertext = anEncryptFunction('trustno1', aString); |
85 | end = new Date(); | 82 | end = new Date(); |
86 | encryptTime = end - start; | 83 | encryptTime = end - start; |
87 | 84 | ||
88 | start = new Date(); | 85 | start = new Date(); |
89 | plaintext = aDecryptFunction('trustno1', ciphertext); | 86 | plaintext = aDecryptFunction('trustno1', ciphertext); |
90 | end = new Date(); | 87 | end = new Date(); |
91 | decryptTime = end - start; | 88 | decryptTime = end - start; |
92 | aTimer[aKey] = { 'encrypt': encryptTime, 'decrypt': decryptTime }; | 89 | aTimer[aKey] = { 'encrypt': encryptTime, 'decrypt': decryptTime }; |
93 | SimpleTest.is(aString, plaintext, aDescription); | 90 | SimpleTest.is(aString, plaintext, aDescription); |
94 | } | 91 | } |
95 | /* | 92 | /* |
96 | function timeRegularFunction (anEncryptFunction, aDecryptFunction, aTimer) { | 93 | function timeRegularFunction (anEncryptFunction, aDecryptFunction, aTimer) { |
97 | var start; | 94 | var start; |
98 | var end; | 95 | var end; |
99 | var encryptTime; | 96 | var encryptTime; |
100 | var decryptTime; | 97 | var decryptTime; |
101 | var ciphertext; | 98 | var ciphertext; |
102 | var plaintext; | 99 | var plaintext; |
103 | 100 | ||
104 | 101 | ||
105 | start = new Date(); | 102 | start = new Date(); |
106 | ciphertext = anEncryptFunction('trustno1', asciiTestString); | 103 | ciphertext = anEncryptFunction('trustno1', asciiTestString); |
107 | end = new Date(); | 104 | end = new Date(); |
108 | encryptTime = end - start; | 105 | encryptTime = end - start; |
109 | 106 | ||
110 | start = new Date(); | 107 | start = new Date(); |
111 | plaintext = aDecryptFunction('trustno1', ciphertext); | 108 | plaintext = aDecryptFunction('trustno1', ciphertext); |
112 | end = new Date(); | 109 | end = new Date(); |
113 | decryptTime = end - start; | 110 | decryptTime = end - start; |
114 | aTimer['ascii'] = { 'encrypt': encryptTime, 'decrypt': decryptTime }; | 111 | aTimer['ascii'] = { 'encrypt': encryptTime, 'decrypt': decryptTime }; |
115 | SimpleTest.is(asciiTestString, plaintext, "Encrypt/decrypt the ASCII text"); | 112 | SimpleTest.is(asciiTestString, plaintext, "Encrypt/decrypt the ASCII text"); |
116 | 113 | ||
117 | 114 | ||
118 | start = new Date(); | 115 | start = new Date(); |
119 | ciphertext = anEncryptFunction('trustno1', isoLatin1TestString); | 116 | ciphertext = anEncryptFunction('trustno1', isoLatin1TestString); |
120 | end = new Date(); | 117 | end = new Date(); |
diff --git a/frontend/gamma/tests/tests/Clipperz/Crypto/PRNG.html b/frontend/gamma/tests/tests/Clipperz/Crypto/PRNG.html index 7ffd691..438d96f 100644 --- a/frontend/gamma/tests/tests/Clipperz/Crypto/PRNG.html +++ b/frontend/gamma/tests/tests/Clipperz/Crypto/PRNG.html | |||
@@ -1,117 +1,114 @@ | |||
1 | <!-- | 1 | <!-- |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | --> | 24 | --> |
28 | 25 | ||
29 | <html> | 26 | <html> |
30 | <head> | 27 | <head> |
31 | <script> jslog_config_enabled = true; </script> | 28 | <script> jslog_config_enabled = true; </script> |
32 | 29 | ||
33 | <script type="text/javascript" src="../../../../js/MochiKit/MochiKit.js"></script> | 30 | <script type="text/javascript" src="../../../../js/MochiKit/MochiKit.js"></script> |
34 | <script type="text/javascript" src="../../../../js/JSLog/jslog.js"></script> | 31 | <script type="text/javascript" src="../../../../js/JSLog/jslog.js"></script> |
35 | <script type="text/javascript" src="../../../SimpleTest/SimpleTest.js"></script> | 32 | <script type="text/javascript" src="../../../SimpleTest/SimpleTest.js"></script> |
36 | <link rel="stylesheet" type="text/css" href="../../../SimpleTest/test.css"> | 33 | <link rel="stylesheet" type="text/css" href="../../../SimpleTest/test.css"> |
37 | 34 | ||
38 | <script type='text/javascript' src='../../../../js/Clipperz/YUI/Utils.js'></script> | 35 | <script type='text/javascript' src='../../../../js/Clipperz/YUI/Utils.js'></script> |
39 | <script type='text/javascript' src='../../../../js/Clipperz/YUI/DomHelper.js'></script> | 36 | <script type='text/javascript' src='../../../../js/Clipperz/YUI/DomHelper.js'></script> |
40 | <script type='text/javascript' src='../../../../js/Clipperz/Base.js'></script> | 37 | <script type='text/javascript' src='../../../../js/Clipperz/Base.js'></script> |
41 | <script type='text/javascript' src='../../../../js/Clipperz/Logging.js'></script> | 38 | <script type='text/javascript' src='../../../../js/Clipperz/Logging.js'></script> |
42 | <script type='text/javascript' src='../../../../js/Clipperz/ByteArray.js'></script> | 39 | <script type='text/javascript' src='../../../../js/Clipperz/ByteArray.js'></script> |
43 | <script type='text/javascript' src='../../../../js/Clipperz/DOM.js'></script> | 40 | <script type='text/javascript' src='../../../../js/Clipperz/DOM.js'></script> |
44 | 41 | ||
45 | <!--<script type='text/javascript' src='../../../../js/Clipperz/Crypto/Statistics.js'></script>--> | 42 | <!--<script type='text/javascript' src='../../../../js/Clipperz/Crypto/Statistics.js'></script>--> |
46 | <script type='text/javascript' src='../../../../js/Clipperz/Crypto/BigInt.js'></script> | 43 | <script type='text/javascript' src='../../../../js/Clipperz/Crypto/BigInt.js'></script> |
47 | <script type='text/javascript' src='../../../../js/Clipperz/Crypto/Base.js'></script> | 44 | <script type='text/javascript' src='../../../../js/Clipperz/Crypto/Base.js'></script> |
48 | <script type='text/javascript' src='../../../../js/Clipperz/Crypto/AES.js'></script> | 45 | <script type='text/javascript' src='../../../../js/Clipperz/Crypto/AES.js'></script> |
49 | <script type='text/javascript' src='../../../../js/Clipperz/Crypto/SHA.js'></script> | 46 | <script type='text/javascript' src='../../../../js/Clipperz/Crypto/SHA.js'></script> |
50 | <script type='text/javascript' src='../../../../js/Clipperz/Crypto/PRNG.js'></script> | 47 | <script type='text/javascript' src='../../../../js/Clipperz/Crypto/PRNG.js'></script> |
51 | </head> | 48 | </head> |
52 | <body> | 49 | <body> |
53 | <pre id="test"> | 50 | <pre id="test"> |
54 | <script type="text/javascript"> | 51 | <script type="text/javascript"> |
55 | test_PRNG = function() { | 52 | test_PRNG = function() { |
56 | varrand1, rand2; | 53 | varrand1, rand2; |
57 | var i,c; | 54 | var i,c; |
58 | 55 | ||
59 | c = 10; | 56 | c = 10; |
60 | for (i=0; i<c; i++) { | 57 | for (i=0; i<c; i++) { |
61 | // jslog.debug(Clipperz.Crypto.PRNG.defaultRandomGenerator().getRandomBytes(32).toHexString()); | 58 | // jslog.debug(Clipperz.Crypto.PRNG.defaultRandomGenerator().getRandomBytes(32).toHexString()); |
62 | } | 59 | } |
63 | 60 | ||
64 | rand1 = Clipperz.Crypto.PRNG.defaultRandomGenerator().getRandomBytes(1); | 61 | rand1 = Clipperz.Crypto.PRNG.defaultRandomGenerator().getRandomBytes(1); |
65 | is(rand1.byteAtIndex(0) <= 255, true, "getRandomByte returns always a single byte"); | 62 | is(rand1.byteAtIndex(0) <= 255, true, "getRandomByte returns always a single byte"); |
66 | 63 | ||
67 | rand2 = Clipperz.Crypto.PRNG.defaultRandomGenerator().getRandomBytes(1); | 64 | rand2 = Clipperz.Crypto.PRNG.defaultRandomGenerator().getRandomBytes(1); |
68 | is(rand1.equals(rand2), false, "getRandomByte should almost always return two different values when called into sequence"); | 65 | is(rand1.equals(rand2), false, "getRandomByte should almost always return two different values when called into sequence"); |
69 | 66 | ||
70 | 67 | ||
71 | rand1 = Clipperz.Crypto.PRNG.defaultRandomGenerator().getRandomBytes(32); | 68 | rand1 = Clipperz.Crypto.PRNG.defaultRandomGenerator().getRandomBytes(32); |
72 | rand2 = Clipperz.Crypto.PRNG.defaultRandomGenerator().getRandomBytes(32); | 69 | rand2 = Clipperz.Crypto.PRNG.defaultRandomGenerator().getRandomBytes(32); |
73 | is(rand1.equals(rand2), false, "getRandomByte should almost always return two different values when called into sequence"); | 70 | is(rand1.equals(rand2), false, "getRandomByte should almost always return two different values when called into sequence"); |
74 | is(rand1.split(0,1).equals(rand2.split(0,1)), false, "getRandomByte should almost always return two different values when called into sequence"); | 71 | is(rand1.split(0,1).equals(rand2.split(0,1)), false, "getRandomByte should almost always return two different values when called into sequence"); |
75 | //is(Clipperz.Crypto.PRNG.defaultRandomGenerator().getRandomBytes(10000).toHexString(), "rand 1", "Value for random test"); | 72 | //is(Clipperz.Crypto.PRNG.defaultRandomGenerator().getRandomBytes(10000).toHexString(), "rand 1", "Value for random test"); |
76 | //is(Clipperz.Crypto.PRNG.defaultRandomGenerator().getRandomBytes(10000).toHexString(), "rand 2", "Value for random test"); | 73 | //is(Clipperz.Crypto.PRNG.defaultRandomGenerator().getRandomBytes(10000).toHexString(), "rand 2", "Value for random test"); |
77 | //is(Clipperz.Crypto.PRNG.defaultRandomGenerator().getRandomBytes(10000).toHexString(), "rand 3", "Value for random test"); | 74 | //is(Clipperz.Crypto.PRNG.defaultRandomGenerator().getRandomBytes(10000).toHexString(), "rand 3", "Value for random test"); |
78 | //is(Clipperz.Crypto.PRNG.defaultRandomGenerator().getRandomBytes(10000).toHexString(), "rand 4", "Value for random test"); | 75 | //is(Clipperz.Crypto.PRNG.defaultRandomGenerator().getRandomBytes(10000).toHexString(), "rand 4", "Value for random test"); |
79 | //is(Clipperz.Crypto.PRNG.defaultRandomGenerator().getRandomBytes(10000).toHexString(), "rand 5", "Value for random test"); | 76 | //is(Clipperz.Crypto.PRNG.defaultRandomGenerator().getRandomBytes(10000).toHexString(), "rand 5", "Value for random test"); |
80 | //is(Clipperz.Crypto.PRNG.defaultRandomGenerator().getRandomBytes(10000).toHexString(), "rand 6", "Value for random test"); | 77 | //is(Clipperz.Crypto.PRNG.defaultRandomGenerator().getRandomBytes(10000).toHexString(), "rand 6", "Value for random test"); |
81 | //is(Clipperz.Crypto.PRNG.defaultRandomGenerator().getRandomBytes(10000).toHexString(), "rand 7", "Value for random test"); | 78 | //is(Clipperz.Crypto.PRNG.defaultRandomGenerator().getRandomBytes(10000).toHexString(), "rand 7", "Value for random test"); |
82 | //is(Clipperz.Crypto.PRNG.defaultRandomGenerator().getRandomBytes(10000).toHexString(), "rand 8", "Value for random test"); | 79 | //is(Clipperz.Crypto.PRNG.defaultRandomGenerator().getRandomBytes(10000).toHexString(), "rand 8", "Value for random test"); |
83 | //is(Clipperz.Crypto.PRNG.defaultRandomGenerator().getRandomBytes(10000).toHexString(), "rand 9", "Value for random test"); | 80 | //is(Clipperz.Crypto.PRNG.defaultRandomGenerator().getRandomBytes(10000).toHexString(), "rand 9", "Value for random test"); |
84 | //is(Clipperz.Crypto.PRNG.defaultRandomGenerator().getRandomBytes(10000).toHexString(), "rand 10", "Value for random test"); | 81 | //is(Clipperz.Crypto.PRNG.defaultRandomGenerator().getRandomBytes(10000).toHexString(), "rand 10", "Value for random test"); |
85 | //is(Clipperz.Crypto.PRNG.defaultRandomGenerator().getRandomBytes(10000).toHexString(), "rand 11", "Value for random test"); | 82 | //is(Clipperz.Crypto.PRNG.defaultRandomGenerator().getRandomBytes(10000).toHexString(), "rand 11", "Value for random test"); |
86 | //is(Clipperz.Crypto.PRNG.defaultRandomGenerator().getRandomBytes(10000).toHexString(), "rand 12", "Value for random test"); | 83 | //is(Clipperz.Crypto.PRNG.defaultRandomGenerator().getRandomBytes(10000).toHexString(), "rand 12", "Value for random test"); |
87 | //is(Clipperz.Crypto.PRNG.defaultRandomGenerator().getRandomBytes(10000).toHexString(), "rand 13", "Value for random test"); | 84 | //is(Clipperz.Crypto.PRNG.defaultRandomGenerator().getRandomBytes(10000).toHexString(), "rand 13", "Value for random test"); |
88 | //is(Clipperz.Crypto.PRNG.defaultRandomGenerator().getRandomBytes(10000).toHexString(), "rand 14", "Value for random test"); | 85 | //is(Clipperz.Crypto.PRNG.defaultRandomGenerator().getRandomBytes(10000).toHexString(), "rand 14", "Value for random test"); |
89 | //jslog.debug(rand1.toHexString()); | 86 | //jslog.debug(rand1.toHexString()); |
90 | //jslog.debug(rand2.toHexString()); | 87 | //jslog.debug(rand2.toHexString()); |
91 | 88 | ||
92 | SimpleTest.finish(); | 89 | SimpleTest.finish(); |
93 | } | 90 | } |
94 | 91 | ||
95 | try { | 92 | try { |
96 | MochiKit.Signal.connect(Clipperz.Crypto.PRNG.defaultRandomGenerator(), 'readyToGenerateRandomBytes', test_PRNG); | 93 | MochiKit.Signal.connect(Clipperz.Crypto.PRNG.defaultRandomGenerator(), 'readyToGenerateRandomBytes', test_PRNG); |
97 | Clipperz.Crypto.PRNG.defaultRandomGenerator().fastEntropyAccumulationForTestingPurpose(); | 94 | Clipperz.Crypto.PRNG.defaultRandomGenerator().fastEntropyAccumulationForTestingPurpose(); |
98 | SimpleTest.waitForExplicitFinish(); | 95 | SimpleTest.waitForExplicitFinish(); |
99 | } catch (err) { | 96 | } catch (err) { |
100 | 97 | ||
101 | var s = "test suite failure!\n"; | 98 | var s = "test suite failure!\n"; |
102 | var o = {}; | 99 | var o = {}; |
103 | var k = null; | 100 | var k = null; |
104 | for (k in err) { | 101 | for (k in err) { |
105 | // ensure unique keys?! | 102 | // ensure unique keys?! |
106 | if (!o[k]) { | 103 | if (!o[k]) { |
107 | s += k + ": " + err[k] + "\n"; | 104 | s += k + ": " + err[k] + "\n"; |
108 | o[k] = err[k]; | 105 | o[k] = err[k]; |
109 | } | 106 | } |
110 | } | 107 | } |
111 | ok ( false, s ); | 108 | ok ( false, s ); |
112 | } | 109 | } |
113 | 110 | ||
114 | </script> | 111 | </script> |
115 | </pre> | 112 | </pre> |
116 | </body> | 113 | </body> |
117 | </html> | 114 | </html> |
diff --git a/frontend/gamma/tests/tests/Clipperz/Crypto/RSA.html b/frontend/gamma/tests/tests/Clipperz/Crypto/RSA.html index 468a987..f29f894 100644 --- a/frontend/gamma/tests/tests/Clipperz/Crypto/RSA.html +++ b/frontend/gamma/tests/tests/Clipperz/Crypto/RSA.html | |||
@@ -1,90 +1,87 @@ | |||
1 | <!-- | 1 | <!-- |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | --> | 24 | --> |
28 | 25 | ||
29 | <html> | 26 | <html> |
30 | <head> | 27 | <head> |
31 | <script type="text/javascript" src="../../../../js/MochiKit/MochiKit.js"></script> | 28 | <script type="text/javascript" src="../../../../js/MochiKit/MochiKit.js"></script> |
32 | <script type="text/javascript" src="../../../../js/JSLog/jslog.js"></script> | 29 | <script type="text/javascript" src="../../../../js/JSLog/jslog.js"></script> |
33 | <script type="text/javascript" src="../../../SimpleTest/SimpleTest.js"></script> | 30 | <script type="text/javascript" src="../../../SimpleTest/SimpleTest.js"></script> |
34 | <link rel="stylesheet" type="text/css" href="../../../SimpleTest/test.css"> | 31 | <link rel="stylesheet" type="text/css" href="../../../SimpleTest/test.css"> |
35 | 32 | ||
36 | <script type='text/javascript' src='../../../../js/Clipperz/Base.js'></script> | 33 | <script type='text/javascript' src='../../../../js/Clipperz/Base.js'></script> |
37 | <script type='text/javascript' src='../../../../js/Clipperz/DOM.js'></script> | 34 | <script type='text/javascript' src='../../../../js/Clipperz/DOM.js'></script> |
38 | 35 | ||
39 | <script type='text/javascript' src='../../../../js/Clipperz/Crypto/BigInt.js'></script> | 36 | <script type='text/javascript' src='../../../../js/Clipperz/Crypto/BigInt.js'></script> |
40 | <script type='text/javascript' src='../../../../js/Clipperz/Crypto/Base.js'></script> | 37 | <script type='text/javascript' src='../../../../js/Clipperz/Crypto/Base.js'></script> |
41 | <script type='text/javascript' src='../../../../js/Clipperz/Crypto/RSA.js'></script> | 38 | <script type='text/javascript' src='../../../../js/Clipperz/Crypto/RSA.js'></script> |
42 | 39 | ||
43 | </head> | 40 | </head> |
44 | <body> | 41 | <body> |
45 | <pre id="test"> | 42 | <pre id="test"> |
46 | <script type="text/javascript"> | 43 | <script type="text/javascript"> |
47 | try { | 44 | try { |
48 | varrsaPublicKey; | 45 | varrsaPublicKey; |
49 | varrandomValue; | 46 | varrandomValue; |
50 | varpublicEncryptedValue; | 47 | varpublicEncryptedValue; |
51 | var privateEncryptedValue; | 48 | var privateEncryptedValue; |
52 | 49 | ||
53 | varstartTime; | 50 | varstartTime; |
54 | varendTime; | 51 | varendTime; |
55 | 52 | ||
56 | 53 | ||
57 | startTime=new Date(); | 54 | startTime=new Date(); |
58 | rsaPublicKey = Clipperz.Crypto.RSA.generatePublicKey(512); | 55 | rsaPublicKey = Clipperz.Crypto.RSA.generatePublicKey(512); |
59 | 56 | ||
60 | endTime=new Date(); | 57 | endTime=new Date(); |
61 | is(true, true, 'Time to generate the RSA public key (size 512 bit): '+(endTime.getTime()-startTime.getTime())/1000.0); | 58 | is(true, true, 'Time to generate the RSA public key (size 512 bit): '+(endTime.getTime()-startTime.getTime())/1000.0); |
62 | 59 | ||
63 | randomValue = Clipperz.Crypto.Base.generateRandomSeed(); | 60 | randomValue = Clipperz.Crypto.Base.generateRandomSeed(); |
64 | publicEncryptedValue = Clipperz.Crypto.RSA.encryptUsingPublicKey(rsaPublicKey, randomValue); | 61 | publicEncryptedValue = Clipperz.Crypto.RSA.encryptUsingPublicKey(rsaPublicKey, randomValue); |
65 | privateEncryptedValue = Clipperz.Crypto.RSA.encryptUsingPrivateKey(rsaPublicKey, randomValue); | 62 | privateEncryptedValue = Clipperz.Crypto.RSA.encryptUsingPrivateKey(rsaPublicKey, randomValue); |
66 | 63 | ||
67 | is(publicEncryptedValue == privateEncryptedValue, false); | 64 | is(publicEncryptedValue == privateEncryptedValue, false); |
68 | is(Clipperz.Crypto.RSA.decryptUsingPrivateKey(rsaPublicKey, publicEncryptedValue), randomValue); | 65 | is(Clipperz.Crypto.RSA.decryptUsingPrivateKey(rsaPublicKey, publicEncryptedValue), randomValue); |
69 | is(Clipperz.Crypto.RSA.decryptUsingPublicKey(rsaPublicKey, privateEncryptedValue), randomValue); | 66 | is(Clipperz.Crypto.RSA.decryptUsingPublicKey(rsaPublicKey, privateEncryptedValue), randomValue); |
70 | 67 | ||
71 | //------------------------------------------------------------------------- | 68 | //------------------------------------------------------------------------- |
72 | } catch (err) { | 69 | } catch (err) { |
73 | 70 | ||
74 | var s = "test suite failure!\n"; | 71 | var s = "test suite failure!\n"; |
75 | var o = {}; | 72 | var o = {}; |
76 | var k = null; | 73 | var k = null; |
77 | for (k in err) { | 74 | for (k in err) { |
78 | // ensure unique keys?! | 75 | // ensure unique keys?! |
79 | if (!o[k]) { | 76 | if (!o[k]) { |
80 | s += k + ": " + err[k] + "\n"; | 77 | s += k + ": " + err[k] + "\n"; |
81 | o[k] = err[k]; | 78 | o[k] = err[k]; |
82 | } | 79 | } |
83 | } | 80 | } |
84 | ok ( false, s ); | 81 | ok ( false, s ); |
85 | } | 82 | } |
86 | 83 | ||
87 | </script> | 84 | </script> |
88 | </pre> | 85 | </pre> |
89 | </body> | 86 | </body> |
90 | </html> | 87 | </html> |
diff --git a/frontend/gamma/tests/tests/Clipperz/Crypto/SHA.html b/frontend/gamma/tests/tests/Clipperz/Crypto/SHA.html index 1c88213..a580491 100644 --- a/frontend/gamma/tests/tests/Clipperz/Crypto/SHA.html +++ b/frontend/gamma/tests/tests/Clipperz/Crypto/SHA.html | |||
@@ -1,120 +1,117 @@ | |||
1 | <!-- | 1 | <!-- |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | --> | 24 | --> |
28 | 25 | ||
29 | <html> | 26 | <html> |
30 | <head> | 27 | <head> |
31 | <title>Clipperz.Crypto.SHA - TEST</title> | 28 | <title>Clipperz.Crypto.SHA - TEST</title> |
32 | 29 | ||
33 | <script type="text/javascript" src="../../../../js/MochiKit/MochiKit.js"></script> | 30 | <script type="text/javascript" src="../../../../js/MochiKit/MochiKit.js"></script> |
34 | <script type="text/javascript" src="../../../SimpleTest/SimpleTest.js"></script> | 31 | <script type="text/javascript" src="../../../SimpleTest/SimpleTest.js"></script> |
35 | <link rel="stylesheet" type="text/css" href="../../../SimpleTest/test.css"> | 32 | <link rel="stylesheet" type="text/css" href="../../../SimpleTest/test.css"> |
36 | 33 | ||
37 | <script type='text/javascript' src='../../../js/JSON/json2.js'></script> | 34 | <script type='text/javascript' src='../../../js/JSON/json2.js'></script> |
38 | 35 | ||
39 | <script type='text/javascript' src='../../../../js/Clipperz/YUI/Utils.js'></script> | 36 | <script type='text/javascript' src='../../../../js/Clipperz/YUI/Utils.js'></script> |
40 | <script type='text/javascript' src='../../../../js/Clipperz/YUI/DomHelper.js'></script> | 37 | <script type='text/javascript' src='../../../../js/Clipperz/YUI/DomHelper.js'></script> |
41 | <script type='text/javascript' src='../../../../js/Clipperz/Base.js'></script> | 38 | <script type='text/javascript' src='../../../../js/Clipperz/Base.js'></script> |
42 | <script type='text/javascript' src='../../../../js/Clipperz/ByteArray.js'></script> | 39 | <script type='text/javascript' src='../../../../js/Clipperz/ByteArray.js'></script> |
43 | <script type='text/javascript' src='../../../../js/Clipperz/Logging.js'></script> | 40 | <script type='text/javascript' src='../../../../js/Clipperz/Logging.js'></script> |
44 | <script type='text/javascript' src='../../../../js/Clipperz/Async.js'></script> | 41 | <script type='text/javascript' src='../../../../js/Clipperz/Async.js'></script> |
45 | 42 | ||
46 | <script type='text/javascript' src='../../../../js/Clipperz/Crypto/SHA.js'></script> | 43 | <script type='text/javascript' src='../../../../js/Clipperz/Crypto/SHA.js'></script> |
47 | 44 | ||
48 | 45 | ||
49 | <script type="text/javascript" src="../../../SimpleTest/SimpleTest.Async.js"></script> | 46 | <script type="text/javascript" src="../../../SimpleTest/SimpleTest.Async.js"></script> |
50 | 47 | ||
51 | </head> | 48 | </head> |
52 | <body> | 49 | <body> |
53 | <pre id="test"> | 50 | <pre id="test"> |
54 | <script type="text/javascript" src="SHA.test.js"></script> | 51 | <script type="text/javascript" src="SHA.test.js"></script> |
55 | </pre> | 52 | </pre> |
56 | </body> | 53 | </body> |
57 | </html> | 54 | </html> |
58 | 55 | ||
59 | 56 | ||
60 | 57 | ||
61 | <!-- html> | 58 | <!-- html> |
62 | <head> | 59 | <head> |
63 | <script> | 60 | <script> |
64 | jslog_config_enabled = true; | 61 | jslog_config_enabled = true; |
65 | clipperz_profiling_enabled = true; | 62 | clipperz_profiling_enabled = true; |
66 | </script> | 63 | </script> |
67 | 64 | ||
68 | <script type="text/javascript" src="../../../../js/MochiKit/MochiKit.js"></script> | 65 | <script type="text/javascript" src="../../../../js/MochiKit/MochiKit.js"></script> |
69 | <script type="text/javascript" src="../../../../js/JSLog/jslog.js"></script> | 66 | <script type="text/javascript" src="../../../../js/JSLog/jslog.js"></script> |
70 | <script type="text/javascript" src="../../../SimpleTest/SimpleTest.js"></script> | 67 | <script type="text/javascript" src="../../../SimpleTest/SimpleTest.js"></script> |
71 | <link rel="stylesheet" type="text/css" href="../../../SimpleTest/test.css"> | 68 | <link rel="stylesheet" type="text/css" href="../../../SimpleTest/test.css"> |
72 | 69 | ||
73 | <script type='text/javascript' src='../../../../js/Clipperz/YUI/Utils.js'></script> | 70 | <script type='text/javascript' src='../../../../js/Clipperz/YUI/Utils.js'></script> |
74 | <script type='text/javascript' src='../../../../js/Clipperz/YUI/DomHelper.js'></script> | 71 | <script type='text/javascript' src='../../../../js/Clipperz/YUI/DomHelper.js'></script> |
75 | <script type='text/javascript' src='../../../../js/Clipperz/Base.js'></script> | 72 | <script type='text/javascript' src='../../../../js/Clipperz/Base.js'></script> |
76 | <script type='text/javascript' src='../../../../js/Clipperz/ByteArray.js'></script> | 73 | <script type='text/javascript' src='../../../../js/Clipperz/ByteArray.js'></script> |
77 | 74 | ||
78 | <script type='text/javascript' src='../../../../js/Clipperz/Crypto/SHA.js'></script> | 75 | <script type='text/javascript' src='../../../../js/Clipperz/Crypto/SHA.js'></script> |
79 | </head> | 76 | </head> |
80 | <body> | 77 | <body> |
81 | <pre id="test"> | 78 | <pre id="test"> |
82 | <script type="text/javascript"> | 79 | <script type="text/javascript"> |
83 | 80 | ||
84 | try { | 81 | try { |
85 | varbyteArray; | 82 | varbyteArray; |
86 | varhash; | 83 | varhash; |
87 | var longText; | 84 | var longText; |
88 | var startTime, endTime; | 85 | var startTime, endTime; |
89 | 86 | ||
90 | longText = "Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Donec nunc sapien, condimentum vitae, varius vel, pharetra in, augue. Mauris quam magna, pretium sit amet, accumsan id, volutpat lobortis, nibh. Fusce sagittis. Aenean justo. Curabitur euismod pede. Morbi at ante. Proin nisl leo, ultrices sed, facilisis et, nonummy sit amet, lorem. Praesent mauris tellus, pulvinar sed, nonummy vitae, rhoncus non, nunc. Proin placerat malesuada nisl. Nunc id enim. Maecenas commodo enim ac nibh. Sed condimentum, urna sit amet euismod gravida, mi urna varius odio, luctus pretium lectus justo nec felis. Ut in augue et est malesuada rhoncus. Sed vel orci. Mauris suscipit. Praesent cursus velit non turpis. Donec tristique dolor ac est. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Nulla est sapien, vulputate eget, bibendum id, pharetra nec, mauris. Aliquam faucibus tincidunt dui. Proin iaculis. Maecenas sagittis. Integer et augue. Donec vitae urna in orci aliquet commodo. Vestibulum lorem sem, suscipit ac, placerat nec, mollis in, felis. Donec laoreet odio a mauris. Integer rutrum, sapien id varius molestie, mauris odio egestas orci, non bibendum sem felis in metus. Phasellus consectetuer lectus adipiscing mauris. Ut magna tellus, euismod ac, suscipit tincidunt, ullamcorper adipiscing, massa. Etiam orci. Phasellus a urna. Cras neque quam, laoreet at, tempus eget, euismod nec, nibh. Etiam hendrerit. Aenean vel lorem. Ut ligula lacus, congue eu, lobortis sit amet, venenatis in, magna. Nullam cursus felis quis est. Sed sem est, condimentum eu, vestibulum a, mattis vel, diam. Curabitur tincidunt pede quis pede. Sed neque diam, convallis vel, luctus at, porta id, nisl. Suspendisse potenti. Sed volutpat lobortis orci. Praesent mi. In interdum. Suspendisse suscipit ipsum eget dolor. Curabitur et tellus sed velit hendrerit varius. Cras sit amet est. Donec arcu nulla, vehicula et, pretium in, placerat id, felis. Integer mollis auctor lectus. Integer ultrices elementum sapien. Nam et erat. Nam pulvinar porta tortor. Nam at risus. Quisque nulla. Integer vestibulum, lacus id bibendum laoreet, ligula mi pharetra lorem, sit amet pharetra felis mauris quis justo. Aliquam ultricies. Duis a pede eget lorem dapibus rhoncus. Aenean eu elit non libero consectetuer viverra. Maecenas velit mi, eleifend vel, malesuada vel, condimentum quis, odio. Mauris tempus augue sed turpis. Pellentesque condimentum, lacus vitae pellentesque ultricies, risus tellus posuere nisi, et dictum turpis pede nec elit. Sed eu lectus eu justo sagittis euismod. Vestibulum lobortis, urna id mollis rhoncus, orci quam euismod ligula, at malesuada lacus magna vitae massa. Phasellus mattis fermentum velit. Nulla vulputate consequat enim. Maecenas quis neque. Curabitur sagittis facilisis neque. In elementum, eros non porttitor rhoncus, libero turpis sodales odio, vitae porta tellus purus et ante. Nullam molestie sollicitudin metus. Donec a elit. Morbi ut lacus. Donec at arcu. Quisque velit diam, interdum a, lacinia at, varius et, odio. Cras neque magna, ornare id, sollicitudin id, consequat a, est. Phasellus vestibulum est at leo. Nam facilisis, nulla dapibus condimentum pellentesque, est magna viverra ligula, at sollicitudin urna augue ut sapien. Fusce justo."; | 87 | longText = "Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Donec nunc sapien, condimentum vitae, varius vel, pharetra in, augue. Mauris quam magna, pretium sit amet, accumsan id, volutpat lobortis, nibh. Fusce sagittis. Aenean justo. Curabitur euismod pede. Morbi at ante. Proin nisl leo, ultrices sed, facilisis et, nonummy sit amet, lorem. Praesent mauris tellus, pulvinar sed, nonummy vitae, rhoncus non, nunc. Proin placerat malesuada nisl. Nunc id enim. Maecenas commodo enim ac nibh. Sed condimentum, urna sit amet euismod gravida, mi urna varius odio, luctus pretium lectus justo nec felis. Ut in augue et est malesuada rhoncus. Sed vel orci. Mauris suscipit. Praesent cursus velit non turpis. Donec tristique dolor ac est. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Nulla est sapien, vulputate eget, bibendum id, pharetra nec, mauris. Aliquam faucibus tincidunt dui. Proin iaculis. Maecenas sagittis. Integer et augue. Donec vitae urna in orci aliquet commodo. Vestibulum lorem sem, suscipit ac, placerat nec, mollis in, felis. Donec laoreet odio a mauris. Integer rutrum, sapien id varius molestie, mauris odio egestas orci, non bibendum sem felis in metus. Phasellus consectetuer lectus adipiscing mauris. Ut magna tellus, euismod ac, suscipit tincidunt, ullamcorper adipiscing, massa. Etiam orci. Phasellus a urna. Cras neque quam, laoreet at, tempus eget, euismod nec, nibh. Etiam hendrerit. Aenean vel lorem. Ut ligula lacus, congue eu, lobortis sit amet, venenatis in, magna. Nullam cursus felis quis est. Sed sem est, condimentum eu, vestibulum a, mattis vel, diam. Curabitur tincidunt pede quis pede. Sed neque diam, convallis vel, luctus at, porta id, nisl. Suspendisse potenti. Sed volutpat lobortis orci. Praesent mi. In interdum. Suspendisse suscipit ipsum eget dolor. Curabitur et tellus sed velit hendrerit varius. Cras sit amet est. Donec arcu nulla, vehicula et, pretium in, placerat id, felis. Integer mollis auctor lectus. Integer ultrices elementum sapien. Nam et erat. Nam pulvinar porta tortor. Nam at risus. Quisque nulla. Integer vestibulum, lacus id bibendum laoreet, ligula mi pharetra lorem, sit amet pharetra felis mauris quis justo. Aliquam ultricies. Duis a pede eget lorem dapibus rhoncus. Aenean eu elit non libero consectetuer viverra. Maecenas velit mi, eleifend vel, malesuada vel, condimentum quis, odio. Mauris tempus augue sed turpis. Pellentesque condimentum, lacus vitae pellentesque ultricies, risus tellus posuere nisi, et dictum turpis pede nec elit. Sed eu lectus eu justo sagittis euismod. Vestibulum lobortis, urna id mollis rhoncus, orci quam euismod ligula, at malesuada lacus magna vitae massa. Phasellus mattis fermentum velit. Nulla vulputate consequat enim. Maecenas quis neque. Curabitur sagittis facilisis neque. In elementum, eros non porttitor rhoncus, libero turpis sodales odio, vitae porta tellus purus et ante. Nullam molestie sollicitudin metus. Donec a elit. Morbi ut lacus. Donec at arcu. Quisque velit diam, interdum a, lacinia at, varius et, odio. Cras neque magna, ornare id, sollicitudin id, consequat a, est. Phasellus vestibulum est at leo. Nam facilisis, nulla dapibus condimentum pellentesque, est magna viverra ligula, at sollicitudin urna augue ut sapien. Fusce justo."; |
91 | 88 | ||
92 | //------------------------------------------------------------------------- | 89 | //------------------------------------------------------------------------- |
93 | // | 90 | // |
94 | //Test of SHA-256 algorithm | 91 | //Test of SHA-256 algorithm |
95 | // | 92 | // |
96 | //------------------------------------------------------------------------- | 93 | //------------------------------------------------------------------------- |
97 | 94 | ||
98 | byteArray = new Clipperz.ByteArray(); | 95 | byteArray = new Clipperz.ByteArray(); |
99 | hash = Clipperz.Crypto.SHA.sha256(byteArray); | 96 | hash = Clipperz.Crypto.SHA.sha256(byteArray); |
100 | is(hash.toHexString(), "0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "sha256('')"); | 97 | is(hash.toHexString(), "0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "sha256('')"); |
101 | 98 | ||
102 | byteArray = new Clipperz.ByteArray("0xbd"); | 99 | byteArray = new Clipperz.ByteArray("0xbd"); |
103 | hash = Clipperz.Crypto.SHA.sha256(byteArray); | 100 | hash = Clipperz.Crypto.SHA.sha256(byteArray); |
104 | is(hash.toHexString(), "0x68325720aabd7c82f30f554b313d0570c95accbb7dc4b5aae11204c08ffe732b", "sha256('0xbd')"); | 101 | is(hash.toHexString(), "0x68325720aabd7c82f30f554b313d0570c95accbb7dc4b5aae11204c08ffe732b", "sha256('0xbd')"); |
105 | 102 | ||
106 | byteArray = new Clipperz.ByteArray("0x5fd4"); | 103 | byteArray = new Clipperz.ByteArray("0x5fd4"); |
107 | hash = Clipperz.Crypto.SHA.sha256(byteArray); | 104 | hash = Clipperz.Crypto.SHA.sha256(byteArray); |
108 | is(hash.toHexString(), "0x7c4fbf484498d21b487b9d61de8914b2eadaf2698712936d47c3ada2558f6788", "sha256('0x5fd4')"); | 105 | is(hash.toHexString(), "0x7c4fbf484498d21b487b9d61de8914b2eadaf2698712936d47c3ada2558f6788", "sha256('0x5fd4')"); |
109 | 106 | ||
110 | byteArray = new Clipperz.ByteArray("0xc98c8e55"); | 107 | byteArray = new Clipperz.ByteArray("0xc98c8e55"); |
111 | hash = Clipperz.Crypto.SHA.sha256(byteArray); | 108 | hash = Clipperz.Crypto.SHA.sha256(byteArray); |
112 | is(hash.toHexString(), "0x7abc22c0ae5af26ce93dbb94433a0e0b2e119d014f8e7f65bd56c61ccccd9504", "sha256('0xc98c8e55')"); | 109 | is(hash.toHexString(), "0x7abc22c0ae5af26ce93dbb94433a0e0b2e119d014f8e7f65bd56c61ccccd9504", "sha256('0xc98c8e55')"); |
113 | 110 | ||
114 | byteArray = new Clipperz.ByteArray("0x0df1cd526b5a4edd"); | 111 | byteArray = new Clipperz.ByteArray("0x0df1cd526b5a4edd"); |
115 | hash = Clipperz.Crypto.SHA.sha256(byteArray); | 112 | hash = Clipperz.Crypto.SHA.sha256(byteArray); |
116 | is(hash.toHexString(), "0x47f527210d6e8f940b5082fec01b7305908fa2b49ea3ae597c19a3986097153c", "sha256('0x0df1cd526b5a4edd')"); | 113 | is(hash.toHexString(), "0x47f527210d6e8f940b5082fec01b7305908fa2b49ea3ae597c19a3986097153c", "sha256('0x0df1cd526b5a4edd')"); |
117 | 114 | ||
118 | byteArray = new Clipperz.ByteArray("0xfdf4700984ee11b70af1880d0e0fefd4"); | 115 | byteArray = new Clipperz.ByteArray("0xfdf4700984ee11b70af1880d0e0fefd4"); |
119 | hash = Clipperz.Crypto.SHA.sha256(byteArray); | 116 | hash = Clipperz.Crypto.SHA.sha256(byteArray); |
120 | is(hash.toHexString(), | 117 | is(hash.toHexString(), |
diff --git a/frontend/gamma/tests/tests/Clipperz/Crypto/SHA.test.js b/frontend/gamma/tests/tests/Clipperz/Crypto/SHA.test.js index c9f1f3b..2864aaf 100644 --- a/frontend/gamma/tests/tests/Clipperz/Crypto/SHA.test.js +++ b/frontend/gamma/tests/tests/Clipperz/Crypto/SHA.test.js | |||
@@ -1,84 +1,81 @@ | |||
1 | /* | 1 | /* |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | */ | 24 | */ |
28 | 25 | ||
29 | var testSHA = function (aValue, anExpectedResult) { | 26 | var testSHA = function (aValue, anExpectedResult) { |
30 | var byteArrayValue; | 27 | var byteArrayValue; |
31 | 28 | ||
32 | byteArrayValue = new Clipperz.ByteArray(aValue); | 29 | byteArrayValue = new Clipperz.ByteArray(aValue); |
33 | hash = Clipperz.Crypto.SHA.sha256(byteArrayValue); | 30 | hash = Clipperz.Crypto.SHA.sha256(byteArrayValue); |
34 | is(hash.toHexString(), anExpectedResult, "sha256(' " + byteArrayValue.toHexString() + "')"); | 31 | is(hash.toHexString(), anExpectedResult, "sha256(' " + byteArrayValue.toHexString() + "')"); |
35 | 32 | ||
36 | } | 33 | } |
37 | 34 | ||
38 | 35 | ||
39 | var tests = { | 36 | var tests = { |
40 | 37 | ||
41 | 'basic_tests': function (someTestArgs) { | 38 | 'basic_tests': function (someTestArgs) { |
42 | testSHA('', '0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855'); | 39 | testSHA('', '0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855'); |
43 | testSHA('0xbd', '0x68325720aabd7c82f30f554b313d0570c95accbb7dc4b5aae11204c08ffe732b'); | 40 | testSHA('0xbd', '0x68325720aabd7c82f30f554b313d0570c95accbb7dc4b5aae11204c08ffe732b'); |
44 | testSHA('0x5fd4', '0x7c4fbf484498d21b487b9d61de8914b2eadaf2698712936d47c3ada2558f6788'); | 41 | testSHA('0x5fd4', '0x7c4fbf484498d21b487b9d61de8914b2eadaf2698712936d47c3ada2558f6788'); |
45 | testSHA('0xc98c8e55', '0x7abc22c0ae5af26ce93dbb94433a0e0b2e119d014f8e7f65bd56c61ccccd9504'); | 42 | testSHA('0xc98c8e55', '0x7abc22c0ae5af26ce93dbb94433a0e0b2e119d014f8e7f65bd56c61ccccd9504'); |
46 | testSHA('0x0df1cd526b5a4edd', '0x47f527210d6e8f940b5082fec01b7305908fa2b49ea3ae597c19a3986097153c'); | 43 | testSHA('0x0df1cd526b5a4edd', '0x47f527210d6e8f940b5082fec01b7305908fa2b49ea3ae597c19a3986097153c'); |
47 | testSHA('0xfdf4700984ee11b70af1880d0e0fefd4', '0xb01ae16eed3b4a770f127b98469ba26fe3d8e9f59d8a2983214afe6cff0e6b6c'); | 44 | testSHA('0xfdf4700984ee11b70af1880d0e0fefd4', '0xb01ae16eed3b4a770f127b98469ba26fe3d8e9f59d8a2983214afe6cff0e6b6c'); |
48 | testSHA('0x8cf53d90077df9a043bf8d10b470b144784411c93a4d504556834dae3ea4a5bb', '0x56059e8cb3c2978b198208bf5ca1e1ea5659b737a506324b7cec75b5ebaf057d'); | 45 | testSHA('0x8cf53d90077df9a043bf8d10b470b144784411c93a4d504556834dae3ea4a5bb', '0x56059e8cb3c2978b198208bf5ca1e1ea5659b737a506324b7cec75b5ebaf057d'); |
49 | testSHA('0xeebcf5cd6b12c90db64ff71a0e08ccd956e170a50dad769480d6b1fb3eff4934cde90f9e9b930ee637a66285c10f4e8a', '0xc117b9dce689c399ec99008788cd5d24d8396fab7d96315c4f3fe6d56da63bb3'); | 46 | testSHA('0xeebcf5cd6b12c90db64ff71a0e08ccd956e170a50dad769480d6b1fb3eff4934cde90f9e9b930ee637a66285c10f4e8a', '0xc117b9dce689c399ec99008788cd5d24d8396fab7d96315c4f3fe6d56da63bb3'); |
50 | testSHA('0x3592ecfd1eac618fd390e7a9c24b656532509367c21a0eac1212ac83c0b20cd896eb72b801c4d212c5452bbbf09317b50c5c9fb1997553d2bbc29bb42f5748ad', '0x105a60865830ac3a371d3843324d4bb5fa8ec0e02ddaa389ad8da4f10215c454'); | 47 | testSHA('0x3592ecfd1eac618fd390e7a9c24b656532509367c21a0eac1212ac83c0b20cd896eb72b801c4d212c5452bbbf09317b50c5c9fb1997553d2bbc29bb42f5748ad', '0x105a60865830ac3a371d3843324d4bb5fa8ec0e02ddaa389ad8da4f10215c454'); |
51 | 48 | ||
52 | }, | 49 | }, |
53 | 50 | ||
54 | //------------------------------------------------------------------------- | 51 | //------------------------------------------------------------------------- |
55 | 52 | ||
56 | 'aldo_cortesi_tests': function (someTestArgs) { | 53 | 'aldo_cortesi_tests': function (someTestArgs) { |
57 | testSHA('aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa','0xa3f01b6939256127582ac8ae9fb47a382a244680806a3f613a118851c1ca1d47'); | 54 | testSHA('aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa','0xa3f01b6939256127582ac8ae9fb47a382a244680806a3f613a118851c1ca1d47'); |
58 | testSHA('aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa','0xb35439a4ac6f0948b6d6f9e3c6af0f5f590ce20f1bde7090ef7970686ec6738a'); | 55 | testSHA('aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa','0xb35439a4ac6f0948b6d6f9e3c6af0f5f590ce20f1bde7090ef7970686ec6738a'); |
59 | testSHA('0x79', '0xa1fce4363854ff888cff4b8e7875d600c2682390412a8cf79b37d0b11148b0fa'); | 56 | testSHA('0x79', '0xa1fce4363854ff888cff4b8e7875d600c2682390412a8cf79b37d0b11148b0fa'); |
60 | testSHA('0x80', '0x76be8b528d0075f7aae98d6fa57a6d3c83ae480a8469e668d7b0af968995ac71'); | 57 | testSHA('0x80', '0x76be8b528d0075f7aae98d6fa57a6d3c83ae480a8469e668d7b0af968995ac71'); |
61 | }, | 58 | }, |
62 | 59 | ||
63 | //------------------------------------------------------------------------- | 60 | //------------------------------------------------------------------------- |
64 | 61 | ||
65 | 'longTextPerformance_test': function (someTestArgs) { | 62 | 'longTextPerformance_test': function (someTestArgs) { |
66 | var longText; | 63 | var longText; |
67 | var startTime; | 64 | var startTime; |
68 | var endTime; | 65 | var endTime; |
69 | 66 | ||
70 | longText = "Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Donec nunc sapien, condimentum vitae, varius vel, pharetra in, augue. Mauris quam magna, pretium sit amet, accumsan id, volutpat lobortis, nibh. Fusce sagittis. Aenean justo. Curabitur euismod pede. Morbi at ante. Proin nisl leo, ultrices sed, facilisis et, nonummy sit amet, lorem. Praesent mauris tellus, pulvinar sed, nonummy vitae, rhoncus non, nunc. Proin placerat malesuada nisl. Nunc id enim. Maecenas commodo enim ac nibh. Sed condimentum, urna sit amet euismod gravida, mi urna varius odio, luctus pretium lectus justo nec felis. Ut in augue et est malesuada rhoncus. Sed vel orci. Mauris suscipit. Praesent cursus velit non turpis. Donec tristique dolor ac est. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Nulla est sapien, vulputate eget, bibendum id, pharetra nec, mauris. Aliquam faucibus tincidunt dui. Proin iaculis. Maecenas sagittis. Integer et augue. Donec vitae urna in orci aliquet commodo. Vestibulum lorem sem, suscipit ac, placerat nec, mollis in, felis. Donec laoreet odio a mauris. Integer rutrum, sapien id varius molestie, mauris odio egestas orci, non bibendum sem felis in metus. Phasellus consectetuer lectus adipiscing mauris. Ut magna tellus, euismod ac, suscipit tincidunt, ullamcorper adipiscing, massa. Etiam orci. Phasellus a urna. Cras neque quam, laoreet at, tempus eget, euismod nec, nibh. Etiam hendrerit. Aenean vel lorem. Ut ligula lacus, congue eu, lobortis sit amet, venenatis in, magna. Nullam cursus felis quis est. Sed sem est, condimentum eu, vestibulum a, mattis vel, diam. Curabitur tincidunt pede quis pede. Sed neque diam, convallis vel, luctus at, porta id, nisl. Suspendisse potenti. Sed volutpat lobortis orci. Praesent mi. In interdum. Suspendisse suscipit ipsum eget dolor. Curabitur et tellus sed velit hendrerit varius. Cras sit amet est. Donec arcu nulla, vehicula et, pretium in, placerat id, felis. Integer mollis auctor lectus. Integer ultrices elementum sapien. Nam et erat. Nam pulvinar porta tortor. Nam at risus. Quisque nulla. Integer vestibulum, lacus id bibendum laoreet, ligula mi pharetra lorem, sit amet pharetra felis mauris quis justo. Aliquam ultricies. Duis a pede eget lorem dapibus rhoncus. Aenean eu elit non libero consectetuer viverra. Maecenas velit mi, eleifend vel, malesuada vel, condimentum quis, odio. Mauris tempus augue sed turpis. Pellentesque condimentum, lacus vitae pellentesque ultricies, risus tellus posuere nisi, et dictum turpis pede nec elit. Sed eu lectus eu justo sagittis euismod. Vestibulum lobortis, urna id mollis rhoncus, orci quam euismod ligula, at malesuada lacus magna vitae massa. Phasellus mattis fermentum velit. Nulla vulputate consequat enim. Maecenas quis neque. Curabitur sagittis facilisis neque. In elementum, eros non porttitor rhoncus, libero turpis sodales odio, vitae porta tellus purus et ante. Nullam molestie sollicitudin metus. Donec a elit. Morbi ut lacus. Donec at arcu. Quisque velit diam, interdum a, lacinia at, varius et, odio. Cras neque magna, ornare id, sollicitudin id, consequat a, est. Phasellus vestibulum est at leo. Nam facilisis, nulla dapibus condimentum pellentesque, est magna viverra ligula, at sollicitudin urna augue ut sapien. Fusce justo."; | 67 | longText = "Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Donec nunc sapien, condimentum vitae, varius vel, pharetra in, augue. Mauris quam magna, pretium sit amet, accumsan id, volutpat lobortis, nibh. Fusce sagittis. Aenean justo. Curabitur euismod pede. Morbi at ante. Proin nisl leo, ultrices sed, facilisis et, nonummy sit amet, lorem. Praesent mauris tellus, pulvinar sed, nonummy vitae, rhoncus non, nunc. Proin placerat malesuada nisl. Nunc id enim. Maecenas commodo enim ac nibh. Sed condimentum, urna sit amet euismod gravida, mi urna varius odio, luctus pretium lectus justo nec felis. Ut in augue et est malesuada rhoncus. Sed vel orci. Mauris suscipit. Praesent cursus velit non turpis. Donec tristique dolor ac est. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Nulla est sapien, vulputate eget, bibendum id, pharetra nec, mauris. Aliquam faucibus tincidunt dui. Proin iaculis. Maecenas sagittis. Integer et augue. Donec vitae urna in orci aliquet commodo. Vestibulum lorem sem, suscipit ac, placerat nec, mollis in, felis. Donec laoreet odio a mauris. Integer rutrum, sapien id varius molestie, mauris odio egestas orci, non bibendum sem felis in metus. Phasellus consectetuer lectus adipiscing mauris. Ut magna tellus, euismod ac, suscipit tincidunt, ullamcorper adipiscing, massa. Etiam orci. Phasellus a urna. Cras neque quam, laoreet at, tempus eget, euismod nec, nibh. Etiam hendrerit. Aenean vel lorem. Ut ligula lacus, congue eu, lobortis sit amet, venenatis in, magna. Nullam cursus felis quis est. Sed sem est, condimentum eu, vestibulum a, mattis vel, diam. Curabitur tincidunt pede quis pede. Sed neque diam, convallis vel, luctus at, porta id, nisl. Suspendisse potenti. Sed volutpat lobortis orci. Praesent mi. In interdum. Suspendisse suscipit ipsum eget dolor. Curabitur et tellus sed velit hendrerit varius. Cras sit amet est. Donec arcu nulla, vehicula et, pretium in, placerat id, felis. Integer mollis auctor lectus. Integer ultrices elementum sapien. Nam et erat. Nam pulvinar porta tortor. Nam at risus. Quisque nulla. Integer vestibulum, lacus id bibendum laoreet, ligula mi pharetra lorem, sit amet pharetra felis mauris quis justo. Aliquam ultricies. Duis a pede eget lorem dapibus rhoncus. Aenean eu elit non libero consectetuer viverra. Maecenas velit mi, eleifend vel, malesuada vel, condimentum quis, odio. Mauris tempus augue sed turpis. Pellentesque condimentum, lacus vitae pellentesque ultricies, risus tellus posuere nisi, et dictum turpis pede nec elit. Sed eu lectus eu justo sagittis euismod. Vestibulum lobortis, urna id mollis rhoncus, orci quam euismod ligula, at malesuada lacus magna vitae massa. Phasellus mattis fermentum velit. Nulla vulputate consequat enim. Maecenas quis neque. Curabitur sagittis facilisis neque. In elementum, eros non porttitor rhoncus, libero turpis sodales odio, vitae porta tellus purus et ante. Nullam molestie sollicitudin metus. Donec a elit. Morbi ut lacus. Donec at arcu. Quisque velit diam, interdum a, lacinia at, varius et, odio. Cras neque magna, ornare id, sollicitudin id, consequat a, est. Phasellus vestibulum est at leo. Nam facilisis, nulla dapibus condimentum pellentesque, est magna viverra ligula, at sollicitudin urna augue ut sapien. Fusce justo."; |
71 | startTime = new Date(); | 68 | startTime = new Date(); |
72 | testSHA(longText, '0xf6fac13c06784e0fbc61a3d25c41c9984840a8b617a2beb57cf6fa3e5e4a8949'); | 69 | testSHA(longText, '0xf6fac13c06784e0fbc61a3d25c41c9984840a8b617a2beb57cf6fa3e5e4a8949'); |
73 | endTime = new Date(); | 70 | endTime = new Date(); |
74 | 71 | ||
75 | is((endTime - startTime) < 100, true, "Long text hash performance (" + (endTime - startTime) + ")"); | 72 | is((endTime - startTime) < 100, true, "Long text hash performance (" + (endTime - startTime) + ")"); |
76 | }, | 73 | }, |
77 | 74 | ||
78 | //------------------------------------------------------------------------- | 75 | //------------------------------------------------------------------------- |
79 | 'syntaxFix': MochiKit.Base.noop | 76 | 'syntaxFix': MochiKit.Base.noop |
80 | } | 77 | } |
81 | 78 | ||
82 | //============================================================================= | 79 | //============================================================================= |
83 | 80 | ||
84 | SimpleTest.runDeferredTests("Clipperz.Crypto.SHA", tests, {trace:false}); | 81 | SimpleTest.runDeferredTests("Clipperz.Crypto.SHA", tests, {trace:false}); |
diff --git a/frontend/gamma/tests/tests/Clipperz/Crypto/SRP.html b/frontend/gamma/tests/tests/Clipperz/Crypto/SRP.html index 63278c4..d0ee153 100644 --- a/frontend/gamma/tests/tests/Clipperz/Crypto/SRP.html +++ b/frontend/gamma/tests/tests/Clipperz/Crypto/SRP.html | |||
@@ -1,120 +1,117 @@ | |||
1 | <!-- | 1 | <!-- |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | --> | 24 | --> |
28 | 25 | ||
29 | <html> | 26 | <html> |
30 | <head> | 27 | <head> |
31 | <script type="text/javascript" src="../../../../js/MochiKit/MochiKit.js"></script> | 28 | <script type="text/javascript" src="../../../../js/MochiKit/MochiKit.js"></script> |
32 | <script type="text/javascript" src="../../../../js/JSLog/jslog.js"></script> | 29 | <script type="text/javascript" src="../../../../js/JSLog/jslog.js"></script> |
33 | <script type="text/javascript" src="../../../SimpleTest/SimpleTest.js"></script> | 30 | <script type="text/javascript" src="../../../SimpleTest/SimpleTest.js"></script> |
34 | <link rel="stylesheet" type="text/css" href="../../../SimpleTest/test.css"> | 31 | <link rel="stylesheet" type="text/css" href="../../../SimpleTest/test.css"> |
35 | 32 | ||
36 | <script type='text/javascript' src='../../../../js/Clipperz/YUI/Utils.js'></script> | 33 | <script type='text/javascript' src='../../../../js/Clipperz/YUI/Utils.js'></script> |
37 | <script type='text/javascript' src='../../../../js/Clipperz/YUI/DomHelper.js'></script> | 34 | <script type='text/javascript' src='../../../../js/Clipperz/YUI/DomHelper.js'></script> |
38 | <script type='text/javascript' src='../../../../js/Clipperz/Base.js'></script> | 35 | <script type='text/javascript' src='../../../../js/Clipperz/Base.js'></script> |
39 | <script type='text/javascript' src='../../../../js/Clipperz/ByteArray.js'></script> | 36 | <script type='text/javascript' src='../../../../js/Clipperz/ByteArray.js'></script> |
40 | 37 | ||
41 | <script type='text/javascript' src='../../../../js/Clipperz/Crypto/BigInt.js'></script> | 38 | <script type='text/javascript' src='../../../../js/Clipperz/Crypto/BigInt.js'></script> |
42 | <script type='text/javascript' src='../../../../js/Clipperz/Crypto/Base.js'></script> | 39 | <script type='text/javascript' src='../../../../js/Clipperz/Crypto/Base.js'></script> |
43 | <script type='text/javascript' src='../../../../js/Clipperz/Crypto/SHA.js'></script> | 40 | <script type='text/javascript' src='../../../../js/Clipperz/Crypto/SHA.js'></script> |
44 | <script type='text/javascript' src='../../../../js/Clipperz/Crypto/AES.js'></script> | 41 | <script type='text/javascript' src='../../../../js/Clipperz/Crypto/AES.js'></script> |
45 | <script type='text/javascript' src='../../../../js/Clipperz/Crypto/PRNG.js'></script> | 42 | <script type='text/javascript' src='../../../../js/Clipperz/Crypto/PRNG.js'></script> |
46 | <script type='text/javascript' src='../../../../js/Clipperz/Crypto/SRP.js'></script> | 43 | <script type='text/javascript' src='../../../../js/Clipperz/Crypto/SRP.js'></script> |
47 | </head> | 44 | </head> |
48 | <body> | 45 | <body> |
49 | <pre id="test"> | 46 | <pre id="test"> |
50 | <script type="text/javascript"> | 47 | <script type="text/javascript"> |
51 | hashString = function(aValue) { | 48 | hashString = function(aValue) { |
52 | return Clipperz.Crypto.SHA.sha256(new Clipperz.ByteArray(aValue)).toHexString().substring(2) | 49 | return Clipperz.Crypto.SHA.sha256(new Clipperz.ByteArray(aValue)).toHexString().substring(2) |
53 | } | 50 | } |
54 | try { | 51 | try { |
55 | varusername; | 52 | varusername; |
56 | varpassphrase; | 53 | varpassphrase; |
57 | 54 | ||
58 | var C; | 55 | var C; |
59 | var P; | 56 | var P; |
60 | var encryptedText_1; | 57 | var encryptedText_1; |
61 | var encryptedText_2; | 58 | var encryptedText_2; |
62 | varsalt; | 59 | varsalt; |
63 | varx; | 60 | varx; |
64 | var v; | 61 | var v; |
65 | var v1; | 62 | var v1; |
66 | 63 | ||
67 | username = "giulio.cesare"; | 64 | username = "giulio.cesare"; |
68 | passphrase = "trustno1"; | 65 | passphrase = "trustno1"; |
69 | 66 | ||
70 | C = hashString(username); | 67 | C = hashString(username); |
71 | is (C, "bde3c7b5fdcd9d6ce72782ca1ae912fc4397d668fcb3a73a04e5d47852670c4a", "C"); | 68 | is (C, "bde3c7b5fdcd9d6ce72782ca1ae912fc4397d668fcb3a73a04e5d47852670c4a", "C"); |
72 | 69 | ||
73 | P = hashString(passphrase + username); | 70 | P = hashString(passphrase + username); |
74 | is (P, "d79f5c5a04e91e1c85fb64cb6ee9481cb52c181047f69da02cd6c3ce6d058a76", "P"); | 71 | is (P, "d79f5c5a04e91e1c85fb64cb6ee9481cb52c181047f69da02cd6c3ce6d058a76", "P"); |
75 | 72 | ||
76 | salt = "cf1fa93393ade60318b8276f1f39420098419445005a7dc9117975fe1f8d9988"; | 73 | salt = "cf1fa93393ade60318b8276f1f39420098419445005a7dc9117975fe1f8d9988"; |
77 | 74 | ||
78 | x = hashString(salt + P); | 75 | x = hashString(salt + P); |
79 | is(x, "21fe88a158e420aade86e00b5eb12a4c19bf15482fa34c542c90b1afdbd5b5fd", "x"); | 76 | is(x, "21fe88a158e420aade86e00b5eb12a4c19bf15482fa34c542c90b1afdbd5b5fd", "x"); |
80 | 77 | ||
81 | v = Clipperz.Crypto.SRP.g().powerModule(new Clipperz.Crypto.BigInt(x, 16), Clipperz.Crypto.SRP.n()); | 78 | v = Clipperz.Crypto.SRP.g().powerModule(new Clipperz.Crypto.BigInt(x, 16), Clipperz.Crypto.SRP.n()); |
82 | is(v.asString(10), "33816467430011076413789931449607305355248467973000153409872503376381719918118", "v"); | 79 | is(v.asString(10), "33816467430011076413789931449607305355248467973000153409872503376381719918118", "v"); |
83 | is(v.asString(16), "4ac37139dbf32ebabd2c43f91dd085066d3c457d059efd5902d32ed247fcb626", "v (base 16)"); | 80 | is(v.asString(16), "4ac37139dbf32ebabd2c43f91dd085066d3c457d059efd5902d32ed247fcb626", "v (base 16)"); |
84 | 81 | ||
85 | //encryptedText_1 = Clipperz.Crypto.Base.encryptUsingSecretKey(passphrase, username); | 82 | //encryptedText_1 = Clipperz.Crypto.Base.encryptUsingSecretKey(passphrase, username); |
86 | //encryptedText_2 = Clipperz.Crypto.Base.encryptUsingSecretKey(passphrase, username); | 83 | //encryptedText_2 = Clipperz.Crypto.Base.encryptUsingSecretKey(passphrase, username); |
87 | //is (encryptedText_1 != encryptedText_2, true, "Two round of encryption (with random padding bits) should NOT produce the same result"); | 84 | //is (encryptedText_1 != encryptedText_2, true, "Two round of encryption (with random padding bits) should NOT produce the same result"); |
88 | 85 | ||
89 | //------------------------------------------------------------------------- | 86 | //------------------------------------------------------------------------- |
90 | 87 | ||
91 | username = "giulio.cesare.debug"; | 88 | username = "giulio.cesare.debug"; |
92 | passphrase = "trustno1"; | 89 | passphrase = "trustno1"; |
93 | 90 | ||
94 | C = hashString(username); | 91 | C = hashString(username); |
95 | is (C, "fa1af609123b97a10d676158ed538d4657a89ac33a102b22bd9a66712039e208", "C"); | 92 | is (C, "fa1af609123b97a10d676158ed538d4657a89ac33a102b22bd9a66712039e208", "C"); |
96 | 93 | ||
97 | P = hashString(passphrase + username); | 94 | P = hashString(passphrase + username); |
98 | is (P, "e1bfba03dd626b12f29458a6ad63fb2c01b4765548504e1e2f6b1503c82e4253", "P"); | 95 | is (P, "e1bfba03dd626b12f29458a6ad63fb2c01b4765548504e1e2f6b1503c82e4253", "P"); |
99 | 96 | ||
100 | salt = "cf1fa93393ade60318b8276f1f39420098419445005a7dc9117975fe1f8d9988"; | 97 | salt = "cf1fa93393ade60318b8276f1f39420098419445005a7dc9117975fe1f8d9988"; |
101 | 98 | ||
102 | x = hashString(salt + P); | 99 | x = hashString(salt + P); |
103 | is(x, "93d4af3cdcd2447a745d309826dff3161feed4b15f32db8e909ff032a2bc8fb8", "x"); | 100 | is(x, "93d4af3cdcd2447a745d309826dff3161feed4b15f32db8e909ff032a2bc8fb8", "x"); |
104 | 101 | ||
105 | v = Clipperz.Crypto.SRP.g().powerModule(new Clipperz.Crypto.BigInt(x, 16), Clipperz.Crypto.SRP.n()); | 102 | v = Clipperz.Crypto.SRP.g().powerModule(new Clipperz.Crypto.BigInt(x, 16), Clipperz.Crypto.SRP.n()); |
106 | is(v.asString(10), "115049747015252903452664067168789229427785288458366249918596663144588656606556", "v"); | 103 | is(v.asString(10), "115049747015252903452664067168789229427785288458366249918596663144588656606556", "v"); |
107 | 104 | ||
108 | //encryptedText_1 = Clipperz.Crypto.Base.encryptUsingSecretKey(passphrase, username); | 105 | //encryptedText_1 = Clipperz.Crypto.Base.encryptUsingSecretKey(passphrase, username); |
109 | //encryptedText_2 = Clipperz.Crypto.Base.encryptUsingSecretKey(passphrase, username); | 106 | //encryptedText_2 = Clipperz.Crypto.Base.encryptUsingSecretKey(passphrase, username); |
110 | //is (encryptedText_1 != encryptedText_2, true, "Two round of encryption (with random padding bits) should NOT produce the same result"); | 107 | //is (encryptedText_1 != encryptedText_2, true, "Two round of encryption (with random padding bits) should NOT produce the same result"); |
111 | 108 | ||
112 | //------------------------------------------------------------------------- | 109 | //------------------------------------------------------------------------- |
113 | 110 | ||
114 | var srpConnection; | 111 | var srpConnection; |
115 | var C, P, salt; | 112 | var C, P, salt; |
116 | 113 | ||
117 | C = "da8602c2f847306f4eb9acdaad925277d1fad1408f173f128a078aea15e60b1e"; | 114 | C = "da8602c2f847306f4eb9acdaad925277d1fad1408f173f128a078aea15e60b1e"; |
118 | P = "77643559beca49dd21c1c31db10bb0a9009662cb504413dc3fa3b7303c7e02ba"; | 115 | P = "77643559beca49dd21c1c31db10bb0a9009662cb504413dc3fa3b7303c7e02ba"; |
119 | salt ="000108cbbacda1f03ea9360301045434ec7d82ba150936df08a229cbb4832ce1"; | 116 | salt ="000108cbbacda1f03ea9360301045434ec7d82ba150936df08a229cbb4832ce1"; |
120 | 117 | ||
diff --git a/frontend/gamma/tests/tests/Clipperz/Crypto/Usage.html b/frontend/gamma/tests/tests/Clipperz/Crypto/Usage.html index 63f7610..8920915 100644 --- a/frontend/gamma/tests/tests/Clipperz/Crypto/Usage.html +++ b/frontend/gamma/tests/tests/Clipperz/Crypto/Usage.html | |||
@@ -1,120 +1,117 @@ | |||
1 | <!-- | 1 | <!-- |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | --> | 24 | --> |
28 | 25 | ||
29 | <html> | 26 | <html> |
30 | <head> | 27 | <head> |
31 | <title>Clipperz.Crypto.Usage - TEST</title> | 28 | <title>Clipperz.Crypto.Usage - TEST</title> |
32 | 29 | ||
33 | <script type="text/javascript" src="../../../../js/MochiKit/MochiKit.js"></script> | 30 | <script type="text/javascript" src="../../../../js/MochiKit/MochiKit.js"></script> |
34 | <script type="text/javascript" src="../../../../js/JSLog/jslog.js"></script> | 31 | <script type="text/javascript" src="../../../../js/JSLog/jslog.js"></script> |
35 | <script type="text/javascript" src="../../../SimpleTest/SimpleTest.js"></script> | 32 | <script type="text/javascript" src="../../../SimpleTest/SimpleTest.js"></script> |
36 | <link rel="stylesheet" type="text/css" href="../../../SimpleTest/test.css"> | 33 | <link rel="stylesheet" type="text/css" href="../../../SimpleTest/test.css"> |
37 | 34 | ||
38 | <script type='text/javascript' src='../../../../js/JSON/json2.js'></script> | 35 | <script type='text/javascript' src='../../../../js/JSON/json2.js'></script> |
39 | 36 | ||
40 | <script type='text/javascript' src='../../../../js/Clipperz/YUI/Utils.js'></script> | 37 | <script type='text/javascript' src='../../../../js/Clipperz/YUI/Utils.js'></script> |
41 | <script type='text/javascript' src='../../../../js/Clipperz/YUI/DomHelper.js'></script> | 38 | <script type='text/javascript' src='../../../../js/Clipperz/YUI/DomHelper.js'></script> |
42 | <script type='text/javascript' src='../../../../js/Clipperz/Base.js'></script> | 39 | <script type='text/javascript' src='../../../../js/Clipperz/Base.js'></script> |
43 | <script type='text/javascript' src='../../../../js/Clipperz/Logging.js'></script> | 40 | <script type='text/javascript' src='../../../../js/Clipperz/Logging.js'></script> |
44 | <script type='text/javascript' src='../../../../js/Clipperz/ByteArray.js'></script> | 41 | <script type='text/javascript' src='../../../../js/Clipperz/ByteArray.js'></script> |
45 | 42 | ||
46 | <script type='text/javascript' src='../../../../js/Clipperz/Crypto/SHA.js'></script> | 43 | <script type='text/javascript' src='../../../../js/Clipperz/Crypto/SHA.js'></script> |
47 | <script type='text/javascript' src='../../../../js/Clipperz/Crypto/AES.js'></script> | 44 | <script type='text/javascript' src='../../../../js/Clipperz/Crypto/AES.js'></script> |
48 | <script type='text/javascript' src='../../../../js/Clipperz/Crypto/PRNG.js'></script> | 45 | <script type='text/javascript' src='../../../../js/Clipperz/Crypto/PRNG.js'></script> |
49 | 46 | ||
50 | </head> | 47 | </head> |
51 | <body> | 48 | <body> |
52 | <pre id="test"> | 49 | <pre id="test"> |
53 | <script type="text/javascript"> | 50 | <script type="text/javascript"> |
54 | Clipperz.Crypto.PRNG.defaultRandomGenerator().fastEntropyAccumulationForTestingPurpose(); | 51 | Clipperz.Crypto.PRNG.defaultRandomGenerator().fastEntropyAccumulationForTestingPurpose(); |
55 | 52 | ||
56 | MochiKit.Base.update(Clipperz, { | 53 | MochiKit.Base.update(Clipperz, { |
57 | 'PM': { | 54 | 'PM': { |
58 | 'Crypto': { | 55 | 'Crypto': { |
59 | 'passwordEntropy': function(aValue) { | 56 | 'passwordEntropy': function(aValue) { |
60 | var result; | 57 | var result; |
61 | varbitPerChar; | 58 | varbitPerChar; |
62 | 59 | ||
63 | bitPerChar = 4; | 60 | bitPerChar = 4; |
64 | if (/[a-z]/.test(aValue)) { | 61 | if (/[a-z]/.test(aValue)) { |
65 | bitPerChar ++; | 62 | bitPerChar ++; |
66 | } | 63 | } |
67 | if (/[A-Z]/.test(aValue)) { | 64 | if (/[A-Z]/.test(aValue)) { |
68 | bitPerChar ++; | 65 | bitPerChar ++; |
69 | } | 66 | } |
70 | if (/[^a-zA-Z0-9]/.test(aValue)) { | 67 | if (/[^a-zA-Z0-9]/.test(aValue)) { |
71 | bitPerChar ++; | 68 | bitPerChar ++; |
72 | } | 69 | } |
73 | //MochiKit.Logging.logDebug("--- bitPerChar: " + bitPerChar); | 70 | //MochiKit.Logging.logDebug("--- bitPerChar: " + bitPerChar); |
74 | 71 | ||
75 | result = aValue.length * bitPerChar; | 72 | result = aValue.length * bitPerChar; |
76 | 73 | ||
77 | return result; | 74 | return result; |
78 | } | 75 | } |
79 | } | 76 | } |
80 | } | 77 | } |
81 | }) | 78 | }) |
82 | 79 | ||
83 | try { | 80 | try { |
84 | var keyValue; | 81 | var keyValue; |
85 | var keyEntropy; | 82 | var keyEntropy; |
86 | varkey; | 83 | varkey; |
87 | var plainText; | 84 | var plainText; |
88 | var cypherText; | 85 | var cypherText; |
89 | var randomBytes; | 86 | var randomBytes; |
90 | var hashedValue; | 87 | var hashedValue; |
91 | 88 | ||
92 | key = Clipperz.Crypto.SHA.sha256(new Clipperz.ByteArray("This is my long and complex passphrase")); | 89 | key = Clipperz.Crypto.SHA.sha256(new Clipperz.ByteArray("This is my long and complex passphrase")); |
93 | keyEntropy = Clipperz.PM.Crypto.passwordEntropy(key); | 90 | keyEntropy = Clipperz.PM.Crypto.passwordEntropy(key); |
94 | 91 | ||
95 | cypherText = Clipperz.Crypto.AES.encrypt(key, new Clipperz.ByteArray("some text to encrypt")); | 92 | cypherText = Clipperz.Crypto.AES.encrypt(key, new Clipperz.ByteArray("some text to encrypt")); |
96 | plainText = Clipperz.Crypto.AES.decrypt(key, cypherText).asString(); | 93 | plainText = Clipperz.Crypto.AES.decrypt(key, cypherText).asString(); |
97 | is(plainText, "some text to encrypt"); | 94 | is(plainText, "some text to encrypt"); |
98 | 95 | ||
99 | randomBytes = Clipperz.Crypto.PRNG.defaultRandomGenerator().getRandomBytes(256/8); | 96 | randomBytes = Clipperz.Crypto.PRNG.defaultRandomGenerator().getRandomBytes(256/8); |
100 | hashedValue = Clipperz.Crypto.SHA.sha256(new Clipperz.ByteArray("text to hash")); | 97 | hashedValue = Clipperz.Crypto.SHA.sha256(new Clipperz.ByteArray("text to hash")); |
101 | 98 | ||
102 | //############################################################################# | 99 | //############################################################################# |
103 | 100 | ||
104 | } catch (err) { | 101 | } catch (err) { |
105 | 102 | ||
106 | var s = "test suite failure!\n"; | 103 | var s = "test suite failure!\n"; |
107 | var o = {}; | 104 | var o = {}; |
108 | var k = null; | 105 | var k = null; |
109 | for (k in err) { | 106 | for (k in err) { |
110 | // ensure unique keys?! | 107 | // ensure unique keys?! |
111 | if (!o[k]) { | 108 | if (!o[k]) { |
112 | s += k + ": " + err[k] + "\n"; | 109 | s += k + ": " + err[k] + "\n"; |
113 | o[k] = err[k]; | 110 | o[k] = err[k]; |
114 | } | 111 | } |
115 | } | 112 | } |
116 | ok ( false, s ); | 113 | ok ( false, s ); |
117 | } | 114 | } |
118 | 115 | ||
119 | </script> | 116 | </script> |
120 | </pre> | 117 | </pre> |
diff --git a/frontend/gamma/tests/tests/Clipperz/Crypto/index.html b/frontend/gamma/tests/tests/Clipperz/Crypto/index.html index 67487ac..dd63ceb 100644 --- a/frontend/gamma/tests/tests/Clipperz/Crypto/index.html +++ b/frontend/gamma/tests/tests/Clipperz/Crypto/index.html | |||
@@ -1,58 +1,55 @@ | |||
1 | <!-- | 1 | <!-- |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | --> | 24 | --> |
28 | 25 | ||
29 | <html> | 26 | <html> |
30 | <head> | 27 | <head> |
31 | <title>Clipperz.Crypto.* - tests</title> | 28 | <title>Clipperz.Crypto.* - tests</title> |
32 | 29 | ||
33 | <script type="text/javascript" src="../../../../js/MochiKit/MochiKit.js"></script> | 30 | <script type="text/javascript" src="../../../../js/MochiKit/MochiKit.js"></script> |
34 | <script type="text/javascript" src="../../../SimpleTest/TestRunner.js"></script> | 31 | <script type="text/javascript" src="../../../SimpleTest/TestRunner.js"></script> |
35 | </head> | 32 | </head> |
36 | <body> | 33 | <body> |
37 | <script> | 34 | <script> |
38 | TestRunner.runTests( | 35 | TestRunner.runTests( |
39 | 'AES.html', | 36 | 'AES.html', |
40 | 'AES.performance.html', | 37 | 'AES.performance.html', |
41 | 'Base.html', | 38 | 'Base.html', |
42 | 'BigInt.html', | 39 | 'BigInt.html', |
43 | 40 | ||
44 | //'ECC.B283.deferred.html', | 41 | //'ECC.B283.deferred.html', |
45 | //'ECC.BinaryField.FiniteField.html', | 42 | //'ECC.BinaryField.FiniteField.html', |
46 | //'ECC.BinaryField.FiniteField.B283.html', | 43 | //'ECC.BinaryField.FiniteField.B283.html', |
47 | //'ECC.BinaryField.Value.html', | 44 | //'ECC.BinaryField.Value.html', |
48 | //#'ECC.K283.deferred.html', | 45 | //#'ECC.K283.deferred.html', |
49 | 46 | ||
50 | 'PRNG.html', | 47 | 'PRNG.html', |
51 | //'RSA.html', | 48 | //'RSA.html', |
52 | 'SHA.html', | 49 | 'SHA.html', |
53 | 'SRP.html', | 50 | 'SRP.html', |
54 | 'Usage.html' | 51 | 'Usage.html' |
55 | ); | 52 | ); |
56 | </script> | 53 | </script> |
57 | </body> | 54 | </body> |
58 | </html> \ No newline at end of file | 55 | </html> \ No newline at end of file |
diff --git a/frontend/gamma/tests/tests/Clipperz/Crypto/jscrypto.js b/frontend/gamma/tests/tests/Clipperz/Crypto/jscrypto.js index e9db091..9a0d5fa 100644 --- a/frontend/gamma/tests/tests/Clipperz/Crypto/jscrypto.js +++ b/frontend/gamma/tests/tests/Clipperz/Crypto/jscrypto.js | |||
@@ -1,120 +1,117 @@ | |||
1 | /* | 1 | /* |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | */ | 24 | */ |
28 | 25 | ||
29 | /* jsCrypto | 26 | /* jsCrypto |
30 | Core AES | 27 | Core AES |
31 | 28 | ||
32 | Emily Stark (estark@stanford.edu) | 29 | Emily Stark (estark@stanford.edu) |
33 | Mike Hamburg (mhamburg@stanford.edu) | 30 | Mike Hamburg (mhamburg@stanford.edu) |
34 | Dan Boneh (dabo@cs.stanford.edu) | 31 | Dan Boneh (dabo@cs.stanford.edu) |
35 | 32 | ||
36 | Symmetric AES in Javascript using precomputed lookup tables for round transformations rather for speed improvements | 33 | Symmetric AES in Javascript using precomputed lookup tables for round transformations rather for speed improvements |
37 | and code size reduction. Provides authenticated encryption in OCB and CCM modes. | 34 | and code size reduction. Provides authenticated encryption in OCB and CCM modes. |
38 | Parts of this code are based on the OpenSSL implementation of AES: http://www.openssl.org | 35 | Parts of this code are based on the OpenSSL implementation of AES: http://www.openssl.org |
39 | 36 | ||
40 | Public domain, 2009. | 37 | Public domain, 2009. |
41 | 38 | ||
42 | */ | 39 | */ |
43 | 40 | ||
44 | 41 | ||
45 | // CCM mode is the default | 42 | // CCM mode is the default |
46 | var CCM = 1, OCB = 2; | 43 | var CCM = 1, OCB = 2; |
47 | 44 | ||
48 | /* aes object constructor. Takes as arguments: | 45 | /* aes object constructor. Takes as arguments: |
49 | - 16-byte key, or an array of 4 32-bit words | 46 | - 16-byte key, or an array of 4 32-bit words |
50 | - Optionally specify a mode (aes.OCB or aes.CCM). Defaults to CCM | 47 | - Optionally specify a mode (aes.OCB or aes.CCM). Defaults to CCM |
51 | - Optionally specify a MAC tag length for integrity. Defaults to 16 bytes | 48 | - Optionally specify a MAC tag length for integrity. Defaults to 16 bytes |
52 | */ | 49 | */ |
53 | function aes(key, mode, Tlen) { | 50 | function aes(key, mode, Tlen) { |
54 | // initialize objects for CCM and OCB modes | 51 | // initialize objects for CCM and OCB modes |
55 | this._CCM = new cipherCCM(this); | 52 | this._CCM = new cipherCCM(this); |
56 | this._OCB = new cipherOCB(this); | 53 | this._OCB = new cipherOCB(this); |
57 | 54 | ||
58 | this._decryptScheduled = false; | 55 | this._decryptScheduled = false; |
59 | 56 | ||
60 | if (mode) this._mode = mode; | 57 | if (mode) this._mode = mode; |
61 | else this._mode = OCB; | 58 | else this._mode = OCB; |
62 | 59 | ||
63 | // AES round constants | 60 | // AES round constants |
64 | this._RCON = [ | 61 | this._RCON = [ |
65 | [0x00, 0x00, 0x00, 0x00], | 62 | [0x00, 0x00, 0x00, 0x00], |
66 | [0x01, 0x00, 0x00, 0x00], | 63 | [0x01, 0x00, 0x00, 0x00], |
67 | [0x02, 0x00, 0x00, 0x00], | 64 | [0x02, 0x00, 0x00, 0x00], |
68 | [0x04, 0x00, 0x00, 0x00], | 65 | [0x04, 0x00, 0x00, 0x00], |
69 | [0x08, 0x00, 0x00, 0x00], | 66 | [0x08, 0x00, 0x00, 0x00], |
70 | [0x10, 0x00, 0x00, 0x00], | 67 | [0x10, 0x00, 0x00, 0x00], |
71 | [0x20, 0x00, 0x00, 0x00], | 68 | [0x20, 0x00, 0x00, 0x00], |
72 | [0x40, 0x00, 0x00, 0x00], | 69 | [0x40, 0x00, 0x00, 0x00], |
73 | [0x80, 0x00, 0x00, 0x00], | 70 | [0x80, 0x00, 0x00, 0x00], |
74 | [0x1b, 0x00, 0x00, 0x00], | 71 | [0x1b, 0x00, 0x00, 0x00], |
75 | [0x36, 0x00, 0x00, 0x00] | 72 | [0x36, 0x00, 0x00, 0x00] |
76 | ]; | 73 | ]; |
77 | 74 | ||
78 | this._key_len = 16; | 75 | this._key_len = 16; |
79 | if (key.length == 4) { | 76 | if (key.length == 4) { |
80 | this._key = []; | 77 | this._key = []; |
81 | aes.wordsToBytes(key, this._key); | 78 | aes.wordsToBytes(key, this._key); |
82 | } | 79 | } |
83 | else | 80 | else |
84 | this._key = key; | 81 | this._key = key; |
85 | 82 | ||
86 | if (Tlen) this._Tlen = Tlen; | 83 | if (Tlen) this._Tlen = Tlen; |
87 | else this._Tlen = 16; // tag length in bytes | 84 | else this._Tlen = 16; // tag length in bytes |
88 | 85 | ||
89 | this._nr = 10; | 86 | this._nr = 10; |
90 | 87 | ||
91 | // initialize tables that will be precomputed | 88 | // initialize tables that will be precomputed |
92 | this._SBOX = []; | 89 | this._SBOX = []; |
93 | this._INV_SBOX = []; | 90 | this._INV_SBOX = []; |
94 | this._T = new Array(4); | 91 | this._T = new Array(4); |
95 | this._Tin = new Array(4); | 92 | this._Tin = new Array(4); |
96 | for (var i=0; i < 4; i++) { | 93 | for (var i=0; i < 4; i++) { |
97 | this._T[i] = []; | 94 | this._T[i] = []; |
98 | this._Tin[i] = []; | 95 | this._Tin[i] = []; |
99 | } | 96 | } |
100 | 97 | ||
101 | this._precompute(); | 98 | this._precompute(); |
102 | this.scheduleEncrypt(); | 99 | this.scheduleEncrypt(); |
103 | 100 | ||
104 | // initialize encryption and decryption buffers | 101 | // initialize encryption and decryption buffers |
105 | this._ctBuffer = []; | 102 | this._ctBuffer = []; |
106 | this._ptBuffer = []; | 103 | this._ptBuffer = []; |
107 | } | 104 | } |
108 | 105 | ||
109 | 106 | ||
110 | ////////////////// | 107 | ////////////////// |
111 | // KEY SCHEDULING | 108 | // KEY SCHEDULING |
112 | ////////////////// | 109 | ////////////////// |
113 | 110 | ||
114 | aes.prototype.scheduleEncrypt = function () { | 111 | aes.prototype.scheduleEncrypt = function () { |
115 | this._decryptScheduled = false; | 112 | this._decryptScheduled = false; |
116 | 113 | ||
117 | this._w = new Array(this._nr+1); | 114 | this._w = new Array(this._nr+1); |
118 | this._w[0] = new Array(4); | 115 | this._w[0] = new Array(4); |
119 | for (var i=0; i < 4; i++) | 116 | for (var i=0; i < 4; i++) |
120 | this._w[0][i] = this._key[i]; | 117 | this._w[0][i] = this._key[i]; |
diff --git a/frontend/gamma/tests/tests/Clipperz/DOM.html b/frontend/gamma/tests/tests/Clipperz/DOM.html index 2060215..782b1fe 100644 --- a/frontend/gamma/tests/tests/Clipperz/DOM.html +++ b/frontend/gamma/tests/tests/Clipperz/DOM.html | |||
@@ -1,58 +1,55 @@ | |||
1 | <!-- | 1 | <!-- |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | --> | 24 | --> |
28 | 25 | ||
29 | <html> | 26 | <html> |
30 | <head> | 27 | <head> |
31 | <script type="text/javascript" src="../../../js/MochiKit/MochiKit.js"></script> | 28 | <script type="text/javascript" src="../../../js/MochiKit/MochiKit.js"></script> |
32 | <script type="text/javascript" src="../../SimpleTest/SimpleTest.js"></script> | 29 | <script type="text/javascript" src="../../SimpleTest/SimpleTest.js"></script> |
33 | <link rel="stylesheet" type="text/css" href="../../SimpleTest/test.css"> | 30 | <link rel="stylesheet" type="text/css" href="../../SimpleTest/test.css"> |
34 | 31 | ||
35 | <script type='text/javascript' src='../../../js/JSON/json2.js'></script> | 32 | <script type='text/javascript' src='../../../js/JSON/json2.js'></script> |
36 | 33 | ||
37 | <script type='text/javascript' src='../../../js/Clipperz/YUI/Utils.js'></script> | 34 | <script type='text/javascript' src='../../../js/Clipperz/YUI/Utils.js'></script> |
38 | <script type='text/javascript' src='../../../js/Clipperz/YUI/DomHelper.js'></script> | 35 | <script type='text/javascript' src='../../../js/Clipperz/YUI/DomHelper.js'></script> |
39 | <script type='text/javascript' src='../../../js/Clipperz/Base.js'></script> | 36 | <script type='text/javascript' src='../../../js/Clipperz/Base.js'></script> |
40 | <script type='text/javascript' src='../../../js/Clipperz/DOM.js'></script> | 37 | <script type='text/javascript' src='../../../js/Clipperz/DOM.js'></script> |
41 | <script type='text/javascript' src='../../../js/Clipperz/Logging.js'></script> | 38 | <script type='text/javascript' src='../../../js/Clipperz/Logging.js'></script> |
42 | 39 | ||
43 | <script type='text/javascript' src='../../../js/Clipperz/Crypto/Base.js'></script> | 40 | <script type='text/javascript' src='../../../js/Clipperz/Crypto/Base.js'></script> |
44 | </head> | 41 | </head> |
45 | <body> | 42 | <body> |
46 | 43 | ||
47 | <pre id="test"> | 44 | <pre id="test"> |
48 | <script> | 45 | <script> |
49 | Clipperz_IEisBroken = false; | 46 | Clipperz_IEisBroken = false; |
50 | </script> | 47 | </script> |
51 | 48 | ||
52 | <!--[if IE]><script> | 49 | <!--[if IE]><script> |
53 | Clipperz_IEisBroken = true; | 50 | Clipperz_IEisBroken = true; |
54 | </script><![endif]--> | 51 | </script><![endif]--> |
55 | <script type="text/javascript" src="DOM.test.js"></script> | 52 | <script type="text/javascript" src="DOM.test.js"></script> |
56 | </pre> | 53 | </pre> |
57 | </body> | 54 | </body> |
58 | </html> | 55 | </html> |
diff --git a/frontend/gamma/tests/tests/Clipperz/DOM.test.js b/frontend/gamma/tests/tests/Clipperz/DOM.test.js index a2aafc5..e8c6225 100644 --- a/frontend/gamma/tests/tests/Clipperz/DOM.test.js +++ b/frontend/gamma/tests/tests/Clipperz/DOM.test.js | |||
@@ -1,82 +1,79 @@ | |||
1 | /* | 1 | /* |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | */ | 24 | */ |
28 | 25 | ||
29 | try { | 26 | try { |
30 | var template; | 27 | var template; |
31 | var templateArgs; | 28 | var templateArgs; |
32 | var element; | 29 | var element; |
33 | var rowElement; | 30 | var rowElement; |
34 | var tdElement; | 31 | var tdElement; |
35 | 32 | ||
36 | template = Clipperz.DOM.Helper.createTemplate( | 33 | template = Clipperz.DOM.Helper.createTemplate( |
37 | [ | 34 | [ |
38 | {tag:'td', children:[{tag:'img', cls:'favicon', src:'{faviconUrl}'}]}, | 35 | {tag:'td', children:[{tag:'img', cls:'favicon', src:'{faviconUrl}'}]}, |
39 | {tag:'td', children:[{tag:'a', href:'#', cls:'title', html:'{cardTitle}'}]}, | 36 | {tag:'td', children:[{tag:'a', href:'#', cls:'title', html:'{cardTitle}'}]}, |
40 | {tag:'td', children:[{tag:'span', cls:'directLogins', id:'{directLoginsID}'}]}, | 37 | {tag:'td', children:[{tag:'span', cls:'directLogins', id:'{directLoginsID}'}]}, |
41 | {tag:'td', children:[{tag:'span', cls:'latestUpdate', html:'{latestUpdate}'}]}, | 38 | {tag:'td', children:[{tag:'span', cls:'latestUpdate', html:'{latestUpdate}'}]}, |
42 | {tag:'td'} | 39 | {tag:'td'} |
43 | ] | 40 | ] |
44 | ); | 41 | ); |
45 | 42 | ||
46 | templateArgs = { | 43 | templateArgs = { |
47 | cardTitle: "Amazon.com", | 44 | cardTitle: "Amazon.com", |
48 | directLoginsID: "Clipperz_PM_Components_directLogins_58", | 45 | directLoginsID: "Clipperz_PM_Components_directLogins_58", |
49 | faviconUrl: "http://www.amazon.com/favicon.ico", | 46 | faviconUrl: "http://www.amazon.com/favicon.ico", |
50 | latestUpdate: "", | 47 | latestUpdate: "", |
51 | reference: "13a5e52976337ab210903cd04872588e1b21fb72bc183e91aa25c494b8138551" | 48 | reference: "13a5e52976337ab210903cd04872588e1b21fb72bc183e91aa25c494b8138551" |
52 | } | 49 | } |
53 | 50 | ||
54 | element = Clipperz.DOM.Helper.append(document.body, {tag:'table', children:[ | 51 | element = Clipperz.DOM.Helper.append(document.body, {tag:'table', children:[ |
55 | {tag:'theader'}, | 52 | {tag:'theader'}, |
56 | {tag:'tbody', children:[ | 53 | {tag:'tbody', children:[ |
57 | {tag:'tr', id:'testRow'} | 54 | {tag:'tr', id:'testRow'} |
58 | ]}, | 55 | ]}, |
59 | {tag:'tfooter'} | 56 | {tag:'tfooter'} |
60 | ]}); | 57 | ]}); |
61 | ok(element != null, "created the TABLE"); | 58 | ok(element != null, "created the TABLE"); |
62 | 59 | ||
63 | rowElement = Clipperz.DOM.get('testRow'); | 60 | rowElement = Clipperz.DOM.get('testRow'); |
64 | ok(testRow != null, "created the ROW"); | 61 | ok(testRow != null, "created the ROW"); |
65 | 62 | ||
66 | template.append(rowElement, templateArgs); | 63 | template.append(rowElement, templateArgs); |
67 | tdElement = Clipperz.DOM.get(templateArgs['directLoginsID']); | 64 | tdElement = Clipperz.DOM.get(templateArgs['directLoginsID']); |
68 | ok(tdElement != null, "created the TD"); | 65 | ok(tdElement != null, "created the TD"); |
69 | 66 | ||
70 | } catch (err) { | 67 | } catch (err) { |
71 | var s = "test suite failure!\n"; | 68 | var s = "test suite failure!\n"; |
72 | var o = {}; | 69 | var o = {}; |
73 | var k = null; | 70 | var k = null; |
74 | for (k in err) { | 71 | for (k in err) { |
75 | // ensure unique keys?! | 72 | // ensure unique keys?! |
76 | if (!o[k]) { | 73 | if (!o[k]) { |
77 | s += k + ": " + err[k] + "\n"; | 74 | s += k + ": " + err[k] + "\n"; |
78 | o[k] = err[k]; | 75 | o[k] = err[k]; |
79 | } | 76 | } |
80 | } | 77 | } |
81 | ok ( false, s ); | 78 | ok ( false, s ); |
82 | } | 79 | } |
diff --git a/frontend/gamma/tests/tests/Clipperz/Date.html b/frontend/gamma/tests/tests/Clipperz/Date.html index 5712a52..1f425c8 100644 --- a/frontend/gamma/tests/tests/Clipperz/Date.html +++ b/frontend/gamma/tests/tests/Clipperz/Date.html | |||
@@ -1,54 +1,51 @@ | |||
1 | <!-- | 1 | <!-- |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | --> | 24 | --> |
28 | 25 | ||
29 | <html> | 26 | <html> |
30 | <head> | 27 | <head> |
31 | <title>Clipperz.Date - TEST</title> | 28 | <title>Clipperz.Date - TEST</title> |
32 | 29 | ||
33 | <script type="text/javascript" src="../../../js/MochiKit/MochiKit.js"></script> | 30 | <script type="text/javascript" src="../../../js/MochiKit/MochiKit.js"></script> |
34 | <script type="text/javascript" src="../../SimpleTest/SimpleTest.js"></script> | 31 | <script type="text/javascript" src="../../SimpleTest/SimpleTest.js"></script> |
35 | <link rel="stylesheet" type="text/css" href="../../SimpleTest/test.css"> | 32 | <link rel="stylesheet" type="text/css" href="../../SimpleTest/test.css"> |
36 | 33 | ||
37 | <script type='text/javascript' src='../../../js/JSON/json2.js'></script> | 34 | <script type='text/javascript' src='../../../js/JSON/json2.js'></script> |
38 | 35 | ||
39 | <script type='text/javascript' src='../../../js/Clipperz/YUI/Utils.js'></script> | 36 | <script type='text/javascript' src='../../../js/Clipperz/YUI/Utils.js'></script> |
40 | <script type='text/javascript' src='../../../js/Clipperz/Base.js'></script> | 37 | <script type='text/javascript' src='../../../js/Clipperz/Base.js'></script> |
41 | <script type='text/javascript' src='../../../js/Clipperz/Date.js'></script> | 38 | <script type='text/javascript' src='../../../js/Clipperz/Date.js'></script> |
42 | <script type='text/javascript' src='../../../js/Clipperz/Logging.js'></script> | 39 | <script type='text/javascript' src='../../../js/Clipperz/Logging.js'></script> |
43 | <script type='text/javascript' src='../../../js/Clipperz/Async.js'></script> | 40 | <script type='text/javascript' src='../../../js/Clipperz/Async.js'></script> |
44 | 41 | ||
45 | 42 | ||
46 | <script type="text/javascript" src="../../SimpleTest/SimpleTest.Async.js"></script> | 43 | <script type="text/javascript" src="../../SimpleTest/SimpleTest.Async.js"></script> |
47 | 44 | ||
48 | </head> | 45 | </head> |
49 | <body> | 46 | <body> |
50 | <pre id="test"> | 47 | <pre id="test"> |
51 | <script type="text/javascript" src="Date.test.js"></script> | 48 | <script type="text/javascript" src="Date.test.js"></script> |
52 | </pre> | 49 | </pre> |
53 | </body> | 50 | </body> |
54 | </html> | 51 | </html> |
diff --git a/frontend/gamma/tests/tests/Clipperz/Date.test.js b/frontend/gamma/tests/tests/Clipperz/Date.test.js index 06f7dc8..f184fd6 100644 --- a/frontend/gamma/tests/tests/Clipperz/Date.test.js +++ b/frontend/gamma/tests/tests/Clipperz/Date.test.js | |||
@@ -1,66 +1,63 @@ | |||
1 | /* | 1 | /* |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | */ | 24 | */ |
28 | 25 | ||
29 | var tests = { | 26 | var tests = { |
30 | 27 | ||
31 | '001_test': function () { | 28 | '001_test': function () { |
32 | vardate; | 29 | vardate; |
33 | var locale; | 30 | var locale; |
34 | 31 | ||
35 | // date = new Date(0); | 32 | // date = new Date(0); |
36 | // date.setMilliseconds(Date.parse("Fri, 21 Sep 2007 10:04:24 UTC")); | 33 | // date.setMilliseconds(Date.parse("Fri, 21 Sep 2007 10:04:24 UTC")); |
37 | 34 | ||
38 | date = new Date(Date.parse("Fri, 21 Sep 2007 10:04:24 UTC")); | 35 | date = new Date(Date.parse("Fri, 21 Sep 2007 10:04:24 UTC")); |
39 | 36 | ||
40 | locale = { | 37 | locale = { |
41 | 'amDesignation':"am", | 38 | 'amDesignation':"am", |
42 | 'pmDesignation':"pm", | 39 | 'pmDesignation':"pm", |
43 | // 'shortDateFormat':"d/m/y", | 40 | // 'shortDateFormat':"d/m/y", |
44 | // 'longDateFormat':"", | 41 | // 'longDateFormat':"", |
45 | 'months': ["January", "February", "March","April", | 42 | 'months': ["January", "February", "March","April", |
46 | "May", "June", "July", "August", | 43 | "May", "June", "July", "August", |
47 | "September", "October", "November", "December"], | 44 | "September", "October", "November", "December"], |
48 | 'shortMonths': ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"], | 45 | 'shortMonths': ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"], |
49 | 'days': ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"], | 46 | 'days': ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"], |
50 | 'shortDays': ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat" ] | 47 | 'shortDays': ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat" ] |
51 | } | 48 | } |
52 | 49 | ||
53 | is(Clipperz.Date.formatDateWithPHPLikeTemplateAndLocale(date, "d/m/y", locale), '21/09/07', "formatDate - 1"); | 50 | is(Clipperz.Date.formatDateWithPHPLikeTemplateAndLocale(date, "d/m/y", locale), '21/09/07', "formatDate - 1"); |
54 | is(Clipperz.Date.formatDateWithPHPLikeTemplateAndLocale(date, "D M Y", locale), 'Fri Sep 2007', "formatDate - 2"); | 51 | is(Clipperz.Date.formatDateWithPHPLikeTemplateAndLocale(date, "D M Y", locale), 'Fri Sep 2007', "formatDate - 2"); |
55 | is(Clipperz.Date.formatDateWithPHPLikeTemplateAndLocale(date, "D, d M Y", locale), 'Fri, 21 Sep 2007', "formatDate - 3"); | 52 | is(Clipperz.Date.formatDateWithPHPLikeTemplateAndLocale(date, "D, d M Y", locale), 'Fri, 21 Sep 2007', "formatDate - 3"); |
56 | is(Clipperz.Date.formatDateWithPHPLikeTemplateAndLocale(date, "D, d M Y H:i:s", locale), 'Fri, 21 Sep 2007 12:04:24', "formatDate - 4"); | 53 | is(Clipperz.Date.formatDateWithPHPLikeTemplateAndLocale(date, "D, d M Y H:i:s", locale), 'Fri, 21 Sep 2007 12:04:24', "formatDate - 4"); |
57 | // is(Clipperz.Date.formatDateWithPHPLikeTemplateAndLocale(date, "D, d M Y H:i:s (T)", locale), 'Fri, 21 Sep 2007 11:04:24 (CEST)', "formatDate - 5"); | 54 | // is(Clipperz.Date.formatDateWithPHPLikeTemplateAndLocale(date, "D, d M Y H:i:s (T)", locale), 'Fri, 21 Sep 2007 11:04:24 (CEST)', "formatDate - 5"); |
58 | }, | 55 | }, |
59 | 56 | ||
60 | //------------------------------------------------------------------------- | 57 | //------------------------------------------------------------------------- |
61 | 'syntaxFix': MochiKit.Base.noop | 58 | 'syntaxFix': MochiKit.Base.noop |
62 | } | 59 | } |
63 | 60 | ||
64 | //============================================================================= | 61 | //============================================================================= |
65 | 62 | ||
66 | SimpleTest.runDeferredTests("Clipperz.Date", tests, {trace:false}); | 63 | SimpleTest.runDeferredTests("Clipperz.Date", tests, {trace:false}); |
diff --git a/frontend/gamma/tests/tests/Clipperz/KeePassExportProcessor.data.js b/frontend/gamma/tests/tests/Clipperz/KeePassExportProcessor.data.js index 5bfb8c7..3c407f7 100644 --- a/frontend/gamma/tests/tests/Clipperz/KeePassExportProcessor.data.js +++ b/frontend/gamma/tests/tests/Clipperz/KeePassExportProcessor.data.js | |||
@@ -1,120 +1,117 @@ | |||
1 | /* | 1 | /* |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | */ | 24 | */ |
28 | 25 | ||
29 | var testData = {} | 26 | var testData = {} |
30 | 27 | ||
31 | testData['Barb_Newman_data'] = ""; | 28 | testData['Barb_Newman_data'] = ""; |
32 | testData['Barb_Newman_data'] = testData['Barb_Newman_data'] + | 29 | testData['Barb_Newman_data'] = testData['Barb_Newman_data'] + |
33 | "[Domain Administration Account]" + "\n" + | 30 | "[Domain Administration Account]" + "\n" + |
34 | "Group: Windows" + "\n" + | 31 | "Group: Windows" + "\n" + |
35 | "User Name: _ABC" + "\n" + | 32 | "User Name: _ABC" + "\n" + |
36 | "URL: " + "\n" + | 33 | "URL: " + "\n" + |
37 | "Password: 123456" + "\n" + | 34 | "Password: 123456" + "\n" + |
38 | "Notes: " + "\n" + | 35 | "Notes: " + "\n" + |
39 | "" + "\n" + | 36 | "" + "\n" + |
40 | "[Enquiro Domain]" + "\n" + | 37 | "[Enquiro Domain]" + "\n" + |
41 | "Group: Windows" + "\n" + | 38 | "Group: Windows" + "\n" + |
42 | "User Name: ABC" + "\n" + | 39 | "User Name: ABC" + "\n" + |
43 | "URL: " + "\n" + | 40 | "URL: " + "\n" + |
44 | "Password: 123456" + "\n" + | 41 | "Password: 123456" + "\n" + |
45 | "Notes: This is an Exchange Mailbox checked by IT/Programming" + "\n" + | 42 | "Notes: This is an Exchange Mailbox checked by IT/Programming" + "\n" + |
46 | "" + "\n" + | 43 | "" + "\n" + |
47 | "[Enquiro Domain Administrator Account]" + "\n" + | 44 | "[Enquiro Domain Administrator Account]" + "\n" + |
48 | "Group: Windows" + "\n" + | 45 | "Group: Windows" + "\n" + |
49 | "User Name: ENQUIRO\ABC" + "\n" + | 46 | "User Name: ENQUIRO\ABC" + "\n" + |
50 | "URL: " + "\n" + | 47 | "URL: " + "\n" + |
51 | "Password: 123456" + "\n" + | 48 | "Password: 123456" + "\n" + |
52 | "Notes: Obsolete" + "\n" + | 49 | "Notes: Obsolete" + "\n" + |
53 | "" + "\n" + | 50 | "" + "\n" + |
54 | "[Enquiro Domain Administrator Account]" + "\n" + | 51 | "[Enquiro Domain Administrator Account]" + "\n" + |
55 | "Group: Windows" + "\n" + | 52 | "Group: Windows" + "\n" + |
56 | "User Name: ENQUIRO\ABC" + "\n" + | 53 | "User Name: ENQUIRO\ABC" + "\n" + |
57 | "URL: " + "\n" + | 54 | "URL: " + "\n" + |
58 | "Password: 123456" + "\n" + | 55 | "Password: 123456" + "\n" + |
59 | "Notes: Changed on 07 Sep 2007 by Randy Kissick" + "\n" + | 56 | "Notes: Changed on 07 Sep 2007 by Randy Kissick" + "\n" + |
60 | "" + "\n" + | 57 | "" + "\n" + |
61 | "[Enquiro Domain Previous Administrator Account]" + "\n" + | 58 | "[Enquiro Domain Previous Administrator Account]" + "\n" + |
62 | "Group: Windows" + "\n" + | 59 | "Group: Windows" + "\n" + |
63 | "User Name: ENQUIRO\ABC" + "\n" + | 60 | "User Name: ENQUIRO\ABC" + "\n" + |
64 | "URL: " + "\n" + | 61 | "URL: " + "\n" + |
65 | "Password: 123456" + "\n" + | 62 | "Password: 123456" + "\n" + |
66 | "Notes: ENSQL1" + "\n" + | 63 | "Notes: ENSQL1" + "\n" + |
67 | "" + "\n" + | 64 | "" + "\n" + |
68 | "[Local Administrator Account for most Machines]" + "\n" + | 65 | "[Local Administrator Account for most Machines]" + "\n" + |
69 | "Group: Windows" + "\n" + | 66 | "Group: Windows" + "\n" + |
70 | "User Name: ABC" + "\n" + | 67 | "User Name: ABC" + "\n" + |
71 | "URL: " + "\n" + | 68 | "URL: " + "\n" + |
72 | "Password: 123456" + "\n" + | 69 | "Password: 123456" + "\n" + |
73 | "Notes: " + "\n" + | 70 | "Notes: " + "\n" + |
74 | "" + "\n" + | 71 | "" + "\n" + |
75 | "[Local Administrator Account for some Machines]" + "\n" + | 72 | "[Local Administrator Account for some Machines]" + "\n" + |
76 | "Group: Windows" + "\n" + | 73 | "Group: Windows" + "\n" + |
77 | "User Name: ABC" + "\n" + | 74 | "User Name: ABC" + "\n" + |
78 | "URL: " + "\n" + | 75 | "URL: " + "\n" + |
79 | "Password: 123456" + "\n" + | 76 | "Password: 123456" + "\n" + |
80 | "Notes: " + "\n" + | 77 | "Notes: " + "\n" + |
81 | "" + "\n" + | 78 | "" + "\n" + |
82 | "[Bugzilla]" + "\n" + | 79 | "[Bugzilla]" + "\n" + |
83 | "Group: Hardware" + "\n" + | 80 | "Group: Hardware" + "\n" + |
84 | "User Name: ABC" + "\n" + | 81 | "User Name: ABC" + "\n" + |
85 | "URL: " + "\n" + | 82 | "URL: " + "\n" + |
86 | "Password: 123456" + "\n" + | 83 | "Password: 123456" + "\n" + |
87 | "Notes: BUGZILLA" + "\n" + | 84 | "Notes: BUGZILLA" + "\n" + |
88 | "" + "\n" + | 85 | "" + "\n" + |
89 | "[Client Services Linux Box]" + "\n" + | 86 | "[Client Services Linux Box]" + "\n" + |
90 | "Group: Hardware" + "\n" + | 87 | "Group: Hardware" + "\n" + |
91 | "User Name: ABC" + "\n" + | 88 | "User Name: ABC" + "\n" + |
92 | "URL: " + "\n" + | 89 | "URL: " + "\n" + |
93 | "Password: 123456" + "\n" + | 90 | "Password: 123456" + "\n" + |
94 | "Notes: 192.168.1.141" + "\n" + | 91 | "Notes: 192.168.1.141" + "\n" + |
95 | "" + "\n" + | 92 | "" + "\n" + |
96 | "[ENSQL2 BIOS]" + "\n" + | 93 | "[ENSQL2 BIOS]" + "\n" + |
97 | "Group: Hardware" + "\n" + | 94 | "Group: Hardware" + "\n" + |
98 | "User Name: " + "\n" + | 95 | "User Name: " + "\n" + |
99 | "URL: " + "\n" + | 96 | "URL: " + "\n" + |
100 | "Password: 123456" + "\n" + | 97 | "Password: 123456" + "\n" + |
101 | "Notes: " + "\n" + | 98 | "Notes: " + "\n" + |
102 | "" + "\n" + | 99 | "" + "\n" + |
103 | "[Eye Tracking PC]" + "\n" + | 100 | "[Eye Tracking PC]" + "\n" + |
104 | "Group: Hardware" + "\n" + | 101 | "Group: Hardware" + "\n" + |
105 | "User Name: ABC" + "\n" + | 102 | "User Name: ABC" + "\n" + |
106 | "URL: " + "\n" + | 103 | "URL: " + "\n" + |
107 | "Password: 123456" + "\n" + | 104 | "Password: 123456" + "\n" + |
108 | "Notes: " + "\n" + | 105 | "Notes: " + "\n" + |
109 | "" + "\n" + | 106 | "" + "\n" + |
110 | "[IT Linux Box (Brainiac)]" + "\n" + | 107 | "[IT Linux Box (Brainiac)]" + "\n" + |
111 | "Group: Hardware" + "\n" + | 108 | "Group: Hardware" + "\n" + |
112 | "User Name: ABC" + "\n" + | 109 | "User Name: ABC" + "\n" + |
113 | "URL: " + "\n" + | 110 | "URL: " + "\n" + |
114 | "Password: 123456" + "\n" + | 111 | "Password: 123456" + "\n" + |
115 | "Notes: " + "\n" + | 112 | "Notes: " + "\n" + |
116 | "" + "\n" + | 113 | "" + "\n" + |
117 | "[Maizal - Contract Developer Machine]" + "\n" + | 114 | "[Maizal - Contract Developer Machine]" + "\n" + |
118 | "Group: Hardware" + "\n" + | 115 | "Group: Hardware" + "\n" + |
119 | "User Name: ABC" + "\n" + | 116 | "User Name: ABC" + "\n" + |
120 | "URL: 199.185.139.69:3399" + "\n" + | 117 | "URL: 199.185.139.69:3399" + "\n" + |
diff --git a/frontend/gamma/tests/tests/Clipperz/KeePassExportProcessor.html b/frontend/gamma/tests/tests/Clipperz/KeePassExportProcessor.html index a8a1317..969b517 100644 --- a/frontend/gamma/tests/tests/Clipperz/KeePassExportProcessor.html +++ b/frontend/gamma/tests/tests/Clipperz/KeePassExportProcessor.html | |||
@@ -1,59 +1,56 @@ | |||
1 | <!-- | 1 | <!-- |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | --> | 24 | --> |
28 | 25 | ||
29 | <html> | 26 | <html> |
30 | <head> | 27 | <head> |
31 | <title>Clipperz.KeePassExportProcessor - test</title> | 28 | <title>Clipperz.KeePassExportProcessor - test</title> |
32 | 29 | ||
33 | <script type="text/javascript" src="../../../js/MochiKit/MochiKit.js"></script> | 30 | <script type="text/javascript" src="../../../js/MochiKit/MochiKit.js"></script> |
34 | <script type="text/javascript" src="../../SimpleTest/SimpleTest.js"></script> | 31 | <script type="text/javascript" src="../../SimpleTest/SimpleTest.js"></script> |
35 | <link rel="stylesheet" type="text/css" href="../../SimpleTest/test.css"> | 32 | <link rel="stylesheet" type="text/css" href="../../SimpleTest/test.css"> |
36 | 33 | ||
37 | <script type='text/javascript' src='../../../js/JSON/json2.js'></script> | 34 | <script type='text/javascript' src='../../../js/JSON/json2.js'></script> |
38 | 35 | ||
39 | <script type='text/javascript' src='../../../js/Clipperz/YUI/Utils.js'></script> | 36 | <script type='text/javascript' src='../../../js/Clipperz/YUI/Utils.js'></script> |
40 | <script type='text/javascript' src='../../../js/Clipperz/Base.js'></script> | 37 | <script type='text/javascript' src='../../../js/Clipperz/Base.js'></script> |
41 | <script type='text/javascript' src='../../../js/Clipperz/ByteArray.js'></script> | 38 | <script type='text/javascript' src='../../../js/Clipperz/ByteArray.js'></script> |
42 | <script type='text/javascript' src='../../../js/Clipperz/Logging.js'></script> | 39 | <script type='text/javascript' src='../../../js/Clipperz/Logging.js'></script> |
43 | <script type='text/javascript' src='../../../js/Clipperz/Async.js'></script> | 40 | <script type='text/javascript' src='../../../js/Clipperz/Async.js'></script> |
44 | <script type='text/javascript' src='../../../js/Clipperz/KeePassExportProcessor.js'></script> | 41 | <script type='text/javascript' src='../../../js/Clipperz/KeePassExportProcessor.js'></script> |
45 | 42 | ||
46 | <script type="text/javascript" src="../../SimpleTest/SimpleTest.Async.js"></script> | 43 | <script type="text/javascript" src="../../SimpleTest/SimpleTest.Async.js"></script> |
47 | 44 | ||
48 | <!-- script type="text/javascript" src="./KeePassExportProcessor.data.js"></script> | 45 | <!-- script type="text/javascript" src="./KeePassExportProcessor.data.js"></script> |
49 | <script type="text/javascript" src="./KeePassExportProcessor.test.js"></script --> | 46 | <script type="text/javascript" src="./KeePassExportProcessor.test.js"></script --> |
50 | 47 | ||
51 | </head> | 48 | </head> |
52 | <body> | 49 | <body> |
53 | 50 | ||
54 | <pre id="test"> | 51 | <pre id="test"> |
55 | <script type="text/javascript" src="./KeePassExportProcessor.data.js"></script> | 52 | <script type="text/javascript" src="./KeePassExportProcessor.data.js"></script> |
56 | <script type="text/javascript" src="./KeePassExportProcessor.test.js"></script> | 53 | <script type="text/javascript" src="./KeePassExportProcessor.test.js"></script> |
57 | </pre> | 54 | </pre> |
58 | </body> | 55 | </body> |
59 | </html> | 56 | </html> |
diff --git a/frontend/gamma/tests/tests/Clipperz/KeePassExportProcessor.test.js b/frontend/gamma/tests/tests/Clipperz/KeePassExportProcessor.test.js index 0ce4c91..4d1aa12 100644 --- a/frontend/gamma/tests/tests/Clipperz/KeePassExportProcessor.test.js +++ b/frontend/gamma/tests/tests/Clipperz/KeePassExportProcessor.test.js | |||
@@ -1,120 +1,117 @@ | |||
1 | /* | 1 | /* |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | */ | 24 | */ |
28 | 25 | ||
29 | var tests = { | 26 | var tests = { |
30 | 27 | ||
31 | //------------------------------------------------------------------------- | 28 | //------------------------------------------------------------------------- |
32 | 29 | ||
33 | 'test1_test': function (someTestArgs) { | 30 | 'test1_test': function (someTestArgs) { |
34 | var deferredResult; | 31 | var deferredResult; |
35 | varkeePassProcessor; | 32 | varkeePassProcessor; |
36 | 33 | ||
37 | keePassProcessor = new Clipperz.KeePassExportProcessor(); | 34 | keePassProcessor = new Clipperz.KeePassExportProcessor(); |
38 | 35 | ||
39 | deferredResult = new Clipperz.Async.Deferred("test1_test", someTestArgs); | 36 | deferredResult = new Clipperz.Async.Deferred("test1_test", someTestArgs); |
40 | deferredResult.addCallback(function(aResult) { return "[Gmail]\nGroup: General\nUserName: joe.clipperz\nURL: http://www.gmail.com\nPassword: NHy08ZCMYsqUeLQCawR7\n\n[del.icio.us]\nGroup: General\nUserName: joe69\nURL: http://del.icio.us\nPassword: tS1cIEeqp5y0wkU\n\n[Amazon]\nGroup: General\nUserName: jclipperz\nURL: http://www.amazon.com\nPassword: wvpkqNPIsqlI5g6XE9Tz\n\n[Paypal]\nGroup: General\nUserName: joeclipperz\nURL: http://www.paypal.com\nPassword: 24T4wIcvHnM28T3L\n\n[Technorati]\nGroup: General\nUserName: jclipperz\nURL: http://www.technorati.com\nPassword: UcVeNqF\n\n[American Airlines]\nGroup: General\nUserName: joe.clipperz\nURL: http://www.aa.com\nPassword: AtrYbmi7lmSjR\n" }); | 37 | deferredResult.addCallback(function(aResult) { return "[Gmail]\nGroup: General\nUserName: joe.clipperz\nURL: http://www.gmail.com\nPassword: NHy08ZCMYsqUeLQCawR7\n\n[del.icio.us]\nGroup: General\nUserName: joe69\nURL: http://del.icio.us\nPassword: tS1cIEeqp5y0wkU\n\n[Amazon]\nGroup: General\nUserName: jclipperz\nURL: http://www.amazon.com\nPassword: wvpkqNPIsqlI5g6XE9Tz\n\n[Paypal]\nGroup: General\nUserName: joeclipperz\nURL: http://www.paypal.com\nPassword: 24T4wIcvHnM28T3L\n\n[Technorati]\nGroup: General\nUserName: jclipperz\nURL: http://www.technorati.com\nPassword: UcVeNqF\n\n[American Airlines]\nGroup: General\nUserName: joe.clipperz\nURL: http://www.aa.com\nPassword: AtrYbmi7lmSjR\n" }); |
41 | deferredResult.addMethod(keePassProcessor, 'deferredParse'); | 38 | deferredResult.addMethod(keePassProcessor, 'deferredParse'); |
42 | deferredResult.addCallback(function(aResult) { is(MochiKit.Base.serializeJSON(aResult), "[{\"Title\":\"Gmail\", \"Group\":\"General\", \"UserName\":\"joe.clipperz\", \"URL\":\"http://www.gmail.com\", \"Password\":\"NHy08ZCMYsqUeLQCawR7\"}, {\"Title\":\"del.icio.us\", \"Group\":\"General\", \"UserName\":\"joe69\", \"URL\":\"http://del.icio.us\", \"Password\":\"tS1cIEeqp5y0wkU\"}, {\"Title\":\"Amazon\", \"Group\":\"General\", \"UserName\":\"jclipperz\", \"URL\":\"http://www.amazon.com\", \"Password\":\"wvpkqNPIsqlI5g6XE9Tz\"}, {\"Title\":\"Paypal\", \"Group\":\"General\", \"UserName\":\"joeclipperz\", \"URL\":\"http://www.paypal.com\", \"Password\":\"24T4wIcvHnM28T3L\"}, {\"Title\":\"Technorati\", \"Group\":\"General\", \"UserName\":\"jclipperz\", \"URL\":\"http://www.technorati.com\", \"Password\":\"UcVeNqF\"}, {\"Title\":\"American Airlines\", \"Group\":\"General\", \"UserName\":\"joe.clipperz\", \"URL\":\"http://www.aa.com\", \"Password\":\"AtrYbmi7lmSjR\"}]", "first test"); }); | 39 | deferredResult.addCallback(function(aResult) { is(MochiKit.Base.serializeJSON(aResult), "[{\"Title\":\"Gmail\", \"Group\":\"General\", \"UserName\":\"joe.clipperz\", \"URL\":\"http://www.gmail.com\", \"Password\":\"NHy08ZCMYsqUeLQCawR7\"}, {\"Title\":\"del.icio.us\", \"Group\":\"General\", \"UserName\":\"joe69\", \"URL\":\"http://del.icio.us\", \"Password\":\"tS1cIEeqp5y0wkU\"}, {\"Title\":\"Amazon\", \"Group\":\"General\", \"UserName\":\"jclipperz\", \"URL\":\"http://www.amazon.com\", \"Password\":\"wvpkqNPIsqlI5g6XE9Tz\"}, {\"Title\":\"Paypal\", \"Group\":\"General\", \"UserName\":\"joeclipperz\", \"URL\":\"http://www.paypal.com\", \"Password\":\"24T4wIcvHnM28T3L\"}, {\"Title\":\"Technorati\", \"Group\":\"General\", \"UserName\":\"jclipperz\", \"URL\":\"http://www.technorati.com\", \"Password\":\"UcVeNqF\"}, {\"Title\":\"American Airlines\", \"Group\":\"General\", \"UserName\":\"joe.clipperz\", \"URL\":\"http://www.aa.com\", \"Password\":\"AtrYbmi7lmSjR\"}]", "first test"); }); |
43 | deferredResult.addErrback(function(anError) { is("ERROR", anError) }); | 40 | deferredResult.addErrback(function(anError) { is("ERROR", anError) }); |
44 | 41 | ||
45 | deferredResult.callback(); | 42 | deferredResult.callback(); |
46 | 43 | ||
47 | return deferredResult; | 44 | return deferredResult; |
48 | }, | 45 | }, |
49 | 46 | ||
50 | 'test2_test': function (someTestArgs) { | 47 | 'test2_test': function (someTestArgs) { |
51 | var deferredResult; | 48 | var deferredResult; |
52 | varkeePassProcessor; | 49 | varkeePassProcessor; |
53 | 50 | ||
54 | keePassProcessor = new Clipperz.KeePassExportProcessor(); | 51 | keePassProcessor = new Clipperz.KeePassExportProcessor(); |
55 | 52 | ||
56 | deferredResult = new Clipperz.Async.Deferred("test2_test", someTestArgs); | 53 | deferredResult = new Clipperz.Async.Deferred("test2_test", someTestArgs); |
57 | deferredResult.addCallback(function(aResult) { return "[Gmail]\nGroup: General\nUserName: joe.clipperz\nURL: http://www.gmail.com\nPassword: NHy08ZCMYsqUeLQCawR7\nNotes: Personal account\n\n[del.icio.us]\nGroup: General\nUserName: joe69\nURL: http://del.icio.us\nPassword: tS1cIEeqp5y0wkU\nNotes: social bookmarking site\n\n[Amazon]\nGroup: General\nUserName: jclipperz\nURL: http://www.amazon.com\nPassword: wvpkqNPIsqlI5g6XE9Tz\nNotes: The US online store\n\n[Paypal]\nGroup: General\nUserName: joeclipperz\nURL: http://www.paypal.com\nPassword: 24T4wIcvHnM28T3L\nNotes: Linked to my savings account\n\n[Technorati]\nGroup: General\nUserName: jclipperz\nURL: http://www.technorati.com\nPassword: UcVeNqF\nNotes: Blog ranking and searching\n\n[American Airlines]\nGroup: General\nUserName: joe.clipperz\nURL: http://www.aa.com\nPassword: AtrYbmi7lmSjR\nNotes: Adavantages card n. 795495\n" }); | 54 | deferredResult.addCallback(function(aResult) { return "[Gmail]\nGroup: General\nUserName: joe.clipperz\nURL: http://www.gmail.com\nPassword: NHy08ZCMYsqUeLQCawR7\nNotes: Personal account\n\n[del.icio.us]\nGroup: General\nUserName: joe69\nURL: http://del.icio.us\nPassword: tS1cIEeqp5y0wkU\nNotes: social bookmarking site\n\n[Amazon]\nGroup: General\nUserName: jclipperz\nURL: http://www.amazon.com\nPassword: wvpkqNPIsqlI5g6XE9Tz\nNotes: The US online store\n\n[Paypal]\nGroup: General\nUserName: joeclipperz\nURL: http://www.paypal.com\nPassword: 24T4wIcvHnM28T3L\nNotes: Linked to my savings account\n\n[Technorati]\nGroup: General\nUserName: jclipperz\nURL: http://www.technorati.com\nPassword: UcVeNqF\nNotes: Blog ranking and searching\n\n[American Airlines]\nGroup: General\nUserName: joe.clipperz\nURL: http://www.aa.com\nPassword: AtrYbmi7lmSjR\nNotes: Adavantages card n. 795495\n" }); |
58 | deferredResult.addMethod(keePassProcessor, 'deferredParse'); | 55 | deferredResult.addMethod(keePassProcessor, 'deferredParse'); |
59 | deferredResult.addCallback(function(aResult) { is(MochiKit.Base.serializeJSON(aResult), "[{\"Title\":\"Gmail\", \"Group\":\"General\", \"UserName\":\"joe.clipperz\", \"URL\":\"http://www.gmail.com\", \"Password\":\"NHy08ZCMYsqUeLQCawR7\", \"Notes\":\"Personal account\"}, {\"Title\":\"del.icio.us\", \"Group\":\"General\", \"UserName\":\"joe69\", \"URL\":\"http://del.icio.us\", \"Password\":\"tS1cIEeqp5y0wkU\", \"Notes\":\"social bookmarking site\"}, {\"Title\":\"Amazon\", \"Group\":\"General\", \"UserName\":\"jclipperz\", \"URL\":\"http://www.amazon.com\", \"Password\":\"wvpkqNPIsqlI5g6XE9Tz\", \"Notes\":\"The US online store\"}, {\"Title\":\"Paypal\", \"Group\":\"General\", \"UserName\":\"joeclipperz\", \"URL\":\"http://www.paypal.com\", \"Password\":\"24T4wIcvHnM28T3L\", \"Notes\":\"Linked to my savings account\"}, {\"Title\":\"Technorati\", \"Group\":\"General\", \"UserName\":\"jclipperz\", \"URL\":\"http://www.technorati.com\", \"Password\":\"UcVeNqF\", \"Notes\":\"Blog ranking and searching\"}, {\"Title\":\"American Airlines\", \"Group\":\"General\", \"UserName\":\"joe.clipperz\", \"URL\":\"http://www.aa.com\", \"Password\":\"AtrYbmi7lmSjR\", \"Notes\":\"Adavantages card n. 795495\"}]", "second test"); }); | 56 | deferredResult.addCallback(function(aResult) { is(MochiKit.Base.serializeJSON(aResult), "[{\"Title\":\"Gmail\", \"Group\":\"General\", \"UserName\":\"joe.clipperz\", \"URL\":\"http://www.gmail.com\", \"Password\":\"NHy08ZCMYsqUeLQCawR7\", \"Notes\":\"Personal account\"}, {\"Title\":\"del.icio.us\", \"Group\":\"General\", \"UserName\":\"joe69\", \"URL\":\"http://del.icio.us\", \"Password\":\"tS1cIEeqp5y0wkU\", \"Notes\":\"social bookmarking site\"}, {\"Title\":\"Amazon\", \"Group\":\"General\", \"UserName\":\"jclipperz\", \"URL\":\"http://www.amazon.com\", \"Password\":\"wvpkqNPIsqlI5g6XE9Tz\", \"Notes\":\"The US online store\"}, {\"Title\":\"Paypal\", \"Group\":\"General\", \"UserName\":\"joeclipperz\", \"URL\":\"http://www.paypal.com\", \"Password\":\"24T4wIcvHnM28T3L\", \"Notes\":\"Linked to my savings account\"}, {\"Title\":\"Technorati\", \"Group\":\"General\", \"UserName\":\"jclipperz\", \"URL\":\"http://www.technorati.com\", \"Password\":\"UcVeNqF\", \"Notes\":\"Blog ranking and searching\"}, {\"Title\":\"American Airlines\", \"Group\":\"General\", \"UserName\":\"joe.clipperz\", \"URL\":\"http://www.aa.com\", \"Password\":\"AtrYbmi7lmSjR\", \"Notes\":\"Adavantages card n. 795495\"}]", "second test"); }); |
60 | deferredResult.addErrback(function(anError) { is("ERROR", anError) }); | 57 | deferredResult.addErrback(function(anError) { is("ERROR", anError) }); |
61 | 58 | ||
62 | deferredResult.callback(); | 59 | deferredResult.callback(); |
63 | 60 | ||
64 | return deferredResult; | 61 | return deferredResult; |
65 | }, | 62 | }, |
66 | 63 | ||
67 | 'test3_test': function (someTestArgs) { | 64 | 'test3_test': function (someTestArgs) { |
68 | var deferredResult; | 65 | var deferredResult; |
69 | varkeePassProcessor; | 66 | varkeePassProcessor; |
70 | 67 | ||
71 | keePassProcessor = new Clipperz.KeePassExportProcessor(); | 68 | keePassProcessor = new Clipperz.KeePassExportProcessor(); |
72 | 69 | ||
73 | deferredResult = new Clipperz.Async.Deferred("test3_test", someTestArgs); | 70 | deferredResult = new Clipperz.Async.Deferred("test3_test", someTestArgs); |
74 | deferredResult.addCallback(function(aResult) { return "[Gmail]\nGroup: General\nUserName: joe.clipperz\nURL: http://www.gmail.com\nPassword: NHy08ZCMYsqUeLQCawR7\nNotes: Personal account\nwith some notes stored\non multiple lines\n\n[del.icio.us]\nGroup: General\nUserName: joe69\nURL: http://del.icio.us\nPassword: tS1cIEeqp5y0wkU\nNotes: social bookmarking site\n\n[Amazon]\nGroup: General\nUserName: jclipperz\nURL: http://www.amazon.com\nPassword: wvpkqNPIsqlI5g6XE9Tz\nNotes: The US online store\n\n[Paypal]\nGroup: General\nUserName: joeclipperz\nURL: http://www.paypal.com\nPassword: 24T4wIcvHnM28T3L\nNotes: Linked to my savings account\n\n[Technorati]\nGroup: General\nUserName: jclipperz\nURL: http://www.technorati.com\nPassword: UcVeNqF\nNotes: Blog ranking and searching\n\n[American Airlines]\nGroup: General\nUserName: joe.clipperz\nURL: http://www.aa.com\nPassword: AtrYbmi7lmSjR\nNotes: Adavantages card n. 795495\n" }); | 71 | deferredResult.addCallback(function(aResult) { return "[Gmail]\nGroup: General\nUserName: joe.clipperz\nURL: http://www.gmail.com\nPassword: NHy08ZCMYsqUeLQCawR7\nNotes: Personal account\nwith some notes stored\non multiple lines\n\n[del.icio.us]\nGroup: General\nUserName: joe69\nURL: http://del.icio.us\nPassword: tS1cIEeqp5y0wkU\nNotes: social bookmarking site\n\n[Amazon]\nGroup: General\nUserName: jclipperz\nURL: http://www.amazon.com\nPassword: wvpkqNPIsqlI5g6XE9Tz\nNotes: The US online store\n\n[Paypal]\nGroup: General\nUserName: joeclipperz\nURL: http://www.paypal.com\nPassword: 24T4wIcvHnM28T3L\nNotes: Linked to my savings account\n\n[Technorati]\nGroup: General\nUserName: jclipperz\nURL: http://www.technorati.com\nPassword: UcVeNqF\nNotes: Blog ranking and searching\n\n[American Airlines]\nGroup: General\nUserName: joe.clipperz\nURL: http://www.aa.com\nPassword: AtrYbmi7lmSjR\nNotes: Adavantages card n. 795495\n" }); |
75 | deferredResult.addMethod(keePassProcessor, 'deferredParse'); | 72 | deferredResult.addMethod(keePassProcessor, 'deferredParse'); |
76 | deferredResult.addCallback(function(aResult) { is(MochiKit.Base.serializeJSON(aResult), "[{\"Title\":\"Gmail\", \"Group\":\"General\", \"UserName\":\"joe.clipperz\", \"URL\":\"http://www.gmail.com\", \"Password\":\"NHy08ZCMYsqUeLQCawR7\", \"Notes\":\"Personal account\\nwith some notes stored\\non multiple lines\\n\"}, {\"Title\":\"del.icio.us\", \"Group\":\"General\", \"UserName\":\"joe69\", \"URL\":\"http://del.icio.us\", \"Password\":\"tS1cIEeqp5y0wkU\", \"Notes\":\"social bookmarking site\"}, {\"Title\":\"Amazon\", \"Group\":\"General\", \"UserName\":\"jclipperz\", \"URL\":\"http://www.amazon.com\", \"Password\":\"wvpkqNPIsqlI5g6XE9Tz\", \"Notes\":\"The US online store\"}, {\"Title\":\"Paypal\", \"Group\":\"General\", \"UserName\":\"joeclipperz\", \"URL\":\"http://www.paypal.com\", \"Password\":\"24T4wIcvHnM28T3L\", \"Notes\":\"Linked to my savings account\"}, {\"Title\":\"Technorati\", \"Group\":\"General\", \"UserName\":\"jclipperz\", \"URL\":\"http://www.technorati.com\", \"Password\":\"UcVeNqF\", \"Notes\":\"Blog ranking and searching\"}, {\"Title\":\"American Airlines\", \"Group\":\"General\", \"UserName\":\"joe.clipperz\", \"URL\":\"http://www.aa.com\", \"Password\":\"AtrYbmi7lmSjR\", \"Notes\":\"Adavantages card n. 795495\"}]", "third test"); }); | 73 | deferredResult.addCallback(function(aResult) { is(MochiKit.Base.serializeJSON(aResult), "[{\"Title\":\"Gmail\", \"Group\":\"General\", \"UserName\":\"joe.clipperz\", \"URL\":\"http://www.gmail.com\", \"Password\":\"NHy08ZCMYsqUeLQCawR7\", \"Notes\":\"Personal account\\nwith some notes stored\\non multiple lines\\n\"}, {\"Title\":\"del.icio.us\", \"Group\":\"General\", \"UserName\":\"joe69\", \"URL\":\"http://del.icio.us\", \"Password\":\"tS1cIEeqp5y0wkU\", \"Notes\":\"social bookmarking site\"}, {\"Title\":\"Amazon\", \"Group\":\"General\", \"UserName\":\"jclipperz\", \"URL\":\"http://www.amazon.com\", \"Password\":\"wvpkqNPIsqlI5g6XE9Tz\", \"Notes\":\"The US online store\"}, {\"Title\":\"Paypal\", \"Group\":\"General\", \"UserName\":\"joeclipperz\", \"URL\":\"http://www.paypal.com\", \"Password\":\"24T4wIcvHnM28T3L\", \"Notes\":\"Linked to my savings account\"}, {\"Title\":\"Technorati\", \"Group\":\"General\", \"UserName\":\"jclipperz\", \"URL\":\"http://www.technorati.com\", \"Password\":\"UcVeNqF\", \"Notes\":\"Blog ranking and searching\"}, {\"Title\":\"American Airlines\", \"Group\":\"General\", \"UserName\":\"joe.clipperz\", \"URL\":\"http://www.aa.com\", \"Password\":\"AtrYbmi7lmSjR\", \"Notes\":\"Adavantages card n. 795495\"}]", "third test"); }); |
77 | deferredResult.addErrback(function(anError) { is("ERROR", anError) }); | 74 | deferredResult.addErrback(function(anError) { is("ERROR", anError) }); |
78 | 75 | ||
79 | deferredResult.callback(); | 76 | deferredResult.callback(); |
80 | 77 | ||
81 | return deferredResult; | 78 | return deferredResult; |
82 | }, | 79 | }, |
83 | 80 | ||
84 | //------------------------------------------------------------------------- | 81 | //------------------------------------------------------------------------- |
85 | 82 | ||
86 | 'Barb_Newman_test': function (someTestArgs) { | 83 | 'Barb_Newman_test': function (someTestArgs) { |
87 | var deferredResult; | 84 | var deferredResult; |
88 | varkeePassProcessor; | 85 | varkeePassProcessor; |
89 | 86 | ||
90 | keePassProcessor = new Clipperz.KeePassExportProcessor(); | 87 | keePassProcessor = new Clipperz.KeePassExportProcessor(); |
91 | 88 | ||
92 | deferredResult = new Clipperz.Async.Deferred("Barb_Newman_test", someTestArgs); | 89 | deferredResult = new Clipperz.Async.Deferred("Barb_Newman_test", someTestArgs); |
93 | // deferredResult.addCallback(function () { return testData['Barb_Newman_data']; }); | 90 | // deferredResult.addCallback(function () { return testData['Barb_Newman_data']; }); |
94 | deferredResult.addMethod(keePassProcessor, 'deferredParse'); | 91 | deferredResult.addMethod(keePassProcessor, 'deferredParse'); |
95 | deferredResult.addBoth(function(aResult) { | 92 | deferredResult.addBoth(function(aResult) { |
96 | SimpleTest.is(aResult.length, 121, "Barb's data contains 121 records"); | 93 | SimpleTest.is(aResult.length, 121, "Barb's data contains 121 records"); |
97 | return aResult; | 94 | return aResult; |
98 | }); | 95 | }); |
99 | deferredResult.addBoth(function(aResult) { | 96 | deferredResult.addBoth(function(aResult) { |
100 | SimpleTest.is(MochiKit.Base.serializeJSON(aResult[0]), "{\"Title\":\"Domain Administration Account\", \"Group\":\"Windows\", \"User Name\":\"_ABC\", \"URL\":\"\", \"Password\":\"123456\", \"Notes\":\"\"}", "Barb's first record data matches"); | 97 | SimpleTest.is(MochiKit.Base.serializeJSON(aResult[0]), "{\"Title\":\"Domain Administration Account\", \"Group\":\"Windows\", \"User Name\":\"_ABC\", \"URL\":\"\", \"Password\":\"123456\", \"Notes\":\"\"}", "Barb's first record data matches"); |
101 | return aResult; | 98 | return aResult; |
102 | }); | 99 | }); |
103 | // deferredResult.callback(); | 100 | // deferredResult.callback(); |
104 | deferredResult.callback(testData['Barb_Newman_data']); | 101 | deferredResult.callback(testData['Barb_Newman_data']); |
105 | 102 | ||
106 | return deferredResult; | 103 | return deferredResult; |
107 | }, | 104 | }, |
108 | 105 | ||
109 | //------------------------------------------------------------------------- | 106 | //------------------------------------------------------------------------- |
110 | /* | 107 | /* |
111 | 'Jordan_Curzon_test': function (someTestArgs) { | 108 | 'Jordan_Curzon_test': function (someTestArgs) { |
112 | var deferredResult; | 109 | var deferredResult; |
113 | varkeePassProcessor; | 110 | varkeePassProcessor; |
114 | 111 | ||
115 | keePassProcessor = new Clipperz.KeePassExportProcessor(); | 112 | keePassProcessor = new Clipperz.KeePassExportProcessor(); |
116 | 113 | ||
117 | deferredResult = new Clipperz.Async.Deferred("Jordan_Curzon_test", someTestArgs); | 114 | deferredResult = new Clipperz.Async.Deferred("Jordan_Curzon_test", someTestArgs); |
118 | deferredResult.addCallback(function () { return testData['Jordan_Curzon_data']; }); | 115 | deferredResult.addCallback(function () { return testData['Jordan_Curzon_data']; }); |
119 | deferredResult.addMethod(keePassProcessor, 'deferredParse'); | 116 | deferredResult.addMethod(keePassProcessor, 'deferredParse'); |
120 | deferredResult.addBoth(function(aResult) { | 117 | deferredResult.addBoth(function(aResult) { |
diff --git a/frontend/gamma/tests/tests/Clipperz/KeyValueObjectStore.html b/frontend/gamma/tests/tests/Clipperz/KeyValueObjectStore.html index f856f98..ece8a9c 100644 --- a/frontend/gamma/tests/tests/Clipperz/KeyValueObjectStore.html +++ b/frontend/gamma/tests/tests/Clipperz/KeyValueObjectStore.html | |||
@@ -1,52 +1,49 @@ | |||
1 | <!-- | 1 | <!-- |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | --> | 24 | --> |
28 | 25 | ||
29 | <html> | 26 | <html> |
30 | <head> | 27 | <head> |
31 | <script type="text/javascript" src="../../../js/MochiKit/MochiKit.js"></script> | 28 | <script type="text/javascript" src="../../../js/MochiKit/MochiKit.js"></script> |
32 | <script type="text/javascript" src="../../SimpleTest/SimpleTest.js"></script> | 29 | <script type="text/javascript" src="../../SimpleTest/SimpleTest.js"></script> |
33 | <link rel="stylesheet" type="text/css" href="../../SimpleTest/test.css"> | 30 | <link rel="stylesheet" type="text/css" href="../../SimpleTest/test.css"> |
34 | 31 | ||
35 | <script type='text/javascript' src='../../../js/JSON/json2.js'></script> | 32 | <script type='text/javascript' src='../../../js/JSON/json2.js'></script> |
36 | 33 | ||
37 | <script type='text/javascript' src='../../../js/Clipperz/YUI/Utils.js'></script> | 34 | <script type='text/javascript' src='../../../js/Clipperz/YUI/Utils.js'></script> |
38 | <script type='text/javascript' src='../../../js/Clipperz/Base.js'></script> | 35 | <script type='text/javascript' src='../../../js/Clipperz/Base.js'></script> |
39 | <script type='text/javascript' src='../../../js/Clipperz/ByteArray.js'></script> | 36 | <script type='text/javascript' src='../../../js/Clipperz/ByteArray.js'></script> |
40 | <script type='text/javascript' src='../../../js/Clipperz/Logging.js'></script> | 37 | <script type='text/javascript' src='../../../js/Clipperz/Logging.js'></script> |
41 | <script type='text/javascript' src='../../../js/Clipperz/Async.js'></script> | 38 | <script type='text/javascript' src='../../../js/Clipperz/Async.js'></script> |
42 | 39 | ||
43 | <script type='text/javascript' src='../../../js/Clipperz/KeyValueObjectStore.js'></script> | 40 | <script type='text/javascript' src='../../../js/Clipperz/KeyValueObjectStore.js'></script> |
44 | <script type="text/javascript" src="../../SimpleTest/SimpleTest.Async.js"></script> | 41 | <script type="text/javascript" src="../../SimpleTest/SimpleTest.Async.js"></script> |
45 | </head> | 42 | </head> |
46 | <body> | 43 | <body> |
47 | 44 | ||
48 | <pre id="test"> | 45 | <pre id="test"> |
49 | <script type="text/javascript" src="KeyValueObjectStore.test.js"></script> | 46 | <script type="text/javascript" src="KeyValueObjectStore.test.js"></script> |
50 | </pre> | 47 | </pre> |
51 | </body> | 48 | </body> |
52 | </html> | 49 | </html> |
diff --git a/frontend/gamma/tests/tests/Clipperz/KeyValueObjectStore.test.js b/frontend/gamma/tests/tests/Clipperz/KeyValueObjectStore.test.js index 53cf5d3..ac56386 100644 --- a/frontend/gamma/tests/tests/Clipperz/KeyValueObjectStore.test.js +++ b/frontend/gamma/tests/tests/Clipperz/KeyValueObjectStore.test.js | |||
@@ -1,120 +1,117 @@ | |||
1 | /* | 1 | /* |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | */ | 24 | */ |
28 | 25 | ||
29 | var tests = { | 26 | var tests = { |
30 | 27 | ||
31 | //------------------------------------------------------------------------- | 28 | //------------------------------------------------------------------------- |
32 | 29 | ||
33 | 'simple_tests': function() { | 30 | 'simple_tests': function() { |
34 | vardeferredResult; | 31 | vardeferredResult; |
35 | 32 | ||
36 | deferredResult = new Clipperz.Async.Deferred("simple_tests", {trace:false}); | 33 | deferredResult = new Clipperz.Async.Deferred("simple_tests", {trace:false}); |
37 | deferredResult.addCallback(function() { | 34 | deferredResult.addCallback(function() { |
38 | varobjectStore; | 35 | varobjectStore; |
39 | 36 | ||
40 | objectStore = new Clipperz.KeyValueObjectStore(); | 37 | objectStore = new Clipperz.KeyValueObjectStore(); |
41 | 38 | ||
42 | ok(objectStore != null, "created an object store"); | 39 | ok(objectStore != null, "created an object store"); |
43 | 40 | ||
44 | objectStore.setValue('key', "value"); | 41 | objectStore.setValue('key', "value"); |
45 | is(objectStore.getValue('key'), "value", "can store and read a value to a simple key"); | 42 | is(objectStore.getValue('key'), "value", "can store and read a value to a simple key"); |
46 | 43 | ||
47 | objectStore.setValue('key', "overwritten value"); | 44 | objectStore.setValue('key', "overwritten value"); |
48 | is(objectStore.getValue('key'), "overwritten value", "using the same key overwrites the previous value"); | 45 | is(objectStore.getValue('key'), "overwritten value", "using the same key overwrites the previous value"); |
49 | 46 | ||
50 | objectStore.setValue('record.keys', [1, 2, 3]); | 47 | objectStore.setValue('record.keys', [1, 2, 3]); |
51 | is( | 48 | is( |
52 | MochiKit.Base.compare(objectStore.getValue('record'), {'keys': [1,2,3]}), | 49 | MochiKit.Base.compare(objectStore.getValue('record'), {'keys': [1,2,3]}), |
53 | 0, | 50 | 0, |
54 | "getting a partial key returns the whole content associate with that key" | 51 | "getting a partial key returns the whole content associate with that key" |
55 | ); | 52 | ); |
56 | is( | 53 | is( |
57 | MochiKit.Base.compare(objectStore.getValue('record.keys'), [1,2,3]), | 54 | MochiKit.Base.compare(objectStore.getValue('record.keys'), [1,2,3]), |
58 | 0, | 55 | 0, |
59 | "accessing data using a key.path return the matching content" | 56 | "accessing data using a key.path return the matching content" |
60 | ); | 57 | ); |
61 | is( | 58 | is( |
62 | MochiKit.Base.compare(objectStore.getValue('record.keys.1'), 2), | 59 | MochiKit.Base.compare(objectStore.getValue('record.keys.1'), 2), |
63 | 0, | 60 | 0, |
64 | "accessing data using a key.path return the matching content, even inside an array" | 61 | "accessing data using a key.path return the matching content, even inside an array" |
65 | ); | 62 | ); |
66 | 63 | ||
67 | is( | 64 | is( |
68 | objectStore.setValue('key', "value"), | 65 | objectStore.setValue('key', "value"), |
69 | "value", | 66 | "value", |
70 | "setting a value return the value itself, as a convenience to chain deferred methods" | 67 | "setting a value return the value itself, as a convenience to chain deferred methods" |
71 | ); | 68 | ); |
72 | 69 | ||
73 | is( | 70 | is( |
74 | objectStore.getValue('not_set_key'), | 71 | objectStore.getValue('not_set_key'), |
75 | null, | 72 | null, |
76 | "accessing a previously undefined key will return null" | 73 | "accessing a previously undefined key will return null" |
77 | ); | 74 | ); |
78 | is( | 75 | is( |
79 | objectStore.getValue('record.not_set_key'), | 76 | objectStore.getValue('record.not_set_key'), |
80 | null, | 77 | null, |
81 | "accessing a previously undefined key will return null, even if part of the path is defined" | 78 | "accessing a previously undefined key will return null, even if part of the path is defined" |
82 | ); | 79 | ); |
83 | is( | 80 | is( |
84 | objectStore.getValue('not_set_path.not_set_key'), | 81 | objectStore.getValue('not_set_path.not_set_key'), |
85 | null, | 82 | null, |
86 | "accessing a previously undefined key will return null, even if using a completely undefined path" | 83 | "accessing a previously undefined key will return null, even if using a completely undefined path" |
87 | ); | 84 | ); |
88 | 85 | ||
89 | objectStore.removeAllData(); | 86 | objectStore.removeAllData(); |
90 | is( | 87 | is( |
91 | objectStore.getValue('key'), | 88 | objectStore.getValue('key'), |
92 | null, | 89 | null, |
93 | "getting a value after a 'removeAllData' return no value" | 90 | "getting a value after a 'removeAllData' return no value" |
94 | ); | 91 | ); |
95 | 92 | ||
96 | }); | 93 | }); |
97 | 94 | ||
98 | deferredResult.callback(); | 95 | deferredResult.callback(); |
99 | 96 | ||
100 | return deferredResult; | 97 | return deferredResult; |
101 | }, | 98 | }, |
102 | 99 | ||
103 | //------------------------------------------------------------------------- | 100 | //------------------------------------------------------------------------- |
104 | 101 | ||
105 | 'simple_deferredGetOrSet_test': function () { | 102 | 'simple_deferredGetOrSet_test': function () { |
106 | vardeferredResult; | 103 | vardeferredResult; |
107 | varobjectStore; | 104 | varobjectStore; |
108 | var testValue; | 105 | var testValue; |
109 | 106 | ||
110 | objectStore = new Clipperz.KeyValueObjectStore(); | 107 | objectStore = new Clipperz.KeyValueObjectStore(); |
111 | testValue = "nifty test value"; | 108 | testValue = "nifty test value"; |
112 | 109 | ||
113 | deferredResult = new Clipperz.Async.Deferred("simple_deferredGetOrSet_test", {trace:false}); | 110 | deferredResult = new Clipperz.Async.Deferred("simple_deferredGetOrSet_test", {trace:false}); |
114 | deferredResult.addMethod(objectStore, 'setValue', 'key', testValue); | 111 | deferredResult.addMethod(objectStore, 'setValue', 'key', testValue); |
115 | deferredResult.addMethod(objectStore, 'deferredGetOrSet', 'key', function() {return testValue}); | 112 | deferredResult.addMethod(objectStore, 'deferredGetOrSet', 'key', function() {return testValue}); |
116 | deferredResult.addCallback(function(aResult) { | 113 | deferredResult.addCallback(function(aResult) { |
117 | SimpleTest.is(aResult, testValue, "deferredGetOrSet works when accessing data already present on the object store"); | 114 | SimpleTest.is(aResult, testValue, "deferredGetOrSet works when accessing data already present on the object store"); |
118 | }) | 115 | }) |
119 | deferredResult.callback(); | 116 | deferredResult.callback(); |
120 | }, | 117 | }, |
diff --git a/frontend/gamma/tests/tests/Clipperz/PM/BookmarkletProcessor.html b/frontend/gamma/tests/tests/Clipperz/PM/BookmarkletProcessor.html index 9bd344e..b61057c 100644 --- a/frontend/gamma/tests/tests/Clipperz/PM/BookmarkletProcessor.html +++ b/frontend/gamma/tests/tests/Clipperz/PM/BookmarkletProcessor.html | |||
@@ -1,59 +1,56 @@ | |||
1 | <!-- | 1 | <!-- |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | --> | 24 | --> |
28 | 25 | ||
29 | <html> | 26 | <html> |
30 | <head> | 27 | <head> |
31 | <title>Clipperz.PM.BookmarkletProcessor - test</title> | 28 | <title>Clipperz.PM.BookmarkletProcessor - test</title> |
32 | 29 | ||
33 | <script type="text/javascript" src="../../../../js/MochiKit/MochiKit.js"></script> | 30 | <script type="text/javascript" src="../../../../js/MochiKit/MochiKit.js"></script> |
34 | <script type="text/javascript" src="../../../SimpleTest/SimpleTest.js"></script> | 31 | <script type="text/javascript" src="../../../SimpleTest/SimpleTest.js"></script> |
35 | <link rel="stylesheet" type="text/css" href="../../../SimpleTest/test.css"> | 32 | <link rel="stylesheet" type="text/css" href="../../../SimpleTest/test.css"> |
36 | 33 | ||
37 | <script type='text/javascript' src='../../../../js/JSON/json2.js'></script> | 34 | <script type='text/javascript' src='../../../../js/JSON/json2.js'></script> |
38 | 35 | ||
39 | <script type='text/javascript' src='../../../../js/Clipperz/YUI/Utils.js'></script> | 36 | <script type='text/javascript' src='../../../../js/Clipperz/YUI/Utils.js'></script> |
40 | <script type='text/javascript' src='../../../../js/Clipperz/Base.js'></script> | 37 | <script type='text/javascript' src='../../../../js/Clipperz/Base.js'></script> |
41 | <script type='text/javascript' src='../../../../js/Clipperz/ByteArray.js'></script> | 38 | <script type='text/javascript' src='../../../../js/Clipperz/ByteArray.js'></script> |
42 | <script type='text/javascript' src='../../../../js/Clipperz/Logging.js'></script> | 39 | <script type='text/javascript' src='../../../../js/Clipperz/Logging.js'></script> |
43 | <script type='text/javascript' src='../../../../js/Clipperz/Async.js'></script> | 40 | <script type='text/javascript' src='../../../../js/Clipperz/Async.js'></script> |
44 | <script type='text/javascript' src='../../../../js/Clipperz/KeyValueObjectStore.js'></script> | 41 | <script type='text/javascript' src='../../../../js/Clipperz/KeyValueObjectStore.js'></script> |
45 | 42 | ||
46 | <script type='text/javascript' src='../../../../js/Clipperz/PM/Strings.js'></script> | 43 | <script type='text/javascript' src='../../../../js/Clipperz/PM/Strings.js'></script> |
47 | <script type='text/javascript' src='../../../../js/Clipperz/PM/Strings/Strings_en-US.js'></script> | 44 | <script type='text/javascript' src='../../../../js/Clipperz/PM/Strings/Strings_en-US.js'></script> |
48 | <script type='text/javascript' src='../../../../js/Clipperz/PM/BookmarkletProcessor.js'></script> | 45 | <script type='text/javascript' src='../../../../js/Clipperz/PM/BookmarkletProcessor.js'></script> |
49 | 46 | ||
50 | <script type="text/javascript" src="../../../SimpleTest/SimpleTest.Async.js"></script> | 47 | <script type="text/javascript" src="../../../SimpleTest/SimpleTest.Async.js"></script> |
51 | 48 | ||
52 | </head> | 49 | </head> |
53 | <body> | 50 | <body> |
54 | 51 | ||
55 | <pre id="test"> | 52 | <pre id="test"> |
56 | <script type="text/javascript" src="BookmarkletProcessor.test.js"></script> | 53 | <script type="text/javascript" src="BookmarkletProcessor.test.js"></script> |
57 | </pre> | 54 | </pre> |
58 | </body> | 55 | </body> |
59 | </html> | 56 | </html> |
diff --git a/frontend/gamma/tests/tests/Clipperz/PM/BookmarkletProcessor.test.js b/frontend/gamma/tests/tests/Clipperz/PM/BookmarkletProcessor.test.js index 21776a3..45bf76b 100644 --- a/frontend/gamma/tests/tests/Clipperz/PM/BookmarkletProcessor.test.js +++ b/frontend/gamma/tests/tests/Clipperz/PM/BookmarkletProcessor.test.js | |||
@@ -1,120 +1,117 @@ | |||
1 | /* | 1 | /* |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | */ | 24 | */ |
28 | 25 | ||
29 | function testBookmarkletConfigurationString (aConfiguration, shouldFail, aMessage) { | 26 | function testBookmarkletConfigurationString (aConfiguration, shouldFail, aMessage) { |
30 | //var configuration; | 27 | //var configuration; |
31 | 28 | ||
32 | //try { | 29 | //try { |
33 | //configuration = Clipperz.Base.evalJSON(aConfiguration); | 30 | //configuration = Clipperz.Base.evalJSON(aConfiguration); |
34 | //} catch (exception) { | 31 | //} catch (exception) { |
35 | //console.log("EXCEPTION", exception); | 32 | //console.log("EXCEPTION", exception); |
36 | //throw exception; | 33 | //throw exception; |
37 | //} | 34 | //} |
38 | 35 | ||
39 | //console.log("configuration", configuration); | 36 | //console.log("configuration", configuration); |
40 | 37 | ||
41 | if (shouldFail == true) { | 38 | if (shouldFail == true) { |
42 | try { | 39 | try { |
43 | Clipperz.PM.BookmarkletProcessor.checkBookmarkletConfiguration(aConfiguration); | 40 | Clipperz.PM.BookmarkletProcessor.checkBookmarkletConfiguration(aConfiguration); |
44 | SimpleTest.ok(false, "vulnerability not caught - " + aMessage); | 41 | SimpleTest.ok(false, "vulnerability not caught - " + aMessage); |
45 | } catch(exception) { | 42 | } catch(exception) { |
46 | SimpleTest.ok(true, "vulnerability correctly caught - " + aMessage); | 43 | SimpleTest.ok(true, "vulnerability correctly caught - " + aMessage); |
47 | } | 44 | } |
48 | } else { | 45 | } else { |
49 | try { | 46 | try { |
50 | Clipperz.PM.BookmarkletProcessor.checkBookmarkletConfiguration(aConfiguration); | 47 | Clipperz.PM.BookmarkletProcessor.checkBookmarkletConfiguration(aConfiguration); |
51 | SimpleTest.ok(true, "configuration correctly checked - " + aMessage); | 48 | SimpleTest.ok(true, "configuration correctly checked - " + aMessage); |
52 | } catch(exception) { | 49 | } catch(exception) { |
53 | SimpleTest.ok(false, "configuration wrongly caught as malicious - " + aMessage); | 50 | SimpleTest.ok(false, "configuration wrongly caught as malicious - " + aMessage); |
54 | // console.log(exception); | 51 | // console.log(exception); |
55 | } | 52 | } |
56 | } | 53 | } |
57 | } | 54 | } |
58 | 55 | ||
59 | //############################################################################# | 56 | //############################################################################# |
60 | 57 | ||
61 | var tests = { | 58 | var tests = { |
62 | 59 | ||
63 | //------------------------------------------------------------------------- | 60 | //------------------------------------------------------------------------- |
64 | 61 | ||
65 | 'simpleAmazonConfiguration_test': function () { | 62 | 'simpleAmazonConfiguration_test': function () { |
66 | var bookmarkletConfigurationString; | 63 | var bookmarkletConfigurationString; |
67 | 64 | ||
68 | bookmarkletConfigurationString = "{"+ | 65 | bookmarkletConfigurationString = "{"+ |
69 | "\"page\": {\"title\": \"Sign In\"},\n" + | 66 | "\"page\": {\"title\": \"Sign In\"},\n" + |
70 | "\"form\": {" + | 67 | "\"form\": {" + |
71 | "\"attributes\": {" + | 68 | "\"attributes\": {" + |
72 | "\"action\": \"https://www.amazon.com/gp/flex/sign-in/select.html\",\n" + | 69 | "\"action\": \"https://www.amazon.com/gp/flex/sign-in/select.html\",\n" + |
73 | "\"method\": \"post\"" + | 70 | "\"method\": \"post\"" + |
74 | "},\n" + | 71 | "},\n" + |
75 | "\"inputs\": [" + | 72 | "\"inputs\": [" + |
76 | "{\"type\": \"hidden\",\n\"name\": \"path\",\n\"value\": \"/gp/yourstore\"},\n" + | 73 | "{\"type\": \"hidden\",\n\"name\": \"path\",\n\"value\": \"/gp/yourstore\"},\n" + |
77 | "{\"type\": \"hidden\",\n\"name\": \"useRedirectOnSuccess\",\n\"value\": \"1\"},\n" + | 74 | "{\"type\": \"hidden\",\n\"name\": \"useRedirectOnSuccess\",\n\"value\": \"1\"},\n" + |
78 | "{\"type\": \"hidden\",\n\"name\": \"query\",\n\"value\": \"signIn=1&action=sign-out&useRedirectOnSuccess=1&path=/gp/yourstore&ref_=pd_irl_gw_r\"},\n" + | 75 | "{\"type\": \"hidden\",\n\"name\": \"query\",\n\"value\": \"signIn=1&action=sign-out&useRedirectOnSuccess=1&path=/gp/yourstore&ref_=pd_irl_gw_r\"},\n" + |
79 | "{\"type\": \"hidden\",\n\"name\": \"mode\",\n\"value\": \"\"},\n" + | 76 | "{\"type\": \"hidden\",\n\"name\": \"mode\",\n\"value\": \"\"},\n" + |
80 | "{\"type\": \"hidden\",\n\"name\": \"redirectProtocol\",\n\"value\": \"\"},\n" + | 77 | "{\"type\": \"hidden\",\n\"name\": \"redirectProtocol\",\n\"value\": \"\"},\n" + |
81 | "{\"type\": \"hidden\",\n\"name\": \"pageAction\",\n\"value\": \"/gp/yourstore\"},\n" + | 78 | "{\"type\": \"hidden\",\n\"name\": \"pageAction\",\n\"value\": \"/gp/yourstore\"},\n" + |
82 | "{\"type\": \"hidden\",\n\"name\": \"disableCorpSignUp\",\n\"value\": \"\"},\n" + | 79 | "{\"type\": \"hidden\",\n\"name\": \"disableCorpSignUp\",\n\"value\": \"\"},\n" + |
83 | "{\"type\": \"hidden\",\n\"name\": \"protocol\",\n\"value\": \"https\"},\n" + | 80 | "{\"type\": \"hidden\",\n\"name\": \"protocol\",\n\"value\": \"https\"},\n" + |
84 | "{\"type\": \"hidden\",\n\"name\": \"sessionId\",\n\"value\": \"105-1479357-7902864\"},\n" + | 81 | "{\"type\": \"hidden\",\n\"name\": \"sessionId\",\n\"value\": \"105-1479357-7902864\"},\n" + |
85 | "{\"type\": \"hidden\",\n\"name\": \"referer\",\n\"value\": \"flex\"},\n" + | 82 | "{\"type\": \"hidden\",\n\"name\": \"referer\",\n\"value\": \"flex\"},\n" + |
86 | "{\"type\": \"text\",\n\"name\": \"email\",\n\"value\": \"\"},\n" + | 83 | "{\"type\": \"text\",\n\"name\": \"email\",\n\"value\": \"\"},\n" + |
87 | "{\"type\": \"password\",\n\"name\": \"password\",\n\"value\": \"\"},\n" + | 84 | "{\"type\": \"password\",\n\"name\": \"password\",\n\"value\": \"\"},\n" + |
88 | "{\"type\": \"hidden\",\n\"name\": \"metadata1\",\n\"value\": \"Firefox 3.0.3 Mac\"},\n" + | 85 | "{\"type\": \"hidden\",\n\"name\": \"metadata1\",\n\"value\": \"Firefox 3.0.3 Mac\"},\n" + |
89 | "{\"type\": \"hidden\",\n\"name\": \"metadataf1\",\n\"value\": \"\"},\n" + | 86 | "{\"type\": \"hidden\",\n\"name\": \"metadataf1\",\n\"value\": \"\"},\n" + |
90 | "{\"type\": \"hidden\",\n\"name\": \"metadata2\",\n\"value\": \"Default Plug-in Java Embedding Plugin 0.9.6.4 Shockwave Flash 90124RealPlayer Plugin QuickTime Plug-in 7.5.5 Flip4Mac Windows Media Plugin 2.2 4||1440-900-878-24-*-*-*\"},\n" + | 87 | "{\"type\": \"hidden\",\n\"name\": \"metadata2\",\n\"value\": \"Default Plug-in Java Embedding Plugin 0.9.6.4 Shockwave Flash 90124RealPlayer Plugin QuickTime Plug-in 7.5.5 Flip4Mac Windows Media Plugin 2.2 4||1440-900-878-24-*-*-*\"},\n" + |
91 | "{\"type\": \"hidden\",\n\"name\": \"metadata3\",\n\"value\": \"timezone: -1 execution time: 3\"},\n" + | 88 | "{\"type\": \"hidden\",\n\"name\": \"metadata3\",\n\"value\": \"timezone: -1 execution time: 3\"},\n" + |
92 | "{\"name\": \"action\",\n\"type\": \"radio\",\n\"options\": [" + | 89 | "{\"name\": \"action\",\n\"type\": \"radio\",\n\"options\": [" + |
93 | "{\"value\": \"new-user\",\n\"checked\": false},\n" + | 90 | "{\"value\": \"new-user\",\n\"checked\": false},\n" + |
94 | "{\"value\": \"sign-in\",\n\"checked\": true}" + | 91 | "{\"value\": \"sign-in\",\n\"checked\": true}" + |
95 | "]}" + | 92 | "]}" + |
96 | "]" + | 93 | "]" + |
97 | "},\n" + | 94 | "},\n" + |
98 | "\"version\": \"0.2.3\"" + | 95 | "\"version\": \"0.2.3\"" + |
99 | "}"; | 96 | "}"; |
100 | testBookmarkletConfigurationString(bookmarkletConfigurationString, false, "regular Amazon.com configuration"); | 97 | testBookmarkletConfigurationString(bookmarkletConfigurationString, false, "regular Amazon.com configuration"); |
101 | }, | 98 | }, |
102 | 99 | ||
103 | //------------------------------------------------------------------------- | 100 | //------------------------------------------------------------------------- |
104 | 101 | ||
105 | 'hackedConfigurationWithXSSAttackVectorReadyToBeTriggeredWhenActivatingTheDirectLogin_test': function () { | 102 | 'hackedConfigurationWithXSSAttackVectorReadyToBeTriggeredWhenActivatingTheDirectLogin_test': function () { |
106 | var bookmarkletConfigurationString; | 103 | var bookmarkletConfigurationString; |
107 | 104 | ||
108 | bookmarkletConfigurationString = "{" + | 105 | bookmarkletConfigurationString = "{" + |
109 | "\"page\": {\"title\": \"Example Attack\"}," + | 106 | "\"page\": {\"title\": \"Example Attack\"}," + |
110 | "\"form\": { " + | 107 | "\"form\": { " + |
111 | "\"attributes\": { " + | 108 | "\"attributes\": { " + |
112 | "\"action\": \"javascript:opener.document.body.innerHTML = 'hacked!';close();\", " + | 109 | "\"action\": \"javascript:opener.document.body.innerHTML = 'hacked!';close();\", " + |
113 | "\"style\": \"-moz-binding:url('http://ha.ckers.org/xssmoz.xml#xss')\", " + | 110 | "\"style\": \"-moz-binding:url('http://ha.ckers.org/xssmoz.xml#xss')\", " + |
114 | "\"method\": null " + | 111 | "\"method\": null " + |
115 | "}, " + | 112 | "}, " + |
116 | "\"inputs\": [" + | 113 | "\"inputs\": [" + |
117 | "{\"type\": \"text\", \"name\": \"username\", \"value\": \"\"}, " + | 114 | "{\"type\": \"text\", \"name\": \"username\", \"value\": \"\"}, " + |
118 | "{\"type\": \"password\", \"name\": \"password\", \"value\": \"\"}" + | 115 | "{\"type\": \"password\", \"name\": \"password\", \"value\": \"\"}" + |
119 | "]" + | 116 | "]" + |
120 | "}," + | 117 | "}," + |
diff --git a/frontend/gamma/tests/tests/Clipperz/PM/Connection.data.js b/frontend/gamma/tests/tests/Clipperz/PM/Connection.data.js index 9dec232..3e01411 100644 --- a/frontend/gamma/tests/tests/Clipperz/PM/Connection.data.js +++ b/frontend/gamma/tests/tests/Clipperz/PM/Connection.data.js | |||
@@ -1,120 +1,117 @@ | |||
1 | /* | 1 | /* |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | */ | 24 | */ |
28 | 25 | ||
29 | testData = { | 26 | testData = { |
30 | 27 | ||
31 | //------------------------------------------------------------------------- | 28 | //------------------------------------------------------------------------- |
32 | 29 | ||
33 | 'joe_clipperz_offline_copy_data': { | 30 | 'joe_clipperz_offline_copy_data': { |
34 | users:{ | 31 | users:{ |
35 | 'catchAllUser': { | 32 | 'catchAllUser': { |
36 | __masterkey_test_value__: 'masterkey', | 33 | __masterkey_test_value__: 'masterkey', |
37 | s: '112233445566778899aabbccddeeff00112233445566778899aabbccddeeff00', | 34 | s: '112233445566778899aabbccddeeff00112233445566778899aabbccddeeff00', |
38 | v: '112233445566778899aabbccddeeff00112233445566778899aabbccddeeff00' | 35 | v: '112233445566778899aabbccddeeff00112233445566778899aabbccddeeff00' |
39 | }, | 36 | }, |
40 | 'f527cdd90d0d47f8524b4e165398ad1455eba515d04abd101d1e93b3c6ae0674': { | 37 | 'f527cdd90d0d47f8524b4e165398ad1455eba515d04abd101d1e93b3c6ae0674': { |
41 | s: '186f0c40bf73f2af236eaa6c429df225efa933050c9aae65240e93b7b362e3ee', | 38 | s: '186f0c40bf73f2af236eaa6c429df225efa933050c9aae65240e93b7b362e3ee', |
42 | v: 'ac61a6e325ecf329926a86084f591d8852d0ad3e4a6080f2adc901b82395ecaf', | 39 | v: 'ac61a6e325ecf329926a86084f591d8852d0ad3e4a6080f2adc901b82395ecaf', |
43 | version: '0.2', | 40 | version: '0.2', |
44 | maxNumberOfRecords: '100', | 41 | maxNumberOfRecords: '100', |
45 | userDetails: '{"records":{"index":{"eeda70e0392261967bda71c3764da78989c45bbd2bb7be6b941b90f81d9b81b5":"0","13a5e52976337ab210903cd04872588e1b21fb72bc183e91aa25c494b8138551":"1","062af892bcfba49ffcff05c56d99b7af2d508358e39c058c2e1fc83531436f80":"2","ca01bcb7691f70818feed46c9a2a91883ac543997a395535aedbb49de166690c":"3","507f38b06d587d8889698ae1ebbba7ef8f0539b82550dd25779fd9ee88fc0c7a":"4","d5f700b9c3367c39551ea49e00a9ab20dae09dd79d46047b983fc7c4bfaa050d":"5","de13c0d036234c44214062bc0a89e5f127470c464333493a485729f43cdc26e4":"6","d620764a656bfd4e1d3758500d5db72e460a0cf729d56ed1a7755b5725c50045":"7","f215d89bf4583c12f5ed4f4330f488dad3fffa448f4dc784f15ef135dda2c732":"8","36ec1a41118813ced3553534fa2607d781cba687768db305beed368a8e06e113":"9","fe21497ef7435d31f9746c132e4b5ecf5aac5f13b5961ddb55d2bdc3409f28f6":"10","6d45c2fec275b7482d41c76b20507100cfb6ab49922b876f9dd3040d361f4a18":"11","9dcd2a8a0fcb7e57d234dc4fea347f020a6a01793e40cf56a0d22379e590e291":"12","6c25be8e145efb26a1abd59590522f73fb2e3dbc139af2217074d9e2ba92c16a":"13","6026370f3db3860d2c46a08e389a7e906dc14f98c8444b21be9a7e9f405a2728":"14","8b18e8593b5bc2f7ea39a5fab222047034ef2f380fee05be0fa6e1c0972fea39":"15","084e23120544603f0297368fd3891a3818e0fe13488e2f2c6079913c8d1bed8d":"16","7bb69b6366a8012f181c01e368ba18d4f7a82bcabb4959189736ad124c4bbfbb":"17","5cdac63b317f3942da38f3a3de3b7f0e5d6678200951c6216230295550f63fb4":"18","c0ce9130ca365bb02418d4305ea1d29e49c3f0e96d44b9d3cb6b4b6843d25065":"19"},"data":"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"},"directLogins":{"index":{"61e87fdc4f1d9112e3b30c1f6812d095dcdb24f014c83319091eb6c9899ec348":"0","989593d4c48929f0c8f1581aa96969c622807e99619ed4732026e967530a68ad":"1","9f7979368fa29f66c44bd97ecaf6c545abc800b1c7bb21b7655a68e1514c3906":"2","dba0db679802f0e6aa6d0b7a6aaf42350aabc5f057409edd99a268a92ebb6496":"3","aa18149164302d5dbe7e2d3724565b9550e00887b49978559783b2e38c625584":"4","1f9bfd677b531a03168d3f8bd8afabb5357244a7bc355dff50bd6c0a072114a6":"5","a48e38845713462ecc9f827149eeaae87da882031f98ef8ebbf9ee9537b63468":"6","6f7bbc4e42ea462b5246e6f51c3f86056bec50601ce2de6067c8c1d26f21c07f":"7","2df54059e78f5771f23bd285cce19595b38331b73d67020424d9a1b2257db09c":"8","065cd0c270e5e8ce50e4ea8e3828dccdae18c01ab030813d756a87d03fe68784":"9","ddbc8d01300a4f10631cbde09e1246332eade3a877a2205209f9eb9e5bc9da0b":"10","9b7a30e667afc9f76ba77600658b2c13bff52432d444261d39bf3d069a160afe":"11","9fd2929cde3d32d9cbc5f1d787f2f64729a5e12a14410556b31c0c099762c46a":"12","f695fc36ac56bead80c0d20a88e01e382819c18dc268f1679551b7c83db7cb14":"13","f22dc41ffabef4b3bc8f7af804fec975bd50718098322a673cbe4aaff9464ae1":"14","03251dc1cbc5398789e4c4b45c52cfac3fcd8c1a4f19a81fa68fc6feae31d55c":"15","a7b32e72502804bf2946a2a8856139cbbb759c5777e6b3e673db1fdf7e3bd06e":"16","cb9ae0bba1957075ccdbfd3b3481704d62087687a2ac7c411a4f07d444bde0f7":"17","7e1d069b7fa57c03bd7bf48807520feb953157834503aaff8c9d493f37dea69d":"18","24404059cabc63b2dbff0f42ba57183108b8189ef53ab62fa25141a1caea824b":"19","33cf9758477460a8056deef0295a1ebe65b39b392c361ceb920a83edacfe5d78":"20","e9a16316f330e3d150f6ffd194f6fd8acd1426757b097de4b88ca0db875202e4":"21"},"data":"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"},"preferences":{"data":"EZMrwxNFFd1sMGycoYE7IrlGGrfLixLUnLZmWMkFysfISe2ay3ueO0PGCApuKqh9hA=="},"oneTimePasswords":{"data":"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"},"version":"0.1"}', | 42 | userDetails: '{"records":{"index":{"eeda70e0392261967bda71c3764da78989c45bbd2bb7be6b941b90f81d9b81b5":"0","13a5e52976337ab210903cd04872588e1b21fb72bc183e91aa25c494b8138551":"1","062af892bcfba49ffcff05c56d99b7af2d508358e39c058c2e1fc83531436f80":"2","ca01bcb7691f70818feed46c9a2a91883ac543997a395535aedbb49de166690c":"3","507f38b06d587d8889698ae1ebbba7ef8f0539b82550dd25779fd9ee88fc0c7a":"4","d5f700b9c3367c39551ea49e00a9ab20dae09dd79d46047b983fc7c4bfaa050d":"5","de13c0d036234c44214062bc0a89e5f127470c464333493a485729f43cdc26e4":"6","d620764a656bfd4e1d3758500d5db72e460a0cf729d56ed1a7755b5725c50045":"7","f215d89bf4583c12f5ed4f4330f488dad3fffa448f4dc784f15ef135dda2c732":"8","36ec1a41118813ced3553534fa2607d781cba687768db305beed368a8e06e113":"9","fe21497ef7435d31f9746c132e4b5ecf5aac5f13b5961ddb55d2bdc3409f28f6":"10","6d45c2fec275b7482d41c76b20507100cfb6ab49922b876f9dd3040d361f4a18":"11","9dcd2a8a0fcb7e57d234dc4fea347f020a6a01793e40cf56a0d22379e590e291":"12","6c25be8e145efb26a1abd59590522f73fb2e3dbc139af2217074d9e2ba92c16a":"13","6026370f3db3860d2c46a08e389a7e906dc14f98c8444b21be9a7e9f405a2728":"14","8b18e8593b5bc2f7ea39a5fab222047034ef2f380fee05be0fa6e1c0972fea39":"15","084e23120544603f0297368fd3891a3818e0fe13488e2f2c6079913c8d1bed8d":"16","7bb69b6366a8012f181c01e368ba18d4f7a82bcabb4959189736ad124c4bbfbb":"17","5cdac63b317f3942da38f3a3de3b7f0e5d6678200951c6216230295550f63fb4":"18","c0ce9130ca365bb02418d4305ea1d29e49c3f0e96d44b9d3cb6b4b6843d25065":"19"},"data":"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"},"directLogins":{"index":{"61e87fdc4f1d9112e3b30c1f6812d095dcdb24f014c83319091eb6c9899ec348":"0","989593d4c48929f0c8f1581aa96969c622807e99619ed4732026e967530a68ad":"1","9f7979368fa29f66c44bd97ecaf6c545abc800b1c7bb21b7655a68e1514c3906":"2","dba0db679802f0e6aa6d0b7a6aaf42350aabc5f057409edd99a268a92ebb6496":"3","aa18149164302d5dbe7e2d3724565b9550e00887b49978559783b2e38c625584":"4","1f9bfd677b531a03168d3f8bd8afabb5357244a7bc355dff50bd6c0a072114a6":"5","a48e38845713462ecc9f827149eeaae87da882031f98ef8ebbf9ee9537b63468":"6","6f7bbc4e42ea462b5246e6f51c3f86056bec50601ce2de6067c8c1d26f21c07f":"7","2df54059e78f5771f23bd285cce19595b38331b73d67020424d9a1b2257db09c":"8","065cd0c270e5e8ce50e4ea8e3828dccdae18c01ab030813d756a87d03fe68784":"9","ddbc8d01300a4f10631cbde09e1246332eade3a877a2205209f9eb9e5bc9da0b":"10","9b7a30e667afc9f76ba77600658b2c13bff52432d444261d39bf3d069a160afe":"11","9fd2929cde3d32d9cbc5f1d787f2f64729a5e12a14410556b31c0c099762c46a":"12","f695fc36ac56bead80c0d20a88e01e382819c18dc268f1679551b7c83db7cb14":"13","f22dc41ffabef4b3bc8f7af804fec975bd50718098322a673cbe4aaff9464ae1":"14","03251dc1cbc5398789e4c4b45c52cfac3fcd8c1a4f19a81fa68fc6feae31d55c":"15","a7b32e72502804bf2946a2a8856139cbbb759c5777e6b3e673db1fdf7e3bd06e":"16","cb9ae0bba1957075ccdbfd3b3481704d62087687a2ac7c411a4f07d444bde0f7":"17","7e1d069b7fa57c03bd7bf48807520feb953157834503aaff8c9d493f37dea69d":"18","24404059cabc63b2dbff0f42ba57183108b8189ef53ab62fa25141a1caea824b":"19","33cf9758477460a8056deef0295a1ebe65b39b392c361ceb920a83edacfe5d78":"20","e9a16316f330e3d150f6ffd194f6fd8acd1426757b097de4b88ca0db875202e4":"21"},"data":"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"},"preferences":{"data":"EZMrwxNFFd1sMGycoYE7IrlGGrfLixLUnLZmWMkFysfISe2ay3ueO0PGCApuKqh9hA=="},"oneTimePasswords":{"data":"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"},"version":"0.1"}', |
46 | statistics: 'SfGy/4mpXQdDOv+Bcfie4Yt/', | 43 | statistics: 'SfGy/4mpXQdDOv+Bcfie4Yt/', |
47 | userDetailsVersion: '0.3', | 44 | userDetailsVersion: '0.3', |
48 | records: { | 45 | records: { |
49 | '062af892bcfba49ffcff05c56d99b7af2d508358e39c058c2e1fc83531436f80': { | 46 | '062af892bcfba49ffcff05c56d99b7af2d508358e39c058c2e1fc83531436f80': { |
50 | data: '7sgxSQlqR+wh3g06M2+sWp7raQxjjQ9jLIz2OcEB7SckuQcXNrhMlDCbL6ncSljtzgqhioWrOB409kIG8lc7h6ekghOE/Mhi7rVwAiRfNGB7r3mYxpEXRe96O2RG7E+NcSp8ezl+5gJ9D0o1abXPeFQYGcr95hUioCfyY+xrxY8TJVwdb9nHkYvBdKV7rCl1dTxgsKWK3nlo1T7e5uyiz5YUAE6BrCtTFAqtprLI/xOpRti9C+llohS7D6s8hkCBPZfp3chKFDrgpsCBFLhXN8jrBKSjHi1PJdRQzpJsgrxyeBj0dZx3gTsYOXqrYgdIzFUo7K1Tqb30yNprBiDMr7j0YYXiSvEb7OuOIP+HTXGN+yt09bk9LggyY6Fh0e+tenjQQ3soySN/XznOBpEjXbzXoz6fR1MXVnE9GgaX99LVNqwWfq2rIBdSE/FfspRiWP3BY5jIrEkNeRclS05U1zw3K3wxOL+cB9r2IynSXnK8QcrDNNRZ0W3PhsSFfByUXuviLSEOPuJa1mYP29L9Lj/WyHL1Gyl8xLbt2H41S6+wvIleKMuc7teH6wPXbnYphvbwBowoI6HZTEFkz3dQKhhY6VF/81iCXsuaz6BjyrzFX6SkQ4S3lN1tv4opQMJFvnmHb6EkXqVWfeIXzJIJO+owL4vDOf4okpAD+HPjjlVXhq6fvyM5UBIK9+tzJW78X/zifrQOfWRIhwjVsfUdZWmZ/S35vnHWNuXkM8GBYrDysqxanDtah3U8XLAiIhFtBOzpzr6qGaNDOKKgG3K8QXT4bYHOq1rQVUwzQuKhlCyStrRMQrC5Ry251xmLy6dKfppRarVeGDtzB/30BbtFNdZmzMNG2g+Jj5tFCrEtCMvMiQEWZHMU3tGMFxDef/KKdv1fFTJC16jmaUiCHUZmNjB3EO9R6xPVcMlAVKf57n3efrpRk/GTmm9JhAFkuF/wsveH4JjPpDUdkHYFu5tHbb30sbga3ufBAXbQL4ck10S24akU/cKraFGLvuKGaR2U0i6ih911TBSf3pAfZ3RFbBhVIl+6rSknC5+IXoBR7MRstBPW/xC9pQVjN5Qyn0g3aUjUSI+q4jcTuvMl32NtTJbWRMGhfkrpVzypZTyPnIh6XJkyBghlUARXw23MlbjiZxmY4ScDmcWZRZJWIknHlqjDKFDKNnwrfnEI9qWyMDno+jA/DEQz0mnpdZYEsoz1/qAmAeDt89vx', | 47 | data: '7sgxSQlqR+wh3g06M2+sWp7raQxjjQ9jLIz2OcEB7SckuQcXNrhMlDCbL6ncSljtzgqhioWrOB409kIG8lc7h6ekghOE/Mhi7rVwAiRfNGB7r3mYxpEXRe96O2RG7E+NcSp8ezl+5gJ9D0o1abXPeFQYGcr95hUioCfyY+xrxY8TJVwdb9nHkYvBdKV7rCl1dTxgsKWK3nlo1T7e5uyiz5YUAE6BrCtTFAqtprLI/xOpRti9C+llohS7D6s8hkCBPZfp3chKFDrgpsCBFLhXN8jrBKSjHi1PJdRQzpJsgrxyeBj0dZx3gTsYOXqrYgdIzFUo7K1Tqb30yNprBiDMr7j0YYXiSvEb7OuOIP+HTXGN+yt09bk9LggyY6Fh0e+tenjQQ3soySN/XznOBpEjXbzXoz6fR1MXVnE9GgaX99LVNqwWfq2rIBdSE/FfspRiWP3BY5jIrEkNeRclS05U1zw3K3wxOL+cB9r2IynSXnK8QcrDNNRZ0W3PhsSFfByUXuviLSEOPuJa1mYP29L9Lj/WyHL1Gyl8xLbt2H41S6+wvIleKMuc7teH6wPXbnYphvbwBowoI6HZTEFkz3dQKhhY6VF/81iCXsuaz6BjyrzFX6SkQ4S3lN1tv4opQMJFvnmHb6EkXqVWfeIXzJIJO+owL4vDOf4okpAD+HPjjlVXhq6fvyM5UBIK9+tzJW78X/zifrQOfWRIhwjVsfUdZWmZ/S35vnHWNuXkM8GBYrDysqxanDtah3U8XLAiIhFtBOzpzr6qGaNDOKKgG3K8QXT4bYHOq1rQVUwzQuKhlCyStrRMQrC5Ry251xmLy6dKfppRarVeGDtzB/30BbtFNdZmzMNG2g+Jj5tFCrEtCMvMiQEWZHMU3tGMFxDef/KKdv1fFTJC16jmaUiCHUZmNjB3EO9R6xPVcMlAVKf57n3efrpRk/GTmm9JhAFkuF/wsveH4JjPpDUdkHYFu5tHbb30sbga3ufBAXbQL4ck10S24akU/cKraFGLvuKGaR2U0i6ih911TBSf3pAfZ3RFbBhVIl+6rSknC5+IXoBR7MRstBPW/xC9pQVjN5Qyn0g3aUjUSI+q4jcTuvMl32NtTJbWRMGhfkrpVzypZTyPnIh6XJkyBghlUARXw23MlbjiZxmY4ScDmcWZRZJWIknHlqjDKFDKNnwrfnEI9qWyMDno+jA/DEQz0mnpdZYEsoz1/qAmAeDt89vx', |
51 | version: '0.2', | 48 | version: '0.2', |
52 | creationDate: 'Wed Mar 14 15:46:44 CET 2007', | 49 | creationDate: 'Wed Mar 14 15:46:44 CET 2007', |
53 | updateDate: 'Wed Mar 14 15:46:44 CET 2007', | 50 | updateDate: 'Wed Mar 14 15:46:44 CET 2007', |
54 | accessDate: 'Mon Jan 19 16:10:04 CET 2009', | 51 | accessDate: 'Mon Jan 19 16:10:04 CET 2009', |
55 | currentVersion: '4a70ca20167875a936d4540f19980e972c20f329a65d85e9b0ce709f1fc7c7e3', | 52 | currentVersion: '4a70ca20167875a936d4540f19980e972c20f329a65d85e9b0ce709f1fc7c7e3', |
56 | versions: { | 53 | versions: { |
57 | '4a70ca20167875a936d4540f19980e972c20f329a65d85e9b0ce709f1fc7c7e3': { | 54 | '4a70ca20167875a936d4540f19980e972c20f329a65d85e9b0ce709f1fc7c7e3': { |
58 | header: '####', | 55 | header: '####', |
59 | data: 'GCNNIhDQjMJQZGVSf+95fPtU6eOnFWVhuGm86r8WZGVR2Gf2EjbG1OJ0ZIGpZ/AXgirCMpo5AFxJe0Bay8IYg+xmBqMFhwFxzAgJBYCIts+raSaNRipuY8dTEqDxAqD1cChcG8EhSoiFgQ0fG0I7nNEUDJi0pIt4/ygBcwvAhuAenEp9ZW+oQA0+YysPQRqkz3IieFaOoSEbe5/SqpUilV4q1gTVyzNXvrxzxx+rlvEyGFgFN+vgtUZ1NrwlPk4gVksTpylvv6CFaMGEWKhgMG6efo0rJckKosaJTu1pldJdnmMK4EKNMLOd+jZ6pEhEhYyadrA4+zYU5TlmZA6ASzTaps8piSwZodoi9qY0ch2StK4mAbzeEGe2HdfHuAU9Tyq3Ppk3+VfNdKgpQfYrQOiSlXbKzK636tzXTN/gyrfOTHjBrRl117ywibgSX63ayAYNfcLpKotC', | 56 | data: 'GCNNIhDQjMJQZGVSf+95fPtU6eOnFWVhuGm86r8WZGVR2Gf2EjbG1OJ0ZIGpZ/AXgirCMpo5AFxJe0Bay8IYg+xmBqMFhwFxzAgJBYCIts+raSaNRipuY8dTEqDxAqD1cChcG8EhSoiFgQ0fG0I7nNEUDJi0pIt4/ygBcwvAhuAenEp9ZW+oQA0+YysPQRqkz3IieFaOoSEbe5/SqpUilV4q1gTVyzNXvrxzxx+rlvEyGFgFN+vgtUZ1NrwlPk4gVksTpylvv6CFaMGEWKhgMG6efo0rJckKosaJTu1pldJdnmMK4EKNMLOd+jZ6pEhEhYyadrA4+zYU5TlmZA6ASzTaps8piSwZodoi9qY0ch2StK4mAbzeEGe2HdfHuAU9Tyq3Ppk3+VfNdKgpQfYrQOiSlXbKzK636tzXTN/gyrfOTHjBrRl117ywibgSX63ayAYNfcLpKotC', |
60 | version: '0.2', | 57 | version: '0.2', |
61 | creationDate: 'Wed Mar 14 15:46:44 CET 2007', | 58 | creationDate: 'Wed Mar 14 15:46:44 CET 2007', |
62 | updateDate: 'Wed Mar 14 15:46:44 CET 2007', | 59 | updateDate: 'Wed Mar 14 15:46:44 CET 2007', |
63 | accessDate: 'Mon Jan 19 16:10:04 CET 2009' | 60 | accessDate: 'Mon Jan 19 16:10:04 CET 2009' |
64 | } | 61 | } |
65 | } | 62 | } |
66 | }, | 63 | }, |
67 | '084e23120544603f0297368fd3891a3818e0fe13488e2f2c6079913c8d1bed8d': { | 64 | '084e23120544603f0297368fd3891a3818e0fe13488e2f2c6079913c8d1bed8d': { |
68 | data: 'fGzBu1On7e/6rAoSB1a4fq/CkS8Be/T8UP5cQ93asBTWndSYu2lW4DQ4SXQXSindIi3OnNx/f6SNv/extb7OrMLREF92wXI045ipPwy+DIICb+cQNMJ82Sh4cXaIcAWcyrm+MYri3qq9LBKbpwkILcebZidJ86lmKYHJozUezmfbMcwNCljHs/gYkHVzVcuw9L52Ugc6wC7sjsshh+UH6i4/2Frlrophtx+b1vervNd8eoYiKnedHVXVfW7UJcQoF27eHFgzwYnGvRW0KNXFFhqmPb61TSkIvNdCCvBKDP4SXrWvGgzU89wipvWdUPpQ+fCT6Mp3hPRrbJxwMunmjujZOzBld/HkjnXoiNfBb5akA280WvdyzWYATrjV1ZFx8yQY8G0+lRt/MxjKDc38w4y+Rf5WeRbXboJMvFatwooHUggk6qSRmZVvgOmFmNuDRnRYIFzqK3JclhJeVasnqhR6RiGSowc1Ffr1HhcZCMnXpQABGBkZcHD/zw6YjHRyh9Plw7XAm0xb16HMDtiwt7WLJpxLH/HP99j/A2hvMGWiUiFCaYv7AzyEPTmYbN32D1IsAEE/GC3FG0HypGTBolP8wpAfTRdlvWpJz8oRRdwuLV3Pgpu+kXh5sQyeZI6tnuMPQFmRDcMN1oo3E5V5V585nVMnKTFcXhBzD4UnoV+DQNkG/+iSPybQzz/EZmucEqGEYyjI3kl4MAX8UMEUxE4JO0fF8MzyBI13nxknowAceEammx1dGVaJCoIOdhadaPVPyOzXM1Vp1erVm5k4TsxSx1pll+GOm6hVoNHIuQLDueaMEpRxMhfwc8cDyXURqRGPTgTc0bint5xVjo10fnpX1gcdc/AWL6y3tXM80NW+uFJ4GI7VzyzfcMRzTiRaGi19z8MIx8PbIVGh2sw4FhgGujNsPrpuESvUVT+17M0+v8oEoABNlcizTMFs/sA1uqlPumFASltzmViAzClOsDuCh069hFLjdk/Ex5jy4vPYlwOT8Uq9DJC9ZWuZgiI1DrhWN/8QGAEGxxbvnSZPNCQ9kpD5p+iabinLLWOAirVNgKwIRJRyAu/uR9xKd7J9Wxq8q/ii+y5lGilbo2g24wbDwrkXYVhqp/4J0g+p8Wv1NBjCTSCqV39WEizUCRHo3ee9HnQnBJQDOyTBRuz2odTJtJ5tLYjWXZRdFzFSJrEq+Z1z3oq7LnhZy3YWaFXPeKmBCemMthtNt0nL', | 65 | data: 'fGzBu1On7e/6rAoSB1a4fq/CkS8Be/T8UP5cQ93asBTWndSYu2lW4DQ4SXQXSindIi3OnNx/f6SNv/extb7OrMLREF92wXI045ipPwy+DIICb+cQNMJ82Sh4cXaIcAWcyrm+MYri3qq9LBKbpwkILcebZidJ86lmKYHJozUezmfbMcwNCljHs/gYkHVzVcuw9L52Ugc6wC7sjsshh+UH6i4/2Frlrophtx+b1vervNd8eoYiKnedHVXVfW7UJcQoF27eHFgzwYnGvRW0KNXFFhqmPb61TSkIvNdCCvBKDP4SXrWvGgzU89wipvWdUPpQ+fCT6Mp3hPRrbJxwMunmjujZOzBld/HkjnXoiNfBb5akA280WvdyzWYATrjV1ZFx8yQY8G0+lRt/MxjKDc38w4y+Rf5WeRbXboJMvFatwooHUggk6qSRmZVvgOmFmNuDRnRYIFzqK3JclhJeVasnqhR6RiGSowc1Ffr1HhcZCMnXpQABGBkZcHD/zw6YjHRyh9Plw7XAm0xb16HMDtiwt7WLJpxLH/HP99j/A2hvMGWiUiFCaYv7AzyEPTmYbN32D1IsAEE/GC3FG0HypGTBolP8wpAfTRdlvWpJz8oRRdwuLV3Pgpu+kXh5sQyeZI6tnuMPQFmRDcMN1oo3E5V5V585nVMnKTFcXhBzD4UnoV+DQNkG/+iSPybQzz/EZmucEqGEYyjI3kl4MAX8UMEUxE4JO0fF8MzyBI13nxknowAceEammx1dGVaJCoIOdhadaPVPyOzXM1Vp1erVm5k4TsxSx1pll+GOm6hVoNHIuQLDueaMEpRxMhfwc8cDyXURqRGPTgTc0bint5xVjo10fnpX1gcdc/AWL6y3tXM80NW+uFJ4GI7VzyzfcMRzTiRaGi19z8MIx8PbIVGh2sw4FhgGujNsPrpuESvUVT+17M0+v8oEoABNlcizTMFs/sA1uqlPumFASltzmViAzClOsDuCh069hFLjdk/Ex5jy4vPYlwOT8Uq9DJC9ZWuZgiI1DrhWN/8QGAEGxxbvnSZPNCQ9kpD5p+iabinLLWOAirVNgKwIRJRyAu/uR9xKd7J9Wxq8q/ii+y5lGilbo2g24wbDwrkXYVhqp/4J0g+p8Wv1NBjCTSCqV39WEizUCRHo3ee9HnQnBJQDOyTBRuz2odTJtJ5tLYjWXZRdFzFSJrEq+Z1z3oq7LnhZy3YWaFXPeKmBCemMthtNt0nL', |
69 | version: '0.3', | 66 | version: '0.3', |
70 | creationDate: 'Fri Oct 17 16:49:20 CEST 2008', | 67 | creationDate: 'Fri Oct 17 16:49:20 CEST 2008', |
71 | updateDate: 'Mon Oct 27 08:58:49 CET 2008', | 68 | updateDate: 'Mon Oct 27 08:58:49 CET 2008', |
72 | accessDate: 'Mon Jan 19 16:09:39 CET 2009', | 69 | accessDate: 'Mon Jan 19 16:09:39 CET 2009', |
73 | currentVersion: '6fd60c5709a4808444f43f7bbd872363d76703957f613076538ba2f9161206ac', | 70 | currentVersion: '6fd60c5709a4808444f43f7bbd872363d76703957f613076538ba2f9161206ac', |
74 | versions: { | 71 | versions: { |
75 | '0ae362285f103722abbd046eee2b7d10aeae6a1d05cbaf2081392ce9df882bcf': { | 72 | '0ae362285f103722abbd046eee2b7d10aeae6a1d05cbaf2081392ce9df882bcf': { |
76 | header: '####', | 73 | header: '####', |
77 | data: 'sG6TUmPSEPFpiJ5YdtghWHmHbvUK63tZCZ+Q5iz2ALas//jN+lZCBhZcjEwPEJskBkK2R0MyAh14wWGh2bBHMjsokgTe+L+x+0c/Zi0epE/IC9gtOBhsTe/hZ2e2xOGF/SbzET3DAAYXvxduZ36f7SvvFnrkkKvpj8wGSdTFcBmzqMb9DL2bRyRCLGLMzE3F1a0q5CufCIRz2TgHm+Uw+kfvvwC7ig/F/5iLW90Ypz3vmEtMEFYFHZ9a8Oh0rsXGfevbMhFqALoywzihQEe/NiB8dwn7GEdYKSQ35rhvZh29ULWOZinqmg0ONe0HYaxx7DbKsVoue57S0CIUlgHLajzHfLfqQg2sFI0OT8TnHsGg0YZ6mM2EdKmEjJiER0cP', | 74 | data: 'sG6TUmPSEPFpiJ5YdtghWHmHbvUK63tZCZ+Q5iz2ALas//jN+lZCBhZcjEwPEJskBkK2R0MyAh14wWGh2bBHMjsokgTe+L+x+0c/Zi0epE/IC9gtOBhsTe/hZ2e2xOGF/SbzET3DAAYXvxduZ36f7SvvFnrkkKvpj8wGSdTFcBmzqMb9DL2bRyRCLGLMzE3F1a0q5CufCIRz2TgHm+Uw+kfvvwC7ig/F/5iLW90Ypz3vmEtMEFYFHZ9a8Oh0rsXGfevbMhFqALoywzihQEe/NiB8dwn7GEdYKSQ35rhvZh29ULWOZinqmg0ONe0HYaxx7DbKsVoue57S0CIUlgHLajzHfLfqQg2sFI0OT8TnHsGg0YZ6mM2EdKmEjJiER0cP', |
78 | version: '0.3', | 75 | version: '0.3', |
79 | creationDate: 'Fri Oct 17 17:00:31 CEST 2008', | 76 | creationDate: 'Fri Oct 17 17:00:31 CEST 2008', |
80 | updateDate: 'Fri Oct 17 17:00:31 CEST 2008', | 77 | updateDate: 'Fri Oct 17 17:00:31 CEST 2008', |
81 | accessDate: 'Fri Oct 17 17:00:31 CEST 2008' | 78 | accessDate: 'Fri Oct 17 17:00:31 CEST 2008' |
82 | }, | 79 | }, |
83 | '10f45664bbd979a92f37886f1ecc6e52e49798b16dc997aecd37259ad9b2090e': { | 80 | '10f45664bbd979a92f37886f1ecc6e52e49798b16dc997aecd37259ad9b2090e': { |
84 | header: '####', | 81 | header: '####', |
85 | data: 'RdKVaV/WWWchrCse3KtcXd47Bfm6IAwjqVUpaxoed3HeunI42AAm7xYYSjeK8edHpbNRJbhobBAX5OZtWIp/HmgkobKM8CIiWxrWz89FqyrbnPD7+fXdtgF2yTax/0sC1l0ibncdOuJKX6U829oPlXCpXIOjlomc4wEEAD/5V6FbORvdZ9IE/ME3LsG2y02cT2tIpx6+R6wC/PKXhZA2UDsTE6R2Op2BtIzpVORZLXsdyAp/4wvWQxq90i9cEpbsVQsMB10JVyNHNsRTFhIlHi9MVCaMxQvcrwRElMj/Y9x3RbsFzSGKqFLqdg7Fn/U+KYkpYtsgHv9hraPIb9lV5FH16+iItU/HBM6FGezIj1ZkoQ+dgjPfSjTZzgzDYwyb', | 82 | data: 'RdKVaV/WWWchrCse3KtcXd47Bfm6IAwjqVUpaxoed3HeunI42AAm7xYYSjeK8edHpbNRJbhobBAX5OZtWIp/HmgkobKM8CIiWxrWz89FqyrbnPD7+fXdtgF2yTax/0sC1l0ibncdOuJKX6U829oPlXCpXIOjlomc4wEEAD/5V6FbORvdZ9IE/ME3LsG2y02cT2tIpx6+R6wC/PKXhZA2UDsTE6R2Op2BtIzpVORZLXsdyAp/4wvWQxq90i9cEpbsVQsMB10JVyNHNsRTFhIlHi9MVCaMxQvcrwRElMj/Y9x3RbsFzSGKqFLqdg7Fn/U+KYkpYtsgHv9hraPIb9lV5FH16+iItU/HBM6FGezIj1ZkoQ+dgjPfSjTZzgzDYwyb', |
86 | version: '0.3', | 83 | version: '0.3', |
87 | creationDate: 'Fri Oct 17 16:49:20 CEST 2008', | 84 | creationDate: 'Fri Oct 17 16:49:20 CEST 2008', |
88 | updateDate: 'Fri Oct 17 16:49:20 CEST 2008', | 85 | updateDate: 'Fri Oct 17 16:49:20 CEST 2008', |
89 | accessDate: 'Fri Oct 17 16:54:23 CEST 2008' | 86 | accessDate: 'Fri Oct 17 16:54:23 CEST 2008' |
90 | }, | 87 | }, |
91 | '2fa7b67e569d5e268d2b70b3d4d3a960d7e437e1937bcb324b67d0b9441db8ba': { | 88 | '2fa7b67e569d5e268d2b70b3d4d3a960d7e437e1937bcb324b67d0b9441db8ba': { |
92 | header: '####', | 89 | header: '####', |
93 | data: 'dpnI2qKjk0+bfyKktw4ZCWf+rWZ12hO5bda39CwD29JH7KtdpLCLe2LoLd+KKF2wOdpDsoI2iTiwRgFpt77e7DoWJABxq/0aaRCVN9XpqZo08iHiYhJyNlIszO8CdEhX+M3AeZqzTnd6fs91VfIEWggvku2Z+jwr0CbclY6FnOcNnS+1fj+W79Z9XC383GOm2ujjfo3SX/fyNQSw8aX+7AgJIRGR9uHK7M1cVfsNNTbmDb/HDgLlYZ1Pqm/9poHpmS7G4HUoRM2/WjI0R6F48dy5s8vZRi11SCnlnj5oRykScJj6wh2DltbCyesiaTpAjP6MQjTXsZzKpaosaQcQClZw+w6hDD2cA54IaBIv2j5KAHyhxDh2ERdwbdnCsDKPz4+zP+fmKfW295d4OY0l1NCSdcY+75HWTmBWRAooZeDTo7AE8m5sRwxewE0Y8J2MLUYsrs7Rl4kbZCiRRHU7cs+us3fq2DVn2OLGEbkRrK3kA9swT9W8ABqINoA79+DmDaIr6TGxe5AlHkCAl5sYAN4g42UX1NKhl4fWI1Scj9O1Ixds/1UUvqzavld0mE2cR9yt6LntjE5sQSAaexvymAJbU5IIM5NTk7NlY7G3PEvAPjcUsL9SGw==', | 90 | data: 'dpnI2qKjk0+bfyKktw4ZCWf+rWZ12hO5bda39CwD29JH7KtdpLCLe2LoLd+KKF2wOdpDsoI2iTiwRgFpt77e7DoWJABxq/0aaRCVN9XpqZo08iHiYhJyNlIszO8CdEhX+M3AeZqzTnd6fs91VfIEWggvku2Z+jwr0CbclY6FnOcNnS+1fj+W79Z9XC383GOm2ujjfo3SX/fyNQSw8aX+7AgJIRGR9uHK7M1cVfsNNTbmDb/HDgLlYZ1Pqm/9poHpmS7G4HUoRM2/WjI0R6F48dy5s8vZRi11SCnlnj5oRykScJj6wh2DltbCyesiaTpAjP6MQjTXsZzKpaosaQcQClZw+w6hDD2cA54IaBIv2j5KAHyhxDh2ERdwbdnCsDKPz4+zP+fmKfW295d4OY0l1NCSdcY+75HWTmBWRAooZeDTo7AE8m5sRwxewE0Y8J2MLUYsrs7Rl4kbZCiRRHU7cs+us3fq2DVn2OLGEbkRrK3kA9swT9W8ABqINoA79+DmDaIr6TGxe5AlHkCAl5sYAN4g42UX1NKhl4fWI1Scj9O1Ixds/1UUvqzavld0mE2cR9yt6LntjE5sQSAaexvymAJbU5IIM5NTk7NlY7G3PEvAPjcUsL9SGw==', |
94 | version: '0.3', | 91 | version: '0.3', |
95 | creationDate: 'Fri Oct 17 17:00:13 CEST 2008', | 92 | creationDate: 'Fri Oct 17 17:00:13 CEST 2008', |
96 | updateDate: 'Fri Oct 17 17:00:13 CEST 2008', | 93 | updateDate: 'Fri Oct 17 17:00:13 CEST 2008', |
97 | accessDate: 'Fri Oct 17 17:00:13 CEST 2008' | 94 | accessDate: 'Fri Oct 17 17:00:13 CEST 2008' |
98 | }, | 95 | }, |
99 | '5a17723c34226d8cd663f91b11bfa14979e694e461818113ec8abf7194b46b6b': { | 96 | '5a17723c34226d8cd663f91b11bfa14979e694e461818113ec8abf7194b46b6b': { |
100 | header: '####', | 97 | header: '####', |
101 | data: 'yRTvhkoY9zDRBwFYf0G5U8zhfS1XWIUfwes6ADNnFyOrHOr7JZvZZHSgkOPnsmN/f5ngcvFaIV9X3TNTmmPLzD/ewgGVMR+ofMLyOIMGhxUDzosSd1+HKqwDZWneZ6xNsci87W8UCfJgoEGrkAtAwktqyS04pcAas74XiRGBWNcv5mHZONwGPckYUnnaVG02Zf+qif6Pp7ugdvXrgncO5oi2AMSoR8GQxMP+tX53YzLwOpabA32PDT6o+aDPwMstJNQjWCXjeYLDIlb0GjL2zgjglX5CfdGw8vNT5hwGEK2D1FkvHkw79m++9sOWd5w9WdGgtS4mrTZP3JHWC1sPqvsIpq6PsrzRrbfCFH7C4X/ya5ciOIZTCNl4dEGAif94zgN74ueY5BF31PNFtaRaQ1waKkbsrU63MrbQbBar9b0hDZoser3BdgDGb1Ecc2GbJM1HbDITttmFDrzy/Ugh2kistHx7Dci8IGgfT7K94TntRFc5R6suEqYRrmOn57YJTZYrwSgbeTqAt/KOE+gL9LawiLJ0IdSC2RQnO3yu/aOEThHxpdLIKiVJoiEQXYVnq2UpnO79GNtplNnUe1hETQ/JT0o5X1bbENyInUsFjPuitAfChXofkAysIhDOHAdifc0Y+pxOHbQLkL65ZOsEDXWSlwMcduMNdQm4LVx26GLIV6yVsaDN+hGta2CxUuSvEIMM6T5xhaPfJ4K57LVw9MbOjRXpmFQz3QgEr8ZZdUxgE+Kj6CtmsjvzXtCQ3Bv/SccTLJSR/LQ8XRdIcPoOlDDy5jSQDF/8lxkgV1V7M3+SI1iWESPT8My5C+RH32F2MNZzthYq5hIFUB3wsM/AaQ==', | 98 | data: 'yRTvhkoY9zDRBwFYf0G5U8zhfS1XWIUfwes6ADNnFyOrHOr7JZvZZHSgkOPnsmN/f5ngcvFaIV9X3TNTmmPLzD/ewgGVMR+ofMLyOIMGhxUDzosSd1+HKqwDZWneZ6xNsci87W8UCfJgoEGrkAtAwktqyS04pcAas74XiRGBWNcv5mHZONwGPckYUnnaVG02Zf+qif6Pp7ugdvXrgncO5oi2AMSoR8GQxMP+tX53YzLwOpabA32PDT6o+aDPwMstJNQjWCXjeYLDIlb0GjL2zgjglX5CfdGw8vNT5hwGEK2D1FkvHkw79m++9sOWd5w9WdGgtS4mrTZP3JHWC1sPqvsIpq6PsrzRrbfCFH7C4X/ya5ciOIZTCNl4dEGAif94zgN74ueY5BF31PNFtaRaQ1waKkbsrU63MrbQbBar9b0hDZoser3BdgDGb1Ecc2GbJM1HbDITttmFDrzy/Ugh2kistHx7Dci8IGgfT7K94TntRFc5R6suEqYRrmOn57YJTZYrwSgbeTqAt/KOE+gL9LawiLJ0IdSC2RQnO3yu/aOEThHxpdLIKiVJoiEQXYVnq2UpnO79GNtplNnUe1hETQ/JT0o5X1bbENyInUsFjPuitAfChXofkAysIhDOHAdifc0Y+pxOHbQLkL65ZOsEDXWSlwMcduMNdQm4LVx26GLIV6yVsaDN+hGta2CxUuSvEIMM6T5xhaPfJ4K57LVw9MbOjRXpmFQz3QgEr8ZZdUxgE+Kj6CtmsjvzXtCQ3Bv/SccTLJSR/LQ8XRdIcPoOlDDy5jSQDF/8lxkgV1V7M3+SI1iWESPT8My5C+RH32F2MNZzthYq5hIFUB3wsM/AaQ==', |
102 | version: '0.3', | 99 | version: '0.3', |
103 | creationDate: 'Fri Oct 17 16:59:31 CEST 2008', | 100 | creationDate: 'Fri Oct 17 16:59:31 CEST 2008', |
104 | updateDate: 'Fri Oct 17 16:59:31 CEST 2008', | 101 | updateDate: 'Fri Oct 17 16:59:31 CEST 2008', |
105 | accessDate: 'Fri Oct 17 16:59:31 CEST 2008' | 102 | accessDate: 'Fri Oct 17 16:59:31 CEST 2008' |
106 | }, | 103 | }, |
107 | '6fd60c5709a4808444f43f7bbd872363d76703957f613076538ba2f9161206ac': { | 104 | '6fd60c5709a4808444f43f7bbd872363d76703957f613076538ba2f9161206ac': { |
108 | header: '####', | 105 | header: '####', |
109 | data: 'RgIWPbNN3sPkIPBE6lfvf9/EoDFLemTZe0Qh/1wZLrKxLRNzFpUk9+NmeGUp5f1hM3XjXw4cXRvP6GrWq69mz9zGja+1TA6RoW3dFMpSQkbONcrSD1mIjxV2zIvzA/Pangz0ZixbEeHCfwXLvgnevbTXXFjkti3kLHQlk2pJpM3zMl+rMJtcsefszuJ/0tE/bO7sBcFqcYgKAht2OyDQORBAGiW1kI9USKM5OOfJJIZDQ0gDhRgl2U92l3kIOO8hdnj32oRedwfKFmdSRkuMY7ykU0bMuVEVkLi/FWmhHxi66C2ovAztVtMd1IiyoNcHc4UH942GC4pT1A8YQpIHxBAJbrQVhpl9LfFkmJ7xUc6Xs5j0Nv8+z2JGCnJI/D4nDJqYW+iCYtRWu6vUmbg0vGfaYWQFGRZRk8zWfHzHXBvHU8p0QsIjYgCLKiUaU2SRRD2P7JCjeTUrm3I1OI593iPsEH9J2PHCM9OMQ8/Fsdgd7lWgH6P9jLdGUwtb1hGaq8mg3JGrHFXcrVkUEBfeR7xljeSHD7j4YahYrua9EeR8nvq6CNaOr406AWyHse9SXhaOxt8qXRLoELpyQPsaLgafUpsdLjJqHz7J76Rp77NSOtXGplKjAtU1xj+d/agaAKYCjvUJC8/APJI2890Pn7VSXr/TPc5biPEIopyVYEHFqaT4e5nZW1Ku1HXC9gwUwUI9rITG4GzIH1WMEm7oFLNUaSMrdK/UTdTJZ66ENE3B9v9cTUpR0NTkbI+iGKDnc8GHPRlr2ZJwN4KFTxi+o/kkEOBjvRHR55nRh2+dke75LS/fzHQZw5wlyqBv5ZeUZfRA7QHfkj9acR0fJSqqNX25AUzZQnRL3oVpOxFWCMU7QVf5VpnRm9OIOd/5F5EoY7Be4doM/UV9U40F3E6XPZQ8S0GKQzrDjc7jKyGPLNPLUWTmGB39mTNDHZQHh5Xv5Q==', | 106 | data: 'RgIWPbNN3sPkIPBE6lfvf9/EoDFLemTZe0Qh/1wZLrKxLRNzFpUk9+NmeGUp5f1hM3XjXw4cXRvP6GrWq69mz9zGja+1TA6RoW3dFMpSQkbONcrSD1mIjxV2zIvzA/Pangz0ZixbEeHCfwXLvgnevbTXXFjkti3kLHQlk2pJpM3zMl+rMJtcsefszuJ/0tE/bO7sBcFqcYgKAht2OyDQORBAGiW1kI9USKM5OOfJJIZDQ0gDhRgl2U92l3kIOO8hdnj32oRedwfKFmdSRkuMY7ykU0bMuVEVkLi/FWmhHxi66C2ovAztVtMd1IiyoNcHc4UH942GC4pT1A8YQpIHxBAJbrQVhpl9LfFkmJ7xUc6Xs5j0Nv8+z2JGCnJI/D4nDJqYW+iCYtRWu6vUmbg0vGfaYWQFGRZRk8zWfHzHXBvHU8p0QsIjYgCLKiUaU2SRRD2P7JCjeTUrm3I1OI593iPsEH9J2PHCM9OMQ8/Fsdgd7lWgH6P9jLdGUwtb1hGaq8mg3JGrHFXcrVkUEBfeR7xljeSHD7j4YahYrua9EeR8nvq6CNaOr406AWyHse9SXhaOxt8qXRLoELpyQPsaLgafUpsdLjJqHz7J76Rp77NSOtXGplKjAtU1xj+d/agaAKYCjvUJC8/APJI2890Pn7VSXr/TPc5biPEIopyVYEHFqaT4e5nZW1Ku1HXC9gwUwUI9rITG4GzIH1WMEm7oFLNUaSMrdK/UTdTJZ66ENE3B9v9cTUpR0NTkbI+iGKDnc8GHPRlr2ZJwN4KFTxi+o/kkEOBjvRHR55nRh2+dke75LS/fzHQZw5wlyqBv5ZeUZfRA7QHfkj9acR0fJSqqNX25AUzZQnRL3oVpOxFWCMU7QVf5VpnRm9OIOd/5F5EoY7Be4doM/UV9U40F3E6XPZQ8S0GKQzrDjc7jKyGPLNPLUWTmGB39mTNDHZQHh5Xv5Q==', |
110 | version: '0.3', | 107 | version: '0.3', |
111 | creationDate: 'Mon Oct 27 08:58:49 CET 2008', | 108 | creationDate: 'Mon Oct 27 08:58:49 CET 2008', |
112 | updateDate: 'Mon Oct 27 08:58:49 CET 2008', | 109 | updateDate: 'Mon Oct 27 08:58:49 CET 2008', |
113 | accessDate: 'Mon Jan 19 16:09:39 CET 2009' | 110 | accessDate: 'Mon Jan 19 16:09:39 CET 2009' |
114 | }, | 111 | }, |
115 | 'b57a2d2ffafa8029123362071c09709bb9192f06a17140440f0e41d22143148f': { | 112 | 'b57a2d2ffafa8029123362071c09709bb9192f06a17140440f0e41d22143148f': { |
116 | header: '####', | 113 | header: '####', |
117 | data: 'PQ53T2Vo2D8PoLI1qNX//jLaVZFTDTYk6geT9+4RoThTxvlJ+beDPnQzgYhd9iASaF9GQEEL8JxsBnNpEPa6JPOY4ndFLmDLyFDKXMprxq1UIbzFV6kFoYAk3uCCCa3UCDzdr1KXB2CiiF9HrilaA+xkm8krAvH8I5kZD+j23gByz5cAFvXg7A77KEURpjujURL65DW5M+ceIjo6OXaPW9VO03xhqGt/M47ayObpoEGJZn+X9C8s0SE5wOXHbn38YZlRI480OMvtDAxbEYUeQKMmzu6lO4Nw5hhOUjoPSLr/i3tmDx3nPcDwnSafx6jyA4y31eW6yazqTEOP5I5ArC5mUrF7mAAiFvbHIsMoF8PLj6MONlRIOZgbf9HzCpFdt8xBrX/TXp3LaSAj2XTWgSTFI2cgmU3qqPyibvIfUsB5cVHQCXi692JpC+B85axJ0FLyMl5w3vq0txlPkf6q+dadPYDaLHGZEmDjkWScA1GM5xPJHWFwqGE7ejgXKG0sMYsMKWYk+F2LEUmMHtEvSlpgJBntvcQ1ZjYQxeu4hg5txu1ykkif6fXgkXF6wn6qu+5caeJeNhWtAB4q7WVD47111woYMdkmX7AnDTXSAQ==', | 114 | data: 'PQ53T2Vo2D8PoLI1qNX//jLaVZFTDTYk6geT9+4RoThTxvlJ+beDPnQzgYhd9iASaF9GQEEL8JxsBnNpEPa6JPOY4ndFLmDLyFDKXMprxq1UIbzFV6kFoYAk3uCCCa3UCDzdr1KXB2CiiF9HrilaA+xkm8krAvH8I5kZD+j23gByz5cAFvXg7A77KEURpjujURL65DW5M+ceIjo6OXaPW9VO03xhqGt/M47ayObpoEGJZn+X9C8s0SE5wOXHbn38YZlRI480OMvtDAxbEYUeQKMmzu6lO4Nw5hhOUjoPSLr/i3tmDx3nPcDwnSafx6jyA4y31eW6yazqTEOP5I5ArC5mUrF7mAAiFvbHIsMoF8PLj6MONlRIOZgbf9HzCpFdt8xBrX/TXp3LaSAj2XTWgSTFI2cgmU3qqPyibvIfUsB5cVHQCXi692JpC+B85axJ0FLyMl5w3vq0txlPkf6q+dadPYDaLHGZEmDjkWScA1GM5xPJHWFwqGE7ejgXKG0sMYsMKWYk+F2LEUmMHtEvSlpgJBntvcQ1ZjYQxeu4hg5txu1ykkif6fXgkXF6wn6qu+5caeJeNhWtAB4q7WVD47111woYMdkmX7AnDTXSAQ==', |
118 | version: '0.3', | 115 | version: '0.3', |
119 | creationDate: 'Fri Oct 17 16:57:17 CEST 2008', | 116 | creationDate: 'Fri Oct 17 16:57:17 CEST 2008', |
120 | updateDate: 'Fri Oct 17 16:57:17 CEST 2008', | 117 | updateDate: 'Fri Oct 17 16:57:17 CEST 2008', |
diff --git a/frontend/gamma/tests/tests/Clipperz/PM/Connection.html b/frontend/gamma/tests/tests/Clipperz/PM/Connection.html index 181a3bf..e2a3394 100644 --- a/frontend/gamma/tests/tests/Clipperz/PM/Connection.html +++ b/frontend/gamma/tests/tests/Clipperz/PM/Connection.html | |||
@@ -1,71 +1,68 @@ | |||
1 | <!-- | 1 | <!-- |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | --> | 24 | --> |
28 | 25 | ||
29 | <html> | 26 | <html> |
30 | <head> | 27 | <head> |
31 | <title>Clipperz.PM.Connection - test</title> | 28 | <title>Clipperz.PM.Connection - test</title> |
32 | 29 | ||
33 | <script type="text/javascript" src="../../../../js/MochiKit/MochiKit.js"></script> | 30 | <script type="text/javascript" src="../../../../js/MochiKit/MochiKit.js"></script> |
34 | <script type="text/javascript" src="../../../SimpleTest/SimpleTest.js"></script> | 31 | <script type="text/javascript" src="../../../SimpleTest/SimpleTest.js"></script> |
35 | <link rel="stylesheet" type="text/css" href="../../../SimpleTest/test.css"> | 32 | <link rel="stylesheet" type="text/css" href="../../../SimpleTest/test.css"> |
36 | 33 | ||
37 | <script type='text/javascript' src='../../../../js/JSON/json2.js'></script> | 34 | <script type='text/javascript' src='../../../../js/JSON/json2.js'></script> |
38 | 35 | ||
39 | <script type='text/javascript' src='../../../../js/Clipperz/YUI/Utils.js'></script> | 36 | <script type='text/javascript' src='../../../../js/Clipperz/YUI/Utils.js'></script> |
40 | <script type='text/javascript' src='../../../../js/Clipperz/Base.js'></script> | 37 | <script type='text/javascript' src='../../../../js/Clipperz/Base.js'></script> |
41 | <script type='text/javascript' src='../../../../js/Clipperz/ByteArray.js'></script> | 38 | <script type='text/javascript' src='../../../../js/Clipperz/ByteArray.js'></script> |
42 | <script type='text/javascript' src='../../../../js/Clipperz/Logging.js'></script> | 39 | <script type='text/javascript' src='../../../../js/Clipperz/Logging.js'></script> |
43 | <script type='text/javascript' src='../../../../js/Clipperz/Async.js'></script> | 40 | <script type='text/javascript' src='../../../../js/Clipperz/Async.js'></script> |
44 | <script type='text/javascript' src='../../../../js/Clipperz/Signal.js'></script> | 41 | <script type='text/javascript' src='../../../../js/Clipperz/Signal.js'></script> |
45 | <script type='text/javascript' src='../../../../js/Clipperz/KeyValueObjectStore.js'></script> | 42 | <script type='text/javascript' src='../../../../js/Clipperz/KeyValueObjectStore.js'></script> |
46 | 43 | ||
47 | <script type='text/javascript' src='../../../../js/Clipperz/Crypto/Base.js'></script> | 44 | <script type='text/javascript' src='../../../../js/Clipperz/Crypto/Base.js'></script> |
48 | <script type='text/javascript' src='../../../../js/Clipperz/Crypto/BigInt.js'></script> | 45 | <script type='text/javascript' src='../../../../js/Clipperz/Crypto/BigInt.js'></script> |
49 | <script type='text/javascript' src='../../../../js/Clipperz/Crypto/AES.js'></script> | 46 | <script type='text/javascript' src='../../../../js/Clipperz/Crypto/AES.js'></script> |
50 | <script type='text/javascript' src='../../../../js/Clipperz/Crypto/SHA.js'></script> | 47 | <script type='text/javascript' src='../../../../js/Clipperz/Crypto/SHA.js'></script> |
51 | <script type='text/javascript' src='../../../../js/Clipperz/Crypto/PRNG.js'></script> | 48 | <script type='text/javascript' src='../../../../js/Clipperz/Crypto/PRNG.js'></script> |
52 | <script type='text/javascript' src='../../../../js/Clipperz/Crypto/SRP.js'></script> | 49 | <script type='text/javascript' src='../../../../js/Clipperz/Crypto/SRP.js'></script> |
53 | <script type='text/javascript' src='../../../../js/Clipperz/PM/Toll.js'></script> | 50 | <script type='text/javascript' src='../../../../js/Clipperz/PM/Toll.js'></script> |
54 | <script type='text/javascript' src='../../../../js/Clipperz/PM/Proxy.js'></script> | 51 | <script type='text/javascript' src='../../../../js/Clipperz/PM/Proxy.js'></script> |
55 | <script type='text/javascript' src='../../../../js/Clipperz/PM/Proxy/Proxy.Offline.js'></script> | 52 | <script type='text/javascript' src='../../../../js/Clipperz/PM/Proxy/Proxy.Offline.js'></script> |
56 | <script type='text/javascript' src='../../../../js/Clipperz/PM/Proxy/Proxy.Offline.DataStore.js'></script> | 53 | <script type='text/javascript' src='../../../../js/Clipperz/PM/Proxy/Proxy.Offline.DataStore.js'></script> |
57 | <script type='text/javascript' src='../../../../js/Clipperz/PM/Proxy/Proxy.Test.js'></script> | 54 | <script type='text/javascript' src='../../../../js/Clipperz/PM/Proxy/Proxy.Test.js'></script> |
58 | <script type='text/javascript' src='../../../../js/Clipperz/PM/Connection.js'></script> | 55 | <script type='text/javascript' src='../../../../js/Clipperz/PM/Connection.js'></script> |
59 | <script type='text/javascript' src='../../../../js/Clipperz/PM/Crypto.js'></script> | 56 | <script type='text/javascript' src='../../../../js/Clipperz/PM/Crypto.js'></script> |
60 | 57 | ||
61 | <script type="text/javascript" src="../../../SimpleTest/SimpleTest.Async.js"></script> | 58 | <script type="text/javascript" src="../../../SimpleTest/SimpleTest.Async.js"></script> |
62 | 59 | ||
63 | </head> | 60 | </head> |
64 | <body> | 61 | <body> |
65 | 62 | ||
66 | <pre id="test"> | 63 | <pre id="test"> |
67 | <script type="text/javascript" src="Connection.data.js"></script> | 64 | <script type="text/javascript" src="Connection.data.js"></script> |
68 | <script type="text/javascript" src="Connection.test.js"></script> | 65 | <script type="text/javascript" src="Connection.test.js"></script> |
69 | </pre> | 66 | </pre> |
70 | </body> | 67 | </body> |
71 | </html> | 68 | </html> |
diff --git a/frontend/gamma/tests/tests/Clipperz/PM/Connection.test.js b/frontend/gamma/tests/tests/Clipperz/PM/Connection.test.js index e4d0d15..9d0036a 100644 --- a/frontend/gamma/tests/tests/Clipperz/PM/Connection.test.js +++ b/frontend/gamma/tests/tests/Clipperz/PM/Connection.test.js | |||
@@ -1,120 +1,117 @@ | |||
1 | /* | 1 | /* |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | */ | 24 | */ |
28 | 25 | ||
29 | Clipperz.Crypto.PRNG.defaultRandomGenerator().fastEntropyAccumulationForTestingPurpose(); | 26 | Clipperz.Crypto.PRNG.defaultRandomGenerator().fastEntropyAccumulationForTestingPurpose(); |
30 | 27 | ||
31 | var tests = { | 28 | var tests = { |
32 | 29 | ||
33 | //------------------------------------------------------------------------- | 30 | //------------------------------------------------------------------------- |
34 | 31 | ||
35 | 'simple_tests': function () { | 32 | 'simple_tests': function () { |
36 | vardeferredResult; | 33 | vardeferredResult; |
37 | 34 | ||
38 | deferredResult = new Clipperz.Async.Deferred("simple_tests", {trace:false}); | 35 | deferredResult = new Clipperz.Async.Deferred("simple_tests", {trace:false}); |
39 | deferredResult.addCallback(function() { | 36 | deferredResult.addCallback(function() { |
40 | var connection; | 37 | var connection; |
41 | 38 | ||
42 | SimpleTest.is(Clipperz.PM.Connection.communicationProtocol.versions['current'], Clipperz.PM.Connection.SRP['1.1'], "the current connection is 1.1"); | 39 | SimpleTest.is(Clipperz.PM.Connection.communicationProtocol.versions['current'], Clipperz.PM.Connection.SRP['1.1'], "the current connection is 1.1"); |
43 | 40 | ||
44 | connection = new Clipperz.PM.Connection.communicationProtocol.versions['current'](); | 41 | connection = new Clipperz.PM.Connection.communicationProtocol.versions['current'](); |
45 | SimpleTest.ok(connection != null, "can create a connection with the 'current' communication protocol"); | 42 | SimpleTest.ok(connection != null, "can create a connection with the 'current' communication protocol"); |
46 | 43 | ||
47 | SimpleTest.is(connection.proxy(), Clipperz.PM.Proxy.defaultProxy, "the connection uses the defaultProxy if no proxy is specified on the constructor"); | 44 | SimpleTest.is(connection.proxy(), Clipperz.PM.Proxy.defaultProxy, "the connection uses the defaultProxy if no proxy is specified on the constructor"); |
48 | }); | 45 | }); |
49 | 46 | ||
50 | deferredResult.callback(); | 47 | deferredResult.callback(); |
51 | 48 | ||
52 | return deferredResult; | 49 | return deferredResult; |
53 | }, | 50 | }, |
54 | 51 | ||
55 | //------------------------------------------------------------------------- | 52 | //------------------------------------------------------------------------- |
56 | 53 | ||
57 | 'simpleProxy_tests': function () { | 54 | 'simpleProxy_tests': function () { |
58 | vardeferredResult; | 55 | vardeferredResult; |
59 | 56 | ||
60 | deferredResult = new Clipperz.Async.Deferred("simple_tests", {trace:false}); | 57 | deferredResult = new Clipperz.Async.Deferred("simple_tests", {trace:false}); |
61 | deferredResult.addCallback(function() { | 58 | deferredResult.addCallback(function() { |
62 | var connection; | 59 | var connection; |
63 | var proxy; | 60 | var proxy; |
64 | 61 | ||
65 | proxy = new Clipperz.PM.Proxy(); | 62 | proxy = new Clipperz.PM.Proxy(); |
66 | connection = new Clipperz.PM.Connection.communicationProtocol.versions['current']({proxy:proxy}); | 63 | connection = new Clipperz.PM.Connection.communicationProtocol.versions['current']({proxy:proxy}); |
67 | SimpleTest.is(connection.proxy(), proxy, "the connection uses the specified proxy, when present"); | 64 | SimpleTest.is(connection.proxy(), proxy, "the connection uses the specified proxy, when present"); |
68 | }); | 65 | }); |
69 | 66 | ||
70 | deferredResult.callback(); | 67 | deferredResult.callback(); |
71 | 68 | ||
72 | return deferredResult; | 69 | return deferredResult; |
73 | }, | 70 | }, |
74 | 71 | ||
75 | //------------------------------------------------------------------------- | 72 | //------------------------------------------------------------------------- |
76 | 73 | ||
77 | 'login_test': function () { | 74 | 'login_test': function () { |
78 | var deferredResult; | 75 | var deferredResult; |
79 | var connection; | 76 | var connection; |
80 | var proxy; | 77 | var proxy; |
81 | 78 | ||
82 | proxy = new Clipperz.PM.Proxy.Test({shouldPayTolls:false, shouldCheckExpectedRequests:true}); | 79 | proxy = new Clipperz.PM.Proxy.Test({shouldPayTolls:false, shouldCheckExpectedRequests:true}); |
83 | connection = new Clipperz.PM.Connection.communicationProtocol.versions['current']({ | 80 | connection = new Clipperz.PM.Connection.communicationProtocol.versions['current']({ |
84 | proxy: proxy, | 81 | proxy: proxy, |
85 | getCredentialsFunction: function() { return {username:'joe', password:'clipperz'}; } | 82 | getCredentialsFunction: function() { return {username:'joe', password:'clipperz'}; } |
86 | }); | 83 | }); |
87 | 84 | ||
88 | deferredResult = new Clipperz.Async.Deferred("login_tests", {trace:false}); | 85 | deferredResult = new Clipperz.Async.Deferred("login_tests", {trace:false}); |
89 | deferredResult.addMethod(proxy.dataStore(), 'setupWithEncryptedData', testData['joe_clipperz_offline_copy_data']); | 86 | deferredResult.addMethod(proxy.dataStore(), 'setupWithEncryptedData', testData['joe_clipperz_offline_copy_data']); |
90 | deferredResult.addCallback(function() { | 87 | deferredResult.addCallback(function() { |
91 | proxy.expectedRequests().unshift({ | 88 | proxy.expectedRequests().unshift({ |
92 | name: "First handshake step", | 89 | name: "First handshake step", |
93 | functionName: 'handshake', | 90 | functionName: 'handshake', |
94 | parameters: { | 91 | parameters: { |
95 | parameters: { | 92 | parameters: { |
96 | message: MochiKit.Base.partial(MochiKit.Base.operator.eq, "connect"), | 93 | message: MochiKit.Base.partial(MochiKit.Base.operator.eq, "connect"), |
97 | version: MochiKit.Base.partial(MochiKit.Base.operator.eq, "0.2"), | 94 | version: MochiKit.Base.partial(MochiKit.Base.operator.eq, "0.2"), |
98 | parameters: { | 95 | parameters: { |
99 | C: MochiKit.Base.partial(MochiKit.Base.operator.eq, "f527cdd90d0d47f8524b4e165398ad1455eba515d04abd101d1e93b3c6ae0674"), | 96 | C: MochiKit.Base.partial(MochiKit.Base.operator.eq, "f527cdd90d0d47f8524b4e165398ad1455eba515d04abd101d1e93b3c6ae0674"), |
100 | A: MochiKit.Base.operator.truth | 97 | A: MochiKit.Base.operator.truth |
101 | } | 98 | } |
102 | } | 99 | } |
103 | } | 100 | } |
104 | }); | 101 | }); |
105 | }); | 102 | }); |
106 | deferredResult.addCallback(function() { | 103 | deferredResult.addCallback(function() { |
107 | proxy.expectedRequests().unshift({ | 104 | proxy.expectedRequests().unshift({ |
108 | name: "Second handshake step", | 105 | name: "Second handshake step", |
109 | functionName: 'handshake', | 106 | functionName: 'handshake', |
110 | parameters: { | 107 | parameters: { |
111 | parameters: { | 108 | parameters: { |
112 | message: MochiKit.Base.partial(MochiKit.Base.operator.eq, "credentialCheck"), | 109 | message: MochiKit.Base.partial(MochiKit.Base.operator.eq, "credentialCheck"), |
113 | version: MochiKit.Base.partial(MochiKit.Base.operator.eq, "0.2"), | 110 | version: MochiKit.Base.partial(MochiKit.Base.operator.eq, "0.2"), |
114 | parameters: { | 111 | parameters: { |
115 | M1: MochiKit.Base.operator.truth | 112 | M1: MochiKit.Base.operator.truth |
116 | } | 113 | } |
117 | } | 114 | } |
118 | } | 115 | } |
119 | }); | 116 | }); |
120 | }); | 117 | }); |
diff --git a/frontend/gamma/tests/tests/Clipperz/PM/Crypto.html b/frontend/gamma/tests/tests/Clipperz/PM/Crypto.html index f95e994..044658e 100644 --- a/frontend/gamma/tests/tests/Clipperz/PM/Crypto.html +++ b/frontend/gamma/tests/tests/Clipperz/PM/Crypto.html | |||
@@ -1,120 +1,117 @@ | |||
1 | <!-- | 1 | <!-- |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | --> | 24 | --> |
28 | 25 | ||
29 | <html> | 26 | <html> |
30 | <head> | 27 | <head> |
31 | <title>Clipperz.PM.Crypto - TEST</title> | 28 | <title>Clipperz.PM.Crypto - TEST</title> |
32 | 29 | ||
33 | <script> | 30 | <script> |
34 | jslog_config_enabled = true; | 31 | jslog_config_enabled = true; |
35 | clipperz_profiling_enabled = true; | 32 | clipperz_profiling_enabled = true; |
36 | </script> | 33 | </script> |
37 | 34 | ||
38 | <script type="text/javascript" src="../../../../js/MochiKit/MochiKit.js"></script> | 35 | <script type="text/javascript" src="../../../../js/MochiKit/MochiKit.js"></script> |
39 | <script type="text/javascript" src="../../../SimpleTest/SimpleTest.js"></script> | 36 | <script type="text/javascript" src="../../../SimpleTest/SimpleTest.js"></script> |
40 | <link rel="stylesheet" type="text/css" href="../../../SimpleTest/test.css"> | 37 | <link rel="stylesheet" type="text/css" href="../../../SimpleTest/test.css"> |
41 | 38 | ||
42 | <script type='text/javascript' src='../../../../js/JSON/json2.js'></script> | 39 | <script type='text/javascript' src='../../../../js/JSON/json2.js'></script> |
43 | <script type='text/javascript' src='../../../../js/Clipperz/YUI/Utils.js'></script> | 40 | <script type='text/javascript' src='../../../../js/Clipperz/YUI/Utils.js'></script> |
44 | <script type='text/javascript' src='../../../../js/Clipperz/YUI/DomHelper.js'></script> | 41 | <script type='text/javascript' src='../../../../js/Clipperz/YUI/DomHelper.js'></script> |
45 | 42 | ||
46 | <script type='text/javascript' src='../../../../js/Clipperz/ByteArray.js'></script> | 43 | <script type='text/javascript' src='../../../../js/Clipperz/ByteArray.js'></script> |
47 | <script type='text/javascript' src='../../../../js/Clipperz/Base.js'></script> | 44 | <script type='text/javascript' src='../../../../js/Clipperz/Base.js'></script> |
48 | <script type='text/javascript' src='../../../../js/Clipperz/Logging.js'></script> | 45 | <script type='text/javascript' src='../../../../js/Clipperz/Logging.js'></script> |
49 | <script type='text/javascript' src='../../../../js/Clipperz/Async.js'></script> | 46 | <script type='text/javascript' src='../../../../js/Clipperz/Async.js'></script> |
50 | <script type='text/javascript' src='../../../../js/Clipperz/DOM.js'></script> | 47 | <script type='text/javascript' src='../../../../js/Clipperz/DOM.js'></script> |
51 | <script type='text/javascript' src='../../../../js/Clipperz/Profile.js'></script> | 48 | <script type='text/javascript' src='../../../../js/Clipperz/Profile.js'></script> |
52 | 49 | ||
53 | <script type='text/javascript' src='../../../../js/Clipperz/Crypto/SHA.js'></script> | 50 | <script type='text/javascript' src='../../../../js/Clipperz/Crypto/SHA.js'></script> |
54 | <script type='text/javascript' src='../../../../js/Clipperz/Crypto/AES.js'></script> | 51 | <script type='text/javascript' src='../../../../js/Clipperz/Crypto/AES.js'></script> |
55 | <script type='text/javascript' src='../../../../js/Clipperz/Crypto/PRNG.js'></script> | 52 | <script type='text/javascript' src='../../../../js/Clipperz/Crypto/PRNG.js'></script> |
56 | <script type='text/javascript' src='../../../../js/Clipperz/Crypto/BigInt.js'></script> | 53 | <script type='text/javascript' src='../../../../js/Clipperz/Crypto/BigInt.js'></script> |
57 | <script type='text/javascript' src='../../../../js/Clipperz/Crypto/Base.js'></script> | 54 | <script type='text/javascript' src='../../../../js/Clipperz/Crypto/Base.js'></script> |
58 | <script type='text/javascript' src='../../../../js/Clipperz/Crypto/SRP.js'></script> | 55 | <script type='text/javascript' src='../../../../js/Clipperz/Crypto/SRP.js'></script> |
59 | 56 | ||
60 | <script type='text/javascript' src='../../../../js/Clipperz/PM/Proxy.js'></script> | 57 | <script type='text/javascript' src='../../../../js/Clipperz/PM/Proxy.js'></script> |
61 | <script type='text/javascript' src='../../../../js/Clipperz/PM/Connection.js'></script> | 58 | <script type='text/javascript' src='../../../../js/Clipperz/PM/Connection.js'></script> |
62 | <script type='text/javascript' src='../../../../js/Clipperz/PM/Crypto.js'></script> | 59 | <script type='text/javascript' src='../../../../js/Clipperz/PM/Crypto.js'></script> |
63 | 60 | ||
64 | <script type="text/javascript" src="../../../SimpleTest/SimpleTest.Async.js"></script> | 61 | <script type="text/javascript" src="../../../SimpleTest/SimpleTest.Async.js"></script> |
65 | <!-- | 62 | <!-- |
66 | <script> | 63 | <script> |
67 | MochiKit.DOM.addLoadEvent(MochiKit.Base.partial(MochiKit.LoggingPane.createLoggingPane, true)); | 64 | MochiKit.DOM.addLoadEvent(MochiKit.Base.partial(MochiKit.LoggingPane.createLoggingPane, true)); |
68 | MochiKit.Logging.logger.useNativeConsole = true; | 65 | MochiKit.Logging.logger.useNativeConsole = true; |
69 | </script> | 66 | </script> |
70 | --> | 67 | --> |
71 | </head> | 68 | </head> |
72 | <body> | 69 | <body> |
73 | <pre id="test"> | 70 | <pre id="test"> |
74 | 71 | ||
75 | <script type="text/javascript"> | 72 | <script type="text/javascript"> |
76 | 73 | ||
77 | 74 | ||
78 | Clipperz_PM_Crypt_test = function() { | 75 | Clipperz_PM_Crypt_test = function() { |
79 | varkey; | 76 | varkey; |
80 | 77 | ||
81 | var plainData; | 78 | var plainData; |
82 | var encryptedData; | 79 | var encryptedData; |
83 | var decryptedData; | 80 | var decryptedData; |
84 | 81 | ||
85 | var result; | 82 | var result; |
86 | var expectedResult; | 83 | var expectedResult; |
87 | 84 | ||
88 | var plainText; | 85 | var plainText; |
89 | var longPlainText; | 86 | var longPlainText; |
90 | 87 | ||
91 | key = 'trustno1'; | 88 | key = 'trustno1'; |
92 | 89 | ||
93 | plainText = "Lorem ipsum dolor sit amet"; | 90 | plainText = "Lorem ipsum dolor sit amet"; |
94 | longPlainText = "Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Donec nunc sapien, condimentum vitae, varius vel, pharetra in, augue. Mauris quam magna, pretium sit amet, accumsan id, volutpat lobortis, nibh. Fusce sagittis. Aenean justo. Curabitur euismod pede. Morbi at ante. Proin nisl leo, ultrices sed, facilisis et, nonummy sit amet, lorem. Praesent mauris tellus, pulvinar sed, nonummy vitae, rhoncus non, nunc. Proin placerat malesuada nisl. Nunc id enim. Maecenas commodo enim ac nibh. Sed condimentum, urna sit amet euismod gravida, mi urna varius odio, luctus pretium lectus justo nec felis. Ut in augue et est malesuada rhoncus. Sed vel orci. Mauris suscipit. Praesent cursus velit non turpis. Donec tristique dolor ac est. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Nulla est sapien, vulputate eget, bibendum id, pharetra nec, mauris. Aliquam faucibus tincidunt dui. Proin iaculis. Maecenas sagittis. Integer et augue. Donec vitae urna in orci aliquet commodo. Vestibulum lorem sem, suscipit ac, placerat nec, mollis in, felis. Donec laoreet odio a mauris. Integer rutrum, sapien id varius molestie, mauris odio egestas orci, non bibendum sem felis in metus. Phasellus consectetuer lectus adipiscing mauris. Ut magna tellus, euismod ac, suscipit tincidunt, ullamcorper adipiscing, massa. Etiam orci. Phasellus a urna. Cras neque quam, laoreet at, tempus eget, euismod nec, nibh. Etiam hendrerit. Aenean vel lorem. Ut ligula lacus, congue eu, lobortis sit amet, venenatis in, magna. Nullam cursus felis quis est. Sed sem est, condimentum eu, vestibulum a, mattis vel, diam. Curabitur tincidunt pede quis pede. Sed neque diam, convallis vel, luctus at, porta id, nisl. Suspendisse potenti. Sed volutpat lobortis orci. Praesent mi. In interdum. Suspendisse suscipit ipsum eget dolor. Curabitur et tellus sed velit hendrerit varius. Cras sit amet est. Donec arcu nulla, vehicula et, pretium in, placerat id, felis. Integer mollis auctor lectus. Integer ultrices elementum sapien. Nam et erat. Nam pulvinar porta tortor. Nam at risus. Quisque nulla. Integer vestibulum, lacus id bibendum laoreet, ligula mi pharetra lorem, sit amet pharetra felis mauris quis justo. Aliquam ultricies. Duis a pede eget lorem dapibus rhoncus. Aenean eu elit non libero consectetuer viverra. Maecenas velit mi, eleifend vel, malesuada vel, condimentum quis, odio. Mauris tempus augue sed turpis. Pellentesque condimentum, lacus vitae pellentesque ultricies, risus tellus posuere nisi, et dictum turpis pede nec elit. Sed eu lectus eu justo sagittis euismod. Vestibulum lobortis, urna id mollis rhoncus, orci quam euismod ligula, at malesuada lacus magna vitae massa. Phasellus mattis fermentum velit. Nulla vulputate consequat enim. Maecenas quis neque. Curabitur sagittis facilisis neque. In elementum, eros non porttitor rhoncus, libero turpis sodales odio, vitae porta tellus purus et ante. Nullam molestie sollicitudin metus. Donec a elit. Morbi ut lacus. Donec at arcu. Quisque velit diam, interdum a, lacinia at, varius et, odio. Cras neque magna, ornare id, sollicitudin id, consequat a, est. Phasellus vestibulum est at leo. Nam facilisis, nulla dapibus condimentum pellentesque, est magna viverra ligula, at sollicitudin urna augue ut sapien. Fusce justo."; | 91 | longPlainText = "Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Donec nunc sapien, condimentum vitae, varius vel, pharetra in, augue. Mauris quam magna, pretium sit amet, accumsan id, volutpat lobortis, nibh. Fusce sagittis. Aenean justo. Curabitur euismod pede. Morbi at ante. Proin nisl leo, ultrices sed, facilisis et, nonummy sit amet, lorem. Praesent mauris tellus, pulvinar sed, nonummy vitae, rhoncus non, nunc. Proin placerat malesuada nisl. Nunc id enim. Maecenas commodo enim ac nibh. Sed condimentum, urna sit amet euismod gravida, mi urna varius odio, luctus pretium lectus justo nec felis. Ut in augue et est malesuada rhoncus. Sed vel orci. Mauris suscipit. Praesent cursus velit non turpis. Donec tristique dolor ac est. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Nulla est sapien, vulputate eget, bibendum id, pharetra nec, mauris. Aliquam faucibus tincidunt dui. Proin iaculis. Maecenas sagittis. Integer et augue. Donec vitae urna in orci aliquet commodo. Vestibulum lorem sem, suscipit ac, placerat nec, mollis in, felis. Donec laoreet odio a mauris. Integer rutrum, sapien id varius molestie, mauris odio egestas orci, non bibendum sem felis in metus. Phasellus consectetuer lectus adipiscing mauris. Ut magna tellus, euismod ac, suscipit tincidunt, ullamcorper adipiscing, massa. Etiam orci. Phasellus a urna. Cras neque quam, laoreet at, tempus eget, euismod nec, nibh. Etiam hendrerit. Aenean vel lorem. Ut ligula lacus, congue eu, lobortis sit amet, venenatis in, magna. Nullam cursus felis quis est. Sed sem est, condimentum eu, vestibulum a, mattis vel, diam. Curabitur tincidunt pede quis pede. Sed neque diam, convallis vel, luctus at, porta id, nisl. Suspendisse potenti. Sed volutpat lobortis orci. Praesent mi. In interdum. Suspendisse suscipit ipsum eget dolor. Curabitur et tellus sed velit hendrerit varius. Cras sit amet est. Donec arcu nulla, vehicula et, pretium in, placerat id, felis. Integer mollis auctor lectus. Integer ultrices elementum sapien. Nam et erat. Nam pulvinar porta tortor. Nam at risus. Quisque nulla. Integer vestibulum, lacus id bibendum laoreet, ligula mi pharetra lorem, sit amet pharetra felis mauris quis justo. Aliquam ultricies. Duis a pede eget lorem dapibus rhoncus. Aenean eu elit non libero consectetuer viverra. Maecenas velit mi, eleifend vel, malesuada vel, condimentum quis, odio. Mauris tempus augue sed turpis. Pellentesque condimentum, lacus vitae pellentesque ultricies, risus tellus posuere nisi, et dictum turpis pede nec elit. Sed eu lectus eu justo sagittis euismod. Vestibulum lobortis, urna id mollis rhoncus, orci quam euismod ligula, at malesuada lacus magna vitae massa. Phasellus mattis fermentum velit. Nulla vulputate consequat enim. Maecenas quis neque. Curabitur sagittis facilisis neque. In elementum, eros non porttitor rhoncus, libero turpis sodales odio, vitae porta tellus purus et ante. Nullam molestie sollicitudin metus. Donec a elit. Morbi ut lacus. Donec at arcu. Quisque velit diam, interdum a, lacinia at, varius et, odio. Cras neque magna, ornare id, sollicitudin id, consequat a, est. Phasellus vestibulum est at leo. Nam facilisis, nulla dapibus condimentum pellentesque, est magna viverra ligula, at sollicitudin urna augue ut sapien. Fusce justo."; |
95 | 92 | ||
96 | // | 93 | // |
97 | //hashing | 94 | //hashing |
98 | // | 95 | // |
99 | plainData = new Clipperz.ByteArray(plainText); | 96 | plainData = new Clipperz.ByteArray(plainText); |
100 | 97 | ||
101 | result = Clipperz.PM.Crypto.encryptingFunctions.versions['0.1'].hash(plainData); | 98 | result = Clipperz.PM.Crypto.encryptingFunctions.versions['0.1'].hash(plainData); |
102 | is(result.length(), (256/8), "encryptingFunctions.versions[0.1].hash generate a 256 bit signature with a short text"); | 99 | is(result.length(), (256/8), "encryptingFunctions.versions[0.1].hash generate a 256 bit signature with a short text"); |
103 | 100 | ||
104 | result = Clipperz.PM.Crypto.encryptingFunctions.versions['0.2'].hash(plainData); | 101 | result = Clipperz.PM.Crypto.encryptingFunctions.versions['0.2'].hash(plainData); |
105 | is(result.length(), (256/8), "encryptingFunctions.versions[0.2].hash generate a 256 bit signature with a short text"); | 102 | is(result.length(), (256/8), "encryptingFunctions.versions[0.2].hash generate a 256 bit signature with a short text"); |
106 | 103 | ||
107 | 104 | ||
108 | plainData = new Clipperz.ByteArray(longPlainText); | 105 | plainData = new Clipperz.ByteArray(longPlainText); |
109 | 106 | ||
110 | result = Clipperz.PM.Crypto.encryptingFunctions.versions['0.1'].hash(plainData); | 107 | result = Clipperz.PM.Crypto.encryptingFunctions.versions['0.1'].hash(plainData); |
111 | is(result.length(), (256/8), "encryptingFunctions.versions[0.1].hash generate a 256 bit signature with a long text"); | 108 | is(result.length(), (256/8), "encryptingFunctions.versions[0.1].hash generate a 256 bit signature with a long text"); |
112 | 109 | ||
113 | result = Clipperz.PM.Crypto.encryptingFunctions.versions['0.2'].hash(plainData); | 110 | result = Clipperz.PM.Crypto.encryptingFunctions.versions['0.2'].hash(plainData); |
114 | is(result.length(), (256/8), "encryptingFunctions.versions[0.2].hash generate a 256 bit signature with a long text"); | 111 | is(result.length(), (256/8), "encryptingFunctions.versions[0.2].hash generate a 256 bit signature with a long text"); |
115 | 112 | ||
116 | 113 | ||
117 | // | 114 | // |
118 | //encrypting / decripting | 115 | //encrypting / decripting |
119 | // | 116 | // |
120 | plainData = plainText; | 117 | plainData = plainText; |
diff --git a/frontend/gamma/tests/tests/Clipperz/PM/Crypto_performanceEvaluation.html b/frontend/gamma/tests/tests/Clipperz/PM/Crypto_performanceEvaluation.html index 094a58d..e8ce0bc 100644 --- a/frontend/gamma/tests/tests/Clipperz/PM/Crypto_performanceEvaluation.html +++ b/frontend/gamma/tests/tests/Clipperz/PM/Crypto_performanceEvaluation.html | |||
@@ -1,120 +1,117 @@ | |||
1 | <!-- | 1 | <!-- |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | --> | 24 | --> |
28 | 25 | ||
29 | <html> | 26 | <html> |
30 | <head> | 27 | <head> |
31 | <title>Clipperz.PM.Crypt - Performance evaluation - TEST</title> | 28 | <title>Clipperz.PM.Crypt - Performance evaluation - TEST</title> |
32 | 29 | ||
33 | <script type="text/javascript" src="../../../../js/MochiKit/MochiKit.js"></script> | 30 | <script type="text/javascript" src="../../../../js/MochiKit/MochiKit.js"></script> |
34 | <script type="text/javascript" src="../../../SimpleTest/SimpleTest.js"></script> | 31 | <script type="text/javascript" src="../../../SimpleTest/SimpleTest.js"></script> |
35 | <link rel="stylesheet" type="text/css" href="../../../SimpleTest/test.css"> | 32 | <link rel="stylesheet" type="text/css" href="../../../SimpleTest/test.css"> |
36 | 33 | ||
37 | <script type='text/javascript' src='../../../../js/JSON/json2.js'></script> | 34 | <script type='text/javascript' src='../../../../js/JSON/json2.js'></script> |
38 | 35 | ||
39 | <script type='text/javascript' src='../../../../js/Clipperz/YUI/Utils.js'></script> | 36 | <script type='text/javascript' src='../../../../js/Clipperz/YUI/Utils.js'></script> |
40 | <script type='text/javascript' src='../../../../js/Clipperz/Base.js'></script> | 37 | <script type='text/javascript' src='../../../../js/Clipperz/Base.js'></script> |
41 | <script type='text/javascript' src='../../../../js/Clipperz/ByteArray.js'></script> | 38 | <script type='text/javascript' src='../../../../js/Clipperz/ByteArray.js'></script> |
42 | <script type='text/javascript' src='../../../../js/Clipperz/Logging.js'></script> | 39 | <script type='text/javascript' src='../../../../js/Clipperz/Logging.js'></script> |
43 | 40 | ||
44 | <script type='text/javascript' src='../../../../js/Clipperz/Crypto/SHA.js'></script> | 41 | <script type='text/javascript' src='../../../../js/Clipperz/Crypto/SHA.js'></script> |
45 | <script type='text/javascript' src='../../../../js/Clipperz/Crypto/AES.js'></script> | 42 | <script type='text/javascript' src='../../../../js/Clipperz/Crypto/AES.js'></script> |
46 | <script type='text/javascript' src='../../../../js/Clipperz/Crypto/PRNG.js'></script> | 43 | <script type='text/javascript' src='../../../../js/Clipperz/Crypto/PRNG.js'></script> |
47 | <script type='text/javascript' src='../../../../js/Clipperz/Crypto/BigInt.js'></script> | 44 | <script type='text/javascript' src='../../../../js/Clipperz/Crypto/BigInt.js'></script> |
48 | <script type='text/javascript' src='../../../../js/Clipperz/Crypto/Base.js'></script> | 45 | <script type='text/javascript' src='../../../../js/Clipperz/Crypto/Base.js'></script> |
49 | <script type='text/javascript' src='../../../../js/Clipperz/Crypto/SRP.js'></script> | 46 | <script type='text/javascript' src='../../../../js/Clipperz/Crypto/SRP.js'></script> |
50 | 47 | ||
51 | <script type='text/javascript' src='../../../../js/Clipperz/PM/Proxy.js'></script> | 48 | <script type='text/javascript' src='../../../../js/Clipperz/PM/Proxy.js'></script> |
52 | <script type='text/javascript' src='../../../../js/Clipperz/PM/Connection.js'></script> | 49 | <script type='text/javascript' src='../../../../js/Clipperz/PM/Connection.js'></script> |
53 | <script type='text/javascript' src='../../../../js/Clipperz/PM/Crypto.js'></script> | 50 | <script type='text/javascript' src='../../../../js/Clipperz/PM/Crypto.js'></script> |
54 | 51 | ||
55 | <!--< script type='text/javascript' src='../../../../js/Clipperz/Crypto/AES_other_implementation.js'>< /script> --> | 52 | <!--< script type='text/javascript' src='../../../../js/Clipperz/Crypto/AES_other_implementation.js'>< /script> --> |
56 | 53 | ||
57 | </head> | 54 | </head> |
58 | <body> | 55 | <body> |
59 | <pre id="test"> | 56 | <pre id="test"> |
60 | 57 | ||
61 | <script type="text/javascript"> | 58 | <script type="text/javascript"> |
62 | 59 | ||
63 | try { | 60 | try { |
64 | var key; | 61 | var key; |
65 | var shortText; | 62 | var shortText; |
66 | var longText; | 63 | var longText; |
67 | var veryLongText; | 64 | var veryLongText; |
68 | var byteArray; | 65 | var byteArray; |
69 | varplainText; | 66 | varplainText; |
70 | var encryptedText; | 67 | var encryptedText; |
71 | var decryptedText; | 68 | var decryptedText; |
72 | var startTime, endTime; | 69 | var startTime, endTime; |
73 | var startTime1, endTime1; | 70 | var startTime1, endTime1; |
74 | var ClipperzCryptoVersion; | 71 | var ClipperzCryptoVersion; |
75 | var i,c; | 72 | var i,c; |
76 | 73 | ||
77 | ClipperzCryptoVersion = '0.3'; | 74 | ClipperzCryptoVersion = '0.3'; |
78 | Clipperz.Crypto.PRNG.defaultRandomGenerator().fastEntropyAccumulationForTestingPurpose(); | 75 | Clipperz.Crypto.PRNG.defaultRandomGenerator().fastEntropyAccumulationForTestingPurpose(); |
79 | key = 'trustno1'; | 76 | key = 'trustno1'; |
80 | 77 | ||
81 | shortText = "Lorem ipsum dolor sit amet"; | 78 | shortText = "Lorem ipsum dolor sit amet"; |
82 | longText = "Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Donec nunc sapien, condimentum vitae, varius vel, pharetra in, augue. Mauris quam magna, pretium sit amet, accumsan id, volutpat lobortis, nibh. Fusce sagittis. Aenean justo. Curabitur euismod pede. Morbi at ante. Proin nisl leo, ultrices sed, facilisis et, nonummy sit amet, lorem. Praesent mauris tellus, pulvinar sed, nonummy vitae, rhoncus non, nunc. Proin placerat malesuada nisl. Nunc id enim. Maecenas commodo enim ac nibh. Sed condimentum, urna sit amet euismod gravida, mi urna varius odio, luctus pretium lectus justo nec felis. Ut in augue et est malesuada rhoncus. Sed vel orci. Mauris suscipit. Praesent cursus velit non turpis. Donec tristique dolor ac est. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Nulla est sapien, vulputate eget, bibendum id, pharetra nec, mauris. Aliquam faucibus tincidunt dui. Proin iaculis. Maecenas sagittis. Integer et augue. Donec vitae urna in orci aliquet commodo. Vestibulum lorem sem, suscipit ac, placerat nec, mollis in, felis. Donec laoreet odio a mauris. Integer rutrum, sapien id varius molestie, mauris odio egestas orci, non bibendum sem felis in metus. Phasellus consectetuer lectus adipiscing mauris. Ut magna tellus, euismod ac, suscipit tincidunt, ullamcorper adipiscing, massa. Etiam orci. Phasellus a urna. Cras neque quam, laoreet at, tempus eget, euismod nec, nibh. Etiam hendrerit. Aenean vel lorem. Ut ligula lacus, congue eu, lobortis sit amet, venenatis in, magna. Nullam cursus felis quis est. Sed sem est, condimentum eu, vestibulum a, mattis vel, diam. Curabitur tincidunt pede quis pede. Sed neque diam, convallis vel, luctus at, porta id, nisl. Suspendisse potenti. Sed volutpat lobortis orci. Praesent mi. In interdum. Suspendisse suscipit ipsum eget dolor. Curabitur et tellus sed velit hendrerit varius. Cras sit amet est. Donec arcu nulla, vehicula et, pretium in, placerat id, felis. Integer mollis auctor lectus. Integer ultrices elementum sapien. Nam et erat. Nam pulvinar porta tortor. Nam at risus. Quisque nulla. Integer vestibulum, lacus id bibendum laoreet, ligula mi pharetra lorem, sit amet pharetra felis mauris quis justo. Aliquam ultricies. Duis a pede eget lorem dapibus rhoncus. Aenean eu elit non libero consectetuer viverra. Maecenas velit mi, eleifend vel, malesuada vel, condimentum quis, odio. Mauris tempus augue sed turpis. Pellentesque condimentum, lacus vitae pellentesque ultricies, risus tellus posuere nisi, et dictum turpis pede nec elit. Sed eu lectus eu justo sagittis euismod. Vestibulum lobortis, urna id mollis rhoncus, orci quam euismod ligula, at malesuada lacus magna vitae massa. Phasellus mattis fermentum velit. Nulla vulputate consequat enim. Maecenas quis neque. Curabitur sagittis facilisis neque. In elementum, eros non porttitor rhoncus, libero turpis sodales odio, vitae porta tellus purus et ante. Nullam molestie sollicitudin metus. Donec a elit. Morbi ut lacus. Donec at arcu. Quisque velit diam, interdum a, lacinia at, varius et, odio. Cras neque magna, ornare id, sollicitudin id, consequat a, est. Phasellus vestibulum est at leo. Nam facilisis, nulla dapibus condimentum pellentesque, est magna viverra ligula, at sollicitudin urna augue ut sapien. Fusce justo."; | 79 | longText = "Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Donec nunc sapien, condimentum vitae, varius vel, pharetra in, augue. Mauris quam magna, pretium sit amet, accumsan id, volutpat lobortis, nibh. Fusce sagittis. Aenean justo. Curabitur euismod pede. Morbi at ante. Proin nisl leo, ultrices sed, facilisis et, nonummy sit amet, lorem. Praesent mauris tellus, pulvinar sed, nonummy vitae, rhoncus non, nunc. Proin placerat malesuada nisl. Nunc id enim. Maecenas commodo enim ac nibh. Sed condimentum, urna sit amet euismod gravida, mi urna varius odio, luctus pretium lectus justo nec felis. Ut in augue et est malesuada rhoncus. Sed vel orci. Mauris suscipit. Praesent cursus velit non turpis. Donec tristique dolor ac est. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Nulla est sapien, vulputate eget, bibendum id, pharetra nec, mauris. Aliquam faucibus tincidunt dui. Proin iaculis. Maecenas sagittis. Integer et augue. Donec vitae urna in orci aliquet commodo. Vestibulum lorem sem, suscipit ac, placerat nec, mollis in, felis. Donec laoreet odio a mauris. Integer rutrum, sapien id varius molestie, mauris odio egestas orci, non bibendum sem felis in metus. Phasellus consectetuer lectus adipiscing mauris. Ut magna tellus, euismod ac, suscipit tincidunt, ullamcorper adipiscing, massa. Etiam orci. Phasellus a urna. Cras neque quam, laoreet at, tempus eget, euismod nec, nibh. Etiam hendrerit. Aenean vel lorem. Ut ligula lacus, congue eu, lobortis sit amet, venenatis in, magna. Nullam cursus felis quis est. Sed sem est, condimentum eu, vestibulum a, mattis vel, diam. Curabitur tincidunt pede quis pede. Sed neque diam, convallis vel, luctus at, porta id, nisl. Suspendisse potenti. Sed volutpat lobortis orci. Praesent mi. In interdum. Suspendisse suscipit ipsum eget dolor. Curabitur et tellus sed velit hendrerit varius. Cras sit amet est. Donec arcu nulla, vehicula et, pretium in, placerat id, felis. Integer mollis auctor lectus. Integer ultrices elementum sapien. Nam et erat. Nam pulvinar porta tortor. Nam at risus. Quisque nulla. Integer vestibulum, lacus id bibendum laoreet, ligula mi pharetra lorem, sit amet pharetra felis mauris quis justo. Aliquam ultricies. Duis a pede eget lorem dapibus rhoncus. Aenean eu elit non libero consectetuer viverra. Maecenas velit mi, eleifend vel, malesuada vel, condimentum quis, odio. Mauris tempus augue sed turpis. Pellentesque condimentum, lacus vitae pellentesque ultricies, risus tellus posuere nisi, et dictum turpis pede nec elit. Sed eu lectus eu justo sagittis euismod. Vestibulum lobortis, urna id mollis rhoncus, orci quam euismod ligula, at malesuada lacus magna vitae massa. Phasellus mattis fermentum velit. Nulla vulputate consequat enim. Maecenas quis neque. Curabitur sagittis facilisis neque. In elementum, eros non porttitor rhoncus, libero turpis sodales odio, vitae porta tellus purus et ante. Nullam molestie sollicitudin metus. Donec a elit. Morbi ut lacus. Donec at arcu. Quisque velit diam, interdum a, lacinia at, varius et, odio. Cras neque magna, ornare id, sollicitudin id, consequat a, est. Phasellus vestibulum est at leo. Nam facilisis, nulla dapibus condimentum pellentesque, est magna viverra ligula, at sollicitudin urna augue ut sapien. Fusce justo."; |
83 | veryLongText = ""; | 80 | veryLongText = ""; |
84 | c = 100; | 81 | c = 100; |
85 | for (i=0; i<100; i++) { | 82 | for (i=0; i<100; i++) { |
86 | veryLongText += longText; | 83 | veryLongText += longText; |
87 | } | 84 | } |
88 | nonce = new Clipperz.ByteArray(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); | 85 | nonce = new Clipperz.ByteArray(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); |
89 | 86 | ||
90 | 87 | ||
91 | //-------------------------------------------------------------- | 88 | //-------------------------------------------------------------- |
92 | // | 89 | // |
93 | // longTextencryption performance | 90 | // longTextencryption performance |
94 | // | 91 | // |
95 | //-------------------------------------------------------------- | 92 | //-------------------------------------------------------------- |
96 | 93 | ||
97 | plainText = longText; | 94 | plainText = longText; |
98 | 95 | ||
99 | startTime = new Date(); | 96 | startTime = new Date(); |
100 | encryptedText = Clipperz.PM.Crypto.encryptingFunctions.versions[ClipperzCryptoVersion].encrypt(key, plainText, nonce); | 97 | encryptedText = Clipperz.PM.Crypto.encryptingFunctions.versions[ClipperzCryptoVersion].encrypt(key, plainText, nonce); |
101 | endTime = new Date(); | 98 | endTime = new Date(); |
102 | //console.log("[1] encryption time: " + (endTime - startTime)); | 99 | //console.log("[1] encryption time: " + (endTime - startTime)); |
103 | is((endTime - startTime < 350), true, "[1] Need to improve some more (" + (endTime - startTime) + ")"); | 100 | is((endTime - startTime < 350), true, "[1] Need to improve some more (" + (endTime - startTime) + ")"); |
104 | is(encryptedText, "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", "encrypted text"); | 101 | is(encryptedText, "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", "encrypted text"); |
105 | decryptedText = Clipperz.PM.Crypto.encryptingFunctions.versions[ClipperzCryptoVersion].decrypt(key, encryptedText); | 102 | decryptedText = Clipperz.PM.Crypto.encryptingFunctions.versions[ClipperzCryptoVersion].decrypt(key, encryptedText); |
106 | is(decryptedText, plainText, "encrypt <-> decrypt works (specifying the nonce)"); | 103 | is(decryptedText, plainText, "encrypt <-> decrypt works (specifying the nonce)"); |
107 | 104 | ||
108 | startTime = new Date(); | 105 | startTime = new Date(); |
109 | encryptedText = Clipperz.PM.Crypto.encryptingFunctions.versions[ClipperzCryptoVersion].encrypt(key, plainText); | 106 | encryptedText = Clipperz.PM.Crypto.encryptingFunctions.versions[ClipperzCryptoVersion].encrypt(key, plainText); |
110 | endTime = new Date(); | 107 | endTime = new Date(); |
111 | //console.log("[2] encryption time: " + (endTime - startTime)); | 108 | //console.log("[2] encryption time: " + (endTime - startTime)); |
112 | is((endTime - startTime < 350), true, "[2] Need to improve some more (" + (endTime - startTime) + ")"); | 109 | is((endTime - startTime < 350), true, "[2] Need to improve some more (" + (endTime - startTime) + ")"); |
113 | decryptedText = Clipperz.PM.Crypto.encryptingFunctions.versions[ClipperzCryptoVersion].decrypt(key, encryptedText); | 110 | decryptedText = Clipperz.PM.Crypto.encryptingFunctions.versions[ClipperzCryptoVersion].decrypt(key, encryptedText); |
114 | is(decryptedText, plainText, "encrypt <-> decrypt works"); | 111 | is(decryptedText, plainText, "encrypt <-> decrypt works"); |
115 | 112 | ||
116 | //-------------------------------------------------------------- | 113 | //-------------------------------------------------------------- |
117 | // | 114 | // |
118 | // veryLongTextencryption performance | 115 | // veryLongTextencryption performance |
119 | // | 116 | // |
120 | //-------------------------------------------------------------- | 117 | //-------------------------------------------------------------- |
diff --git a/frontend/gamma/tests/tests/Clipperz/PM/Crypto_test.html b/frontend/gamma/tests/tests/Clipperz/PM/Crypto_test.html index f5b0a60..dc01dae 100644 --- a/frontend/gamma/tests/tests/Clipperz/PM/Crypto_test.html +++ b/frontend/gamma/tests/tests/Clipperz/PM/Crypto_test.html | |||
@@ -1,120 +1,117 @@ | |||
1 | <!-- | 1 | <!-- |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | --> | 24 | --> |
28 | 25 | ||
29 | <html> | 26 | <html> |
30 | <head> | 27 | <head> |
31 | <title>Clipperz.PM.Crypto - TEST</title> | 28 | <title>Clipperz.PM.Crypto - TEST</title> |
32 | 29 | ||
33 | <script type="text/javascript" src="../../../../js/MochiKit/MochiKit.js"></script> | 30 | <script type="text/javascript" src="../../../../js/MochiKit/MochiKit.js"></script> |
34 | 31 | ||
35 | <script type='text/javascript' src='../../../../js/JSON/json2.js'></script> | 32 | <script type='text/javascript' src='../../../../js/JSON/json2.js'></script> |
36 | <script type='text/javascript' src='../../../../js/Clipperz/YUI/Utils.js'></script> | 33 | <script type='text/javascript' src='../../../../js/Clipperz/YUI/Utils.js'></script> |
37 | <script type='text/javascript' src='../../../../js/Clipperz/YUI/DomHelper.js'></script> | 34 | <script type='text/javascript' src='../../../../js/Clipperz/YUI/DomHelper.js'></script> |
38 | 35 | ||
39 | <script type='text/javascript' src='../../../../js/Clipperz/ByteArray.js'></script> | 36 | <script type='text/javascript' src='../../../../js/Clipperz/ByteArray.js'></script> |
40 | <script type='text/javascript' src='../../../../js/Clipperz/Base.js'></script> | 37 | <script type='text/javascript' src='../../../../js/Clipperz/Base.js'></script> |
41 | <script type='text/javascript' src='../../../../js/Clipperz/Async.js'></script> | 38 | <script type='text/javascript' src='../../../../js/Clipperz/Async.js'></script> |
42 | <script type='text/javascript' src='../../../../js/Clipperz/DOM.js'></script> | 39 | <script type='text/javascript' src='../../../../js/Clipperz/DOM.js'></script> |
43 | <script type='text/javascript' src='../../../../js/Clipperz/Logging.js'></script> | 40 | <script type='text/javascript' src='../../../../js/Clipperz/Logging.js'></script> |
44 | 41 | ||
45 | <script type='text/javascript' src='../../../../js/Clipperz/Crypto/SHA.js'></script> | 42 | <script type='text/javascript' src='../../../../js/Clipperz/Crypto/SHA.js'></script> |
46 | <script type='text/javascript' src='../../../../js/Clipperz/Crypto/AES.js'></script> | 43 | <script type='text/javascript' src='../../../../js/Clipperz/Crypto/AES.js'></script> |
47 | <script type='text/javascript' src='../../../../js/Clipperz/Crypto/PRNG.js'></script> | 44 | <script type='text/javascript' src='../../../../js/Clipperz/Crypto/PRNG.js'></script> |
48 | <script type='text/javascript' src='../../../../js/Clipperz/Crypto/BigInt.js'></script> | 45 | <script type='text/javascript' src='../../../../js/Clipperz/Crypto/BigInt.js'></script> |
49 | <script type='text/javascript' src='../../../../js/Clipperz/Crypto/Base.js'></script> | 46 | <script type='text/javascript' src='../../../../js/Clipperz/Crypto/Base.js'></script> |
50 | <script type='text/javascript' src='../../../../js/Clipperz/Crypto/SRP.js'></script> | 47 | <script type='text/javascript' src='../../../../js/Clipperz/Crypto/SRP.js'></script> |
51 | 48 | ||
52 | <script type='text/javascript' src='../../../../js/Clipperz/PM/Proxy.js'></script> | 49 | <script type='text/javascript' src='../../../../js/Clipperz/PM/Proxy.js'></script> |
53 | <script type='text/javascript' src='../../../../js/Clipperz/PM/Connection.js'></script> | 50 | <script type='text/javascript' src='../../../../js/Clipperz/PM/Connection.js'></script> |
54 | <script type='text/javascript' src='../../../../js/Clipperz/PM/Crypto.js'></script> | 51 | <script type='text/javascript' src='../../../../js/Clipperz/PM/Crypto.js'></script> |
55 | 52 | ||
56 | 53 | ||
57 | <!-- ================================================================================ --> <script> | 54 | <!-- ================================================================================ --> <script> |
58 | //MochiKit.DOM.addLoadEvent(MochiKit.Base.partial(MochiKit.LoggingPane.createLoggingPane, true)); | 55 | //MochiKit.DOM.addLoadEvent(MochiKit.Base.partial(MochiKit.LoggingPane.createLoggingPane, true)); |
59 | //MochiKit.Logging.logger.useNativeConsole = true; | 56 | //MochiKit.Logging.logger.useNativeConsole = true; |
60 | 57 | ||
61 | //----------------------------------------------------------------------------- | 58 | //----------------------------------------------------------------------------- |
62 | 59 | ||
63 | encodePassword = function (anEvent) { | 60 | encodePassword = function (anEvent) { |
64 | varusername; | 61 | varusername; |
65 | var password; | 62 | var password; |
66 | var encodedPassword; | 63 | var encodedPassword; |
67 | var srpConnection; | 64 | var srpConnection; |
68 | 65 | ||
69 | anEvent.stop(); | 66 | anEvent.stop(); |
70 | 67 | ||
71 | srpConnection = new Clipperz.PM.Connection.SRP['1.1'](); | 68 | srpConnection = new Clipperz.PM.Connection.SRP['1.1'](); |
72 | 69 | ||
73 | username = MochiKit.DOM.getElement('username').value; | 70 | username = MochiKit.DOM.getElement('username').value; |
74 | passphrase = MochiKit.DOM.getElement('passphrase').value; | 71 | passphrase = MochiKit.DOM.getElement('passphrase').value; |
75 | encodedPassword = srpConnection.normalizedCredentials({'username':username , 'password':passphrase })['password']; | 72 | encodedPassword = srpConnection.normalizedCredentials({'username':username , 'password':passphrase })['password']; |
76 | 73 | ||
77 | MochiKit.DOM.getElement('encodedPassword').value = encodedPassword; | 74 | MochiKit.DOM.getElement('encodedPassword').value = encodedPassword; |
78 | } | 75 | } |
79 | 76 | ||
80 | //----------------------------------------------------------------------------- | 77 | //----------------------------------------------------------------------------- |
81 | 78 | ||
82 | decryptData = function (anEvent) { | 79 | decryptData = function (anEvent) { |
83 | vardeferredResult; | 80 | vardeferredResult; |
84 | varkey; | 81 | varkey; |
85 | varversion; | 82 | varversion; |
86 | var value; | 83 | var value; |
87 | 84 | ||
88 | key = MochiKit.DOM.getElement('key').value; | 85 | key = MochiKit.DOM.getElement('key').value; |
89 | version = MochiKit.DOM.getElement('version').value; | 86 | version = MochiKit.DOM.getElement('version').value; |
90 | value = MochiKit.DOM.getElement('encryptedText').value; | 87 | value = MochiKit.DOM.getElement('encryptedText').value; |
91 | 88 | ||
92 | anEvent.stop(); | 89 | anEvent.stop(); |
93 | 90 | ||
94 | deferredResult = new Clipperz.Async.Deferred("Decrypted data", {trace:false}); | 91 | deferredResult = new Clipperz.Async.Deferred("Decrypted data", {trace:false}); |
95 | deferredResult.addCallback(Clipperz.PM.Crypto.deferredDecrypt, {key:key, version:version, value:value}); | 92 | deferredResult.addCallback(Clipperz.PM.Crypto.deferredDecrypt, {key:key, version:version, value:value}); |
96 | deferredResult.addCallback(Clipperz.Base.serializeJSON); | 93 | deferredResult.addCallback(Clipperz.Base.serializeJSON); |
97 | deferredResult.addCallback(function (aValue) { | 94 | deferredResult.addCallback(function (aValue) { |
98 | MochiKit.DOM.getElement('decryptedText').value = aValue; | 95 | MochiKit.DOM.getElement('decryptedText').value = aValue; |
99 | }); | 96 | }); |
100 | deferredResult.addErrback(alert); | 97 | deferredResult.addErrback(alert); |
101 | 98 | ||
102 | deferredResult.callback(); | 99 | deferredResult.callback(); |
103 | } | 100 | } |
104 | 101 | ||
105 | //----------------------------------------------------------------------------- | 102 | //----------------------------------------------------------------------------- |
106 | 103 | ||
107 | encryptData = function (anEvent) { | 104 | encryptData = function (anEvent) { |
108 | vardeferredResult; | 105 | vardeferredResult; |
109 | varkey; | 106 | varkey; |
110 | varversion; | 107 | varversion; |
111 | var value; | 108 | var value; |
112 | 109 | ||
113 | key = MochiKit.DOM.getElement('key').value; | 110 | key = MochiKit.DOM.getElement('key').value; |
114 | version = MochiKit.DOM.getElement('version').value; | 111 | version = MochiKit.DOM.getElement('version').value; |
115 | value = Clipperz.Base.evalJSON(MochiKit.DOM.getElement('decryptedText').value); | 112 | value = Clipperz.Base.evalJSON(MochiKit.DOM.getElement('decryptedText').value); |
116 | 113 | ||
117 | anEvent.stop(); | 114 | anEvent.stop(); |
118 | 115 | ||
119 | deferredResult = new Clipperz.Async.Deferred("Encrypted data", {trace:false}); | 116 | deferredResult = new Clipperz.Async.Deferred("Encrypted data", {trace:false}); |
120 | deferredResult.addCallback(Clipperz.PM.Crypto.deferredEncrypt, {key:key, version:version, value:value}); | 117 | deferredResult.addCallback(Clipperz.PM.Crypto.deferredEncrypt, {key:key, version:version, value:value}); |
diff --git a/frontend/gamma/tests/tests/Clipperz/PM/DataModel/DirectLogin.html b/frontend/gamma/tests/tests/Clipperz/PM/DataModel/DirectLogin.html index e11adfd..0a5bcfb 100644 --- a/frontend/gamma/tests/tests/Clipperz/PM/DataModel/DirectLogin.html +++ b/frontend/gamma/tests/tests/Clipperz/PM/DataModel/DirectLogin.html | |||
@@ -1,103 +1,100 @@ | |||
1 | <!-- | 1 | <!-- |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | --> | 24 | --> |
28 | 25 | ||
29 | <html> | 26 | <html> |
30 | <head> | 27 | <head> |
31 | <title>Clipperz.PM.DataModel.DirectLogin - test</title> | 28 | <title>Clipperz.PM.DataModel.DirectLogin - test</title> |
32 | 29 | ||
33 | <script type="text/javascript" src="../../../../../js/MochiKit/MochiKit.js"></script> | 30 | <script type="text/javascript" src="../../../../../js/MochiKit/MochiKit.js"></script> |
34 | <script type="text/javascript" src="../../../../SimpleTest/SimpleTest.js"></script> | 31 | <script type="text/javascript" src="../../../../SimpleTest/SimpleTest.js"></script> |
35 | <link rel="stylesheet" type="text/css" href="../../../../SimpleTest/test.css"> | 32 | <link rel="stylesheet" type="text/css" href="../../../../SimpleTest/test.css"> |
36 | 33 | ||
37 | <script type='text/javascript' src='../../../../../js/JSON/json2.js'></script> | 34 | <script type='text/javascript' src='../../../../../js/JSON/json2.js'></script> |
38 | 35 | ||
39 | <script type='text/javascript' src='../../../../../js/Clipperz/YUI/Utils.js'></script> | 36 | <script type='text/javascript' src='../../../../../js/Clipperz/YUI/Utils.js'></script> |
40 | <script type='text/javascript' src='../../../../../js/Clipperz/Base.js'></script> | 37 | <script type='text/javascript' src='../../../../../js/Clipperz/Base.js'></script> |
41 | <script type='text/javascript' src='../../../../../js/Clipperz/Date.js'></script> | 38 | <script type='text/javascript' src='../../../../../js/Clipperz/Date.js'></script> |
42 | <script type='text/javascript' src='../../../../../js/Clipperz/ByteArray.js'></script> | 39 | <script type='text/javascript' src='../../../../../js/Clipperz/ByteArray.js'></script> |
43 | <script type='text/javascript' src='../../../../../js/Clipperz/Logging.js'></script> | 40 | <script type='text/javascript' src='../../../../../js/Clipperz/Logging.js'></script> |
44 | <script type='text/javascript' src='../../../../../js/Clipperz/Async.js'></script> | 41 | <script type='text/javascript' src='../../../../../js/Clipperz/Async.js'></script> |
45 | <script type='text/javascript' src='../../../../../js/Clipperz/Signal.js'></script> | 42 | <script type='text/javascript' src='../../../../../js/Clipperz/Signal.js'></script> |
46 | <script type='text/javascript' src='../../../../../js/Clipperz/KeyValueObjectStore.js'></script> | 43 | <script type='text/javascript' src='../../../../../js/Clipperz/KeyValueObjectStore.js'></script> |
47 | 44 | ||
48 | <script type='text/javascript' src='../../../../../js/Clipperz/Crypto/Base.js'></script> | 45 | <script type='text/javascript' src='../../../../../js/Clipperz/Crypto/Base.js'></script> |
49 | <script type='text/javascript' src='../../../../../js/Clipperz/Crypto/BigInt.js'></script> | 46 | <script type='text/javascript' src='../../../../../js/Clipperz/Crypto/BigInt.js'></script> |
50 | <script type='text/javascript' src='../../../../../js/Clipperz/Crypto/AES.js'></script> | 47 | <script type='text/javascript' src='../../../../../js/Clipperz/Crypto/AES.js'></script> |
51 | <script type='text/javascript' src='../../../../../js/Clipperz/Crypto/SHA.js'></script> | 48 | <script type='text/javascript' src='../../../../../js/Clipperz/Crypto/SHA.js'></script> |
52 | <script type='text/javascript' src='../../../../../js/Clipperz/Crypto/PRNG.js'></script> | 49 | <script type='text/javascript' src='../../../../../js/Clipperz/Crypto/PRNG.js'></script> |
53 | <script type='text/javascript' src='../../../../../js/Clipperz/Crypto/SRP.js'></script> | 50 | <script type='text/javascript' src='../../../../../js/Clipperz/Crypto/SRP.js'></script> |
54 | 51 | ||
55 | <script type='text/javascript' src='../../../../../js/Clipperz/PM/Toll.js'></script> | 52 | <script type='text/javascript' src='../../../../../js/Clipperz/PM/Toll.js'></script> |
56 | <script type='text/javascript' src='../../../../../js/Clipperz/PM/Proxy.js'></script> | 53 | <script type='text/javascript' src='../../../../../js/Clipperz/PM/Proxy.js'></script> |
57 | <script type='text/javascript' src='../../../../../js/Clipperz/PM/Proxy/Proxy.Offline.js'></script> | 54 | <script type='text/javascript' src='../../../../../js/Clipperz/PM/Proxy/Proxy.Offline.js'></script> |
58 | <script type='text/javascript' src='../../../../../js/Clipperz/PM/Proxy/Proxy.Test.js'></script> | 55 | <script type='text/javascript' src='../../../../../js/Clipperz/PM/Proxy/Proxy.Test.js'></script> |
59 | <script type='text/javascript' src='../../../../../js/Clipperz/PM/Proxy/Proxy.Offline.DataStore.js'></script> | 56 | <script type='text/javascript' src='../../../../../js/Clipperz/PM/Proxy/Proxy.Offline.DataStore.js'></script> |
60 | 57 | ||
61 | <script type='text/javascript' src='../../../../../js/Clipperz/PM/Connection.js'></script> | 58 | <script type='text/javascript' src='../../../../../js/Clipperz/PM/Connection.js'></script> |
62 | <script type='text/javascript' src='../../../../../js/Clipperz/PM/Crypto.js'></script> | 59 | <script type='text/javascript' src='../../../../../js/Clipperz/PM/Crypto.js'></script> |
63 | 60 | ||
64 | <script type='text/javascript' src='../../../../../js/Clipperz/PM/Strings.js'></script> | 61 | <script type='text/javascript' src='../../../../../js/Clipperz/PM/Strings.js'></script> |
65 | <script type='text/javascript' src='../../../../../js/Clipperz/PM/Strings/Strings_en-US.js'></script> | 62 | <script type='text/javascript' src='../../../../../js/Clipperz/PM/Strings/Strings_en-US.js'></script> |
66 | <script type='text/javascript' src='../../../../../js/Clipperz/PM/Date.js'></script> | 63 | <script type='text/javascript' src='../../../../../js/Clipperz/PM/Date.js'></script> |
67 | <script type='text/javascript' src='../../../../../js/Clipperz/PM/DataModel/EncryptedRemoteObject.js'></script> | 64 | <script type='text/javascript' src='../../../../../js/Clipperz/PM/DataModel/EncryptedRemoteObject.js'></script> |
68 | <script type='text/javascript' src='../../../../../js/Clipperz/PM/DataModel/Record.js'></script> | 65 | <script type='text/javascript' src='../../../../../js/Clipperz/PM/DataModel/Record.js'></script> |
69 | <script type='text/javascript' src='../../../../../js/Clipperz/PM/DataModel/Record.Version.js'></script> | 66 | <script type='text/javascript' src='../../../../../js/Clipperz/PM/DataModel/Record.Version.js'></script> |
70 | <script type='text/javascript' src='../../../../../js/Clipperz/PM/DataModel/Record.Version.Field.js'></script> | 67 | <script type='text/javascript' src='../../../../../js/Clipperz/PM/DataModel/Record.Version.Field.js'></script> |
71 | <script type='text/javascript' src='../../../../../js/Clipperz/PM/DataModel/DirectLogin.js'></script> | 68 | <script type='text/javascript' src='../../../../../js/Clipperz/PM/DataModel/DirectLogin.js'></script> |
72 | <script type='text/javascript' src='../../../../../js/Clipperz/PM/DataModel/DirectLoginInput.js'></script> | 69 | <script type='text/javascript' src='../../../../../js/Clipperz/PM/DataModel/DirectLoginInput.js'></script> |
73 | <script type='text/javascript' src='../../../../../js/Clipperz/PM/DataModel/DirectLoginBinding.js'></script> | 70 | <script type='text/javascript' src='../../../../../js/Clipperz/PM/DataModel/DirectLoginBinding.js'></script> |
74 | <script type='text/javascript' src='../../../../../js/Clipperz/PM/DataModel/User.js'></script> | 71 | <script type='text/javascript' src='../../../../../js/Clipperz/PM/DataModel/User.js'></script> |
75 | <script type='text/javascript' src='../../../../../js/Clipperz/PM/DataModel/User.Header.Legacy.js'></script> | 72 | <script type='text/javascript' src='../../../../../js/Clipperz/PM/DataModel/User.Header.Legacy.js'></script> |
76 | <script type='text/javascript' src='../../../../../js/Clipperz/PM/DataModel/User.Header.RecordIndex.js'></script> | 73 | <script type='text/javascript' src='../../../../../js/Clipperz/PM/DataModel/User.Header.RecordIndex.js'></script> |
77 | <script type='text/javascript' src='../../../../../js/Clipperz/PM/DataModel/User.Header.Preferences.js'></script> | 74 | <script type='text/javascript' src='../../../../../js/Clipperz/PM/DataModel/User.Header.Preferences.js'></script> |
78 | <script type='text/javascript' src='../../../../../js/Clipperz/PM/DataModel/User.Header.OneTimePasswords.js'></script> | 75 | <script type='text/javascript' src='../../../../../js/Clipperz/PM/DataModel/User.Header.OneTimePasswords.js'></script> |
79 | <script type='text/javascript' src='../../../../../js/Clipperz/PM/DataModel/OneTimePassword.js'></script> | 76 | <script type='text/javascript' src='../../../../../js/Clipperz/PM/DataModel/OneTimePassword.js'></script> |
80 | 77 | ||
81 | <script type="text/javascript" src="../../../../SimpleTest/SimpleTest.Async.js"></script> | 78 | <script type="text/javascript" src="../../../../SimpleTest/SimpleTest.Async.js"></script> |
82 | <script> | 79 | <script> |
83 | Clipperz_IEisBroken = false; | 80 | Clipperz_IEisBroken = false; |
84 | </script> | 81 | </script> |
85 | 82 | ||
86 | <!--[if IE]><script> | 83 | <!--[if IE]><script> |
87 | Clipperz_IEisBroken = true; | 84 | Clipperz_IEisBroken = true; |
88 | Clipperz_normalizedNewLine = '\x0d\x0a'; | 85 | Clipperz_normalizedNewLine = '\x0d\x0a'; |
89 | </script><![endif]--> | 86 | </script><![endif]--> |
90 | 87 | ||
91 | </head> | 88 | </head> |
92 | <body> | 89 | <body> |
93 | 90 | ||
94 | <pre id="test"> | 91 | <pre id="test"> |
95 | <script> | 92 | <script> |
96 | Clipperz.PM.Strings.Languages.setSelectedLanguage('en-us'); | 93 | Clipperz.PM.Strings.Languages.setSelectedLanguage('en-us'); |
97 | </script> | 94 | </script> |
98 | <script type="text/javascript" src="User.data.js"></script> | 95 | <script type="text/javascript" src="User.data.js"></script> |
99 | <script type="text/javascript" src="User.data.old.js"></script> | 96 | <script type="text/javascript" src="User.data.old.js"></script> |
100 | <script type="text/javascript" src="DirectLogin.test.js"></script> | 97 | <script type="text/javascript" src="DirectLogin.test.js"></script> |
101 | </pre> | 98 | </pre> |
102 | </body> | 99 | </body> |
103 | </html> | 100 | </html> |
diff --git a/frontend/gamma/tests/tests/Clipperz/PM/DataModel/DirectLogin.test.js b/frontend/gamma/tests/tests/Clipperz/PM/DataModel/DirectLogin.test.js index d385c8c..7df0971 100644 --- a/frontend/gamma/tests/tests/Clipperz/PM/DataModel/DirectLogin.test.js +++ b/frontend/gamma/tests/tests/Clipperz/PM/DataModel/DirectLogin.test.js | |||
@@ -1,120 +1,117 @@ | |||
1 | /* | 1 | /* |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | */ | 24 | */ |
28 | 25 | ||
29 | Clipperz.Crypto.PRNG.defaultRandomGenerator().fastEntropyAccumulationForTestingPurpose(); | 26 | Clipperz.Crypto.PRNG.defaultRandomGenerator().fastEntropyAccumulationForTestingPurpose(); |
30 | 27 | ||
31 | var tests = { | 28 | var tests = { |
32 | 29 | ||
33 | /* | 30 | /* |
34 | user = new Clipperz.PM.DataModel.User({username:'test', getPassphraseFunction:function () { return 'test';}}); | 31 | user = new Clipperz.PM.DataModel.User({username:'test', getPassphraseFunction:function () { return 'test';}}); |
35 | ... | 32 | ... |
36 | deferredResult.addMethod(proxy.dataStore(), 'setupWithEncryptedData', testData['test_test_offline_copy_data']); | 33 | deferredResult.addMethod(proxy.dataStore(), 'setupWithEncryptedData', testData['test_test_offline_copy_data']); |
37 | deferredResult.addMethod(user, 'getRecord', '8280842f41162b673335b63860637e8472e8bbff0efa2bc78b0dbc5e09712e13'); | 34 | deferredResult.addMethod(user, 'getRecord', '8280842f41162b673335b63860637e8472e8bbff0efa2bc78b0dbc5e09712e13'); |
38 | 35 | ||
39 | 36 | ||
40 | user = new Clipperz.PM.DataModel.User({username:'joe', getPassphraseFunction:function () { return 'clipperz';}}); | 37 | user = new Clipperz.PM.DataModel.User({username:'joe', getPassphraseFunction:function () { return 'clipperz';}}); |
41 | ... | 38 | ... |
42 | deferredResult.addMethod(proxy.dataStore(), 'setupWithEncryptedData', testData['joe_clipperz_offline_copy_data']); | 39 | deferredResult.addMethod(proxy.dataStore(), 'setupWithEncryptedData', testData['joe_clipperz_offline_copy_data']); |
43 | deferredResult.addMethod(user, 'getRecord', '5cdac63b317f3942da38f3a3de3b7f0e5d6678200951c6216230295550f63fb4'); //WEB PASSWORD (0) | 40 | deferredResult.addMethod(user, 'getRecord', '5cdac63b317f3942da38f3a3de3b7f0e5d6678200951c6216230295550f63fb4'); //WEB PASSWORD (0) |
44 | deferredResult.addMethod(user, 'getRecord', '36ec1a41118813ced3553534fa2607d781cba687768db305beed368a8e06e113'); //DIGG (1) | 41 | deferredResult.addMethod(user, 'getRecord', '36ec1a41118813ced3553534fa2607d781cba687768db305beed368a8e06e113'); //DIGG (1) |
45 | deferredResult.addMethod(user, 'getRecord', 'c0ce9130ca365bb02418d4305ea1d29e49c3f0e96d44b9d3cb6b4b6843d25065'); //SAP (2) | 42 | deferredResult.addMethod(user, 'getRecord', 'c0ce9130ca365bb02418d4305ea1d29e49c3f0e96d44b9d3cb6b4b6843d25065'); //SAP (2) |
46 | deferredResult.addMethod(user, 'getRecord', 'd5f700b9c3367c39551ea49e00a9ab20dae09dd79d46047b983fc7c4bfaa050d'); //YAHOO (4) | 43 | deferredResult.addMethod(user, 'getRecord', 'd5f700b9c3367c39551ea49e00a9ab20dae09dd79d46047b983fc7c4bfaa050d'); //YAHOO (4) |
47 | DirectLogin references | 44 | DirectLogin references |
48 | - dba0db679802f0e6aa6d0b7a6aaf42350aabc5f057409edd99a268a92ebb6496 //Yahoo! Mail | 45 | - dba0db679802f0e6aa6d0b7a6aaf42350aabc5f057409edd99a268a92ebb6496 //Yahoo! Mail |
49 | - aa18149164302d5dbe7e2d3724565b9550e00887b49978559783b2e38c625584 //(Yahoo! Groups) | 46 | - aa18149164302d5dbe7e2d3724565b9550e00887b49978559783b2e38c625584 //(Yahoo! Groups) |
50 | - 6f7bbc4e42ea462b5246e6f51c3f86056bec50601ce2de6067c8c1d26f21c07f //(Flickr) | 47 | - 6f7bbc4e42ea462b5246e6f51c3f86056bec50601ce2de6067c8c1d26f21c07f //(Flickr) |
51 | - a7b32e72502804bf2946a2a8856139cbbb759c5777e6b3e673db1fdf7e3bd06e //(My Yahoo!) | 48 | - a7b32e72502804bf2946a2a8856139cbbb759c5777e6b3e673db1fdf7e3bd06e //(My Yahoo!) |
52 | */ | 49 | */ |
53 | //------------------------------------------------------------------------- | 50 | //------------------------------------------------------------------------- |
54 | 51 | ||
55 | 'editDirectLoginLabel_test': function (someTestArgs) { | 52 | 'editDirectLoginLabel_test': function (someTestArgs) { |
56 | var deferredResult; | 53 | var deferredResult; |
57 | var proxy; | 54 | var proxy; |
58 | var user; | 55 | var user; |
59 | 56 | ||
60 | proxy = new Clipperz.PM.Proxy.Test({shouldPayTolls:true, isDefault:true, readOnly:false}); | 57 | proxy = new Clipperz.PM.Proxy.Test({shouldPayTolls:true, isDefault:true, readOnly:false}); |
61 | user = new Clipperz.PM.DataModel.User({username:'joe', getPassphraseFunction:function () { return 'clipperz';}}); | 58 | user = new Clipperz.PM.DataModel.User({username:'joe', getPassphraseFunction:function () { return 'clipperz';}}); |
62 | 59 | ||
63 | deferredResult = new Clipperz.Async.Deferred("editDirectLoginLabel_test", someTestArgs); | 60 | deferredResult = new Clipperz.Async.Deferred("editDirectLoginLabel_test", someTestArgs); |
64 | deferredResult.addMethod(proxy.dataStore(), 'setupWithEncryptedData', testData['joe_clipperz_offline_copy_data']); | 61 | deferredResult.addMethod(proxy.dataStore(), 'setupWithEncryptedData', testData['joe_clipperz_offline_copy_data']); |
65 | deferredResult.addMethod(user, 'login'); | 62 | deferredResult.addMethod(user, 'login'); |
66 | deferredResult.addMethod(user, 'getRecord', 'd5f700b9c3367c39551ea49e00a9ab20dae09dd79d46047b983fc7c4bfaa050d'); //YAHOO (4) | 63 | deferredResult.addMethod(user, 'getRecord', 'd5f700b9c3367c39551ea49e00a9ab20dae09dd79d46047b983fc7c4bfaa050d'); //YAHOO (4) |
67 | deferredResult.addMethodcaller('directLogins'); | 64 | deferredResult.addMethodcaller('directLogins'); |
68 | deferredResult.addCallback(MochiKit.Base.itemgetter('dba0db679802f0e6aa6d0b7a6aaf42350aabc5f057409edd99a268a92ebb6496')); | 65 | deferredResult.addCallback(MochiKit.Base.itemgetter('dba0db679802f0e6aa6d0b7a6aaf42350aabc5f057409edd99a268a92ebb6496')); |
69 | deferredResult.addCallback(function (aDirectLogin) { | 66 | deferredResult.addCallback(function (aDirectLogin) { |
70 | var innerDeferredResult; | 67 | var innerDeferredResult; |
71 | var updatedLabel; | 68 | var updatedLabel; |
72 | 69 | ||
73 | updatedLabel = "updated Yahoo! Mail label"; | 70 | updatedLabel = "updated Yahoo! Mail label"; |
74 | 71 | ||
75 | innerDeferredResult = new Clipperz.Async.Deferred("editDirectLoginLabel_test <inner>", someTestArgs); | 72 | innerDeferredResult = new Clipperz.Async.Deferred("editDirectLoginLabel_test <inner>", someTestArgs); |
76 | innerDeferredResult.addMethod(aDirectLogin, 'label'); | 73 | innerDeferredResult.addMethod(aDirectLogin, 'label'); |
77 | innerDeferredResult.addTest("Yahoo! Mail", "The label of the selected direct login is correct."); | 74 | innerDeferredResult.addTest("Yahoo! Mail", "The label of the selected direct login is correct."); |
78 | innerDeferredResult.addMethod(aDirectLogin, 'setLabel', updatedLabel); | 75 | innerDeferredResult.addMethod(aDirectLogin, 'setLabel', updatedLabel); |
79 | 76 | ||
80 | innerDeferredResult.addMethod(aDirectLogin, 'label'); | 77 | innerDeferredResult.addMethod(aDirectLogin, 'label'); |
81 | innerDeferredResult.addTest(updatedLabel, "The DirectLogin returns the correct label even before committing data."); | 78 | innerDeferredResult.addTest(updatedLabel, "The DirectLogin returns the correct label even before committing data."); |
82 | 79 | ||
83 | innerDeferredResult.addMethod(user, 'hasPendingChanges'); | 80 | innerDeferredResult.addMethod(user, 'hasPendingChanges'); |
84 | innerDeferredResult.addTest(true, "When changing the label of a DirectLogin, the user should report pending changes."); | 81 | innerDeferredResult.addTest(true, "When changing the label of a DirectLogin, the user should report pending changes."); |
85 | 82 | ||
86 | //innerDeferredResult.addCallback(function () { console.log("+_+_+_+_+_+_+_+_+_+_+_+ >>>")}); | 83 | //innerDeferredResult.addCallback(function () { console.log("+_+_+_+_+_+_+_+_+_+_+_+ >>>")}); |
87 | innerDeferredResult.addMethod(user, 'saveChanges'); | 84 | innerDeferredResult.addMethod(user, 'saveChanges'); |
88 | //innerDeferredResult.addCallback(function () { console.log("+_+_+_+_+_+_+_+_+_+_+_+ <<<")}); | 85 | //innerDeferredResult.addCallback(function () { console.log("+_+_+_+_+_+_+_+_+_+_+_+ <<<")}); |
89 | innerDeferredResult.addMethod(user, 'hasPendingChanges'); | 86 | innerDeferredResult.addMethod(user, 'hasPendingChanges'); |
90 | innerDeferredResult.addTest(false, "After saving changes there should be no pending changes left."); | 87 | innerDeferredResult.addTest(false, "After saving changes there should be no pending changes left."); |
91 | 88 | ||
92 | innerDeferredResult.addMethod(aDirectLogin, 'label'); | 89 | innerDeferredResult.addMethod(aDirectLogin, 'label'); |
93 | innerDeferredResult.addTest(updatedLabel, "The DirectLogin returns the correct label even after committing data."); | 90 | innerDeferredResult.addTest(updatedLabel, "The DirectLogin returns the correct label even after committing data."); |
94 | 91 | ||
95 | innerDeferredResult.callback(); | 92 | innerDeferredResult.callback(); |
96 | 93 | ||
97 | return innerDeferredResult; | 94 | return innerDeferredResult; |
98 | }) | 95 | }) |
99 | 96 | ||
100 | deferredResult.callback(); | 97 | deferredResult.callback(); |
101 | 98 | ||
102 | return deferredResult; | 99 | return deferredResult; |
103 | }, | 100 | }, |
104 | 101 | ||
105 | //------------------------------------------------------------------------- | 102 | //------------------------------------------------------------------------- |
106 | 103 | ||
107 | 'editDirectLoginLabel_thanResetItToThePreviousValue_test': function (someTestArgs) { | 104 | 'editDirectLoginLabel_thanResetItToThePreviousValue_test': function (someTestArgs) { |
108 | var deferredResult; | 105 | var deferredResult; |
109 | var proxy; | 106 | var proxy; |
110 | var user; | 107 | var user; |
111 | 108 | ||
112 | proxy = new Clipperz.PM.Proxy.Test({shouldPayTolls:true, isDefault:true, readOnly:false}); | 109 | proxy = new Clipperz.PM.Proxy.Test({shouldPayTolls:true, isDefault:true, readOnly:false}); |
113 | user = new Clipperz.PM.DataModel.User({username:'joe', getPassphraseFunction:function () { return 'clipperz';}}); | 110 | user = new Clipperz.PM.DataModel.User({username:'joe', getPassphraseFunction:function () { return 'clipperz';}}); |
114 | 111 | ||
115 | deferredResult = new Clipperz.Async.Deferred("editDirectLoginLabel_thanResetItToThePreviousValue_test", someTestArgs); | 112 | deferredResult = new Clipperz.Async.Deferred("editDirectLoginLabel_thanResetItToThePreviousValue_test", someTestArgs); |
116 | deferredResult.addMethod(proxy.dataStore(), 'setupWithEncryptedData', testData['joe_clipperz_offline_copy_data']); | 113 | deferredResult.addMethod(proxy.dataStore(), 'setupWithEncryptedData', testData['joe_clipperz_offline_copy_data']); |
117 | deferredResult.addMethod(user, 'login'); | 114 | deferredResult.addMethod(user, 'login'); |
118 | deferredResult.addMethod(user, 'getRecord', 'd5f700b9c3367c39551ea49e00a9ab20dae09dd79d46047b983fc7c4bfaa050d'); //YAHOO (4) | 115 | deferredResult.addMethod(user, 'getRecord', 'd5f700b9c3367c39551ea49e00a9ab20dae09dd79d46047b983fc7c4bfaa050d'); //YAHOO (4) |
119 | deferredResult.addMethodcaller('directLogins'); | 116 | deferredResult.addMethodcaller('directLogins'); |
120 | deferredResult.addCallback(MochiKit.Base.itemgetter('dba0db679802f0e6aa6d0b7a6aaf42350aabc5f057409edd99a268a92ebb6496')); | 117 | deferredResult.addCallback(MochiKit.Base.itemgetter('dba0db679802f0e6aa6d0b7a6aaf42350aabc5f057409edd99a268a92ebb6496')); |
diff --git a/frontend/gamma/tests/tests/Clipperz/PM/DataModel/DirectLoginConfigurations.data.js b/frontend/gamma/tests/tests/Clipperz/PM/DataModel/DirectLoginConfigurations.data.js index 6c0bf49..1678515 100644 --- a/frontend/gamma/tests/tests/Clipperz/PM/DataModel/DirectLoginConfigurations.data.js +++ b/frontend/gamma/tests/tests/Clipperz/PM/DataModel/DirectLoginConfigurations.data.js | |||
@@ -1,33 +1,30 @@ | |||
1 | /* | 1 | /* |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | */ | 24 | */ |
28 | 25 | ||
29 | directLoginConfigurations = { | 26 | directLoginConfigurations = { |
30 | 'Yahoo! Mail':'{\n "page": {\n "title": "Yahoo! Mail"\n },\n "form": {\n "attributes": {\n "action": "https://login.yahoo.com/config/login?",\n "method": "post"\n },\n "inputs": [\n {\n "type": "hidden",\n "name": ".tries",\n "value": "1"\n },\n {\n "type": "hidden",\n "name": ".src",\n "value": "ym"\n },\n {\n "type": "hidden",\n "name": ".md5",\n "value": ""\n },\n {\n "type": "hidden",\n "name": ".hash",\n "value": ""\n },\n {\n "type": "hidden",\n "name": ".js",\n "value": ""\n },\n {\n "type": "hidden",\n "name": ".last",\n "value": ""\n },\n {\n "type": "hidden",\n "name": "promo",\n "value": ""\n },\n {\n "type": "hidden",\n "name": ".intl",\n "value": "us"\n },\n {\n "type": "hidden",\n "name": ".bypass",\n "value": ""\n },\n {\n "type": "hidden",\n "name": ".partner",\n "value": ""\n },\n {\n "type": "hidden",\n "name": ".u",\n "value": "5gp62cl2vg3ov"\n },\n {\n "type": "hidden",\n "name": ".v",\n "value": "0"\n },\n {\n "type": "hidden",\n "name": ".challenge",\n "value": "iBEY0IK6k3t9Uals32mrTos8s48p"\n },\n {\n "type": "hidden",\n "name": ".yplus",\n "value": ""\n },\n {\n "type": "hidden",\n "name": ".emailCode",\n "value": ""\n },\n {\n "type": "hidden",\n "name": "pkg",\n "value": ""\n },\n {\n "type": "hidden",\n "name": "stepid",\n "value": ""\n },\n {\n "type": "hidden",\n "name": ".ev",\n "value": ""\n },\n {\n "type": "hidden",\n "name": "hasMsgr",\n "value": "0"\n },\n {\n "type": "hidden",\n "name": ".chkP",\n "value": "Y"\n },\n {\n "type": "hidden",\n "name": ".done",\n "value": "http://mail.yahoo.com"\n },\n {\n "type": "hidden",\n "name": ".pd",\n "value": "ym_ver%3d0%26c="\n },\n {\n "type": "text",\n "name": "login",\n "value": ""\n },\n {\n "type": "password",\n "name": "passwd",\n "value": ""\n },\n {\n "type": "checkbox",\n "name": ".persistent",\n "value": "y"\n },\n {\n "type": "submit",\n "name": ".save",\n "value": "Sign In"\n }\n ]\n },\n "version": "0.2"\n}', | 27 | 'Yahoo! Mail':'{\n "page": {\n "title": "Yahoo! Mail"\n },\n "form": {\n "attributes": {\n "action": "https://login.yahoo.com/config/login?",\n "method": "post"\n },\n "inputs": [\n {\n "type": "hidden",\n "name": ".tries",\n "value": "1"\n },\n {\n "type": "hidden",\n "name": ".src",\n "value": "ym"\n },\n {\n "type": "hidden",\n "name": ".md5",\n "value": ""\n },\n {\n "type": "hidden",\n "name": ".hash",\n "value": ""\n },\n {\n "type": "hidden",\n "name": ".js",\n "value": ""\n },\n {\n "type": "hidden",\n "name": ".last",\n "value": ""\n },\n {\n "type": "hidden",\n "name": "promo",\n "value": ""\n },\n {\n "type": "hidden",\n "name": ".intl",\n "value": "us"\n },\n {\n "type": "hidden",\n "name": ".bypass",\n "value": ""\n },\n {\n "type": "hidden",\n "name": ".partner",\n "value": ""\n },\n {\n "type": "hidden",\n "name": ".u",\n "value": "5gp62cl2vg3ov"\n },\n {\n "type": "hidden",\n "name": ".v",\n "value": "0"\n },\n {\n "type": "hidden",\n "name": ".challenge",\n "value": "iBEY0IK6k3t9Uals32mrTos8s48p"\n },\n {\n "type": "hidden",\n "name": ".yplus",\n "value": ""\n },\n {\n "type": "hidden",\n "name": ".emailCode",\n "value": ""\n },\n {\n "type": "hidden",\n "name": "pkg",\n "value": ""\n },\n {\n "type": "hidden",\n "name": "stepid",\n "value": ""\n },\n {\n "type": "hidden",\n "name": ".ev",\n "value": ""\n },\n {\n "type": "hidden",\n "name": "hasMsgr",\n "value": "0"\n },\n {\n "type": "hidden",\n "name": ".chkP",\n "value": "Y"\n },\n {\n "type": "hidden",\n "name": ".done",\n "value": "http://mail.yahoo.com"\n },\n {\n "type": "hidden",\n "name": ".pd",\n "value": "ym_ver%3d0%26c="\n },\n {\n "type": "text",\n "name": "login",\n "value": ""\n },\n {\n "type": "password",\n "name": "passwd",\n "value": ""\n },\n {\n "type": "checkbox",\n "name": ".persistent",\n "value": "y"\n },\n {\n "type": "submit",\n "name": ".save",\n "value": "Sign In"\n }\n ]\n },\n "version": "0.2"\n}', |
31 | 'Parallels':'{"page": {"title": "Parallels Account"},\n"form": {"attributes": {"action": "https://www.parallels.com/account/",\n"method": "post"},\n"inputs": [{"type": "text",\n"name": "Email",\n"value": ""},\n{"type": "password",\n"name": "Password",\n"value": ""}]},\n"version": "0.2.3"}', | 28 | 'Parallels':'{"page": {"title": "Parallels Account"},\n"form": {"attributes": {"action": "https://www.parallels.com/account/",\n"method": "post"},\n"inputs": [{"type": "text",\n"name": "Email",\n"value": ""},\n{"type": "password",\n"name": "Password",\n"value": ""}]},\n"version": "0.2.3"}', |
32 | __syntaxFix__: "syntax fix" | 29 | __syntaxFix__: "syntax fix" |
33 | }; \ No newline at end of file | 30 | }; \ No newline at end of file |
diff --git a/frontend/gamma/tests/tests/Clipperz/PM/DataModel/EncryptedRemoteObject.html b/frontend/gamma/tests/tests/Clipperz/PM/DataModel/EncryptedRemoteObject.html index 699c06d..3297ab4 100644 --- a/frontend/gamma/tests/tests/Clipperz/PM/DataModel/EncryptedRemoteObject.html +++ b/frontend/gamma/tests/tests/Clipperz/PM/DataModel/EncryptedRemoteObject.html | |||
@@ -1,66 +1,63 @@ | |||
1 | <!-- | 1 | <!-- |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | --> | 24 | --> |
28 | 25 | ||
29 | <html> | 26 | <html> |
30 | <head> | 27 | <head> |
31 | <title>Clipperz.PM.DataModel.EncryptedRemoteObject - test</title> | 28 | <title>Clipperz.PM.DataModel.EncryptedRemoteObject - test</title> |
32 | 29 | ||
33 | <script type="text/javascript" src="../../../../../js/MochiKit/MochiKit.js"></script> | 30 | <script type="text/javascript" src="../../../../../js/MochiKit/MochiKit.js"></script> |
34 | <script type="text/javascript" src="../../../../SimpleTest/SimpleTest.js"></script> | 31 | <script type="text/javascript" src="../../../../SimpleTest/SimpleTest.js"></script> |
35 | <link rel="stylesheet" type="text/css" href="../../../../SimpleTest/test.css"> | 32 | <link rel="stylesheet" type="text/css" href="../../../../SimpleTest/test.css"> |
36 | 33 | ||
37 | <script type='text/javascript' src='../../../../../js/JSON/json2.js'></script> | 34 | <script type='text/javascript' src='../../../../../js/JSON/json2.js'></script> |
38 | 35 | ||
39 | <script type='text/javascript' src='../../../../../js/Clipperz/YUI/Utils.js'></script> | 36 | <script type='text/javascript' src='../../../../../js/Clipperz/YUI/Utils.js'></script> |
40 | <script type='text/javascript' src='../../../../../js/Clipperz/Base.js'></script> | 37 | <script type='text/javascript' src='../../../../../js/Clipperz/Base.js'></script> |
41 | <script type='text/javascript' src='../../../../../js/Clipperz/ByteArray.js'></script> | 38 | <script type='text/javascript' src='../../../../../js/Clipperz/ByteArray.js'></script> |
42 | <script type='text/javascript' src='../../../../../js/Clipperz/Logging.js'></script> | 39 | <script type='text/javascript' src='../../../../../js/Clipperz/Logging.js'></script> |
43 | <script type='text/javascript' src='../../../../../js/Clipperz/Async.js'></script> | 40 | <script type='text/javascript' src='../../../../../js/Clipperz/Async.js'></script> |
44 | <script type='text/javascript' src='../../../../../js/Clipperz/Signal.js'></script> | 41 | <script type='text/javascript' src='../../../../../js/Clipperz/Signal.js'></script> |
45 | <script type='text/javascript' src='../../../../../js/Clipperz/KeyValueObjectStore.js'></script> | 42 | <script type='text/javascript' src='../../../../../js/Clipperz/KeyValueObjectStore.js'></script> |
46 | 43 | ||
47 | <script type='text/javascript' src='../../../../../js/Clipperz/Crypto/Base.js'></script> | 44 | <script type='text/javascript' src='../../../../../js/Clipperz/Crypto/Base.js'></script> |
48 | <script type='text/javascript' src='../../../../../js/Clipperz/Crypto/BigInt.js'></script> | 45 | <script type='text/javascript' src='../../../../../js/Clipperz/Crypto/BigInt.js'></script> |
49 | <script type='text/javascript' src='../../../../../js/Clipperz/Crypto/AES.js'></script> | 46 | <script type='text/javascript' src='../../../../../js/Clipperz/Crypto/AES.js'></script> |
50 | <script type='text/javascript' src='../../../../../js/Clipperz/Crypto/SHA.js'></script> | 47 | <script type='text/javascript' src='../../../../../js/Clipperz/Crypto/SHA.js'></script> |
51 | <script type='text/javascript' src='../../../../../js/Clipperz/Crypto/PRNG.js'></script> | 48 | <script type='text/javascript' src='../../../../../js/Clipperz/Crypto/PRNG.js'></script> |
52 | <script type='text/javascript' src='../../../../../js/Clipperz/Crypto/SRP.js'></script> | 49 | <script type='text/javascript' src='../../../../../js/Clipperz/Crypto/SRP.js'></script> |
53 | <script type='text/javascript' src='../../../../../js/Clipperz/PM/Proxy.js'></script> | 50 | <script type='text/javascript' src='../../../../../js/Clipperz/PM/Proxy.js'></script> |
54 | <script type='text/javascript' src='../../../../../js/Clipperz/PM/Connection.js'></script> | 51 | <script type='text/javascript' src='../../../../../js/Clipperz/PM/Connection.js'></script> |
55 | <script type='text/javascript' src='../../../../../js/Clipperz/PM/Crypto.js'></script> | 52 | <script type='text/javascript' src='../../../../../js/Clipperz/PM/Crypto.js'></script> |
56 | 53 | ||
57 | <script type='text/javascript' src='../../../../../js/Clipperz/PM/DataModel/EncryptedRemoteObject.js'></script> | 54 | <script type='text/javascript' src='../../../../../js/Clipperz/PM/DataModel/EncryptedRemoteObject.js'></script> |
58 | <script type="text/javascript" src="../../../../SimpleTest/SimpleTest.Async.js"></script> | 55 | <script type="text/javascript" src="../../../../SimpleTest/SimpleTest.Async.js"></script> |
59 | </head> | 56 | </head> |
60 | <body> | 57 | <body> |
61 | 58 | ||
62 | <pre id="test"> | 59 | <pre id="test"> |
63 | <script type="text/javascript" src="EncryptedRemoteObject.test.js"></script> | 60 | <script type="text/javascript" src="EncryptedRemoteObject.test.js"></script> |
64 | </pre> | 61 | </pre> |
65 | </body> | 62 | </body> |
66 | </html> | 63 | </html> |
diff --git a/frontend/gamma/tests/tests/Clipperz/PM/DataModel/EncryptedRemoteObject.test.js b/frontend/gamma/tests/tests/Clipperz/PM/DataModel/EncryptedRemoteObject.test.js index 0a4fe0c..9c50c43 100644 --- a/frontend/gamma/tests/tests/Clipperz/PM/DataModel/EncryptedRemoteObject.test.js +++ b/frontend/gamma/tests/tests/Clipperz/PM/DataModel/EncryptedRemoteObject.test.js | |||
@@ -1,120 +1,117 @@ | |||
1 | /* | 1 | /* |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | */ | 24 | */ |
28 | 25 | ||
29 | Clipperz.Crypto.PRNG.defaultRandomGenerator().fastEntropyAccumulationForTestingPurpose(); | 26 | Clipperz.Crypto.PRNG.defaultRandomGenerator().fastEntropyAccumulationForTestingPurpose(); |
30 | 27 | ||
31 | var tests = { | 28 | var tests = { |
32 | 29 | ||
33 | //------------------------------------------------------------------------- | 30 | //------------------------------------------------------------------------- |
34 | 31 | ||
35 | 'simple_tests': function(someTestArgs) { | 32 | 'simple_tests': function(someTestArgs) { |
36 | vardeferredResult; | 33 | vardeferredResult; |
37 | varencryptedRemoteObject; | 34 | varencryptedRemoteObject; |
38 | 35 | ||
39 | varkey; | 36 | varkey; |
40 | var version; | 37 | var version; |
41 | var rawData; | 38 | var rawData; |
42 | 39 | ||
43 | key = "just a random key"; | 40 | key = "just a random key"; |
44 | version = Clipperz.PM.Crypto.encryptingFunctions.currentVersion; | 41 | version = Clipperz.PM.Crypto.encryptingFunctions.currentVersion; |
45 | rawData = "just a random text to encrypt"; | 42 | rawData = "just a random text to encrypt"; |
46 | 43 | ||
47 | encryptedRemoteObject = new Clipperz.PM.DataModel.EncryptedRemoteObject({ | 44 | encryptedRemoteObject = new Clipperz.PM.DataModel.EncryptedRemoteObject({ |
48 | 'retrieveKeyFunction': MochiKit.Base.noop, | 45 | 'retrieveKeyFunction': MochiKit.Base.noop, |
49 | 'retrieveRemoteDataFunction':function () { return "--"}, | 46 | 'retrieveRemoteDataFunction':function () { return "--"}, |
50 | 'encryptedDataKeypath': '--', | 47 | 'encryptedDataKeypath': '--', |
51 | 'encryptedVersionKeypath': '--' | 48 | 'encryptedVersionKeypath': '--' |
52 | }); | 49 | }); |
53 | SimpleTest.ok(encryptedRemoteObject != null, "create an encryptedRemoteObject"); | 50 | SimpleTest.ok(encryptedRemoteObject != null, "create an encryptedRemoteObject"); |
54 | 51 | ||
55 | deferredResult = Clipperz.Async.callbacks("EncryptedRemoteObject.test - simple_tests", [ | 52 | deferredResult = Clipperz.Async.callbacks("EncryptedRemoteObject.test - simple_tests", [ |
56 | MochiKit.Base.method(encryptedRemoteObject, 'getRemoteData'), | 53 | MochiKit.Base.method(encryptedRemoteObject, 'getRemoteData'), |
57 | function(aResult) { | 54 | function(aResult) { |
58 | SimpleTest.is(aResult, "--", "setting and getting serverData works"); | 55 | SimpleTest.is(aResult, "--", "setting and getting serverData works"); |
59 | } | 56 | } |
60 | ], someTestArgs); | 57 | ], someTestArgs); |
61 | 58 | ||
62 | return deferredResult; | 59 | return deferredResult; |
63 | }, | 60 | }, |
64 | 61 | ||
65 | //------------------------------------------------------------------------- | 62 | //------------------------------------------------------------------------- |
66 | 63 | ||
67 | 'decrypt_test': function (someTestArgs) { | 64 | 'decrypt_test': function (someTestArgs) { |
68 | vardeferredResult; | 65 | vardeferredResult; |
69 | varencryptedRemoteObject; | 66 | varencryptedRemoteObject; |
70 | varkey; | 67 | varkey; |
71 | var version; | 68 | var version; |
72 | var rawData; | 69 | var rawData; |
73 | 70 | ||
74 | key = "just a random key"; | 71 | key = "just a random key"; |
75 | version = Clipperz.PM.Crypto.encryptingFunctions.currentVersion; | 72 | version = Clipperz.PM.Crypto.encryptingFunctions.currentVersion; |
76 | rawData = "just a random text to encrypt"; | 73 | rawData = "just a random text to encrypt"; |
77 | 74 | ||
78 | encryptedRemoteObject = new Clipperz.PM.DataModel.EncryptedRemoteObject({ | 75 | encryptedRemoteObject = new Clipperz.PM.DataModel.EncryptedRemoteObject({ |
79 | 'retrieveKeyFunction': MochiKit.Base.partial(MochiKit.Async.succeed, key), | 76 | 'retrieveKeyFunction': MochiKit.Base.partial(MochiKit.Async.succeed, key), |
80 | 'retrieveRemoteDataFunction':MochiKit.Base.partial(Clipperz.Async.callbacks, "EncryptedRemoteObject.test - decrypt_test <encrypt data>", [ | 77 | 'retrieveRemoteDataFunction':MochiKit.Base.partial(Clipperz.Async.callbacks, "EncryptedRemoteObject.test - decrypt_test <encrypt data>", [ |
81 | MochiKit.Base.partial(Clipperz.PM.Crypto.deferredEncrypt, {key:key, value:rawData, version:version}), | 78 | MochiKit.Base.partial(Clipperz.PM.Crypto.deferredEncrypt, {key:key, value:rawData, version:version}), |
82 | function (someEncryptedData) { | 79 | function (someEncryptedData) { |
83 | return { | 80 | return { |
84 | 'data': someEncryptedData, | 81 | 'data': someEncryptedData, |
85 | 'version': version | 82 | 'version': version |
86 | } | 83 | } |
87 | } | 84 | } |
88 | ], someTestArgs)//, | 85 | ], someTestArgs)//, |
89 | // 'encryptedDataKeypath': 'data', | 86 | // 'encryptedDataKeypath': 'data', |
90 | // 'encryptedVersionKeypath': 'version' | 87 | // 'encryptedVersionKeypath': 'version' |
91 | }); | 88 | }); |
92 | 89 | ||
93 | deferredResult = new Clipperz.Async.Deferred("decrypt_test", someTestArgs); | 90 | deferredResult = new Clipperz.Async.Deferred("decrypt_test", someTestArgs); |
94 | deferredResult.addMethod(encryptedRemoteObject, 'getDecryptedData'); | 91 | deferredResult.addMethod(encryptedRemoteObject, 'getDecryptedData'); |
95 | deferredResult.addCallback(function (aResult) { | 92 | deferredResult.addCallback(function (aResult) { |
96 | SimpleTest.is(aResult, rawData, "encrypt and decrypt works"); | 93 | SimpleTest.is(aResult, rawData, "encrypt and decrypt works"); |
97 | }) | 94 | }) |
98 | deferredResult.callback(); | 95 | deferredResult.callback(); |
99 | 96 | ||
100 | return deferredResult; | 97 | return deferredResult; |
101 | }, | 98 | }, |
102 | 99 | ||
103 | //------------------------------------------------------------------------- | 100 | //------------------------------------------------------------------------- |
104 | 101 | ||
105 | 'getValue_test': function (someTestArgs) { | 102 | 'getValue_test': function (someTestArgs) { |
106 | vardeferredResult; | 103 | vardeferredResult; |
107 | varencryptedRemoteObject; | 104 | varencryptedRemoteObject; |
108 | varkey; | 105 | varkey; |
109 | var version; | 106 | var version; |
110 | var rawData; | 107 | var rawData; |
111 | 108 | ||
112 | key = "just a random key"; | 109 | key = "just a random key"; |
113 | version = Clipperz.PM.Crypto.encryptingFunctions.currentVersion; | 110 | version = Clipperz.PM.Crypto.encryptingFunctions.currentVersion; |
114 | rawData = { | 111 | rawData = { |
115 | key1: 'value1', | 112 | key1: 'value1', |
116 | key2: 'value2' | 113 | key2: 'value2' |
117 | }; | 114 | }; |
118 | 115 | ||
119 | encryptedRemoteObject = new Clipperz.PM.DataModel.EncryptedRemoteObject({ | 116 | encryptedRemoteObject = new Clipperz.PM.DataModel.EncryptedRemoteObject({ |
120 | 'reference': "testReference", | 117 | 'reference': "testReference", |
diff --git a/frontend/gamma/tests/tests/Clipperz/PM/DataModel/OneTimePassword.html b/frontend/gamma/tests/tests/Clipperz/PM/DataModel/OneTimePassword.html index a9bac22..7861b80 100644 --- a/frontend/gamma/tests/tests/Clipperz/PM/DataModel/OneTimePassword.html +++ b/frontend/gamma/tests/tests/Clipperz/PM/DataModel/OneTimePassword.html | |||
@@ -1,105 +1,102 @@ | |||
1 | <!-- | 1 | <!-- |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | --> | 24 | --> |
28 | 25 | ||
29 | <html> | 26 | <html> |
30 | <head> | 27 | <head> |
31 | <title>Clipperz.PM.DataModel.User - test</title> | 28 | <title>Clipperz.PM.DataModel.User - test</title> |
32 | 29 | ||
33 | <script type="text/javascript" src="../../../../../js/MochiKit/MochiKit.js"></script> | 30 | <script type="text/javascript" src="../../../../../js/MochiKit/MochiKit.js"></script> |
34 | <script type="text/javascript" src="../../../../SimpleTest/SimpleTest.js"></script> | 31 | <script type="text/javascript" src="../../../../SimpleTest/SimpleTest.js"></script> |
35 | <link rel="stylesheet" type="text/css" href="../../../../SimpleTest/test.css"> | 32 | <link rel="stylesheet" type="text/css" href="../../../../SimpleTest/test.css"> |
36 | 33 | ||
37 | <script type='text/javascript' src='../../../../../js/JSON/json2.js'></script> | 34 | <script type='text/javascript' src='../../../../../js/JSON/json2.js'></script> |
38 | 35 | ||
39 | <script type='text/javascript' src='../../../../../js/Clipperz/YUI/Utils.js'></script> | 36 | <script type='text/javascript' src='../../../../../js/Clipperz/YUI/Utils.js'></script> |
40 | <script type='text/javascript' src='../../../../../js/Clipperz/Base.js'></script> | 37 | <script type='text/javascript' src='../../../../../js/Clipperz/Base.js'></script> |
41 | <script type='text/javascript' src='../../../../../js/Clipperz/Date.js'></script> | 38 | <script type='text/javascript' src='../../../../../js/Clipperz/Date.js'></script> |
42 | <script type='text/javascript' src='../../../../../js/Clipperz/ByteArray.js'></script> | 39 | <script type='text/javascript' src='../../../../../js/Clipperz/ByteArray.js'></script> |
43 | <script type='text/javascript' src='../../../../../js/Clipperz/Logging.js'></script> | 40 | <script type='text/javascript' src='../../../../../js/Clipperz/Logging.js'></script> |
44 | <script type='text/javascript' src='../../../../../js/Clipperz/Async.js'></script> | 41 | <script type='text/javascript' src='../../../../../js/Clipperz/Async.js'></script> |
45 | <script type='text/javascript' src='../../../../../js/Clipperz/Signal.js'></script> | 42 | <script type='text/javascript' src='../../../../../js/Clipperz/Signal.js'></script> |
46 | <script type='text/javascript' src='../../../../../js/Clipperz/KeyValueObjectStore.js'></script> | 43 | <script type='text/javascript' src='../../../../../js/Clipperz/KeyValueObjectStore.js'></script> |
47 | 44 | ||
48 | <script type='text/javascript' src='../../../../../js/Clipperz/Crypto/Base.js'></script> | 45 | <script type='text/javascript' src='../../../../../js/Clipperz/Crypto/Base.js'></script> |
49 | <script type='text/javascript' src='../../../../../js/Clipperz/Crypto/BigInt.js'></script> | 46 | <script type='text/javascript' src='../../../../../js/Clipperz/Crypto/BigInt.js'></script> |
50 | <script type='text/javascript' src='../../../../../js/Clipperz/Crypto/AES.js'></script> | 47 | <script type='text/javascript' src='../../../../../js/Clipperz/Crypto/AES.js'></script> |
51 | <script type='text/javascript' src='../../../../../js/Clipperz/Crypto/SHA.js'></script> | 48 | <script type='text/javascript' src='../../../../../js/Clipperz/Crypto/SHA.js'></script> |
52 | <script type='text/javascript' src='../../../../../js/Clipperz/Crypto/PRNG.js'></script> | 49 | <script type='text/javascript' src='../../../../../js/Clipperz/Crypto/PRNG.js'></script> |
53 | <script type='text/javascript' src='../../../../../js/Clipperz/Crypto/SRP.js'></script> | 50 | <script type='text/javascript' src='../../../../../js/Clipperz/Crypto/SRP.js'></script> |
54 | 51 | ||
55 | <script type='text/javascript' src='../../../../../js/Clipperz/PM/Toll.js'></script> | 52 | <script type='text/javascript' src='../../../../../js/Clipperz/PM/Toll.js'></script> |
56 | <script type='text/javascript' src='../../../../../js/Clipperz/PM/Proxy.js'></script> | 53 | <script type='text/javascript' src='../../../../../js/Clipperz/PM/Proxy.js'></script> |
57 | <script type='text/javascript' src='../../../../../js/Clipperz/PM/Proxy/Proxy.Offline.js'></script> | 54 | <script type='text/javascript' src='../../../../../js/Clipperz/PM/Proxy/Proxy.Offline.js'></script> |
58 | <script type='text/javascript' src='../../../../../js/Clipperz/PM/Proxy/Proxy.Test.js'></script> | 55 | <script type='text/javascript' src='../../../../../js/Clipperz/PM/Proxy/Proxy.Test.js'></script> |
59 | <script type='text/javascript' src='../../../../../js/Clipperz/PM/Proxy/Proxy.Offline.DataStore.js'></script> | 56 | <script type='text/javascript' src='../../../../../js/Clipperz/PM/Proxy/Proxy.Offline.DataStore.js'></script> |
60 | 57 | ||
61 | <script type='text/javascript' src='../../../../../js/Clipperz/PM/Connection.js'></script> | 58 | <script type='text/javascript' src='../../../../../js/Clipperz/PM/Connection.js'></script> |
62 | <script type='text/javascript' src='../../../../../js/Clipperz/PM/Crypto.js'></script> | 59 | <script type='text/javascript' src='../../../../../js/Clipperz/PM/Crypto.js'></script> |
63 | 60 | ||
64 | <script type='text/javascript' src='../../../../../js/Clipperz/PM/UI/Common/Controllers/DirectLoginRunner.js'></script> | 61 | <script type='text/javascript' src='../../../../../js/Clipperz/PM/UI/Common/Controllers/DirectLoginRunner.js'></script> |
65 | 62 | ||
66 | <script type='text/javascript' src='../../../../../js/Clipperz/PM/Strings.js'></script> | 63 | <script type='text/javascript' src='../../../../../js/Clipperz/PM/Strings.js'></script> |
67 | <script type='text/javascript' src='../../../../../js/Clipperz/PM/Strings/Strings_en-US.js'></script> | 64 | <script type='text/javascript' src='../../../../../js/Clipperz/PM/Strings/Strings_en-US.js'></script> |
68 | <script type='text/javascript' src='../../../../../js/Clipperz/PM/Date.js'></script> | 65 | <script type='text/javascript' src='../../../../../js/Clipperz/PM/Date.js'></script> |
69 | <script type='text/javascript' src='../../../../../js/Clipperz/PM/DataModel/EncryptedRemoteObject.js'></script> | 66 | <script type='text/javascript' src='../../../../../js/Clipperz/PM/DataModel/EncryptedRemoteObject.js'></script> |
70 | <script type='text/javascript' src='../../../../../js/Clipperz/PM/DataModel/Record.js'></script> | 67 | <script type='text/javascript' src='../../../../../js/Clipperz/PM/DataModel/Record.js'></script> |
71 | <script type='text/javascript' src='../../../../../js/Clipperz/PM/DataModel/Record.Version.js'></script> | 68 | <script type='text/javascript' src='../../../../../js/Clipperz/PM/DataModel/Record.Version.js'></script> |
72 | <script type='text/javascript' src='../../../../../js/Clipperz/PM/DataModel/Record.Version.Field.js'></script> | 69 | <script type='text/javascript' src='../../../../../js/Clipperz/PM/DataModel/Record.Version.Field.js'></script> |
73 | <script type='text/javascript' src='../../../../../js/Clipperz/PM/DataModel/DirectLogin.js'></script> | 70 | <script type='text/javascript' src='../../../../../js/Clipperz/PM/DataModel/DirectLogin.js'></script> |
74 | <script type='text/javascript' src='../../../../../js/Clipperz/PM/DataModel/DirectLoginInput.js'></script> | 71 | <script type='text/javascript' src='../../../../../js/Clipperz/PM/DataModel/DirectLoginInput.js'></script> |
75 | <script type='text/javascript' src='../../../../../js/Clipperz/PM/DataModel/DirectLoginBinding.js'></script> | 72 | <script type='text/javascript' src='../../../../../js/Clipperz/PM/DataModel/DirectLoginBinding.js'></script> |
76 | <script type='text/javascript' src='../../../../../js/Clipperz/PM/DataModel/DirectLoginFormValue.js'></script> | 73 | <script type='text/javascript' src='../../../../../js/Clipperz/PM/DataModel/DirectLoginFormValue.js'></script> |
77 | <script type='text/javascript' src='../../../../../js/Clipperz/PM/DataModel/User.js'></script> | 74 | <script type='text/javascript' src='../../../../../js/Clipperz/PM/DataModel/User.js'></script> |
78 | <script type='text/javascript' src='../../../../../js/Clipperz/PM/DataModel/User.Header.Legacy.js'></script> | 75 | <script type='text/javascript' src='../../../../../js/Clipperz/PM/DataModel/User.Header.Legacy.js'></script> |
79 | <script type='text/javascript' src='../../../../../js/Clipperz/PM/DataModel/User.Header.RecordIndex.js'></script> | 76 | <script type='text/javascript' src='../../../../../js/Clipperz/PM/DataModel/User.Header.RecordIndex.js'></script> |
80 | <script type='text/javascript' src='../../../../../js/Clipperz/PM/DataModel/User.Header.Preferences.js'></script> | 77 | <script type='text/javascript' src='../../../../../js/Clipperz/PM/DataModel/User.Header.Preferences.js'></script> |
81 | <script type='text/javascript' src='../../../../../js/Clipperz/PM/DataModel/User.Header.OneTimePasswords.js'></script> | 78 | <script type='text/javascript' src='../../../../../js/Clipperz/PM/DataModel/User.Header.OneTimePasswords.js'></script> |
82 | <script type='text/javascript' src='../../../../../js/Clipperz/PM/DataModel/OneTimePassword.js'></script> | 79 | <script type='text/javascript' src='../../../../../js/Clipperz/PM/DataModel/OneTimePassword.js'></script> |
83 | 80 | ||
84 | <script type="text/javascript" src="../../../../SimpleTest/SimpleTest.Async.js"></script> | 81 | <script type="text/javascript" src="../../../../SimpleTest/SimpleTest.Async.js"></script> |
85 | <script> | 82 | <script> |
86 | Clipperz_IEisBroken = false; | 83 | Clipperz_IEisBroken = false; |
87 | </script> | 84 | </script> |
88 | 85 | ||
89 | <!--[if IE]><script> | 86 | <!--[if IE]><script> |
90 | Clipperz_IEisBroken = true; | 87 | Clipperz_IEisBroken = true; |
91 | Clipperz_normalizedNewLine = '\x0d\x0a'; | 88 | Clipperz_normalizedNewLine = '\x0d\x0a'; |
92 | </script><![endif]--> | 89 | </script><![endif]--> |
93 | 90 | ||
94 | </head> | 91 | </head> |
95 | <body> | 92 | <body> |
96 | 93 | ||
97 | <pre id="test"> | 94 | <pre id="test"> |
98 | <script> | 95 | <script> |
99 | Clipperz.PM.Strings.Languages.setSelectedLanguage('en-us'); | 96 | Clipperz.PM.Strings.Languages.setSelectedLanguage('en-us'); |
100 | </script> | 97 | </script> |
101 | <script type="text/javascript" src="User.data.js"></script> | 98 | <script type="text/javascript" src="User.data.js"></script> |
102 | <script type="text/javascript" src="OneTimePassword.test.js"></script> | 99 | <script type="text/javascript" src="OneTimePassword.test.js"></script> |
103 | </pre> | 100 | </pre> |
104 | </body> | 101 | </body> |
105 | </html> | 102 | </html> |
diff --git a/frontend/gamma/tests/tests/Clipperz/PM/DataModel/OneTimePassword.test.js b/frontend/gamma/tests/tests/Clipperz/PM/DataModel/OneTimePassword.test.js index 0171714..85aae4e 100644 --- a/frontend/gamma/tests/tests/Clipperz/PM/DataModel/OneTimePassword.test.js +++ b/frontend/gamma/tests/tests/Clipperz/PM/DataModel/OneTimePassword.test.js | |||
@@ -1,120 +1,117 @@ | |||
1 | /* | 1 | /* |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | */ | 24 | */ |
28 | 25 | ||
29 | Clipperz.Crypto.PRNG.defaultRandomGenerator().fastEntropyAccumulationForTestingPurpose(); | 26 | Clipperz.Crypto.PRNG.defaultRandomGenerator().fastEntropyAccumulationForTestingPurpose(); |
30 | 27 | ||
31 | var tests = { | 28 | var tests = { |
32 | 29 | ||
33 | //------------------------------------------------------------------------- | 30 | //------------------------------------------------------------------------- |
34 | 31 | ||
35 | 'isValidOneTimePasswordValue_test': function (someTestArgs) { | 32 | 'isValidOneTimePasswordValue_test': function (someTestArgs) { |
36 | var otp; | 33 | var otp; |
37 | var notOTP; | 34 | var notOTP; |
38 | 35 | ||
39 | otp = 'yaxx k7ww - f8y6 tqz5 - 58b6 th44 - 9cwv q0fg'; | 36 | otp = 'yaxx k7ww - f8y6 tqz5 - 58b6 th44 - 9cwv q0fg'; |
40 | SimpleTest.is(Clipperz.PM.DataModel.OneTimePassword.isValidOneTimePasswordValue(otp), true, "isValidOneTimePasswordValue [expect true] - test 1"); | 37 | SimpleTest.is(Clipperz.PM.DataModel.OneTimePassword.isValidOneTimePasswordValue(otp), true, "isValidOneTimePasswordValue [expect true] - test 1"); |
41 | 38 | ||
42 | notOTP = 'trustno1'; | 39 | notOTP = 'trustno1'; |
43 | SimpleTest.is(Clipperz.PM.DataModel.OneTimePassword.isValidOneTimePasswordValue(notOTP), false, "isValidOneTimePasswordValue [expect false] - test 1"); | 40 | SimpleTest.is(Clipperz.PM.DataModel.OneTimePassword.isValidOneTimePasswordValue(notOTP), false, "isValidOneTimePasswordValue [expect false] - test 1"); |
44 | 41 | ||
45 | return MochiKit.Async.succeed('done'); | 42 | return MochiKit.Async.succeed('done'); |
46 | }, | 43 | }, |
47 | 44 | ||
48 | //------------------------------------------------------------------------- | 45 | //------------------------------------------------------------------------- |
49 | 46 | ||
50 | 'loginUsingOtp_test': function (someTestArgs) { | 47 | 'loginUsingOtp_test': function (someTestArgs) { |
51 | var deferredResult; | 48 | var deferredResult; |
52 | var proxy; | 49 | var proxy; |
53 | var user, user2; | 50 | var user, user2; |
54 | var username; | 51 | var username; |
55 | var passphrase; | 52 | var passphrase; |
56 | 53 | ||
57 | username = "test"; | 54 | username = "test"; |
58 | passphrase = "yaxx k7ww - f8y6 tqz5 - 58b6 th44 - 9cwv q0fg"; //OTP | 55 | passphrase = "yaxx k7ww - f8y6 tqz5 - 58b6 th44 - 9cwv q0fg"; //OTP |
59 | 56 | ||
60 | proxy =new Clipperz.PM.Proxy.Test({shouldPayTolls:true, isDefault:true, readOnly:false}); | 57 | proxy =new Clipperz.PM.Proxy.Test({shouldPayTolls:true, isDefault:true, readOnly:false}); |
61 | user =new Clipperz.PM.DataModel.User({username:username, getPassphraseFunction:function () { return passphrase;}}); | 58 | user =new Clipperz.PM.DataModel.User({username:username, getPassphraseFunction:function () { return passphrase;}}); |
62 | user2 =new Clipperz.PM.DataModel.User({username:username, getPassphraseFunction:function () { return passphrase;}}); | 59 | user2 =new Clipperz.PM.DataModel.User({username:username, getPassphraseFunction:function () { return passphrase;}}); |
63 | 60 | ||
64 | deferredResult = new Clipperz.Async.Deferred("loginUsingOtp_test", someTestArgs); | 61 | deferredResult = new Clipperz.Async.Deferred("loginUsingOtp_test", someTestArgs); |
65 | deferredResult.addMethod(proxy.dataStore(), 'setupWithEncryptedData', testData['test_test_with_otps']); | 62 | deferredResult.addMethod(proxy.dataStore(), 'setupWithEncryptedData', testData['test_test_with_otps']); |
66 | 63 | ||
67 | deferredResult.addMethod(user, 'login'); | 64 | deferredResult.addMethod(user, 'login'); |
68 | deferredResult.addMethod(user, 'getRecords'); | 65 | deferredResult.addMethod(user, 'getRecords'); |
69 | deferredResult.addCallback(MochiKit.Base.itemgetter('length')); | 66 | deferredResult.addCallback(MochiKit.Base.itemgetter('length')); |
70 | deferredResult.addTest(1, "This account has one single card"); | 67 | deferredResult.addTest(1, "This account has one single card"); |
71 | 68 | ||
72 | deferredResult.addMethod(user, 'getOneTimePasswords'); | 69 | deferredResult.addMethod(user, 'getOneTimePasswords'); |
73 | deferredResult.addCallback(MochiKit.Base.itemgetter('length')); | 70 | deferredResult.addCallback(MochiKit.Base.itemgetter('length')); |
74 | deferredResult.addTest(1, "This account has one OTP"); | 71 | deferredResult.addTest(1, "This account has one OTP"); |
75 | 72 | ||
76 | deferredResult.addMethod(user, 'getOneTimePasswords'); | 73 | deferredResult.addMethod(user, 'getOneTimePasswords'); |
77 | deferredResult.addCallback(MochiKit.Base.itemgetter(0)); | 74 | deferredResult.addCallback(MochiKit.Base.itemgetter(0)); |
78 | deferredResult.addCallback(MochiKit.Base.methodcaller('status')); | 75 | deferredResult.addCallback(MochiKit.Base.methodcaller('status')); |
79 | deferredResult.addTest('USED', "The available OTP has been unsed to login, and should be marked accordingly"); | 76 | deferredResult.addTest('USED', "The available OTP has been unsed to login, and should be marked accordingly"); |
80 | 77 | ||
81 | deferredResult.addMethod(user2, 'login'); | 78 | deferredResult.addMethod(user2, 'login'); |
82 | deferredResult.shouldFail("trying to login using the same OTP twice"); | 79 | deferredResult.shouldFail("trying to login using the same OTP twice"); |
83 | 80 | ||
84 | deferredResult.callback(); | 81 | deferredResult.callback(); |
85 | 82 | ||
86 | return deferredResult; | 83 | return deferredResult; |
87 | }, | 84 | }, |
88 | 85 | ||
89 | //------------------------------------------------------------------------- | 86 | //------------------------------------------------------------------------- |
90 | 87 | ||
91 | 'changePassphraseAndLoginUsingOtp_test': function (someTestArgs) { | 88 | 'changePassphraseAndLoginUsingOtp_test': function (someTestArgs) { |
92 | var deferredResult; | 89 | var deferredResult; |
93 | var proxy; | 90 | var proxy; |
94 | var user; | 91 | var user; |
95 | var user2; | 92 | var user2; |
96 | var user3; | 93 | var user3; |
97 | var otp; | 94 | var otp; |
98 | 95 | ||
99 | otp = "yaxx k7ww - f8y6 tqz5 - 58b6 th44 - 9cwv q0fg"; //OTP | 96 | otp = "yaxx k7ww - f8y6 tqz5 - 58b6 th44 - 9cwv q0fg"; //OTP |
100 | 97 | ||
101 | newPassphrase = 'tset'; | 98 | newPassphrase = 'tset'; |
102 | proxy = new Clipperz.PM.Proxy.Test({shouldPayTolls:true, isDefault:true, readOnly:false}); | 99 | proxy = new Clipperz.PM.Proxy.Test({shouldPayTolls:true, isDefault:true, readOnly:false}); |
103 | user = new Clipperz.PM.DataModel.User({username:'test', getPassphraseFunction:function () { return 'test';}}); | 100 | user = new Clipperz.PM.DataModel.User({username:'test', getPassphraseFunction:function () { return 'test';}}); |
104 | user2 = new Clipperz.PM.DataModel.User({username:'test', getPassphraseFunction:function () { return otp;}}); | 101 | user2 = new Clipperz.PM.DataModel.User({username:'test', getPassphraseFunction:function () { return otp;}}); |
105 | 102 | ||
106 | deferredResult = new Clipperz.Async.Deferred("changePassphraseAndLoginUsingOtp_test", someTestArgs); | 103 | deferredResult = new Clipperz.Async.Deferred("changePassphraseAndLoginUsingOtp_test", someTestArgs); |
107 | deferredResult.addMethod(proxy.dataStore(), 'setupWithEncryptedData', testData['test_test_with_otps']); | 104 | deferredResult.addMethod(proxy.dataStore(), 'setupWithEncryptedData', testData['test_test_with_otps']); |
108 | 105 | ||
109 | deferredResult.addMethod(user, 'login'); | 106 | deferredResult.addMethod(user, 'login'); |
110 | 107 | ||
111 | deferredResult.addMethod(user, 'getRecords'); | 108 | deferredResult.addMethod(user, 'getRecords'); |
112 | deferredResult.addCallback(MochiKit.Base.itemgetter('length')); | 109 | deferredResult.addCallback(MochiKit.Base.itemgetter('length')); |
113 | deferredResult.addTest(1, "This account has only a single card"); | 110 | deferredResult.addTest(1, "This account has only a single card"); |
114 | 111 | ||
115 | deferredResult.addMethod(user, 'changePassphrase', newPassphrase); | 112 | deferredResult.addMethod(user, 'changePassphrase', newPassphrase); |
116 | deferredResult.addMethod(user, 'logout'); | 113 | deferredResult.addMethod(user, 'logout'); |
117 | 114 | ||
118 | deferredResult.addMethod(user2, 'login'); | 115 | deferredResult.addMethod(user2, 'login'); |
119 | deferredResult.addMethod(user2, 'getRecords'); | 116 | deferredResult.addMethod(user2, 'getRecords'); |
120 | deferredResult.addCallback(MochiKit.Base.itemgetter('length')); | 117 | deferredResult.addCallback(MochiKit.Base.itemgetter('length')); |
diff --git a/frontend/gamma/tests/tests/Clipperz/PM/DataModel/Record.html b/frontend/gamma/tests/tests/Clipperz/PM/DataModel/Record.html index c349e0d..3685a7a 100644 --- a/frontend/gamma/tests/tests/Clipperz/PM/DataModel/Record.html +++ b/frontend/gamma/tests/tests/Clipperz/PM/DataModel/Record.html | |||
@@ -1,98 +1,95 @@ | |||
1 | <!-- | 1 | <!-- |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | --> | 24 | --> |
28 | 25 | ||
29 | <html> | 26 | <html> |
30 | <head> | 27 | <head> |
31 | <title>Clipperz.PM.DataModel.Record - test</title> | 28 | <title>Clipperz.PM.DataModel.Record - test</title> |
32 | 29 | ||
33 | <script type="text/javascript" src="../../../../../js/MochiKit/MochiKit.js"></script> | 30 | <script type="text/javascript" src="../../../../../js/MochiKit/MochiKit.js"></script> |
34 | <script type="text/javascript" src="../../../../SimpleTest/SimpleTest.js"></script> | 31 | <script type="text/javascript" src="../../../../SimpleTest/SimpleTest.js"></script> |
35 | <link rel="stylesheet" type="text/css" href="../../../../SimpleTest/test.css"> | 32 | <link rel="stylesheet" type="text/css" href="../../../../SimpleTest/test.css"> |
36 | 33 | ||
37 | <script type='text/javascript' src='../../../../../js/JSON/json2.js'></script> | 34 | <script type='text/javascript' src='../../../../../js/JSON/json2.js'></script> |
38 | 35 | ||
39 | <script type='text/javascript' src='../../../../../js/Clipperz/YUI/Utils.js'></script> | 36 | <script type='text/javascript' src='../../../../../js/Clipperz/YUI/Utils.js'></script> |
40 | <script type='text/javascript' src='../../../../../js/Clipperz/Base.js'></script> | 37 | <script type='text/javascript' src='../../../../../js/Clipperz/Base.js'></script> |
41 | <script type='text/javascript' src='../../../../../js/Clipperz/Date.js'></script> | 38 | <script type='text/javascript' src='../../../../../js/Clipperz/Date.js'></script> |
42 | <script type='text/javascript' src='../../../../../js/Clipperz/ByteArray.js'></script> | 39 | <script type='text/javascript' src='../../../../../js/Clipperz/ByteArray.js'></script> |
43 | <script type='text/javascript' src='../../../../../js/Clipperz/Logging.js'></script> | 40 | <script type='text/javascript' src='../../../../../js/Clipperz/Logging.js'></script> |
44 | <script type='text/javascript' src='../../../../../js/Clipperz/Async.js'></script> | 41 | <script type='text/javascript' src='../../../../../js/Clipperz/Async.js'></script> |
45 | <script type='text/javascript' src='../../../../../js/Clipperz/Signal.js'></script> | 42 | <script type='text/javascript' src='../../../../../js/Clipperz/Signal.js'></script> |
46 | <script type='text/javascript' src='../../../../../js/Clipperz/KeyValueObjectStore.js'></script> | 43 | <script type='text/javascript' src='../../../../../js/Clipperz/KeyValueObjectStore.js'></script> |
47 | 44 | ||
48 | <script type='text/javascript' src='../../../../../js/Clipperz/Crypto/Base.js'></script> | 45 | <script type='text/javascript' src='../../../../../js/Clipperz/Crypto/Base.js'></script> |
49 | <script type='text/javascript' src='../../../../../js/Clipperz/Crypto/BigInt.js'></script> | 46 | <script type='text/javascript' src='../../../../../js/Clipperz/Crypto/BigInt.js'></script> |
50 | <script type='text/javascript' src='../../../../../js/Clipperz/Crypto/AES.js'></script> | 47 | <script type='text/javascript' src='../../../../../js/Clipperz/Crypto/AES.js'></script> |
51 | <script type='text/javascript' src='../../../../../js/Clipperz/Crypto/SHA.js'></script> | 48 | <script type='text/javascript' src='../../../../../js/Clipperz/Crypto/SHA.js'></script> |
52 | <script type='text/javascript' src='../../../../../js/Clipperz/Crypto/PRNG.js'></script> | 49 | <script type='text/javascript' src='../../../../../js/Clipperz/Crypto/PRNG.js'></script> |
53 | <script type='text/javascript' src='../../../../../js/Clipperz/Crypto/SRP.js'></script> | 50 | <script type='text/javascript' src='../../../../../js/Clipperz/Crypto/SRP.js'></script> |
54 | 51 | ||
55 | <script type='text/javascript' src='../../../../../js/Clipperz/PM/Toll.js'></script> | 52 | <script type='text/javascript' src='../../../../../js/Clipperz/PM/Toll.js'></script> |
56 | <script type='text/javascript' src='../../../../../js/Clipperz/PM/Strings.js'></script> | 53 | <script type='text/javascript' src='../../../../../js/Clipperz/PM/Strings.js'></script> |
57 | <script type='text/javascript' src='../../../../../js/Clipperz/PM/Strings/Strings_en-US.js'></script> | 54 | <script type='text/javascript' src='../../../../../js/Clipperz/PM/Strings/Strings_en-US.js'></script> |
58 | <script type='text/javascript' src='../../../../../js/Clipperz/PM/Date.js'></script> | 55 | <script type='text/javascript' src='../../../../../js/Clipperz/PM/Date.js'></script> |
59 | <script type='text/javascript' src='../../../../../js/Clipperz/PM/Proxy.js'></script> | 56 | <script type='text/javascript' src='../../../../../js/Clipperz/PM/Proxy.js'></script> |
60 | <script type='text/javascript' src='../../../../../js/Clipperz/PM/Proxy/Proxy.Offline.js'></script> | 57 | <script type='text/javascript' src='../../../../../js/Clipperz/PM/Proxy/Proxy.Offline.js'></script> |
61 | <script type='text/javascript' src='../../../../../js/Clipperz/PM/Proxy/Proxy.Test.js'></script> | 58 | <script type='text/javascript' src='../../../../../js/Clipperz/PM/Proxy/Proxy.Test.js'></script> |
62 | <script type='text/javascript' src='../../../../../js/Clipperz/PM/Proxy/Proxy.Offline.DataStore.js'></script> | 59 | <script type='text/javascript' src='../../../../../js/Clipperz/PM/Proxy/Proxy.Offline.DataStore.js'></script> |
63 | 60 | ||
64 | <script type='text/javascript' src='../../../../../js/Clipperz/PM/Connection.js'></script> | 61 | <script type='text/javascript' src='../../../../../js/Clipperz/PM/Connection.js'></script> |
65 | <script type='text/javascript' src='../../../../../js/Clipperz/PM/Crypto.js'></script> | 62 | <script type='text/javascript' src='../../../../../js/Clipperz/PM/Crypto.js'></script> |
66 | 63 | ||
67 | <script type='text/javascript' src='../../../../../js/Clipperz/PM/Strings.js'></script> | 64 | <script type='text/javascript' src='../../../../../js/Clipperz/PM/Strings.js'></script> |
68 | <script type='text/javascript' src='../../../../../js/Clipperz/PM/Strings/Strings_en-US.js'></script> | 65 | <script type='text/javascript' src='../../../../../js/Clipperz/PM/Strings/Strings_en-US.js'></script> |
69 | <script type='text/javascript' src='../../../../../js/Clipperz/PM/Date.js'></script> | 66 | <script type='text/javascript' src='../../../../../js/Clipperz/PM/Date.js'></script> |
70 | <script type='text/javascript' src='../../../../../js/Clipperz/PM/DataModel/EncryptedRemoteObject.js'></script> | 67 | <script type='text/javascript' src='../../../../../js/Clipperz/PM/DataModel/EncryptedRemoteObject.js'></script> |
71 | <script type='text/javascript' src='../../../../../js/Clipperz/PM/DataModel/Record.js'></script> | 68 | <script type='text/javascript' src='../../../../../js/Clipperz/PM/DataModel/Record.js'></script> |
72 | <script type='text/javascript' src='../../../../../js/Clipperz/PM/DataModel/Record.Version.js'></script> | 69 | <script type='text/javascript' src='../../../../../js/Clipperz/PM/DataModel/Record.Version.js'></script> |
73 | <script type='text/javascript' src='../../../../../js/Clipperz/PM/DataModel/Record.Version.Field.js'></script> | 70 | <script type='text/javascript' src='../../../../../js/Clipperz/PM/DataModel/Record.Version.Field.js'></script> |
74 | <script type='text/javascript' src='../../../../../js/Clipperz/PM/DataModel/DirectLogin.js'></script> | 71 | <script type='text/javascript' src='../../../../../js/Clipperz/PM/DataModel/DirectLogin.js'></script> |
75 | <script type='text/javascript' src='../../../../../js/Clipperz/PM/DataModel/DirectLoginInput.js'></script> | 72 | <script type='text/javascript' src='../../../../../js/Clipperz/PM/DataModel/DirectLoginInput.js'></script> |
76 | <script type='text/javascript' src='../../../../../js/Clipperz/PM/DataModel/DirectLoginBinding.js'></script> | 73 | <script type='text/javascript' src='../../../../../js/Clipperz/PM/DataModel/DirectLoginBinding.js'></script> |
77 | <script type='text/javascript' src='../../../../../js/Clipperz/PM/DataModel/DirectLoginFormValue.js'></script> | 74 | <script type='text/javascript' src='../../../../../js/Clipperz/PM/DataModel/DirectLoginFormValue.js'></script> |
78 | <script type='text/javascript' src='../../../../../js/Clipperz/PM/DataModel/User.js'></script> | 75 | <script type='text/javascript' src='../../../../../js/Clipperz/PM/DataModel/User.js'></script> |
79 | <script type='text/javascript' src='../../../../../js/Clipperz/PM/DataModel/User.Header.Legacy.js'></script> | 76 | <script type='text/javascript' src='../../../../../js/Clipperz/PM/DataModel/User.Header.Legacy.js'></script> |
80 | <script type='text/javascript' src='../../../../../js/Clipperz/PM/DataModel/User.Header.RecordIndex.js'></script> | 77 | <script type='text/javascript' src='../../../../../js/Clipperz/PM/DataModel/User.Header.RecordIndex.js'></script> |
81 | <script type='text/javascript' src='../../../../../js/Clipperz/PM/DataModel/User.Header.Preferences.js'></script> | 78 | <script type='text/javascript' src='../../../../../js/Clipperz/PM/DataModel/User.Header.Preferences.js'></script> |
82 | <script type='text/javascript' src='../../../../../js/Clipperz/PM/DataModel/User.Header.OneTimePasswords.js'></script> | 79 | <script type='text/javascript' src='../../../../../js/Clipperz/PM/DataModel/User.Header.OneTimePasswords.js'></script> |
83 | <script type='text/javascript' src='../../../../../js/Clipperz/PM/DataModel/OneTimePassword.js'></script> | 80 | <script type='text/javascript' src='../../../../../js/Clipperz/PM/DataModel/OneTimePassword.js'></script> |
84 | 81 | ||
85 | <script type="text/javascript" src="../../../../SimpleTest/SimpleTest.Async.js"></script> | 82 | <script type="text/javascript" src="../../../../SimpleTest/SimpleTest.Async.js"></script> |
86 | </head> | 83 | </head> |
87 | <body> | 84 | <body> |
88 | 85 | ||
89 | <pre id="test"> | 86 | <pre id="test"> |
90 | <script> | 87 | <script> |
91 | Clipperz.PM.Strings.Languages.setSelectedLanguage('en-us'); | 88 | Clipperz.PM.Strings.Languages.setSelectedLanguage('en-us'); |
92 | </script> | 89 | </script> |
93 | <script type="text/javascript" src="DirectLoginConfigurations.data.js"></script> | 90 | <script type="text/javascript" src="DirectLoginConfigurations.data.js"></script> |
94 | <script type="text/javascript" src="User.data.js"></script> | 91 | <script type="text/javascript" src="User.data.js"></script> |
95 | <script type="text/javascript" src="Record.test.js"></script> | 92 | <script type="text/javascript" src="Record.test.js"></script> |
96 | </pre> | 93 | </pre> |
97 | </body> | 94 | </body> |
98 | </html> | 95 | </html> |
diff --git a/frontend/gamma/tests/tests/Clipperz/PM/DataModel/Record.test.js b/frontend/gamma/tests/tests/Clipperz/PM/DataModel/Record.test.js index 7d024d9..667e2ae 100644 --- a/frontend/gamma/tests/tests/Clipperz/PM/DataModel/Record.test.js +++ b/frontend/gamma/tests/tests/Clipperz/PM/DataModel/Record.test.js | |||
@@ -1,120 +1,117 @@ | |||
1 | /* | 1 | /* |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | */ | 24 | */ |
28 | 25 | ||
29 | Clipperz.Crypto.PRNG.defaultRandomGenerator().fastEntropyAccumulationForTestingPurpose(); | 26 | Clipperz.Crypto.PRNG.defaultRandomGenerator().fastEntropyAccumulationForTestingPurpose(); |
30 | 27 | ||
31 | var tests = { | 28 | var tests = { |
32 | 29 | ||
33 | //------------------------------------------------------------------------- | 30 | //------------------------------------------------------------------------- |
34 | 31 | ||
35 | 'recordUseOf_retrieveIndexDataFunction_and_getRemoteDataFunction_test': function (someTestArgs) { | 32 | 'recordUseOf_retrieveIndexDataFunction_and_getRemoteDataFunction_test': function (someTestArgs) { |
36 | var deferredResult; | 33 | var deferredResult; |
37 | var record; | 34 | var record; |
38 | 35 | ||
39 | //console.log("#### new Clipperz.PM.DataModel.Record [5]"); | 36 | //console.log("#### new Clipperz.PM.DataModel.Record [5]"); |
40 | record = new Clipperz.PM.DataModel.Record({ | 37 | record = new Clipperz.PM.DataModel.Record({ |
41 | 'reference': '<<< record reference >>>', | 38 | 'reference': '<<< record reference >>>', |
42 | 'retrieveKeyFunction': MochiKit.Base.noop, | 39 | 'retrieveKeyFunction': MochiKit.Base.noop, |
43 | 'retrieveRemoteDataFunction': function (aRecordReference) { | 40 | 'retrieveRemoteDataFunction': function (aRecordReference) { |
44 | SimpleTest.is(aRecordReference, '<<< record reference >>>', "Record correctly passes its record reference when asking for encrypted data"); | 41 | SimpleTest.is(aRecordReference, '<<< record reference >>>', "Record correctly passes its record reference when asking for encrypted data"); |
45 | return MochiKit.Async.succeed({ | 42 | return MochiKit.Async.succeed({ |
46 | // fake server payload | 43 | // fake server payload |
47 | 'data': "#### fake encrypted data ####", | 44 | 'data': "#### fake encrypted data ####", |
48 | 'version': "0.x", | 45 | 'version': "0.x", |
49 | 'currentVersion': { | 46 | 'currentVersion': { |
50 | 'reference': "<<< fake record version reference >>>", | 47 | 'reference': "<<< fake record version reference >>>", |
51 | 'data': "#### fake encrypted data ####", | 48 | 'data': "#### fake encrypted data ####", |
52 | 'version': "0.x" | 49 | 'version': "0.x" |
53 | } | 50 | } |
54 | }); | 51 | }); |
55 | }, | 52 | }, |
56 | 'updateDate': "Thu, 10 May 2007 13:01:21 UTC", | 53 | 'updateDate': "Thu, 10 May 2007 13:01:21 UTC", |
57 | // 'encryptedDataKeypath': 'data', | 54 | // 'encryptedDataKeypath': 'data', |
58 | // 'encryptedVersionKeypath': 'version', | 55 | // 'encryptedVersionKeypath': 'version', |
59 | 56 | ||
60 | 'retrieveIndexDataFunction':function (aRecordReference) { | 57 | 'retrieveIndexDataFunction':function (aRecordReference) { |
61 | SimpleTest.is(aRecordReference, '<<< record reference >>>', "Record correctly passes its record reference when asking for index data"); | 58 | SimpleTest.is(aRecordReference, '<<< record reference >>>', "Record correctly passes its record reference when asking for index data"); |
62 | return MochiKit.Async.succeed({ | 59 | return MochiKit.Async.succeed({ |
63 | key:'<< key >>', | 60 | key:'<< key >>', |
64 | label:'<< label >>', | 61 | label:'<< label >>', |
65 | notes:'<< notes >>' | 62 | notes:'<< notes >>' |
66 | }); | 63 | }); |
67 | }, | 64 | }, |
68 | 'updateIndexDataFunction': MochiKit.Base.noop | 65 | 'updateIndexDataFunction': MochiKit.Base.noop |
69 | 66 | ||
70 | }); | 67 | }); |
71 | 68 | ||
72 | deferredResult = new Clipperz.Async.Deferred("recordUseOf_retrieveIndexDataFunction_and_getEncryptedDataFunction_test", someTestArgs); | 69 | deferredResult = new Clipperz.Async.Deferred("recordUseOf_retrieveIndexDataFunction_and_getEncryptedDataFunction_test", someTestArgs); |
73 | deferredResult.addMethod(record, 'label'); | 70 | deferredResult.addMethod(record, 'label'); |
74 | deferredResult.addTest('<< label >>', "Record returns the right value for label"); | 71 | deferredResult.addTest('<< label >>', "Record returns the right value for label"); |
75 | deferredResult.addMethod(record, 'notes'); | 72 | deferredResult.addMethod(record, 'notes'); |
76 | deferredResult.addTest('<< notes >>', "Record returns the right value for notes - even the legacy one, stored on the header"); | 73 | deferredResult.addTest('<< notes >>', "Record returns the right value for notes - even the legacy one, stored on the header"); |
77 | deferredResult.addMethod(record, 'getRemoteData'); | 74 | deferredResult.addMethod(record, 'getRemoteData'); |
78 | deferredResult.addCallback(Clipperz.Async.Test.isDeeply({ 'data': "#### fake encrypted data ####", 'version': "0.x", 'currentVersion': { 'reference': "<<< fake record version reference >>>", 'data': "#### fake encrypted data ####", 'version': "0.x" } }, "Record returns the expected encrypted data")); | 75 | deferredResult.addCallback(Clipperz.Async.Test.isDeeply({ 'data': "#### fake encrypted data ####", 'version': "0.x", 'currentVersion': { 'reference': "<<< fake record version reference >>>", 'data': "#### fake encrypted data ####", 'version': "0.x" } }, "Record returns the expected encrypted data")); |
79 | deferredResult.callback(); | 76 | deferredResult.callback(); |
80 | 77 | ||
81 | return deferredResult; | 78 | return deferredResult; |
82 | }, | 79 | }, |
83 | 80 | ||
84 | //------------------------------------------------------------------------- | 81 | //------------------------------------------------------------------------- |
85 | 82 | ||
86 | 'createRecordWithoutAllRequiredParameters_test': function (someTestArgs) { | 83 | 'createRecordWithoutAllRequiredParameters_test': function (someTestArgs) { |
87 | varrecord; | 84 | varrecord; |
88 | 85 | ||
89 | try { | 86 | try { |
90 | //console.log("#### new Clipperz.PM.DataModel.Record [6]"); | 87 | //console.log("#### new Clipperz.PM.DataModel.Record [6]"); |
91 | record = new Clipperz.PM.DataModel.Record({reference:'--'}); | 88 | record = new Clipperz.PM.DataModel.Record({reference:'--'}); |
92 | SimpleTest.ok(false, "creating a record without all parameters should raise an exception"); | 89 | SimpleTest.ok(false, "creating a record without all parameters should raise an exception"); |
93 | } catch(exception) { | 90 | } catch(exception) { |
94 | // SimpleTest.is(exception.name, "Clipperz.Base.exception.MandatoryParameter", "creating a record without all parameters raises an exception"); | 91 | // SimpleTest.is(exception.name, "Clipperz.Base.exception.MandatoryParameter", "creating a record without all parameters raises an exception"); |
95 | SimpleTest.ok(/Clipperz\.Base\.exception\.MandatoryParameter.*/.test(exception.name), "creating a record without all parameters raises an exception"); | 92 | SimpleTest.ok(/Clipperz\.Base\.exception\.MandatoryParameter.*/.test(exception.name), "creating a record without all parameters raises an exception"); |
96 | } | 93 | } |
97 | }, | 94 | }, |
98 | 95 | ||
99 | //------------------------------------------------------------------------- | 96 | //------------------------------------------------------------------------- |
100 | 97 | ||
101 | 'recordFromOldData_version_0.1_test': function (someTestArgs) { | 98 | 'recordFromOldData_version_0.1_test': function (someTestArgs) { |
102 | var deferredResult; | 99 | var deferredResult; |
103 | var proxy; | 100 | var proxy; |
104 | var user; | 101 | var user; |
105 | var recordID; | 102 | var recordID; |
106 | 103 | ||
107 | //console.log("#### new Clipperz.PM.DataModel.Record [7]"); | 104 | //console.log("#### new Clipperz.PM.DataModel.Record [7]"); |
108 | /* | 105 | /* |
109 | record = new Clipperz.PM.DataModel.Record({ | 106 | record = new Clipperz.PM.DataModel.Record({ |
110 | 'reference':'05aad20ee399b11ddc923e601fcd1d096233634f2ad4c55db4f6435e5f9cc17a', | 107 | 'reference':'05aad20ee399b11ddc923e601fcd1d096233634f2ad4c55db4f6435e5f9cc17a', |
111 | 'retrieveKeyFunction': MochiKit.Base.partial(MochiKit.Async.succeed, 'e038652297f981d5ca917d88fa2c4c3251a12c0fa41bf7313a4d24a9738fe6c6'), | 108 | 'retrieveKeyFunction': MochiKit.Base.partial(MochiKit.Async.succeed, 'e038652297f981d5ca917d88fa2c4c3251a12c0fa41bf7313a4d24a9738fe6c6'), |
112 | 'retrieveRemoteDataFunction':MochiKit.Base.partial(MochiKit.Async.succeed, { | 109 | 'retrieveRemoteDataFunction':MochiKit.Base.partial(MochiKit.Async.succeed, { |
113 | 'data': '4ec19a7093534e7dcf7c796b889283c6cec224b1895720ba3ff43ce091dc72c61fd5ea56def418ba3f15239f73228c6c8558585311f5e6673efe57482a1f9c9fe71e921576989eace671ec543685e3ad8f976bbfa4c2dbc629fab936c227d4fd4da3a1561ea79e553bae7b758ff91762572c1448a2d18bec797e12721238ef5ba18ddf1fba8ae773a8debe1040b3b158220aec6be9c7190687139f589a30d9c8887792fd7040e3c7cf3f9999fb9dde1f9f334d17c996996d538a7e374ac93135acafdaf5fce738a1702182897b63d2cb8e308b94156473cba63dcc557d17dcbdb55fcff63d9ba5edf68c42855052e34207d6fabe94fe024c3db616b45f494da42c62224d3897e320080072cc442d4212e7b1e8d5b3d9e3c25d48f4e7c37112ef4c6b2c0c8aff0bd3ce05694370e4378701463dde26c7c0322f8a9eb5a724106039b16b35050a9a9b5717b2eec803efa962b88b9655742f5e7b180ea567449671fb5a2ce563d8b47bc25705821938192eae420391c208182a788dd06fb6448b9858a4104a14efd7717671c65cd08fd979a4da7c01712bc5d4e949a10ef1ea65caf1f07cee34b063bab01bfb7a59047fef30c3059ea652f1c92b9e72aac515ac8851756703772e1fa05384ee7f0d5c7a3c', | 110 | 'data': '4ec19a7093534e7dcf7c796b889283c6cec224b1895720ba3ff43ce091dc72c61fd5ea56def418ba3f15239f73228c6c8558585311f5e6673efe57482a1f9c9fe71e921576989eace671ec543685e3ad8f976bbfa4c2dbc629fab936c227d4fd4da3a1561ea79e553bae7b758ff91762572c1448a2d18bec797e12721238ef5ba18ddf1fba8ae773a8debe1040b3b158220aec6be9c7190687139f589a30d9c8887792fd7040e3c7cf3f9999fb9dde1f9f334d17c996996d538a7e374ac93135acafdaf5fce738a1702182897b63d2cb8e308b94156473cba63dcc557d17dcbdb55fcff63d9ba5edf68c42855052e34207d6fabe94fe024c3db616b45f494da42c62224d3897e320080072cc442d4212e7b1e8d5b3d9e3c25d48f4e7c37112ef4c6b2c0c8aff0bd3ce05694370e4378701463dde26c7c0322f8a9eb5a724106039b16b35050a9a9b5717b2eec803efa962b88b9655742f5e7b180ea567449671fb5a2ce563d8b47bc25705821938192eae420391c208182a788dd06fb6448b9858a4104a14efd7717671c65cd08fd979a4da7c01712bc5d4e949a10ef1ea65caf1f07cee34b063bab01bfb7a59047fef30c3059ea652f1c92b9e72aac515ac8851756703772e1fa05384ee7f0d5c7a3c', |
114 | 'version': '0.1', | 111 | 'version': '0.1', |
115 | 'currentVersion': { | 112 | 'currentVersion': { |
116 | 'reference': '05aad20ee399b11ddc923e601fcd1d096233634f2ad4c55db4f6435e5f9cc17a', | 113 | 'reference': '05aad20ee399b11ddc923e601fcd1d096233634f2ad4c55db4f6435e5f9cc17a', |
117 | 'data': '4ec19a7093534e7dcf7c796b889283c6cec224b1895720ba3ff43ce091dc72c61fd5ea56def418ba3f15239f73228c6c8558585311f5e6673efe57482a1f9c9fe71e921576989eace671ec543685e3ad8f976bbfa4c2dbc629fab936c227d4fd4da3a1561ea79e553bae7b758ff91762572c1448a2d18bec797e12721238ef5ba18ddf1fba8ae773a8debe1040b3b158220aec6be9c7190687139f589a30d9c8887792fd7040e3c7cf3f9999fb9dde1f9f334d17c996996d538a7e374ac93135acafdaf5fce738a1702182897b63d2cb8e308b94156473cba63dcc557d17dcbdb55fcff63d9ba5edf68c42855052e34207d6fabe94fe024c3db616b45f494da42c62224d3897e320080072cc442d4212e7b1e8d5b3d9e3c25d48f4e7c37112ef4c6b2c0c8aff0bd3ce05694370e4378701463dde26c7c0322f8a9eb5a724106039b16b35050a9a9b5717b2eec803efa962b88b9655742f5e7b180ea567449671fb5a2ce563d8b47bc25705821938192eae420391c208182a788dd06fb6448b9858a4104a14efd7717671c65cd08fd979a4da7c01712bc5d4e949a10ef1ea65caf1f07cee34b063bab01bfb7a59047fef30c3059ea652f1c92b9e72aac515ac8851756703772e1fa05384ee7f0d5c7a3c', | 114 | 'data': '4ec19a7093534e7dcf7c796b889283c6cec224b1895720ba3ff43ce091dc72c61fd5ea56def418ba3f15239f73228c6c8558585311f5e6673efe57482a1f9c9fe71e921576989eace671ec543685e3ad8f976bbfa4c2dbc629fab936c227d4fd4da3a1561ea79e553bae7b758ff91762572c1448a2d18bec797e12721238ef5ba18ddf1fba8ae773a8debe1040b3b158220aec6be9c7190687139f589a30d9c8887792fd7040e3c7cf3f9999fb9dde1f9f334d17c996996d538a7e374ac93135acafdaf5fce738a1702182897b63d2cb8e308b94156473cba63dcc557d17dcbdb55fcff63d9ba5edf68c42855052e34207d6fabe94fe024c3db616b45f494da42c62224d3897e320080072cc442d4212e7b1e8d5b3d9e3c25d48f4e7c37112ef4c6b2c0c8aff0bd3ce05694370e4378701463dde26c7c0322f8a9eb5a724106039b16b35050a9a9b5717b2eec803efa962b88b9655742f5e7b180ea567449671fb5a2ce563d8b47bc25705821938192eae420391c208182a788dd06fb6448b9858a4104a14efd7717671c65cd08fd979a4da7c01712bc5d4e949a10ef1ea65caf1f07cee34b063bab01bfb7a59047fef30c3059ea652f1c92b9e72aac515ac8851756703772e1fa05384ee7f0d5c7a3c', |
118 | 'version': '0.1' | 115 | 'version': '0.1' |
119 | } | 116 | } |
120 | 117 | ||
diff --git a/frontend/gamma/tests/tests/Clipperz/PM/DataModel/User.data.js b/frontend/gamma/tests/tests/Clipperz/PM/DataModel/User.data.js index 5684dbd..96c6962 100644 --- a/frontend/gamma/tests/tests/Clipperz/PM/DataModel/User.data.js +++ b/frontend/gamma/tests/tests/Clipperz/PM/DataModel/User.data.js | |||
@@ -1,120 +1,117 @@ | |||
1 | /* | 1 | /* |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | */ | 24 | */ |
28 | 25 | ||
29 | testData = { | 26 | testData = { |
30 | 27 | ||
31 | //----------------------------------------------------------------------------- | 28 | //----------------------------------------------------------------------------- |
32 | 29 | ||
33 | 'simpleLogin_001': function () { return { | 30 | 'simpleLogin_001': function () { return { |
34 | 'users': [ | 31 | 'users': [ |
35 | { | 32 | { |
36 | 'username': "joe", | 33 | 'username': "joe", |
37 | 'passphrase': "eoj", | 34 | 'passphrase': "eoj", |
38 | 'version': "0.2", | 35 | 'version': "0.2", |
39 | 'connectionVersion':"0.2", | 36 | 'connectionVersion':"0.2", |
40 | 'records':{ | 37 | 'records':{ |
41 | 'record 1': { | 38 | 'record 1': { |
42 | 'notes':"Some notes here", | 39 | 'notes':"Some notes here", |
43 | 'fields':[ | 40 | 'fields':[ |
44 | { 'name': "username", 'value': "joe", 'type': "text" }, | 41 | { 'name': "username", 'value': "joe", 'type': "text" }, |
45 | { 'name': "password", 'value': "1234", 'type': "password"} | 42 | { 'name': "password", 'value': "1234", 'type': "password"} |
46 | ], | 43 | ], |
47 | 'directLogins':{ | 44 | 'directLogins':{ |
48 | "record 1 direct login": { | 45 | "record 1 direct login": { |
49 | 'configuration':"", | 46 | 'configuration':"", |
50 | 'bindings':[ | 47 | 'bindings':[ |
51 | ], | 48 | ], |
52 | 'favicon':"http://www.example.com/favicon.ico" | 49 | 'favicon':"http://www.example.com/favicon.ico" |
53 | } | 50 | } |
54 | } | 51 | } |
55 | } | 52 | } |
56 | }, | 53 | }, |
57 | 'otp':[ | 54 | 'otp':[ |
58 | "12345678 90abcdef 12345678 90abcdef", | 55 | "12345678 90abcdef 12345678 90abcdef", |
59 | "fedcba09 87654321 fedcba09 87654321" | 56 | "fedcba09 87654321 fedcba09 87654321" |
60 | ] | 57 | ] |
61 | } | 58 | } |
62 | ] | 59 | ] |
63 | };}(), | 60 | };}(), |
64 | 61 | ||
65 | //----------------------------------------------------------------------------- | 62 | //----------------------------------------------------------------------------- |
66 | 63 | ||
67 | 'joe_clipperz_offline_copy_data': function () { return { | 64 | 'joe_clipperz_offline_copy_data': function () { return { |
68 | users:{ | 65 | users:{ |
69 | 'catchAllUser': { | 66 | 'catchAllUser': { |
70 | __masterkey_test_value__: 'masterkey', | 67 | __masterkey_test_value__: 'masterkey', |
71 | s: '112233445566778899aabbccddeeff00112233445566778899aabbccddeeff00', | 68 | s: '112233445566778899aabbccddeeff00112233445566778899aabbccddeeff00', |
72 | v: '112233445566778899aabbccddeeff00112233445566778899aabbccddeeff00' | 69 | v: '112233445566778899aabbccddeeff00112233445566778899aabbccddeeff00' |
73 | }, | 70 | }, |
74 | 'f527cdd90d0d47f8524b4e165398ad1455eba515d04abd101d1e93b3c6ae0674': { | 71 | 'f527cdd90d0d47f8524b4e165398ad1455eba515d04abd101d1e93b3c6ae0674': { |
75 | s: '186f0c40bf73f2af236eaa6c429df225efa933050c9aae65240e93b7b362e3ee', | 72 | s: '186f0c40bf73f2af236eaa6c429df225efa933050c9aae65240e93b7b362e3ee', |
76 | v: 'ac61a6e325ecf329926a86084f591d8852d0ad3e4a6080f2adc901b82395ecaf', | 73 | v: 'ac61a6e325ecf329926a86084f591d8852d0ad3e4a6080f2adc901b82395ecaf', |
77 | version: '0.2', | 74 | version: '0.2', |
78 | maxNumberOfRecords: '100', | 75 | maxNumberOfRecords: '100', |
79 | userDetails: '{"records":{"index":{"eeda70e0392261967bda71c3764da78989c45bbd2bb7be6b941b90f81d9b81b5":"0","13a5e52976337ab210903cd04872588e1b21fb72bc183e91aa25c494b8138551":"1","062af892bcfba49ffcff05c56d99b7af2d508358e39c058c2e1fc83531436f80":"2","ca01bcb7691f70818feed46c9a2a91883ac543997a395535aedbb49de166690c":"3","507f38b06d587d8889698ae1ebbba7ef8f0539b82550dd25779fd9ee88fc0c7a":"4","d5f700b9c3367c39551ea49e00a9ab20dae09dd79d46047b983fc7c4bfaa050d":"5","de13c0d036234c44214062bc0a89e5f127470c464333493a485729f43cdc26e4":"6","d620764a656bfd4e1d3758500d5db72e460a0cf729d56ed1a7755b5725c50045":"7","f215d89bf4583c12f5ed4f4330f488dad3fffa448f4dc784f15ef135dda2c732":"8","36ec1a41118813ced3553534fa2607d781cba687768db305beed368a8e06e113":"9","fe21497ef7435d31f9746c132e4b5ecf5aac5f13b5961ddb55d2bdc3409f28f6":"10","6d45c2fec275b7482d41c76b20507100cfb6ab49922b876f9dd3040d361f4a18":"11","9dcd2a8a0fcb7e57d234dc4fea347f020a6a01793e40cf56a0d22379e590e291":"12","6c25be8e145efb26a1abd59590522f73fb2e3dbc139af2217074d9e2ba92c16a":"13","6026370f3db3860d2c46a08e389a7e906dc14f98c8444b21be9a7e9f405a2728":"14","8b18e8593b5bc2f7ea39a5fab222047034ef2f380fee05be0fa6e1c0972fea39":"15","084e23120544603f0297368fd3891a3818e0fe13488e2f2c6079913c8d1bed8d":"16","7bb69b6366a8012f181c01e368ba18d4f7a82bcabb4959189736ad124c4bbfbb":"17","5cdac63b317f3942da38f3a3de3b7f0e5d6678200951c6216230295550f63fb4":"18","c0ce9130ca365bb02418d4305ea1d29e49c3f0e96d44b9d3cb6b4b6843d25065":"19"},"data":"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"},"directLogins":{"index":{"61e87fdc4f1d9112e3b30c1f6812d095dcdb24f014c83319091eb6c9899ec348":"0","989593d4c48929f0c8f1581aa96969c622807e99619ed4732026e967530a68ad":"1","9f7979368fa29f66c44bd97ecaf6c545abc800b1c7bb21b7655a68e1514c3906":"2","dba0db679802f0e6aa6d0b7a6aaf42350aabc5f057409edd99a268a92ebb6496":"3","aa18149164302d5dbe7e2d3724565b9550e00887b49978559783b2e38c625584":"4","1f9bfd677b531a03168d3f8bd8afabb5357244a7bc355dff50bd6c0a072114a6":"5","a48e38845713462ecc9f827149eeaae87da882031f98ef8ebbf9ee9537b63468":"6","6f7bbc4e42ea462b5246e6f51c3f86056bec50601ce2de6067c8c1d26f21c07f":"7","2df54059e78f5771f23bd285cce19595b38331b73d67020424d9a1b2257db09c":"8","065cd0c270e5e8ce50e4ea8e3828dccdae18c01ab030813d756a87d03fe68784":"9","ddbc8d01300a4f10631cbde09e1246332eade3a877a2205209f9eb9e5bc9da0b":"10","9b7a30e667afc9f76ba77600658b2c13bff52432d444261d39bf3d069a160afe":"11","9fd2929cde3d32d9cbc5f1d787f2f64729a5e12a14410556b31c0c099762c46a":"12","f695fc36ac56bead80c0d20a88e01e382819c18dc268f1679551b7c83db7cb14":"13","f22dc41ffabef4b3bc8f7af804fec975bd50718098322a673cbe4aaff9464ae1":"14","03251dc1cbc5398789e4c4b45c52cfac3fcd8c1a4f19a81fa68fc6feae31d55c":"15","a7b32e72502804bf2946a2a8856139cbbb759c5777e6b3e673db1fdf7e3bd06e":"16","cb9ae0bba1957075ccdbfd3b3481704d62087687a2ac7c411a4f07d444bde0f7":"17","7e1d069b7fa57c03bd7bf48807520feb953157834503aaff8c9d493f37dea69d":"18","24404059cabc63b2dbff0f42ba57183108b8189ef53ab62fa25141a1caea824b":"19","33cf9758477460a8056deef0295a1ebe65b39b392c361ceb920a83edacfe5d78":"20","e9a16316f330e3d150f6ffd194f6fd8acd1426757b097de4b88ca0db875202e4":"21"},"data":"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"},"preferences":{"data":"EZMrwxNFFd1sMGycoYE7IrlGGrfLixLUnLZmWMkFysfISe2ay3ueO0PGCApuKqh9hA=="},"oneTimePasswords":{"data":"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"},"version":"0.1"}', | 76 | userDetails: '{"records":{"index":{"eeda70e0392261967bda71c3764da78989c45bbd2bb7be6b941b90f81d9b81b5":"0","13a5e52976337ab210903cd04872588e1b21fb72bc183e91aa25c494b8138551":"1","062af892bcfba49ffcff05c56d99b7af2d508358e39c058c2e1fc83531436f80":"2","ca01bcb7691f70818feed46c9a2a91883ac543997a395535aedbb49de166690c":"3","507f38b06d587d8889698ae1ebbba7ef8f0539b82550dd25779fd9ee88fc0c7a":"4","d5f700b9c3367c39551ea49e00a9ab20dae09dd79d46047b983fc7c4bfaa050d":"5","de13c0d036234c44214062bc0a89e5f127470c464333493a485729f43cdc26e4":"6","d620764a656bfd4e1d3758500d5db72e460a0cf729d56ed1a7755b5725c50045":"7","f215d89bf4583c12f5ed4f4330f488dad3fffa448f4dc784f15ef135dda2c732":"8","36ec1a41118813ced3553534fa2607d781cba687768db305beed368a8e06e113":"9","fe21497ef7435d31f9746c132e4b5ecf5aac5f13b5961ddb55d2bdc3409f28f6":"10","6d45c2fec275b7482d41c76b20507100cfb6ab49922b876f9dd3040d361f4a18":"11","9dcd2a8a0fcb7e57d234dc4fea347f020a6a01793e40cf56a0d22379e590e291":"12","6c25be8e145efb26a1abd59590522f73fb2e3dbc139af2217074d9e2ba92c16a":"13","6026370f3db3860d2c46a08e389a7e906dc14f98c8444b21be9a7e9f405a2728":"14","8b18e8593b5bc2f7ea39a5fab222047034ef2f380fee05be0fa6e1c0972fea39":"15","084e23120544603f0297368fd3891a3818e0fe13488e2f2c6079913c8d1bed8d":"16","7bb69b6366a8012f181c01e368ba18d4f7a82bcabb4959189736ad124c4bbfbb":"17","5cdac63b317f3942da38f3a3de3b7f0e5d6678200951c6216230295550f63fb4":"18","c0ce9130ca365bb02418d4305ea1d29e49c3f0e96d44b9d3cb6b4b6843d25065":"19"},"data":"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"},"directLogins":{"index":{"61e87fdc4f1d9112e3b30c1f6812d095dcdb24f014c83319091eb6c9899ec348":"0","989593d4c48929f0c8f1581aa96969c622807e99619ed4732026e967530a68ad":"1","9f7979368fa29f66c44bd97ecaf6c545abc800b1c7bb21b7655a68e1514c3906":"2","dba0db679802f0e6aa6d0b7a6aaf42350aabc5f057409edd99a268a92ebb6496":"3","aa18149164302d5dbe7e2d3724565b9550e00887b49978559783b2e38c625584":"4","1f9bfd677b531a03168d3f8bd8afabb5357244a7bc355dff50bd6c0a072114a6":"5","a48e38845713462ecc9f827149eeaae87da882031f98ef8ebbf9ee9537b63468":"6","6f7bbc4e42ea462b5246e6f51c3f86056bec50601ce2de6067c8c1d26f21c07f":"7","2df54059e78f5771f23bd285cce19595b38331b73d67020424d9a1b2257db09c":"8","065cd0c270e5e8ce50e4ea8e3828dccdae18c01ab030813d756a87d03fe68784":"9","ddbc8d01300a4f10631cbde09e1246332eade3a877a2205209f9eb9e5bc9da0b":"10","9b7a30e667afc9f76ba77600658b2c13bff52432d444261d39bf3d069a160afe":"11","9fd2929cde3d32d9cbc5f1d787f2f64729a5e12a14410556b31c0c099762c46a":"12","f695fc36ac56bead80c0d20a88e01e382819c18dc268f1679551b7c83db7cb14":"13","f22dc41ffabef4b3bc8f7af804fec975bd50718098322a673cbe4aaff9464ae1":"14","03251dc1cbc5398789e4c4b45c52cfac3fcd8c1a4f19a81fa68fc6feae31d55c":"15","a7b32e72502804bf2946a2a8856139cbbb759c5777e6b3e673db1fdf7e3bd06e":"16","cb9ae0bba1957075ccdbfd3b3481704d62087687a2ac7c411a4f07d444bde0f7":"17","7e1d069b7fa57c03bd7bf48807520feb953157834503aaff8c9d493f37dea69d":"18","24404059cabc63b2dbff0f42ba57183108b8189ef53ab62fa25141a1caea824b":"19","33cf9758477460a8056deef0295a1ebe65b39b392c361ceb920a83edacfe5d78":"20","e9a16316f330e3d150f6ffd194f6fd8acd1426757b097de4b88ca0db875202e4":"21"},"data":"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"},"preferences":{"data":"EZMrwxNFFd1sMGycoYE7IrlGGrfLixLUnLZmWMkFysfISe2ay3ueO0PGCApuKqh9hA=="},"oneTimePasswords":{"data":"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"},"version":"0.1"}', |
80 | statistics: 'SfGy/4mpXQdDOv+Bcfie4Yt/', | 77 | statistics: 'SfGy/4mpXQdDOv+Bcfie4Yt/', |
81 | userDetailsVersion: '0.3', | 78 | userDetailsVersion: '0.3', |
82 | records: { | 79 | records: { |
83 | '062af892bcfba49ffcff05c56d99b7af2d508358e39c058c2e1fc83531436f80': { | 80 | '062af892bcfba49ffcff05c56d99b7af2d508358e39c058c2e1fc83531436f80': { |
84 | data: '7sgxSQlqR+wh3g06M2+sWp7raQxjjQ9jLIz2OcEB7SckuQcXNrhMlDCbL6ncSljtzgqhioWrOB409kIG8lc7h6ekghOE/Mhi7rVwAiRfNGB7r3mYxpEXRe96O2RG7E+NcSp8ezl+5gJ9D0o1abXPeFQYGcr95hUioCfyY+xrxY8TJVwdb9nHkYvBdKV7rCl1dTxgsKWK3nlo1T7e5uyiz5YUAE6BrCtTFAqtprLI/xOpRti9C+llohS7D6s8hkCBPZfp3chKFDrgpsCBFLhXN8jrBKSjHi1PJdRQzpJsgrxyeBj0dZx3gTsYOXqrYgdIzFUo7K1Tqb30yNprBiDMr7j0YYXiSvEb7OuOIP+HTXGN+yt09bk9LggyY6Fh0e+tenjQQ3soySN/XznOBpEjXbzXoz6fR1MXVnE9GgaX99LVNqwWfq2rIBdSE/FfspRiWP3BY5jIrEkNeRclS05U1zw3K3wxOL+cB9r2IynSXnK8QcrDNNRZ0W3PhsSFfByUXuviLSEOPuJa1mYP29L9Lj/WyHL1Gyl8xLbt2H41S6+wvIleKMuc7teH6wPXbnYphvbwBowoI6HZTEFkz3dQKhhY6VF/81iCXsuaz6BjyrzFX6SkQ4S3lN1tv4opQMJFvnmHb6EkXqVWfeIXzJIJO+owL4vDOf4okpAD+HPjjlVXhq6fvyM5UBIK9+tzJW78X/zifrQOfWRIhwjVsfUdZWmZ/S35vnHWNuXkM8GBYrDysqxanDtah3U8XLAiIhFtBOzpzr6qGaNDOKKgG3K8QXT4bYHOq1rQVUwzQuKhlCyStrRMQrC5Ry251xmLy6dKfppRarVeGDtzB/30BbtFNdZmzMNG2g+Jj5tFCrEtCMvMiQEWZHMU3tGMFxDef/KKdv1fFTJC16jmaUiCHUZmNjB3EO9R6xPVcMlAVKf57n3efrpRk/GTmm9JhAFkuF/wsveH4JjPpDUdkHYFu5tHbb30sbga3ufBAXbQL4ck10S24akU/cKraFGLvuKGaR2U0i6ih911TBSf3pAfZ3RFbBhVIl+6rSknC5+IXoBR7MRstBPW/xC9pQVjN5Qyn0g3aUjUSI+q4jcTuvMl32NtTJbWRMGhfkrpVzypZTyPnIh6XJkyBghlUARXw23MlbjiZxmY4ScDmcWZRZJWIknHlqjDKFDKNnwrfnEI9qWyMDno+jA/DEQz0mnpdZYEsoz1/qAmAeDt89vx', | 81 | data: '7sgxSQlqR+wh3g06M2+sWp7raQxjjQ9jLIz2OcEB7SckuQcXNrhMlDCbL6ncSljtzgqhioWrOB409kIG8lc7h6ekghOE/Mhi7rVwAiRfNGB7r3mYxpEXRe96O2RG7E+NcSp8ezl+5gJ9D0o1abXPeFQYGcr95hUioCfyY+xrxY8TJVwdb9nHkYvBdKV7rCl1dTxgsKWK3nlo1T7e5uyiz5YUAE6BrCtTFAqtprLI/xOpRti9C+llohS7D6s8hkCBPZfp3chKFDrgpsCBFLhXN8jrBKSjHi1PJdRQzpJsgrxyeBj0dZx3gTsYOXqrYgdIzFUo7K1Tqb30yNprBiDMr7j0YYXiSvEb7OuOIP+HTXGN+yt09bk9LggyY6Fh0e+tenjQQ3soySN/XznOBpEjXbzXoz6fR1MXVnE9GgaX99LVNqwWfq2rIBdSE/FfspRiWP3BY5jIrEkNeRclS05U1zw3K3wxOL+cB9r2IynSXnK8QcrDNNRZ0W3PhsSFfByUXuviLSEOPuJa1mYP29L9Lj/WyHL1Gyl8xLbt2H41S6+wvIleKMuc7teH6wPXbnYphvbwBowoI6HZTEFkz3dQKhhY6VF/81iCXsuaz6BjyrzFX6SkQ4S3lN1tv4opQMJFvnmHb6EkXqVWfeIXzJIJO+owL4vDOf4okpAD+HPjjlVXhq6fvyM5UBIK9+tzJW78X/zifrQOfWRIhwjVsfUdZWmZ/S35vnHWNuXkM8GBYrDysqxanDtah3U8XLAiIhFtBOzpzr6qGaNDOKKgG3K8QXT4bYHOq1rQVUwzQuKhlCyStrRMQrC5Ry251xmLy6dKfppRarVeGDtzB/30BbtFNdZmzMNG2g+Jj5tFCrEtCMvMiQEWZHMU3tGMFxDef/KKdv1fFTJC16jmaUiCHUZmNjB3EO9R6xPVcMlAVKf57n3efrpRk/GTmm9JhAFkuF/wsveH4JjPpDUdkHYFu5tHbb30sbga3ufBAXbQL4ck10S24akU/cKraFGLvuKGaR2U0i6ih911TBSf3pAfZ3RFbBhVIl+6rSknC5+IXoBR7MRstBPW/xC9pQVjN5Qyn0g3aUjUSI+q4jcTuvMl32NtTJbWRMGhfkrpVzypZTyPnIh6XJkyBghlUARXw23MlbjiZxmY4ScDmcWZRZJWIknHlqjDKFDKNnwrfnEI9qWyMDno+jA/DEQz0mnpdZYEsoz1/qAmAeDt89vx', |
85 | version: '0.2', | 82 | version: '0.2', |
86 | creationDate: 'Wed Mar 14 15:46:44 CET 2007', | 83 | creationDate: 'Wed Mar 14 15:46:44 CET 2007', |
87 | updateDate: 'Wed Mar 14 15:46:44 CET 2007', | 84 | updateDate: 'Wed Mar 14 15:46:44 CET 2007', |
88 | accessDate: 'Mon Jan 19 16:10:04 CET 2009', | 85 | accessDate: 'Mon Jan 19 16:10:04 CET 2009', |
89 | currentVersion: '4a70ca20167875a936d4540f19980e972c20f329a65d85e9b0ce709f1fc7c7e3', | 86 | currentVersion: '4a70ca20167875a936d4540f19980e972c20f329a65d85e9b0ce709f1fc7c7e3', |
90 | versions: { | 87 | versions: { |
91 | '4a70ca20167875a936d4540f19980e972c20f329a65d85e9b0ce709f1fc7c7e3': { | 88 | '4a70ca20167875a936d4540f19980e972c20f329a65d85e9b0ce709f1fc7c7e3': { |
92 | header: '####', | 89 | header: '####', |
93 | data: 'GCNNIhDQjMJQZGVSf+95fPtU6eOnFWVhuGm86r8WZGVR2Gf2EjbG1OJ0ZIGpZ/AXgirCMpo5AFxJe0Bay8IYg+xmBqMFhwFxzAgJBYCIts+raSaNRipuY8dTEqDxAqD1cChcG8EhSoiFgQ0fG0I7nNEUDJi0pIt4/ygBcwvAhuAenEp9ZW+oQA0+YysPQRqkz3IieFaOoSEbe5/SqpUilV4q1gTVyzNXvrxzxx+rlvEyGFgFN+vgtUZ1NrwlPk4gVksTpylvv6CFaMGEWKhgMG6efo0rJckKosaJTu1pldJdnmMK4EKNMLOd+jZ6pEhEhYyadrA4+zYU5TlmZA6ASzTaps8piSwZodoi9qY0ch2StK4mAbzeEGe2HdfHuAU9Tyq3Ppk3+VfNdKgpQfYrQOiSlXbKzK636tzXTN/gyrfOTHjBrRl117ywibgSX63ayAYNfcLpKotC', | 90 | data: 'GCNNIhDQjMJQZGVSf+95fPtU6eOnFWVhuGm86r8WZGVR2Gf2EjbG1OJ0ZIGpZ/AXgirCMpo5AFxJe0Bay8IYg+xmBqMFhwFxzAgJBYCIts+raSaNRipuY8dTEqDxAqD1cChcG8EhSoiFgQ0fG0I7nNEUDJi0pIt4/ygBcwvAhuAenEp9ZW+oQA0+YysPQRqkz3IieFaOoSEbe5/SqpUilV4q1gTVyzNXvrxzxx+rlvEyGFgFN+vgtUZ1NrwlPk4gVksTpylvv6CFaMGEWKhgMG6efo0rJckKosaJTu1pldJdnmMK4EKNMLOd+jZ6pEhEhYyadrA4+zYU5TlmZA6ASzTaps8piSwZodoi9qY0ch2StK4mAbzeEGe2HdfHuAU9Tyq3Ppk3+VfNdKgpQfYrQOiSlXbKzK636tzXTN/gyrfOTHjBrRl117ywibgSX63ayAYNfcLpKotC', |
94 | version: '0.2', | 91 | version: '0.2', |
95 | creationDate: 'Wed Mar 14 15:46:44 CET 2007', | 92 | creationDate: 'Wed Mar 14 15:46:44 CET 2007', |
96 | updateDate: 'Wed Mar 14 15:46:44 CET 2007', | 93 | updateDate: 'Wed Mar 14 15:46:44 CET 2007', |
97 | accessDate: 'Mon Jan 19 16:10:04 CET 2009' | 94 | accessDate: 'Mon Jan 19 16:10:04 CET 2009' |
98 | } | 95 | } |
99 | } | 96 | } |
100 | }, | 97 | }, |
101 | '084e23120544603f0297368fd3891a3818e0fe13488e2f2c6079913c8d1bed8d': { | 98 | '084e23120544603f0297368fd3891a3818e0fe13488e2f2c6079913c8d1bed8d': { |
102 | data: 'fGzBu1On7e/6rAoSB1a4fq/CkS8Be/T8UP5cQ93asBTWndSYu2lW4DQ4SXQXSindIi3OnNx/f6SNv/extb7OrMLREF92wXI045ipPwy+DIICb+cQNMJ82Sh4cXaIcAWcyrm+MYri3qq9LBKbpwkILcebZidJ86lmKYHJozUezmfbMcwNCljHs/gYkHVzVcuw9L52Ugc6wC7sjsshh+UH6i4/2Frlrophtx+b1vervNd8eoYiKnedHVXVfW7UJcQoF27eHFgzwYnGvRW0KNXFFhqmPb61TSkIvNdCCvBKDP4SXrWvGgzU89wipvWdUPpQ+fCT6Mp3hPRrbJxwMunmjujZOzBld/HkjnXoiNfBb5akA280WvdyzWYATrjV1ZFx8yQY8G0+lRt/MxjKDc38w4y+Rf5WeRbXboJMvFatwooHUggk6qSRmZVvgOmFmNuDRnRYIFzqK3JclhJeVasnqhR6RiGSowc1Ffr1HhcZCMnXpQABGBkZcHD/zw6YjHRyh9Plw7XAm0xb16HMDtiwt7WLJpxLH/HP99j/A2hvMGWiUiFCaYv7AzyEPTmYbN32D1IsAEE/GC3FG0HypGTBolP8wpAfTRdlvWpJz8oRRdwuLV3Pgpu+kXh5sQyeZI6tnuMPQFmRDcMN1oo3E5V5V585nVMnKTFcXhBzD4UnoV+DQNkG/+iSPybQzz/EZmucEqGEYyjI3kl4MAX8UMEUxE4JO0fF8MzyBI13nxknowAceEammx1dGVaJCoIOdhadaPVPyOzXM1Vp1erVm5k4TsxSx1pll+GOm6hVoNHIuQLDueaMEpRxMhfwc8cDyXURqRGPTgTc0bint5xVjo10fnpX1gcdc/AWL6y3tXM80NW+uFJ4GI7VzyzfcMRzTiRaGi19z8MIx8PbIVGh2sw4FhgGujNsPrpuESvUVT+17M0+v8oEoABNlcizTMFs/sA1uqlPumFASltzmViAzClOsDuCh069hFLjdk/Ex5jy4vPYlwOT8Uq9DJC9ZWuZgiI1DrhWN/8QGAEGxxbvnSZPNCQ9kpD5p+iabinLLWOAirVNgKwIRJRyAu/uR9xKd7J9Wxq8q/ii+y5lGilbo2g24wbDwrkXYVhqp/4J0g+p8Wv1NBjCTSCqV39WEizUCRHo3ee9HnQnBJQDOyTBRuz2odTJtJ5tLYjWXZRdFzFSJrEq+Z1z3oq7LnhZy3YWaFXPeKmBCemMthtNt0nL', | 99 | data: 'fGzBu1On7e/6rAoSB1a4fq/CkS8Be/T8UP5cQ93asBTWndSYu2lW4DQ4SXQXSindIi3OnNx/f6SNv/extb7OrMLREF92wXI045ipPwy+DIICb+cQNMJ82Sh4cXaIcAWcyrm+MYri3qq9LBKbpwkILcebZidJ86lmKYHJozUezmfbMcwNCljHs/gYkHVzVcuw9L52Ugc6wC7sjsshh+UH6i4/2Frlrophtx+b1vervNd8eoYiKnedHVXVfW7UJcQoF27eHFgzwYnGvRW0KNXFFhqmPb61TSkIvNdCCvBKDP4SXrWvGgzU89wipvWdUPpQ+fCT6Mp3hPRrbJxwMunmjujZOzBld/HkjnXoiNfBb5akA280WvdyzWYATrjV1ZFx8yQY8G0+lRt/MxjKDc38w4y+Rf5WeRbXboJMvFatwooHUggk6qSRmZVvgOmFmNuDRnRYIFzqK3JclhJeVasnqhR6RiGSowc1Ffr1HhcZCMnXpQABGBkZcHD/zw6YjHRyh9Plw7XAm0xb16HMDtiwt7WLJpxLH/HP99j/A2hvMGWiUiFCaYv7AzyEPTmYbN32D1IsAEE/GC3FG0HypGTBolP8wpAfTRdlvWpJz8oRRdwuLV3Pgpu+kXh5sQyeZI6tnuMPQFmRDcMN1oo3E5V5V585nVMnKTFcXhBzD4UnoV+DQNkG/+iSPybQzz/EZmucEqGEYyjI3kl4MAX8UMEUxE4JO0fF8MzyBI13nxknowAceEammx1dGVaJCoIOdhadaPVPyOzXM1Vp1erVm5k4TsxSx1pll+GOm6hVoNHIuQLDueaMEpRxMhfwc8cDyXURqRGPTgTc0bint5xVjo10fnpX1gcdc/AWL6y3tXM80NW+uFJ4GI7VzyzfcMRzTiRaGi19z8MIx8PbIVGh2sw4FhgGujNsPrpuESvUVT+17M0+v8oEoABNlcizTMFs/sA1uqlPumFASltzmViAzClOsDuCh069hFLjdk/Ex5jy4vPYlwOT8Uq9DJC9ZWuZgiI1DrhWN/8QGAEGxxbvnSZPNCQ9kpD5p+iabinLLWOAirVNgKwIRJRyAu/uR9xKd7J9Wxq8q/ii+y5lGilbo2g24wbDwrkXYVhqp/4J0g+p8Wv1NBjCTSCqV39WEizUCRHo3ee9HnQnBJQDOyTBRuz2odTJtJ5tLYjWXZRdFzFSJrEq+Z1z3oq7LnhZy3YWaFXPeKmBCemMthtNt0nL', |
103 | version: '0.3', | 100 | version: '0.3', |
104 | creationDate: 'Fri Oct 17 16:49:20 CEST 2008', | 101 | creationDate: 'Fri Oct 17 16:49:20 CEST 2008', |
105 | updateDate: 'Mon Oct 27 08:58:49 CET 2008', | 102 | updateDate: 'Mon Oct 27 08:58:49 CET 2008', |
106 | accessDate: 'Mon Jan 19 16:09:39 CET 2009', | 103 | accessDate: 'Mon Jan 19 16:09:39 CET 2009', |
107 | currentVersion: '6fd60c5709a4808444f43f7bbd872363d76703957f613076538ba2f9161206ac', | 104 | currentVersion: '6fd60c5709a4808444f43f7bbd872363d76703957f613076538ba2f9161206ac', |
108 | versions: { | 105 | versions: { |
109 | '0ae362285f103722abbd046eee2b7d10aeae6a1d05cbaf2081392ce9df882bcf': { | 106 | '0ae362285f103722abbd046eee2b7d10aeae6a1d05cbaf2081392ce9df882bcf': { |
110 | header: '####', | 107 | header: '####', |
111 | data: 'sG6TUmPSEPFpiJ5YdtghWHmHbvUK63tZCZ+Q5iz2ALas//jN+lZCBhZcjEwPEJskBkK2R0MyAh14wWGh2bBHMjsokgTe+L+x+0c/Zi0epE/IC9gtOBhsTe/hZ2e2xOGF/SbzET3DAAYXvxduZ36f7SvvFnrkkKvpj8wGSdTFcBmzqMb9DL2bRyRCLGLMzE3F1a0q5CufCIRz2TgHm+Uw+kfvvwC7ig/F/5iLW90Ypz3vmEtMEFYFHZ9a8Oh0rsXGfevbMhFqALoywzihQEe/NiB8dwn7GEdYKSQ35rhvZh29ULWOZinqmg0ONe0HYaxx7DbKsVoue57S0CIUlgHLajzHfLfqQg2sFI0OT8TnHsGg0YZ6mM2EdKmEjJiER0cP', | 108 | data: 'sG6TUmPSEPFpiJ5YdtghWHmHbvUK63tZCZ+Q5iz2ALas//jN+lZCBhZcjEwPEJskBkK2R0MyAh14wWGh2bBHMjsokgTe+L+x+0c/Zi0epE/IC9gtOBhsTe/hZ2e2xOGF/SbzET3DAAYXvxduZ36f7SvvFnrkkKvpj8wGSdTFcBmzqMb9DL2bRyRCLGLMzE3F1a0q5CufCIRz2TgHm+Uw+kfvvwC7ig/F/5iLW90Ypz3vmEtMEFYFHZ9a8Oh0rsXGfevbMhFqALoywzihQEe/NiB8dwn7GEdYKSQ35rhvZh29ULWOZinqmg0ONe0HYaxx7DbKsVoue57S0CIUlgHLajzHfLfqQg2sFI0OT8TnHsGg0YZ6mM2EdKmEjJiER0cP', |
112 | version: '0.3', | 109 | version: '0.3', |
113 | creationDate: 'Fri Oct 17 17:00:31 CEST 2008', | 110 | creationDate: 'Fri Oct 17 17:00:31 CEST 2008', |
114 | updateDate: 'Fri Oct 17 17:00:31 CEST 2008', | 111 | updateDate: 'Fri Oct 17 17:00:31 CEST 2008', |
115 | accessDate: 'Fri Oct 17 17:00:31 CEST 2008' | 112 | accessDate: 'Fri Oct 17 17:00:31 CEST 2008' |
116 | }, | 113 | }, |
117 | '10f45664bbd979a92f37886f1ecc6e52e49798b16dc997aecd37259ad9b2090e': { | 114 | '10f45664bbd979a92f37886f1ecc6e52e49798b16dc997aecd37259ad9b2090e': { |
118 | header: '####', | 115 | header: '####', |
119 | data: 'RdKVaV/WWWchrCse3KtcXd47Bfm6IAwjqVUpaxoed3HeunI42AAm7xYYSjeK8edHpbNRJbhobBAX5OZtWIp/HmgkobKM8CIiWxrWz89FqyrbnPD7+fXdtgF2yTax/0sC1l0ibncdOuJKX6U829oPlXCpXIOjlomc4wEEAD/5V6FbORvdZ9IE/ME3LsG2y02cT2tIpx6+R6wC/PKXhZA2UDsTE6R2Op2BtIzpVORZLXsdyAp/4wvWQxq90i9cEpbsVQsMB10JVyNHNsRTFhIlHi9MVCaMxQvcrwRElMj/Y9x3RbsFzSGKqFLqdg7Fn/U+KYkpYtsgHv9hraPIb9lV5FH16+iItU/HBM6FGezIj1ZkoQ+dgjPfSjTZzgzDYwyb', | 116 | data: 'RdKVaV/WWWchrCse3KtcXd47Bfm6IAwjqVUpaxoed3HeunI42AAm7xYYSjeK8edHpbNRJbhobBAX5OZtWIp/HmgkobKM8CIiWxrWz89FqyrbnPD7+fXdtgF2yTax/0sC1l0ibncdOuJKX6U829oPlXCpXIOjlomc4wEEAD/5V6FbORvdZ9IE/ME3LsG2y02cT2tIpx6+R6wC/PKXhZA2UDsTE6R2Op2BtIzpVORZLXsdyAp/4wvWQxq90i9cEpbsVQsMB10JVyNHNsRTFhIlHi9MVCaMxQvcrwRElMj/Y9x3RbsFzSGKqFLqdg7Fn/U+KYkpYtsgHv9hraPIb9lV5FH16+iItU/HBM6FGezIj1ZkoQ+dgjPfSjTZzgzDYwyb', |
120 | version: '0.3', | 117 | version: '0.3', |
diff --git a/frontend/gamma/tests/tests/Clipperz/PM/DataModel/User.data.old.js b/frontend/gamma/tests/tests/Clipperz/PM/DataModel/User.data.old.js index 1cb92c0..ed3a6a4 100644 --- a/frontend/gamma/tests/tests/Clipperz/PM/DataModel/User.data.old.js +++ b/frontend/gamma/tests/tests/Clipperz/PM/DataModel/User.data.old.js | |||
@@ -1,120 +1,117 @@ | |||
1 | /* | 1 | /* |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | */ | 24 | */ |
28 | 25 | ||
29 | MochiKit.Base.update(testData, { | 26 | MochiKit.Base.update(testData, { |
30 | 27 | ||
31 | //------------------------------------------------------------------------- | 28 | //------------------------------------------------------------------------- |
32 | 29 | ||
33 | 'OLD_joe_clipperz_offline_copy_data': { | 30 | 'OLD_joe_clipperz_offline_copy_data': { |
34 | users:{ | 31 | users:{ |
35 | 'catchAllUser': { | 32 | 'catchAllUser': { |
36 | __masterkey_test_value__: 'masterkey', | 33 | __masterkey_test_value__: 'masterkey', |
37 | s: '112233445566778899aabbccddeeff00112233445566778899aabbccddeeff00', | 34 | s: '112233445566778899aabbccddeeff00112233445566778899aabbccddeeff00', |
38 | v: '112233445566778899aabbccddeeff00112233445566778899aabbccddeeff00' | 35 | v: '112233445566778899aabbccddeeff00112233445566778899aabbccddeeff00' |
39 | }, | 36 | }, |
40 | 'f527cdd90d0d47f8524b4e165398ad1455eba515d04abd101d1e93b3c6ae0674': { | 37 | 'f527cdd90d0d47f8524b4e165398ad1455eba515d04abd101d1e93b3c6ae0674': { |
41 | s: '097ca38b1792023d6c1ffca50606b6040c6b27a7667e355ba9e54e6d47d8bf23', | 38 | s: '097ca38b1792023d6c1ffca50606b6040c6b27a7667e355ba9e54e6d47d8bf23', |
42 | v: '34b9f3ab193bb12dc93c791637b8d80364564b9a39ed7130cd168d52876914e4', | 39 | v: '34b9f3ab193bb12dc93c791637b8d80364564b9a39ed7130cd168d52876914e4', |
43 | version: '0.2', | 40 | version: '0.2', |
44 | maxNumberOfRecords: '100', | 41 | maxNumberOfRecords: '100', |
45 | userDetails: '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', | 42 | userDetails: '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', |
46 | statistics: 'iFI3fKfuUd5Tqj/iRCJnIk7isZ2FOYPr/yNfICm2U35oUeTJ/RA+l+kbWiYrecpIEgk=', | 43 | statistics: 'iFI3fKfuUd5Tqj/iRCJnIk7isZ2FOYPr/yNfICm2U35oUeTJ/RA+l+kbWiYrecpIEgk=', |
47 | userDetailsVersion: '0.2', | 44 | userDetailsVersion: '0.2', |
48 | records: { | 45 | records: { |
49 | /* 01 */ '062af892bcfba49ffcff05c56d99b7af2d508358e39c058c2e1fc83531436f80': { | 46 | /* 01 */ '062af892bcfba49ffcff05c56d99b7af2d508358e39c058c2e1fc83531436f80': { |
50 | data: '7sgxSQlqR+wh3g06M2+sWp7raQxjjQ9jLIz2OcEB7SckuQcXNrhMlDCbL6ncSljtzgqhioWrOB409kIG8lc7h6ekghOE/Mhi7rVwAiRfNGB7r3mYxpEXRe96O2RG7E+NcSp8ezl+5gJ9D0o1abXPeFQYGcr95hUioCfyY+xrxY8TJVwdb9nHkYvBdKV7rCl1dTxgsKWK3nlo1T7e5uyiz5YUAE6BrCtTFAqtprLI/xOpRti9C+llohS7D6s8hkCBPZfp3chKFDrgpsCBFLhXN8jrBKSjHi1PJdRQzpJsgrxyeBj0dZx3gTsYOXqrYgdIzFUo7K1Tqb30yNprBiDMr7j0YYXiSvEb7OuOIP+HTXGN+yt09bk9LggyY6Fh0e+tenjQQ3soySN/XznOBpEjXbzXoz6fR1MXVnE9GgaX99LVNqwWfq2rIBdSE/FfspRiWP3BY5jIrEkNeRclS05U1zw3K3wxOL+cB9r2IynSXnK8QcrDNNRZ0W3PhsSFfByUXuviLSEOPuJa1mYP29L9Lj/WyHL1Gyl8xLbt2H41S6+wvIleKMuc7teH6wPXbnYphvbwBowoI6HZTEFkz3dQKhhY6VF/81iCXsuaz6BjyrzFX6SkQ4S3lN1tv4opQMJFvnmHb6EkXqVWfeIXzJIJO+owL4vDOf4okpAD+HPjjlVXhq6fvyM5UBIK9+tzJW78X/zifrQOfWRIhwjVsfUdZWmZ/S35vnHWNuXkM8GBYrDysqxanDtah3U8XLAiIhFtBOzpzr6qGaNDOKKgG3K8QXT4bYHOq1rQVUwzQuKhlCyStrRMQrC5Ry251xmLy6dKfppRarVeGDtzB/30BbtFNdZmzMNG2g+Jj5tFCrEtCMvMiQEWZHMU3tGMFxDef/KKdv1fFTJC16jmaUiCHUZmNjB3EO9R6xPVcMlAVKf57n3efrpRk/GTmm9JhAFkuF/wsveH4JjPpDUdkHYFu5tHbb30sbga3ufBAXbQL4ck10S24akU/cKraFGLvuKGaR2U0i6ih911TBSf3pAfZ3RFbBhVIl+6rSknC5+IXoBR7MRstBPW/xC9pQVjN5Qyn0g3aUjUSI+q4jcTuvMl32NtTJbWRMGhfkrpVzypZTyPnIh6XJkyBghlUARXw23MlbjiZxmY4ScDmcWZRZJWIknHlqjDKFDKNnwrfnEI9qWyMDno+jA/DEQz0mnpdZYEsoz1/qAmAeDt89vx', | 47 | data: '7sgxSQlqR+wh3g06M2+sWp7raQxjjQ9jLIz2OcEB7SckuQcXNrhMlDCbL6ncSljtzgqhioWrOB409kIG8lc7h6ekghOE/Mhi7rVwAiRfNGB7r3mYxpEXRe96O2RG7E+NcSp8ezl+5gJ9D0o1abXPeFQYGcr95hUioCfyY+xrxY8TJVwdb9nHkYvBdKV7rCl1dTxgsKWK3nlo1T7e5uyiz5YUAE6BrCtTFAqtprLI/xOpRti9C+llohS7D6s8hkCBPZfp3chKFDrgpsCBFLhXN8jrBKSjHi1PJdRQzpJsgrxyeBj0dZx3gTsYOXqrYgdIzFUo7K1Tqb30yNprBiDMr7j0YYXiSvEb7OuOIP+HTXGN+yt09bk9LggyY6Fh0e+tenjQQ3soySN/XznOBpEjXbzXoz6fR1MXVnE9GgaX99LVNqwWfq2rIBdSE/FfspRiWP3BY5jIrEkNeRclS05U1zw3K3wxOL+cB9r2IynSXnK8QcrDNNRZ0W3PhsSFfByUXuviLSEOPuJa1mYP29L9Lj/WyHL1Gyl8xLbt2H41S6+wvIleKMuc7teH6wPXbnYphvbwBowoI6HZTEFkz3dQKhhY6VF/81iCXsuaz6BjyrzFX6SkQ4S3lN1tv4opQMJFvnmHb6EkXqVWfeIXzJIJO+owL4vDOf4okpAD+HPjjlVXhq6fvyM5UBIK9+tzJW78X/zifrQOfWRIhwjVsfUdZWmZ/S35vnHWNuXkM8GBYrDysqxanDtah3U8XLAiIhFtBOzpzr6qGaNDOKKgG3K8QXT4bYHOq1rQVUwzQuKhlCyStrRMQrC5Ry251xmLy6dKfppRarVeGDtzB/30BbtFNdZmzMNG2g+Jj5tFCrEtCMvMiQEWZHMU3tGMFxDef/KKdv1fFTJC16jmaUiCHUZmNjB3EO9R6xPVcMlAVKf57n3efrpRk/GTmm9JhAFkuF/wsveH4JjPpDUdkHYFu5tHbb30sbga3ufBAXbQL4ck10S24akU/cKraFGLvuKGaR2U0i6ih911TBSf3pAfZ3RFbBhVIl+6rSknC5+IXoBR7MRstBPW/xC9pQVjN5Qyn0g3aUjUSI+q4jcTuvMl32NtTJbWRMGhfkrpVzypZTyPnIh6XJkyBghlUARXw23MlbjiZxmY4ScDmcWZRZJWIknHlqjDKFDKNnwrfnEI9qWyMDno+jA/DEQz0mnpdZYEsoz1/qAmAeDt89vx', |
51 | version: '0.2', | 48 | version: '0.2', |
52 | creationDate: 'Wed Mar 14 15:46:44 CET 2007', | 49 | creationDate: 'Wed Mar 14 15:46:44 CET 2007', |
53 | updateDate: 'Wed Mar 14 15:46:44 CET 2007', | 50 | updateDate: 'Wed Mar 14 15:46:44 CET 2007', |
54 | accessDate: 'Mon Jan 19 16:10:04 CET 2009', | 51 | accessDate: 'Mon Jan 19 16:10:04 CET 2009', |
55 | currentVersion: '4a70ca20167875a936d4540f19980e972c20f329a65d85e9b0ce709f1fc7c7e3', | 52 | currentVersion: '4a70ca20167875a936d4540f19980e972c20f329a65d85e9b0ce709f1fc7c7e3', |
56 | versions: { | 53 | versions: { |
57 | '4a70ca20167875a936d4540f19980e972c20f329a65d85e9b0ce709f1fc7c7e3': { | 54 | '4a70ca20167875a936d4540f19980e972c20f329a65d85e9b0ce709f1fc7c7e3': { |
58 | header: '####', | 55 | header: '####', |
59 | data: '.....', | 56 | data: '.....', |
60 | version: '0.2', | 57 | version: '0.2', |
61 | creationDate: 'Wed Mar 14 15:46:44 CET 2007', | 58 | creationDate: 'Wed Mar 14 15:46:44 CET 2007', |
62 | updateDate: 'Wed Mar 14 15:46:44 CET 2007', | 59 | updateDate: 'Wed Mar 14 15:46:44 CET 2007', |
63 | accessDate: 'Mon Jan 19 16:10:04 CET 2009' | 60 | accessDate: 'Mon Jan 19 16:10:04 CET 2009' |
64 | } | 61 | } |
65 | } | 62 | } |
66 | }, | 63 | }, |
67 | /* 02 */ '13a5e52976337ab210903cd04872588e1b21fb72bc183e91aa25c494b8138551': { | 64 | /* 02 */ '13a5e52976337ab210903cd04872588e1b21fb72bc183e91aa25c494b8138551': { |
68 | data: '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', | 65 | data: '0/BjzyY6jeh71hwgASQphLMgnLz6WJJPg7sDskLKo5gCumpebgHBPqN0OPyHqTq4Lyt7Um++ckx2VA4yoX4cojXC7FBnscHtN18RlVNRvkfhhFPWBZhFwuVZxlFNb/IueDSjKR3dJahbTqao2AU3HXp0xOdsO5Mb2CfMz1/C4rtDuv5ee7GJNEv2hb2tBTzxbB8PZ/TKYZhlfgV3rJ2Hc509OeX/PuD8oYB7sUnB9UhDZP7pVY0Vz3LP/dFUf1cPGFh7bnxxYNphpJ2SxhIUdgxpmP6UCFxdLbCBXv13+7OlhCaO2eGfsO4Qch996otkSrVxfTvOTLuwiwSqU7hLlvOSzm9in69Rf35ZC7bKcZIdZkTNPeV0a+dR6j3LY7dBvIzd08OtBSqOdQqo/6isG8vaQPLVcWkFFZ//iHGgjTIduSoyzMb/y9cr8J1Qj1uTayUVAHQywCYdKgT4UccLoyt96vKHRcPCw6iepEfSrc3aZOtTg/aS3j2CGTih0i0gfrA4EbeQtIfobthsbTF6Oq5xjrIAMv2LRiJ+8JPj6xw8ODvM8SUN/3UxlYKsqDpWOW4tOztQAMSijoGtBswIl+mLr2p50Cul4n8ENfrilyAX4AcxUFSbH6tVd19ErQLsj+T2H5qhIF0Ifo5NxL9bj+Gx/5ul6dGH6Et9dvaHv+CZ3FKc7wrvItd6GXexc0SC16VfEOUps8yBahEHvNYAo/r5UG+wDCMhstHzEjiSV7TJ5ozjf+C2N+5A81TpJS+zfXhuiyupburyjYX8KQfXSvc28FG9CsgD9u9NcUuqC8L0K6MTB7k8RPSrG9xcBowqFDaH3/afLBsKWHEx87TiaZ7GbxKKmiINJk833pNZMYt36dr0fT0AH6WkvD4iSIWcFjvAHrW0CUBjOkhooAxjLDwNS4xBcgL0uGf61ygYBUH9zV+JqC3pullYzc7gL6Z1uKTdB9+Rzq/1NfZGUjVrsIepYO6k3Jf2j77qRNofSVtLr7VudUv297mIypV4jFNG/RoPFtQ2WSbHZIYIVepPCqWkQQ3VaaBZd8NToEYPjeSP7FQCrIjDtH5JVc649wgkEHdLS/q/lsToyCQh/47fiaEU/OJUX6UrzLG50J8+b+ijzIE3A3hZJf6nBnUbcUsEN1WzNHama57tMsWCUoxfcsZjEeSk8CzUjEFvxToKpESwRX7jDS7uWyRjuIHE56nuy7Rhzy7kP3hjE7eZQGMA7h3yxItDxa0hjvUO46IjZpmfyLIftSd323J9K7y9x3q0OGs6cNMNll+M8eSwHgooJbAGYjftIYVQ7t3l19LKEpnemXuObFFJQMvu6KQFRkHS3A2OROzC7hy3w5nSZP9Nqvygvc8Nj5x2IlHlK+pZeQi9E9WU6mGKIPzAOjSZg1FRLULUmahWgXGvJVIoVbHL1WX0/+g1BVsVcEZEAviRczTaFYVrH3zUIb0hql9p5EmHXwINnWMpbL1oh2LEsOUIpRCzjeBX1om6QCwyrXKzE5WkKcsQ7WbVvJf2q8Vdj3r3I8D9Kr+a7QqnAKm1GdwS+e5PcapxDzyhIAw0AsrOyWpIHFKvoJGl9/CWiD6Q+WxLDjG/KC3ms5P6hxY2Oxyakmmp0JGMtSIpOIV4cUyxfnFQ0LVX+vcrM9DpwZNHYLfyEVgg68xpLkUhUSHqYQhHgMe9oyFrzjmnU+EAzBY2vn7ZRrzxEowFipZpmlxFb81V9KRLT2l+3sUZ2yym7Y81HNdY4u1NKw2a3kwNryk0lID5FlbqvswxDJ60aWKFl2jrRW+EUoAX0mmGLk4lw1TYMKimngJap2ukwFky5/yn5KwCq4GjTkxzD35A52hFbDq5juINpyuFKb5X6sTkzxmIQ6d+1ePO6+kkN5RrZwjM2022BDoKJ95OyaR6kqUsIikDrgxHQUD6LR/2RMZapGa0B9klNlPm2phmQtAy3HLWfByXxRTHv7CP0keJl0f43LCHx/XPglb+QCs7mkgBIlp55xWugdKiBgMxzBkpjYWIXaaRkJcFrd8VmAwrXuRBvxVFzXh9/jHxuUMYv4WPaNX0SIhiNzaJsQCj5GRc4ftGD6Ot5rOaYjOxVM4yiFRzJMCgjCJPkL8EkU4l3M0GP3udgCfVqoHVFAAKmgdHB4o+hR4F8JA8U9+OCAMdZ+U0TL0oCcZPvQqVKi0b+5dePa8xTLYzOAuO7KF2TvKIujYqkumvg3zauUxxq7Ncklv+ddruQd3KAJ+H7rB9+g/6mTUpdyhNs91BD+QO0q3AYqmtTjSb6eJ2cmz7h6hA4xdg1Pel/sn+B3dePy7BVXLe/G2p5W34L0ZItuAJlIUo8JqE7IJ+BDJ2HPHMT4t/QIde6A76LDvKzalpZ5k5DXwnwGIj4DUdMXgYB8GdtTAhusOraNCNXTCyqU+EchYrO6o9UOURzd8wWj49jce/XROvWtKBuVbAXDNZzcIR8ALmpNTJKv0fz2Y/9/yxxvKN1dpBkLj+MpAw2++NEyylGhMC5C5f5m8pBApYziN84s4O3JQ3khW/1UttQl4=', |
69 | version: '0.2', | 66 | version: '0.2', |
70 | creationDate: 'Wed Mar 14 15:46:44 CET 2007', | 67 | creationDate: 'Wed Mar 14 15:46:44 CET 2007', |
71 | updateDate: 'Wed Mar 14 15:46:44 CET 2007', | 68 | updateDate: 'Wed Mar 14 15:46:44 CET 2007', |
72 | accessDate: 'Mon Jan 19 16:10:04 CET 2009' | 69 | accessDate: 'Mon Jan 19 16:10:04 CET 2009' |
73 | }, | 70 | }, |
74 | /* 03 */ '36ec1a41118813ced3553534fa2607d781cba687768db305beed368a8e06e113': { | 71 | /* 03 */ '36ec1a41118813ced3553534fa2607d781cba687768db305beed368a8e06e113': { |
75 | data: 'B7RNc32W4K53PWYWQ4aUkqSLV2O4bwExYXVPFT+50MHxrhYt4/yh2idYXAooF1ImaIlvyUsIbI4EnIoBQ33ed2wxuSA9HVC4+wTrE05EfjYOw66yJO6R6TbIazOs0Fob5PJCFEW6evmb6WWf5KsHwifOo+ACMHK799yZ1dxfaIEjRBmLCtnc8sTNvo8i6McAf7WCffA1vXbyVPEhxJjmrfIDqvkWsNR7jDV5xIA021WicOS0FxOnzU3FecU7EF/UPcYjTKfe8IKw4nDXSKIIgXqCdzNYsyZkw2OnMDVJoSwNdfiog3H4zFy2m9KZqPjwnHHj5BE8rdx0JuZoSnTFLR05p4KdWfOU4BrjehAWXZdudYqsovtDm9uMLgUfx4DV/JKVmGAZ49GWM1Tx7pY5PBbJRTO3674FGWYHTPEMiIpDk+zt1sYIR2YBbJTq4fFOIPsgmOfvYdTkSvdHLk0fbxoK12w+atgmXAiNgE6T7DlYT0IMZlEesw0Spchxoo7lTBUPXC93bl/JugyhoRLUof4dxFvsIvd18Gnop+h7aCVW1S3lqZ36TG/N+hlM4U54FkpHjJi2fN8M8EKF0N8n399m58RNfsX2FriUVHozdb5gpgUXnQnVaAUrtv177lz0sRO+9KqbhJ16dCDzMFLcarBvXGqWkj+ZfkpNIaoyl8KTeHTQTbSS2IwLTvs69fbMW6Mub3VD81CXyY3MXyF4hT0U3CFVD4jQg+xODNnqqrkl/LebWy/XP/HOoNTxjygEu1JcS7zCptRagNoucXVkWinyKGjR9fSEltsrXG2pm4w2qsovRB3vfYp7kx2m5I9qc11K+JKhgPUmpm0S4BnPdfpRMXq0w8kxu08Mwm1Debhrzrgjw1/s1ZtcpoFgJv4EWLboWbo+CKWYdq0AGl+b5UHREPnGOM9o9bOg3uvaOEKZyMq8wxECBjdas4wjRbMY83PcBfzCbOU+POrcbalmtwn4/ILkHPsUcaOHYcnKwkxSYIDRxQc69mHw1+vilSHUQ5dZYSWIRvV3yPe9eqZPWJsWrOyhPLCf18BoNdfbgHFL7b2KN9xLMz0tdHxVozH2TnwAavcNqAE0hVIgtyEDoT4rI7FVMSu5mCIN2KOxgXB8XREZokT1BQ8+rz6JraS3JYQNz+7Bd6iB6OaTStsFoaBkj50MszNdwhRViOCCUk4bUr45XRtyh4ZEXj/I4pyJUkhR5H8/qKKD', | 72 | data: 'B7RNc32W4K53PWYWQ4aUkqSLV2O4bwExYXVPFT+50MHxrhYt4/yh2idYXAooF1ImaIlvyUsIbI4EnIoBQ33ed2wxuSA9HVC4+wTrE05EfjYOw66yJO6R6TbIazOs0Fob5PJCFEW6evmb6WWf5KsHwifOo+ACMHK799yZ1dxfaIEjRBmLCtnc8sTNvo8i6McAf7WCffA1vXbyVPEhxJjmrfIDqvkWsNR7jDV5xIA021WicOS0FxOnzU3FecU7EF/UPcYjTKfe8IKw4nDXSKIIgXqCdzNYsyZkw2OnMDVJoSwNdfiog3H4zFy2m9KZqPjwnHHj5BE8rdx0JuZoSnTFLR05p4KdWfOU4BrjehAWXZdudYqsovtDm9uMLgUfx4DV/JKVmGAZ49GWM1Tx7pY5PBbJRTO3674FGWYHTPEMiIpDk+zt1sYIR2YBbJTq4fFOIPsgmOfvYdTkSvdHLk0fbxoK12w+atgmXAiNgE6T7DlYT0IMZlEesw0Spchxoo7lTBUPXC93bl/JugyhoRLUof4dxFvsIvd18Gnop+h7aCVW1S3lqZ36TG/N+hlM4U54FkpHjJi2fN8M8EKF0N8n399m58RNfsX2FriUVHozdb5gpgUXnQnVaAUrtv177lz0sRO+9KqbhJ16dCDzMFLcarBvXGqWkj+ZfkpNIaoyl8KTeHTQTbSS2IwLTvs69fbMW6Mub3VD81CXyY3MXyF4hT0U3CFVD4jQg+xODNnqqrkl/LebWy/XP/HOoNTxjygEu1JcS7zCptRagNoucXVkWinyKGjR9fSEltsrXG2pm4w2qsovRB3vfYp7kx2m5I9qc11K+JKhgPUmpm0S4BnPdfpRMXq0w8kxu08Mwm1Debhrzrgjw1/s1ZtcpoFgJv4EWLboWbo+CKWYdq0AGl+b5UHREPnGOM9o9bOg3uvaOEKZyMq8wxECBjdas4wjRbMY83PcBfzCbOU+POrcbalmtwn4/ILkHPsUcaOHYcnKwkxSYIDRxQc69mHw1+vilSHUQ5dZYSWIRvV3yPe9eqZPWJsWrOyhPLCf18BoNdfbgHFL7b2KN9xLMz0tdHxVozH2TnwAavcNqAE0hVIgtyEDoT4rI7FVMSu5mCIN2KOxgXB8XREZokT1BQ8+rz6JraS3JYQNz+7Bd6iB6OaTStsFoaBkj50MszNdwhRViOCCUk4bUr45XRtyh4ZEXj/I4pyJUkhR5H8/qKKD', |
76 | version: '0.2', | 73 | version: '0.2', |
77 | creationDate: 'Wed Mar 14 15:46:44 CET 2007', | 74 | creationDate: 'Wed Mar 14 15:46:44 CET 2007', |
78 | updateDate: 'Wed Mar 14 15:46:44 CET 2007', | 75 | updateDate: 'Wed Mar 14 15:46:44 CET 2007', |
79 | accessDate: 'Mon Jan 19 16:10:04 CET 2009' | 76 | accessDate: 'Mon Jan 19 16:10:04 CET 2009' |
80 | }, | 77 | }, |
81 | /* 04 */ '507f38b06d587d8889698ae1ebbba7ef8f0539b82550dd25779fd9ee88fc0c7a': { | 78 | /* 04 */ '507f38b06d587d8889698ae1ebbba7ef8f0539b82550dd25779fd9ee88fc0c7a': { |
82 | data: 'ncSFmp/+n1pYUKi2fwhMCevSwFYO5irdcpOlSxC6YPOKYavK4iUbtBsilYWd0hpvUHW2ItaDwiyNFxs2Lwegex6dawKrpMYkPBcaZQDa746yACGgCkhz4MAGnUn5HCmz6xhpCVXMMKe3w2nEOjRB+pOMOeJt2n7aw0hCJ9tQ9JTFNrZOxeXrqoexrd210Rmr9FnKhLIvhNTN1/vXRqP0ys10omJ2mowzF4KoEVmz3ET6pS2d7tGjt9M/OYsH/ETWWc92doF5PO84g5/3HePaCo8NCqq4ul7AWJEbdnkxxmd7urJzIscPQPcoLxL7GfG5LhHTFyHlfFz9dNlccfA+OPftjyfjXTjLYZzbxxbi/nAB9Esqj5AoHfqaJM1ZOrZ+qAvm8Am3+HAXrqtiybDITrCLmGH9ukWDsx7R3lYTlvjArwORBUH+4w4/uYGscVm9kOYj/Rmz/ZMH9JibYFcPcOnr3rWXPFUL/XsXTrm9lzOvPyEYJmkENzd54AHC4Lr5vHpeuipWFLiJOrtn2WcgDG/DdLaYGKsmISXj74XDtP6Ee5lKOtbwwcmVNrl11UCQBEFHNybhXvpil5laKddOauLJDKtaDL/mKYPbr5YSk7HPCzRyE7HM2dC1MpBHuJ8g+hDkgU3wQcxYduKLRpuC0uOqrODigGWhVrdiKdZanlWUq9EkE3eH+E2A/CA8mHl7UNaH89XSvgV7uZyOmK7iZ+1kd9OzhBLQdJnK9qqP467Y14KsTt1E1+tqlqVAuK79QMnllaR0e3ztBRAQsyf5SD0KuSGXWz+z9/RjbhamW1s0UFRGh3voQMypU5RcYfYUA5KVg0BiVKFaiZBZKLo213hKbrgE2KoqVDEmIBFmwsu/S3EDzUY22tTB+o8ZKQiYesAUafGtnvsOLa+h6weF1ZvQVBerbD3fhb2o+d4ZyPkoRAsop+5it0QxsWuZL+J2oWybaikxIP/1ZM2ow4QZLaAVqihyHxqhF5UxZ9zrWxfp34BIPzzU9esSifrD0gXZ3mwutaCukZoijnGODJZtFOy9Rl1gyS1IbpyRbwz5O/YRl4BsD2aOk4InajT13Sa1BLPblQcrau13aeg/IzQhcUJ6n7enkrqiJFTP8N1aFAuYv8ilu0V2ymIuCLUtc4cbo7KyA+gnHhZA+DjjrhG/izOyWtQY/WtDsqvo/6ILwFk37JDjHfkchPEVcdl9qT7goG/4zTGX+lx8UTKKZJjJhLjA', | 79 | data: 'ncSFmp/+n1pYUKi2fwhMCevSwFYO5irdcpOlSxC6YPOKYavK4iUbtBsilYWd0hpvUHW2ItaDwiyNFxs2Lwegex6dawKrpMYkPBcaZQDa746yACGgCkhz4MAGnUn5HCmz6xhpCVXMMKe3w2nEOjRB+pOMOeJt2n7aw0hCJ9tQ9JTFNrZOxeXrqoexrd210Rmr9FnKhLIvhNTN1/vXRqP0ys10omJ2mowzF4KoEVmz3ET6pS2d7tGjt9M/OYsH/ETWWc92doF5PO84g5/3HePaCo8NCqq4ul7AWJEbdnkxxmd7urJzIscPQPcoLxL7GfG5LhHTFyHlfFz9dNlccfA+OPftjyfjXTjLYZzbxxbi/nAB9Esqj5AoHfqaJM1ZOrZ+qAvm8Am3+HAXrqtiybDITrCLmGH9ukWDsx7R3lYTlvjArwORBUH+4w4/uYGscVm9kOYj/Rmz/ZMH9JibYFcPcOnr3rWXPFUL/XsXTrm9lzOvPyEYJmkENzd54AHC4Lr5vHpeuipWFLiJOrtn2WcgDG/DdLaYGKsmISXj74XDtP6Ee5lKOtbwwcmVNrl11UCQBEFHNybhXvpil5laKddOauLJDKtaDL/mKYPbr5YSk7HPCzRyE7HM2dC1MpBHuJ8g+hDkgU3wQcxYduKLRpuC0uOqrODigGWhVrdiKdZanlWUq9EkE3eH+E2A/CA8mHl7UNaH89XSvgV7uZyOmK7iZ+1kd9OzhBLQdJnK9qqP467Y14KsTt1E1+tqlqVAuK79QMnllaR0e3ztBRAQsyf5SD0KuSGXWz+z9/RjbhamW1s0UFRGh3voQMypU5RcYfYUA5KVg0BiVKFaiZBZKLo213hKbrgE2KoqVDEmIBFmwsu/S3EDzUY22tTB+o8ZKQiYesAUafGtnvsOLa+h6weF1ZvQVBerbD3fhb2o+d4ZyPkoRAsop+5it0QxsWuZL+J2oWybaikxIP/1ZM2ow4QZLaAVqihyHxqhF5UxZ9zrWxfp34BIPzzU9esSifrD0gXZ3mwutaCukZoijnGODJZtFOy9Rl1gyS1IbpyRbwz5O/YRl4BsD2aOk4InajT13Sa1BLPblQcrau13aeg/IzQhcUJ6n7enkrqiJFTP8N1aFAuYv8ilu0V2ymIuCLUtc4cbo7KyA+gnHhZA+DjjrhG/izOyWtQY/WtDsqvo/6ILwFk37JDjHfkchPEVcdl9qT7goG/4zTGX+lx8UTKKZJjJhLjA', |
83 | version: '0.2', | 80 | version: '0.2', |
84 | creationDate: 'Wed Mar 14 15:46:44 CET 2007', | 81 | creationDate: 'Wed Mar 14 15:46:44 CET 2007', |
85 | updateDate: 'Wed Mar 14 15:46:44 CET 2007', | 82 | updateDate: 'Wed Mar 14 15:46:44 CET 2007', |
86 | accessDate: 'Mon Jan 19 16:10:04 CET 2009' | 83 | accessDate: 'Mon Jan 19 16:10:04 CET 2009' |
87 | }, | 84 | }, |
88 | /* 05 */ '6026370f3db3860d2c46a08e389a7e906dc14f98c8444b21be9a7e9f405a2728': { | 85 | /* 05 */ '6026370f3db3860d2c46a08e389a7e906dc14f98c8444b21be9a7e9f405a2728': { |
89 | data: '3oUg1TD+Lu4ou06j/MddOTXDqRM+qSKD+6Iuzia1Hop1w7v/BXidqeoKJZQI2VY9oO9B70Nr3B3wDROF+ycy6Rq+FM/xqUGHKXn1lAaSc6Wgj6TLQ6eRF6YZKSPqTj7TDWyw/2pEWk4HjcT8drTrCaC02tzAXMhYWlYPQPW4fUdq4hawoHIdopUN3vafQuFjY47OhqXKav3bNao=', | 86 | data: '3oUg1TD+Lu4ou06j/MddOTXDqRM+qSKD+6Iuzia1Hop1w7v/BXidqeoKJZQI2VY9oO9B70Nr3B3wDROF+ycy6Rq+FM/xqUGHKXn1lAaSc6Wgj6TLQ6eRF6YZKSPqTj7TDWyw/2pEWk4HjcT8drTrCaC02tzAXMhYWlYPQPW4fUdq4hawoHIdopUN3vafQuFjY47OhqXKav3bNao=', |
90 | version: '0.2', | 87 | version: '0.2', |
91 | creationDate: 'Wed Mar 14 15:46:44 CET 2007', | 88 | creationDate: 'Wed Mar 14 15:46:44 CET 2007', |
92 | updateDate: 'Wed Mar 14 15:46:44 CET 2007', | 89 | updateDate: 'Wed Mar 14 15:46:44 CET 2007', |
93 | accessDate: 'Mon Jan 19 16:10:04 CET 2009' | 90 | accessDate: 'Mon Jan 19 16:10:04 CET 2009' |
94 | }, | 91 | }, |
95 | /* 06 */ '6c25be8e145efb26a1abd59590522f73fb2e3dbc139af2217074d9e2ba92c16a': { | 92 | /* 06 */ '6c25be8e145efb26a1abd59590522f73fb2e3dbc139af2217074d9e2ba92c16a': { |
96 | data: 'b2mcYUi59l434kGl7ij6dBu3063UL1dToMIu3Zsa9RV9RzeLKnezJhLKunqoAm7KwiJeqDo/REexHI1cshGYtHasVXXuyJfMx1grH7yhoWnkSRF4Sax6w5E5wnGkEpGJHOxXJ9rOjWHZ7yqCUUCB/dqLw4FwPOtRb/ynkBEYztEJA6EKGJuz0vrrTOsT8HMXtj/w6MEZ7qI3fPs=', | 93 | data: 'b2mcYUi59l434kGl7ij6dBu3063UL1dToMIu3Zsa9RV9RzeLKnezJhLKunqoAm7KwiJeqDo/REexHI1cshGYtHasVXXuyJfMx1grH7yhoWnkSRF4Sax6w5E5wnGkEpGJHOxXJ9rOjWHZ7yqCUUCB/dqLw4FwPOtRb/ynkBEYztEJA6EKGJuz0vrrTOsT8HMXtj/w6MEZ7qI3fPs=', |
97 | version: '0.2', | 94 | version: '0.2', |
98 | creationDate: 'Wed Mar 14 15:46:44 CET 2007', | 95 | creationDate: 'Wed Mar 14 15:46:44 CET 2007', |
99 | updateDate: 'Wed Mar 14 15:46:44 CET 2007', | 96 | updateDate: 'Wed Mar 14 15:46:44 CET 2007', |
100 | accessDate: 'Mon Jan 19 16:10:04 CET 2009' | 97 | accessDate: 'Mon Jan 19 16:10:04 CET 2009' |
101 | }, | 98 | }, |
102 | /* 07 */ '6d45c2fec275b7482d41c76b20507100cfb6ab49922b876f9dd3040d361f4a18': { | 99 | /* 07 */ '6d45c2fec275b7482d41c76b20507100cfb6ab49922b876f9dd3040d361f4a18': { |
103 | data: 'jzjPgxRHApIJA/6hiY4XCtb5+eKzHlOeoiGwfVDvip95zU7ThHbdmxOUomeyCOZ3S1SGPT4lHvqZgfVG5m5RvH3JaAIa8EY1ZElRohoX3rETVPJzI/Ov5Rp3lZjtWlu5meNrcJz811HBHrtBuJxAmSjYcY3CCal+oC2zcK2fLZR/iOQ+69ONVFhdV9KiOqzNf8IisIa1sIgFopqsdHXiZ9oLe0a7Y56q+OplyU3A+TmxKLI+Qq+WkjvdMzZDDqzYH47me5niugYPdkQwN6WQUE0sK9QPs0uU4TOwqCwN9nPH/DoQ6oXWAu2+R4iCyt6ZjLNkClbps4s8Cwz6wfFQ+4T8bcldjveJenmrYwiUzxSd/4xa34yFVXVw2OD0n8yZhtvNFvfoPy+X9z+Y4f5HlM0qzL9zYya4KwWjFQzhOxFjni9JyGM2PJ1BctB+q1J+CHuhlVjUF0Y5zIS3zFTET8jjDGBZDWB+Ao9E8fUD+0OJJUdKJ4kUfn4ZUZUG20eLBjmJqWBGYZX7UFaPv8ksahoK26Ol6FnBE4KpPStQeDgXZDzGsiLlEsxHJLUFkNtAUXozw38bWWQvi2VIFtkw/ZViPIenmSNT14kUVWdrlKQC8x0+wECeh5ffv0i8UUw3v8QC2ZE7GV0OMl4ySlRCuDCfZ53YFoB3HIR1hSZMhHlHJDPUz8JOuXdHcUQaJeNrfWoC2KkKb0ZecBj9iXooDh9yGi0g7TS7eyhlz1LHpzEWB0CPsZqhNGMxmfFWur7v2hrYzoHQOeB19ZSmWzfUwd4dRpqMp0x1lZaF97jr+yyYhnuQvuO6lru15Pg6FqjzhsNiLtaqtyoaMiHZ9veZs04qZZ9Fn3U7HeJzjZSAssdLnvopXi363cXm9JqoClyV2OemnVoRwOZN2gdSZxGeOefKR7U+lrBAbJwViMnmT0Nd7AC8C1k34iEt8HJmpztXeOgX5CQpwUPENMCUPsookFbIh7e4aByllEQy0gBbxUz8JMIWYyw98hdASnZ4s8bQfSmiMM8Iw3YxCexKB62LYYJn1UY51NSnwCtwRep+NhaKDk2d6SLh9owxnFbjhw22RriPd5f1InJycjtpvMzWLavl/hDsjjj1kWpnCUBTM46LbERmjz+s4x7fSf2FhhguBT36elz69ivXoiXI+7p0E8f8HsSwm8sgN/AA5m1svsXsdWeZFUiWtAwLg0tI8YNHlazbvFCXfIC6Uhq9eDv04iqdZ3rn2c1rwSx336A7ySTBFdxOCJ46F7ShIhNKm2N+5Qf0K5B2L882fbwqiLsa64+X9aKvufKTsd11vyf19Zivg/Ze0FWoGC8D63Nh91k6Hu32RT+uAtJIjQIZxu9yXJM9lMaRA8ieER+ghrLHaGQqF9J3WmueER3UzU1midvTynOV6g==', | 100 | data: 'jzjPgxRHApIJA/6hiY4XCtb5+eKzHlOeoiGwfVDvip95zU7ThHbdmxOUomeyCOZ3S1SGPT4lHvqZgfVG5m5RvH3JaAIa8EY1ZElRohoX3rETVPJzI/Ov5Rp3lZjtWlu5meNrcJz811HBHrtBuJxAmSjYcY3CCal+oC2zcK2fLZR/iOQ+69ONVFhdV9KiOqzNf8IisIa1sIgFopqsdHXiZ9oLe0a7Y56q+OplyU3A+TmxKLI+Qq+WkjvdMzZDDqzYH47me5niugYPdkQwN6WQUE0sK9QPs0uU4TOwqCwN9nPH/DoQ6oXWAu2+R4iCyt6ZjLNkClbps4s8Cwz6wfFQ+4T8bcldjveJenmrYwiUzxSd/4xa34yFVXVw2OD0n8yZhtvNFvfoPy+X9z+Y4f5HlM0qzL9zYya4KwWjFQzhOxFjni9JyGM2PJ1BctB+q1J+CHuhlVjUF0Y5zIS3zFTET8jjDGBZDWB+Ao9E8fUD+0OJJUdKJ4kUfn4ZUZUG20eLBjmJqWBGYZX7UFaPv8ksahoK26Ol6FnBE4KpPStQeDgXZDzGsiLlEsxHJLUFkNtAUXozw38bWWQvi2VIFtkw/ZViPIenmSNT14kUVWdrlKQC8x0+wECeh5ffv0i8UUw3v8QC2ZE7GV0OMl4ySlRCuDCfZ53YFoB3HIR1hSZMhHlHJDPUz8JOuXdHcUQaJeNrfWoC2KkKb0ZecBj9iXooDh9yGi0g7TS7eyhlz1LHpzEWB0CPsZqhNGMxmfFWur7v2hrYzoHQOeB19ZSmWzfUwd4dRpqMp0x1lZaF97jr+yyYhnuQvuO6lru15Pg6FqjzhsNiLtaqtyoaMiHZ9veZs04qZZ9Fn3U7HeJzjZSAssdLnvopXi363cXm9JqoClyV2OemnVoRwOZN2gdSZxGeOefKR7U+lrBAbJwViMnmT0Nd7AC8C1k34iEt8HJmpztXeOgX5CQpwUPENMCUPsookFbIh7e4aByllEQy0gBbxUz8JMIWYyw98hdASnZ4s8bQfSmiMM8Iw3YxCexKB62LYYJn1UY51NSnwCtwRep+NhaKDk2d6SLh9owxnFbjhw22RriPd5f1InJycjtpvMzWLavl/hDsjjj1kWpnCUBTM46LbERmjz+s4x7fSf2FhhguBT36elz69ivXoiXI+7p0E8f8HsSwm8sgN/AA5m1svsXsdWeZFUiWtAwLg0tI8YNHlazbvFCXfIC6Uhq9eDv04iqdZ3rn2c1rwSx336A7ySTBFdxOCJ46F7ShIhNKm2N+5Qf0K5B2L882fbwqiLsa64+X9aKvufKTsd11vyf19Zivg/Ze0FWoGC8D63Nh91k6Hu32RT+uAtJIjQIZxu9yXJM9lMaRA8ieER+ghrLHaGQqF9J3WmueER3UzU1midvTynOV6g==', |
104 | version: '0.2', | 101 | version: '0.2', |
105 | creationDate: 'Wed Mar 14 15:46:44 CET 2007', | 102 | creationDate: 'Wed Mar 14 15:46:44 CET 2007', |
106 | updateDate: 'Wed Mar 14 15:46:44 CET 2007', | 103 | updateDate: 'Wed Mar 14 15:46:44 CET 2007', |
107 | accessDate: 'Mon Jan 19 16:10:04 CET 2009' | 104 | accessDate: 'Mon Jan 19 16:10:04 CET 2009' |
108 | }, | 105 | }, |
109 | /* 08 */ '9dcd2a8a0fcb7e57d234dc4fea347f020a6a01793e40cf56a0d22379e590e291': { | 106 | /* 08 */ '9dcd2a8a0fcb7e57d234dc4fea347f020a6a01793e40cf56a0d22379e590e291': { |
110 | data: 'xXZUJjgxn62OqnzAvScHJNo4WjYEFp1vQ4ueBe1sk8dH4pXZUKV6m9c1d2cLUgBj4rUNP5cC66GiFHV7G5BDZGLrfrxUlYU6BWvzAz4eG463pRDhHXQgPrhlIGDlK6ovaIsjwaifvHaEfLREoXvLFluqu406KG58guhtWdIFK0rLypyRo8uyltGbTz8wZdu8atY/JYQnb8NaAf4=', | 107 | data: 'xXZUJjgxn62OqnzAvScHJNo4WjYEFp1vQ4ueBe1sk8dH4pXZUKV6m9c1d2cLUgBj4rUNP5cC66GiFHV7G5BDZGLrfrxUlYU6BWvzAz4eG463pRDhHXQgPrhlIGDlK6ovaIsjwaifvHaEfLREoXvLFluqu406KG58guhtWdIFK0rLypyRo8uyltGbTz8wZdu8atY/JYQnb8NaAf4=', |
111 | version: '0.2', | 108 | version: '0.2', |
112 | creationDate: 'Wed Mar 14 15:46:44 CET 2007', | 109 | creationDate: 'Wed Mar 14 15:46:44 CET 2007', |
113 | updateDate: 'Wed Mar 14 15:46:44 CET 2007', | 110 | updateDate: 'Wed Mar 14 15:46:44 CET 2007', |
114 | accessDate: 'Mon Jan 19 16:10:04 CET 2009' | 111 | accessDate: 'Mon Jan 19 16:10:04 CET 2009' |
115 | }, | 112 | }, |
116 | /* 09 */ 'ca01bcb7691f70818feed46c9a2a91883ac543997a395535aedbb49de166690c': { | 113 | /* 09 */ 'ca01bcb7691f70818feed46c9a2a91883ac543997a395535aedbb49de166690c': { |
117 | data: 'YXBq1ZlFhoosb2Krnk0Tk8+LKyecTeZ3UdJujrryEgvMnhGJvSVVtN3uph9gts10Kw+tF5wvdAtBFdMUpvcP3mOlbnX7+HCz+JsJcLLVvuGBU9ciwok5kRKQuvWffmP7qFLuqO2VJUj2ozjcpVssStZOrfDXWrJwYfkd9IMnOJVmCwjFeXpPlkOeHNyhjPlfZhWWlTga6xLdEXaVeZyjDegzhlhh9U3e1CLupLTwdxXtNCPRXp8gU7e/I9HP/qdnj5BzgDxaKx29v/AUcgOt3jq5oWwePXZL9nVOp6rh/UqduM88tyxEbnBQxcGj9KxTVsIh6ywzQZgnPtfrPaqX4Fvb1P9cGN80/F+/JXVgL3fvrcxJDGxZj6VYFTA+cHM6sV+F4/7wMLUVlCcn78BB6/k3DC4mYUv+8LSxfZf22bWCcSyubPTRhmCm2/sgdOloDUKT4AjfZivlpJjkYNDtNmZn/rUpMr3uLiHeWDDNB+eGqk3lAFhihBPXqDJ3o+8c9jrznedMxQPkgYD0V9ryDauY2RYjQIhmXqQlnGxpGOO2lFDGYtkwsBplPy6LDkudzJVAqp5trBR8Ty87k65hbhinGCra/DgPqIxjaN5pvZbXkOLoaIoLnE9RRGdAwfUTMIg/maNRoDKaHO0hJ3ksCflu71H9tzPjGM7BBjWjQgUvwDJOgnEPyZv+noOiHfNIq3u8CfI8e867gnEbdtd3oPYex1aBYIQ1ELAxI8szUtSeMDHOouXrZKwy04xVdC90KHnVWl49scE2QfgqV4hqzFjtuQgZOqQ50bI+duWDm7YYTwKVlo5QKy40faW6dPIfDPRsxY6M3gcL2OPBm+WMopUC/o/AFSpxPaut1DOr3mXBip0Ejam9xmJhMOUwIJDoE2U+8S2s+UJjRunLb680vqbddF24aWxpLL1Fg+hlRZ/Jz1ZajonH9ktQhoQaTl+w/4uHhMZjKH7/FaRqge2WMMwVjOd7VXNByBPia6W7VbmDk8LFCeCsC1DchcDaMj/JmoGXucqzDO/sOIby2YCBsV72ReqTNtu6SLZe4G61DWA7j+6NiOSmAutYox6VsoRsKaJYkyBgmq5hWDZmWOJ/cC1pQa9EMoXzcaEPicmXx5YE4xF15VWpI8cKTM/StLtLcqTs78Z0fQAicz8YhhNdVCGp/zcjJRPyL6XCDhpvMxcIOnU7', | 114 | data: 'YXBq1ZlFhoosb2Krnk0Tk8+LKyecTeZ3UdJujrryEgvMnhGJvSVVtN3uph9gts10Kw+tF5wvdAtBFdMUpvcP3mOlbnX7+HCz+JsJcLLVvuGBU9ciwok5kRKQuvWffmP7qFLuqO2VJUj2ozjcpVssStZOrfDXWrJwYfkd9IMnOJVmCwjFeXpPlkOeHNyhjPlfZhWWlTga6xLdEXaVeZyjDegzhlhh9U3e1CLupLTwdxXtNCPRXp8gU7e/I9HP/qdnj5BzgDxaKx29v/AUcgOt3jq5oWwePXZL9nVOp6rh/UqduM88tyxEbnBQxcGj9KxTVsIh6ywzQZgnPtfrPaqX4Fvb1P9cGN80/F+/JXVgL3fvrcxJDGxZj6VYFTA+cHM6sV+F4/7wMLUVlCcn78BB6/k3DC4mYUv+8LSxfZf22bWCcSyubPTRhmCm2/sgdOloDUKT4AjfZivlpJjkYNDtNmZn/rUpMr3uLiHeWDDNB+eGqk3lAFhihBPXqDJ3o+8c9jrznedMxQPkgYD0V9ryDauY2RYjQIhmXqQlnGxpGOO2lFDGYtkwsBplPy6LDkudzJVAqp5trBR8Ty87k65hbhinGCra/DgPqIxjaN5pvZbXkOLoaIoLnE9RRGdAwfUTMIg/maNRoDKaHO0hJ3ksCflu71H9tzPjGM7BBjWjQgUvwDJOgnEPyZv+noOiHfNIq3u8CfI8e867gnEbdtd3oPYex1aBYIQ1ELAxI8szUtSeMDHOouXrZKwy04xVdC90KHnVWl49scE2QfgqV4hqzFjtuQgZOqQ50bI+duWDm7YYTwKVlo5QKy40faW6dPIfDPRsxY6M3gcL2OPBm+WMopUC/o/AFSpxPaut1DOr3mXBip0Ejam9xmJhMOUwIJDoE2U+8S2s+UJjRunLb680vqbddF24aWxpLL1Fg+hlRZ/Jz1ZajonH9ktQhoQaTl+w/4uHhMZjKH7/FaRqge2WMMwVjOd7VXNByBPia6W7VbmDk8LFCeCsC1DchcDaMj/JmoGXucqzDO/sOIby2YCBsV72ReqTNtu6SLZe4G61DWA7j+6NiOSmAutYox6VsoRsKaJYkyBgmq5hWDZmWOJ/cC1pQa9EMoXzcaEPicmXx5YE4xF15VWpI8cKTM/StLtLcqTs78Z0fQAicz8YhhNdVCGp/zcjJRPyL6XCDhpvMxcIOnU7', |
118 | version: '0.2', | 115 | version: '0.2', |
119 | creationDate: 'Wed Mar 14 15:46:44 CET 2007', | 116 | creationDate: 'Wed Mar 14 15:46:44 CET 2007', |
120 | updateDate: 'Wed Mar 14 15:46:44 CET 2007', | 117 | updateDate: 'Wed Mar 14 15:46:44 CET 2007', |
diff --git a/frontend/gamma/tests/tests/Clipperz/PM/DataModel/User.html b/frontend/gamma/tests/tests/Clipperz/PM/DataModel/User.html index f77bcb6..a651830 100644 --- a/frontend/gamma/tests/tests/Clipperz/PM/DataModel/User.html +++ b/frontend/gamma/tests/tests/Clipperz/PM/DataModel/User.html | |||
@@ -1,106 +1,103 @@ | |||
1 | <!-- | 1 | <!-- |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | --> | 24 | --> |
28 | 25 | ||
29 | <html> | 26 | <html> |
30 | <head> | 27 | <head> |
31 | <title>Clipperz.PM.DataModel.User - test</title> | 28 | <title>Clipperz.PM.DataModel.User - test</title> |
32 | 29 | ||
33 | <script type="text/javascript" src="../../../../../js/MochiKit/MochiKit.js"></script> | 30 | <script type="text/javascript" src="../../../../../js/MochiKit/MochiKit.js"></script> |
34 | <script type="text/javascript" src="../../../../SimpleTest/SimpleTest.js"></script> | 31 | <script type="text/javascript" src="../../../../SimpleTest/SimpleTest.js"></script> |
35 | <link rel="stylesheet" type="text/css" href="../../../../SimpleTest/test.css"> | 32 | <link rel="stylesheet" type="text/css" href="../../../../SimpleTest/test.css"> |
36 | 33 | ||
37 | <script type='text/javascript' src='../../../../../js/JSON/json2.js'></script> | 34 | <script type='text/javascript' src='../../../../../js/JSON/json2.js'></script> |
38 | 35 | ||
39 | <script type='text/javascript' src='../../../../../js/Clipperz/YUI/Utils.js'></script> | 36 | <script type='text/javascript' src='../../../../../js/Clipperz/YUI/Utils.js'></script> |
40 | <script type='text/javascript' src='../../../../../js/Clipperz/Base.js'></script> | 37 | <script type='text/javascript' src='../../../../../js/Clipperz/Base.js'></script> |
41 | <script type='text/javascript' src='../../../../../js/Clipperz/Date.js'></script> | 38 | <script type='text/javascript' src='../../../../../js/Clipperz/Date.js'></script> |
42 | <script type='text/javascript' src='../../../../../js/Clipperz/ByteArray.js'></script> | 39 | <script type='text/javascript' src='../../../../../js/Clipperz/ByteArray.js'></script> |
43 | <script type='text/javascript' src='../../../../../js/Clipperz/Logging.js'></script> | 40 | <script type='text/javascript' src='../../../../../js/Clipperz/Logging.js'></script> |
44 | <script type='text/javascript' src='../../../../../js/Clipperz/Async.js'></script> | 41 | <script type='text/javascript' src='../../../../../js/Clipperz/Async.js'></script> |
45 | <script type='text/javascript' src='../../../../../js/Clipperz/Signal.js'></script> | 42 | <script type='text/javascript' src='../../../../../js/Clipperz/Signal.js'></script> |
46 | <script type='text/javascript' src='../../../../../js/Clipperz/KeyValueObjectStore.js'></script> | 43 | <script type='text/javascript' src='../../../../../js/Clipperz/KeyValueObjectStore.js'></script> |
47 | 44 | ||
48 | <script type='text/javascript' src='../../../../../js/Clipperz/Crypto/Base.js'></script> | 45 | <script type='text/javascript' src='../../../../../js/Clipperz/Crypto/Base.js'></script> |
49 | <script type='text/javascript' src='../../../../../js/Clipperz/Crypto/BigInt.js'></script> | 46 | <script type='text/javascript' src='../../../../../js/Clipperz/Crypto/BigInt.js'></script> |
50 | <script type='text/javascript' src='../../../../../js/Clipperz/Crypto/AES.js'></script> | 47 | <script type='text/javascript' src='../../../../../js/Clipperz/Crypto/AES.js'></script> |
51 | <script type='text/javascript' src='../../../../../js/Clipperz/Crypto/SHA.js'></script> | 48 | <script type='text/javascript' src='../../../../../js/Clipperz/Crypto/SHA.js'></script> |
52 | <script type='text/javascript' src='../../../../../js/Clipperz/Crypto/PRNG.js'></script> | 49 | <script type='text/javascript' src='../../../../../js/Clipperz/Crypto/PRNG.js'></script> |
53 | <script type='text/javascript' src='../../../../../js/Clipperz/Crypto/SRP.js'></script> | 50 | <script type='text/javascript' src='../../../../../js/Clipperz/Crypto/SRP.js'></script> |
54 | 51 | ||
55 | <script type='text/javascript' src='../../../../../js/Clipperz/PM/Toll.js'></script> | 52 | <script type='text/javascript' src='../../../../../js/Clipperz/PM/Toll.js'></script> |
56 | <script type='text/javascript' src='../../../../../js/Clipperz/PM/Proxy.js'></script> | 53 | <script type='text/javascript' src='../../../../../js/Clipperz/PM/Proxy.js'></script> |
57 | <script type='text/javascript' src='../../../../../js/Clipperz/PM/Proxy/Proxy.Offline.js'></script> | 54 | <script type='text/javascript' src='../../../../../js/Clipperz/PM/Proxy/Proxy.Offline.js'></script> |
58 | <script type='text/javascript' src='../../../../../js/Clipperz/PM/Proxy/Proxy.Test.js'></script> | 55 | <script type='text/javascript' src='../../../../../js/Clipperz/PM/Proxy/Proxy.Test.js'></script> |
59 | <script type='text/javascript' src='../../../../../js/Clipperz/PM/Proxy/Proxy.Offline.DataStore.js'></script> | 56 | <script type='text/javascript' src='../../../../../js/Clipperz/PM/Proxy/Proxy.Offline.DataStore.js'></script> |
60 | 57 | ||
61 | <script type='text/javascript' src='../../../../../js/Clipperz/PM/Connection.js'></script> | 58 | <script type='text/javascript' src='../../../../../js/Clipperz/PM/Connection.js'></script> |
62 | <script type='text/javascript' src='../../../../../js/Clipperz/PM/Crypto.js'></script> | 59 | <script type='text/javascript' src='../../../../../js/Clipperz/PM/Crypto.js'></script> |
63 | 60 | ||
64 | <script type='text/javascript' src='../../../../../js/Clipperz/PM/UI/Common/Controllers/DirectLoginRunner.js'></script> | 61 | <script type='text/javascript' src='../../../../../js/Clipperz/PM/UI/Common/Controllers/DirectLoginRunner.js'></script> |
65 | 62 | ||
66 | <script type='text/javascript' src='../../../../../js/Clipperz/PM/Strings.js'></script> | 63 | <script type='text/javascript' src='../../../../../js/Clipperz/PM/Strings.js'></script> |
67 | <script type='text/javascript' src='../../../../../js/Clipperz/PM/Strings/Strings_en-US.js'></script> | 64 | <script type='text/javascript' src='../../../../../js/Clipperz/PM/Strings/Strings_en-US.js'></script> |
68 | <script type='text/javascript' src='../../../../../js/Clipperz/PM/Date.js'></script> | 65 | <script type='text/javascript' src='../../../../../js/Clipperz/PM/Date.js'></script> |
69 | <script type='text/javascript' src='../../../../../js/Clipperz/PM/DataModel/EncryptedRemoteObject.js'></script> | 66 | <script type='text/javascript' src='../../../../../js/Clipperz/PM/DataModel/EncryptedRemoteObject.js'></script> |
70 | <script type='text/javascript' src='../../../../../js/Clipperz/PM/DataModel/Record.js'></script> | 67 | <script type='text/javascript' src='../../../../../js/Clipperz/PM/DataModel/Record.js'></script> |
71 | <script type='text/javascript' src='../../../../../js/Clipperz/PM/DataModel/Record.Version.js'></script> | 68 | <script type='text/javascript' src='../../../../../js/Clipperz/PM/DataModel/Record.Version.js'></script> |
72 | <script type='text/javascript' src='../../../../../js/Clipperz/PM/DataModel/Record.Version.Field.js'></script> | 69 | <script type='text/javascript' src='../../../../../js/Clipperz/PM/DataModel/Record.Version.Field.js'></script> |
73 | <script type='text/javascript' src='../../../../../js/Clipperz/PM/DataModel/DirectLogin.js'></script> | 70 | <script type='text/javascript' src='../../../../../js/Clipperz/PM/DataModel/DirectLogin.js'></script> |
74 | <script type='text/javascript' src='../../../../../js/Clipperz/PM/DataModel/DirectLoginInput.js'></script> | 71 | <script type='text/javascript' src='../../../../../js/Clipperz/PM/DataModel/DirectLoginInput.js'></script> |
75 | <script type='text/javascript' src='../../../../../js/Clipperz/PM/DataModel/DirectLoginBinding.js'></script> | 72 | <script type='text/javascript' src='../../../../../js/Clipperz/PM/DataModel/DirectLoginBinding.js'></script> |
76 | <script type='text/javascript' src='../../../../../js/Clipperz/PM/DataModel/DirectLoginFormValue.js'></script> | 73 | <script type='text/javascript' src='../../../../../js/Clipperz/PM/DataModel/DirectLoginFormValue.js'></script> |
77 | <script type='text/javascript' src='../../../../../js/Clipperz/PM/DataModel/User.js'></script> | 74 | <script type='text/javascript' src='../../../../../js/Clipperz/PM/DataModel/User.js'></script> |
78 | <script type='text/javascript' src='../../../../../js/Clipperz/PM/DataModel/User.Header.Legacy.js'></script> | 75 | <script type='text/javascript' src='../../../../../js/Clipperz/PM/DataModel/User.Header.Legacy.js'></script> |
79 | <script type='text/javascript' src='../../../../../js/Clipperz/PM/DataModel/User.Header.RecordIndex.js'></script> | 76 | <script type='text/javascript' src='../../../../../js/Clipperz/PM/DataModel/User.Header.RecordIndex.js'></script> |
80 | <script type='text/javascript' src='../../../../../js/Clipperz/PM/DataModel/User.Header.Preferences.js'></script> | 77 | <script type='text/javascript' src='../../../../../js/Clipperz/PM/DataModel/User.Header.Preferences.js'></script> |
81 | <script type='text/javascript' src='../../../../../js/Clipperz/PM/DataModel/User.Header.OneTimePasswords.js'></script> | 78 | <script type='text/javascript' src='../../../../../js/Clipperz/PM/DataModel/User.Header.OneTimePasswords.js'></script> |
82 | <script type='text/javascript' src='../../../../../js/Clipperz/PM/DataModel/OneTimePassword.js'></script> | 79 | <script type='text/javascript' src='../../../../../js/Clipperz/PM/DataModel/OneTimePassword.js'></script> |
83 | 80 | ||
84 | <script type="text/javascript" src="../../../../SimpleTest/SimpleTest.Async.js"></script> | 81 | <script type="text/javascript" src="../../../../SimpleTest/SimpleTest.Async.js"></script> |
85 | <script> | 82 | <script> |
86 | Clipperz_IEisBroken = false; | 83 | Clipperz_IEisBroken = false; |
87 | </script> | 84 | </script> |
88 | 85 | ||
89 | <!--[if IE]><script> | 86 | <!--[if IE]><script> |
90 | Clipperz_IEisBroken = true; | 87 | Clipperz_IEisBroken = true; |
91 | Clipperz_normalizedNewLine = '\x0d\x0a'; | 88 | Clipperz_normalizedNewLine = '\x0d\x0a'; |
92 | </script><![endif]--> | 89 | </script><![endif]--> |
93 | 90 | ||
94 | </head> | 91 | </head> |
95 | <body> | 92 | <body> |
96 | 93 | ||
97 | <pre id="test"> | 94 | <pre id="test"> |
98 | <script> | 95 | <script> |
99 | Clipperz.PM.Strings.Languages.setSelectedLanguage('en-us'); | 96 | Clipperz.PM.Strings.Languages.setSelectedLanguage('en-us'); |
100 | </script> | 97 | </script> |
101 | <script type="text/javascript" src="User.data.js"></script> | 98 | <script type="text/javascript" src="User.data.js"></script> |
102 | <script type="text/javascript" src="User.data.old.js"></script> | 99 | <script type="text/javascript" src="User.data.old.js"></script> |
103 | <script type="text/javascript" src="User.test.js"></script> | 100 | <script type="text/javascript" src="User.test.js"></script> |
104 | </pre> | 101 | </pre> |
105 | </body> | 102 | </body> |
106 | </html> | 103 | </html> |
diff --git a/frontend/gamma/tests/tests/Clipperz/PM/DataModel/User.test.js b/frontend/gamma/tests/tests/Clipperz/PM/DataModel/User.test.js index 4e7a21f..c9ca3d6 100644 --- a/frontend/gamma/tests/tests/Clipperz/PM/DataModel/User.test.js +++ b/frontend/gamma/tests/tests/Clipperz/PM/DataModel/User.test.js | |||
@@ -1,120 +1,117 @@ | |||
1 | /* | 1 | /* |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | */ | 24 | */ |
28 | 25 | ||
29 | Clipperz.Crypto.PRNG.defaultRandomGenerator().fastEntropyAccumulationForTestingPurpose(); | 26 | Clipperz.Crypto.PRNG.defaultRandomGenerator().fastEntropyAccumulationForTestingPurpose(); |
30 | 27 | ||
31 | var tests = { | 28 | var tests = { |
32 | 29 | ||
33 | //------------------------------------------------------------------------- | 30 | //------------------------------------------------------------------------- |
34 | 31 | ||
35 | 'invertIndex_test': function (someTestArgs) { | 32 | 'invertIndex_test': function (someTestArgs) { |
36 | var testIndex; | 33 | var testIndex; |
37 | var invertedIndex; | 34 | var invertedIndex; |
38 | 35 | ||
39 | testIndex = { | 36 | testIndex = { |
40 | 'key1': 'value1', | 37 | 'key1': 'value1', |
41 | 'key2': 'value2', | 38 | 'key2': 'value2', |
42 | 'key3': 'value3', | 39 | 'key3': 'value3', |
43 | 'key4': 'value4', | 40 | 'key4': 'value4', |
44 | 'key5': 'value5' | 41 | 'key5': 'value5' |
45 | }; | 42 | }; |
46 | 43 | ||
47 | invertedIndex = Clipperz.PM.DataModel.User.Header.RecordIndex.invertIndex(testIndex); | 44 | invertedIndex = Clipperz.PM.DataModel.User.Header.RecordIndex.invertIndex(testIndex); |
48 | 45 | ||
49 | SimpleTest.is(MochiKit.Base.keys(invertedIndex).length, MochiKit.Base.keys(testIndex).length, "the inverted index has the same number of elements as the original index"); | 46 | SimpleTest.is(MochiKit.Base.keys(invertedIndex).length, MochiKit.Base.keys(testIndex).length, "the inverted index has the same number of elements as the original index"); |
50 | SimpleTest.is(invertedIndex['value1'], 'key1', "the first element has been correctly inverted"); | 47 | SimpleTest.is(invertedIndex['value1'], 'key1', "the first element has been correctly inverted"); |
51 | SimpleTest.is(invertedIndex['value2'], 'key2', "the second element has been correctly inverted"); | 48 | SimpleTest.is(invertedIndex['value2'], 'key2', "the second element has been correctly inverted"); |
52 | SimpleTest.is(invertedIndex['value3'], 'key3', "the third element has been correctly inverted"); | 49 | SimpleTest.is(invertedIndex['value3'], 'key3', "the third element has been correctly inverted"); |
53 | SimpleTest.is(invertedIndex['value4'], 'key4', "the forth element has been correctly inverted"); | 50 | SimpleTest.is(invertedIndex['value4'], 'key4', "the forth element has been correctly inverted"); |
54 | SimpleTest.is(invertedIndex['value5'], 'key5', "the fifth element has been correctly inverted"); | 51 | SimpleTest.is(invertedIndex['value5'], 'key5', "the fifth element has been correctly inverted"); |
55 | return MochiKit.Async.succeed('done'); | 52 | return MochiKit.Async.succeed('done'); |
56 | }, | 53 | }, |
57 | 54 | ||
58 | //------------------------------------------------------------------------- | 55 | //------------------------------------------------------------------------- |
59 | 56 | ||
60 | 'joe_clipperz_offline_copy_test': function(someTestArgs) { | 57 | 'joe_clipperz_offline_copy_test': function(someTestArgs) { |
61 | var deferredResult; | 58 | var deferredResult; |
62 | var proxy; | 59 | var proxy; |
63 | var user; | 60 | var user; |
64 | 61 | ||
65 | proxy = new Clipperz.PM.Proxy.Test({shouldPayTolls:true, isDefault:true}); | 62 | proxy = new Clipperz.PM.Proxy.Test({shouldPayTolls:true, isDefault:true}); |
66 | user = new Clipperz.PM.DataModel.User({username:'joe', getPassphraseFunction:function () { return 'clipperz';}}); | 63 | user = new Clipperz.PM.DataModel.User({username:'joe', getPassphraseFunction:function () { return 'clipperz';}}); |
67 | 64 | ||
68 | deferredResult = new Clipperz.Async.Deferred("joe_clipperz_offline_copy_test", someTestArgs); | 65 | deferredResult = new Clipperz.Async.Deferred("joe_clipperz_offline_copy_test", someTestArgs); |
69 | deferredResult.addMethod(proxy.dataStore(), 'setupWithEncryptedData', testData['joe_clipperz_offline_copy_data']); | 66 | deferredResult.addMethod(proxy.dataStore(), 'setupWithEncryptedData', testData['joe_clipperz_offline_copy_data']); |
70 | deferredResult.addMethod(user, 'login'); | 67 | deferredResult.addMethod(user, 'login'); |
71 | deferredResult.addMethod(user, 'getRecords'); | 68 | deferredResult.addMethod(user, 'getRecords'); |
72 | deferredResult.addCallback(function (someRecords) { | 69 | deferredResult.addCallback(function (someRecords) { |
73 | is(someRecords.length, 20,"joe_clipperz_offline_copy_test - joe has 20 records"); | 70 | is(someRecords.length, 20,"joe_clipperz_offline_copy_test - joe has 20 records"); |
74 | }); | 71 | }); |
75 | 72 | ||
76 | deferredResult.addMethod(user, 'getRecords'); | 73 | deferredResult.addMethod(user, 'getRecords'); |
77 | deferredResult.addCallback(MochiKit.Base.map, MochiKit.Base.methodcaller('label')); | 74 | deferredResult.addCallback(MochiKit.Base.map, MochiKit.Base.methodcaller('label')); |
78 | deferredResult.addCallback(Clipperz.Async.collectAll); | 75 | deferredResult.addCallback(Clipperz.Async.collectAll); |
79 | deferredResult.addCallback(MochiKit.Base.methodcaller('sort')); | 76 | deferredResult.addCallback(MochiKit.Base.methodcaller('sort')); |
80 | deferredResult.addCallback(function (someSortedLabels) { | 77 | deferredResult.addCallback(function (someSortedLabels) { |
81 | SimpleTest.is(someSortedLabels.length, 20, "We got all the labels"); | 78 | SimpleTest.is(someSortedLabels.length, 20, "We got all the labels"); |
82 | SimpleTest.is(someSortedLabels[0], "Amazon.com", "The first label is correct"); | 79 | SimpleTest.is(someSortedLabels[0], "Amazon.com", "The first label is correct"); |
83 | SimpleTest.is(someSortedLabels[1], "American Airlines", "The second label is correct"); | 80 | SimpleTest.is(someSortedLabels[1], "American Airlines", "The second label is correct"); |
84 | SimpleTest.is(someSortedLabels[2], "Bloglines", "The third label is correct"); | 81 | SimpleTest.is(someSortedLabels[2], "Bloglines", "The third label is correct"); |
85 | SimpleTest.is(someSortedLabels[3], "Digg", "The fourth label is correct"); | 82 | SimpleTest.is(someSortedLabels[3], "Digg", "The fourth label is correct"); |
86 | SimpleTest.is(someSortedLabels[4], "Example Attack", "The fifth label is correct"); | 83 | SimpleTest.is(someSortedLabels[4], "Example Attack", "The fifth label is correct"); |
87 | SimpleTest.is(someSortedLabels[5], "Expedia.com", "The sixth label is correct"); | 84 | SimpleTest.is(someSortedLabels[5], "Expedia.com", "The sixth label is correct"); |
88 | SimpleTest.is(someSortedLabels[6], "Google Account", "The seventh label is correct"); | 85 | SimpleTest.is(someSortedLabels[6], "Google Account", "The seventh label is correct"); |
89 | SimpleTest.is(someSortedLabels[7], "Home burglar alarm", "The eighth label is correct"); | 86 | SimpleTest.is(someSortedLabels[7], "Home burglar alarm", "The eighth label is correct"); |
90 | SimpleTest.is(someSortedLabels[8], "Jaiku", "The ninth label is correct"); | 87 | SimpleTest.is(someSortedLabels[8], "Jaiku", "The ninth label is correct"); |
91 | SimpleTest.is(someSortedLabels[9], "LinkedIn", "The 10th label is correct"); | 88 | SimpleTest.is(someSortedLabels[9], "LinkedIn", "The 10th label is correct"); |
92 | SimpleTest.is(someSortedLabels[10], "Lufthansa", "The 11th label is correct"); | 89 | SimpleTest.is(someSortedLabels[10], "Lufthansa", "The 11th label is correct"); |
93 | SimpleTest.is(someSortedLabels[11], "Microsoft Office CD Key","The 12th label is correct"); | 90 | SimpleTest.is(someSortedLabels[11], "Microsoft Office CD Key","The 12th label is correct"); |
94 | SimpleTest.is(someSortedLabels[12], "MyBlogLog", "The 13th label is correct"); | 91 | SimpleTest.is(someSortedLabels[12], "MyBlogLog", "The 13th label is correct"); |
95 | SimpleTest.is(someSortedLabels[13], "MySpace", "The 14th label is correct"); | 92 | SimpleTest.is(someSortedLabels[13], "MySpace", "The 14th label is correct"); |
96 | SimpleTest.is(someSortedLabels[14], "SAP - Login", "The 15th label is correct"); | 93 | SimpleTest.is(someSortedLabels[14], "SAP - Login", "The 15th label is correct"); |
97 | SimpleTest.is(someSortedLabels[15], "The New York Times", "The 16th label is correct"); | 94 | SimpleTest.is(someSortedLabels[15], "The New York Times", "The 16th label is correct"); |
98 | SimpleTest.is(someSortedLabels[16], "Web password", "The 17th label is correct"); | 95 | SimpleTest.is(someSortedLabels[16], "Web password", "The 17th label is correct"); |
99 | SimpleTest.is(someSortedLabels[17], "Web password", "The 18th label is correct"); | 96 | SimpleTest.is(someSortedLabels[17], "Web password", "The 18th label is correct"); |
100 | SimpleTest.is(someSortedLabels[18], "Yahoo! Account", "The 19th label is correct"); | 97 | SimpleTest.is(someSortedLabels[18], "Yahoo! Account", "The 19th label is correct"); |
101 | SimpleTest.is(someSortedLabels[19], "del.icio.us", "The 20th label is correct"); | 98 | SimpleTest.is(someSortedLabels[19], "del.icio.us", "The 20th label is correct"); |
102 | }); | 99 | }); |
103 | deferredResult.callback(); | 100 | deferredResult.callback(); |
104 | 101 | ||
105 | return deferredResult; | 102 | return deferredResult; |
106 | }, | 103 | }, |
107 | 104 | ||
108 | //------------------------------------------------------------------------- | 105 | //------------------------------------------------------------------------- |
109 | 106 | ||
110 | 'joe_clipperz_offline_copy_getDirectLogins_test': function(someTestArgs) { | 107 | 'joe_clipperz_offline_copy_getDirectLogins_test': function(someTestArgs) { |
111 | var deferredResult; | 108 | var deferredResult; |
112 | var proxy; | 109 | var proxy; |
113 | var user; | 110 | var user; |
114 | 111 | ||
115 | proxy = new Clipperz.PM.Proxy.Test({shouldPayTolls:true, isDefault:true}); | 112 | proxy = new Clipperz.PM.Proxy.Test({shouldPayTolls:true, isDefault:true}); |
116 | user = new Clipperz.PM.DataModel.User({username:'joe', getPassphraseFunction:function () { return 'clipperz';}}); | 113 | user = new Clipperz.PM.DataModel.User({username:'joe', getPassphraseFunction:function () { return 'clipperz';}}); |
117 | 114 | ||
118 | deferredResult = new Clipperz.Async.Deferred("joe_clipperz_offline_copy_getDirectLogins_test", someTestArgs); | 115 | deferredResult = new Clipperz.Async.Deferred("joe_clipperz_offline_copy_getDirectLogins_test", someTestArgs); |
119 | deferredResult.addMethod(proxy.dataStore(), 'setupWithEncryptedData', testData['joe_clipperz_offline_copy_data']); | 116 | deferredResult.addMethod(proxy.dataStore(), 'setupWithEncryptedData', testData['joe_clipperz_offline_copy_data']); |
120 | deferredResult.addMethod(user, 'login'); | 117 | deferredResult.addMethod(user, 'login'); |
diff --git a/frontend/gamma/tests/tests/Clipperz/PM/DataModel/index.html b/frontend/gamma/tests/tests/Clipperz/PM/DataModel/index.html index d762093..237c0ea 100644 --- a/frontend/gamma/tests/tests/Clipperz/PM/DataModel/index.html +++ b/frontend/gamma/tests/tests/Clipperz/PM/DataModel/index.html | |||
@@ -1,47 +1,44 @@ | |||
1 | <!-- | 1 | <!-- |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | --> | 24 | --> |
28 | 25 | ||
29 | <html> | 26 | <html> |
30 | <head> | 27 | <head> |
31 | <title>Clipperz.PM.DataModel.* - tests</title> | 28 | <title>Clipperz.PM.DataModel.* - tests</title> |
32 | 29 | ||
33 | <script type="text/javascript" src="../../../../../js/MochiKit/MochiKit.js"></script> | 30 | <script type="text/javascript" src="../../../../../js/MochiKit/MochiKit.js"></script> |
34 | <script type="text/javascript" src="../../../../SimpleTest/TestRunner.js"></script> | 31 | <script type="text/javascript" src="../../../../SimpleTest/TestRunner.js"></script> |
35 | </head> | 32 | </head> |
36 | <body> | 33 | <body> |
37 | <script> | 34 | <script> |
38 | TestRunner.runTests( | 35 | TestRunner.runTests( |
39 | 'EncryptedRemoteObject.html', | 36 | 'EncryptedRemoteObject.html', |
40 | 'Record.html', | 37 | 'Record.html', |
41 | 'DirectLogin.html', | 38 | 'DirectLogin.html', |
42 | 'User.html', | 39 | 'User.html', |
43 | 'OneTimePassword.html' | 40 | 'OneTimePassword.html' |
44 | ); | 41 | ); |
45 | </script> | 42 | </script> |
46 | </body> | 43 | </body> |
47 | </html> \ No newline at end of file | 44 | </html> \ No newline at end of file |
diff --git a/frontend/gamma/tests/tests/Clipperz/PM/Date.html b/frontend/gamma/tests/tests/Clipperz/PM/Date.html index 106774b..a606ca4 100644 --- a/frontend/gamma/tests/tests/Clipperz/PM/Date.html +++ b/frontend/gamma/tests/tests/Clipperz/PM/Date.html | |||
@@ -1,59 +1,56 @@ | |||
1 | <!-- | 1 | <!-- |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | --> | 24 | --> |
28 | 25 | ||
29 | <html> | 26 | <html> |
30 | <head> | 27 | <head> |
31 | <title>Clipperz.PM.Date - test</title> | 28 | <title>Clipperz.PM.Date - test</title> |
32 | 29 | ||
33 | <script type="text/javascript" src="../../../../js/MochiKit/MochiKit.js"></script> | 30 | <script type="text/javascript" src="../../../../js/MochiKit/MochiKit.js"></script> |
34 | <!-- script type="text/javascript" src="../../../../js/JSLog/jslog.js"></script --> | 31 | <!-- script type="text/javascript" src="../../../../js/JSLog/jslog.js"></script --> |
35 | <script type="text/javascript" src="../../../SimpleTest/SimpleTest.js"></script> | 32 | <script type="text/javascript" src="../../../SimpleTest/SimpleTest.js"></script> |
36 | <link rel="stylesheet" type="text/css" href="../../../SimpleTest/test.css"> | 33 | <link rel="stylesheet" type="text/css" href="../../../SimpleTest/test.css"> |
37 | 34 | ||
38 | <script type='text/javascript' src='../../../../js/JSON/json2.js'></script> | 35 | <script type='text/javascript' src='../../../../js/JSON/json2.js'></script> |
39 | 36 | ||
40 | <script type='text/javascript' src='../../../../js/Clipperz/YUI/Utils.js'></script> | 37 | <script type='text/javascript' src='../../../../js/Clipperz/YUI/Utils.js'></script> |
41 | <script type='text/javascript' src='../../../../js/Clipperz/Base.js'></script> | 38 | <script type='text/javascript' src='../../../../js/Clipperz/Base.js'></script> |
42 | <script type='text/javascript' src='../../../../js/Clipperz/ByteArray.js'></script> | 39 | <script type='text/javascript' src='../../../../js/Clipperz/ByteArray.js'></script> |
43 | <script type='text/javascript' src='../../../../js/Clipperz/Logging.js'></script> | 40 | <script type='text/javascript' src='../../../../js/Clipperz/Logging.js'></script> |
44 | <script type='text/javascript' src='../../../../js/Clipperz/Async.js'></script> | 41 | <script type='text/javascript' src='../../../../js/Clipperz/Async.js'></script> |
45 | <script type='text/javascript' src='../../../../js/Clipperz/KeyValueObjectStore.js'></script> | 42 | <script type='text/javascript' src='../../../../js/Clipperz/KeyValueObjectStore.js'></script> |
46 | 43 | ||
47 | <script type='text/javascript' src='../../../../js/Clipperz/Date.js'></script> | 44 | <script type='text/javascript' src='../../../../js/Clipperz/Date.js'></script> |
48 | <script type='text/javascript' src='../../../../js/Clipperz/PM/Strings.js'></script> | 45 | <script type='text/javascript' src='../../../../js/Clipperz/PM/Strings.js'></script> |
49 | <script type='text/javascript' src='../../../../js/Clipperz/PM/Date.js'></script> | 46 | <script type='text/javascript' src='../../../../js/Clipperz/PM/Date.js'></script> |
50 | <script type="text/javascript" src="../../../SimpleTest/SimpleTest.Async.js"></script> | 47 | <script type="text/javascript" src="../../../SimpleTest/SimpleTest.Async.js"></script> |
51 | 48 | ||
52 | </head> | 49 | </head> |
53 | <body> | 50 | <body> |
54 | <pre id="test"> | 51 | <pre id="test"> |
55 | <script type="text/javascript" src="Date.test.js"></script> | 52 | <script type="text/javascript" src="Date.test.js"></script> |
56 | </pre> | 53 | </pre> |
57 | 54 | ||
58 | </body> | 55 | </body> |
59 | </html> | 56 | </html> |
diff --git a/frontend/gamma/tests/tests/Clipperz/PM/Date.test.js b/frontend/gamma/tests/tests/Clipperz/PM/Date.test.js index df271f1..e4b4db6 100644 --- a/frontend/gamma/tests/tests/Clipperz/PM/Date.test.js +++ b/frontend/gamma/tests/tests/Clipperz/PM/Date.test.js | |||
@@ -1,90 +1,87 @@ | |||
1 | /* | 1 | /* |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | */ | 24 | */ |
28 | 25 | ||
29 | var tests = { | 26 | var tests = { |
30 | 27 | ||
31 | //------------------------------------------------------------------------- | 28 | //------------------------------------------------------------------------- |
32 | 29 | ||
33 | 'offlineDataParsing_test': function () { | 30 | 'offlineDataParsing_test': function () { |
34 | var value; | 31 | var value; |
35 | varparsedValue; | 32 | varparsedValue; |
36 | var expectedValue; | 33 | var expectedValue; |
37 | 34 | ||
38 | value = 'Tue Mar 27 06:41:37 PDT 2007'; | 35 | value = 'Tue Mar 27 06:41:37 PDT 2007'; |
39 | parsedValue = Clipperz.PM.Date.parse(value); | 36 | parsedValue = Clipperz.PM.Date.parse(value); |
40 | expectedValue = new Date(); | 37 | expectedValue = new Date(); |
41 | expectedValue.setUTCFullYear(2007, 03 - 1, 27); | 38 | expectedValue.setUTCFullYear(2007, 03 - 1, 27); |
42 | expectedValue.setUTCHours(13, 41, 37); | 39 | expectedValue.setUTCHours(13, 41, 37); |
43 | // SimpleTest.is(parsedValue.toString(), 'Tue Mar 27 2007 15:41:37 GMT+0200 (CEST)', "the data in the format stored in the offline copy is processed correctly [1]"); | 40 | // SimpleTest.is(parsedValue.toString(), 'Tue Mar 27 2007 15:41:37 GMT+0200 (CEST)', "the data in the format stored in the offline copy is processed correctly [1]"); |
44 | SimpleTest.is(parsedValue.toString(), expectedValue.toString(), "the data in the format stored in the offline copy is processed correctly [1]"); | 41 | SimpleTest.is(parsedValue.toString(), expectedValue.toString(), "the data in the format stored in the offline copy is processed correctly [1]"); |
45 | 42 | ||
46 | value = 'Thu May 10 15:01:21 PDT 2007'; | 43 | value = 'Thu May 10 15:01:21 PDT 2007'; |
47 | parsedValue = Clipperz.PM.Date.parse(value); | 44 | parsedValue = Clipperz.PM.Date.parse(value); |
48 | expectedValue = new Date(); | 45 | expectedValue = new Date(); |
49 | expectedValue.setUTCFullYear(2007, 05 - 1, 10); | 46 | expectedValue.setUTCFullYear(2007, 05 - 1, 10); |
50 | expectedValue.setUTCHours(22, 01, 21); | 47 | expectedValue.setUTCHours(22, 01, 21); |
51 | // SimpleTest.is(parsedValue.toString(), 'Fri May 11 2007 00:01:21 GMT+0200 (CEST)', "the data in the format stored in the offline copy is processed correctly [3]"); | 48 | // SimpleTest.is(parsedValue.toString(), 'Fri May 11 2007 00:01:21 GMT+0200 (CEST)', "the data in the format stored in the offline copy is processed correctly [3]"); |
52 | SimpleTest.is(parsedValue.toString(), expectedValue.toString(), "the data in the format stored in the offline copy is processed correctly [3]"); | 49 | SimpleTest.is(parsedValue.toString(), expectedValue.toString(), "the data in the format stored in the offline copy is processed correctly [3]"); |
53 | 50 | ||
54 | value = 'Thu May 10 15:01:21 PST 2007'; | 51 | value = 'Thu May 10 15:01:21 PST 2007'; |
55 | parsedValue = Clipperz.PM.Date.parse(value); | 52 | parsedValue = Clipperz.PM.Date.parse(value); |
56 | expectedValue = new Date(); | 53 | expectedValue = new Date(); |
57 | expectedValue.setUTCFullYear(2007, 05 - 1, 10); | 54 | expectedValue.setUTCFullYear(2007, 05 - 1, 10); |
58 | expectedValue.setUTCHours(23, 01, 21); | 55 | expectedValue.setUTCHours(23, 01, 21); |
59 | // SimpleTest.is(parsedValue.toString(), 'Fri May 11 2007 01:01:21 GMT+0200 (CEST)', "the data in the format stored in the offline copy is processed correctly [3]"); | 56 | // SimpleTest.is(parsedValue.toString(), 'Fri May 11 2007 01:01:21 GMT+0200 (CEST)', "the data in the format stored in the offline copy is processed correctly [3]"); |
60 | SimpleTest.is(parsedValue.toString(), expectedValue.toString(), "the data in the format stored in the offline copy is processed correctly [3]"); | 57 | SimpleTest.is(parsedValue.toString(), expectedValue.toString(), "the data in the format stored in the offline copy is processed correctly [3]"); |
61 | }, | 58 | }, |
62 | 59 | ||
63 | //------------------------------------------------------------------------- | 60 | //------------------------------------------------------------------------- |
64 | 61 | ||
65 | 'onlineDataParsing_test': function () { | 62 | 'onlineDataParsing_test': function () { |
66 | var value; | 63 | var value; |
67 | varparsedValue; | 64 | varparsedValue; |
68 | var expectedValue; | 65 | var expectedValue; |
69 | 66 | ||
70 | value = 'Tue, 27 March 2007 06:41:37 PDT'; | 67 | value = 'Tue, 27 March 2007 06:41:37 PDT'; |
71 | parsedValue = Clipperz.PM.Date.parse(value); | 68 | parsedValue = Clipperz.PM.Date.parse(value); |
72 | expectedValue = new Date(); | 69 | expectedValue = new Date(); |
73 | expectedValue.setUTCFullYear(2007, 03 - 1, 27); | 70 | expectedValue.setUTCFullYear(2007, 03 - 1, 27); |
74 | expectedValue.setUTCHours(13, 41, 37); | 71 | expectedValue.setUTCHours(13, 41, 37); |
75 | 72 | ||
76 | // SimpleTest.is(parsedValue.toString(), 'Tue Mar 27 2007 15:41:37 GMT+0200 (CEST)', "the data in the format returned by the server is processed correctly"); | 73 | // SimpleTest.is(parsedValue.toString(), 'Tue Mar 27 2007 15:41:37 GMT+0200 (CEST)', "the data in the format returned by the server is processed correctly"); |
77 | SimpleTest.is(parsedValue.toString(), expectedValue.toString(), "the data in the format returned by the server is processed correctly"); | 74 | SimpleTest.is(parsedValue.toString(), expectedValue.toString(), "the data in the format returned by the server is processed correctly"); |
78 | }, | 75 | }, |
79 | 76 | ||
80 | //------------------------------------------------------------------------- | 77 | //------------------------------------------------------------------------- |
81 | 'syntaxFix': MochiKit.Base.noop | 78 | 'syntaxFix': MochiKit.Base.noop |
82 | }; | 79 | }; |
83 | 80 | ||
84 | //############################################################################# | 81 | //############################################################################# |
85 | 82 | ||
86 | Clipperz.PM.Strings.Languages.initSetup(); | 83 | Clipperz.PM.Strings.Languages.initSetup(); |
87 | SimpleTest.runDeferredTests("Clipperz.PM.Date", tests, {trace:false}); | 84 | SimpleTest.runDeferredTests("Clipperz.PM.Date", tests, {trace:false}); |
88 | 85 | ||
89 | 86 | ||
90 | 87 | ||
diff --git a/frontend/gamma/tests/tests/Clipperz/PM/Proxy.html b/frontend/gamma/tests/tests/Clipperz/PM/Proxy.html index 573dac8..8dc533f 100644 --- a/frontend/gamma/tests/tests/Clipperz/PM/Proxy.html +++ b/frontend/gamma/tests/tests/Clipperz/PM/Proxy.html | |||
@@ -1,65 +1,62 @@ | |||
1 | <!-- | 1 | <!-- |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | --> | 24 | --> |
28 | 25 | ||
29 | <html> | 26 | <html> |
30 | <head> | 27 | <head> |
31 | <title>Clipperz.PM.Proxy - TEST</title> | 28 | <title>Clipperz.PM.Proxy - TEST</title> |
32 | 29 | ||
33 | <script type="text/javascript" src="../../../../js/MochiKit/MochiKit.js"></script> | 30 | <script type="text/javascript" src="../../../../js/MochiKit/MochiKit.js"></script> |
34 | <script type="text/javascript" src="../../../../js/JSLog/jslog.js"></script> | 31 | <script type="text/javascript" src="../../../../js/JSLog/jslog.js"></script> |
35 | <script type="text/javascript" src="../../../SimpleTest/SimpleTest.js"></script> | 32 | <script type="text/javascript" src="../../../SimpleTest/SimpleTest.js"></script> |
36 | <link rel="stylesheet" type="text/css" href="../../../SimpleTest/test.css"> | 33 | <link rel="stylesheet" type="text/css" href="../../../SimpleTest/test.css"> |
37 | 34 | ||
38 | <script type='text/javascript' src='../../../../js/Clipperz/YUI/Utils.js'></script> | 35 | <script type='text/javascript' src='../../../../js/Clipperz/YUI/Utils.js'></script> |
39 | <script type='text/javascript' src='../../../../js/Clipperz/Base.js'></script> | 36 | <script type='text/javascript' src='../../../../js/Clipperz/Base.js'></script> |
40 | <script type='text/javascript' src='../../../../js/Clipperz/ByteArray.js'></script> | 37 | <script type='text/javascript' src='../../../../js/Clipperz/ByteArray.js'></script> |
41 | <script type='text/javascript' src='../../../../js/Clipperz/Logging.js'></script> | 38 | <script type='text/javascript' src='../../../../js/Clipperz/Logging.js'></script> |
42 | <script type='text/javascript' src='../../../../js/Clipperz/Async.js'></script> | 39 | <script type='text/javascript' src='../../../../js/Clipperz/Async.js'></script> |
43 | <script type='text/javascript' src='../../../../js/Clipperz/KeyValueObjectStore.js'></script> | 40 | <script type='text/javascript' src='../../../../js/Clipperz/KeyValueObjectStore.js'></script> |
44 | 41 | ||
45 | <script type='text/javascript' src='../../../../js/Clipperz/Crypto/Base.js'></script> | 42 | <script type='text/javascript' src='../../../../js/Clipperz/Crypto/Base.js'></script> |
46 | <script type='text/javascript' src='../../../../js/Clipperz/Crypto/BigInt.js'></script> | 43 | <script type='text/javascript' src='../../../../js/Clipperz/Crypto/BigInt.js'></script> |
47 | <script type='text/javascript' src='../../../../js/Clipperz/Crypto/AES.js'></script> | 44 | <script type='text/javascript' src='../../../../js/Clipperz/Crypto/AES.js'></script> |
48 | <script type='text/javascript' src='../../../../js/Clipperz/Crypto/SHA.js'></script> | 45 | <script type='text/javascript' src='../../../../js/Clipperz/Crypto/SHA.js'></script> |
49 | <script type='text/javascript' src='../../../../js/Clipperz/Crypto/PRNG.js'></script> | 46 | <script type='text/javascript' src='../../../../js/Clipperz/Crypto/PRNG.js'></script> |
50 | <script type='text/javascript' src='../../../../js/Clipperz/Crypto/SRP.js'></script> | 47 | <script type='text/javascript' src='../../../../js/Clipperz/Crypto/SRP.js'></script> |
51 | <script type='text/javascript' src='../../../../js/Clipperz/PM/Proxy.js'></script> | 48 | <script type='text/javascript' src='../../../../js/Clipperz/PM/Proxy.js'></script> |
52 | <script type='text/javascript' src='../../../../js/Clipperz/PM/Connection.js'></script> | 49 | <script type='text/javascript' src='../../../../js/Clipperz/PM/Connection.js'></script> |
53 | <script type='text/javascript' src='../../../../js/Clipperz/PM/Crypto.js'></script> | 50 | <script type='text/javascript' src='../../../../js/Clipperz/PM/Crypto.js'></script> |
54 | <script type='text/javascript' src='../../../../js/Clipperz/PM/Toll.js'></script> | 51 | <script type='text/javascript' src='../../../../js/Clipperz/PM/Toll.js'></script> |
55 | 52 | ||
56 | <script type='text/javascript' src='../../../../js/Clipperz/PM/Proxy.js'></script> | 53 | <script type='text/javascript' src='../../../../js/Clipperz/PM/Proxy.js'></script> |
57 | <script type="text/javascript" src="../../../SimpleTest/SimpleTest.Async.js"></script> | 54 | <script type="text/javascript" src="../../../SimpleTest/SimpleTest.Async.js"></script> |
58 | 55 | ||
59 | </head> | 56 | </head> |
60 | <body> | 57 | <body> |
61 | <pre id="test"> | 58 | <pre id="test"> |
62 | <script type="text/javascript" src="Proxy.test.js"></script> | 59 | <script type="text/javascript" src="Proxy.test.js"></script> |
63 | </pre> | 60 | </pre> |
64 | </body> | 61 | </body> |
65 | </html> | 62 | </html> |
diff --git a/frontend/gamma/tests/tests/Clipperz/PM/Proxy.test.js b/frontend/gamma/tests/tests/Clipperz/PM/Proxy.test.js index 8a16a5b..8225823 100644 --- a/frontend/gamma/tests/tests/Clipperz/PM/Proxy.test.js +++ b/frontend/gamma/tests/tests/Clipperz/PM/Proxy.test.js | |||
@@ -1,117 +1,114 @@ | |||
1 | /* | 1 | /* |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | */ | 24 | */ |
28 | 25 | ||
29 | Clipperz.Crypto.PRNG.defaultRandomGenerator().fastEntropyAccumulationForTestingPurpose(); | 26 | Clipperz.Crypto.PRNG.defaultRandomGenerator().fastEntropyAccumulationForTestingPurpose(); |
30 | 27 | ||
31 | var tests = { | 28 | var tests = { |
32 | 29 | ||
33 | //------------------------------------------------------------------------- | 30 | //------------------------------------------------------------------------- |
34 | 31 | ||
35 | 'simple_tests': function() { | 32 | 'simple_tests': function() { |
36 | vardeferredResult; | 33 | vardeferredResult; |
37 | 34 | ||
38 | deferredResult = new Clipperz.Async.Deferred("simple_tests", {trace:false}); | 35 | deferredResult = new Clipperz.Async.Deferred("simple_tests", {trace:false}); |
39 | deferredResult.addCallback(function() { | 36 | deferredResult.addCallback(function() { |
40 | var proxy; | 37 | var proxy; |
41 | 38 | ||
42 | proxy = new Clipperz.PM.Proxy(); | 39 | proxy = new Clipperz.PM.Proxy(); |
43 | ok(proxy != null, "can create instances of the Proxy class"); | 40 | ok(proxy != null, "can create instances of the Proxy class"); |
44 | is(proxy.shouldPayTolls(), false, "proxy is set to NOT pay tolls by default"); | 41 | is(proxy.shouldPayTolls(), false, "proxy is set to NOT pay tolls by default"); |
45 | }); | 42 | }); |
46 | 43 | ||
47 | deferredResult.callback(); | 44 | deferredResult.callback(); |
48 | 45 | ||
49 | return deferredResult; | 46 | return deferredResult; |
50 | }, | 47 | }, |
51 | 48 | ||
52 | //------------------------------------------------------------------------- | 49 | //------------------------------------------------------------------------- |
53 | 50 | ||
54 | 'simpleTestsWithTolls_tests': function() { | 51 | 'simpleTestsWithTolls_tests': function() { |
55 | vardeferredResult; | 52 | vardeferredResult; |
56 | 53 | ||
57 | deferredResult = new Clipperz.Async.Deferred("simple_tests", {trace:false}); | 54 | deferredResult = new Clipperz.Async.Deferred("simple_tests", {trace:false}); |
58 | deferredResult.addCallback(function() { | 55 | deferredResult.addCallback(function() { |
59 | var proxy; | 56 | var proxy; |
60 | 57 | ||
61 | proxy = new Clipperz.PM.Proxy({shouldPayTolls:true}); | 58 | proxy = new Clipperz.PM.Proxy({shouldPayTolls:true}); |
62 | is(proxy.shouldPayTolls(), true, "I can set Proxy to pays tolls"); | 59 | is(proxy.shouldPayTolls(), true, "I can set Proxy to pays tolls"); |
63 | }); | 60 | }); |
64 | 61 | ||
65 | deferredResult.callback(); | 62 | deferredResult.callback(); |
66 | 63 | ||
67 | return deferredResult; | 64 | return deferredResult; |
68 | }, | 65 | }, |
69 | 66 | ||
70 | //------------------------------------------------------------------------- | 67 | //------------------------------------------------------------------------- |
71 | 'syntaxFix': MochiKit.Base.noop | 68 | 'syntaxFix': MochiKit.Base.noop |
72 | }; | 69 | }; |
73 | 70 | ||
74 | //############################################################################# | 71 | //############################################################################# |
75 | 72 | ||
76 | runTests = function(aClassName) { | 73 | runTests = function(aClassName) { |
77 | try { | 74 | try { |
78 | var deferredTests; | 75 | var deferredTests; |
79 | var aTestName; | 76 | var aTestName; |
80 | 77 | ||
81 | deferredTests = new Clipperz.Async.Deferred(aClassName + ".test", {trace:false}); | 78 | deferredTests = new Clipperz.Async.Deferred(aClassName + ".test", {trace:false}); |
82 | 79 | ||
83 | aTestName = window.location.href.match(/#.*/); | 80 | aTestName = window.location.href.match(/#.*/); |
84 | if (aTestName && (aTestName != '#')) { | 81 | if (aTestName && (aTestName != '#')) { |
85 | aTestName = aTestName[0].slice(1); | 82 | aTestName = aTestName[0].slice(1); |
86 | if (aTestName in tests) { | 83 | if (aTestName in tests) { |
87 | //Clipperz.log("single test execution, via fragment identifier", aTestName); | 84 | //Clipperz.log("single test execution, via fragment identifier", aTestName); |
88 | deferredTests.addCallback(tests[aTestName]); | 85 | deferredTests.addCallback(tests[aTestName]); |
89 | deferredTests.addErrback(SimpleTest.ok, false, aTestName); | 86 | deferredTests.addErrback(SimpleTest.ok, false, aTestName); |
90 | } else { | 87 | } else { |
91 | deferredTests.addBoth(is, aTestName, null, "Wrong test name selected to run"); | 88 | deferredTests.addBoth(is, aTestName, null, "Wrong test name selected to run"); |
92 | } | 89 | } |
93 | } else { | 90 | } else { |
94 | for (aTestName in tests) { | 91 | for (aTestName in tests) { |
95 | deferredTests.addCallback(tests[aTestName]); | 92 | deferredTests.addCallback(tests[aTestName]); |
96 | deferredTests.addErrback(SimpleTest.ok, false, aTestName); | 93 | deferredTests.addErrback(SimpleTest.ok, false, aTestName); |
97 | } | 94 | } |
98 | deferredTests.addBoth(is, true, true, "FINISH: completed the full stack of tests"); | 95 | deferredTests.addBoth(is, true, true, "FINISH: completed the full stack of tests"); |
99 | } | 96 | } |
100 | deferredTests.addBoth(SimpleTest.finish); | 97 | deferredTests.addBoth(SimpleTest.finish); |
101 | deferredTests.callback(); | 98 | deferredTests.callback(); |
102 | 99 | ||
103 | SimpleTest.waitForExplicitFinish(); | 100 | SimpleTest.waitForExplicitFinish(); |
104 | } catch (err) { | 101 | } catch (err) { |
105 | var s = "test suite failure!\n"; | 102 | var s = "test suite failure!\n"; |
106 | var o = {}; | 103 | var o = {}; |
107 | var k = null; | 104 | var k = null; |
108 | for (k in err) { | 105 | for (k in err) { |
109 | // ensure unique keys?! | 106 | // ensure unique keys?! |
110 | if (!o[k]) { | 107 | if (!o[k]) { |
111 | s += k + ": " + err[k] + "\n"; | 108 | s += k + ": " + err[k] + "\n"; |
112 | o[k] = err[k]; | 109 | o[k] = err[k]; |
113 | } | 110 | } |
114 | } | 111 | } |
115 | ok ( false, s ); | 112 | ok ( false, s ); |
116 | } | 113 | } |
117 | }("Clipperz.PM.Proxy"); | 114 | }("Clipperz.PM.Proxy"); |
diff --git a/frontend/gamma/tests/tests/Clipperz/PM/Toll.html b/frontend/gamma/tests/tests/Clipperz/PM/Toll.html index 7937380..9baf167 100644 --- a/frontend/gamma/tests/tests/Clipperz/PM/Toll.html +++ b/frontend/gamma/tests/tests/Clipperz/PM/Toll.html | |||
@@ -1,62 +1,59 @@ | |||
1 | <!-- | 1 | <!-- |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | --> | 24 | --> |
28 | 25 | ||
29 | <html> | 26 | <html> |
30 | <head> | 27 | <head> |
31 | <title>Clipperz.PM.Toll - test</title> | 28 | <title>Clipperz.PM.Toll - test</title> |
32 | 29 | ||
33 | <script type="text/javascript" src="../../../../js/MochiKit/MochiKit.js"></script> | 30 | <script type="text/javascript" src="../../../../js/MochiKit/MochiKit.js"></script> |
34 | <script type="text/javascript" src="../../../../js/JSLog/jslog.js"></script> | 31 | <script type="text/javascript" src="../../../../js/JSLog/jslog.js"></script> |
35 | <script type="text/javascript" src="../../../SimpleTest/SimpleTest.js"></script> | 32 | <script type="text/javascript" src="../../../SimpleTest/SimpleTest.js"></script> |
36 | <link rel="stylesheet" type="text/css" href="../../../SimpleTest/test.css"> | 33 | <link rel="stylesheet" type="text/css" href="../../../SimpleTest/test.css"> |
37 | 34 | ||
38 | <script type='text/javascript' src='../../../../js/Clipperz/YUI/Utils.js'></script> | 35 | <script type='text/javascript' src='../../../../js/Clipperz/YUI/Utils.js'></script> |
39 | <script type='text/javascript' src='../../../../js/Clipperz/Base.js'></script> | 36 | <script type='text/javascript' src='../../../../js/Clipperz/Base.js'></script> |
40 | <script type='text/javascript' src='../../../../js/Clipperz/ByteArray.js'></script> | 37 | <script type='text/javascript' src='../../../../js/Clipperz/ByteArray.js'></script> |
41 | <script type='text/javascript' src='../../../../js/Clipperz/Logging.js'></script> | 38 | <script type='text/javascript' src='../../../../js/Clipperz/Logging.js'></script> |
42 | <script type='text/javascript' src='../../../../js/Clipperz/Async.js'></script> | 39 | <script type='text/javascript' src='../../../../js/Clipperz/Async.js'></script> |
43 | <script type='text/javascript' src='../../../../js/Clipperz/KeyValueObjectStore.js'></script> | 40 | <script type='text/javascript' src='../../../../js/Clipperz/KeyValueObjectStore.js'></script> |
44 | 41 | ||
45 | <script type='text/javascript' src='../../../../js/Clipperz/Crypto/Base.js'></script> | 42 | <script type='text/javascript' src='../../../../js/Clipperz/Crypto/Base.js'></script> |
46 | <script type='text/javascript' src='../../../../js/Clipperz/Crypto/BigInt.js'></script> | 43 | <script type='text/javascript' src='../../../../js/Clipperz/Crypto/BigInt.js'></script> |
47 | <script type='text/javascript' src='../../../../js/Clipperz/Crypto/AES.js'></script> | 44 | <script type='text/javascript' src='../../../../js/Clipperz/Crypto/AES.js'></script> |
48 | <script type='text/javascript' src='../../../../js/Clipperz/Crypto/SHA.js'></script> | 45 | <script type='text/javascript' src='../../../../js/Clipperz/Crypto/SHA.js'></script> |
49 | <script type='text/javascript' src='../../../../js/Clipperz/Crypto/PRNG.js'></script> | 46 | <script type='text/javascript' src='../../../../js/Clipperz/Crypto/PRNG.js'></script> |
50 | <script type='text/javascript' src='../../../../js/Clipperz/Crypto/SRP.js'></script> | 47 | <script type='text/javascript' src='../../../../js/Clipperz/Crypto/SRP.js'></script> |
51 | 48 | ||
52 | <script type='text/javascript' src='../../../../js/Clipperz/PM/Toll.js'></script> | 49 | <script type='text/javascript' src='../../../../js/Clipperz/PM/Toll.js'></script> |
53 | <script type="text/javascript" src="../../../SimpleTest/SimpleTest.Async.js"></script> | 50 | <script type="text/javascript" src="../../../SimpleTest/SimpleTest.Async.js"></script> |
54 | 51 | ||
55 | </head> | 52 | </head> |
56 | <body> | 53 | <body> |
57 | <pre id="test"> | 54 | <pre id="test"> |
58 | <script type="text/javascript" src="Toll.test.js"></script> | 55 | <script type="text/javascript" src="Toll.test.js"></script> |
59 | </pre> | 56 | </pre> |
60 | 57 | ||
61 | </body> | 58 | </body> |
62 | </html> | 59 | </html> |
diff --git a/frontend/gamma/tests/tests/Clipperz/PM/Toll.test.js b/frontend/gamma/tests/tests/Clipperz/PM/Toll.test.js index b54996f..6de67c3 100644 --- a/frontend/gamma/tests/tests/Clipperz/PM/Toll.test.js +++ b/frontend/gamma/tests/tests/Clipperz/PM/Toll.test.js | |||
@@ -1,120 +1,117 @@ | |||
1 | /* | 1 | /* |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | */ | 24 | */ |
28 | 25 | ||
29 | Clipperz.Crypto.PRNG.defaultRandomGenerator().fastEntropyAccumulationForTestingPurpose(); | 26 | Clipperz.Crypto.PRNG.defaultRandomGenerator().fastEntropyAccumulationForTestingPurpose(); |
30 | 27 | ||
31 | var tests = { | 28 | var tests = { |
32 | 29 | ||
33 | //------------------------------------------------------------------------- | 30 | //------------------------------------------------------------------------- |
34 | /* | 31 | /* |
35 | 'simple_test': function() { | 32 | 'simple_test': function() { |
36 | vardeferredResult; | 33 | vardeferredResult; |
37 | 34 | ||
38 | deferredResult = new Clipperz.Async.Deferred("simple_tests", {trace:false}); | 35 | deferredResult = new Clipperz.Async.Deferred("simple_tests", {trace:false}); |
39 | deferredResult.addCallback(function() { | 36 | deferredResult.addCallback(function() { |
40 | vartollTargetValue; | 37 | vartollTargetValue; |
41 | vartoll; | 38 | vartoll; |
42 | var price; | 39 | var price; |
43 | 40 | ||
44 | tollTargetValue = Clipperz.Crypto.PRNG.defaultRandomGenerator().getRandomBytes(32); | 41 | tollTargetValue = Clipperz.Crypto.PRNG.defaultRandomGenerator().getRandomBytes(32); |
45 | tollTargetValue = Clipperz.Crypto.SHA.sha256(tollTargetValue); | 42 | tollTargetValue = Clipperz.Crypto.SHA.sha256(tollTargetValue); |
46 | 43 | ||
47 | price = 1; | 44 | price = 1; |
48 | tollTargetValue = Clipperz.Crypto.PRNG.defaultRandomGenerator().getRandomBytes(32); | 45 | tollTargetValue = Clipperz.Crypto.PRNG.defaultRandomGenerator().getRandomBytes(32); |
49 | toll = new Clipperz.PM.Toll({targetValue:tollTargetValue.toHexString(), cost:price}); | 46 | toll = new Clipperz.PM.Toll({targetValue:tollTargetValue.toHexString(), cost:price}); |
50 | toll.pay(); | 47 | toll.pay(); |
51 | 48 | ||
52 | price = 5; | 49 | price = 5; |
53 | tollTargetValue = Clipperz.Crypto.PRNG.defaultRandomGenerator().getRandomBytes(32); | 50 | tollTargetValue = Clipperz.Crypto.PRNG.defaultRandomGenerator().getRandomBytes(32); |
54 | toll = new Clipperz.PM.Toll({targetValue:tollTargetValue.toHexString(), cost:price}); | 51 | toll = new Clipperz.PM.Toll({targetValue:tollTargetValue.toHexString(), cost:price}); |
55 | toll.pay(); | 52 | toll.pay(); |
56 | 53 | ||
57 | price = 6; | 54 | price = 6; |
58 | tollTargetValue = Clipperz.Crypto.PRNG.defaultRandomGenerator().getRandomBytes(32); | 55 | tollTargetValue = Clipperz.Crypto.PRNG.defaultRandomGenerator().getRandomBytes(32); |
59 | toll = new Clipperz.PM.Toll({targetValue:tollTargetValue.toHexString(), cost:price}); | 56 | toll = new Clipperz.PM.Toll({targetValue:tollTargetValue.toHexString(), cost:price}); |
60 | toll.pay(); | 57 | toll.pay(); |
61 | 58 | ||
62 | price = 7; | 59 | price = 7; |
63 | tollTargetValue = Clipperz.Crypto.PRNG.defaultRandomGenerator().getRandomBytes(32); | 60 | tollTargetValue = Clipperz.Crypto.PRNG.defaultRandomGenerator().getRandomBytes(32); |
64 | toll = new Clipperz.PM.Toll({targetValue:tollTargetValue.toHexString(), cost:price}); | 61 | toll = new Clipperz.PM.Toll({targetValue:tollTargetValue.toHexString(), cost:price}); |
65 | toll.pay(); | 62 | toll.pay(); |
66 | 63 | ||
67 | price = 7; | 64 | price = 7; |
68 | tollTargetValue = Clipperz.Crypto.PRNG.defaultRandomGenerator().getRandomBytes(32); | 65 | tollTargetValue = Clipperz.Crypto.PRNG.defaultRandomGenerator().getRandomBytes(32); |
69 | toll = new Clipperz.PM.Toll({targetValue:tollTargetValue.toHexString(), cost:price}); | 66 | toll = new Clipperz.PM.Toll({targetValue:tollTargetValue.toHexString(), cost:price}); |
70 | toll.pay(); | 67 | toll.pay(); |
71 | }); | 68 | }); |
72 | 69 | ||
73 | deferredResult.callback(); | 70 | deferredResult.callback(); |
74 | 71 | ||
75 | return deferredResult; | 72 | return deferredResult; |
76 | }, | 73 | }, |
77 | */ | 74 | */ |
78 | //------------------------------------------------------------------------- | 75 | //------------------------------------------------------------------------- |
79 | 76 | ||
80 | 'deferredPay_test': function() { | 77 | 'deferredPay_test': function() { |
81 | vardeferredResult; | 78 | vardeferredResult; |
82 | vartollTargetValue; | 79 | vartollTargetValue; |
83 | var toll_1, toll_5, toll_6, toll_7, toll_10, toll_16; | 80 | var toll_1, toll_5, toll_6, toll_7, toll_10, toll_16; |
84 | 81 | ||
85 | // tollTargetValue = Clipperz.Crypto.SHA.sha256(Clipperz.Crypto.PRNG.defaultRandomGenerator().getRandomBytes(32)); | 82 | // tollTargetValue = Clipperz.Crypto.SHA.sha256(Clipperz.Crypto.PRNG.defaultRandomGenerator().getRandomBytes(32)); |
86 | 83 | ||
87 | 84 | ||
88 | 85 | ||
89 | deferredResult = new Clipperz.Async.Deferred("deferredPay_tests", {trace:false}); | 86 | deferredResult = new Clipperz.Async.Deferred("deferredPay_tests", {trace:false}); |
90 | 87 | ||
91 | tollTargetValue = Clipperz.Crypto.PRNG.defaultRandomGenerator().getRandomBytes(32).toHexString().substring(2); | 88 | tollTargetValue = Clipperz.Crypto.PRNG.defaultRandomGenerator().getRandomBytes(32).toHexString().substring(2); |
92 | toll_1 = new Clipperz.PM.Toll({targetValue:tollTargetValue, cost:1}); | 89 | toll_1 = new Clipperz.PM.Toll({targetValue:tollTargetValue, cost:1}); |
93 | 90 | ||
94 | deferredResult.addMethod(toll_1, 'deferredPay'); | 91 | deferredResult.addMethod(toll_1, 'deferredPay'); |
95 | deferredResult.addCallback(function (aResult) { | 92 | deferredResult.addCallback(function (aResult) { |
96 | SimpleTest.ok(Clipperz.PM.Toll.validate(aResult.targetValue, aResult.toll, 1), "Payed a toll of cost 1"); | 93 | SimpleTest.ok(Clipperz.PM.Toll.validate(aResult.targetValue, aResult.toll, 1), "Payed a toll of cost 1"); |
97 | }); | 94 | }); |
98 | deferredResult.addCallback(MochiKit.Async.wait, 1); | 95 | deferredResult.addCallback(MochiKit.Async.wait, 1); |
99 | 96 | ||
100 | tollTargetValue = Clipperz.Crypto.PRNG.defaultRandomGenerator().getRandomBytes(32).toHexString().substring(2); | 97 | tollTargetValue = Clipperz.Crypto.PRNG.defaultRandomGenerator().getRandomBytes(32).toHexString().substring(2); |
101 | toll_5 = new Clipperz.PM.Toll({targetValue:tollTargetValue, cost:5}); | 98 | toll_5 = new Clipperz.PM.Toll({targetValue:tollTargetValue, cost:5}); |
102 | 99 | ||
103 | deferredResult.addMethod(toll_5, 'deferredPay'); | 100 | deferredResult.addMethod(toll_5, 'deferredPay'); |
104 | deferredResult.addCallback(function (aResult) { | 101 | deferredResult.addCallback(function (aResult) { |
105 | SimpleTest.ok(Clipperz.PM.Toll.validate(aResult.targetValue, aResult.toll, 5), "Payed a toll of cost 5"); | 102 | SimpleTest.ok(Clipperz.PM.Toll.validate(aResult.targetValue, aResult.toll, 5), "Payed a toll of cost 5"); |
106 | }); | 103 | }); |
107 | deferredResult.addCallback(MochiKit.Async.wait, 1); | 104 | deferredResult.addCallback(MochiKit.Async.wait, 1); |
108 | 105 | ||
109 | 106 | ||
110 | tollTargetValue = Clipperz.Crypto.PRNG.defaultRandomGenerator().getRandomBytes(32).toHexString().substring(2); | 107 | tollTargetValue = Clipperz.Crypto.PRNG.defaultRandomGenerator().getRandomBytes(32).toHexString().substring(2); |
111 | toll_6 = new Clipperz.PM.Toll({targetValue:tollTargetValue, cost:6}); | 108 | toll_6 = new Clipperz.PM.Toll({targetValue:tollTargetValue, cost:6}); |
112 | 109 | ||
113 | deferredResult.addMethod(toll_6, 'deferredPay'); | 110 | deferredResult.addMethod(toll_6, 'deferredPay'); |
114 | deferredResult.addCallback(function (aResult) { | 111 | deferredResult.addCallback(function (aResult) { |
115 | SimpleTest.ok(Clipperz.PM.Toll.validate(aResult.targetValue, aResult.toll, 6), "Payed a toll of cost 6"); | 112 | SimpleTest.ok(Clipperz.PM.Toll.validate(aResult.targetValue, aResult.toll, 6), "Payed a toll of cost 6"); |
116 | }); | 113 | }); |
117 | deferredResult.addCallback(MochiKit.Async.wait, 1); | 114 | deferredResult.addCallback(MochiKit.Async.wait, 1); |
118 | 115 | ||
119 | 116 | ||
120 | tollTargetValue = Clipperz.Crypto.PRNG.defaultRandomGenerator().getRandomBytes(32).toHexString().substring(2); | 117 | tollTargetValue = Clipperz.Crypto.PRNG.defaultRandomGenerator().getRandomBytes(32).toHexString().substring(2); |
diff --git a/frontend/gamma/tests/tests/Clipperz/PM/UI/Web/Controllers/MainController.html b/frontend/gamma/tests/tests/Clipperz/PM/UI/Web/Controllers/MainController.html index 6fbdcd6..04f0e70 100644 --- a/frontend/gamma/tests/tests/Clipperz/PM/UI/Web/Controllers/MainController.html +++ b/frontend/gamma/tests/tests/Clipperz/PM/UI/Web/Controllers/MainController.html | |||
@@ -1,64 +1,61 @@ | |||
1 | <!-- | 1 | <!-- |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | --> | 24 | --> |
28 | 25 | ||
29 | <html> | 26 | <html> |
30 | <head> | 27 | <head> |
31 | <title>Clipperz.PM.UI.Web.MainController - test</title> | 28 | <title>Clipperz.PM.UI.Web.MainController - test</title> |
32 | 29 | ||
33 | <script type="text/javascript" src="../../../../../../../js/MochiKit/MochiKit.js"></script> | 30 | <script type="text/javascript" src="../../../../../../../js/MochiKit/MochiKit.js"></script> |
34 | <script type="text/javascript" src="../../../../../../../js/JSLog/jslog.js"></script> | 31 | <script type="text/javascript" src="../../../../../../../js/JSLog/jslog.js"></script> |
35 | <script type="text/javascript" src="../../../../../../SimpleTest/SimpleTest.js"></script> | 32 | <script type="text/javascript" src="../../../../../../SimpleTest/SimpleTest.js"></script> |
36 | <link rel="stylesheet" type="text/css" href="../../../../../../SimpleTest/test.css"> | 33 | <link rel="stylesheet" type="text/css" href="../../../../../../SimpleTest/test.css"> |
37 | 34 | ||
38 | <script type='text/javascript' src='../../../../../../../js/Clipperz/YUI/Utils.js'></script> | 35 | <script type='text/javascript' src='../../../../../../../js/Clipperz/YUI/Utils.js'></script> |
39 | <script type='text/javascript' src='../../../../../../../js/Clipperz/Base.js'></script> | 36 | <script type='text/javascript' src='../../../../../../../js/Clipperz/Base.js'></script> |
40 | <script type='text/javascript' src='../../../../../../../js/Clipperz/ByteArray.js'></script> | 37 | <script type='text/javascript' src='../../../../../../../js/Clipperz/ByteArray.js'></script> |
41 | <script type='text/javascript' src='../../../../../../../js/Clipperz/Logging.js'></script> | 38 | <script type='text/javascript' src='../../../../../../../js/Clipperz/Logging.js'></script> |
42 | <script type='text/javascript' src='../../../../../../../js/Clipperz/Async.js'></script> | 39 | <script type='text/javascript' src='../../../../../../../js/Clipperz/Async.js'></script> |
43 | <script type='text/javascript' src='../../../../../../../js/Clipperz/KeyValueObjectStore.js'></script> | 40 | <script type='text/javascript' src='../../../../../../../js/Clipperz/KeyValueObjectStore.js'></script> |
44 | 41 | ||
45 | <script type='text/javascript' src='../../../../../../../js/Clipperz/Crypto/Base.js'></script> | 42 | <script type='text/javascript' src='../../../../../../../js/Clipperz/Crypto/Base.js'></script> |
46 | <script type='text/javascript' src='../../../../../../../js/Clipperz/Crypto/BigInt.js'></script> | 43 | <script type='text/javascript' src='../../../../../../../js/Clipperz/Crypto/BigInt.js'></script> |
47 | <script type='text/javascript' src='../../../../../../../js/Clipperz/Crypto/AES.js'></script> | 44 | <script type='text/javascript' src='../../../../../../../js/Clipperz/Crypto/AES.js'></script> |
48 | <script type='text/javascript' src='../../../../../../../js/Clipperz/Crypto/SHA.js'></script> | 45 | <script type='text/javascript' src='../../../../../../../js/Clipperz/Crypto/SHA.js'></script> |
49 | <script type='text/javascript' src='../../../../../../../js/Clipperz/Crypto/PRNG.js'></script> | 46 | <script type='text/javascript' src='../../../../../../../js/Clipperz/Crypto/PRNG.js'></script> |
50 | <script type='text/javascript' src='../../../../../../../js/Clipperz/Crypto/SRP.js'></script> | 47 | <script type='text/javascript' src='../../../../../../../js/Clipperz/Crypto/SRP.js'></script> |
51 | 48 | ||
52 | <script type='text/javascript' src='../../../../../../../js/Clipperz/Signal.js'></script> | 49 | <script type='text/javascript' src='../../../../../../../js/Clipperz/Signal.js'></script> |
53 | 50 | ||
54 | <script type='text/javascript' src='../../../../../../../js/Clipperz/PM/UI/Web/Controllers/MainController.js'></script> | 51 | <script type='text/javascript' src='../../../../../../../js/Clipperz/PM/UI/Web/Controllers/MainController.js'></script> |
55 | <script type="text/javascript" src="../../../../../../SimpleTest/SimpleTest.Async.js"></script> | 52 | <script type="text/javascript" src="../../../../../../SimpleTest/SimpleTest.Async.js"></script> |
56 | 53 | ||
57 | </head> | 54 | </head> |
58 | <body> | 55 | <body> |
59 | <pre id="test"> | 56 | <pre id="test"> |
60 | <script type="text/javascript" src="MainController.test.js"></script> | 57 | <script type="text/javascript" src="MainController.test.js"></script> |
61 | </pre> | 58 | </pre> |
62 | 59 | ||
63 | </body> | 60 | </body> |
64 | </html> | 61 | </html> |
diff --git a/frontend/gamma/tests/tests/Clipperz/PM/UI/Web/Controllers/MainController.test.js b/frontend/gamma/tests/tests/Clipperz/PM/UI/Web/Controllers/MainController.test.js index 3953558..919215e 100644 --- a/frontend/gamma/tests/tests/Clipperz/PM/UI/Web/Controllers/MainController.test.js +++ b/frontend/gamma/tests/tests/Clipperz/PM/UI/Web/Controllers/MainController.test.js | |||
@@ -1,90 +1,87 @@ | |||
1 | /* | 1 | /* |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | */ | 24 | */ |
28 | 25 | ||
29 | //Clipperz.Crypto.PRNG.defaultRandomGenerator().fastEntropyAccumulationForTestingPurpose(); | 26 | //Clipperz.Crypto.PRNG.defaultRandomGenerator().fastEntropyAccumulationForTestingPurpose(); |
30 | 27 | ||
31 | var tests = { | 28 | var tests = { |
32 | 29 | ||
33 | 'isPassphraseDelegateLockSetAfterInit': function (someTestArgs) { | 30 | 'isPassphraseDelegateLockSetAfterInit': function (someTestArgs) { |
34 | return Clipperz.Async.callbacks('isPassphraseDelegateLockSetAfterInit', [ | 31 | return Clipperz.Async.callbacks('isPassphraseDelegateLockSetAfterInit', [ |
35 | function () { | 32 | function () { |
36 | var mainController; | 33 | var mainController; |
37 | 34 | ||
38 | mainController = new Clipperz.PM.UI.Web.Controllers.MainController(); | 35 | mainController = new Clipperz.PM.UI.Web.Controllers.MainController(); |
39 | SimpleTest.is(true, mainController._passphraseDelegateLock.locked, 'passphraseDelegate lock is locked after MainController initialization') | 36 | SimpleTest.is(true, mainController._passphraseDelegateLock.locked, 'passphraseDelegate lock is locked after MainController initialization') |
40 | }]); | 37 | }]); |
41 | }, | 38 | }, |
42 | 39 | ||
43 | //------------------------------------------------------------------------- | 40 | //------------------------------------------------------------------------- |
44 | 41 | ||
45 | 'getPassphraseWithUnsetDelegate_test': function (someTestArgs) { | 42 | 'getPassphraseWithUnsetDelegate_test': function (someTestArgs) { |
46 | var deferredResult; | 43 | var deferredResult; |
47 | var mainController; | 44 | var mainController; |
48 | var delegateFunction; | 45 | var delegateFunction; |
49 | 46 | ||
50 | mainController = new Clipperz.PM.UI.Web.Controllers.MainController(); | 47 | mainController = new Clipperz.PM.UI.Web.Controllers.MainController(); |
51 | delegateFunction = function () { return "clipperz";}; | 48 | delegateFunction = function () { return "clipperz";}; |
52 | 49 | ||
53 | MochiKit.Async.callLater(1, MochiKit.Base.method(mainController, 'setPassphraseDelegate', delegateFunction)); | 50 | MochiKit.Async.callLater(1, MochiKit.Base.method(mainController, 'setPassphraseDelegate', delegateFunction)); |
54 | 51 | ||
55 | return Clipperz.Async.callbacks("MainController.getPassphraseWithUnsetDelegate",[ | 52 | return Clipperz.Async.callbacks("MainController.getPassphraseWithUnsetDelegate",[ |
56 | MochiKit.Base.method(mainController, 'getPassphrase'), | 53 | MochiKit.Base.method(mainController, 'getPassphrase'), |
57 | function (aResult) { | 54 | function (aResult) { |
58 | SimpleTest.is(aResult, 'clipperz', "the password provided by the delegate is correct"); | 55 | SimpleTest.is(aResult, 'clipperz', "the password provided by the delegate is correct"); |
59 | } | 56 | } |
60 | ], {trace:false}); | 57 | ], {trace:false}); |
61 | }, | 58 | }, |
62 | 59 | ||
63 | //------------------------------------------------------------------------- | 60 | //------------------------------------------------------------------------- |
64 | 61 | ||
65 | 'getPassphraseWithSetDelegate_test': function (someTestArgs) { | 62 | 'getPassphraseWithSetDelegate_test': function (someTestArgs) { |
66 | var deferredResult; | 63 | var deferredResult; |
67 | var mainController; | 64 | var mainController; |
68 | var delegateFunction; | 65 | var delegateFunction; |
69 | 66 | ||
70 | mainController = new Clipperz.PM.UI.Web.Controllers.MainController(); | 67 | mainController = new Clipperz.PM.UI.Web.Controllers.MainController(); |
71 | delegateFunction = function () {return "clipperz";}; | 68 | delegateFunction = function () {return "clipperz";}; |
72 | 69 | ||
73 | return Clipperz.Async.callbacks("MainController.getPassphraseWithSetDelegate_test",[ | 70 | return Clipperz.Async.callbacks("MainController.getPassphraseWithSetDelegate_test",[ |
74 | MochiKit.Base.method(mainController, 'setPassphraseDelegate', delegateFunction), | 71 | MochiKit.Base.method(mainController, 'setPassphraseDelegate', delegateFunction), |
75 | MochiKit.Base.method(mainController, 'getPassphrase'), | 72 | MochiKit.Base.method(mainController, 'getPassphrase'), |
76 | function (aResult) { | 73 | function (aResult) { |
77 | SimpleTest.is(aResult, 'clipperz', "the password provided by the delegate is correct"); | 74 | SimpleTest.is(aResult, 'clipperz', "the password provided by the delegate is correct"); |
78 | } | 75 | } |
79 | ], {trace:false}); | 76 | ], {trace:false}); |
80 | }, | 77 | }, |
81 | 78 | ||
82 | //------------------------------------------------------------------------- | 79 | //------------------------------------------------------------------------- |
83 | 'syntaxFix': MochiKit.Base.noop | 80 | 'syntaxFix': MochiKit.Base.noop |
84 | }; | 81 | }; |
85 | 82 | ||
86 | 83 | ||
87 | 84 | ||
88 | //############################################################################# | 85 | //############################################################################# |
89 | 86 | ||
90 | SimpleTest.runDeferredTests("Clipperz.PM.UI.Web.Controllers.MainController", tests, {trace:false}); | 87 | SimpleTest.runDeferredTests("Clipperz.PM.UI.Web.Controllers.MainController", tests, {trace:false}); |
diff --git a/frontend/gamma/tests/tests/Clipperz/PM/UI/Web/Controllers/index.html b/frontend/gamma/tests/tests/Clipperz/PM/UI/Web/Controllers/index.html index f3283b6..3f04d4f 100644 --- a/frontend/gamma/tests/tests/Clipperz/PM/UI/Web/Controllers/index.html +++ b/frontend/gamma/tests/tests/Clipperz/PM/UI/Web/Controllers/index.html | |||
@@ -1,46 +1,43 @@ | |||
1 | <!-- | 1 | <!-- |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | --> | 24 | --> |
28 | 25 | ||
29 | <html> | 26 | <html> |
30 | <head> | 27 | <head> |
31 | <title>Clipperz.PM.UI.Web.Controllers.* - tests</title> | 28 | <title>Clipperz.PM.UI.Web.Controllers.* - tests</title> |
32 | 29 | ||
33 | <script type="text/javascript" src="../../../../../../../js/MochiKit/MochiKit.js"></script> | 30 | <script type="text/javascript" src="../../../../../../../js/MochiKit/MochiKit.js"></script> |
34 | <script type="text/javascript" src="../../../../../../SimpleTest/TestRunner.js"></script> | 31 | <script type="text/javascript" src="../../../../../../SimpleTest/TestRunner.js"></script> |
35 | </head> | 32 | </head> |
36 | <body> | 33 | <body> |
37 | <script> | 34 | <script> |
38 | TestRunner.runTests( | 35 | TestRunner.runTests( |
39 | // | 36 | // |
40 | //This is still a complete mess. | 37 | //This is still a complete mess. |
41 | // | 38 | // |
42 | 'MainController.html' | 39 | 'MainController.html' |
43 | ); | 40 | ); |
44 | </script> | 41 | </script> |
45 | </body> | 42 | </body> |
46 | </html> \ No newline at end of file | 43 | </html> \ No newline at end of file |
diff --git a/frontend/gamma/tests/tests/Clipperz/PM/UI/Web/index.html b/frontend/gamma/tests/tests/Clipperz/PM/UI/Web/index.html index 9afa73d..250a70d 100644 --- a/frontend/gamma/tests/tests/Clipperz/PM/UI/Web/index.html +++ b/frontend/gamma/tests/tests/Clipperz/PM/UI/Web/index.html | |||
@@ -1,45 +1,42 @@ | |||
1 | <!-- | 1 | <!-- |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | --> | 24 | --> |
28 | 25 | ||
29 | <html> | 26 | <html> |
30 | <head> | 27 | <head> |
31 | <title>Clipperz.PM.UI.Web* - tests</title> | 28 | <title>Clipperz.PM.UI.Web* - tests</title> |
32 | 29 | ||
33 | <script type="text/javascript" src="../../../../../../js/MochiKit/MochiKit.js"></script> | 30 | <script type="text/javascript" src="../../../../../../js/MochiKit/MochiKit.js"></script> |
34 | <script type="text/javascript" src="../../../../../SimpleTest/TestRunner.js"></script> | 31 | <script type="text/javascript" src="../../../../../SimpleTest/TestRunner.js"></script> |
35 | </head> | 32 | </head> |
36 | <body> | 33 | <body> |
37 | <script> | 34 | <script> |
38 | TestRunner.runTests( | 35 | TestRunner.runTests( |
39 | // | 36 | // |
40 | //This is still a complete mess. | 37 | //This is still a complete mess. |
41 | // | 38 | // |
42 | ); | 39 | ); |
43 | </script> | 40 | </script> |
44 | </body> | 41 | </body> |
45 | </html> \ No newline at end of file | 42 | </html> \ No newline at end of file |
diff --git a/frontend/gamma/tests/tests/Clipperz/PM/UI/index.html b/frontend/gamma/tests/tests/Clipperz/PM/UI/index.html index 867362b..d46ced1 100644 --- a/frontend/gamma/tests/tests/Clipperz/PM/UI/index.html +++ b/frontend/gamma/tests/tests/Clipperz/PM/UI/index.html | |||
@@ -1,45 +1,42 @@ | |||
1 | <!-- | 1 | <!-- |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | --> | 24 | --> |
28 | 25 | ||
29 | <html> | 26 | <html> |
30 | <head> | 27 | <head> |
31 | <title>Clipperz.PM.UI.* - tests</title> | 28 | <title>Clipperz.PM.UI.* - tests</title> |
32 | 29 | ||
33 | <script type="text/javascript" src="../../../../../js/MochiKit/MochiKit.js"></script> | 30 | <script type="text/javascript" src="../../../../../js/MochiKit/MochiKit.js"></script> |
34 | <script type="text/javascript" src="../../../../SimpleTest/TestRunner.js"></script> | 31 | <script type="text/javascript" src="../../../../SimpleTest/TestRunner.js"></script> |
35 | </head> | 32 | </head> |
36 | <body> | 33 | <body> |
37 | <script> | 34 | <script> |
38 | TestRunner.runTests( | 35 | TestRunner.runTests( |
39 | // | 36 | // |
40 | //This is still a complete mess. | 37 | //This is still a complete mess. |
41 | // | 38 | // |
42 | ); | 39 | ); |
43 | </script> | 40 | </script> |
44 | </body> | 41 | </body> |
45 | </html> \ No newline at end of file | 42 | </html> \ No newline at end of file |
diff --git a/frontend/gamma/tests/tests/Clipperz/PM/index.html b/frontend/gamma/tests/tests/Clipperz/PM/index.html index acc45f7..b9bede1 100644 --- a/frontend/gamma/tests/tests/Clipperz/PM/index.html +++ b/frontend/gamma/tests/tests/Clipperz/PM/index.html | |||
@@ -1,56 +1,53 @@ | |||
1 | <!-- | 1 | <!-- |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | --> | 24 | --> |
28 | 25 | ||
29 | <html> | 26 | <html> |
30 | <head> | 27 | <head> |
31 | <title>Clipperz.PM.* - tests</title> | 28 | <title>Clipperz.PM.* - tests</title> |
32 | 29 | ||
33 | <script type="text/javascript" src="../../../../js/MochiKit/MochiKit.js"></script> | 30 | <script type="text/javascript" src="../../../../js/MochiKit/MochiKit.js"></script> |
34 | <script type="text/javascript" src="../../../SimpleTest/TestRunner.js"></script> | 31 | <script type="text/javascript" src="../../../SimpleTest/TestRunner.js"></script> |
35 | </head> | 32 | </head> |
36 | <body> | 33 | <body> |
37 | <script> | 34 | <script> |
38 | TestRunner.runTests( | 35 | TestRunner.runTests( |
39 | // | 36 | // |
40 | //This is still a complete mess. | 37 | //This is still a complete mess. |
41 | // | 38 | // |
42 | //'BookmarkletProcessor.html', | 39 | //'BookmarkletProcessor.html', |
43 | 'Connection.html', | 40 | 'Connection.html', |
44 | 'Crypto.html', | 41 | 'Crypto.html', |
45 | //'Crypto_other_implementation_comparison.html', | 42 | //'Crypto_other_implementation_comparison.html', |
46 | 'Crypto_performanceEvaluation.html', | 43 | 'Crypto_performanceEvaluation.html', |
47 | //'CryptoPerformance_ByteArrayArray.html', | 44 | //'CryptoPerformance_ByteArrayArray.html', |
48 | //'CryptoPerformance_ByteArrayHex.html', | 45 | //'CryptoPerformance_ByteArrayHex.html', |
49 | //'CryptoPerformance_ByteArrayString.html', | 46 | //'CryptoPerformance_ByteArrayString.html', |
50 | 'Date.html', | 47 | 'Date.html', |
51 | 'Proxy.html', | 48 | 'Proxy.html', |
52 | 'Toll.html' | 49 | 'Toll.html' |
53 | ); | 50 | ); |
54 | </script> | 51 | </script> |
55 | </body> | 52 | </body> |
56 | </html> \ No newline at end of file | 53 | </html> \ No newline at end of file |
diff --git a/frontend/gamma/tests/tests/Clipperz/RoboFormExportProcessor.html b/frontend/gamma/tests/tests/Clipperz/RoboFormExportProcessor.html index 7fe9a84..87cde0f 100644 --- a/frontend/gamma/tests/tests/Clipperz/RoboFormExportProcessor.html +++ b/frontend/gamma/tests/tests/Clipperz/RoboFormExportProcessor.html | |||
@@ -1,120 +1,117 @@ | |||
1 | <!-- | 1 | <!-- |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | --> | 24 | --> |
28 | 25 | ||
29 | <html> | 26 | <html> |
30 | <head> | 27 | <head> |
31 | <script type="text/javascript" src="../../../js/MochiKit/MochiKit.js"></script> | 28 | <script type="text/javascript" src="../../../js/MochiKit/MochiKit.js"></script> |
32 | <script type="text/javascript" src="../../../js/JSLog/jslog.js"></script> | 29 | <script type="text/javascript" src="../../../js/JSLog/jslog.js"></script> |
33 | <script type="text/javascript" src="../../SimpleTest/SimpleTest.js"></script> | 30 | <script type="text/javascript" src="../../SimpleTest/SimpleTest.js"></script> |
34 | <link rel="stylesheet" type="text/css" href="../../SimpleTest/test.css"> | 31 | <link rel="stylesheet" type="text/css" href="../../SimpleTest/test.css"> |
35 | 32 | ||
36 | <script type='text/javascript' src='../../../js/Clipperz/YUI/Utils.js'></script> | 33 | <script type='text/javascript' src='../../../js/Clipperz/YUI/Utils.js'></script> |
37 | <script type='text/javascript' src='../../../js/Clipperz/Base.js'></script> | 34 | <script type='text/javascript' src='../../../js/Clipperz/Base.js'></script> |
38 | <script type='text/javascript' src='../../../js/Clipperz/Async.js'></script> | 35 | <script type='text/javascript' src='../../../js/Clipperz/Async.js'></script> |
39 | <script type='text/javascript' src='../../../js/Clipperz/KeePassExportProcessor.js'></script> | 36 | <script type='text/javascript' src='../../../js/Clipperz/KeePassExportProcessor.js'></script> |
40 | 37 | ||
41 | <script type="text/javascript" src="../../SimpleTest/SimpleTest.Async.js"></script> | 38 | <script type="text/javascript" src="../../SimpleTest/SimpleTest.Async.js"></script> |
42 | </head> | 39 | </head> |
43 | <body> | 40 | <body> |
44 | <pre id="test"> | 41 | <pre id="test"> |
45 | <script type="text/javascript"> | 42 | <script type="text/javascript"> |
46 | try { | 43 | try { |
47 | var deferredResult; | 44 | var deferredResult; |
48 | varkeePassProcessor; | 45 | varkeePassProcessor; |
49 | 46 | ||
50 | keePassProcessor = new Clipperz.KeePassExportProcessor(); | 47 | keePassProcessor = new Clipperz.KeePassExportProcessor(); |
51 | 48 | ||
52 | deferredResult = new MochiKit.Async.Deferred(); | 49 | deferredResult = new MochiKit.Async.Deferred(); |
53 | 50 | ||
54 | deferredResult.addCallback(function(aResult) { return "[Gmail]\nGroup: General\nUserName: joe.clipperz\nURL: http://www.gmail.com\nPassword: NHy08ZCMYsqUeLQCawR7\n\n[del.icio.us]\nGroup: General\nUserName: joe69\nURL: http://del.icio.us\nPassword: tS1cIEeqp5y0wkU\n\n[Amazon]\nGroup: General\nUserName: jclipperz\nURL: http://www.amazon.com\nPassword: wvpkqNPIsqlI5g6XE9Tz\n\n[Paypal]\nGroup: General\nUserName: joeclipperz\nURL: http://www.paypal.com\nPassword: 24T4wIcvHnM28T3L\n\n[Technorati]\nGroup: General\nUserName: jclipperz\nURL: http://www.technorati.com\nPassword: UcVeNqF\n\n[American Airlines]\nGroup: General\nUserName: joe.clipperz\nURL: http://www.aa.com\nPassword: AtrYbmi7lmSjR\n" }); | 51 | deferredResult.addCallback(function(aResult) { return "[Gmail]\nGroup: General\nUserName: joe.clipperz\nURL: http://www.gmail.com\nPassword: NHy08ZCMYsqUeLQCawR7\n\n[del.icio.us]\nGroup: General\nUserName: joe69\nURL: http://del.icio.us\nPassword: tS1cIEeqp5y0wkU\n\n[Amazon]\nGroup: General\nUserName: jclipperz\nURL: http://www.amazon.com\nPassword: wvpkqNPIsqlI5g6XE9Tz\n\n[Paypal]\nGroup: General\nUserName: joeclipperz\nURL: http://www.paypal.com\nPassword: 24T4wIcvHnM28T3L\n\n[Technorati]\nGroup: General\nUserName: jclipperz\nURL: http://www.technorati.com\nPassword: UcVeNqF\n\n[American Airlines]\nGroup: General\nUserName: joe.clipperz\nURL: http://www.aa.com\nPassword: AtrYbmi7lmSjR\n" }); |
55 | deferredResult.addCallback(MochiKit.Base.method(keePassProcessor, 'deferredParse')); | 52 | deferredResult.addCallback(MochiKit.Base.method(keePassProcessor, 'deferredParse')); |
56 | deferredResult.addCallback(function(aResult) { is(MochiKit.Base.serializeJSON(aResult), "[{\"Title\":\"Gmail\", \"Group\":\"General\", \"UserName\":\"joe.clipperz\", \"URL\":\"http://www.gmail.com\", \"Password\":\"NHy08ZCMYsqUeLQCawR7\"}, {\"Title\":\"del.icio.us\", \"Group\":\"General\", \"UserName\":\"joe69\", \"URL\":\"http://del.icio.us\", \"Password\":\"tS1cIEeqp5y0wkU\"}, {\"Title\":\"Amazon\", \"Group\":\"General\", \"UserName\":\"jclipperz\", \"URL\":\"http://www.amazon.com\", \"Password\":\"wvpkqNPIsqlI5g6XE9Tz\"}, {\"Title\":\"Paypal\", \"Group\":\"General\", \"UserName\":\"joeclipperz\", \"URL\":\"http://www.paypal.com\", \"Password\":\"24T4wIcvHnM28T3L\"}, {\"Title\":\"Technorati\", \"Group\":\"General\", \"UserName\":\"jclipperz\", \"URL\":\"http://www.technorati.com\", \"Password\":\"UcVeNqF\"}, {\"Title\":\"American Airlines\", \"Group\":\"General\", \"UserName\":\"joe.clipperz\", \"URL\":\"http://www.aa.com\", \"Password\":\"AtrYbmi7lmSjR\"}]", "first test"); }); | 53 | deferredResult.addCallback(function(aResult) { is(MochiKit.Base.serializeJSON(aResult), "[{\"Title\":\"Gmail\", \"Group\":\"General\", \"UserName\":\"joe.clipperz\", \"URL\":\"http://www.gmail.com\", \"Password\":\"NHy08ZCMYsqUeLQCawR7\"}, {\"Title\":\"del.icio.us\", \"Group\":\"General\", \"UserName\":\"joe69\", \"URL\":\"http://del.icio.us\", \"Password\":\"tS1cIEeqp5y0wkU\"}, {\"Title\":\"Amazon\", \"Group\":\"General\", \"UserName\":\"jclipperz\", \"URL\":\"http://www.amazon.com\", \"Password\":\"wvpkqNPIsqlI5g6XE9Tz\"}, {\"Title\":\"Paypal\", \"Group\":\"General\", \"UserName\":\"joeclipperz\", \"URL\":\"http://www.paypal.com\", \"Password\":\"24T4wIcvHnM28T3L\"}, {\"Title\":\"Technorati\", \"Group\":\"General\", \"UserName\":\"jclipperz\", \"URL\":\"http://www.technorati.com\", \"Password\":\"UcVeNqF\"}, {\"Title\":\"American Airlines\", \"Group\":\"General\", \"UserName\":\"joe.clipperz\", \"URL\":\"http://www.aa.com\", \"Password\":\"AtrYbmi7lmSjR\"}]", "first test"); }); |
57 | deferredResult.addErrback(function(anError) { is("ERROR", anError) }); | 54 | deferredResult.addErrback(function(anError) { is("ERROR", anError) }); |
58 | 55 | ||
59 | deferredResult.addCallback(function(aResult) { return "[Gmail]\nGroup: General\nUserName: joe.clipperz\nURL: http://www.gmail.com\nPassword: NHy08ZCMYsqUeLQCawR7\nNotes: Personal account\n\n[del.icio.us]\nGroup: General\nUserName: joe69\nURL: http://del.icio.us\nPassword: tS1cIEeqp5y0wkU\nNotes: social bookmarking site\n\n[Amazon]\nGroup: General\nUserName: jclipperz\nURL: http://www.amazon.com\nPassword: wvpkqNPIsqlI5g6XE9Tz\nNotes: The US online store\n\n[Paypal]\nGroup: General\nUserName: joeclipperz\nURL: http://www.paypal.com\nPassword: 24T4wIcvHnM28T3L\nNotes: Linked to my savings account\n\n[Technorati]\nGroup: General\nUserName: jclipperz\nURL: http://www.technorati.com\nPassword: UcVeNqF\nNotes: Blog ranking and searching\n\n[American Airlines]\nGroup: General\nUserName: joe.clipperz\nURL: http://www.aa.com\nPassword: AtrYbmi7lmSjR\nNotes: Adavantages card n. 795495\n" }); | 56 | deferredResult.addCallback(function(aResult) { return "[Gmail]\nGroup: General\nUserName: joe.clipperz\nURL: http://www.gmail.com\nPassword: NHy08ZCMYsqUeLQCawR7\nNotes: Personal account\n\n[del.icio.us]\nGroup: General\nUserName: joe69\nURL: http://del.icio.us\nPassword: tS1cIEeqp5y0wkU\nNotes: social bookmarking site\n\n[Amazon]\nGroup: General\nUserName: jclipperz\nURL: http://www.amazon.com\nPassword: wvpkqNPIsqlI5g6XE9Tz\nNotes: The US online store\n\n[Paypal]\nGroup: General\nUserName: joeclipperz\nURL: http://www.paypal.com\nPassword: 24T4wIcvHnM28T3L\nNotes: Linked to my savings account\n\n[Technorati]\nGroup: General\nUserName: jclipperz\nURL: http://www.technorati.com\nPassword: UcVeNqF\nNotes: Blog ranking and searching\n\n[American Airlines]\nGroup: General\nUserName: joe.clipperz\nURL: http://www.aa.com\nPassword: AtrYbmi7lmSjR\nNotes: Adavantages card n. 795495\n" }); |
60 | deferredResult.addCallback(MochiKit.Base.method(keePassProcessor, 'deferredParse')); | 57 | deferredResult.addCallback(MochiKit.Base.method(keePassProcessor, 'deferredParse')); |
61 | deferredResult.addCallback(function(aResult) { is(MochiKit.Base.serializeJSON(aResult), "[{\"Title\":\"Gmail\", \"Group\":\"General\", \"UserName\":\"joe.clipperz\", \"URL\":\"http://www.gmail.com\", \"Password\":\"NHy08ZCMYsqUeLQCawR7\", \"Notes\":\"Personal account\"}, {\"Title\":\"del.icio.us\", \"Group\":\"General\", \"UserName\":\"joe69\", \"URL\":\"http://del.icio.us\", \"Password\":\"tS1cIEeqp5y0wkU\", \"Notes\":\"social bookmarking site\"}, {\"Title\":\"Amazon\", \"Group\":\"General\", \"UserName\":\"jclipperz\", \"URL\":\"http://www.amazon.com\", \"Password\":\"wvpkqNPIsqlI5g6XE9Tz\", \"Notes\":\"The US online store\"}, {\"Title\":\"Paypal\", \"Group\":\"General\", \"UserName\":\"joeclipperz\", \"URL\":\"http://www.paypal.com\", \"Password\":\"24T4wIcvHnM28T3L\", \"Notes\":\"Linked to my savings account\"}, {\"Title\":\"Technorati\", \"Group\":\"General\", \"UserName\":\"jclipperz\", \"URL\":\"http://www.technorati.com\", \"Password\":\"UcVeNqF\", \"Notes\":\"Blog ranking and searching\"}, {\"Title\":\"American Airlines\", \"Group\":\"General\", \"UserName\":\"joe.clipperz\", \"URL\":\"http://www.aa.com\", \"Password\":\"AtrYbmi7lmSjR\", \"Notes\":\"Adavantages card n. 795495\"}]", "second test"); }); | 58 | deferredResult.addCallback(function(aResult) { is(MochiKit.Base.serializeJSON(aResult), "[{\"Title\":\"Gmail\", \"Group\":\"General\", \"UserName\":\"joe.clipperz\", \"URL\":\"http://www.gmail.com\", \"Password\":\"NHy08ZCMYsqUeLQCawR7\", \"Notes\":\"Personal account\"}, {\"Title\":\"del.icio.us\", \"Group\":\"General\", \"UserName\":\"joe69\", \"URL\":\"http://del.icio.us\", \"Password\":\"tS1cIEeqp5y0wkU\", \"Notes\":\"social bookmarking site\"}, {\"Title\":\"Amazon\", \"Group\":\"General\", \"UserName\":\"jclipperz\", \"URL\":\"http://www.amazon.com\", \"Password\":\"wvpkqNPIsqlI5g6XE9Tz\", \"Notes\":\"The US online store\"}, {\"Title\":\"Paypal\", \"Group\":\"General\", \"UserName\":\"joeclipperz\", \"URL\":\"http://www.paypal.com\", \"Password\":\"24T4wIcvHnM28T3L\", \"Notes\":\"Linked to my savings account\"}, {\"Title\":\"Technorati\", \"Group\":\"General\", \"UserName\":\"jclipperz\", \"URL\":\"http://www.technorati.com\", \"Password\":\"UcVeNqF\", \"Notes\":\"Blog ranking and searching\"}, {\"Title\":\"American Airlines\", \"Group\":\"General\", \"UserName\":\"joe.clipperz\", \"URL\":\"http://www.aa.com\", \"Password\":\"AtrYbmi7lmSjR\", \"Notes\":\"Adavantages card n. 795495\"}]", "second test"); }); |
62 | deferredResult.addErrback(function(anError) { is("ERROR", anError) }); | 59 | deferredResult.addErrback(function(anError) { is("ERROR", anError) }); |
63 | 60 | ||
64 | deferredResult.addCallback(function(aResult) { return "[Gmail]\nGroup: General\nUserName: joe.clipperz\nURL: http://www.gmail.com\nPassword: NHy08ZCMYsqUeLQCawR7\nNotes: Personal account\nwith some notes stored\non multiple lines\n\n[del.icio.us]\nGroup: General\nUserName: joe69\nURL: http://del.icio.us\nPassword: tS1cIEeqp5y0wkU\nNotes: social bookmarking site\n\n[Amazon]\nGroup: General\nUserName: jclipperz\nURL: http://www.amazon.com\nPassword: wvpkqNPIsqlI5g6XE9Tz\nNotes: The US online store\n\n[Paypal]\nGroup: General\nUserName: joeclipperz\nURL: http://www.paypal.com\nPassword: 24T4wIcvHnM28T3L\nNotes: Linked to my savings account\n\n[Technorati]\nGroup: General\nUserName: jclipperz\nURL: http://www.technorati.com\nPassword: UcVeNqF\nNotes: Blog ranking and searching\n\n[American Airlines]\nGroup: General\nUserName: joe.clipperz\nURL: http://www.aa.com\nPassword: AtrYbmi7lmSjR\nNotes: Adavantages card n. 795495\n" }); | 61 | deferredResult.addCallback(function(aResult) { return "[Gmail]\nGroup: General\nUserName: joe.clipperz\nURL: http://www.gmail.com\nPassword: NHy08ZCMYsqUeLQCawR7\nNotes: Personal account\nwith some notes stored\non multiple lines\n\n[del.icio.us]\nGroup: General\nUserName: joe69\nURL: http://del.icio.us\nPassword: tS1cIEeqp5y0wkU\nNotes: social bookmarking site\n\n[Amazon]\nGroup: General\nUserName: jclipperz\nURL: http://www.amazon.com\nPassword: wvpkqNPIsqlI5g6XE9Tz\nNotes: The US online store\n\n[Paypal]\nGroup: General\nUserName: joeclipperz\nURL: http://www.paypal.com\nPassword: 24T4wIcvHnM28T3L\nNotes: Linked to my savings account\n\n[Technorati]\nGroup: General\nUserName: jclipperz\nURL: http://www.technorati.com\nPassword: UcVeNqF\nNotes: Blog ranking and searching\n\n[American Airlines]\nGroup: General\nUserName: joe.clipperz\nURL: http://www.aa.com\nPassword: AtrYbmi7lmSjR\nNotes: Adavantages card n. 795495\n" }); |
65 | deferredResult.addCallback(MochiKit.Base.method(keePassProcessor, 'deferredParse')); | 62 | deferredResult.addCallback(MochiKit.Base.method(keePassProcessor, 'deferredParse')); |
66 | deferredResult.addCallback(function(aResult) { is(MochiKit.Base.serializeJSON(aResult), "[{\"Title\":\"Gmail\", \"Group\":\"General\", \"UserName\":\"joe.clipperz\", \"URL\":\"http://www.gmail.com\", \"Password\":\"NHy08ZCMYsqUeLQCawR7\", \"Notes\":\"Personal account\\nwith some notes stored\\non multiple lines\\n\"}, {\"Title\":\"del.icio.us\", \"Group\":\"General\", \"UserName\":\"joe69\", \"URL\":\"http://del.icio.us\", \"Password\":\"tS1cIEeqp5y0wkU\", \"Notes\":\"social bookmarking site\"}, {\"Title\":\"Amazon\", \"Group\":\"General\", \"UserName\":\"jclipperz\", \"URL\":\"http://www.amazon.com\", \"Password\":\"wvpkqNPIsqlI5g6XE9Tz\", \"Notes\":\"The US online store\"}, {\"Title\":\"Paypal\", \"Group\":\"General\", \"UserName\":\"joeclipperz\", \"URL\":\"http://www.paypal.com\", \"Password\":\"24T4wIcvHnM28T3L\", \"Notes\":\"Linked to my savings account\"}, {\"Title\":\"Technorati\", \"Group\":\"General\", \"UserName\":\"jclipperz\", \"URL\":\"http://www.technorati.com\", \"Password\":\"UcVeNqF\", \"Notes\":\"Blog ranking and searching\"}, {\"Title\":\"American Airlines\", \"Group\":\"General\", \"UserName\":\"joe.clipperz\", \"URL\":\"http://www.aa.com\", \"Password\":\"AtrYbmi7lmSjR\", \"Notes\":\"Adavantages card n. 795495\"}]", "third test"); }); | 63 | deferredResult.addCallback(function(aResult) { is(MochiKit.Base.serializeJSON(aResult), "[{\"Title\":\"Gmail\", \"Group\":\"General\", \"UserName\":\"joe.clipperz\", \"URL\":\"http://www.gmail.com\", \"Password\":\"NHy08ZCMYsqUeLQCawR7\", \"Notes\":\"Personal account\\nwith some notes stored\\non multiple lines\\n\"}, {\"Title\":\"del.icio.us\", \"Group\":\"General\", \"UserName\":\"joe69\", \"URL\":\"http://del.icio.us\", \"Password\":\"tS1cIEeqp5y0wkU\", \"Notes\":\"social bookmarking site\"}, {\"Title\":\"Amazon\", \"Group\":\"General\", \"UserName\":\"jclipperz\", \"URL\":\"http://www.amazon.com\", \"Password\":\"wvpkqNPIsqlI5g6XE9Tz\", \"Notes\":\"The US online store\"}, {\"Title\":\"Paypal\", \"Group\":\"General\", \"UserName\":\"joeclipperz\", \"URL\":\"http://www.paypal.com\", \"Password\":\"24T4wIcvHnM28T3L\", \"Notes\":\"Linked to my savings account\"}, {\"Title\":\"Technorati\", \"Group\":\"General\", \"UserName\":\"jclipperz\", \"URL\":\"http://www.technorati.com\", \"Password\":\"UcVeNqF\", \"Notes\":\"Blog ranking and searching\"}, {\"Title\":\"American Airlines\", \"Group\":\"General\", \"UserName\":\"joe.clipperz\", \"URL\":\"http://www.aa.com\", \"Password\":\"AtrYbmi7lmSjR\", \"Notes\":\"Adavantages card n. 795495\"}]", "third test"); }); |
67 | deferredResult.addErrback(function(anError) { is("ERROR", anError) }); | 64 | deferredResult.addErrback(function(anError) { is("ERROR", anError) }); |
68 | 65 | ||
69 | 66 | ||
70 | 67 | ||
71 | deferredResult.addBoth(SimpleTest.finish); | 68 | deferredResult.addBoth(SimpleTest.finish); |
72 | deferredResult.callback(); | 69 | deferredResult.callback(); |
73 | 70 | ||
74 | /* | 71 | /* |
75 | var set; | 72 | var set; |
76 | varobject1; | 73 | varobject1; |
77 | varobject2; | 74 | varobject2; |
78 | var object3; | 75 | var object3; |
79 | 76 | ||
80 | set = new Clipperz.Set(); | 77 | set = new Clipperz.Set(); |
81 | 78 | ||
82 | object1 = new Object(); | 79 | object1 = new Object(); |
83 | object2 = new Object(); | 80 | object2 = new Object(); |
84 | object3 = new Object(); | 81 | object3 = new Object(); |
85 | 82 | ||
86 | object1.label = "object 1"; | 83 | object1.label = "object 1"; |
87 | object2.label = "object 2"; | 84 | object2.label = "object 2"; |
88 | object3.label = "object 3"; | 85 | object3.label = "object 3"; |
89 | 86 | ||
90 | is(set.size(), 0, "A new set should be empty"); | 87 | is(set.size(), 0, "A new set should be empty"); |
91 | 88 | ||
92 | set.add(object1); | 89 | set.add(object1); |
93 | is(set.size(), 1); | 90 | is(set.size(), 1); |
94 | is(set.contains(object1), true); | 91 | is(set.contains(object1), true); |
95 | is(set.contains(object2), false); | 92 | is(set.contains(object2), false); |
96 | 93 | ||
97 | set.add(object1); | 94 | set.add(object1); |
98 | is(set.size(), 1, "Adding the same object twice does not change the set content"); | 95 | is(set.size(), 1, "Adding the same object twice does not change the set content"); |
99 | is(set.contains(object1), true); | 96 | is(set.contains(object1), true); |
100 | is(set.contains(object2), false); | 97 | is(set.contains(object2), false); |
101 | 98 | ||
102 | set.add(object2); | 99 | set.add(object2); |
103 | is(set.size(), 2); | 100 | is(set.size(), 2); |
104 | is(set.contains(object1), true); | 101 | is(set.contains(object1), true); |
105 | is(set.contains(object2), true); | 102 | is(set.contains(object2), true); |
106 | is(set.contains(object3), false); | 103 | is(set.contains(object3), false); |
107 | 104 | ||
108 | set.remove(object1); | 105 | set.remove(object1); |
109 | is(set.size(), 1, "Size check after removing an object"); | 106 | is(set.size(), 1, "Size check after removing an object"); |
110 | is(set.contains(object1), false); | 107 | is(set.contains(object1), false); |
111 | is(set.contains(object2), true); | 108 | is(set.contains(object2), true); |
112 | is(set.contains(object3), false); | 109 | is(set.contains(object3), false); |
113 | 110 | ||
114 | set.remove(object1); | 111 | set.remove(object1); |
115 | is(set.size(), 1, "Removing twice the same object does not change the set content"); | 112 | is(set.size(), 1, "Removing twice the same object does not change the set content"); |
116 | is(set.contains(object1), false); | 113 | is(set.contains(object1), false); |
117 | is(set.contains(object2), true); | 114 | is(set.contains(object2), true); |
118 | is(set.contains(object3), false); | 115 | is(set.contains(object3), false); |
119 | 116 | ||
120 | set.empty(); | 117 | set.empty(); |
diff --git a/frontend/gamma/tests/tests/Clipperz/Set.html b/frontend/gamma/tests/tests/Clipperz/Set.html index e5814bc..82bb249 100644 --- a/frontend/gamma/tests/tests/Clipperz/Set.html +++ b/frontend/gamma/tests/tests/Clipperz/Set.html | |||
@@ -1,54 +1,51 @@ | |||
1 | <!-- | 1 | <!-- |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | --> | 24 | --> |
28 | 25 | ||
29 | <html> | 26 | <html> |
30 | <head> | 27 | <head> |
31 | <title>Clipperz.Set - test</title> | 28 | <title>Clipperz.Set - test</title> |
32 | 29 | ||
33 | <script type="text/javascript" src="../../../js/MochiKit/MochiKit.js"></script> | 30 | <script type="text/javascript" src="../../../js/MochiKit/MochiKit.js"></script> |
34 | <script type="text/javascript" src="../../SimpleTest/SimpleTest.js"></script> | 31 | <script type="text/javascript" src="../../SimpleTest/SimpleTest.js"></script> |
35 | <link rel="stylesheet" type="text/css" href="../../SimpleTest/test.css"> | 32 | <link rel="stylesheet" type="text/css" href="../../SimpleTest/test.css"> |
36 | 33 | ||
37 | <script type='text/javascript' src='../../../js/JSON/json2.js'></script> | 34 | <script type='text/javascript' src='../../../js/JSON/json2.js'></script> |
38 | 35 | ||
39 | <script type='text/javascript' src='../../../js/Clipperz/YUI/Utils.js'></script> | 36 | <script type='text/javascript' src='../../../js/Clipperz/YUI/Utils.js'></script> |
40 | <script type='text/javascript' src='../../../js/Clipperz/Base.js'></script> | 37 | <script type='text/javascript' src='../../../js/Clipperz/Base.js'></script> |
41 | <script type='text/javascript' src='../../../js/Clipperz/Set.js'></script> | 38 | <script type='text/javascript' src='../../../js/Clipperz/Set.js'></script> |
42 | <script type='text/javascript' src='../../../js/Clipperz/Logging.js'></script> | 39 | <script type='text/javascript' src='../../../js/Clipperz/Logging.js'></script> |
43 | <script type='text/javascript' src='../../../js/Clipperz/Async.js'></script> | 40 | <script type='text/javascript' src='../../../js/Clipperz/Async.js'></script> |
44 | 41 | ||
45 | <script type="text/javascript" src="../../SimpleTest/SimpleTest.Async.js"></script> | 42 | <script type="text/javascript" src="../../SimpleTest/SimpleTest.Async.js"></script> |
46 | </head> | 43 | </head> |
47 | <body> | 44 | <body> |
48 | 45 | ||
49 | <pre id="test"> | 46 | <pre id="test"> |
50 | <script type="text/javascript" src="Set.test.js"></script> | 47 | <script type="text/javascript" src="Set.test.js"></script> |
51 | </pre> | 48 | </pre> |
52 | </body> | 49 | </body> |
53 | </html> | 50 | </html> |
54 | 51 | ||
diff --git a/frontend/gamma/tests/tests/Clipperz/Set.test.js b/frontend/gamma/tests/tests/Clipperz/Set.test.js index 8122b07..f908816 100644 --- a/frontend/gamma/tests/tests/Clipperz/Set.test.js +++ b/frontend/gamma/tests/tests/Clipperz/Set.test.js | |||
@@ -1,120 +1,117 @@ | |||
1 | /* | 1 | /* |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | */ | 24 | */ |
28 | 25 | ||
29 | var tests = { | 26 | var tests = { |
30 | 27 | ||
31 | //------------------------------------------------------------------------- | 28 | //------------------------------------------------------------------------- |
32 | 29 | ||
33 | 'set_test': function (someTestArgs) { | 30 | 'set_test': function (someTestArgs) { |
34 | var deferredResult; | 31 | var deferredResult; |
35 | 32 | ||
36 | deferredResult = new Clipperz.Async.Deferred("set_test", someTestArgs); | 33 | deferredResult = new Clipperz.Async.Deferred("set_test", someTestArgs); |
37 | deferredResult.addCallback(function () { | 34 | deferredResult.addCallback(function () { |
38 | var set; | 35 | var set; |
39 | varobject1; | 36 | varobject1; |
40 | varobject2; | 37 | varobject2; |
41 | var object3; | 38 | var object3; |
42 | 39 | ||
43 | set = new Clipperz.Set(); | 40 | set = new Clipperz.Set(); |
44 | 41 | ||
45 | object1 = new Object(); | 42 | object1 = new Object(); |
46 | object2 = new Object(); | 43 | object2 = new Object(); |
47 | object3 = new Object(); | 44 | object3 = new Object(); |
48 | 45 | ||
49 | object1.label = "object 1"; | 46 | object1.label = "object 1"; |
50 | object2.label = "object 2"; | 47 | object2.label = "object 2"; |
51 | object3.label = "object 3"; | 48 | object3.label = "object 3"; |
52 | 49 | ||
53 | is(set.size(), 0, "A new set should be empty"); | 50 | is(set.size(), 0, "A new set should be empty"); |
54 | 51 | ||
55 | set.add(object1); | 52 | set.add(object1); |
56 | is(set.size(), 1); | 53 | is(set.size(), 1); |
57 | is(set.contains(object1), true); | 54 | is(set.contains(object1), true); |
58 | is(set.contains(object2), false); | 55 | is(set.contains(object2), false); |
59 | 56 | ||
60 | set.add(object1); | 57 | set.add(object1); |
61 | is(set.size(), 1, "Adding the same object twice does not change the set content"); | 58 | is(set.size(), 1, "Adding the same object twice does not change the set content"); |
62 | is(set.contains(object1), true); | 59 | is(set.contains(object1), true); |
63 | is(set.contains(object2), false); | 60 | is(set.contains(object2), false); |
64 | 61 | ||
65 | set.add(object2); | 62 | set.add(object2); |
66 | is(set.size(), 2); | 63 | is(set.size(), 2); |
67 | is(set.contains(object1), true); | 64 | is(set.contains(object1), true); |
68 | is(set.contains(object2), true); | 65 | is(set.contains(object2), true); |
69 | is(set.contains(object3), false); | 66 | is(set.contains(object3), false); |
70 | 67 | ||
71 | set.remove(object1); | 68 | set.remove(object1); |
72 | is(set.size(), 1, "Size check after removing an object"); | 69 | is(set.size(), 1, "Size check after removing an object"); |
73 | is(set.contains(object1), false); | 70 | is(set.contains(object1), false); |
74 | is(set.contains(object2), true); | 71 | is(set.contains(object2), true); |
75 | is(set.contains(object3), false); | 72 | is(set.contains(object3), false); |
76 | 73 | ||
77 | set.remove(object1); | 74 | set.remove(object1); |
78 | is(set.size(), 1, "Removing twice the same object does not change the set content"); | 75 | is(set.size(), 1, "Removing twice the same object does not change the set content"); |
79 | is(set.contains(object1), false); | 76 | is(set.contains(object1), false); |
80 | is(set.contains(object2), true); | 77 | is(set.contains(object2), true); |
81 | is(set.contains(object3), false); | 78 | is(set.contains(object3), false); |
82 | 79 | ||
83 | set.empty(); | 80 | set.empty(); |
84 | is(set.size(), 0); | 81 | is(set.size(), 0); |
85 | 82 | ||
86 | { | 83 | { |
87 | varitems; | 84 | varitems; |
88 | varpopulatedSet; | 85 | varpopulatedSet; |
89 | 86 | ||
90 | items = ["item1", "item2", "item3"]; | 87 | items = ["item1", "item2", "item3"]; |
91 | 88 | ||
92 | populatedSet = new Clipperz.Set({'items': items}); | 89 | populatedSet = new Clipperz.Set({'items': items}); |
93 | is(populatedSet.size(), 3); | 90 | is(populatedSet.size(), 3); |
94 | is(populatedSet.contains("item1"), true); | 91 | is(populatedSet.contains("item1"), true); |
95 | is(populatedSet.contains("item4"), false); | 92 | is(populatedSet.contains("item4"), false); |
96 | 93 | ||
97 | items.splice(0, items.length); | 94 | items.splice(0, items.length); |
98 | is(populatedSet.size(), 3); | 95 | is(populatedSet.size(), 3); |
99 | } | 96 | } |
100 | 97 | ||
101 | { | 98 | { |
102 | varitems; | 99 | varitems; |
103 | vardeletedItems; | 100 | vardeletedItems; |
104 | 101 | ||
105 | items = ["item1", "item2", "item3"]; | 102 | items = ["item1", "item2", "item3"]; |
106 | 103 | ||
107 | set = new Clipperz.Set({'items': items}); | 104 | set = new Clipperz.Set({'items': items}); |
108 | deletedItems = ["item1"]; | 105 | deletedItems = ["item1"]; |
109 | set.remove(deletedItems); | 106 | set.remove(deletedItems); |
110 | is(set.size(), 2, "here I am"); | 107 | is(set.size(), 2, "here I am"); |
111 | is(set.contains("item1"), false); | 108 | is(set.contains("item1"), false); |
112 | is(set.contains("item2"), true); | 109 | is(set.contains("item2"), true); |
113 | 110 | ||
114 | set = new Clipperz.Set({'items': items}); | 111 | set = new Clipperz.Set({'items': items}); |
115 | deletedItems = ["item1", "item2"]; | 112 | deletedItems = ["item1", "item2"]; |
116 | set.remove(deletedItems); | 113 | set.remove(deletedItems); |
117 | is(set.size(), 1); | 114 | is(set.size(), 1); |
118 | is(set.contains("item1"), false); | 115 | is(set.contains("item1"), false); |
119 | is(set.contains("item2"), false); | 116 | is(set.contains("item2"), false); |
120 | 117 | ||
diff --git a/frontend/gamma/tests/tests/Clipperz/index.html b/frontend/gamma/tests/tests/Clipperz/index.html index b4c4992..d4556eb 100644 --- a/frontend/gamma/tests/tests/Clipperz/index.html +++ b/frontend/gamma/tests/tests/Clipperz/index.html | |||
@@ -1,49 +1,46 @@ | |||
1 | <!-- | 1 | <!-- |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | --> | 24 | --> |
28 | 25 | ||
29 | <html> | 26 | <html> |
30 | <head> | 27 | <head> |
31 | <title>Clipperz.* - tests</title> | 28 | <title>Clipperz.* - tests</title> |
32 | <script type="text/javascript" src="../../../js/MochiKit/MochiKit.js"></script> | 29 | <script type="text/javascript" src="../../../js/MochiKit/MochiKit.js"></script> |
33 | <script type="text/javascript" src="../../SimpleTest/TestRunner.js"></script> | 30 | <script type="text/javascript" src="../../SimpleTest/TestRunner.js"></script> |
34 | </head> | 31 | </head> |
35 | <body> | 32 | <body> |
36 | <script> | 33 | <script> |
37 | TestRunner.runTests( | 34 | TestRunner.runTests( |
38 | 'Async.html', | 35 | 'Async.html', |
39 | 'Base.html', | 36 | 'Base.html', |
40 | 'ByteArray.html', | 37 | 'ByteArray.html', |
41 | 'Date.html', | 38 | 'Date.html', |
42 | 'DOM.html', | 39 | 'DOM.html', |
43 | 'KeePassExportProcessor.html', | 40 | 'KeePassExportProcessor.html', |
44 | 'RoboFormExportProcessor.html', | 41 | 'RoboFormExportProcessor.html', |
45 | 'Set.html' | 42 | 'Set.html' |
46 | ); | 43 | ); |
47 | </script> | 44 | </script> |
48 | </body> | 45 | </body> |
49 | </html> \ No newline at end of file | 46 | </html> \ No newline at end of file |
diff --git a/frontend/gamma/tests/tests/Clipperz/index_googleCode.html b/frontend/gamma/tests/tests/Clipperz/index_googleCode.html index 6e3249c..3878809 100644 --- a/frontend/gamma/tests/tests/Clipperz/index_googleCode.html +++ b/frontend/gamma/tests/tests/Clipperz/index_googleCode.html | |||
@@ -1,50 +1,47 @@ | |||
1 | <!-- | 1 | <!-- |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | --> | 24 | --> |
28 | 25 | ||
29 | <html> | 26 | <html> |
30 | <head> | 27 | <head> |
31 | <script type="text/javascript" src="../../../js/MochiKit/MochiKit.js"></script> | 28 | <script type="text/javascript" src="../../../js/MochiKit/MochiKit.js"></script> |
32 | <script type="text/javascript" src="../../SimpleTest/TestRunner.js"></script> | 29 | <script type="text/javascript" src="../../SimpleTest/TestRunner.js"></script> |
33 | </head> | 30 | </head> |
34 | <body> | 31 | <body> |
35 | <script> | 32 | <script> |
36 | TestRunner.runTests( | 33 | TestRunner.runTests( |
37 | 'Base.html', | 34 | 'Base.html', |
38 | 'ByteArray.html', | 35 | 'ByteArray.html', |
39 | 'NotificationCenter.html', | 36 | 'NotificationCenter.html', |
40 | 'Set.html', | 37 | 'Set.html', |
41 | 'Crypto/AES.html', | 38 | 'Crypto/AES.html', |
42 | 'Crypto/BigInt.html', | 39 | 'Crypto/BigInt.html', |
43 | 'Crypto/PRNG.html', | 40 | 'Crypto/PRNG.html', |
44 | 'Crypto/SHA.html', | 41 | 'Crypto/SHA.html', |
45 | 'Crypto/ECC.html', | 42 | 'Crypto/ECC.html', |
46 | 'Crypto/SRP.html' | 43 | 'Crypto/SRP.html' |
47 | ); | 44 | ); |
48 | </script> | 45 | </script> |
49 | </body> | 46 | </body> |
50 | </html> \ No newline at end of file | 47 | </html> \ No newline at end of file |
diff --git a/frontend/gamma/tests/tests/Clipperz/index_testECC.html b/frontend/gamma/tests/tests/Clipperz/index_testECC.html index 46572ab..bac17d1 100644 --- a/frontend/gamma/tests/tests/Clipperz/index_testECC.html +++ b/frontend/gamma/tests/tests/Clipperz/index_testECC.html | |||
@@ -1,50 +1,47 @@ | |||
1 | <!-- | 1 | <!-- |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | --> | 24 | --> |
28 | 25 | ||
29 | <html> | 26 | <html> |
30 | <head> | 27 | <head> |
31 | <script type="text/javascript" src="../../../js/MochiKit/MochiKit.js"></script> | 28 | <script type="text/javascript" src="../../../js/MochiKit/MochiKit.js"></script> |
32 | <script type="text/javascript" src="../../SimpleTest/TestRunner.js"></script> | 29 | <script type="text/javascript" src="../../SimpleTest/TestRunner.js"></script> |
33 | </head> | 30 | </head> |
34 | <body> | 31 | <body> |
35 | <script> | 32 | <script> |
36 | TestRunner.runTests( | 33 | TestRunner.runTests( |
37 | //'Base.html', | 34 | //'Base.html', |
38 | 'ByteArray.html', | 35 | 'ByteArray.html', |
39 | //'Crypto/AES.html', | 36 | //'Crypto/AES.html', |
40 | 'Crypto/BigInt.html', | 37 | 'Crypto/BigInt.html', |
41 | //'Crypto/PRNG.html', | 38 | //'Crypto/PRNG.html', |
42 | //'Crypto/SHA.html', | 39 | //'Crypto/SHA.html', |
43 | //'Crypto/SRP.html', | 40 | //'Crypto/SRP.html', |
44 | //'Crypto/ECC.html', | 41 | //'Crypto/ECC.html', |
45 | 'Crypto/ECC.BinaryField.FiniteField.html', | 42 | 'Crypto/ECC.BinaryField.FiniteField.html', |
46 | 'Crypto/ECC.BinaryField.Value.html' | 43 | 'Crypto/ECC.BinaryField.Value.html' |
47 | ); | 44 | ); |
48 | </script> | 45 | </script> |
49 | </body> | 46 | </body> |
50 | </html> \ No newline at end of file | 47 | </html> \ No newline at end of file |
diff --git a/frontend/gamma/tests/tests/Components/CardDialogEditing/CardDialogEditing_test.js b/frontend/gamma/tests/tests/Components/CardDialogEditing/CardDialogEditing_test.js index 21b6af6..d2136af 100644 --- a/frontend/gamma/tests/tests/Components/CardDialogEditing/CardDialogEditing_test.js +++ b/frontend/gamma/tests/tests/Components/CardDialogEditing/CardDialogEditing_test.js | |||
@@ -1,120 +1,117 @@ | |||
1 | /* | 1 | /* |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | */ | 24 | */ |
28 | 25 | ||
29 | Clipperz.Base.module('Clipperz.Tests.CardDialogEditing'); | 26 | Clipperz.Base.module('Clipperz.Tests.CardDialogEditing'); |
30 | 27 | ||
31 | Clipperz.Crypto.PRNG.defaultRandomGenerator().fastEntropyAccumulationForTestingPurpose(); | 28 | Clipperz.Crypto.PRNG.defaultRandomGenerator().fastEntropyAccumulationForTestingPurpose(); |
32 | Clipperz.PM.Strings.Languages.initSetup(); | 29 | Clipperz.PM.Strings.Languages.initSetup(); |
33 | 30 | ||
34 | Clipperz.Tests.CardDialogEditing.Tester = function(args) { | 31 | Clipperz.Tests.CardDialogEditing.Tester = function(args) { |
35 | args = args || {}; | 32 | args = args || {}; |
36 | 33 | ||
37 | Clipperz.Tests.CardDialogEditing.Tester.superclass.constructor.call(this, args); | 34 | Clipperz.Tests.CardDialogEditing.Tester.superclass.constructor.call(this, args); |
38 | //#this._user = new Clipperz.PM.DataModel.User({username:'test', getPassphraseFunction:function () { return 'test';}}); | 35 | //#this._user = new Clipperz.PM.DataModel.User({username:'test', getPassphraseFunction:function () { return 'test';}}); |
39 | this._user = new Clipperz.PM.DataModel.User({username:'joe', getPassphraseFunction:function () { return 'clipperz';}}); | 36 | this._user = new Clipperz.PM.DataModel.User({username:'joe', getPassphraseFunction:function () { return 'clipperz';}}); |
40 | 37 | ||
41 | return this; | 38 | return this; |
42 | }; | 39 | }; |
43 | 40 | ||
44 | Clipperz.Base.extend(Clipperz.Tests.CardDialogEditing.Tester, Object, { | 41 | Clipperz.Base.extend(Clipperz.Tests.CardDialogEditing.Tester, Object, { |
45 | 42 | ||
46 | 'toString': function() { | 43 | 'toString': function() { |
47 | return "Clipperz.Tests.CardDialogEditing.Tester"; | 44 | return "Clipperz.Tests.CardDialogEditing.Tester"; |
48 | }, | 45 | }, |
49 | 46 | ||
50 | //------------------------------------------------------------------------- | 47 | //------------------------------------------------------------------------- |
51 | 48 | ||
52 | 'user': function () { | 49 | 'user': function () { |
53 | return this._user; | 50 | return this._user; |
54 | }, | 51 | }, |
55 | 52 | ||
56 | //------------------------------------------------------------------------- | 53 | //------------------------------------------------------------------------- |
57 | 54 | ||
58 | 'run': function () { | 55 | 'run': function () { |
59 | var deferredResult; | 56 | var deferredResult; |
60 | var proxy; | 57 | var proxy; |
61 | varcardDialogController; | 58 | varcardDialogController; |
62 | varcardDialogComponent; | 59 | varcardDialogComponent; |
63 | 60 | ||
64 | proxy = new Clipperz.PM.Proxy.Test({shouldPayTolls:true, isDefault:true, readOnly:false}); | 61 | proxy = new Clipperz.PM.Proxy.Test({shouldPayTolls:true, isDefault:true, readOnly:false}); |
65 | 62 | ||
66 | deferredResult = new Clipperz.Async.Deferred("CardDialogEditing_test.init", {trace:false}); | 63 | deferredResult = new Clipperz.Async.Deferred("CardDialogEditing_test.init", {trace:false}); |
67 | //# deferredResult.addMethod(proxy.dataStore(), 'setupWithEncryptedData', testData['test_test_offline_copy_data']); | 64 | //# deferredResult.addMethod(proxy.dataStore(), 'setupWithEncryptedData', testData['test_test_offline_copy_data']); |
68 | deferredResult.addMethod(proxy.dataStore(), 'setupWithEncryptedData', testData['joe_clipperz_offline_copy_data_newVersion']); | 65 | deferredResult.addMethod(proxy.dataStore(), 'setupWithEncryptedData', testData['joe_clipperz_offline_copy_data_newVersion']); |
69 | deferredResult.addMethod(this.user(), 'login'); | 66 | deferredResult.addMethod(this.user(), 'login'); |
70 | //# deferredResult.addMethod(this.user(), 'getRecord', '8280842f41162b673335b63860637e8472e8bbff0efa2bc78b0dbc5e09712e13'); | 67 | //# deferredResult.addMethod(this.user(), 'getRecord', '8280842f41162b673335b63860637e8472e8bbff0efa2bc78b0dbc5e09712e13'); |
71 | 68 | ||
72 | // deferredResult.addMethod(this.user(), 'getRecord', '062af892bcfba49ffcff05c56d99b7af2d508358e39c058c2e1fc83531436f80'); //Linkedin | 69 | // deferredResult.addMethod(this.user(), 'getRecord', '062af892bcfba49ffcff05c56d99b7af2d508358e39c058c2e1fc83531436f80'); //Linkedin |
73 | // deferredResult.addMethod(this.user(), 'getRecord', '084e23120544603f0297368fd3891a3818e0fe13488e2f2c6079913c8d1bed8d'); //Example Attack | 70 | // deferredResult.addMethod(this.user(), 'getRecord', '084e23120544603f0297368fd3891a3818e0fe13488e2f2c6079913c8d1bed8d'); //Example Attack |
74 | deferredResult.addMethod(this.user(), 'getRecord', '13a5e52976337ab210903cd04872588e1b21fb72bc183e91aa25c494b8138551'); //Amazon | 71 | deferredResult.addMethod(this.user(), 'getRecord', '13a5e52976337ab210903cd04872588e1b21fb72bc183e91aa25c494b8138551'); //Amazon |
75 | // deferredResult.addMethod(this.user(), 'getRecord', '507f38b06d587d8889698ae1ebbba7ef8f0539b82550dd25779fd9ee88fc0c7a'); //MyBlogLog | 72 | // deferredResult.addMethod(this.user(), 'getRecord', '507f38b06d587d8889698ae1ebbba7ef8f0539b82550dd25779fd9ee88fc0c7a'); //MyBlogLog |
76 | // deferredResult.addMethod(this.user(), 'getRecord', '6026370f3db3860d2c46a08e389a7e906dc14f98c8444b21be9a7e9f405a2728'); //Del.icio.us | 73 | // deferredResult.addMethod(this.user(), 'getRecord', '6026370f3db3860d2c46a08e389a7e906dc14f98c8444b21be9a7e9f405a2728'); //Del.icio.us |
77 | // deferredResult.addMethod(this.user(), 'getRecord', '6c25be8e145efb26a1abd59590522f73fb2e3dbc139af2217074d9e2ba92c16a'); //Microsoft Office Key | 74 | // deferredResult.addMethod(this.user(), 'getRecord', '6c25be8e145efb26a1abd59590522f73fb2e3dbc139af2217074d9e2ba92c16a'); //Microsoft Office Key |
78 | // deferredResult.addMethod(this.user(), 'getRecord', '6d45c2fec275b7482d41c76b20507100cfb6ab49922b876f9dd3040d361f4a18'); //The NewYork Times | 75 | // deferredResult.addMethod(this.user(), 'getRecord', '6d45c2fec275b7482d41c76b20507100cfb6ab49922b876f9dd3040d361f4a18'); //The NewYork Times |
79 | // deferredResult.addMethod(this.user(), 'getRecord', '7bb69b6366a8012f181c01e368ba18d4f7a82bcabb4959189736ad124c4bbfbb'); //Web Password | 76 | // deferredResult.addMethod(this.user(), 'getRecord', '7bb69b6366a8012f181c01e368ba18d4f7a82bcabb4959189736ad124c4bbfbb'); //Web Password |
80 | // deferredResult.addMethod(this.user(), 'getRecord', '8b18e8593b5bc2f7ea39a5fab222047034ef2f380fee05be0fa6e1c0972fea39'); //Jaiku | 77 | // deferredResult.addMethod(this.user(), 'getRecord', '8b18e8593b5bc2f7ea39a5fab222047034ef2f380fee05be0fa6e1c0972fea39'); //Jaiku |
81 | // deferredResult.addMethod(this.user(), 'getRecord', '9dcd2a8a0fcb7e57d234dc4fea347f020a6a01793e40cf56a0d22379e590e291'); //Home Burglar Alarm | 78 | // deferredResult.addMethod(this.user(), 'getRecord', '9dcd2a8a0fcb7e57d234dc4fea347f020a6a01793e40cf56a0d22379e590e291'); //Home Burglar Alarm |
82 | // deferredResult.addMethod(this.user(), 'getRecord', 'ca01bcb7691f70818feed46c9a2a91883ac543997a395535aedbb49de166690c'); //MySpace | 79 | // deferredResult.addMethod(this.user(), 'getRecord', 'ca01bcb7691f70818feed46c9a2a91883ac543997a395535aedbb49de166690c'); //MySpace |
83 | // deferredResult.addMethod(this.user(), 'getRecord', 'd620764a656bfd4e1d3758500d5db72e460a0cf729d56ed1a7755b5725c50045'); //American Airlines | 80 | // deferredResult.addMethod(this.user(), 'getRecord', 'd620764a656bfd4e1d3758500d5db72e460a0cf729d56ed1a7755b5725c50045'); //American Airlines |
84 | // deferredResult.addMethod(this.user(), 'getRecord', 'de13c0d036234c44214062bc0a89e5f127470c464333493a485729f43cdc26e4'); //Luftansa | 81 | // deferredResult.addMethod(this.user(), 'getRecord', 'de13c0d036234c44214062bc0a89e5f127470c464333493a485729f43cdc26e4'); //Luftansa |
85 | // deferredResult.addMethod(this.user(), 'getRecord', 'eeda70e0392261967bda71c3764da78989c45bbd2bb7be6b941b90f81d9b81b5'); //Google Account | 82 | // deferredResult.addMethod(this.user(), 'getRecord', 'eeda70e0392261967bda71c3764da78989c45bbd2bb7be6b941b90f81d9b81b5'); //Google Account |
86 | // deferredResult.addMethod(this.user(), 'getRecord', 'f215d89bf4583c12f5ed4f4330f488dad3fffa448f4dc784f15ef135dda2c732'); //Expedia | 83 | // deferredResult.addMethod(this.user(), 'getRecord', 'f215d89bf4583c12f5ed4f4330f488dad3fffa448f4dc784f15ef135dda2c732'); //Expedia |
87 | // deferredResult.addMethod(this.user(), 'getRecord', 'fe21497ef7435d31f9746c132e4b5ecf5aac5f13b5961ddb55d2bdc3409f28f6'); //Bloglines | 84 | // deferredResult.addMethod(this.user(), 'getRecord', 'fe21497ef7435d31f9746c132e4b5ecf5aac5f13b5961ddb55d2bdc3409f28f6'); //Bloglines |
88 | 85 | ||
89 | // deferredResult.addMethod(this.user(), 'getRecord', '5cdac63b317f3942da38f3a3de3b7f0e5d6678200951c6216230295550f63fb4'); //WEB PASSWORD (0) | 86 | // deferredResult.addMethod(this.user(), 'getRecord', '5cdac63b317f3942da38f3a3de3b7f0e5d6678200951c6216230295550f63fb4'); //WEB PASSWORD (0) |
90 | // deferredResult.addMethod(this.user(), 'getRecord', '36ec1a41118813ced3553534fa2607d781cba687768db305beed368a8e06e113'); //DIGG (1) | 87 | // deferredResult.addMethod(this.user(), 'getRecord', '36ec1a41118813ced3553534fa2607d781cba687768db305beed368a8e06e113'); //DIGG (1) |
91 | // deferredResult.addMethod(this.user(), 'getRecord', 'c0ce9130ca365bb02418d4305ea1d29e49c3f0e96d44b9d3cb6b4b6843d25065'); //SAP (2) | 88 | // deferredResult.addMethod(this.user(), 'getRecord', 'c0ce9130ca365bb02418d4305ea1d29e49c3f0e96d44b9d3cb6b4b6843d25065'); //SAP (2) |
92 | // deferredResult.addMethod(this.user(), 'getRecord', 'd5f700b9c3367c39551ea49e00a9ab20dae09dd79d46047b983fc7c4bfaa050d'); //YAHOO (4) | 89 | // deferredResult.addMethod(this.user(), 'getRecord', 'd5f700b9c3367c39551ea49e00a9ab20dae09dd79d46047b983fc7c4bfaa050d'); //YAHOO (4) |
93 | 90 | ||
94 | // deferredResult.addMethod(this.user(), 'createNewRecord'); | 91 | // deferredResult.addMethod(this.user(), 'createNewRecord'); |
95 | 92 | ||
96 | /* | 93 | /* |
97 | deferredResult.addCallback(function (aRecord) { | 94 | deferredResult.addCallback(function (aRecord) { |
98 | return Clipperz.Async.callbacks("CardDialogEditing_test.init - setup new record", [ | 95 | return Clipperz.Async.callbacks("CardDialogEditing_test.init - setup new record", [ |
99 | MochiKit.Base.method(aRecord, 'setLabel', "Clipperz staging site"), | 96 | MochiKit.Base.method(aRecord, 'setLabel', "Clipperz staging site"), |
100 | MochiKit.Base.method(aRecord, 'addField', {'label':"URL", 'value':"http://d6.clipperz.com", 'isHidden':false}), | 97 | MochiKit.Base.method(aRecord, 'addField', {'label':"URL", 'value':"http://d6.clipperz.com", 'isHidden':false}), |
101 | MochiKit.Base.method(aRecord, 'addField', {'label':"USERNAME", 'value':"staging", 'isHidden':false}), | 98 | MochiKit.Base.method(aRecord, 'addField', {'label':"USERNAME", 'value':"staging", 'isHidden':false}), |
102 | MochiKit.Base.method(aRecord, 'addField', {'label':"PASSWORD", 'value':"drupal", 'isHidden':true}), | 99 | MochiKit.Base.method(aRecord, 'addField', {'label':"PASSWORD", 'value':"drupal", 'isHidden':true}), |
103 | 100 | ||
104 | MochiKit.Base.method(aRecord, 'createNewDirectLogin'), | 101 | MochiKit.Base.method(aRecord, 'createNewDirectLogin'), |
105 | function (aDirectLogin) { | 102 | function (aDirectLogin) { |
106 | return Clipperz.Async.callbacks("CardDialogEditing_test.init - setup new record [directLogin]", [ | 103 | return Clipperz.Async.callbacks("CardDialogEditing_test.init - setup new record [directLogin]", [ |
107 | MochiKit.Base.method(aDirectLogin, 'setLabel', 'Clipperz staging site'), | 104 | MochiKit.Base.method(aDirectLogin, 'setLabel', 'Clipperz staging site'), |
108 | MochiKit.Base.method(aDirectLogin, 'setFavicon', 'http://www.apple.com/favicon.ico'), | 105 | MochiKit.Base.method(aDirectLogin, 'setFavicon', 'http://www.apple.com/favicon.ico'), |
109 | MochiKit.Base.method(aDirectLogin, 'setBookmarkletConfiguration', '{ "page":{"title":"HTTP authentication"},\n "form":{"attributes": {\n "action":"",\n "type":"http_auth"\n }, "inputs": [\n {"type":"text","name":"url","value":""},\n {"type":"text","name":"username","value":""},\n {"type":"password","name":"password","value":""}\n ]}, "version":"0.2.3"}'), | 106 | MochiKit.Base.method(aDirectLogin, 'setBookmarkletConfiguration', '{ "page":{"title":"HTTP authentication"},\n "form":{"attributes": {\n "action":"",\n "type":"http_auth"\n }, "inputs": [\n {"type":"text","name":"url","value":""},\n {"type":"text","name":"username","value":""},\n {"type":"password","name":"password","value":""}\n ]}, "version":"0.2.3"}'), |
110 | 107 | ||
111 | MochiKit.Base.method(aDirectLogin, 'bindFormFieldWithLabelToRecordFieldWithLabel', 'url', 'URL'), | 108 | MochiKit.Base.method(aDirectLogin, 'bindFormFieldWithLabelToRecordFieldWithLabel', 'url', 'URL'), |
112 | MochiKit.Base.method(aDirectLogin, 'bindFormFieldWithLabelToRecordFieldWithLabel', 'username', 'USERNAME'), | 109 | MochiKit.Base.method(aDirectLogin, 'bindFormFieldWithLabelToRecordFieldWithLabel', 'username', 'USERNAME'), |
113 | MochiKit.Base.method(aDirectLogin, 'bindFormFieldWithLabelToRecordFieldWithLabel', 'password', 'PASSWORD') | 110 | MochiKit.Base.method(aDirectLogin, 'bindFormFieldWithLabelToRecordFieldWithLabel', 'password', 'PASSWORD') |
114 | ], {trace:false}); | 111 | ], {trace:false}); |
115 | }, | 112 | }, |
116 | MochiKit.Base.partial(MochiKit.Async.succeed, aRecord) | 113 | MochiKit.Base.partial(MochiKit.Async.succeed, aRecord) |
117 | ], {trace:false}); | 114 | ], {trace:false}); |
118 | }); | 115 | }); |
119 | 116 | ||
120 | // deferredResult.addMethod(this.user(), 'createNewRecord'); | 117 | // deferredResult.addMethod(this.user(), 'createNewRecord'); |
diff --git a/frontend/gamma/tests/tests/Components/CardDialogEditing/User.data.js b/frontend/gamma/tests/tests/Components/CardDialogEditing/User.data.js index 8065144..0e55ff5 100644 --- a/frontend/gamma/tests/tests/Components/CardDialogEditing/User.data.js +++ b/frontend/gamma/tests/tests/Components/CardDialogEditing/User.data.js | |||
@@ -1,120 +1,117 @@ | |||
1 | /* | 1 | /* |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | */ | 24 | */ |
28 | 25 | ||
29 | testData = { | 26 | testData = { |
30 | 27 | ||
31 | //------------------------------------------------------------------------- | 28 | //------------------------------------------------------------------------- |
32 | 29 | ||
33 | 'simpleLogin_001': { | 30 | 'simpleLogin_001': { |
34 | 'users': [ | 31 | 'users': [ |
35 | { | 32 | { |
36 | 'username': "joe", | 33 | 'username': "joe", |
37 | 'passphrase': "eoj", | 34 | 'passphrase': "eoj", |
38 | 'version': "0.2", | 35 | 'version': "0.2", |
39 | 'connectionVersion':"0.2", | 36 | 'connectionVersion':"0.2", |
40 | 'records':{ | 37 | 'records':{ |
41 | 'record 1': { | 38 | 'record 1': { |
42 | 'notes':"Some notes here", | 39 | 'notes':"Some notes here", |
43 | 'fields':[ | 40 | 'fields':[ |
44 | { 'name': "username", 'value': "joe", 'type': "text" }, | 41 | { 'name': "username", 'value': "joe", 'type': "text" }, |
45 | { 'name': "password", 'value': "1234", 'type': "password"} | 42 | { 'name': "password", 'value': "1234", 'type': "password"} |
46 | ], | 43 | ], |
47 | 'directLogins':{ | 44 | 'directLogins':{ |
48 | "record 1 direct login": { | 45 | "record 1 direct login": { |
49 | 'configuration':"", | 46 | 'configuration':"", |
50 | 'bindings':[ | 47 | 'bindings':[ |
51 | ], | 48 | ], |
52 | 'favicon':"http://www.example.com/favicon.ico" | 49 | 'favicon':"http://www.example.com/favicon.ico" |
53 | } | 50 | } |
54 | } | 51 | } |
55 | } | 52 | } |
56 | }, | 53 | }, |
57 | 'otp':[ | 54 | 'otp':[ |
58 | "12345678 90abcdef 12345678 90abcdef", | 55 | "12345678 90abcdef 12345678 90abcdef", |
59 | "fedcba09 87654321 fedcba09 87654321" | 56 | "fedcba09 87654321 fedcba09 87654321" |
60 | ] | 57 | ] |
61 | } | 58 | } |
62 | ] | 59 | ] |
63 | }, | 60 | }, |
64 | 61 | ||
65 | //------------------------------------------------------------------------- | 62 | //------------------------------------------------------------------------- |
66 | 63 | ||
67 | 'joe_clipperz_offline_copy_data': { | 64 | 'joe_clipperz_offline_copy_data': { |
68 | users:{ | 65 | users:{ |
69 | 'catchAllUser': { | 66 | 'catchAllUser': { |
70 | __masterkey_test_value__: 'masterkey', | 67 | __masterkey_test_value__: 'masterkey', |
71 | s: '112233445566778899aabbccddeeff00112233445566778899aabbccddeeff00', | 68 | s: '112233445566778899aabbccddeeff00112233445566778899aabbccddeeff00', |
72 | v: '112233445566778899aabbccddeeff00112233445566778899aabbccddeeff00' | 69 | v: '112233445566778899aabbccddeeff00112233445566778899aabbccddeeff00' |
73 | }, | 70 | }, |
74 | 'f527cdd90d0d47f8524b4e165398ad1455eba515d04abd101d1e93b3c6ae0674': { | 71 | 'f527cdd90d0d47f8524b4e165398ad1455eba515d04abd101d1e93b3c6ae0674': { |
75 | s: '186f0c40bf73f2af236eaa6c429df225efa933050c9aae65240e93b7b362e3ee', | 72 | s: '186f0c40bf73f2af236eaa6c429df225efa933050c9aae65240e93b7b362e3ee', |
76 | v: 'ac61a6e325ecf329926a86084f591d8852d0ad3e4a6080f2adc901b82395ecaf', | 73 | v: 'ac61a6e325ecf329926a86084f591d8852d0ad3e4a6080f2adc901b82395ecaf', |
77 | version: '0.2', | 74 | version: '0.2', |
78 | maxNumberOfRecords: '100', | 75 | maxNumberOfRecords: '100', |
79 | userDetails: '{"records":{"index":{"eeda70e0392261967bda71c3764da78989c45bbd2bb7be6b941b90f81d9b81b5":"0","13a5e52976337ab210903cd04872588e1b21fb72bc183e91aa25c494b8138551":"1","062af892bcfba49ffcff05c56d99b7af2d508358e39c058c2e1fc83531436f80":"2","ca01bcb7691f70818feed46c9a2a91883ac543997a395535aedbb49de166690c":"3","507f38b06d587d8889698ae1ebbba7ef8f0539b82550dd25779fd9ee88fc0c7a":"4","d5f700b9c3367c39551ea49e00a9ab20dae09dd79d46047b983fc7c4bfaa050d":"5","de13c0d036234c44214062bc0a89e5f127470c464333493a485729f43cdc26e4":"6","d620764a656bfd4e1d3758500d5db72e460a0cf729d56ed1a7755b5725c50045":"7","f215d89bf4583c12f5ed4f4330f488dad3fffa448f4dc784f15ef135dda2c732":"8","36ec1a41118813ced3553534fa2607d781cba687768db305beed368a8e06e113":"9","fe21497ef7435d31f9746c132e4b5ecf5aac5f13b5961ddb55d2bdc3409f28f6":"10","6d45c2fec275b7482d41c76b20507100cfb6ab49922b876f9dd3040d361f4a18":"11","9dcd2a8a0fcb7e57d234dc4fea347f020a6a01793e40cf56a0d22379e590e291":"12","6c25be8e145efb26a1abd59590522f73fb2e3dbc139af2217074d9e2ba92c16a":"13","6026370f3db3860d2c46a08e389a7e906dc14f98c8444b21be9a7e9f405a2728":"14","8b18e8593b5bc2f7ea39a5fab222047034ef2f380fee05be0fa6e1c0972fea39":"15","084e23120544603f0297368fd3891a3818e0fe13488e2f2c6079913c8d1bed8d":"16","7bb69b6366a8012f181c01e368ba18d4f7a82bcabb4959189736ad124c4bbfbb":"17","5cdac63b317f3942da38f3a3de3b7f0e5d6678200951c6216230295550f63fb4":"18","c0ce9130ca365bb02418d4305ea1d29e49c3f0e96d44b9d3cb6b4b6843d25065":"19"},"data":"6tqzHY7/lB/JVfDi3iJ7BIJTiX1Fih//aTUF7IDoLdlnafC9hoIQ/5lGk+/Ezilw59n11ocPN31aOA9ddFGc9oa2vQ1BdymV8F91sWGLGyWft+PRCWOqxy7U1XxvbgyRbCs0mbtSLp/qlC6gewnAXJpH6KT9oURIjKkyaR8jJ7ng6IlfGUIL2KUFnAv6KNoWO5cdXDU0nrrdSYehcApmXYlTyreHDbrFlLJ2YuR9JLvw9bDxXi/xBY1wZgwiUsGVlG3j0e4f63mJVrpmPI1jhaXD3BQD8cbl96l1ImhYe1Boz53gLq94KSk+3bkjG4GRhvlDPtvk8vdSZPsYPsbC0Cu0M4TMS70nPX7qNj5LDvzrd+S+zDj1/CW0yctRThXstrxDyG/L75k/xdZcVbMzXQHQR4OwWWFiqGOnLpyiZIHGfV5+xZ1a1uxT9TPDoDdwPuE5P1Uwh3PeGc9jatk3waQN6fo3g8PQrCOtPn7C7b6y4MEjpAG4e53HFb0B/hEfK6ApycT6QAglsA3qF/tZyZbwNCwert4pG52rIG/PODZ1XxVZHFX8VFWeSxuk/jnPpJg/pvfpRzBMyCGVDJb/i+dlwFcnOAVvqju5xXJk4mu05XrngF10NzHnVRMfxwXmdtTDYE/lDuODy1SiE5yBZlt/Ff6a0eMS/P8HLsUS8+dtz9yOIQ8rh+52nVS7F5tFWXFOvT7nfq1L4HaHCigY187Jk0Y3LCsZW6ziB5qhKZlbQxdCAx5UDNWNs/F59qxVWP5k2UagBgAJoh+iMTZAMWkaURqQxY84SVYIkm9vNZv6Jf+ppFJNn6s3ZZSUe8gmmgMPJP0Lmoh/VCPNypzR+sZULfVFpmPmNXfaAOQ875iDgvUuBWsDSBdyx2+8Q+fUO0w+W4WkDM09VGmFxrHHjfpRsOT1B3dVFti2ypyiCdkvm878pvTS2j4Obweh6+bmzE7lqOXJgtQUydKNZIb3hNbjB7LwPro6e70ctm3eM9OLFT73u+khVM2UtAhfMseEb+Ny+PldW+VgXnHFm8n5CDBHoDJPXBfJq60l6+1OnDPfB+7tIgnCVH56CZ0jFX2EbxWS63xAHNLttfMtxdbkf4AbpanqLJvNiU4P0ThW4+VNRKBid0v78WC40rWX4UTEv9HPvUA5JUsj1v6+I5UI+quCUfx0vQgeO/gAlI0YuVgDBB1ouWUSES9+U9QIGoUsVTHDo4ZOEInsnhjPbz+IFyRMoMfbiYx3gviHluxHNGYsIMFxo+yB8aW/CedyWYt54ijgViPIXhH+R8bMgFBX4JX6hu8l3NMSYvMV82ua9Pnyl7NxbwuL1S/0JAp2uh0OzGMX9iOOcFWqbWVAX7NCePAG4VTJ0wZ2iL/MUGAVG72qBWvCb1ckavQc1LTw8l2vPG6YwFf0frFHsVvZsGHRptswFTp+77U1bpn/TL2MUXJQ9gQWgCQHxE+STunbJDDWOe9FZeKkJgjqQQ2E70UFoyUp4U/H1fA5Sy9+gS8QMtOcPJ6tCbcIXnq1nif+6bDBjtQCofs59Mm7ibwnofXPGkWv8Id3SyhW9YZCYhJZss2dkMyWfqw4jDysWxQAHjxZg4qgVXA9xpwuhu7O82vMOutk7vPyEuJ4gqlDroN4aPecD405YOEXWeWrWsL2V3y5PwXBrYWq22XzJeL3PvS9usj1Vg2TtG2O3HLuB6Rm6+i7kraiRbENemst4MjLrZwYjI07ZD7DUifsrUvjA50JXXb8pjudYqwUrTKOzcE/uZ1WbSbm+2x8PYVimLtDE4/lOp34J07WV7ZxJL8yk4J4CYRxLnnS7xps8skfy6glRA8fTKRVLv+9VqVxJgE3X/G8Kfosd9K03DJbD+L+h3kvLAAZ6Xr6FpbnA5HeGXzfQ/k5lBqIS39iqT2kZKMxIOXhfwmmuTSS25nk7hD+0R1TdnnTOYQrEn8bdyPuFXzd08FxN9KSYm2H1Gdg+2h+N9UWTED7zXmv/H+gfzk5gfoNOKyWWoaEFT/NL3ky6ApzuiokUj3x+xvCwOXoozLHXhdeZYtYkIu1HlYWQx1YAk2ilg47nnRhQQaYjMvIHfsdYjdb1CpGO5K1dYlRBOCMttp+j5QVz/jCSeCrMh8dtu9ZGLEZ3QL06tqmXp03fCsvKOG0it/KuNG5EJpfb6bV+5DsZvI6k4VLXjcKvZhhh+VZSf2mr+mzFEGKBSeleZvii2g8dVyaEBms37SBFCdIwkMxFRmzo/n+1m8axx9o57NPwISU4q8eAjUK2bWrBECZaI4FwLqmlGK9hMPGB/lbrcuHtlqmv5qzo2TJb5/xoX0LyJB/FZVk5Wsm8vC+O8b7o6JDxaPkOgy07+p8Sg9wuKVy6hHrFRnZ+MEZO3Bbk74omg4+6y4HVuRCgxztzRyUiYTssFphqKBsC/e6fQN0QtSwhLSld/B5qoPMn/9CMs8UxmRbA2Ekwi+7Ss51YsWNmd8dKUqxMKWFZOQYe2dbvcYbRwKwjrARxR7d5aaQr8b96hKsWs0YkLQDn71C3AQfEUvClvDXJdJ97B9WkDHz/DQ9EaIp9+4ZSl3SIrew09vUkvUSVGU7egHzv1Oe2gf4jI/3zToRq307AzCT1tF4k0VbInDFKb8YSG35UaJAtfTENvkAQ+8KmR3gQyHRupLi6D8TNvy/03n8naG8BV8+EArzmUAgxmfv3PTipnn3bdsaIFK1+uldQXVUoHm7PgZidzOHpNXvNzgrL3c3gv7Et/s="},"directLogins":{"index":{"61e87fdc4f1d9112e3b30c1f6812d095dcdb24f014c83319091eb6c9899ec348":"0","989593d4c48929f0c8f1581aa96969c622807e99619ed4732026e967530a68ad":"1","9f7979368fa29f66c44bd97ecaf6c545abc800b1c7bb21b7655a68e1514c3906":"2","dba0db679802f0e6aa6d0b7a6aaf42350aabc5f057409edd99a268a92ebb6496":"3","aa18149164302d5dbe7e2d3724565b9550e00887b49978559783b2e38c625584":"4","1f9bfd677b531a03168d3f8bd8afabb5357244a7bc355dff50bd6c0a072114a6":"5","a48e38845713462ecc9f827149eeaae87da882031f98ef8ebbf9ee9537b63468":"6","6f7bbc4e42ea462b5246e6f51c3f86056bec50601ce2de6067c8c1d26f21c07f":"7","2df54059e78f5771f23bd285cce19595b38331b73d67020424d9a1b2257db09c":"8","065cd0c270e5e8ce50e4ea8e3828dccdae18c01ab030813d756a87d03fe68784":"9","ddbc8d01300a4f10631cbde09e1246332eade3a877a2205209f9eb9e5bc9da0b":"10","9b7a30e667afc9f76ba77600658b2c13bff52432d444261d39bf3d069a160afe":"11","9fd2929cde3d32d9cbc5f1d787f2f64729a5e12a14410556b31c0c099762c46a":"12","f695fc36ac56bead80c0d20a88e01e382819c18dc268f1679551b7c83db7cb14":"13","f22dc41ffabef4b3bc8f7af804fec975bd50718098322a673cbe4aaff9464ae1":"14","03251dc1cbc5398789e4c4b45c52cfac3fcd8c1a4f19a81fa68fc6feae31d55c":"15","a7b32e72502804bf2946a2a8856139cbbb759c5777e6b3e673db1fdf7e3bd06e":"16","cb9ae0bba1957075ccdbfd3b3481704d62087687a2ac7c411a4f07d444bde0f7":"17","7e1d069b7fa57c03bd7bf48807520feb953157834503aaff8c9d493f37dea69d":"18","24404059cabc63b2dbff0f42ba57183108b8189ef53ab62fa25141a1caea824b":"19","33cf9758477460a8056deef0295a1ebe65b39b392c361ceb920a83edacfe5d78":"20","e9a16316f330e3d150f6ffd194f6fd8acd1426757b097de4b88ca0db875202e4":"21"},"data":"xuiWbu5GjkueQhyH6sKg5Cn9/CSsPIjYgbhaHmjgwnnB+GL8UO5u0uURxTY6tkG2HbaFRpYZwLnqUUulEkVY6iNqJajFI0qDtrKams11cF2y9LaAalbqyv6U7EUt76d666DkXW8tf88nJ4HYfyAhhPCJ0cw5053K9BAVPbQM7fMA4MYY29k45U3HcIKNZcNqMftCc+fZB+fmZl1g7mSbrXaZyagRkwWwTdJ6/ecVOSSVOkWpckAaQWzGhwbO6zVWLtR9XQReIQZV52TwDMnV5IYJHnlw0Uvv2ZCVSu/oMN2TneW5fcIwQ0x/SRe+n4Mklzucpvasza+ZhRaRUFS53kvmbfPFI5tXqB3Z1+9S7LRLr9Ws97suTQ6G5eW6jKT2vf65ehnQJtA/gW6uwH+3IAT7ukFxO1knaRf7dRJDLuIc4Xnh+bRDnZUqfA+B+04pp6r0OS9oysD35t/HydVFeHgoyMCbL4RzduZvmu7y16WhIznn0DEfRmrYmC68C+DNcAbxeiXU8v14PgGycIg1++0v44Qor/BXfP5JW4WnYjVLW3aXN3FgI5rPuN6PqTzMn7z+eF2V28GNss5pui1xIbR2bTECAAnaRQiaz98F1LH4z5kYG1ehmyjIOLqz1nAv3Kuo7+DZKaSez4nX1oWznbXEnwd6uguukcCGpQllZoHYso/fz07e6p/9fskXPmg7LnMMHApP7Vay6XPhXV/AG0imU7uREFLbgnw3305Ey9fslmD8qCzi8LlqNALEt1TFNpAukvqodkv8V1o6zqzYNMSKaqJV4E9dWMNDpOFFTKv1FuZjZfzyPwyCcePgP7vcJGtUSYqRJwl56Ia8UA+l3FBiX8DCSW3GkG+wusf7bZ5kV6lV5DQJTScIyFxWwcECJ5S8/2QaBPTopeLo2NuMmFwjUwhBGVrDkUmtqjfb6DSfr/dR6AbmraRLXrpd/KUN7wWgp5GdLUAKNT+RdsUc0mLsLF3oT+XshfgfsQqi/pDnX9x3QfH/WuRtoywAIE5APU8Rnl+1NGsEidzeYrBnryA8VRi9vxfhuaxe3+rx1ewB1pgVSERPLF+0MYtetug01yRSxEUYJgYHxQmfnmkCoz+kKCejdpYVqKC+RzhjIMytRbFXNmS0NpRmtBxZrSIskKXjjwjUeEzMAttqAPC4IK1kt5IK+5NZPNZbf2Y8qDsWcBNXfw5sh7pJymRwPCge+S5Jy69tadeSAWpX1YMuq+By/o2KWawpokstxmE6w2RNPFhKXtGPvukoDnpV9wDFgBcoNDJctDVdIPqNolLxn6Y57HoOid6CO2s+PqQcfZSEo7V70Rk6OQ+02M0ED0/4XGq6vflc6IlQ5LO1urRT4INrAQmWdulHnmLf+HESJAc0ZICO1T73aQVaGVVHFQxDMVgaTer1UXP1xxfB1tazfJme2aycsDM1WS5lTwMRRlvgwupkzS+YwGq+nB1QFsZknKgeoacGYxQjFo6EGvszitNU+sK4U/EeAShS/nM/96c10awZVwQnal5T9sYOO31mA2pxyI4TwxkgWw2wkj38msz+8afHvPlFlqlU0UiEm7hYMj5s4L08msIY+GVc7tGgaRYklsnRFUU6s0Kql8BLPkbpdM9RAoSczy4tlGlaBAPeC6ouPgyNf1+VRfVZnqlPF063ok1KcEbd6QqQHo0kgsUMLbtdPbe752dmUo64sZXkuDKISmFEwQjn3SN4K7OOg9sk5QEz1STMvm8pazq1yb+0CE1iad5e+HoNkrGT+5GSVX+YShiItu5eyZXjZ7m8GQ2HZTA7mgv6FwGSI6o0URPIRk/UgKMCggTSat2gf3oVk+aZvRCvkGg+ISjkEKk49tQasLDAfvVjdue2JHpM1UwNhTlurHNasqnwNEzFzhflsMuM+V7dv/6/3AiJBUSC9Oyd/kWRpt5DS0nW+BkBcL5eBoofyssj0tAqxpWe+nNwCL9ljVPdytQCHWp71xEqnDxSq1KWV7u57MmBSaGStdyWtShBvEQdHQIDpXz8HVfOWOxQKttNYkupVJcbYhHNicwLzc3Ox1TaT/trfkmTXT80XXfQA83Ls1VVsYKjHDBT5/bIOx3IzjS0KNl7C5E8BuggSL69t8ogHSOKwH9CugZje3vj0BuzhZsl65k1i/pNS+vYwOifv6BhhbgWS6D2s9+a1Xi5YLGLE/EvMlw82N+o/owUluZ2vhekbYJ0HkuyrL+18l0L5B+8iJS62LzdD+hC93cGxqD9RVQA37yxzpN33l2y6teSrypYU7j2hMVv1l0Y6JU0l5itSdWT3VmWyHzdKLYNFjpA2WY3UgvsWRTJfFYzFEYUu2V6OqY7HzUiuKcVTYwB5Ky2qESzmIFiLRv0E9E+fVoYTKjk8v2gDaNwKWq7AJTabgeNaQVif3lUdZ1oQerb6aRc7PBBBKBD1YE3S8+wJ6C4MIs+XIxuJvjhhbOav5Q+G9Tk251dlt44cWQ61sCPi5pCMAgzcwRH2+ZQOZeYslt6g4XS3TorVlHveIpQkBOPvzO3fUkfUQzKPZ1QXFIBZnTLLIcsV+L/tt5kep9ucrqUjNcREPODf+nM/mQlfLGT8SLU9r2zMFkMm4zXNWswWTsXO7zm1YEErAtyggWff6gM66wz1dnNMiVXMQ=="},"preferences":{"data":"EZMrwxNFFd1sMGycoYE7IrlGGrfLixLUnLZmWMkFysfISe2ay3ueO0PGCApuKqh9hA=="},"oneTimePasswords":{"data":"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"},"version":"0.1"}', | 76 | userDetails: '{"records":{"index":{"eeda70e0392261967bda71c3764da78989c45bbd2bb7be6b941b90f81d9b81b5":"0","13a5e52976337ab210903cd04872588e1b21fb72bc183e91aa25c494b8138551":"1","062af892bcfba49ffcff05c56d99b7af2d508358e39c058c2e1fc83531436f80":"2","ca01bcb7691f70818feed46c9a2a91883ac543997a395535aedbb49de166690c":"3","507f38b06d587d8889698ae1ebbba7ef8f0539b82550dd25779fd9ee88fc0c7a":"4","d5f700b9c3367c39551ea49e00a9ab20dae09dd79d46047b983fc7c4bfaa050d":"5","de13c0d036234c44214062bc0a89e5f127470c464333493a485729f43cdc26e4":"6","d620764a656bfd4e1d3758500d5db72e460a0cf729d56ed1a7755b5725c50045":"7","f215d89bf4583c12f5ed4f4330f488dad3fffa448f4dc784f15ef135dda2c732":"8","36ec1a41118813ced3553534fa2607d781cba687768db305beed368a8e06e113":"9","fe21497ef7435d31f9746c132e4b5ecf5aac5f13b5961ddb55d2bdc3409f28f6":"10","6d45c2fec275b7482d41c76b20507100cfb6ab49922b876f9dd3040d361f4a18":"11","9dcd2a8a0fcb7e57d234dc4fea347f020a6a01793e40cf56a0d22379e590e291":"12","6c25be8e145efb26a1abd59590522f73fb2e3dbc139af2217074d9e2ba92c16a":"13","6026370f3db3860d2c46a08e389a7e906dc14f98c8444b21be9a7e9f405a2728":"14","8b18e8593b5bc2f7ea39a5fab222047034ef2f380fee05be0fa6e1c0972fea39":"15","084e23120544603f0297368fd3891a3818e0fe13488e2f2c6079913c8d1bed8d":"16","7bb69b6366a8012f181c01e368ba18d4f7a82bcabb4959189736ad124c4bbfbb":"17","5cdac63b317f3942da38f3a3de3b7f0e5d6678200951c6216230295550f63fb4":"18","c0ce9130ca365bb02418d4305ea1d29e49c3f0e96d44b9d3cb6b4b6843d25065":"19"},"data":"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"},"directLogins":{"index":{"61e87fdc4f1d9112e3b30c1f6812d095dcdb24f014c83319091eb6c9899ec348":"0","989593d4c48929f0c8f1581aa96969c622807e99619ed4732026e967530a68ad":"1","9f7979368fa29f66c44bd97ecaf6c545abc800b1c7bb21b7655a68e1514c3906":"2","dba0db679802f0e6aa6d0b7a6aaf42350aabc5f057409edd99a268a92ebb6496":"3","aa18149164302d5dbe7e2d3724565b9550e00887b49978559783b2e38c625584":"4","1f9bfd677b531a03168d3f8bd8afabb5357244a7bc355dff50bd6c0a072114a6":"5","a48e38845713462ecc9f827149eeaae87da882031f98ef8ebbf9ee9537b63468":"6","6f7bbc4e42ea462b5246e6f51c3f86056bec50601ce2de6067c8c1d26f21c07f":"7","2df54059e78f5771f23bd285cce19595b38331b73d67020424d9a1b2257db09c":"8","065cd0c270e5e8ce50e4ea8e3828dccdae18c01ab030813d756a87d03fe68784":"9","ddbc8d01300a4f10631cbde09e1246332eade3a877a2205209f9eb9e5bc9da0b":"10","9b7a30e667afc9f76ba77600658b2c13bff52432d444261d39bf3d069a160afe":"11","9fd2929cde3d32d9cbc5f1d787f2f64729a5e12a14410556b31c0c099762c46a":"12","f695fc36ac56bead80c0d20a88e01e382819c18dc268f1679551b7c83db7cb14":"13","f22dc41ffabef4b3bc8f7af804fec975bd50718098322a673cbe4aaff9464ae1":"14","03251dc1cbc5398789e4c4b45c52cfac3fcd8c1a4f19a81fa68fc6feae31d55c":"15","a7b32e72502804bf2946a2a8856139cbbb759c5777e6b3e673db1fdf7e3bd06e":"16","cb9ae0bba1957075ccdbfd3b3481704d62087687a2ac7c411a4f07d444bde0f7":"17","7e1d069b7fa57c03bd7bf48807520feb953157834503aaff8c9d493f37dea69d":"18","24404059cabc63b2dbff0f42ba57183108b8189ef53ab62fa25141a1caea824b":"19","33cf9758477460a8056deef0295a1ebe65b39b392c361ceb920a83edacfe5d78":"20","e9a16316f330e3d150f6ffd194f6fd8acd1426757b097de4b88ca0db875202e4":"21"},"data":"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"},"preferences":{"data":"EZMrwxNFFd1sMGycoYE7IrlGGrfLixLUnLZmWMkFysfISe2ay3ueO0PGCApuKqh9hA=="},"oneTimePasswords":{"data":"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"},"version":"0.1"}', |
80 | statistics: 'SfGy/4mpXQdDOv+Bcfie4Yt/', | 77 | statistics: 'SfGy/4mpXQdDOv+Bcfie4Yt/', |
81 | userDetailsVersion: '0.3', | 78 | userDetailsVersion: '0.3', |
82 | records: { | 79 | records: { |
83 | '062af892bcfba49ffcff05c56d99b7af2d508358e39c058c2e1fc83531436f80': { | 80 | '062af892bcfba49ffcff05c56d99b7af2d508358e39c058c2e1fc83531436f80': { |
84 | data: '7sgxSQlqR+wh3g06M2+sWp7raQxjjQ9jLIz2OcEB7SckuQcXNrhMlDCbL6ncSljtzgqhioWrOB409kIG8lc7h6ekghOE/Mhi7rVwAiRfNGB7r3mYxpEXRe96O2RG7E+NcSp8ezl+5gJ9D0o1abXPeFQYGcr95hUioCfyY+xrxY8TJVwdb9nHkYvBdKV7rCl1dTxgsKWK3nlo1T7e5uyiz5YUAE6BrCtTFAqtprLI/xOpRti9C+llohS7D6s8hkCBPZfp3chKFDrgpsCBFLhXN8jrBKSjHi1PJdRQzpJsgrxyeBj0dZx3gTsYOXqrYgdIzFUo7K1Tqb30yNprBiDMr7j0YYXiSvEb7OuOIP+HTXGN+yt09bk9LggyY6Fh0e+tenjQQ3soySN/XznOBpEjXbzXoz6fR1MXVnE9GgaX99LVNqwWfq2rIBdSE/FfspRiWP3BY5jIrEkNeRclS05U1zw3K3wxOL+cB9r2IynSXnK8QcrDNNRZ0W3PhsSFfByUXuviLSEOPuJa1mYP29L9Lj/WyHL1Gyl8xLbt2H41S6+wvIleKMuc7teH6wPXbnYphvbwBowoI6HZTEFkz3dQKhhY6VF/81iCXsuaz6BjyrzFX6SkQ4S3lN1tv4opQMJFvnmHb6EkXqVWfeIXzJIJO+owL4vDOf4okpAD+HPjjlVXhq6fvyM5UBIK9+tzJW78X/zifrQOfWRIhwjVsfUdZWmZ/S35vnHWNuXkM8GBYrDysqxanDtah3U8XLAiIhFtBOzpzr6qGaNDOKKgG3K8QXT4bYHOq1rQVUwzQuKhlCyStrRMQrC5Ry251xmLy6dKfppRarVeGDtzB/30BbtFNdZmzMNG2g+Jj5tFCrEtCMvMiQEWZHMU3tGMFxDef/KKdv1fFTJC16jmaUiCHUZmNjB3EO9R6xPVcMlAVKf57n3efrpRk/GTmm9JhAFkuF/wsveH4JjPpDUdkHYFu5tHbb30sbga3ufBAXbQL4ck10S24akU/cKraFGLvuKGaR2U0i6ih911TBSf3pAfZ3RFbBhVIl+6rSknC5+IXoBR7MRstBPW/xC9pQVjN5Qyn0g3aUjUSI+q4jcTuvMl32NtTJbWRMGhfkrpVzypZTyPnIh6XJkyBghlUARXw23MlbjiZxmY4ScDmcWZRZJWIknHlqjDKFDKNnwrfnEI9qWyMDno+jA/DEQz0mnpdZYEsoz1/qAmAeDt89vx', | 81 | data: '7sgxSQlqR+wh3g06M2+sWp7raQxjjQ9jLIz2OcEB7SckuQcXNrhMlDCbL6ncSljtzgqhioWrOB409kIG8lc7h6ekghOE/Mhi7rVwAiRfNGB7r3mYxpEXRe96O2RG7E+NcSp8ezl+5gJ9D0o1abXPeFQYGcr95hUioCfyY+xrxY8TJVwdb9nHkYvBdKV7rCl1dTxgsKWK3nlo1T7e5uyiz5YUAE6BrCtTFAqtprLI/xOpRti9C+llohS7D6s8hkCBPZfp3chKFDrgpsCBFLhXN8jrBKSjHi1PJdRQzpJsgrxyeBj0dZx3gTsYOXqrYgdIzFUo7K1Tqb30yNprBiDMr7j0YYXiSvEb7OuOIP+HTXGN+yt09bk9LggyY6Fh0e+tenjQQ3soySN/XznOBpEjXbzXoz6fR1MXVnE9GgaX99LVNqwWfq2rIBdSE/FfspRiWP3BY5jIrEkNeRclS05U1zw3K3wxOL+cB9r2IynSXnK8QcrDNNRZ0W3PhsSFfByUXuviLSEOPuJa1mYP29L9Lj/WyHL1Gyl8xLbt2H41S6+wvIleKMuc7teH6wPXbnYphvbwBowoI6HZTEFkz3dQKhhY6VF/81iCXsuaz6BjyrzFX6SkQ4S3lN1tv4opQMJFvnmHb6EkXqVWfeIXzJIJO+owL4vDOf4okpAD+HPjjlVXhq6fvyM5UBIK9+tzJW78X/zifrQOfWRIhwjVsfUdZWmZ/S35vnHWNuXkM8GBYrDysqxanDtah3U8XLAiIhFtBOzpzr6qGaNDOKKgG3K8QXT4bYHOq1rQVUwzQuKhlCyStrRMQrC5Ry251xmLy6dKfppRarVeGDtzB/30BbtFNdZmzMNG2g+Jj5tFCrEtCMvMiQEWZHMU3tGMFxDef/KKdv1fFTJC16jmaUiCHUZmNjB3EO9R6xPVcMlAVKf57n3efrpRk/GTmm9JhAFkuF/wsveH4JjPpDUdkHYFu5tHbb30sbga3ufBAXbQL4ck10S24akU/cKraFGLvuKGaR2U0i6ih911TBSf3pAfZ3RFbBhVIl+6rSknC5+IXoBR7MRstBPW/xC9pQVjN5Qyn0g3aUjUSI+q4jcTuvMl32NtTJbWRMGhfkrpVzypZTyPnIh6XJkyBghlUARXw23MlbjiZxmY4ScDmcWZRZJWIknHlqjDKFDKNnwrfnEI9qWyMDno+jA/DEQz0mnpdZYEsoz1/qAmAeDt89vx', |
85 | version: '0.2', | 82 | version: '0.2', |
86 | creationDate: 'Wed Mar 14 15:46:44 CET 2007', | 83 | creationDate: 'Wed Mar 14 15:46:44 CET 2007', |
87 | updateDate: 'Wed Mar 14 15:46:44 CET 2007', | 84 | updateDate: 'Wed Mar 14 15:46:44 CET 2007', |
88 | accessDate: 'Mon Jan 19 16:10:04 CET 2009', | 85 | accessDate: 'Mon Jan 19 16:10:04 CET 2009', |
89 | currentVersion: '4a70ca20167875a936d4540f19980e972c20f329a65d85e9b0ce709f1fc7c7e3', | 86 | currentVersion: '4a70ca20167875a936d4540f19980e972c20f329a65d85e9b0ce709f1fc7c7e3', |
90 | versions: { | 87 | versions: { |
91 | '4a70ca20167875a936d4540f19980e972c20f329a65d85e9b0ce709f1fc7c7e3': { | 88 | '4a70ca20167875a936d4540f19980e972c20f329a65d85e9b0ce709f1fc7c7e3': { |
92 | header: '####', | 89 | header: '####', |
93 | data: 'GCNNIhDQjMJQZGVSf+95fPtU6eOnFWVhuGm86r8WZGVR2Gf2EjbG1OJ0ZIGpZ/AXgirCMpo5AFxJe0Bay8IYg+xmBqMFhwFxzAgJBYCIts+raSaNRipuY8dTEqDxAqD1cChcG8EhSoiFgQ0fG0I7nNEUDJi0pIt4/ygBcwvAhuAenEp9ZW+oQA0+YysPQRqkz3IieFaOoSEbe5/SqpUilV4q1gTVyzNXvrxzxx+rlvEyGFgFN+vgtUZ1NrwlPk4gVksTpylvv6CFaMGEWKhgMG6efo0rJckKosaJTu1pldJdnmMK4EKNMLOd+jZ6pEhEhYyadrA4+zYU5TlmZA6ASzTaps8piSwZodoi9qY0ch2StK4mAbzeEGe2HdfHuAU9Tyq3Ppk3+VfNdKgpQfYrQOiSlXbKzK636tzXTN/gyrfOTHjBrRl117ywibgSX63ayAYNfcLpKotC', | 90 | data: 'GCNNIhDQjMJQZGVSf+95fPtU6eOnFWVhuGm86r8WZGVR2Gf2EjbG1OJ0ZIGpZ/AXgirCMpo5AFxJe0Bay8IYg+xmBqMFhwFxzAgJBYCIts+raSaNRipuY8dTEqDxAqD1cChcG8EhSoiFgQ0fG0I7nNEUDJi0pIt4/ygBcwvAhuAenEp9ZW+oQA0+YysPQRqkz3IieFaOoSEbe5/SqpUilV4q1gTVyzNXvrxzxx+rlvEyGFgFN+vgtUZ1NrwlPk4gVksTpylvv6CFaMGEWKhgMG6efo0rJckKosaJTu1pldJdnmMK4EKNMLOd+jZ6pEhEhYyadrA4+zYU5TlmZA6ASzTaps8piSwZodoi9qY0ch2StK4mAbzeEGe2HdfHuAU9Tyq3Ppk3+VfNdKgpQfYrQOiSlXbKzK636tzXTN/gyrfOTHjBrRl117ywibgSX63ayAYNfcLpKotC', |
94 | version: '0.2', | 91 | version: '0.2', |
95 | creationDate: 'Wed Mar 14 15:46:44 CET 2007', | 92 | creationDate: 'Wed Mar 14 15:46:44 CET 2007', |
96 | updateDate: 'Wed Mar 14 15:46:44 CET 2007', | 93 | updateDate: 'Wed Mar 14 15:46:44 CET 2007', |
97 | accessDate: 'Mon Jan 19 16:10:04 CET 2009' | 94 | accessDate: 'Mon Jan 19 16:10:04 CET 2009' |
98 | } | 95 | } |
99 | } | 96 | } |
100 | }, | 97 | }, |
101 | '084e23120544603f0297368fd3891a3818e0fe13488e2f2c6079913c8d1bed8d': { | 98 | '084e23120544603f0297368fd3891a3818e0fe13488e2f2c6079913c8d1bed8d': { |
102 | data: 'fGzBu1On7e/6rAoSB1a4fq/CkS8Be/T8UP5cQ93asBTWndSYu2lW4DQ4SXQXSindIi3OnNx/f6SNv/extb7OrMLREF92wXI045ipPwy+DIICb+cQNMJ82Sh4cXaIcAWcyrm+MYri3qq9LBKbpwkILcebZidJ86lmKYHJozUezmfbMcwNCljHs/gYkHVzVcuw9L52Ugc6wC7sjsshh+UH6i4/2Frlrophtx+b1vervNd8eoYiKnedHVXVfW7UJcQoF27eHFgzwYnGvRW0KNXFFhqmPb61TSkIvNdCCvBKDP4SXrWvGgzU89wipvWdUPpQ+fCT6Mp3hPRrbJxwMunmjujZOzBld/HkjnXoiNfBb5akA280WvdyzWYATrjV1ZFx8yQY8G0+lRt/MxjKDc38w4y+Rf5WeRbXboJMvFatwooHUggk6qSRmZVvgOmFmNuDRnRYIFzqK3JclhJeVasnqhR6RiGSowc1Ffr1HhcZCMnXpQABGBkZcHD/zw6YjHRyh9Plw7XAm0xb16HMDtiwt7WLJpxLH/HP99j/A2hvMGWiUiFCaYv7AzyEPTmYbN32D1IsAEE/GC3FG0HypGTBolP8wpAfTRdlvWpJz8oRRdwuLV3Pgpu+kXh5sQyeZI6tnuMPQFmRDcMN1oo3E5V5V585nVMnKTFcXhBzD4UnoV+DQNkG/+iSPybQzz/EZmucEqGEYyjI3kl4MAX8UMEUxE4JO0fF8MzyBI13nxknowAceEammx1dGVaJCoIOdhadaPVPyOzXM1Vp1erVm5k4TsxSx1pll+GOm6hVoNHIuQLDueaMEpRxMhfwc8cDyXURqRGPTgTc0bint5xVjo10fnpX1gcdc/AWL6y3tXM80NW+uFJ4GI7VzyzfcMRzTiRaGi19z8MIx8PbIVGh2sw4FhgGujNsPrpuESvUVT+17M0+v8oEoABNlcizTMFs/sA1uqlPumFASltzmViAzClOsDuCh069hFLjdk/Ex5jy4vPYlwOT8Uq9DJC9ZWuZgiI1DrhWN/8QGAEGxxbvnSZPNCQ9kpD5p+iabinLLWOAirVNgKwIRJRyAu/uR9xKd7J9Wxq8q/ii+y5lGilbo2g24wbDwrkXYVhqp/4J0g+p8Wv1NBjCTSCqV39WEizUCRHo3ee9HnQnBJQDOyTBRuz2odTJtJ5tLYjWXZRdFzFSJrEq+Z1z3oq7LnhZy3YWaFXPeKmBCemMthtNt0nL', | 99 | data: 'fGzBu1On7e/6rAoSB1a4fq/CkS8Be/T8UP5cQ93asBTWndSYu2lW4DQ4SXQXSindIi3OnNx/f6SNv/extb7OrMLREF92wXI045ipPwy+DIICb+cQNMJ82Sh4cXaIcAWcyrm+MYri3qq9LBKbpwkILcebZidJ86lmKYHJozUezmfbMcwNCljHs/gYkHVzVcuw9L52Ugc6wC7sjsshh+UH6i4/2Frlrophtx+b1vervNd8eoYiKnedHVXVfW7UJcQoF27eHFgzwYnGvRW0KNXFFhqmPb61TSkIvNdCCvBKDP4SXrWvGgzU89wipvWdUPpQ+fCT6Mp3hPRrbJxwMunmjujZOzBld/HkjnXoiNfBb5akA280WvdyzWYATrjV1ZFx8yQY8G0+lRt/MxjKDc38w4y+Rf5WeRbXboJMvFatwooHUggk6qSRmZVvgOmFmNuDRnRYIFzqK3JclhJeVasnqhR6RiGSowc1Ffr1HhcZCMnXpQABGBkZcHD/zw6YjHRyh9Plw7XAm0xb16HMDtiwt7WLJpxLH/HP99j/A2hvMGWiUiFCaYv7AzyEPTmYbN32D1IsAEE/GC3FG0HypGTBolP8wpAfTRdlvWpJz8oRRdwuLV3Pgpu+kXh5sQyeZI6tnuMPQFmRDcMN1oo3E5V5V585nVMnKTFcXhBzD4UnoV+DQNkG/+iSPybQzz/EZmucEqGEYyjI3kl4MAX8UMEUxE4JO0fF8MzyBI13nxknowAceEammx1dGVaJCoIOdhadaPVPyOzXM1Vp1erVm5k4TsxSx1pll+GOm6hVoNHIuQLDueaMEpRxMhfwc8cDyXURqRGPTgTc0bint5xVjo10fnpX1gcdc/AWL6y3tXM80NW+uFJ4GI7VzyzfcMRzTiRaGi19z8MIx8PbIVGh2sw4FhgGujNsPrpuESvUVT+17M0+v8oEoABNlcizTMFs/sA1uqlPumFASltzmViAzClOsDuCh069hFLjdk/Ex5jy4vPYlwOT8Uq9DJC9ZWuZgiI1DrhWN/8QGAEGxxbvnSZPNCQ9kpD5p+iabinLLWOAirVNgKwIRJRyAu/uR9xKd7J9Wxq8q/ii+y5lGilbo2g24wbDwrkXYVhqp/4J0g+p8Wv1NBjCTSCqV39WEizUCRHo3ee9HnQnBJQDOyTBRuz2odTJtJ5tLYjWXZRdFzFSJrEq+Z1z3oq7LnhZy3YWaFXPeKmBCemMthtNt0nL', |
103 | version: '0.3', | 100 | version: '0.3', |
104 | creationDate: 'Fri Oct 17 16:49:20 CEST 2008', | 101 | creationDate: 'Fri Oct 17 16:49:20 CEST 2008', |
105 | updateDate: 'Mon Oct 27 08:58:49 CET 2008', | 102 | updateDate: 'Mon Oct 27 08:58:49 CET 2008', |
106 | accessDate: 'Mon Jan 19 16:09:39 CET 2009', | 103 | accessDate: 'Mon Jan 19 16:09:39 CET 2009', |
107 | currentVersion: '6fd60c5709a4808444f43f7bbd872363d76703957f613076538ba2f9161206ac', | 104 | currentVersion: '6fd60c5709a4808444f43f7bbd872363d76703957f613076538ba2f9161206ac', |
108 | versions: { | 105 | versions: { |
109 | '0ae362285f103722abbd046eee2b7d10aeae6a1d05cbaf2081392ce9df882bcf': { | 106 | '0ae362285f103722abbd046eee2b7d10aeae6a1d05cbaf2081392ce9df882bcf': { |
110 | header: '####', | 107 | header: '####', |
111 | data: 'sG6TUmPSEPFpiJ5YdtghWHmHbvUK63tZCZ+Q5iz2ALas//jN+lZCBhZcjEwPEJskBkK2R0MyAh14wWGh2bBHMjsokgTe+L+x+0c/Zi0epE/IC9gtOBhsTe/hZ2e2xOGF/SbzET3DAAYXvxduZ36f7SvvFnrkkKvpj8wGSdTFcBmzqMb9DL2bRyRCLGLMzE3F1a0q5CufCIRz2TgHm+Uw+kfvvwC7ig/F/5iLW90Ypz3vmEtMEFYFHZ9a8Oh0rsXGfevbMhFqALoywzihQEe/NiB8dwn7GEdYKSQ35rhvZh29ULWOZinqmg0ONe0HYaxx7DbKsVoue57S0CIUlgHLajzHfLfqQg2sFI0OT8TnHsGg0YZ6mM2EdKmEjJiER0cP', | 108 | data: 'sG6TUmPSEPFpiJ5YdtghWHmHbvUK63tZCZ+Q5iz2ALas//jN+lZCBhZcjEwPEJskBkK2R0MyAh14wWGh2bBHMjsokgTe+L+x+0c/Zi0epE/IC9gtOBhsTe/hZ2e2xOGF/SbzET3DAAYXvxduZ36f7SvvFnrkkKvpj8wGSdTFcBmzqMb9DL2bRyRCLGLMzE3F1a0q5CufCIRz2TgHm+Uw+kfvvwC7ig/F/5iLW90Ypz3vmEtMEFYFHZ9a8Oh0rsXGfevbMhFqALoywzihQEe/NiB8dwn7GEdYKSQ35rhvZh29ULWOZinqmg0ONe0HYaxx7DbKsVoue57S0CIUlgHLajzHfLfqQg2sFI0OT8TnHsGg0YZ6mM2EdKmEjJiER0cP', |
112 | version: '0.3', | 109 | version: '0.3', |
113 | creationDate: 'Fri Oct 17 17:00:31 CEST 2008', | 110 | creationDate: 'Fri Oct 17 17:00:31 CEST 2008', |
114 | updateDate: 'Fri Oct 17 17:00:31 CEST 2008', | 111 | updateDate: 'Fri Oct 17 17:00:31 CEST 2008', |
115 | accessDate: 'Fri Oct 17 17:00:31 CEST 2008' | 112 | accessDate: 'Fri Oct 17 17:00:31 CEST 2008' |
116 | }, | 113 | }, |
117 | '10f45664bbd979a92f37886f1ecc6e52e49798b16dc997aecd37259ad9b2090e': { | 114 | '10f45664bbd979a92f37886f1ecc6e52e49798b16dc997aecd37259ad9b2090e': { |
118 | header: '####', | 115 | header: '####', |
119 | data: 'RdKVaV/WWWchrCse3KtcXd47Bfm6IAwjqVUpaxoed3HeunI42AAm7xYYSjeK8edHpbNRJbhobBAX5OZtWIp/HmgkobKM8CIiWxrWz89FqyrbnPD7+fXdtgF2yTax/0sC1l0ibncdOuJKX6U829oPlXCpXIOjlomc4wEEAD/5V6FbORvdZ9IE/ME3LsG2y02cT2tIpx6+R6wC/PKXhZA2UDsTE6R2Op2BtIzpVORZLXsdyAp/4wvWQxq90i9cEpbsVQsMB10JVyNHNsRTFhIlHi9MVCaMxQvcrwRElMj/Y9x3RbsFzSGKqFLqdg7Fn/U+KYkpYtsgHv9hraPIb9lV5FH16+iItU/HBM6FGezIj1ZkoQ+dgjPfSjTZzgzDYwyb', | 116 | data: 'RdKVaV/WWWchrCse3KtcXd47Bfm6IAwjqVUpaxoed3HeunI42AAm7xYYSjeK8edHpbNRJbhobBAX5OZtWIp/HmgkobKM8CIiWxrWz89FqyrbnPD7+fXdtgF2yTax/0sC1l0ibncdOuJKX6U829oPlXCpXIOjlomc4wEEAD/5V6FbORvdZ9IE/ME3LsG2y02cT2tIpx6+R6wC/PKXhZA2UDsTE6R2Op2BtIzpVORZLXsdyAp/4wvWQxq90i9cEpbsVQsMB10JVyNHNsRTFhIlHi9MVCaMxQvcrwRElMj/Y9x3RbsFzSGKqFLqdg7Fn/U+KYkpYtsgHv9hraPIb9lV5FH16+iItU/HBM6FGezIj1ZkoQ+dgjPfSjTZzgzDYwyb', |
120 | version: '0.3', | 117 | version: '0.3', |
diff --git a/frontend/gamma/tests/tests/Components/CardDialogEditing/dragAndDrop_test.js b/frontend/gamma/tests/tests/Components/CardDialogEditing/dragAndDrop_test.js index e805e34..91909fa 100644 --- a/frontend/gamma/tests/tests/Components/CardDialogEditing/dragAndDrop_test.js +++ b/frontend/gamma/tests/tests/Components/CardDialogEditing/dragAndDrop_test.js | |||
@@ -1,120 +1,117 @@ | |||
1 | /* | 1 | /* |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | */ | 24 | */ |
28 | 25 | ||
29 | Clipperz.Base.module('Clipperz.Tests.DragAndDrop'); | 26 | Clipperz.Base.module('Clipperz.Tests.DragAndDrop'); |
30 | 27 | ||
31 | Clipperz.Crypto.PRNG.defaultRandomGenerator().fastEntropyAccumulationForTestingPurpose(); | 28 | Clipperz.Crypto.PRNG.defaultRandomGenerator().fastEntropyAccumulationForTestingPurpose(); |
32 | Clipperz.PM.Strings.Languages.initSetup(); | 29 | Clipperz.PM.Strings.Languages.initSetup(); |
33 | 30 | ||
34 | Clipperz.Tests.DragAndDrop.Tester = function(args) { | 31 | Clipperz.Tests.DragAndDrop.Tester = function(args) { |
35 | args = args || {}; | 32 | args = args || {}; |
36 | 33 | ||
37 | Clipperz.Tests.DragAndDrop.Tester.superclass.constructor.call(this, args); | 34 | Clipperz.Tests.DragAndDrop.Tester.superclass.constructor.call(this, args); |
38 | this._user = new Clipperz.PM.DataModel.User({username:'test', getPassphraseFunction:function () { return 'test';}}); | 35 | this._user = new Clipperz.PM.DataModel.User({username:'test', getPassphraseFunction:function () { return 'test';}}); |
39 | 36 | ||
40 | return this; | 37 | return this; |
41 | }; | 38 | }; |
42 | 39 | ||
43 | Clipperz.Base.extend(Clipperz.Tests.DragAndDrop.Tester, Object, { | 40 | Clipperz.Base.extend(Clipperz.Tests.DragAndDrop.Tester, Object, { |
44 | 41 | ||
45 | 'toString': function() { | 42 | 'toString': function() { |
46 | return "Clipperz.Tests.DragAndDrop.Tester"; | 43 | return "Clipperz.Tests.DragAndDrop.Tester"; |
47 | }, | 44 | }, |
48 | 45 | ||
49 | //------------------------------------------------------------------------- | 46 | //------------------------------------------------------------------------- |
50 | 47 | ||
51 | 'user': function () { | 48 | 'user': function () { |
52 | return this._user; | 49 | return this._user; |
53 | }, | 50 | }, |
54 | 51 | ||
55 | //------------------------------------------------------------------------- | 52 | //------------------------------------------------------------------------- |
56 | 53 | ||
57 | 'run': function () { | 54 | 'run': function () { |
58 | var deferredResult; | 55 | var deferredResult; |
59 | var proxy; | 56 | var proxy; |
60 | varcardDialogController; | 57 | varcardDialogController; |
61 | varcardDialogComponent; | 58 | varcardDialogComponent; |
62 | 59 | ||
63 | proxy = new Clipperz.PM.Proxy.Test({shouldPayTolls:true, isDefault:true, readOnly:false}); | 60 | proxy = new Clipperz.PM.Proxy.Test({shouldPayTolls:true, isDefault:true, readOnly:false}); |
64 | 61 | ||
65 | deferredResult = new Clipperz.Async.Deferred("DragAndDrop_test.init", {trace:false}); | 62 | deferredResult = new Clipperz.Async.Deferred("DragAndDrop_test.init", {trace:false}); |
66 | deferredResult.addMethod(proxy.dataStore(), 'setupWithEncryptedData', testData['test_test_offline_copy_data']); | 63 | deferredResult.addMethod(proxy.dataStore(), 'setupWithEncryptedData', testData['test_test_offline_copy_data']); |
67 | deferredResult.addMethod(this.user(), 'login'); | 64 | deferredResult.addMethod(this.user(), 'login'); |
68 | deferredResult.addMethod(this.user(), 'getRecord', '8280842f41162b673335b63860637e8472e8bbff0efa2bc78b0dbc5e09712e13'); | 65 | deferredResult.addMethod(this.user(), 'getRecord', '8280842f41162b673335b63860637e8472e8bbff0efa2bc78b0dbc5e09712e13'); |
69 | deferredResult.addCallback(MochiKit.Base.bind(function (aRecord) { | 66 | deferredResult.addCallback(MochiKit.Base.bind(function (aRecord) { |
70 | cardDialogController = new Clipperz.PM.UI.Web.Controllers.CardDialogController({record:aRecord, delegate:this}); | 67 | cardDialogController = new Clipperz.PM.UI.Web.Controllers.CardDialogController({record:aRecord, delegate:this}); |
71 | cardDialogController.run(); | 68 | cardDialogController.run(); |
72 | 69 | ||
73 | cardDialogController.showPasswordTooltip('**********', MochiKit.DOM.getElement('Clipperz_PM_Components_actionLink_63')); | 70 | cardDialogController.showPasswordTooltip('**********', MochiKit.DOM.getElement('Clipperz_PM_Components_actionLink_63')); |
74 | }, this)); | 71 | }, this)); |
75 | deferredResult.callback(); | 72 | deferredResult.callback(); |
76 | 73 | ||
77 | return deferredResult; | 74 | return deferredResult; |
78 | }, | 75 | }, |
79 | 76 | ||
80 | //========================================================================= | 77 | //========================================================================= |
81 | 78 | ||
82 | 'saveChanges': function () { | 79 | 'saveChanges': function () { |
83 | return this.user().saveChanges(); | 80 | return this.user().saveChanges(); |
84 | }, | 81 | }, |
85 | 82 | ||
86 | //------------------------------------------------------------------------- | 83 | //------------------------------------------------------------------------- |
87 | 84 | ||
88 | 'hasPendingChanges': function () { | 85 | 'hasPendingChanges': function () { |
89 | return this.user().hasPendingChanges(); | 86 | return this.user().hasPendingChanges(); |
90 | }, | 87 | }, |
91 | 88 | ||
92 | //------------------------------------------------------------------------- | 89 | //------------------------------------------------------------------------- |
93 | 90 | ||
94 | 'revertChanges': function () { | 91 | 'revertChanges': function () { |
95 | return this.user().revertChanges(); | 92 | return this.user().revertChanges(); |
96 | }, | 93 | }, |
97 | 94 | ||
98 | //========================================================================= | 95 | //========================================================================= |
99 | __syntaxFix__: "syntax fix" | 96 | __syntaxFix__: "syntax fix" |
100 | }); | 97 | }); |
101 | 98 | ||
102 | 99 | ||
103 | 100 | ||
104 | 101 | ||
105 | 102 | ||
106 | 103 | ||
107 | 104 | ||
108 | 105 | ||
109 | 106 | ||
110 | 107 | ||
111 | 108 | ||
112 | 109 | ||
113 | 110 | ||
114 | 111 | ||
115 | 112 | ||
116 | 113 | ||
117 | 114 | ||
118 | 115 | ||
119 | 116 | ||
120 | 117 | ||
diff --git a/frontend/gamma/tests/tests/Components/CardDialogEditing/index.html b/frontend/gamma/tests/tests/Components/CardDialogEditing/index.html index 7cc0961..e484719 100644 --- a/frontend/gamma/tests/tests/Components/CardDialogEditing/index.html +++ b/frontend/gamma/tests/tests/Components/CardDialogEditing/index.html | |||
@@ -1,120 +1,117 @@ | |||
1 | <!-- | 1 | <!-- |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | --> | 24 | --> |
28 | 25 | ||
29 | <html> | 26 | <html> |
30 | <head> | 27 | <head> |
31 | <title>Card Dialog EDITING - test</title> | 28 | <title>Card Dialog EDITING - test</title> |
32 | <script type="text/javascript" src="../../../../js/MochiKit/MochiKit.js"></script> | 29 | <script type="text/javascript" src="../../../../js/MochiKit/MochiKit.js"></script> |
33 | <script type='text/javascript' src='../../../../js/JSON/json2.js'></script> | 30 | <script type='text/javascript' src='../../../../js/JSON/json2.js'></script> |
34 | 31 | ||
35 | <script type='text/javascript' src='../../../../js/Clipperz/YUI/Utils.js'></script> | 32 | <script type='text/javascript' src='../../../../js/Clipperz/YUI/Utils.js'></script> |
36 | <script type='text/javascript' src='../../../../js/Clipperz/YUI/DomHelper.js'></script> | 33 | <script type='text/javascript' src='../../../../js/Clipperz/YUI/DomHelper.js'></script> |
37 | <script type='text/javascript' src='../../../../js/Clipperz/Base.js'></script> | 34 | <script type='text/javascript' src='../../../../js/Clipperz/Base.js'></script> |
38 | <script type='text/javascript' src='../../../../js/Clipperz/Date.js'></script> | 35 | <script type='text/javascript' src='../../../../js/Clipperz/Date.js'></script> |
39 | <script type='text/javascript' src='../../../../js/Clipperz/DOM.js'></script> | 36 | <script type='text/javascript' src='../../../../js/Clipperz/DOM.js'></script> |
40 | <script type='text/javascript' src='../../../../js/Clipperz/ByteArray.js'></script> | 37 | <script type='text/javascript' src='../../../../js/Clipperz/ByteArray.js'></script> |
41 | <script type='text/javascript' src='../../../../js/Clipperz/Logging.js'></script> | 38 | <script type='text/javascript' src='../../../../js/Clipperz/Logging.js'></script> |
42 | <script type='text/javascript' src='../../../../js/Clipperz/Async.js'></script> | 39 | <script type='text/javascript' src='../../../../js/Clipperz/Async.js'></script> |
43 | 40 | ||
44 | <script type='text/javascript' src='../../../../js/Clipperz/Signal.js'></script> | 41 | <script type='text/javascript' src='../../../../js/Clipperz/Signal.js'></script> |
45 | <script type='text/javascript' src='../../../../js/Clipperz/Style.js'></script> | 42 | <script type='text/javascript' src='../../../../js/Clipperz/Style.js'></script> |
46 | <script type='text/javascript' src='../../../../js/Clipperz/Visual.js'></script> | 43 | <script type='text/javascript' src='../../../../js/Clipperz/Visual.js'></script> |
47 | <script type='text/javascript' src='../../../../js/Clipperz/Set.js'></script> | 44 | <script type='text/javascript' src='../../../../js/Clipperz/Set.js'></script> |
48 | <script type='text/javascript' src='../../../../js/Clipperz/KeyValueObjectStore.js'></script> | 45 | <script type='text/javascript' src='../../../../js/Clipperz/KeyValueObjectStore.js'></script> |
49 | 46 | ||
50 | <script type='text/javascript' src='../../../../js/Clipperz/Crypto/Base.js'></script> | 47 | <script type='text/javascript' src='../../../../js/Clipperz/Crypto/Base.js'></script> |
51 | <script type='text/javascript' src='../../../../js/Clipperz/Crypto/BigInt.js'></script> | 48 | <script type='text/javascript' src='../../../../js/Clipperz/Crypto/BigInt.js'></script> |
52 | <script type='text/javascript' src='../../../../js/Clipperz/Crypto/AES.js'></script> | 49 | <script type='text/javascript' src='../../../../js/Clipperz/Crypto/AES.js'></script> |
53 | <script type='text/javascript' src='../../../../js/Clipperz/Crypto/SHA.js'></script> | 50 | <script type='text/javascript' src='../../../../js/Clipperz/Crypto/SHA.js'></script> |
54 | <script type='text/javascript' src='../../../../js/Clipperz/Crypto/PRNG.js'></script> | 51 | <script type='text/javascript' src='../../../../js/Clipperz/Crypto/PRNG.js'></script> |
55 | <script type='text/javascript' src='../../../../js/Clipperz/Crypto/SRP.js'></script> | 52 | <script type='text/javascript' src='../../../../js/Clipperz/Crypto/SRP.js'></script> |
56 | 53 | ||
57 | <script type='text/javascript' src='../../../../js/Clipperz/PM/Toll.js'></script> | 54 | <script type='text/javascript' src='../../../../js/Clipperz/PM/Toll.js'></script> |
58 | <script type='text/javascript' src='../../../../js/Clipperz/PM/Proxy.js'></script> | 55 | <script type='text/javascript' src='../../../../js/Clipperz/PM/Proxy.js'></script> |
59 | <script type='text/javascript' src='../../../../js/Clipperz/PM/Proxy/Proxy.Offline.js'></script> | 56 | <script type='text/javascript' src='../../../../js/Clipperz/PM/Proxy/Proxy.Offline.js'></script> |
60 | <script type='text/javascript' src='../../../../js/Clipperz/PM/Proxy/Proxy.Test.js'></script> | 57 | <script type='text/javascript' src='../../../../js/Clipperz/PM/Proxy/Proxy.Test.js'></script> |
61 | <script type='text/javascript' src='../../../../js/Clipperz/PM/Proxy/Proxy.Offline.DataStore.js'></script> | 58 | <script type='text/javascript' src='../../../../js/Clipperz/PM/Proxy/Proxy.Offline.DataStore.js'></script> |
62 | 59 | ||
63 | <script type='text/javascript' src='../../../../js/Clipperz/PM/Connection.js'></script> | 60 | <script type='text/javascript' src='../../../../js/Clipperz/PM/Connection.js'></script> |
64 | <script type='text/javascript' src='../../../../js/Clipperz/PM/Crypto.js'></script> | 61 | <script type='text/javascript' src='../../../../js/Clipperz/PM/Crypto.js'></script> |
65 | 62 | ||
66 | <script type='text/javascript' src='../../../../js/Clipperz/PM/Strings.js'></script> | 63 | <script type='text/javascript' src='../../../../js/Clipperz/PM/Strings.js'></script> |
67 | <script type='text/javascript' src='../../../../js/Clipperz/PM/Strings/Strings_en-US.js'></script> | 64 | <script type='text/javascript' src='../../../../js/Clipperz/PM/Strings/Strings_en-US.js'></script> |
68 | <script type='text/javascript' src='../../../../js/Clipperz/PM/Date.js'></script> | 65 | <script type='text/javascript' src='../../../../js/Clipperz/PM/Date.js'></script> |
69 | <script type='text/javascript' src='../../../../js/Clipperz/PM/BookmarkletProcessor.js'></script> | 66 | <script type='text/javascript' src='../../../../js/Clipperz/PM/BookmarkletProcessor.js'></script> |
70 | <script type='text/javascript' src='../../../../js/Clipperz/PM/DataModel/EncryptedRemoteObject.js'></script> | 67 | <script type='text/javascript' src='../../../../js/Clipperz/PM/DataModel/EncryptedRemoteObject.js'></script> |
71 | <script type='text/javascript' src='../../../../js/Clipperz/PM/DataModel/Record.js'></script> | 68 | <script type='text/javascript' src='../../../../js/Clipperz/PM/DataModel/Record.js'></script> |
72 | <script type='text/javascript' src='../../../../js/Clipperz/PM/DataModel/Record.Version.js'></script> | 69 | <script type='text/javascript' src='../../../../js/Clipperz/PM/DataModel/Record.Version.js'></script> |
73 | <script type='text/javascript' src='../../../../js/Clipperz/PM/DataModel/Record.Version.Field.js'></script> | 70 | <script type='text/javascript' src='../../../../js/Clipperz/PM/DataModel/Record.Version.Field.js'></script> |
74 | <script type='text/javascript' src='../../../../js/Clipperz/PM/DataModel/DirectLogin.js'></script> | 71 | <script type='text/javascript' src='../../../../js/Clipperz/PM/DataModel/DirectLogin.js'></script> |
75 | <script type='text/javascript' src='../../../../js/Clipperz/PM/DataModel/DirectLoginInput.js'></script> | 72 | <script type='text/javascript' src='../../../../js/Clipperz/PM/DataModel/DirectLoginInput.js'></script> |
76 | <script type='text/javascript' src='../../../../js/Clipperz/PM/DataModel/DirectLoginBinding.js'></script> | 73 | <script type='text/javascript' src='../../../../js/Clipperz/PM/DataModel/DirectLoginBinding.js'></script> |
77 | <script type='text/javascript' src='../../../../js/Clipperz/PM/DataModel/DirectLoginFormValue.js'></script> | 74 | <script type='text/javascript' src='../../../../js/Clipperz/PM/DataModel/DirectLoginFormValue.js'></script> |
78 | <!-- script type='text/javascript' src='../../../../js/Clipperz/PM/DataModel/Record.Field.js'></script --> | 75 | <!-- script type='text/javascript' src='../../../../js/Clipperz/PM/DataModel/Record.Field.js'></script --> |
79 | <script type='text/javascript' src='../../../../js/Clipperz/PM/DataModel/User.js'></script> | 76 | <script type='text/javascript' src='../../../../js/Clipperz/PM/DataModel/User.js'></script> |
80 | <script type='text/javascript' src='../../../../js/Clipperz/PM/DataModel/User.Header.Legacy.js'></script> | 77 | <script type='text/javascript' src='../../../../js/Clipperz/PM/DataModel/User.Header.Legacy.js'></script> |
81 | <script type='text/javascript' src='../../../../js/Clipperz/PM/DataModel/User.Header.RecordIndex.js'></script> | 78 | <script type='text/javascript' src='../../../../js/Clipperz/PM/DataModel/User.Header.RecordIndex.js'></script> |
82 | <script type='text/javascript' src='../../../../js/Clipperz/PM/DataModel/User.Header.Preferences.js'></script> | 79 | <script type='text/javascript' src='../../../../js/Clipperz/PM/DataModel/User.Header.Preferences.js'></script> |
83 | <script type='text/javascript' src='../../../../js/Clipperz/PM/DataModel/User.Header.OneTimePasswords.js'></script> | 80 | <script type='text/javascript' src='../../../../js/Clipperz/PM/DataModel/User.Header.OneTimePasswords.js'></script> |
84 | <script type='text/javascript' src='../../../../js/Clipperz/PM/DataModel/OneTimePassword.js'></script> | 81 | <script type='text/javascript' src='../../../../js/Clipperz/PM/DataModel/OneTimePassword.js'></script> |
85 | 82 | ||
86 | <script type='text/javascript' src='../../../../js/Clipperz/PM/UI/Common/Components/BaseComponent.js'></script> | 83 | <script type='text/javascript' src='../../../../js/Clipperz/PM/UI/Common/Components/BaseComponent.js'></script> |
87 | <script type='text/javascript' src='../../../../js/Clipperz/PM/UI/Common/Components/ComponentSlot.js'></script> | 84 | <script type='text/javascript' src='../../../../js/Clipperz/PM/UI/Common/Components/ComponentSlot.js'></script> |
88 | <script type='text/javascript' src='../../../../js/Clipperz/PM/UI/Common/Components/FaviconComponent.js'></script> | 85 | <script type='text/javascript' src='../../../../js/Clipperz/PM/UI/Common/Components/FaviconComponent.js'></script> |
89 | <script type='text/javascript' src='../../../../js/Clipperz/PM/UI/Common/Components/PasswordEntropyDisplay.js'></script> | 86 | <script type='text/javascript' src='../../../../js/Clipperz/PM/UI/Common/Components/PasswordEntropyDisplay.js'></script> |
90 | <script type='text/javascript' src='../../../../js/Clipperz/PM/UI/Common/Components/ProgressBar.js'></script> | 87 | <script type='text/javascript' src='../../../../js/Clipperz/PM/UI/Common/Components/ProgressBar.js'></script> |
91 | <script type='text/javascript' src='../../../../js/Clipperz/PM/UI/Common/Components/SimpleMessagePanel.js'></script> | 88 | <script type='text/javascript' src='../../../../js/Clipperz/PM/UI/Common/Components/SimpleMessagePanel.js'></script> |
92 | <script type='text/javascript' src='../../../../js/Clipperz/PM/UI/Common/Components/TabPanelComponent.js'></script> | 89 | <script type='text/javascript' src='../../../../js/Clipperz/PM/UI/Common/Components/TabPanelComponent.js'></script> |
93 | <script type='text/javascript' src='../../../../js/Clipperz/PM/UI/Common/Components/Tooltip.js'></script> | 90 | <script type='text/javascript' src='../../../../js/Clipperz/PM/UI/Common/Components/Tooltip.js'></script> |
94 | <script type='text/javascript' src='../../../../js/Clipperz/PM/UI/Common/Components/TranslatorWidget.js'></script> | 91 | <script type='text/javascript' src='../../../../js/Clipperz/PM/UI/Common/Components/TranslatorWidget.js'></script> |
95 | 92 | ||
96 | <script type='text/javascript' src='../../../../js/Clipperz/PM/UI/Web/Components/RulerComponent.js'></script> | 93 | <script type='text/javascript' src='../../../../js/Clipperz/PM/UI/Web/Components/RulerComponent.js'></script> |
97 | <script type='text/javascript' src='../../../../js/Clipperz/PM/UI/Web/Components/CardDialogComponent.js'></script> | 94 | <script type='text/javascript' src='../../../../js/Clipperz/PM/UI/Web/Components/CardDialogComponent.js'></script> |
98 | <script type='text/javascript' src='../../../../js/Clipperz/PM/UI/Web/Components/CardDialogRecordFieldComponent.js'></script> | 95 | <script type='text/javascript' src='../../../../js/Clipperz/PM/UI/Web/Components/CardDialogRecordFieldComponent.js'></script> |
99 | <script type='text/javascript' src='../../../../js/Clipperz/PM/UI/Web/Components/CardDialogRecordDirectLoginComponent.js'></script> | 96 | <script type='text/javascript' src='../../../../js/Clipperz/PM/UI/Web/Components/CardDialogRecordDirectLoginComponent.js'></script> |
100 | <script type='text/javascript' src='../../../../js/Clipperz/PM/UI/Web/Components/DirectLoginEditingComponent.js'></script> | 97 | <script type='text/javascript' src='../../../../js/Clipperz/PM/UI/Web/Components/DirectLoginEditingComponent.js'></script> |
101 | <script type='text/javascript' src='../../../../js/Clipperz/PM/UI/Web/Components/DirectLoginEditingBindingComponent.js'></script> | 98 | <script type='text/javascript' src='../../../../js/Clipperz/PM/UI/Web/Components/DirectLoginEditingBindingComponent.js'></script> |
102 | <script type='text/javascript' src='../../../../js/Clipperz/PM/UI/Web/Components/DirectLoginEditingFormValueComponent.js'></script> | 99 | <script type='text/javascript' src='../../../../js/Clipperz/PM/UI/Web/Components/DirectLoginEditingFormValueComponent.js'></script> |
103 | <script type='text/javascript' src='../../../../js/Clipperz/PM/UI/Web/Components/BookmarkletComponent.js'></script> | 100 | <script type='text/javascript' src='../../../../js/Clipperz/PM/UI/Web/Components/BookmarkletComponent.js'></script> |
104 | <script type='text/javascript' src='../../../../js/Clipperz/PM/UI/Web/Components/PasswordTooltip.js'></script> | 101 | <script type='text/javascript' src='../../../../js/Clipperz/PM/UI/Web/Components/PasswordTooltip.js'></script> |
105 | 102 | ||
106 | <script type='text/javascript' src='../../../../js/Clipperz/PM/UI/Common/Controllers/ProgressBarController.js'></script> | 103 | <script type='text/javascript' src='../../../../js/Clipperz/PM/UI/Common/Controllers/ProgressBarController.js'></script> |
107 | <script type='text/javascript' src='../../../../js/Clipperz/PM/UI/Common/Controllers/TabPanelController.js'></script> | 104 | <script type='text/javascript' src='../../../../js/Clipperz/PM/UI/Common/Controllers/TabPanelController.js'></script> |
108 | <script type='text/javascript' src='../../../../js/Clipperz/PM/UI/Common/Controllers/DirectLoginRunner.js'></script> | 105 | <script type='text/javascript' src='../../../../js/Clipperz/PM/UI/Common/Controllers/DirectLoginRunner.js'></script> |
109 | 106 | ||
110 | <script type='text/javascript' src='../../../../js/Clipperz/PM/UI/Web/Controllers/DirectLoginWizardController.js'></script> | 107 | <script type='text/javascript' src='../../../../js/Clipperz/PM/UI/Web/Controllers/DirectLoginWizardController.js'></script> |
111 | <script type='text/javascript' src='../../../../js/Clipperz/PM/UI/Web/Controllers/CardDialogController.js'></script> | 108 | <script type='text/javascript' src='../../../../js/Clipperz/PM/UI/Web/Controllers/CardDialogController.js'></script> |
112 | 109 | ||
113 | <script type='text/javascript' src='./User.data.js'></script> | 110 | <script type='text/javascript' src='./User.data.js'></script> |
114 | <script type='text/javascript' src='./CardDialogEditing_test.js'></script> | 111 | <script type='text/javascript' src='./CardDialogEditing_test.js'></script> |
115 | <script> | 112 | <script> |
116 | Clipperz_IEisBroken = false; | 113 | Clipperz_IEisBroken = false; |
117 | </script> | 114 | </script> |
118 | 115 | ||
119 | <!--[if IE]><script> | 116 | <!--[if IE]><script> |
120 | Clipperz_IEisBroken = true; | 117 | Clipperz_IEisBroken = true; |
diff --git a/frontend/gamma/tests/tests/Components/CardDialogNew/User.data.js b/frontend/gamma/tests/tests/Components/CardDialogNew/User.data.js index dac8b45..49abe46 100644 --- a/frontend/gamma/tests/tests/Components/CardDialogNew/User.data.js +++ b/frontend/gamma/tests/tests/Components/CardDialogNew/User.data.js | |||
@@ -1,120 +1,117 @@ | |||
1 | /* | 1 | /* |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | */ | 24 | */ |
28 | 25 | ||
29 | testData = { | 26 | testData = { |
30 | 27 | ||
31 | //------------------------------------------------------------------------- | 28 | //------------------------------------------------------------------------- |
32 | 29 | ||
33 | 'simpleLogin_001': { | 30 | 'simpleLogin_001': { |
34 | 'users': [ | 31 | 'users': [ |
35 | { | 32 | { |
36 | 'username': "joe", | 33 | 'username': "joe", |
37 | 'passphrase': "eoj", | 34 | 'passphrase': "eoj", |
38 | 'version': "0.2", | 35 | 'version': "0.2", |
39 | 'connectionVersion':"0.2", | 36 | 'connectionVersion':"0.2", |
40 | 'records':{ | 37 | 'records':{ |
41 | 'record 1': { | 38 | 'record 1': { |
42 | 'notes':"Some notes here", | 39 | 'notes':"Some notes here", |
43 | 'fields':[ | 40 | 'fields':[ |
44 | { 'name': "username", 'value': "joe", 'type': "text" }, | 41 | { 'name': "username", 'value': "joe", 'type': "text" }, |
45 | { 'name': "password", 'value': "1234", 'type': "password"} | 42 | { 'name': "password", 'value': "1234", 'type': "password"} |
46 | ], | 43 | ], |
47 | 'directLogins':{ | 44 | 'directLogins':{ |
48 | "record 1 direct login": { | 45 | "record 1 direct login": { |
49 | 'configuration':"", | 46 | 'configuration':"", |
50 | 'bindings':[ | 47 | 'bindings':[ |
51 | ], | 48 | ], |
52 | 'favicon':"http://www.example.com/favicon.ico" | 49 | 'favicon':"http://www.example.com/favicon.ico" |
53 | } | 50 | } |
54 | } | 51 | } |
55 | } | 52 | } |
56 | }, | 53 | }, |
57 | 'otp':[ | 54 | 'otp':[ |
58 | "12345678 90abcdef 12345678 90abcdef", | 55 | "12345678 90abcdef 12345678 90abcdef", |
59 | "fedcba09 87654321 fedcba09 87654321" | 56 | "fedcba09 87654321 fedcba09 87654321" |
60 | ] | 57 | ] |
61 | } | 58 | } |
62 | ] | 59 | ] |
63 | }, | 60 | }, |
64 | 61 | ||
65 | //------------------------------------------------------------------------- | 62 | //------------------------------------------------------------------------- |
66 | 63 | ||
67 | 'joe_clipperz_offline_copy_data': { | 64 | 'joe_clipperz_offline_copy_data': { |
68 | users:{ | 65 | users:{ |
69 | 'catchAllUser': { | 66 | 'catchAllUser': { |
70 | __masterkey_test_value__: 'masterkey', | 67 | __masterkey_test_value__: 'masterkey', |
71 | s: '112233445566778899aabbccddeeff00112233445566778899aabbccddeeff00', | 68 | s: '112233445566778899aabbccddeeff00112233445566778899aabbccddeeff00', |
72 | v: '112233445566778899aabbccddeeff00112233445566778899aabbccddeeff00' | 69 | v: '112233445566778899aabbccddeeff00112233445566778899aabbccddeeff00' |
73 | }, | 70 | }, |
74 | 'f527cdd90d0d47f8524b4e165398ad1455eba515d04abd101d1e93b3c6ae0674': { | 71 | 'f527cdd90d0d47f8524b4e165398ad1455eba515d04abd101d1e93b3c6ae0674': { |
75 | s: '186f0c40bf73f2af236eaa6c429df225efa933050c9aae65240e93b7b362e3ee', | 72 | s: '186f0c40bf73f2af236eaa6c429df225efa933050c9aae65240e93b7b362e3ee', |
76 | v: 'ac61a6e325ecf329926a86084f591d8852d0ad3e4a6080f2adc901b82395ecaf', | 73 | v: 'ac61a6e325ecf329926a86084f591d8852d0ad3e4a6080f2adc901b82395ecaf', |
77 | version: '0.2', | 74 | version: '0.2', |
78 | maxNumberOfRecords: '100', | 75 | maxNumberOfRecords: '100', |
79 | userDetails: '{"records":{"index":{"eeda70e0392261967bda71c3764da78989c45bbd2bb7be6b941b90f81d9b81b5":"0","13a5e52976337ab210903cd04872588e1b21fb72bc183e91aa25c494b8138551":"1","062af892bcfba49ffcff05c56d99b7af2d508358e39c058c2e1fc83531436f80":"2","ca01bcb7691f70818feed46c9a2a91883ac543997a395535aedbb49de166690c":"3","507f38b06d587d8889698ae1ebbba7ef8f0539b82550dd25779fd9ee88fc0c7a":"4","d5f700b9c3367c39551ea49e00a9ab20dae09dd79d46047b983fc7c4bfaa050d":"5","de13c0d036234c44214062bc0a89e5f127470c464333493a485729f43cdc26e4":"6","d620764a656bfd4e1d3758500d5db72e460a0cf729d56ed1a7755b5725c50045":"7","f215d89bf4583c12f5ed4f4330f488dad3fffa448f4dc784f15ef135dda2c732":"8","36ec1a41118813ced3553534fa2607d781cba687768db305beed368a8e06e113":"9","fe21497ef7435d31f9746c132e4b5ecf5aac5f13b5961ddb55d2bdc3409f28f6":"10","6d45c2fec275b7482d41c76b20507100cfb6ab49922b876f9dd3040d361f4a18":"11","9dcd2a8a0fcb7e57d234dc4fea347f020a6a01793e40cf56a0d22379e590e291":"12","6c25be8e145efb26a1abd59590522f73fb2e3dbc139af2217074d9e2ba92c16a":"13","6026370f3db3860d2c46a08e389a7e906dc14f98c8444b21be9a7e9f405a2728":"14","8b18e8593b5bc2f7ea39a5fab222047034ef2f380fee05be0fa6e1c0972fea39":"15","084e23120544603f0297368fd3891a3818e0fe13488e2f2c6079913c8d1bed8d":"16","7bb69b6366a8012f181c01e368ba18d4f7a82bcabb4959189736ad124c4bbfbb":"17","5cdac63b317f3942da38f3a3de3b7f0e5d6678200951c6216230295550f63fb4":"18","c0ce9130ca365bb02418d4305ea1d29e49c3f0e96d44b9d3cb6b4b6843d25065":"19"},"data":"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"},"directLogins":{"index":{"61e87fdc4f1d9112e3b30c1f6812d095dcdb24f014c83319091eb6c9899ec348":"0","989593d4c48929f0c8f1581aa96969c622807e99619ed4732026e967530a68ad":"1","9f7979368fa29f66c44bd97ecaf6c545abc800b1c7bb21b7655a68e1514c3906":"2","dba0db679802f0e6aa6d0b7a6aaf42350aabc5f057409edd99a268a92ebb6496":"3","aa18149164302d5dbe7e2d3724565b9550e00887b49978559783b2e38c625584":"4","1f9bfd677b531a03168d3f8bd8afabb5357244a7bc355dff50bd6c0a072114a6":"5","a48e38845713462ecc9f827149eeaae87da882031f98ef8ebbf9ee9537b63468":"6","6f7bbc4e42ea462b5246e6f51c3f86056bec50601ce2de6067c8c1d26f21c07f":"7","2df54059e78f5771f23bd285cce19595b38331b73d67020424d9a1b2257db09c":"8","065cd0c270e5e8ce50e4ea8e3828dccdae18c01ab030813d756a87d03fe68784":"9","ddbc8d01300a4f10631cbde09e1246332eade3a877a2205209f9eb9e5bc9da0b":"10","9b7a30e667afc9f76ba77600658b2c13bff52432d444261d39bf3d069a160afe":"11","9fd2929cde3d32d9cbc5f1d787f2f64729a5e12a14410556b31c0c099762c46a":"12","f695fc36ac56bead80c0d20a88e01e382819c18dc268f1679551b7c83db7cb14":"13","f22dc41ffabef4b3bc8f7af804fec975bd50718098322a673cbe4aaff9464ae1":"14","03251dc1cbc5398789e4c4b45c52cfac3fcd8c1a4f19a81fa68fc6feae31d55c":"15","a7b32e72502804bf2946a2a8856139cbbb759c5777e6b3e673db1fdf7e3bd06e":"16","cb9ae0bba1957075ccdbfd3b3481704d62087687a2ac7c411a4f07d444bde0f7":"17","7e1d069b7fa57c03bd7bf48807520feb953157834503aaff8c9d493f37dea69d":"18","24404059cabc63b2dbff0f42ba57183108b8189ef53ab62fa25141a1caea824b":"19","33cf9758477460a8056deef0295a1ebe65b39b392c361ceb920a83edacfe5d78":"20","e9a16316f330e3d150f6ffd194f6fd8acd1426757b097de4b88ca0db875202e4":"21"},"data":"xuiWbu5GjkueQhyH6sKg5Cn9/CSsPIjYgbhaHmjgwnnB+GL8UO5u0uURxTY6tkG2HbaFRpYZwLnqUUulEkVY6iNqJajFI0qDtrKams11cF2y9LaAalbqyv6U7EUt76d666DkXW8tf88nJ4HYfyAhhPCJ0cw5053K9BAVPbQM7fMA4MYY29k45U3HcIKNZcNqMftCc+fZB+fmZl1g7mSbrXaZyagRkwWwTdJ6/ecVOSSVOkWpckAaQWzGhwbO6zVWLtR9XQReIQZV52TwDMnV5IYJHnlw0Uvv2ZCVSu/oMN2TneW5fcIwQ0x/SRe+n4Mklzucpvasza+ZhRaRUFS53kvmbfPFI5tXqB3Z1+9S7LRLr9Ws97suTQ6G5eW6jKT2vf65ehnQJtA/gW6uwH+3IAT7ukFxO1knaRf7dRJDLuIc4Xnh+bRDnZUqfA+B+04pp6r0OS9oysD35t/HydVFeHgoyMCbL4RzduZvmu7y16WhIznn0DEfRmrYmC68C+DNcAbxeiXU8v14PgGycIg1++0v44Qor/BXfP5JW4WnYjVLW3aXN3FgI5rPuN6PqTzMn7z+eF2V28GNss5pui1xIbR2bTECAAnaRQiaz98F1LH4z5kYG1ehmyjIOLqz1nAv3Kuo7+DZKaSez4nX1oWznbXEnwd6uguukcCGpQllZoHYso/fz07e6p/9fskXPmg7LnMMHApP7Vay6XPhXV/AG0imU7uREFLbgnw3305Ey9fslmD8qCzi8LlqNALEt1TFNpAukvqodkv8V1o6zqzYNMSKaqJV4E9dWMNDpOFFTKv1FuZjZfzyPwyCcePgP7vcJGtUSYqRJwl56Ia8UA+l3FBiX8DCSW3GkG+wusf7bZ5kV6lV5DQJTScIyFxWwcECJ5S8/2QaBPTopeLo2NuMmFwjUwhBGVrDkUmtqjfb6DSfr/dR6AbmraRLXrpd/KUN7wWgp5GdLUAKNT+RdsUc0mLsLF3oT+XshfgfsQqi/pDnX9x3QfH/WuRtoywAIE5APU8Rnl+1NGsEidzeYrBnryA8VRi9vxfhuaxe3+rx1ewB1pgVSERPLF+0MYtetug01yRSxEUYJgYHxQmfnmkCoz+kKCejdpYVqKC+RzhjIMytRbFXNmS0NpRmtBxZrSIskKXjjwjUeEzMAttqAPC4IK1kt5IK+5NZPNZbf2Y8qDsWcBNXfw5sh7pJymRwPCge+S5Jy69tadeSAWpX1YMuq+By/o2KWawpokstxmE6w2RNPFhKXtGPvukoDnpV9wDFgBcoNDJctDVdIPqNolLxn6Y57HoOid6CO2s+PqQcfZSEo7V70Rk6OQ+02M0ED0/4XGq6vflc6IlQ5LO1urRT4INrAQmWdulHnmLf+HESJAc0ZICO1T73aQVaGVVHFQxDMVgaTer1UXP1xxfB1tazfJme2aycsDM1WS5lTwMRRlvgwupkzS+YwGq+nB1QFsZknKgeoacGYxQjFo6EGvszitNU+sK4U/EeAShS/nM/96c10awZVwQnal5T9sYOO31mA2pxyI4TwxkgWw2wkj38msz+8afHvPlFlqlU0UiEm7hYMj5s4L08msIY+GVc7tGgaRYklsnRFUU6s0Kql8BLPkbpdM9RAoSczy4tlGlaBAPeC6ouPgyNf1+VRfVZnqlPF063ok1KcEbd6QqQHo0kgsUMLbtdPbe752dmUo64sZXkuDKISmFEwQjn3SN4K7OOg9sk5QEz1STMvm8pazq1yb+0CE1iad5e+HoNkrGT+5GSVX+YShiItu5eyZXjZ7m8GQ2HZTA7mgv6FwGSI6o0URPIRk/UgKMCggTSat2gf3oVk+aZvRCvkGg+ISjkEKk49tQasLDAfvVjdue2JHpM1UwNhTlurHNasqnwNEzFzhflsMuM+V7dv/6/3AiJBUSC9Oyd/kWRpt5DS0nW+BkBcL5eBoofyssj0tAqxpWe+nNwCL9ljVPdytQCHWp71xEqnDxSq1KWV7u57MmBSaGStdyWtShBvEQdHQIDpXz8HVfOWOxQKttNYkupVJcbYhHNicwLzc3Ox1TaT/trfkmTXT80XXfQA83Ls1VVsYKjHDBT5/bIOx3IzjS0KNl7C5E8BuggSL69t8ogHSOKwH9CugZje3vj0BuzhZsl65k1i/pNS+vYwOifv6BhhbgWS6D2s9+a1Xi5YLGLE/EvMlw82N+o/owUluZ2vhekbYJ0HkuyrL+18l0L5B+8iJS62LzdD+hC93cGxqD9RVQA37yxzpN33l2y6teSrypYU7j2hMVv1l0Y6JU0l5itSdWT3VmWyHzdKLYNFjpA2WY3UgvsWRTJfFYzFEYUu2V6OqY7HzUiuKcVTYwB5Ky2qESzmIFiLRv0E9E+fVoYTKjk8v2gDaNwKWq7AJTabgeNaQVif3lUdZ1oQerb6aRc7PBBBKBD1YE3S8+wJ6C4MIs+XIxuJvjhhbOav5Q+G9Tk251dlt44cWQ61sCPi5pCMAgzcwRH2+ZQOZeYslt6g4XS3TorVlHveIpQkBOPvzO3fUkfUQzKPZ1QXFIBZnTLLIcsV+L/tt5kep9ucrqUjNcREPODf+nM/mQlfLGT8SLU9r2zMFkMm4zXNWswWTsXO7zm1YEErAtyggWff6gM66wz1dnNMiVXMQ=="},"preferences":{"data":"EZMrwxNFFd1sMGycoYE7IrlGGrfLixLUnLZmWMkFysfISe2ay3ueO0PGCApuKqh9hA=="},"oneTimePasswords":{"data":"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"},"version":"0.1"}', | 76 | userDetails: '{"records":{"index":{"eeda70e0392261967bda71c3764da78989c45bbd2bb7be6b941b90f81d9b81b5":"0","13a5e52976337ab210903cd04872588e1b21fb72bc183e91aa25c494b8138551":"1","062af892bcfba49ffcff05c56d99b7af2d508358e39c058c2e1fc83531436f80":"2","ca01bcb7691f70818feed46c9a2a91883ac543997a395535aedbb49de166690c":"3","507f38b06d587d8889698ae1ebbba7ef8f0539b82550dd25779fd9ee88fc0c7a":"4","d5f700b9c3367c39551ea49e00a9ab20dae09dd79d46047b983fc7c4bfaa050d":"5","de13c0d036234c44214062bc0a89e5f127470c464333493a485729f43cdc26e4":"6","d620764a656bfd4e1d3758500d5db72e460a0cf729d56ed1a7755b5725c50045":"7","f215d89bf4583c12f5ed4f4330f488dad3fffa448f4dc784f15ef135dda2c732":"8","36ec1a41118813ced3553534fa2607d781cba687768db305beed368a8e06e113":"9","fe21497ef7435d31f9746c132e4b5ecf5aac5f13b5961ddb55d2bdc3409f28f6":"10","6d45c2fec275b7482d41c76b20507100cfb6ab49922b876f9dd3040d361f4a18":"11","9dcd2a8a0fcb7e57d234dc4fea347f020a6a01793e40cf56a0d22379e590e291":"12","6c25be8e145efb26a1abd59590522f73fb2e3dbc139af2217074d9e2ba92c16a":"13","6026370f3db3860d2c46a08e389a7e906dc14f98c8444b21be9a7e9f405a2728":"14","8b18e8593b5bc2f7ea39a5fab222047034ef2f380fee05be0fa6e1c0972fea39":"15","084e23120544603f0297368fd3891a3818e0fe13488e2f2c6079913c8d1bed8d":"16","7bb69b6366a8012f181c01e368ba18d4f7a82bcabb4959189736ad124c4bbfbb":"17","5cdac63b317f3942da38f3a3de3b7f0e5d6678200951c6216230295550f63fb4":"18","c0ce9130ca365bb02418d4305ea1d29e49c3f0e96d44b9d3cb6b4b6843d25065":"19"},"data":"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"},"directLogins":{"index":{"61e87fdc4f1d9112e3b30c1f6812d095dcdb24f014c83319091eb6c9899ec348":"0","989593d4c48929f0c8f1581aa96969c622807e99619ed4732026e967530a68ad":"1","9f7979368fa29f66c44bd97ecaf6c545abc800b1c7bb21b7655a68e1514c3906":"2","dba0db679802f0e6aa6d0b7a6aaf42350aabc5f057409edd99a268a92ebb6496":"3","aa18149164302d5dbe7e2d3724565b9550e00887b49978559783b2e38c625584":"4","1f9bfd677b531a03168d3f8bd8afabb5357244a7bc355dff50bd6c0a072114a6":"5","a48e38845713462ecc9f827149eeaae87da882031f98ef8ebbf9ee9537b63468":"6","6f7bbc4e42ea462b5246e6f51c3f86056bec50601ce2de6067c8c1d26f21c07f":"7","2df54059e78f5771f23bd285cce19595b38331b73d67020424d9a1b2257db09c":"8","065cd0c270e5e8ce50e4ea8e3828dccdae18c01ab030813d756a87d03fe68784":"9","ddbc8d01300a4f10631cbde09e1246332eade3a877a2205209f9eb9e5bc9da0b":"10","9b7a30e667afc9f76ba77600658b2c13bff52432d444261d39bf3d069a160afe":"11","9fd2929cde3d32d9cbc5f1d787f2f64729a5e12a14410556b31c0c099762c46a":"12","f695fc36ac56bead80c0d20a88e01e382819c18dc268f1679551b7c83db7cb14":"13","f22dc41ffabef4b3bc8f7af804fec975bd50718098322a673cbe4aaff9464ae1":"14","03251dc1cbc5398789e4c4b45c52cfac3fcd8c1a4f19a81fa68fc6feae31d55c":"15","a7b32e72502804bf2946a2a8856139cbbb759c5777e6b3e673db1fdf7e3bd06e":"16","cb9ae0bba1957075ccdbfd3b3481704d62087687a2ac7c411a4f07d444bde0f7":"17","7e1d069b7fa57c03bd7bf48807520feb953157834503aaff8c9d493f37dea69d":"18","24404059cabc63b2dbff0f42ba57183108b8189ef53ab62fa25141a1caea824b":"19","33cf9758477460a8056deef0295a1ebe65b39b392c361ceb920a83edacfe5d78":"20","e9a16316f330e3d150f6ffd194f6fd8acd1426757b097de4b88ca0db875202e4":"21"},"data":"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"},"preferences":{"data":"EZMrwxNFFd1sMGycoYE7IrlGGrfLixLUnLZmWMkFysfISe2ay3ueO0PGCApuKqh9hA=="},"oneTimePasswords":{"data":"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"},"version":"0.1"}', |
80 | statistics: 'SfGy/4mpXQdDOv+Bcfie4Yt/', | 77 | statistics: 'SfGy/4mpXQdDOv+Bcfie4Yt/', |
81 | userDetailsVersion: '0.3', | 78 | userDetailsVersion: '0.3', |
82 | records: { | 79 | records: { |
83 | '062af892bcfba49ffcff05c56d99b7af2d508358e39c058c2e1fc83531436f80': { | 80 | '062af892bcfba49ffcff05c56d99b7af2d508358e39c058c2e1fc83531436f80': { |
84 | data: '7sgxSQlqR+wh3g06M2+sWp7raQxjjQ9jLIz2OcEB7SckuQcXNrhMlDCbL6ncSljtzgqhioWrOB409kIG8lc7h6ekghOE/Mhi7rVwAiRfNGB7r3mYxpEXRe96O2RG7E+NcSp8ezl+5gJ9D0o1abXPeFQYGcr95hUioCfyY+xrxY8TJVwdb9nHkYvBdKV7rCl1dTxgsKWK3nlo1T7e5uyiz5YUAE6BrCtTFAqtprLI/xOpRti9C+llohS7D6s8hkCBPZfp3chKFDrgpsCBFLhXN8jrBKSjHi1PJdRQzpJsgrxyeBj0dZx3gTsYOXqrYgdIzFUo7K1Tqb30yNprBiDMr7j0YYXiSvEb7OuOIP+HTXGN+yt09bk9LggyY6Fh0e+tenjQQ3soySN/XznOBpEjXbzXoz6fR1MXVnE9GgaX99LVNqwWfq2rIBdSE/FfspRiWP3BY5jIrEkNeRclS05U1zw3K3wxOL+cB9r2IynSXnK8QcrDNNRZ0W3PhsSFfByUXuviLSEOPuJa1mYP29L9Lj/WyHL1Gyl8xLbt2H41S6+wvIleKMuc7teH6wPXbnYphvbwBowoI6HZTEFkz3dQKhhY6VF/81iCXsuaz6BjyrzFX6SkQ4S3lN1tv4opQMJFvnmHb6EkXqVWfeIXzJIJO+owL4vDOf4okpAD+HPjjlVXhq6fvyM5UBIK9+tzJW78X/zifrQOfWRIhwjVsfUdZWmZ/S35vnHWNuXkM8GBYrDysqxanDtah3U8XLAiIhFtBOzpzr6qGaNDOKKgG3K8QXT4bYHOq1rQVUwzQuKhlCyStrRMQrC5Ry251xmLy6dKfppRarVeGDtzB/30BbtFNdZmzMNG2g+Jj5tFCrEtCMvMiQEWZHMU3tGMFxDef/KKdv1fFTJC16jmaUiCHUZmNjB3EO9R6xPVcMlAVKf57n3efrpRk/GTmm9JhAFkuF/wsveH4JjPpDUdkHYFu5tHbb30sbga3ufBAXbQL4ck10S24akU/cKraFGLvuKGaR2U0i6ih911TBSf3pAfZ3RFbBhVIl+6rSknC5+IXoBR7MRstBPW/xC9pQVjN5Qyn0g3aUjUSI+q4jcTuvMl32NtTJbWRMGhfkrpVzypZTyPnIh6XJkyBghlUARXw23MlbjiZxmY4ScDmcWZRZJWIknHlqjDKFDKNnwrfnEI9qWyMDno+jA/DEQz0mnpdZYEsoz1/qAmAeDt89vx', | 81 | data: '7sgxSQlqR+wh3g06M2+sWp7raQxjjQ9jLIz2OcEB7SckuQcXNrhMlDCbL6ncSljtzgqhioWrOB409kIG8lc7h6ekghOE/Mhi7rVwAiRfNGB7r3mYxpEXRe96O2RG7E+NcSp8ezl+5gJ9D0o1abXPeFQYGcr95hUioCfyY+xrxY8TJVwdb9nHkYvBdKV7rCl1dTxgsKWK3nlo1T7e5uyiz5YUAE6BrCtTFAqtprLI/xOpRti9C+llohS7D6s8hkCBPZfp3chKFDrgpsCBFLhXN8jrBKSjHi1PJdRQzpJsgrxyeBj0dZx3gTsYOXqrYgdIzFUo7K1Tqb30yNprBiDMr7j0YYXiSvEb7OuOIP+HTXGN+yt09bk9LggyY6Fh0e+tenjQQ3soySN/XznOBpEjXbzXoz6fR1MXVnE9GgaX99LVNqwWfq2rIBdSE/FfspRiWP3BY5jIrEkNeRclS05U1zw3K3wxOL+cB9r2IynSXnK8QcrDNNRZ0W3PhsSFfByUXuviLSEOPuJa1mYP29L9Lj/WyHL1Gyl8xLbt2H41S6+wvIleKMuc7teH6wPXbnYphvbwBowoI6HZTEFkz3dQKhhY6VF/81iCXsuaz6BjyrzFX6SkQ4S3lN1tv4opQMJFvnmHb6EkXqVWfeIXzJIJO+owL4vDOf4okpAD+HPjjlVXhq6fvyM5UBIK9+tzJW78X/zifrQOfWRIhwjVsfUdZWmZ/S35vnHWNuXkM8GBYrDysqxanDtah3U8XLAiIhFtBOzpzr6qGaNDOKKgG3K8QXT4bYHOq1rQVUwzQuKhlCyStrRMQrC5Ry251xmLy6dKfppRarVeGDtzB/30BbtFNdZmzMNG2g+Jj5tFCrEtCMvMiQEWZHMU3tGMFxDef/KKdv1fFTJC16jmaUiCHUZmNjB3EO9R6xPVcMlAVKf57n3efrpRk/GTmm9JhAFkuF/wsveH4JjPpDUdkHYFu5tHbb30sbga3ufBAXbQL4ck10S24akU/cKraFGLvuKGaR2U0i6ih911TBSf3pAfZ3RFbBhVIl+6rSknC5+IXoBR7MRstBPW/xC9pQVjN5Qyn0g3aUjUSI+q4jcTuvMl32NtTJbWRMGhfkrpVzypZTyPnIh6XJkyBghlUARXw23MlbjiZxmY4ScDmcWZRZJWIknHlqjDKFDKNnwrfnEI9qWyMDno+jA/DEQz0mnpdZYEsoz1/qAmAeDt89vx', |
85 | version: '0.2', | 82 | version: '0.2', |
86 | creationDate: 'Wed Mar 14 15:46:44 CET 2007', | 83 | creationDate: 'Wed Mar 14 15:46:44 CET 2007', |
87 | updateDate: 'Wed Mar 14 15:46:44 CET 2007', | 84 | updateDate: 'Wed Mar 14 15:46:44 CET 2007', |
88 | accessDate: 'Mon Jan 19 16:10:04 CET 2009', | 85 | accessDate: 'Mon Jan 19 16:10:04 CET 2009', |
89 | currentVersion: '4a70ca20167875a936d4540f19980e972c20f329a65d85e9b0ce709f1fc7c7e3', | 86 | currentVersion: '4a70ca20167875a936d4540f19980e972c20f329a65d85e9b0ce709f1fc7c7e3', |
90 | versions: { | 87 | versions: { |
91 | '4a70ca20167875a936d4540f19980e972c20f329a65d85e9b0ce709f1fc7c7e3': { | 88 | '4a70ca20167875a936d4540f19980e972c20f329a65d85e9b0ce709f1fc7c7e3': { |
92 | header: '####', | 89 | header: '####', |
93 | data: 'GCNNIhDQjMJQZGVSf+95fPtU6eOnFWVhuGm86r8WZGVR2Gf2EjbG1OJ0ZIGpZ/AXgirCMpo5AFxJe0Bay8IYg+xmBqMFhwFxzAgJBYCIts+raSaNRipuY8dTEqDxAqD1cChcG8EhSoiFgQ0fG0I7nNEUDJi0pIt4/ygBcwvAhuAenEp9ZW+oQA0+YysPQRqkz3IieFaOoSEbe5/SqpUilV4q1gTVyzNXvrxzxx+rlvEyGFgFN+vgtUZ1NrwlPk4gVksTpylvv6CFaMGEWKhgMG6efo0rJckKosaJTu1pldJdnmMK4EKNMLOd+jZ6pEhEhYyadrA4+zYU5TlmZA6ASzTaps8piSwZodoi9qY0ch2StK4mAbzeEGe2HdfHuAU9Tyq3Ppk3+VfNdKgpQfYrQOiSlXbKzK636tzXTN/gyrfOTHjBrRl117ywibgSX63ayAYNfcLpKotC', | 90 | data: 'GCNNIhDQjMJQZGVSf+95fPtU6eOnFWVhuGm86r8WZGVR2Gf2EjbG1OJ0ZIGpZ/AXgirCMpo5AFxJe0Bay8IYg+xmBqMFhwFxzAgJBYCIts+raSaNRipuY8dTEqDxAqD1cChcG8EhSoiFgQ0fG0I7nNEUDJi0pIt4/ygBcwvAhuAenEp9ZW+oQA0+YysPQRqkz3IieFaOoSEbe5/SqpUilV4q1gTVyzNXvrxzxx+rlvEyGFgFN+vgtUZ1NrwlPk4gVksTpylvv6CFaMGEWKhgMG6efo0rJckKosaJTu1pldJdnmMK4EKNMLOd+jZ6pEhEhYyadrA4+zYU5TlmZA6ASzTaps8piSwZodoi9qY0ch2StK4mAbzeEGe2HdfHuAU9Tyq3Ppk3+VfNdKgpQfYrQOiSlXbKzK636tzXTN/gyrfOTHjBrRl117ywibgSX63ayAYNfcLpKotC', |
94 | version: '0.2', | 91 | version: '0.2', |
95 | creationDate: 'Wed Mar 14 15:46:44 CET 2007', | 92 | creationDate: 'Wed Mar 14 15:46:44 CET 2007', |
96 | updateDate: 'Wed Mar 14 15:46:44 CET 2007', | 93 | updateDate: 'Wed Mar 14 15:46:44 CET 2007', |
97 | accessDate: 'Mon Jan 19 16:10:04 CET 2009' | 94 | accessDate: 'Mon Jan 19 16:10:04 CET 2009' |
98 | } | 95 | } |
99 | } | 96 | } |
100 | }, | 97 | }, |
101 | '084e23120544603f0297368fd3891a3818e0fe13488e2f2c6079913c8d1bed8d': { | 98 | '084e23120544603f0297368fd3891a3818e0fe13488e2f2c6079913c8d1bed8d': { |
102 | data: 'fGzBu1On7e/6rAoSB1a4fq/CkS8Be/T8UP5cQ93asBTWndSYu2lW4DQ4SXQXSindIi3OnNx/f6SNv/extb7OrMLREF92wXI045ipPwy+DIICb+cQNMJ82Sh4cXaIcAWcyrm+MYri3qq9LBKbpwkILcebZidJ86lmKYHJozUezmfbMcwNCljHs/gYkHVzVcuw9L52Ugc6wC7sjsshh+UH6i4/2Frlrophtx+b1vervNd8eoYiKnedHVXVfW7UJcQoF27eHFgzwYnGvRW0KNXFFhqmPb61TSkIvNdCCvBKDP4SXrWvGgzU89wipvWdUPpQ+fCT6Mp3hPRrbJxwMunmjujZOzBld/HkjnXoiNfBb5akA280WvdyzWYATrjV1ZFx8yQY8G0+lRt/MxjKDc38w4y+Rf5WeRbXboJMvFatwooHUggk6qSRmZVvgOmFmNuDRnRYIFzqK3JclhJeVasnqhR6RiGSowc1Ffr1HhcZCMnXpQABGBkZcHD/zw6YjHRyh9Plw7XAm0xb16HMDtiwt7WLJpxLH/HP99j/A2hvMGWiUiFCaYv7AzyEPTmYbN32D1IsAEE/GC3FG0HypGTBolP8wpAfTRdlvWpJz8oRRdwuLV3Pgpu+kXh5sQyeZI6tnuMPQFmRDcMN1oo3E5V5V585nVMnKTFcXhBzD4UnoV+DQNkG/+iSPybQzz/EZmucEqGEYyjI3kl4MAX8UMEUxE4JO0fF8MzyBI13nxknowAceEammx1dGVaJCoIOdhadaPVPyOzXM1Vp1erVm5k4TsxSx1pll+GOm6hVoNHIuQLDueaMEpRxMhfwc8cDyXURqRGPTgTc0bint5xVjo10fnpX1gcdc/AWL6y3tXM80NW+uFJ4GI7VzyzfcMRzTiRaGi19z8MIx8PbIVGh2sw4FhgGujNsPrpuESvUVT+17M0+v8oEoABNlcizTMFs/sA1uqlPumFASltzmViAzClOsDuCh069hFLjdk/Ex5jy4vPYlwOT8Uq9DJC9ZWuZgiI1DrhWN/8QGAEGxxbvnSZPNCQ9kpD5p+iabinLLWOAirVNgKwIRJRyAu/uR9xKd7J9Wxq8q/ii+y5lGilbo2g24wbDwrkXYVhqp/4J0g+p8Wv1NBjCTSCqV39WEizUCRHo3ee9HnQnBJQDOyTBRuz2odTJtJ5tLYjWXZRdFzFSJrEq+Z1z3oq7LnhZy3YWaFXPeKmBCemMthtNt0nL', | 99 | data: 'fGzBu1On7e/6rAoSB1a4fq/CkS8Be/T8UP5cQ93asBTWndSYu2lW4DQ4SXQXSindIi3OnNx/f6SNv/extb7OrMLREF92wXI045ipPwy+DIICb+cQNMJ82Sh4cXaIcAWcyrm+MYri3qq9LBKbpwkILcebZidJ86lmKYHJozUezmfbMcwNCljHs/gYkHVzVcuw9L52Ugc6wC7sjsshh+UH6i4/2Frlrophtx+b1vervNd8eoYiKnedHVXVfW7UJcQoF27eHFgzwYnGvRW0KNXFFhqmPb61TSkIvNdCCvBKDP4SXrWvGgzU89wipvWdUPpQ+fCT6Mp3hPRrbJxwMunmjujZOzBld/HkjnXoiNfBb5akA280WvdyzWYATrjV1ZFx8yQY8G0+lRt/MxjKDc38w4y+Rf5WeRbXboJMvFatwooHUggk6qSRmZVvgOmFmNuDRnRYIFzqK3JclhJeVasnqhR6RiGSowc1Ffr1HhcZCMnXpQABGBkZcHD/zw6YjHRyh9Plw7XAm0xb16HMDtiwt7WLJpxLH/HP99j/A2hvMGWiUiFCaYv7AzyEPTmYbN32D1IsAEE/GC3FG0HypGTBolP8wpAfTRdlvWpJz8oRRdwuLV3Pgpu+kXh5sQyeZI6tnuMPQFmRDcMN1oo3E5V5V585nVMnKTFcXhBzD4UnoV+DQNkG/+iSPybQzz/EZmucEqGEYyjI3kl4MAX8UMEUxE4JO0fF8MzyBI13nxknowAceEammx1dGVaJCoIOdhadaPVPyOzXM1Vp1erVm5k4TsxSx1pll+GOm6hVoNHIuQLDueaMEpRxMhfwc8cDyXURqRGPTgTc0bint5xVjo10fnpX1gcdc/AWL6y3tXM80NW+uFJ4GI7VzyzfcMRzTiRaGi19z8MIx8PbIVGh2sw4FhgGujNsPrpuESvUVT+17M0+v8oEoABNlcizTMFs/sA1uqlPumFASltzmViAzClOsDuCh069hFLjdk/Ex5jy4vPYlwOT8Uq9DJC9ZWuZgiI1DrhWN/8QGAEGxxbvnSZPNCQ9kpD5p+iabinLLWOAirVNgKwIRJRyAu/uR9xKd7J9Wxq8q/ii+y5lGilbo2g24wbDwrkXYVhqp/4J0g+p8Wv1NBjCTSCqV39WEizUCRHo3ee9HnQnBJQDOyTBRuz2odTJtJ5tLYjWXZRdFzFSJrEq+Z1z3oq7LnhZy3YWaFXPeKmBCemMthtNt0nL', |
103 | version: '0.3', | 100 | version: '0.3', |
104 | creationDate: 'Fri Oct 17 16:49:20 CEST 2008', | 101 | creationDate: 'Fri Oct 17 16:49:20 CEST 2008', |
105 | updateDate: 'Mon Oct 27 08:58:49 CET 2008', | 102 | updateDate: 'Mon Oct 27 08:58:49 CET 2008', |
106 | accessDate: 'Mon Jan 19 16:09:39 CET 2009', | 103 | accessDate: 'Mon Jan 19 16:09:39 CET 2009', |
107 | currentVersion: '6fd60c5709a4808444f43f7bbd872363d76703957f613076538ba2f9161206ac', | 104 | currentVersion: '6fd60c5709a4808444f43f7bbd872363d76703957f613076538ba2f9161206ac', |
108 | versions: { | 105 | versions: { |
109 | '0ae362285f103722abbd046eee2b7d10aeae6a1d05cbaf2081392ce9df882bcf': { | 106 | '0ae362285f103722abbd046eee2b7d10aeae6a1d05cbaf2081392ce9df882bcf': { |
110 | header: '####', | 107 | header: '####', |
111 | data: 'sG6TUmPSEPFpiJ5YdtghWHmHbvUK63tZCZ+Q5iz2ALas//jN+lZCBhZcjEwPEJskBkK2R0MyAh14wWGh2bBHMjsokgTe+L+x+0c/Zi0epE/IC9gtOBhsTe/hZ2e2xOGF/SbzET3DAAYXvxduZ36f7SvvFnrkkKvpj8wGSdTFcBmzqMb9DL2bRyRCLGLMzE3F1a0q5CufCIRz2TgHm+Uw+kfvvwC7ig/F/5iLW90Ypz3vmEtMEFYFHZ9a8Oh0rsXGfevbMhFqALoywzihQEe/NiB8dwn7GEdYKSQ35rhvZh29ULWOZinqmg0ONe0HYaxx7DbKsVoue57S0CIUlgHLajzHfLfqQg2sFI0OT8TnHsGg0YZ6mM2EdKmEjJiER0cP', | 108 | data: 'sG6TUmPSEPFpiJ5YdtghWHmHbvUK63tZCZ+Q5iz2ALas//jN+lZCBhZcjEwPEJskBkK2R0MyAh14wWGh2bBHMjsokgTe+L+x+0c/Zi0epE/IC9gtOBhsTe/hZ2e2xOGF/SbzET3DAAYXvxduZ36f7SvvFnrkkKvpj8wGSdTFcBmzqMb9DL2bRyRCLGLMzE3F1a0q5CufCIRz2TgHm+Uw+kfvvwC7ig/F/5iLW90Ypz3vmEtMEFYFHZ9a8Oh0rsXGfevbMhFqALoywzihQEe/NiB8dwn7GEdYKSQ35rhvZh29ULWOZinqmg0ONe0HYaxx7DbKsVoue57S0CIUlgHLajzHfLfqQg2sFI0OT8TnHsGg0YZ6mM2EdKmEjJiER0cP', |
112 | version: '0.3', | 109 | version: '0.3', |
113 | creationDate: 'Fri Oct 17 17:00:31 CEST 2008', | 110 | creationDate: 'Fri Oct 17 17:00:31 CEST 2008', |
114 | updateDate: 'Fri Oct 17 17:00:31 CEST 2008', | 111 | updateDate: 'Fri Oct 17 17:00:31 CEST 2008', |
115 | accessDate: 'Fri Oct 17 17:00:31 CEST 2008' | 112 | accessDate: 'Fri Oct 17 17:00:31 CEST 2008' |
116 | }, | 113 | }, |
117 | '10f45664bbd979a92f37886f1ecc6e52e49798b16dc997aecd37259ad9b2090e': { | 114 | '10f45664bbd979a92f37886f1ecc6e52e49798b16dc997aecd37259ad9b2090e': { |
118 | header: '####', | 115 | header: '####', |
119 | data: 'RdKVaV/WWWchrCse3KtcXd47Bfm6IAwjqVUpaxoed3HeunI42AAm7xYYSjeK8edHpbNRJbhobBAX5OZtWIp/HmgkobKM8CIiWxrWz89FqyrbnPD7+fXdtgF2yTax/0sC1l0ibncdOuJKX6U829oPlXCpXIOjlomc4wEEAD/5V6FbORvdZ9IE/ME3LsG2y02cT2tIpx6+R6wC/PKXhZA2UDsTE6R2Op2BtIzpVORZLXsdyAp/4wvWQxq90i9cEpbsVQsMB10JVyNHNsRTFhIlHi9MVCaMxQvcrwRElMj/Y9x3RbsFzSGKqFLqdg7Fn/U+KYkpYtsgHv9hraPIb9lV5FH16+iItU/HBM6FGezIj1ZkoQ+dgjPfSjTZzgzDYwyb', | 116 | data: 'RdKVaV/WWWchrCse3KtcXd47Bfm6IAwjqVUpaxoed3HeunI42AAm7xYYSjeK8edHpbNRJbhobBAX5OZtWIp/HmgkobKM8CIiWxrWz89FqyrbnPD7+fXdtgF2yTax/0sC1l0ibncdOuJKX6U829oPlXCpXIOjlomc4wEEAD/5V6FbORvdZ9IE/ME3LsG2y02cT2tIpx6+R6wC/PKXhZA2UDsTE6R2Op2BtIzpVORZLXsdyAp/4wvWQxq90i9cEpbsVQsMB10JVyNHNsRTFhIlHi9MVCaMxQvcrwRElMj/Y9x3RbsFzSGKqFLqdg7Fn/U+KYkpYtsgHv9hraPIb9lV5FH16+iItU/HBM6FGezIj1ZkoQ+dgjPfSjTZzgzDYwyb', |
120 | version: '0.3', | 117 | version: '0.3', |
diff --git a/frontend/gamma/tests/tests/Components/CardDialogNew/cardDialogNew_test.js b/frontend/gamma/tests/tests/Components/CardDialogNew/cardDialogNew_test.js index e2b21bc..60a2757 100644 --- a/frontend/gamma/tests/tests/Components/CardDialogNew/cardDialogNew_test.js +++ b/frontend/gamma/tests/tests/Components/CardDialogNew/cardDialogNew_test.js | |||
@@ -1,120 +1,117 @@ | |||
1 | /* | 1 | /* |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | */ | 24 | */ |
28 | 25 | ||
29 | Clipperz.Base.module('Clipperz.Tests.CardDialogNew'); | 26 | Clipperz.Base.module('Clipperz.Tests.CardDialogNew'); |
30 | 27 | ||
31 | Clipperz.Crypto.PRNG.defaultRandomGenerator().fastEntropyAccumulationForTestingPurpose(); | 28 | Clipperz.Crypto.PRNG.defaultRandomGenerator().fastEntropyAccumulationForTestingPurpose(); |
32 | Clipperz.PM.Strings.Languages.initSetup(); | 29 | Clipperz.PM.Strings.Languages.initSetup(); |
33 | 30 | ||
34 | Clipperz.Tests.CardDialogNew.Tester = function(args) { | 31 | Clipperz.Tests.CardDialogNew.Tester = function(args) { |
35 | args = args || {}; | 32 | args = args || {}; |
36 | 33 | ||
37 | Clipperz.Tests.CardDialogNew.Tester.superclass.constructor.call(this, args); | 34 | Clipperz.Tests.CardDialogNew.Tester.superclass.constructor.call(this, args); |
38 | this._user = new Clipperz.PM.DataModel.User({username:'test', getPassphraseFunction:function () { return 'test';}}); | 35 | this._user = new Clipperz.PM.DataModel.User({username:'test', getPassphraseFunction:function () { return 'test';}}); |
39 | 36 | ||
40 | return this; | 37 | return this; |
41 | }; | 38 | }; |
42 | 39 | ||
43 | Clipperz.Base.extend(Clipperz.Tests.CardDialogNew.Tester, Object, { | 40 | Clipperz.Base.extend(Clipperz.Tests.CardDialogNew.Tester, Object, { |
44 | 41 | ||
45 | 'toString': function() { | 42 | 'toString': function() { |
46 | return "Clipperz.Tests.CardDialogNew.Tester"; | 43 | return "Clipperz.Tests.CardDialogNew.Tester"; |
47 | }, | 44 | }, |
48 | 45 | ||
49 | //------------------------------------------------------------------------- | 46 | //------------------------------------------------------------------------- |
50 | 47 | ||
51 | 'user': function () { | 48 | 'user': function () { |
52 | return this._user; | 49 | return this._user; |
53 | }, | 50 | }, |
54 | 51 | ||
55 | //------------------------------------------------------------------------- | 52 | //------------------------------------------------------------------------- |
56 | 53 | ||
57 | 'run': function () { | 54 | 'run': function () { |
58 | var deferredResult; | 55 | var deferredResult; |
59 | var proxy; | 56 | var proxy; |
60 | varcardDialogController; | 57 | varcardDialogController; |
61 | varcardDialogComponent; | 58 | varcardDialogComponent; |
62 | 59 | ||
63 | proxy = new Clipperz.PM.Proxy.Test({shouldPayTolls:true, isDefault:true, readOnly:false}); | 60 | proxy = new Clipperz.PM.Proxy.Test({shouldPayTolls:true, isDefault:true, readOnly:false}); |
64 | 61 | ||
65 | deferredResult = new Clipperz.Async.Deferred("cardDialogNew_test.init", {trace:false}); | 62 | deferredResult = new Clipperz.Async.Deferred("cardDialogNew_test.init", {trace:false}); |
66 | deferredResult.addMethod(proxy.dataStore(), 'setupWithEncryptedData', testData['test_test_offline_copy_data']); | 63 | deferredResult.addMethod(proxy.dataStore(), 'setupWithEncryptedData', testData['test_test_offline_copy_data']); |
67 | deferredResult.addMethod(this.user(), 'login'); | 64 | deferredResult.addMethod(this.user(), 'login'); |
68 | // deferredResult.addMethod(this.user(), 'getRecord', '8280842f41162b673335b63860637e8472e8bbff0efa2bc78b0dbc5e09712e13'); | 65 | // deferredResult.addMethod(this.user(), 'getRecord', '8280842f41162b673335b63860637e8472e8bbff0efa2bc78b0dbc5e09712e13'); |
69 | deferredResult.addMethod(this.user(), 'createNewRecord'); | 66 | deferredResult.addMethod(this.user(), 'createNewRecord'); |
70 | deferredResult.addCallback(MochiKit.Base.bind(function (aRecord) { | 67 | deferredResult.addCallback(MochiKit.Base.bind(function (aRecord) { |
71 | cardDialogController = new Clipperz.PM.UI.Web.Controllers.CardDialogController({record:aRecord, delegate:this}); | 68 | cardDialogController = new Clipperz.PM.UI.Web.Controllers.CardDialogController({record:aRecord, delegate:this}); |
72 | cardDialogController.run(); | 69 | cardDialogController.run(); |
73 | }, this)); | 70 | }, this)); |
74 | deferredResult.callback(); | 71 | deferredResult.callback(); |
75 | 72 | ||
76 | return deferredResult; | 73 | return deferredResult; |
77 | }, | 74 | }, |
78 | 75 | ||
79 | //========================================================================= | 76 | //========================================================================= |
80 | 77 | ||
81 | 'saveChanges': function () { | 78 | 'saveChanges': function () { |
82 | return this.user().saveChanges(); | 79 | return this.user().saveChanges(); |
83 | }, | 80 | }, |
84 | 81 | ||
85 | //------------------------------------------------------------------------- | 82 | //------------------------------------------------------------------------- |
86 | 83 | ||
87 | 'hasPendingChanges': function () { | 84 | 'hasPendingChanges': function () { |
88 | return this.user().hasPendingChanges(); | 85 | return this.user().hasPendingChanges(); |
89 | }, | 86 | }, |
90 | 87 | ||
91 | //------------------------------------------------------------------------- | 88 | //------------------------------------------------------------------------- |
92 | 89 | ||
93 | 'revertChanges': function () { | 90 | 'revertChanges': function () { |
94 | return this.user().revertChanges(); | 91 | return this.user().revertChanges(); |
95 | }, | 92 | }, |
96 | 93 | ||
97 | //========================================================================= | 94 | //========================================================================= |
98 | __syntaxFix__: "syntax fix" | 95 | __syntaxFix__: "syntax fix" |
99 | }); | 96 | }); |
100 | 97 | ||
101 | 98 | ||
102 | 99 | ||
103 | 100 | ||
104 | 101 | ||
105 | 102 | ||
106 | 103 | ||
107 | 104 | ||
108 | 105 | ||
109 | 106 | ||
110 | 107 | ||
111 | 108 | ||
112 | 109 | ||
113 | 110 | ||
114 | 111 | ||
115 | 112 | ||
116 | 113 | ||
117 | 114 | ||
118 | 115 | ||
119 | 116 | ||
120 | init = function () { | 117 | init = function () { |
diff --git a/frontend/gamma/tests/tests/Components/CardDialogNew/index.html b/frontend/gamma/tests/tests/Components/CardDialogNew/index.html index 1e0061a..2d502b4 100644 --- a/frontend/gamma/tests/tests/Components/CardDialogNew/index.html +++ b/frontend/gamma/tests/tests/Components/CardDialogNew/index.html | |||
@@ -1,117 +1,114 @@ | |||
1 | <!-- | 1 | <!-- |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | --> | 24 | --> |
28 | 25 | ||
29 | <html> | 26 | <html> |
30 | <head> | 27 | <head> |
31 | <title>Card Dialog NEW - test</title> | 28 | <title>Card Dialog NEW - test</title> |
32 | <script type="text/javascript" src="../../../../js/MochiKit/MochiKit.js"></script> | 29 | <script type="text/javascript" src="../../../../js/MochiKit/MochiKit.js"></script> |
33 | <script type='text/javascript' src='../../../../js/JSON/json2.js'></script> | 30 | <script type='text/javascript' src='../../../../js/JSON/json2.js'></script> |
34 | 31 | ||
35 | <script type='text/javascript' src='../../../../js/Clipperz/YUI/Utils.js'></script> | 32 | <script type='text/javascript' src='../../../../js/Clipperz/YUI/Utils.js'></script> |
36 | <script type='text/javascript' src='../../../../js/Clipperz/YUI/DomHelper.js'></script> | 33 | <script type='text/javascript' src='../../../../js/Clipperz/YUI/DomHelper.js'></script> |
37 | <script type='text/javascript' src='../../../../js/Clipperz/Base.js'></script> | 34 | <script type='text/javascript' src='../../../../js/Clipperz/Base.js'></script> |
38 | <script type='text/javascript' src='../../../../js/Clipperz/Date.js'></script> | 35 | <script type='text/javascript' src='../../../../js/Clipperz/Date.js'></script> |
39 | <script type='text/javascript' src='../../../../js/Clipperz/DOM.js'></script> | 36 | <script type='text/javascript' src='../../../../js/Clipperz/DOM.js'></script> |
40 | <script type='text/javascript' src='../../../../js/Clipperz/ByteArray.js'></script> | 37 | <script type='text/javascript' src='../../../../js/Clipperz/ByteArray.js'></script> |
41 | <script type='text/javascript' src='../../../../js/Clipperz/Logging.js'></script> | 38 | <script type='text/javascript' src='../../../../js/Clipperz/Logging.js'></script> |
42 | <script type='text/javascript' src='../../../../js/Clipperz/Async.js'></script> | 39 | <script type='text/javascript' src='../../../../js/Clipperz/Async.js'></script> |
43 | 40 | ||
44 | <script type='text/javascript' src='../../../../js/Clipperz/Signal.js'></script> | 41 | <script type='text/javascript' src='../../../../js/Clipperz/Signal.js'></script> |
45 | <script type='text/javascript' src='../../../../js/Clipperz/Style.js'></script> | 42 | <script type='text/javascript' src='../../../../js/Clipperz/Style.js'></script> |
46 | <script type='text/javascript' src='../../../../js/Clipperz/Visual.js'></script> | 43 | <script type='text/javascript' src='../../../../js/Clipperz/Visual.js'></script> |
47 | <script type='text/javascript' src='../../../../js/Clipperz/Set.js'></script> | 44 | <script type='text/javascript' src='../../../../js/Clipperz/Set.js'></script> |
48 | <script type='text/javascript' src='../../../../js/Clipperz/KeyValueObjectStore.js'></script> | 45 | <script type='text/javascript' src='../../../../js/Clipperz/KeyValueObjectStore.js'></script> |
49 | 46 | ||
50 | <script type='text/javascript' src='../../../../js/Clipperz/Crypto/Base.js'></script> | 47 | <script type='text/javascript' src='../../../../js/Clipperz/Crypto/Base.js'></script> |
51 | <script type='text/javascript' src='../../../../js/Clipperz/Crypto/BigInt.js'></script> | 48 | <script type='text/javascript' src='../../../../js/Clipperz/Crypto/BigInt.js'></script> |
52 | <script type='text/javascript' src='../../../../js/Clipperz/Crypto/AES.js'></script> | 49 | <script type='text/javascript' src='../../../../js/Clipperz/Crypto/AES.js'></script> |
53 | <script type='text/javascript' src='../../../../js/Clipperz/Crypto/SHA.js'></script> | 50 | <script type='text/javascript' src='../../../../js/Clipperz/Crypto/SHA.js'></script> |
54 | <script type='text/javascript' src='../../../../js/Clipperz/Crypto/PRNG.js'></script> | 51 | <script type='text/javascript' src='../../../../js/Clipperz/Crypto/PRNG.js'></script> |
55 | <script type='text/javascript' src='../../../../js/Clipperz/Crypto/SRP.js'></script> | 52 | <script type='text/javascript' src='../../../../js/Clipperz/Crypto/SRP.js'></script> |
56 | 53 | ||
57 | <script type='text/javascript' src='../../../../js/Clipperz/PM/Toll.js'></script> | 54 | <script type='text/javascript' src='../../../../js/Clipperz/PM/Toll.js'></script> |
58 | <script type='text/javascript' src='../../../../js/Clipperz/PM/Proxy.js'></script> | 55 | <script type='text/javascript' src='../../../../js/Clipperz/PM/Proxy.js'></script> |
59 | <script type='text/javascript' src='../../../../js/Clipperz/PM/Proxy/Proxy.Offline.js'></script> | 56 | <script type='text/javascript' src='../../../../js/Clipperz/PM/Proxy/Proxy.Offline.js'></script> |
60 | <script type='text/javascript' src='../../../../js/Clipperz/PM/Proxy/Proxy.Test.js'></script> | 57 | <script type='text/javascript' src='../../../../js/Clipperz/PM/Proxy/Proxy.Test.js'></script> |
61 | <script type='text/javascript' src='../../../../js/Clipperz/PM/Proxy/Proxy.Offline.DataStore.js'></script> | 58 | <script type='text/javascript' src='../../../../js/Clipperz/PM/Proxy/Proxy.Offline.DataStore.js'></script> |
62 | 59 | ||
63 | <script type='text/javascript' src='../../../../js/Clipperz/PM/Connection.js'></script> | 60 | <script type='text/javascript' src='../../../../js/Clipperz/PM/Connection.js'></script> |
64 | <script type='text/javascript' src='../../../../js/Clipperz/PM/Crypto.js'></script> | 61 | <script type='text/javascript' src='../../../../js/Clipperz/PM/Crypto.js'></script> |
65 | 62 | ||
66 | <script type='text/javascript' src='../../../../js/Clipperz/PM/Strings.js'></script> | 63 | <script type='text/javascript' src='../../../../js/Clipperz/PM/Strings.js'></script> |
67 | <script type='text/javascript' src='../../../../js/Clipperz/PM/Strings/Strings_en-US.js'></script> | 64 | <script type='text/javascript' src='../../../../js/Clipperz/PM/Strings/Strings_en-US.js'></script> |
68 | <script type='text/javascript' src='../../../../js/Clipperz/PM/Date.js'></script> | 65 | <script type='text/javascript' src='../../../../js/Clipperz/PM/Date.js'></script> |
69 | <script type='text/javascript' src='../../../../js/Clipperz/PM/DataModel/EncryptedRemoteObject.js'></script> | 66 | <script type='text/javascript' src='../../../../js/Clipperz/PM/DataModel/EncryptedRemoteObject.js'></script> |
70 | <script type='text/javascript' src='../../../../js/Clipperz/PM/DataModel/Record.js'></script> | 67 | <script type='text/javascript' src='../../../../js/Clipperz/PM/DataModel/Record.js'></script> |
71 | <script type='text/javascript' src='../../../../js/Clipperz/PM/DataModel/Record.Version.js'></script> | 68 | <script type='text/javascript' src='../../../../js/Clipperz/PM/DataModel/Record.Version.js'></script> |
72 | <script type='text/javascript' src='../../../../js/Clipperz/PM/DataModel/Record.Version.Field.js'></script> | 69 | <script type='text/javascript' src='../../../../js/Clipperz/PM/DataModel/Record.Version.Field.js'></script> |
73 | <script type='text/javascript' src='../../../../js/Clipperz/PM/DataModel/DirectLogin.js'></script> | 70 | <script type='text/javascript' src='../../../../js/Clipperz/PM/DataModel/DirectLogin.js'></script> |
74 | <!-- script type='text/javascript' src='../../../../js/Clipperz/PM/DataModel/Record.Field.js'></script --> | 71 | <!-- script type='text/javascript' src='../../../../js/Clipperz/PM/DataModel/Record.Field.js'></script --> |
75 | <script type='text/javascript' src='../../../../js/Clipperz/PM/DataModel/User.js'></script> | 72 | <script type='text/javascript' src='../../../../js/Clipperz/PM/DataModel/User.js'></script> |
76 | <script type='text/javascript' src='../../../../js/Clipperz/PM/DataModel/User.Header.Legacy.js'></script> | 73 | <script type='text/javascript' src='../../../../js/Clipperz/PM/DataModel/User.Header.Legacy.js'></script> |
77 | <script type='text/javascript' src='../../../../js/Clipperz/PM/DataModel/User.Header.RecordIndex.js'></script> | 74 | <script type='text/javascript' src='../../../../js/Clipperz/PM/DataModel/User.Header.RecordIndex.js'></script> |
78 | 75 | ||
79 | <script type='text/javascript' src='../../../../js/Clipperz/PM/UI/Common/Components/BaseComponent.js'></script> | 76 | <script type='text/javascript' src='../../../../js/Clipperz/PM/UI/Common/Components/BaseComponent.js'></script> |
80 | <script type='text/javascript' src='../../../../js/Clipperz/PM/UI/Common/Components/Button.js'></script> | 77 | <script type='text/javascript' src='../../../../js/Clipperz/PM/UI/Common/Components/Button.js'></script> |
81 | <script type='text/javascript' src='../../../../js/Clipperz/PM/UI/Common/Components/ComponentSlot.js'></script> | 78 | <script type='text/javascript' src='../../../../js/Clipperz/PM/UI/Common/Components/ComponentSlot.js'></script> |
82 | <script type='text/javascript' src='../../../../js/Clipperz/PM/UI/Common/Components/PasswordEntropyDisplay.js'></script> | 79 | <script type='text/javascript' src='../../../../js/Clipperz/PM/UI/Common/Components/PasswordEntropyDisplay.js'></script> |
83 | <script type='text/javascript' src='../../../../js/Clipperz/PM/UI/Common/Components/ProgressBar.js'></script> | 80 | <script type='text/javascript' src='../../../../js/Clipperz/PM/UI/Common/Components/ProgressBar.js'></script> |
84 | <script type='text/javascript' src='../../../../js/Clipperz/PM/UI/Common/Components/SimpleMessagePanel.js'></script> | 81 | <script type='text/javascript' src='../../../../js/Clipperz/PM/UI/Common/Components/SimpleMessagePanel.js'></script> |
85 | <script type='text/javascript' src='../../../../js/Clipperz/PM/UI/Common/Components/TabPanelComponent.js'></script> | 82 | <script type='text/javascript' src='../../../../js/Clipperz/PM/UI/Common/Components/TabPanelComponent.js'></script> |
86 | <script type='text/javascript' src='../../../../js/Clipperz/PM/UI/Common/Components/Tooltip.js'></script> | 83 | <script type='text/javascript' src='../../../../js/Clipperz/PM/UI/Common/Components/Tooltip.js'></script> |
87 | <script type='text/javascript' src='../../../../js/Clipperz/PM/UI/Common/Components/TranslatorWidget.js'></script> | 84 | <script type='text/javascript' src='../../../../js/Clipperz/PM/UI/Common/Components/TranslatorWidget.js'></script> |
88 | 85 | ||
89 | <script type='text/javascript' src='../../../../js/Clipperz/PM/UI/Web/Components/CardDialogComponent.js'></script> | 86 | <script type='text/javascript' src='../../../../js/Clipperz/PM/UI/Web/Components/CardDialogComponent.js'></script> |
90 | <script type='text/javascript' src='../../../../js/Clipperz/PM/UI/Web/Components/CardDialogRecordFieldComponent.js'></script> | 87 | <script type='text/javascript' src='../../../../js/Clipperz/PM/UI/Web/Components/CardDialogRecordFieldComponent.js'></script> |
91 | 88 | ||
92 | <script type='text/javascript' src='../../../../js/Clipperz/PM/UI/Common/Controllers/ProgressBarController.js'></script> | 89 | <script type='text/javascript' src='../../../../js/Clipperz/PM/UI/Common/Controllers/ProgressBarController.js'></script> |
93 | <script type='text/javascript' src='../../../../js/Clipperz/PM/UI/Common/Controllers/TabPanelController.js'></script> | 90 | <script type='text/javascript' src='../../../../js/Clipperz/PM/UI/Common/Controllers/TabPanelController.js'></script> |
94 | 91 | ||
95 | <script type='text/javascript' src='../../../../js/Clipperz/PM/UI/Web/Controllers/CardDialogController.js'></script> | 92 | <script type='text/javascript' src='../../../../js/Clipperz/PM/UI/Web/Controllers/CardDialogController.js'></script> |
96 | 93 | ||
97 | <script type='text/javascript' src='./User.data.js'></script> | 94 | <script type='text/javascript' src='./User.data.js'></script> |
98 | <script type='text/javascript' src='./cardDialogNew_test.js'></script> | 95 | <script type='text/javascript' src='./cardDialogNew_test.js'></script> |
99 | <script> | 96 | <script> |
100 | Clipperz_IEisBroken = false; | 97 | Clipperz_IEisBroken = false; |
101 | </script> | 98 | </script> |
102 | 99 | ||
103 | <!--[if IE]><script> | 100 | <!--[if IE]><script> |
104 | Clipperz_IEisBroken = true; | 101 | Clipperz_IEisBroken = true; |
105 | </script><![endif]--> | 102 | </script><![endif]--> |
106 | 103 | ||
107 | <link rel="stylesheet" type="text/css" href="../../../../css/clipperz/clipperz.css" /> | 104 | <link rel="stylesheet" type="text/css" href="../../../../css/clipperz/clipperz.css" /> |
108 | <link rel="stylesheet" type="text/css" href="../../../../css/clipperz/compact.css" /> | 105 | <link rel="stylesheet" type="text/css" href="../../../../css/clipperz/compact.css" /> |
109 | <link rel="stylesheet" type="text/css" href="../../../../css/clipperz/ytheme-clipperz.css" /> | 106 | <link rel="stylesheet" type="text/css" href="../../../../css/clipperz/ytheme-clipperz.css" /> |
110 | 107 | ||
111 | </head> | 108 | </head> |
112 | <body> | 109 | <body> |
113 | 110 | ||
114 | <div id="tableWrapper"></div> | 111 | <div id="tableWrapper"></div> |
115 | 112 | ||
116 | </body> | 113 | </body> |
117 | </html> | 114 | </html> |
diff --git a/frontend/gamma/tests/tests/Components/FullApp/User.data.js b/frontend/gamma/tests/tests/Components/FullApp/User.data.js index b76ccad..7194f6a 100644 --- a/frontend/gamma/tests/tests/Components/FullApp/User.data.js +++ b/frontend/gamma/tests/tests/Components/FullApp/User.data.js | |||
@@ -1,120 +1,117 @@ | |||
1 | /* | 1 | /* |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | */ | 24 | */ |
28 | 25 | ||
29 | testData = { | 26 | testData = { |
30 | 27 | ||
31 | //------------------------------------------------------------------------- | 28 | //------------------------------------------------------------------------- |
32 | 29 | ||
33 | 'testData': { | 30 | 'testData': { |
34 | users:{ | 31 | users:{ |
35 | 'catchAllUser': { | 32 | 'catchAllUser': { |
36 | __masterkey_test_value__: 'masterkey', | 33 | __masterkey_test_value__: 'masterkey', |
37 | s: '112233445566778899aabbccddeeff00112233445566778899aabbccddeeff00', | 34 | s: '112233445566778899aabbccddeeff00112233445566778899aabbccddeeff00', |
38 | v: '112233445566778899aabbccddeeff00112233445566778899aabbccddeeff00' | 35 | v: '112233445566778899aabbccddeeff00112233445566778899aabbccddeeff00' |
39 | }, | 36 | }, |
40 | 37 | ||
41 | /* tt/tt - empty, just created, account*/ | 38 | /* tt/tt - empty, just created, account*/ |
42 | 'afaadd70f647886043b9196c861dc04f5605baeab3812ea23707fcba08c4a54f': { | 39 | 'afaadd70f647886043b9196c861dc04f5605baeab3812ea23707fcba08c4a54f': { |
43 | s: 'df781ec363a380a0bb171d7d4c226248259272a964f04fa2340c77ff84bbc594', | 40 | s: 'df781ec363a380a0bb171d7d4c226248259272a964f04fa2340c77ff84bbc594', |
44 | v: 'eca214d990ec971a61cd9c5082e62c2d241f8e1ec805a2c26b1d31612747bfb0', | 41 | v: 'eca214d990ec971a61cd9c5082e62c2d241f8e1ec805a2c26b1d31612747bfb0', |
45 | version: '0.2', | 42 | version: '0.2', |
46 | maxNumberOfRecords: '100', | 43 | maxNumberOfRecords: '100', |
47 | userDetails: '{"records":{"index":{},"data":"q/wNeY/xf7Sujn5CIxEYPRSF"},"directLogins":{"index":{},"data":"qcVwiiyOYeDHFZq5T06iF1Wp"},"preferences":{"data":"7ONKfKQk9GYGnlRxFgTgAd4J"},"oneTimePasswords":{"data":"GD66ZNSIqkRl1UxhwyrsSm5r"},"version":"0.1"}', | 44 | userDetails: '{"records":{"index":{},"data":"q/wNeY/xf7Sujn5CIxEYPRSF"},"directLogins":{"index":{},"data":"qcVwiiyOYeDHFZq5T06iF1Wp"},"preferences":{"data":"7ONKfKQk9GYGnlRxFgTgAd4J"},"oneTimePasswords":{"data":"GD66ZNSIqkRl1UxhwyrsSm5r"},"version":"0.1"}', |
48 | statistics: 'tfQF+BrjAQUWyiXWOMkWApmq', | 45 | statistics: 'tfQF+BrjAQUWyiXWOMkWApmq', |
49 | userDetailsVersion: '0.3', | 46 | userDetailsVersion: '0.3', |
50 | records: { | 47 | records: { |
51 | 48 | ||
52 | } | 49 | } |
53 | }, | 50 | }, |
54 | 51 | ||
55 | /* tt/tt - account with "wrong" direct login*/ | 52 | /* tt/tt - account with "wrong" direct login*/ |
56 | /* 'afaadd70f647886043b9196c861dc04f5605baeab3812ea23707fcba08c4a54f': { | 53 | /* 'afaadd70f647886043b9196c861dc04f5605baeab3812ea23707fcba08c4a54f': { |
57 | s: 'df781ec363a380a0bb171d7d4c226248259272a964f04fa2340c77ff84bbc594', | 54 | s: 'df781ec363a380a0bb171d7d4c226248259272a964f04fa2340c77ff84bbc594', |
58 | v: 'eca214d990ec971a61cd9c5082e62c2d241f8e1ec805a2c26b1d31612747bfb0', | 55 | v: 'eca214d990ec971a61cd9c5082e62c2d241f8e1ec805a2c26b1d31612747bfb0', |
59 | version: '0.2', | 56 | version: '0.2', |
60 | maxNumberOfRecords: '100', | 57 | maxNumberOfRecords: '100', |
61 | userDetails: '{"records":{"index":{"8bcad18cc9613d794ca052c02e91198f7d5b6e1b7d595f21b21ea53a72e56aab":"1"},"data":"/+RHG+JLrFhZLYga2H9hsPyugT5bbiPwmNgY/RqE2g90FXfsCOvJ6TnfHX6ufeVfJ5+jUq/mRhWMlKdIqROSBLRL5EbL7i881EyKMNE24zpzUWm9zN6HcATPO2iNvDjsZjv2dEP9QWtAabw4Hc7UB+39WQ=="},"directLogins":{"index":{"dd9c1f84d06d67fe1ca5826b52bf46e56407e7f9d87fb7b7b927831920955338":1},"data":"ZF6BZYAVIJi3xrCPs6XWHwZDveEonG/5WJVKwIXbCGa5fr1myopvpqYbWI09tPCCktlMKP/X/SiIyBxlq7Z953VpOHWx0AYqTpRnw8PfJ+0BJDEblBFCZ8ZZfkZXcfYmNoY7"},"preferences":{"data":"IpjYNIHTXtE/pZvR8TjotEnR"},"oneTimePasswords":{"data":"1ibPl0R6S/LGBFFyH9pio1Oo"},"version":"0.1"}', | 58 | userDetails: '{"records":{"index":{"8bcad18cc9613d794ca052c02e91198f7d5b6e1b7d595f21b21ea53a72e56aab":"1"},"data":"/+RHG+JLrFhZLYga2H9hsPyugT5bbiPwmNgY/RqE2g90FXfsCOvJ6TnfHX6ufeVfJ5+jUq/mRhWMlKdIqROSBLRL5EbL7i881EyKMNE24zpzUWm9zN6HcATPO2iNvDjsZjv2dEP9QWtAabw4Hc7UB+39WQ=="},"directLogins":{"index":{"dd9c1f84d06d67fe1ca5826b52bf46e56407e7f9d87fb7b7b927831920955338":1},"data":"ZF6BZYAVIJi3xrCPs6XWHwZDveEonG/5WJVKwIXbCGa5fr1myopvpqYbWI09tPCCktlMKP/X/SiIyBxlq7Z953VpOHWx0AYqTpRnw8PfJ+0BJDEblBFCZ8ZZfkZXcfYmNoY7"},"preferences":{"data":"IpjYNIHTXtE/pZvR8TjotEnR"},"oneTimePasswords":{"data":"1ibPl0R6S/LGBFFyH9pio1Oo"},"version":"0.1"}', |
62 | statistics: 'XhiWkdDyHzuviv5bdxOY/2Q5', | 59 | statistics: 'XhiWkdDyHzuviv5bdxOY/2Q5', |
63 | userDetailsVersion: '0.3', | 60 | userDetailsVersion: '0.3', |
64 | records: { | 61 | records: { |
65 | '8bcad18cc9613d794ca052c02e91198f7d5b6e1b7d595f21b21ea53a72e56aab': { | 62 | '8bcad18cc9613d794ca052c02e91198f7d5b6e1b7d595f21b21ea53a72e56aab': { |
66 | data: '93QXl+c+JmQo4WTl4rYLYb/oHehjntAroteeHd6HqrUiXYoi+02GYrYcKfvE5wgMWvOwvQ4kVdUv5ksa3gJaUzhrpY5GLM3EV3agEkQ6yuKwHgfmAQvES1c6tcw15lNTzGiZ7PHhBrW5I5H6Le0Mf10uW1DOyu6gFl+W5OarbBBGyQmRmASy+CW2l3/lY5pOFxUq3qlkwW/o4KrSiwKOFh3HDvxOQKwovm0v3puLu+NsuL5rz5blUIZpj+CsOmZUhtU5FC5s6iO2L1uj3w8+Yxu279p249H1bv1zxo1zSBpP507uuRH8dKOLsu7JI6PO+UC8PLqVhPU7fHhDhNleurE7AsUo6eHocG0DhxCAm3xeobm1K2iPd0iRprcuRXmwa8HWRDJHTItbQr9D+cnQTT7/DwneRdQzpMaVZHZcKqtAzz07jboy98plrigu03tV2MkXt2veIMLBofxxHqgZ0NJhcfrVta4FlJsrd1vO9RUkoHl+qPJqQZIVGZzoT0rdHS/nLd614EHJSfRYIl+drUEUchIidbRnMzvPTBo2s6bVfUPcQksVop4E85wMo15ah2BHzUe4vjkmM+Ki8ecUVH8jRR5fmZhCGpBFML5U7o+rERYABFuwwRC9FfCXMtmClHc2LypP+iu+lI/VycdHg/m8skQVeCDBv892vqehUs1CpeVAxMtYOJcFtm6roQNPxJe1EI/j4PAi3SEYPCFev1F7u1g4bw4cG5jCGJx6U3qTTYMX5A06dHf4iSSOUeCsrP5U+VJY0KLhU3E66DzOxNIrIyYN6iOJxKCbhH7ILfGdWAV3MlZZOpVoSIqiR7oZo2PwovtudF5tOy9lhz7SEFYLvuQy8r4mqFC7qMVnXJRrBPDZcQDTdXLG33YV6dWX17QpGrpyvPhX5/UDv8E7zc8PdO1YfJmzL1rpArlIXF1EOsLa6BqjQp5bkIlHKugQMjnn3tf4sYK0OhPskbKidfNm59NedQODEoUr5NGwmjSAqTCokt1D7q0K3vMK', | 63 | data: '93QXl+c+JmQo4WTl4rYLYb/oHehjntAroteeHd6HqrUiXYoi+02GYrYcKfvE5wgMWvOwvQ4kVdUv5ksa3gJaUzhrpY5GLM3EV3agEkQ6yuKwHgfmAQvES1c6tcw15lNTzGiZ7PHhBrW5I5H6Le0Mf10uW1DOyu6gFl+W5OarbBBGyQmRmASy+CW2l3/lY5pOFxUq3qlkwW/o4KrSiwKOFh3HDvxOQKwovm0v3puLu+NsuL5rz5blUIZpj+CsOmZUhtU5FC5s6iO2L1uj3w8+Yxu279p249H1bv1zxo1zSBpP507uuRH8dKOLsu7JI6PO+UC8PLqVhPU7fHhDhNleurE7AsUo6eHocG0DhxCAm3xeobm1K2iPd0iRprcuRXmwa8HWRDJHTItbQr9D+cnQTT7/DwneRdQzpMaVZHZcKqtAzz07jboy98plrigu03tV2MkXt2veIMLBofxxHqgZ0NJhcfrVta4FlJsrd1vO9RUkoHl+qPJqQZIVGZzoT0rdHS/nLd614EHJSfRYIl+drUEUchIidbRnMzvPTBo2s6bVfUPcQksVop4E85wMo15ah2BHzUe4vjkmM+Ki8ecUVH8jRR5fmZhCGpBFML5U7o+rERYABFuwwRC9FfCXMtmClHc2LypP+iu+lI/VycdHg/m8skQVeCDBv892vqehUs1CpeVAxMtYOJcFtm6roQNPxJe1EI/j4PAi3SEYPCFev1F7u1g4bw4cG5jCGJx6U3qTTYMX5A06dHf4iSSOUeCsrP5U+VJY0KLhU3E66DzOxNIrIyYN6iOJxKCbhH7ILfGdWAV3MlZZOpVoSIqiR7oZo2PwovtudF5tOy9lhz7SEFYLvuQy8r4mqFC7qMVnXJRrBPDZcQDTdXLG33YV6dWX17QpGrpyvPhX5/UDv8E7zc8PdO1YfJmzL1rpArlIXF1EOsLa6BqjQp5bkIlHKugQMjnn3tf4sYK0OhPskbKidfNm59NedQODEoUr5NGwmjSAqTCokt1D7q0K3vMK', |
67 | version: '0.3', | 64 | version: '0.3', |
68 | creationDate: 'Wed Jan 20 16:53:47 CET 2010', | 65 | creationDate: 'Wed Jan 20 16:53:47 CET 2010', |
69 | updateDate: 'Wed Jan 20 16:53:47 CET 2010', | 66 | updateDate: 'Wed Jan 20 16:53:47 CET 2010', |
70 | accessDate: 'Wed Jan 20 16:53:47 CET 2010', | 67 | accessDate: 'Wed Jan 20 16:53:47 CET 2010', |
71 | currentVersion: '79047c5ca148b2915014c44d75874cfedf3caee20cd9f97a87ba2a291ccec741', | 68 | currentVersion: '79047c5ca148b2915014c44d75874cfedf3caee20cd9f97a87ba2a291ccec741', |
72 | versions: { | 69 | versions: { |
73 | '79047c5ca148b2915014c44d75874cfedf3caee20cd9f97a87ba2a291ccec741': { | 70 | '79047c5ca148b2915014c44d75874cfedf3caee20cd9f97a87ba2a291ccec741': { |
74 | header: '####', | 71 | header: '####', |
75 | data: 'mqqGPhRw/397NUZH6B8XJW1y5rMDZD6u7WUuEU77zcNXYEHFNQq319u0G/qD5E63kbI/kHsNXZFFKmNGw5IxDiteWSfYG4RiiapsUxe3ZgsFDDBHFrD5NSrMdIzLFSoNel+1mZUps9AcmkelhkXSCqRiGPyiPIKq7wKXF+Ql6j1AsnCMOCJLlJdTZPqIUUaTYD4z/tvTOS1xRdUiaRjw7cCh2yMms1c5V//3J0xbO10kEC8xvA8nhJnQqsMh2P4h6QFzAZtXYKMehJXwQ5ap7W327EMnCdXw2N0pv9Lr5S9khN/9oTMy2tMIGtN+UZ684zTiAP+479xES6OvmVL04nGyCarIqMNu7oclR75Qv2U14CNRA3gIaMPv', | 72 | data: 'mqqGPhRw/397NUZH6B8XJW1y5rMDZD6u7WUuEU77zcNXYEHFNQq319u0G/qD5E63kbI/kHsNXZFFKmNGw5IxDiteWSfYG4RiiapsUxe3ZgsFDDBHFrD5NSrMdIzLFSoNel+1mZUps9AcmkelhkXSCqRiGPyiPIKq7wKXF+Ql6j1AsnCMOCJLlJdTZPqIUUaTYD4z/tvTOS1xRdUiaRjw7cCh2yMms1c5V//3J0xbO10kEC8xvA8nhJnQqsMh2P4h6QFzAZtXYKMehJXwQ5ap7W327EMnCdXw2N0pv9Lr5S9khN/9oTMy2tMIGtN+UZ684zTiAP+479xES6OvmVL04nGyCarIqMNu7oclR75Qv2U14CNRA3gIaMPv', |
76 | version: '0.3', | 73 | version: '0.3', |
77 | creationDate: 'Wed Jan 20 16:53:47 CET 2010', | 74 | creationDate: 'Wed Jan 20 16:53:47 CET 2010', |
78 | updateDate: 'Wed Jan 20 16:53:47 CET 2010', | 75 | updateDate: 'Wed Jan 20 16:53:47 CET 2010', |
79 | accessDate: 'Wed Jan 20 16:53:47 CET 2010' | 76 | accessDate: 'Wed Jan 20 16:53:47 CET 2010' |
80 | } | 77 | } |
81 | } | 78 | } |
82 | } | 79 | } |
83 | } | 80 | } |
84 | }, | 81 | }, |
85 | */ | 82 | */ |
86 | /* tt/tt with "fixed" direct login*/ | 83 | /* tt/tt with "fixed" direct login*/ |
87 | /* 'afaadd70f647886043b9196c861dc04f5605baeab3812ea23707fcba08c4a54f': { | 84 | /* 'afaadd70f647886043b9196c861dc04f5605baeab3812ea23707fcba08c4a54f': { |
88 | s: 'df781ec363a380a0bb171d7d4c226248259272a964f04fa2340c77ff84bbc594', | 85 | s: 'df781ec363a380a0bb171d7d4c226248259272a964f04fa2340c77ff84bbc594', |
89 | v: 'eca214d990ec971a61cd9c5082e62c2d241f8e1ec805a2c26b1d31612747bfb0', | 86 | v: 'eca214d990ec971a61cd9c5082e62c2d241f8e1ec805a2c26b1d31612747bfb0', |
90 | version: '0.2', | 87 | version: '0.2', |
91 | maxNumberOfRecords: '100', | 88 | maxNumberOfRecords: '100', |
92 | userDetails: '{"records":{"index":{"8bcad18cc9613d794ca052c02e91198f7d5b6e1b7d595f21b21ea53a72e56aab":"0"},"data":"K6sV3xYDTHn1PDHmbVhG3PogarwMtHCliSEGaJ5eev/RQv7MW9TCP5efsjATRT4eheX7JkXAoLo+sgMVr2fTyu7f7K0IEYp3mCi27T/TmtTM3b8FoaVfmXWEjN0FGx7N6gK6+lZxhFueRxsOha1+fTLDBg=="},"directLogins":{"index":{"dd9c1f84d06d67fe1ca5826b52bf46e56407e7f9d87fb7b7b927831920955338":"0"},"data":"9aUwb/5nIlAOPKz62xTwylK0dilpWVVEJBag5+LydmBwWxTmlfcB+OO6jGnMgDrjif3LVhWFjfKVSoZs5hSpPvhsSDPaLf5vQhF4igRaQpWI9QhBdfmv3QvZ57ei/gfcal346F4="},"preferences":{"data":"IpjYNIHTXtE/pZvR8TjotEnR"},"oneTimePasswords":{"data":"1ibPl0R6S/LGBFFyH9pio1Oo"},"version":"0.1"}', | 89 | userDetails: '{"records":{"index":{"8bcad18cc9613d794ca052c02e91198f7d5b6e1b7d595f21b21ea53a72e56aab":"0"},"data":"K6sV3xYDTHn1PDHmbVhG3PogarwMtHCliSEGaJ5eev/RQv7MW9TCP5efsjATRT4eheX7JkXAoLo+sgMVr2fTyu7f7K0IEYp3mCi27T/TmtTM3b8FoaVfmXWEjN0FGx7N6gK6+lZxhFueRxsOha1+fTLDBg=="},"directLogins":{"index":{"dd9c1f84d06d67fe1ca5826b52bf46e56407e7f9d87fb7b7b927831920955338":"0"},"data":"9aUwb/5nIlAOPKz62xTwylK0dilpWVVEJBag5+LydmBwWxTmlfcB+OO6jGnMgDrjif3LVhWFjfKVSoZs5hSpPvhsSDPaLf5vQhF4igRaQpWI9QhBdfmv3QvZ57ei/gfcal346F4="},"preferences":{"data":"IpjYNIHTXtE/pZvR8TjotEnR"},"oneTimePasswords":{"data":"1ibPl0R6S/LGBFFyH9pio1Oo"},"version":"0.1"}', |
93 | statistics: 'GHHkZjW0QLdUq6CPnVuDLh86', | 90 | statistics: 'GHHkZjW0QLdUq6CPnVuDLh86', |
94 | userDetailsVersion: '0.3', | 91 | userDetailsVersion: '0.3', |
95 | records: { | 92 | records: { |
96 | '8bcad18cc9613d794ca052c02e91198f7d5b6e1b7d595f21b21ea53a72e56aab': { | 93 | '8bcad18cc9613d794ca052c02e91198f7d5b6e1b7d595f21b21ea53a72e56aab': { |
97 | data: 'SOcANZTLo4dsjpsPghF2+TndV9+1uYhGjup3StEa1kiFHHzDK6kDZkKwjhP0mxFgixlQHZBnvgsW/xdHGXdmj1RHtaNdHlte7W1Wq5MHbH4XE9bJzQAvQmop8OETgGz7Khp4BbUMVLIXhxoJmP3rMx7ulQHds+WN+S5u+iB73y5nkJwfOXrXDjwwlL1vER92XHE1VJZAjkYRB/xes6SLcITaG9LYVSGSVAhtLIzkmrAvPHPIpZSOI4NQnAMEVPllwtMlWQBEeerN7PIKImyaUd9zPzP+v0S1V+kUyioizScsDdVuaNKa+yqwFKvYYy61nobv3Mg+Fo3EGqY7GOiO7AklRTreZoOkZAdogQlA1DZuIBNSbpcMvm5MoP+PsU3HFSb/Vioo+QEcgTWqVyDNuFGZpkOI2iIBuQCwLmsCwB1JaE/1cCd1fEpOWyiFep0vxwi0ZrtRZQowQd2Ua3UIoaG5u5WoYEMYoH7FFi6Djda4Rf4gxed8rPLE+cNTI/p67OKlbAfr8iz3YZknaH+CXp9pPr7V7xXBCWNxo5DnFPeeqqrxjTAbkeg/Rp2hJeN7/zi0TSWKDUTXfkuUNyewHOHb7M+MIvC1F1CtmqLuU3h8RDINYgPtZTtTk68YBmOG88xYTtClr4kKxmp1scrV3nJ7af+IGoVKZpRAwBJYT3HV33vzO9W35zl14eZ0vVuNoHMNsh9uDxjCwRyPtQzVpQuTIYnHHoO5R17XyIfe599BOSBAGimciprURN3llC2H8YhRtMilQRYvEDVsC+mVZmGAeEdQ5o/AehnpBuVKErRBzotWe6bNMkIQqWfwCLQFBb6ap1gT5hbacrJM4AlaPgOdQsyX9npd3yN/tzjVA1IqWLnoaEXq9EfWXhBuT+juMfSQ2Y8bPbpBKZmWWL06T2fVkaZJN0VFtBXGi0XRFJngPskApLunZOfBYq831jSi8/Z937QVTQKWwOz6rLE8covE3mxJ53gDVcOlvqD9s/NGXbmnt2GnlWhVKpzhTIJ812Hr050/2AI9ZmWnv+ypSqeQ3l0BFh4D+xfk5NRv+dKbxANheZnfZMhR6u8F+jX/W3hUtNCIMQc2vLSQ', | 94 | data: 'SOcANZTLo4dsjpsPghF2+TndV9+1uYhGjup3StEa1kiFHHzDK6kDZkKwjhP0mxFgixlQHZBnvgsW/xdHGXdmj1RHtaNdHlte7W1Wq5MHbH4XE9bJzQAvQmop8OETgGz7Khp4BbUMVLIXhxoJmP3rMx7ulQHds+WN+S5u+iB73y5nkJwfOXrXDjwwlL1vER92XHE1VJZAjkYRB/xes6SLcITaG9LYVSGSVAhtLIzkmrAvPHPIpZSOI4NQnAMEVPllwtMlWQBEeerN7PIKImyaUd9zPzP+v0S1V+kUyioizScsDdVuaNKa+yqwFKvYYy61nobv3Mg+Fo3EGqY7GOiO7AklRTreZoOkZAdogQlA1DZuIBNSbpcMvm5MoP+PsU3HFSb/Vioo+QEcgTWqVyDNuFGZpkOI2iIBuQCwLmsCwB1JaE/1cCd1fEpOWyiFep0vxwi0ZrtRZQowQd2Ua3UIoaG5u5WoYEMYoH7FFi6Djda4Rf4gxed8rPLE+cNTI/p67OKlbAfr8iz3YZknaH+CXp9pPr7V7xXBCWNxo5DnFPeeqqrxjTAbkeg/Rp2hJeN7/zi0TSWKDUTXfkuUNyewHOHb7M+MIvC1F1CtmqLuU3h8RDINYgPtZTtTk68YBmOG88xYTtClr4kKxmp1scrV3nJ7af+IGoVKZpRAwBJYT3HV33vzO9W35zl14eZ0vVuNoHMNsh9uDxjCwRyPtQzVpQuTIYnHHoO5R17XyIfe599BOSBAGimciprURN3llC2H8YhRtMilQRYvEDVsC+mVZmGAeEdQ5o/AehnpBuVKErRBzotWe6bNMkIQqWfwCLQFBb6ap1gT5hbacrJM4AlaPgOdQsyX9npd3yN/tzjVA1IqWLnoaEXq9EfWXhBuT+juMfSQ2Y8bPbpBKZmWWL06T2fVkaZJN0VFtBXGi0XRFJngPskApLunZOfBYq831jSi8/Z937QVTQKWwOz6rLE8covE3mxJ53gDVcOlvqD9s/NGXbmnt2GnlWhVKpzhTIJ812Hr050/2AI9ZmWnv+ypSqeQ3l0BFh4D+xfk5NRv+dKbxANheZnfZMhR6u8F+jX/W3hUtNCIMQc2vLSQ', |
98 | version: '0.3', | 95 | version: '0.3', |
99 | creationDate: 'Wed Jan 20 16:53:47 CET 2010', | 96 | creationDate: 'Wed Jan 20 16:53:47 CET 2010', |
100 | updateDate: 'Wed Jan 20 16:54:56 CET 2010', | 97 | updateDate: 'Wed Jan 20 16:54:56 CET 2010', |
101 | accessDate: 'Wed Jan 20 16:54:56 CET 2010', | 98 | accessDate: 'Wed Jan 20 16:54:56 CET 2010', |
102 | currentVersion: 'c0a8f723bf44e0aae1d69f6f85f8e1b747dfbe5ca0d78c5ebda16b32cf17e16d', | 99 | currentVersion: 'c0a8f723bf44e0aae1d69f6f85f8e1b747dfbe5ca0d78c5ebda16b32cf17e16d', |
103 | versions: { | 100 | versions: { |
104 | '79047c5ca148b2915014c44d75874cfedf3caee20cd9f97a87ba2a291ccec741': { | 101 | '79047c5ca148b2915014c44d75874cfedf3caee20cd9f97a87ba2a291ccec741': { |
105 | header: '####', | 102 | header: '####', |
106 | data: 'mqqGPhRw/397NUZH6B8XJW1y5rMDZD6u7WUuEU77zcNXYEHFNQq319u0G/qD5E63kbI/kHsNXZFFKmNGw5IxDiteWSfYG4RiiapsUxe3ZgsFDDBHFrD5NSrMdIzLFSoNel+1mZUps9AcmkelhkXSCqRiGPyiPIKq7wKXF+Ql6j1AsnCMOCJLlJdTZPqIUUaTYD4z/tvTOS1xRdUiaRjw7cCh2yMms1c5V//3J0xbO10kEC8xvA8nhJnQqsMh2P4h6QFzAZtXYKMehJXwQ5ap7W327EMnCdXw2N0pv9Lr5S9khN/9oTMy2tMIGtN+UZ684zTiAP+479xES6OvmVL04nGyCarIqMNu7oclR75Qv2U14CNRA3gIaMPv', | 103 | data: 'mqqGPhRw/397NUZH6B8XJW1y5rMDZD6u7WUuEU77zcNXYEHFNQq319u0G/qD5E63kbI/kHsNXZFFKmNGw5IxDiteWSfYG4RiiapsUxe3ZgsFDDBHFrD5NSrMdIzLFSoNel+1mZUps9AcmkelhkXSCqRiGPyiPIKq7wKXF+Ql6j1AsnCMOCJLlJdTZPqIUUaTYD4z/tvTOS1xRdUiaRjw7cCh2yMms1c5V//3J0xbO10kEC8xvA8nhJnQqsMh2P4h6QFzAZtXYKMehJXwQ5ap7W327EMnCdXw2N0pv9Lr5S9khN/9oTMy2tMIGtN+UZ684zTiAP+479xES6OvmVL04nGyCarIqMNu7oclR75Qv2U14CNRA3gIaMPv', |
107 | version: '0.3', | 104 | version: '0.3', |
108 | creationDate: 'Wed Jan 20 16:53:47 CET 2010', | 105 | creationDate: 'Wed Jan 20 16:53:47 CET 2010', |
109 | updateDate: 'Wed Jan 20 16:53:47 CET 2010', | 106 | updateDate: 'Wed Jan 20 16:53:47 CET 2010', |
110 | accessDate: 'Wed Jan 20 16:54:26 CET 2010' | 107 | accessDate: 'Wed Jan 20 16:54:26 CET 2010' |
111 | }, | 108 | }, |
112 | 'c0a8f723bf44e0aae1d69f6f85f8e1b747dfbe5ca0d78c5ebda16b32cf17e16d': { | 109 | 'c0a8f723bf44e0aae1d69f6f85f8e1b747dfbe5ca0d78c5ebda16b32cf17e16d': { |
113 | header: '####', | 110 | header: '####', |
114 | data: 'ky36e85TGmGQ+O9FXAhHRXEz5eBQogwuyAEgjpsHaSUM22TowYEw/NkWMg4oT4M2DGIYoTyXatvea859F3kMWM5hUe16PaG9J8HzQcEnaTRmi5oe0cMJAlg6pl7ypLt9kUiqDoMIM4lM/eKO8E/bRZWnU1EsxjehYjQQUoeoSyyTAOhHlLfXS99TzCXFrJjO5rAgaJ7iAjNOcQ8Bm6ECau5ao9AVd5hqgMDEmLJhRwygcGHSTek3i3I4o0jIImcqpfNko/4SbEC4p7+V5Rggr1IG5DkeYfKuyqxgulJbtdkcWxAqPReKXUOkmSGlRTje8rjTTLx1Jv7QCc0hLDYc5pLd8j/G7mOwLG1nLTMeNekljKNCTLAhQ+ccDDq35Jv1cNhmA/icmRlMkztbsR7tzqFs+drQ', | 111 | data: 'ky36e85TGmGQ+O9FXAhHRXEz5eBQogwuyAEgjpsHaSUM22TowYEw/NkWMg4oT4M2DGIYoTyXatvea859F3kMWM5hUe16PaG9J8HzQcEnaTRmi5oe0cMJAlg6pl7ypLt9kUiqDoMIM4lM/eKO8E/bRZWnU1EsxjehYjQQUoeoSyyTAOhHlLfXS99TzCXFrJjO5rAgaJ7iAjNOcQ8Bm6ECau5ao9AVd5hqgMDEmLJhRwygcGHSTek3i3I4o0jIImcqpfNko/4SbEC4p7+V5Rggr1IG5DkeYfKuyqxgulJbtdkcWxAqPReKXUOkmSGlRTje8rjTTLx1Jv7QCc0hLDYc5pLd8j/G7mOwLG1nLTMeNekljKNCTLAhQ+ccDDq35Jv1cNhmA/icmRlMkztbsR7tzqFs+drQ', |
115 | version: '0.3', | 112 | version: '0.3', |
116 | previousVersion: '79047c5ca148b2915014c44d75874cfedf3caee20cd9f97a87ba2a291ccec741', | 113 | previousVersion: '79047c5ca148b2915014c44d75874cfedf3caee20cd9f97a87ba2a291ccec741', |
117 | previousVersionKey: 'aLMGf0ucGPaKLVv+AunJaZWDg+gGncnBu2Bf7QseH3ma/jcMOZCNHNd44mNPKfZPyoXYZi6/ToxkJh6Nu8PmOL/SsHTlf8FBZxrNm1i7ZS2b3A==', | 114 | previousVersionKey: 'aLMGf0ucGPaKLVv+AunJaZWDg+gGncnBu2Bf7QseH3ma/jcMOZCNHNd44mNPKfZPyoXYZi6/ToxkJh6Nu8PmOL/SsHTlf8FBZxrNm1i7ZS2b3A==', |
118 | creationDate: 'Wed Jan 20 16:54:56 CET 2010', | 115 | creationDate: 'Wed Jan 20 16:54:56 CET 2010', |
119 | updateDate: 'Wed Jan 20 16:54:56 CET 2010', | 116 | updateDate: 'Wed Jan 20 16:54:56 CET 2010', |
120 | accessDate: 'Wed Jan 20 16:54:56 CET 2010' | 117 | accessDate: 'Wed Jan 20 16:54:56 CET 2010' |
diff --git a/frontend/gamma/tests/tests/Components/FullApp/index.html b/frontend/gamma/tests/tests/Components/FullApp/index.html index d42d112..bc00fa7 100644 --- a/frontend/gamma/tests/tests/Components/FullApp/index.html +++ b/frontend/gamma/tests/tests/Components/FullApp/index.html | |||
@@ -1,120 +1,117 @@ | |||
1 | <!-- | 1 | <!-- |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | --> | 24 | --> |
28 | 25 | ||
29 | <html> | 26 | <html> |
30 | <head> | 27 | <head> |
31 | <title>Clipperz - online password manager - debug</title> | 28 | <title>Clipperz - online password manager - debug</title> |
32 | <meta http-equiv="content-type" content="text/html; charset=utf-8" /> | 29 | <meta http-equiv="content-type" content="text/html; charset=utf-8" /> |
33 | 30 | ||
34 | 31 | ||
35 | <link rel="stylesheet" type="text/css" href="../../../../css/clipperz/clipperz.css" /> | 32 | <link rel="stylesheet" type="text/css" href="../../../../css/clipperz/clipperz.css" /> |
36 | <link rel="stylesheet" type="text/css" href="../../../../css/clipperz/compact.css" /> | 33 | <link rel="stylesheet" type="text/css" href="../../../../css/clipperz/compact.css" /> |
37 | <link rel="stylesheet" type="text/css" href="../../../../css/clipperz/ytheme-clipperz.css" /> | 34 | <link rel="stylesheet" type="text/css" href="../../../../css/clipperz/ytheme-clipperz.css" /> |
38 | 35 | ||
39 | <link rel="shortcut icon" href="./clipperz.ico" /> | 36 | <link rel="shortcut icon" href="./clipperz.ico" /> |
40 | 37 | ||
41 | <meta name="description" content="Login to your web accounts with just one click. Never type a password again! Use multiple complex passwords and forget them. A password manager that enhances your online security." /> | 38 | <meta name="description" content="Login to your web accounts with just one click. Never type a password again! Use multiple complex passwords and forget them. A password manager that enhances your online security." /> |
42 | <meta name="keywords" content="password manager,gestor de contraseñas,gerenciador de senhas,Kennwortmanager,passwords,security,privacy,cryptography" /> | 39 | <meta name="keywords" content="password manager,gestor de contraseñas,gerenciador de senhas,Kennwortmanager,passwords,security,privacy,cryptography" /> |
43 | 40 | ||
44 | <script> | 41 | <script> |
45 | Clipperz_IEisBroken = false; | 42 | Clipperz_IEisBroken = false; |
46 | Clipperz_normalizedNewLine = '\n'; | 43 | Clipperz_normalizedNewLine = '\n'; |
47 | Clipperz_dumpUrl = "/dump/"; | 44 | Clipperz_dumpUrl = "/dump/"; |
48 | </script> | 45 | </script> |
49 | 46 | ||
50 | <!--[if IE]><script> | 47 | <!--[if IE]><script> |
51 | Clipperz_IEisBroken = true; | 48 | Clipperz_IEisBroken = true; |
52 | Clipperz_normalizedNewLine = '\x0d\x0a'; | 49 | Clipperz_normalizedNewLine = '\x0d\x0a'; |
53 | </script><![endif]--> | 50 | </script><![endif]--> |
54 | 51 | ||
55 | 52 | ||
56 | <script type='text/javascript' src='../../../../js/bookmarklet.js'></script> | 53 | <script type='text/javascript' src='../../../../js/bookmarklet.js'></script> |
57 | <script type='text/javascript' src='../../../../js/bookmarklet_ie.js'></script> | 54 | <script type='text/javascript' src='../../../../js/bookmarklet_ie.js'></script> |
58 | 55 | ||
59 | <script type='text/javascript' src='../../../../js/MochiKit/Base.js'></script> | 56 | <script type='text/javascript' src='../../../../js/MochiKit/Base.js'></script> |
60 | <script type='text/javascript' src='../../../../js/MochiKit/Iter.js'></script> | 57 | <script type='text/javascript' src='../../../../js/MochiKit/Iter.js'></script> |
61 | <script type='text/javascript' src='../../../../js/MochiKit/Logging.js'></script> | 58 | <script type='text/javascript' src='../../../../js/MochiKit/Logging.js'></script> |
62 | <script type='text/javascript' src='../../../../js/MochiKit/Format.js'></script> | 59 | <script type='text/javascript' src='../../../../js/MochiKit/Format.js'></script> |
63 | <script type='text/javascript' src='../../../../js/MochiKit/Async.js'></script> | 60 | <script type='text/javascript' src='../../../../js/MochiKit/Async.js'></script> |
64 | <script type='text/javascript' src='../../../../js/MochiKit/DOM.js'></script> | 61 | <script type='text/javascript' src='../../../../js/MochiKit/DOM.js'></script> |
65 | <script type='text/javascript' src='../../../../js/MochiKit/Style.js'></script> | 62 | <script type='text/javascript' src='../../../../js/MochiKit/Style.js'></script> |
66 | <script type='text/javascript' src='../../../../js/MochiKit/LoggingPane.js'></script> | 63 | <script type='text/javascript' src='../../../../js/MochiKit/LoggingPane.js'></script> |
67 | <script type='text/javascript' src='../../../../js/MochiKit/Color.js'></script> | 64 | <script type='text/javascript' src='../../../../js/MochiKit/Color.js'></script> |
68 | <script type='text/javascript' src='../../../../js/MochiKit/Signal.js'></script> | 65 | <script type='text/javascript' src='../../../../js/MochiKit/Signal.js'></script> |
69 | <script type='text/javascript' src='../../../../js/MochiKit/Position.js'></script> | 66 | <script type='text/javascript' src='../../../../js/MochiKit/Position.js'></script> |
70 | <script type='text/javascript' src='../../../../js/MochiKit/Selector.js'></script> | 67 | <script type='text/javascript' src='../../../../js/MochiKit/Selector.js'></script> |
71 | <script type='text/javascript' src='../../../../js/MochiKit/Visual.js'></script> | 68 | <script type='text/javascript' src='../../../../js/MochiKit/Visual.js'></script> |
72 | <script type='text/javascript' src='../../../../js/JSON/json2.js'></script> | 69 | <script type='text/javascript' src='../../../../js/JSON/json2.js'></script> |
73 | <script type='text/javascript' src='../../../../js/Clipperz/YUI/Utils.js'></script> | 70 | <script type='text/javascript' src='../../../../js/Clipperz/YUI/Utils.js'></script> |
74 | <script type='text/javascript' src='../../../../js/Clipperz/YUI/DomHelper.js'></script> | 71 | <script type='text/javascript' src='../../../../js/Clipperz/YUI/DomHelper.js'></script> |
75 | <script type='text/javascript' src='../../../../js/Clipperz/ByteArray.js'></script> | 72 | <script type='text/javascript' src='../../../../js/Clipperz/ByteArray.js'></script> |
76 | <script type='text/javascript' src='../../../../js/Clipperz/Base.js'></script> | 73 | <script type='text/javascript' src='../../../../js/Clipperz/Base.js'></script> |
77 | <script type='text/javascript' src='../../../../js/Clipperz/Async.js'></script> | 74 | <script type='text/javascript' src='../../../../js/Clipperz/Async.js'></script> |
78 | <script type='text/javascript' src='../../../../js/Clipperz/CSVProcessor.js'></script> | 75 | <script type='text/javascript' src='../../../../js/Clipperz/CSVProcessor.js'></script> |
79 | <script type='text/javascript' src='../../../../js/Clipperz/KeePassExportProcessor.js'></script> | 76 | <script type='text/javascript' src='../../../../js/Clipperz/KeePassExportProcessor.js'></script> |
80 | <script type='text/javascript' src='../../../../js/Clipperz/Date.js'></script> | 77 | <script type='text/javascript' src='../../../../js/Clipperz/Date.js'></script> |
81 | <script type='text/javascript' src='../../../../js/Clipperz/DOM.js'></script> | 78 | <script type='text/javascript' src='../../../../js/Clipperz/DOM.js'></script> |
82 | <script type='text/javascript' src='../../../../js/Clipperz/Logging.js'></script> | 79 | <script type='text/javascript' src='../../../../js/Clipperz/Logging.js'></script> |
83 | <script type='text/javascript' src='../../../../js/Clipperz/Signal.js'></script> | 80 | <script type='text/javascript' src='../../../../js/Clipperz/Signal.js'></script> |
84 | <script type='text/javascript' src='../../../../js/Clipperz/Style.js'></script> | 81 | <script type='text/javascript' src='../../../../js/Clipperz/Style.js'></script> |
85 | <script type='text/javascript' src='../../../../js/Clipperz/Visual.js'></script> | 82 | <script type='text/javascript' src='../../../../js/Clipperz/Visual.js'></script> |
86 | <script type='text/javascript' src='../../../../js/Clipperz/Set.js'></script> | 83 | <script type='text/javascript' src='../../../../js/Clipperz/Set.js'></script> |
87 | <script type='text/javascript' src='../../../../js/Clipperz/KeyValueObjectStore.js'></script> | 84 | <script type='text/javascript' src='../../../../js/Clipperz/KeyValueObjectStore.js'></script> |
88 | <script type='text/javascript' src='../../../../js/Clipperz/Crypto/SHA.js'></script> | 85 | <script type='text/javascript' src='../../../../js/Clipperz/Crypto/SHA.js'></script> |
89 | <script type='text/javascript' src='../../../../js/Clipperz/Crypto/AES.js'></script> | 86 | <script type='text/javascript' src='../../../../js/Clipperz/Crypto/AES.js'></script> |
90 | <script type='text/javascript' src='../../../../js/Clipperz/Crypto/PRNG.js'></script> | 87 | <script type='text/javascript' src='../../../../js/Clipperz/Crypto/PRNG.js'></script> |
91 | <script type='text/javascript' src='../../../../js/Clipperz/Crypto/BigInt.js'></script> | 88 | <script type='text/javascript' src='../../../../js/Clipperz/Crypto/BigInt.js'></script> |
92 | <script type='text/javascript' src='../../../../js/Clipperz/Crypto/Base.js'></script> | 89 | <script type='text/javascript' src='../../../../js/Clipperz/Crypto/Base.js'></script> |
93 | <script type='text/javascript' src='../../../../js/Clipperz/Crypto/SRP.js'></script> | 90 | <script type='text/javascript' src='../../../../js/Clipperz/Crypto/SRP.js'></script> |
94 | <script type='text/javascript' src='../../../../js/Clipperz/Crypto/RSA.js'></script> | 91 | <script type='text/javascript' src='../../../../js/Clipperz/Crypto/RSA.js'></script> |
95 | <script type='text/javascript' src='../../../../js/Clipperz/PM/Strings/Strings_defaults.js'></script> | 92 | <script type='text/javascript' src='../../../../js/Clipperz/PM/Strings/Strings_defaults.js'></script> |
96 | <script type='text/javascript' src='../../../../js/Clipperz/PM/Strings/Strings_en-US.js'></script> | 93 | <script type='text/javascript' src='../../../../js/Clipperz/PM/Strings/Strings_en-US.js'></script> |
97 | <script type='text/javascript' src='../../../../js/Clipperz/PM/Strings.js'></script> | 94 | <script type='text/javascript' src='../../../../js/Clipperz/PM/Strings.js'></script> |
98 | <script type='text/javascript' src='../../../../js/Clipperz/PM/Date.js'></script> | 95 | <script type='text/javascript' src='../../../../js/Clipperz/PM/Date.js'></script> |
99 | <script type='text/javascript' src='../../../../js/Clipperz/PM/Toll.js'></script> | 96 | <script type='text/javascript' src='../../../../js/Clipperz/PM/Toll.js'></script> |
100 | <script type='text/javascript' src='../../../../js/Clipperz/PM/Proxy.js'></script> | 97 | <script type='text/javascript' src='../../../../js/Clipperz/PM/Proxy.js'></script> |
101 | <script type='text/javascript' src='../../../../js/Clipperz/PM/Proxy/Proxy.JSON.js'></script> | 98 | <script type='text/javascript' src='../../../../js/Clipperz/PM/Proxy/Proxy.JSON.js'></script> |
102 | <script type='text/javascript' src='../../../../js/Clipperz/PM/Proxy/Proxy.Offline.js'></script> | 99 | <script type='text/javascript' src='../../../../js/Clipperz/PM/Proxy/Proxy.Offline.js'></script> |
103 | <script type='text/javascript' src='../../../../js/Clipperz/PM/Proxy/Proxy.Offline.DataStore.js'></script> | 100 | <script type='text/javascript' src='../../../../js/Clipperz/PM/Proxy/Proxy.Offline.DataStore.js'></script> |
104 | <script type='text/javascript' src='../../../../js/Clipperz/PM/Connection.js'></script> | 101 | <script type='text/javascript' src='../../../../js/Clipperz/PM/Connection.js'></script> |
105 | <script type='text/javascript' src='../../../../js/Clipperz/PM/Crypto.js'></script> | 102 | <script type='text/javascript' src='../../../../js/Clipperz/PM/Crypto.js'></script> |
106 | <script type='text/javascript' src='../../../../js/Clipperz/PM/BookmarkletProcessor.js'></script> | 103 | <script type='text/javascript' src='../../../../js/Clipperz/PM/BookmarkletProcessor.js'></script> |
107 | <script type='text/javascript' src='../../../../js/Clipperz/PM/DataModel/EncryptedRemoteObject.js'></script> | 104 | <script type='text/javascript' src='../../../../js/Clipperz/PM/DataModel/EncryptedRemoteObject.js'></script> |
108 | <script type='text/javascript' src='../../../../js/Clipperz/PM/DataModel/User.js'></script> | 105 | <script type='text/javascript' src='../../../../js/Clipperz/PM/DataModel/User.js'></script> |
109 | <script type='text/javascript' src='../../../../js/Clipperz/PM/DataModel/User.Header.Legacy.js'></script> | 106 | <script type='text/javascript' src='../../../../js/Clipperz/PM/DataModel/User.Header.Legacy.js'></script> |
110 | <script type='text/javascript' src='../../../../js/Clipperz/PM/DataModel/User.Header.RecordIndex.js'></script> | 107 | <script type='text/javascript' src='../../../../js/Clipperz/PM/DataModel/User.Header.RecordIndex.js'></script> |
111 | <script type='text/javascript' src='../../../../js/Clipperz/PM/DataModel/User.Header.Preferences.js'></script> | 108 | <script type='text/javascript' src='../../../../js/Clipperz/PM/DataModel/User.Header.Preferences.js'></script> |
112 | <script type='text/javascript' src='../../../../js/Clipperz/PM/DataModel/User.Header.OneTimePasswords.js'></script> | 109 | <script type='text/javascript' src='../../../../js/Clipperz/PM/DataModel/User.Header.OneTimePasswords.js'></script> |
113 | <script type='text/javascript' src='../../../../js/Clipperz/PM/DataModel/Record.js'></script> | 110 | <script type='text/javascript' src='../../../../js/Clipperz/PM/DataModel/Record.js'></script> |
114 | <script type='text/javascript' src='../../../../js/Clipperz/PM/DataModel/Record.Version.js'></script> | 111 | <script type='text/javascript' src='../../../../js/Clipperz/PM/DataModel/Record.Version.js'></script> |
115 | <script type='text/javascript' src='../../../../js/Clipperz/PM/DataModel/Record.Version.Field.js'></script> | 112 | <script type='text/javascript' src='../../../../js/Clipperz/PM/DataModel/Record.Version.Field.js'></script> |
116 | <script type='text/javascript' src='../../../../js/Clipperz/PM/DataModel/DirectLogin.js'></script> | 113 | <script type='text/javascript' src='../../../../js/Clipperz/PM/DataModel/DirectLogin.js'></script> |
117 | <script type='text/javascript' src='../../../../js/Clipperz/PM/DataModel/DirectLoginInput.js'></script> | 114 | <script type='text/javascript' src='../../../../js/Clipperz/PM/DataModel/DirectLoginInput.js'></script> |
118 | <script type='text/javascript' src='../../../../js/Clipperz/PM/DataModel/DirectLoginBinding.js'></script> | 115 | <script type='text/javascript' src='../../../../js/Clipperz/PM/DataModel/DirectLoginBinding.js'></script> |
119 | <script type='text/javascript' src='../../../../js/Clipperz/PM/DataModel/DirectLoginFormValue.js'></script> | 116 | <script type='text/javascript' src='../../../../js/Clipperz/PM/DataModel/DirectLoginFormValue.js'></script> |
120 | <script type='text/javascript' src='../../../../js/Clipperz/PM/DataModel/OneTimePassword.js'></script> | 117 | <script type='text/javascript' src='../../../../js/Clipperz/PM/DataModel/OneTimePassword.js'></script> |
diff --git a/frontend/gamma/tests/tests/Components/FullApp/main_test.js b/frontend/gamma/tests/tests/Components/FullApp/main_test.js index fa21581..b13972a 100644 --- a/frontend/gamma/tests/tests/Components/FullApp/main_test.js +++ b/frontend/gamma/tests/tests/Components/FullApp/main_test.js | |||
@@ -1,114 +1,111 @@ | |||
1 | /* | 1 | /* |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | */ | 24 | */ |
28 | 25 | ||
29 | function _pm_logEvent(anEvent) { | 26 | function _pm_logEvent(anEvent) { |
30 | //console.log("####", anEvent); | 27 | //console.log("####", anEvent); |
31 | 28 | ||
32 | anEvent.preventDefault(); | 29 | anEvent.preventDefault(); |
33 | } | 30 | } |
34 | 31 | ||
35 | function handleGenericDeferredError(anError) { | 32 | function handleGenericDeferredError(anError) { |
36 | var result; | 33 | var result; |
37 | 34 | ||
38 | if (anError instanceof MochiKit.Async.CancelledError) { | 35 | if (anError instanceof MochiKit.Async.CancelledError) { |
39 | result = anError; | 36 | result = anError; |
40 | } else { | 37 | } else { |
41 | MochiKit.Logging.logError("## MainController - GENERIC ERROR" + "\n" + "==>> " + anError + " <<==\n" + anError.stack); | 38 | MochiKit.Logging.logError("## MainController - GENERIC ERROR" + "\n" + "==>> " + anError + " <<==\n" + anError.stack); |
42 | //console.log(anError); | 39 | //console.log(anError); |
43 | result = new MochiKit.Async.CancelledError(anError); | 40 | result = new MochiKit.Async.CancelledError(anError); |
44 | } | 41 | } |
45 | 42 | ||
46 | return result; | 43 | return result; |
47 | } | 44 | } |
48 | 45 | ||
49 | 46 | ||
50 | Clipperz.PM.RunTime = {}; | 47 | Clipperz.PM.RunTime = {}; |
51 | 48 | ||
52 | 49 | ||
53 | function run() { | 50 | function run() { |
54 | var shouldShowRegistrationForm; | 51 | var shouldShowRegistrationForm; |
55 | var useCompactDesign; | 52 | var useCompactDesign; |
56 | var controllerParameters; | 53 | var controllerParameters; |
57 | //var iPhoneDesign; | 54 | //var iPhoneDesign; |
58 | 55 | ||
59 | //MochiKit.Signal.connect(document.body, 'onkeydown', _pm_logEvent); | 56 | //MochiKit.Signal.connect(document.body, 'onkeydown', _pm_logEvent); |
60 | //MochiKit.Signal.connect(document.body, 'onkeypress', _pm_logEvent); | 57 | //MochiKit.Signal.connect(document.body, 'onkeypress', _pm_logEvent); |
61 | //MochiKit.Signal.connect(document.body, 'onclick', _pm_logEvent); | 58 | //MochiKit.Signal.connect(document.body, 'onclick', _pm_logEvent); |
62 | 59 | ||
63 | controllerParameters = {}; | 60 | controllerParameters = {}; |
64 | 61 | ||
65 | MochiKit.DOM.removeElement('javaScriptAlert'); | 62 | MochiKit.DOM.removeElement('javaScriptAlert'); |
66 | Clipperz.PM.Strings.Languages.initSetup(); | 63 | Clipperz.PM.Strings.Languages.initSetup(); |
67 | 64 | ||
68 | if (window.location.search.indexOf('registration') != -1) { | 65 | if (window.location.search.indexOf('registration') != -1) { |
69 | shouldShowRegistrationForm = true; | 66 | shouldShowRegistrationForm = true; |
70 | } else { | 67 | } else { |
71 | shouldShowRegistrationForm = false; | 68 | shouldShowRegistrationForm = false; |
72 | } | 69 | } |
73 | 70 | ||
74 | if (window.location.search.indexOf('autocomplete') != -1) { | 71 | if (window.location.search.indexOf('autocomplete') != -1) { |
75 | controllerParameters['autocomplete'] = 'on' | 72 | controllerParameters['autocomplete'] = 'on' |
76 | } | 73 | } |
77 | 74 | ||
78 | //if ((window.location.search.indexOf('iPhone') != -1) || (navigator.userAgent.match('iPhone'))) { | 75 | //if ((window.location.search.indexOf('iPhone') != -1) || (navigator.userAgent.match('iPhone'))) { |
79 | // iPhoneDesign = true; | 76 | // iPhoneDesign = true; |
80 | //} else { | 77 | //} else { |
81 | // iPhoneDesign = false; | 78 | // iPhoneDesign = false; |
82 | //} | 79 | //} |
83 | 80 | ||
84 | if (window.location.search.indexOf('compact') != -1) { | 81 | if (window.location.search.indexOf('compact') != -1) { |
85 | useCompactDesign = true; | 82 | useCompactDesign = true; |
86 | } else { | 83 | } else { |
87 | useCompactDesign = false; | 84 | useCompactDesign = false; |
88 | } | 85 | } |
89 | 86 | ||
90 | if (useCompactDesign == true) { | 87 | if (useCompactDesign == true) { |
91 | Clipperz.PM.RunTime.mainController = new Clipperz.PM.UI.Compact.Controllers.MainController(controllerParameters); | 88 | Clipperz.PM.RunTime.mainController = new Clipperz.PM.UI.Compact.Controllers.MainController(controllerParameters); |
92 | //} else if (iPhoneDesign == true) { | 89 | //} else if (iPhoneDesign == true) { |
93 | // Clipperz.PM.RunTime.mainController = new Clipperz.PM.UI.iPhone.Controllers.MainController(); | 90 | // Clipperz.PM.RunTime.mainController = new Clipperz.PM.UI.iPhone.Controllers.MainController(); |
94 | } else { | 91 | } else { |
95 | Clipperz.PM.RunTime.mainController = new Clipperz.PM.UI.Web.Controllers.MainController(controllerParameters); | 92 | Clipperz.PM.RunTime.mainController = new Clipperz.PM.UI.Web.Controllers.MainController(controllerParameters); |
96 | } | 93 | } |
97 | 94 | ||
98 | Clipperz.PM.RunTime.mainController.run(shouldShowRegistrationForm); | 95 | Clipperz.PM.RunTime.mainController.run(shouldShowRegistrationForm); |
99 | 96 | ||
100 | //Clipperz.log("HASH: " + window.location.hash); | 97 | //Clipperz.log("HASH: " + window.location.hash); |
101 | //if (window.location.hash != "") { | 98 | //if (window.location.hash != "") { |
102 | // window.location.hash = "" | 99 | // window.location.hash = "" |
103 | //} | 100 | //} |
104 | //Clipperz.log("HASH cleaned"); | 101 | //Clipperz.log("HASH cleaned"); |
105 | //#credentials=base64encoded({username:'joe', passphrase:'clipperz'}) | 102 | //#credentials=base64encoded({username:'joe', passphrase:'clipperz'}) |
106 | //MochiKit.Signal.signal(Clipperz.Signal.NotificationCenter, 'doLogin', {username:'joe', passphrase:'clipperz'}); | 103 | //MochiKit.Signal.signal(Clipperz.Signal.NotificationCenter, 'doLogin', {username:'joe', passphrase:'clipperz'}); |
107 | } | 104 | } |
108 | 105 | ||
109 | Clipperz.Crypto.PRNG.defaultRandomGenerator().fastEntropyAccumulationForTestingPurpose(); | 106 | Clipperz.Crypto.PRNG.defaultRandomGenerator().fastEntropyAccumulationForTestingPurpose(); |
110 | 107 | ||
111 | var proxy = new Clipperz.PM.Proxy.Test({shouldPayTolls:true, isDefault:true, readOnly:false}); | 108 | var proxy = new Clipperz.PM.Proxy.Test({shouldPayTolls:true, isDefault:true, readOnly:false}); |
112 | proxy.dataStore().setupWithEncryptedData(testData['testData']); | 109 | proxy.dataStore().setupWithEncryptedData(testData['testData']); |
113 | 110 | ||
114 | MochiKit.DOM.addLoadEvent(run); | 111 | MochiKit.DOM.addLoadEvent(run); |
diff --git a/frontend/gamma/tests/tests/Components/GridLayout/GridLayout_test.js b/frontend/gamma/tests/tests/Components/GridLayout/GridLayout_test.js index 1c06468..15244b6 100644 --- a/frontend/gamma/tests/tests/Components/GridLayout/GridLayout_test.js +++ b/frontend/gamma/tests/tests/Components/GridLayout/GridLayout_test.js | |||
@@ -1,119 +1,116 @@ | |||
1 | /* | 1 | /* |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | */ | 24 | */ |
28 | 25 | ||
29 | Clipperz.Base.module('Clipperz.Tests.GridLayout'); | 26 | Clipperz.Base.module('Clipperz.Tests.GridLayout'); |
30 | 27 | ||
31 | Clipperz.Crypto.PRNG.defaultRandomGenerator().fastEntropyAccumulationForTestingPurpose(); | 28 | Clipperz.Crypto.PRNG.defaultRandomGenerator().fastEntropyAccumulationForTestingPurpose(); |
32 | Clipperz.PM.Strings.Languages.initSetup(); | 29 | Clipperz.PM.Strings.Languages.initSetup(); |
33 | 30 | ||
34 | Clipperz.Tests.GridLayout.Tester = function(args) { | 31 | Clipperz.Tests.GridLayout.Tester = function(args) { |
35 | args = args || {}; | 32 | args = args || {}; |
36 | 33 | ||
37 | Clipperz.Tests.GridLayout.Tester.superclass.constructor.call(this, args); | 34 | Clipperz.Tests.GridLayout.Tester.superclass.constructor.call(this, args); |
38 | //#this._user = new Clipperz.PM.DataModel.User({username:'test', getPassphraseFunction:function () { return 'test';}}); | 35 | //#this._user = new Clipperz.PM.DataModel.User({username:'test', getPassphraseFunction:function () { return 'test';}}); |
39 | this._user = new Clipperz.PM.DataModel.User({username:'joe', getPassphraseFunction:function () { return 'clipperz';}}); | 36 | this._user = new Clipperz.PM.DataModel.User({username:'joe', getPassphraseFunction:function () { return 'clipperz';}}); |
40 | 37 | ||
41 | return this; | 38 | return this; |
42 | }; | 39 | }; |
43 | 40 | ||
44 | Clipperz.Base.extend(Clipperz.Tests.GridLayout.Tester, Object, { | 41 | Clipperz.Base.extend(Clipperz.Tests.GridLayout.Tester, Object, { |
45 | 42 | ||
46 | 'toString': function() { | 43 | 'toString': function() { |
47 | return "Clipperz.Tests.GridLayout.Tester"; | 44 | return "Clipperz.Tests.GridLayout.Tester"; |
48 | }, | 45 | }, |
49 | 46 | ||
50 | //------------------------------------------------------------------------- | 47 | //------------------------------------------------------------------------- |
51 | 48 | ||
52 | 'user': function () { | 49 | 'user': function () { |
53 | return this._user; | 50 | return this._user; |
54 | }, | 51 | }, |
55 | 52 | ||
56 | //------------------------------------------------------------------------- | 53 | //------------------------------------------------------------------------- |
57 | 54 | ||
58 | 'run': function () { | 55 | 'run': function () { |
59 | var deferredResult; | 56 | var deferredResult; |
60 | var proxy; | 57 | var proxy; |
61 | varcardDialogController; | 58 | varcardDialogController; |
62 | varcardDialogComponent; | 59 | varcardDialogComponent; |
63 | varcomponent; | 60 | varcomponent; |
64 | varfilterController; | 61 | varfilterController; |
65 | var cardsController; | 62 | var cardsController; |
66 | 63 | ||
67 | filterController = new Clipperz.PM.UI.Web.Controllers.FilterController(); | 64 | filterController = new Clipperz.PM.UI.Web.Controllers.FilterController(); |
68 | cardsController = new Clipperz.PM.UI.Web.Controllers.CardsController({'filterController':filterController}); | 65 | cardsController = new Clipperz.PM.UI.Web.Controllers.CardsController({'filterController':filterController}); |
69 | 66 | ||
70 | component = new Clipperz.Tests.GridLayout.TestPageComponent({element:MochiKit.DOM.getElement('component')}); | 67 | component = new Clipperz.Tests.GridLayout.TestPageComponent({element:MochiKit.DOM.getElement('component')}); |
71 | 68 | ||
72 | proxy = new Clipperz.PM.Proxy.Test({shouldPayTolls:true, isDefault:true, readOnly:false}); | 69 | proxy = new Clipperz.PM.Proxy.Test({shouldPayTolls:true, isDefault:true, readOnly:false}); |
73 | 70 | ||
74 | deferredResult = new Clipperz.Async.Deferred("GridLayout_test.init", {trace:false}); | 71 | deferredResult = new Clipperz.Async.Deferred("GridLayout_test.init", {trace:false}); |
75 | //# deferredResult.addMethod(proxy.dataStore(), 'setupWithEncryptedData', testData['test_test_offline_copy_data']); | 72 | //# deferredResult.addMethod(proxy.dataStore(), 'setupWithEncryptedData', testData['test_test_offline_copy_data']); |
76 | deferredResult.addMethod(proxy.dataStore(), 'setupWithEncryptedData', testData['joe_clipperz_offline_copy_data']); | 73 | deferredResult.addMethod(proxy.dataStore(), 'setupWithEncryptedData', testData['joe_clipperz_offline_copy_data']); |
77 | deferredResult.addMethod(this.user(), 'login'); | 74 | deferredResult.addMethod(this.user(), 'login'); |
78 | 75 | ||
79 | deferredResult.addMethod(cardsController,'run', {slot:component.slotNamed('cardList'), user:this.user()}); | 76 | deferredResult.addMethod(cardsController,'run', {slot:component.slotNamed('cardList'), user:this.user()}); |
80 | // deferredResult.addMethod(xxxxController,'run', {slot:component.slotNamed('cardGrid'), user:this.user()}); | 77 | // deferredResult.addMethod(xxxxController,'run', {slot:component.slotNamed('cardGrid'), user:this.user()}); |
81 | 78 | ||
82 | deferredResult.callback(); | 79 | deferredResult.callback(); |
83 | 80 | ||
84 | return deferredResult; | 81 | return deferredResult; |
85 | }, | 82 | }, |
86 | 83 | ||
87 | //========================================================================= | 84 | //========================================================================= |
88 | 85 | ||
89 | 'saveChanges': function () { | 86 | 'saveChanges': function () { |
90 | return this.user().saveChanges(); | 87 | return this.user().saveChanges(); |
91 | }, | 88 | }, |
92 | 89 | ||
93 | //------------------------------------------------------------------------- | 90 | //------------------------------------------------------------------------- |
94 | 91 | ||
95 | 'hasPendingChanges': function () { | 92 | 'hasPendingChanges': function () { |
96 | return this.user().hasPendingChanges(); | 93 | return this.user().hasPendingChanges(); |
97 | }, | 94 | }, |
98 | 95 | ||
99 | //------------------------------------------------------------------------- | 96 | //------------------------------------------------------------------------- |
100 | 97 | ||
101 | 'revertChanges': function () { | 98 | 'revertChanges': function () { |
102 | return this.user().revertChanges(); | 99 | return this.user().revertChanges(); |
103 | }, | 100 | }, |
104 | 101 | ||
105 | //========================================================================= | 102 | //========================================================================= |
106 | __syntaxFix__: "syntax fix" | 103 | __syntaxFix__: "syntax fix" |
107 | }); | 104 | }); |
108 | 105 | ||
109 | 106 | ||
110 | 107 | ||
111 | 108 | ||
112 | init = function () { | 109 | init = function () { |
113 | vartester; | 110 | vartester; |
114 | 111 | ||
115 | tester = new Clipperz.Tests.GridLayout.Tester(); | 112 | tester = new Clipperz.Tests.GridLayout.Tester(); |
116 | tester.run(); | 113 | tester.run(); |
117 | }; | 114 | }; |
118 | 115 | ||
119 | MochiKit.DOM.addLoadEvent(init); | 116 | MochiKit.DOM.addLoadEvent(init); |
diff --git a/frontend/gamma/tests/tests/Components/GridLayout/TestPageComponent.js b/frontend/gamma/tests/tests/Components/GridLayout/TestPageComponent.js index a98f041..a066001 100644 --- a/frontend/gamma/tests/tests/Components/GridLayout/TestPageComponent.js +++ b/frontend/gamma/tests/tests/Components/GridLayout/TestPageComponent.js | |||
@@ -1,102 +1,99 @@ | |||
1 | /* | 1 | /* |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | */ | 24 | */ |
28 | 25 | ||
29 | Clipperz.Base.module('Clipperz.Tests.GridLayout'); | 26 | Clipperz.Base.module('Clipperz.Tests.GridLayout'); |
30 | 27 | ||
31 | Clipperz.Tests.GridLayout.TestPageComponent = function(args) { | 28 | Clipperz.Tests.GridLayout.TestPageComponent = function(args) { |
32 | args = args || {}; | 29 | args = args || {}; |
33 | Clipperz.Tests.GridLayout.TestPageComponent.superclass.constructor.call(this, args); | 30 | Clipperz.Tests.GridLayout.TestPageComponent.superclass.constructor.call(this, args); |
34 | 31 | ||
35 | this._element = args.element || null; | 32 | this._element = args.element || null; |
36 | 33 | ||
37 | this._slots = { | 34 | this._slots = { |
38 | 'cardList' : this.getId('cardList'), | 35 | 'cardList' : this.getId('cardList'), |
39 | 'cardGrid' : this.getId('cardGrid') | 36 | 'cardGrid' : this.getId('cardGrid') |
40 | }; | 37 | }; |
41 | 38 | ||
42 | this.render(); | 39 | this.render(); |
43 | 40 | ||
44 | 41 | ||
45 | return this; | 42 | return this; |
46 | } | 43 | } |
47 | 44 | ||
48 | //============================================================================= | 45 | //============================================================================= |
49 | 46 | ||
50 | Clipperz.Base.extend(Clipperz.Tests.GridLayout.TestPageComponent, Clipperz.PM.UI.Common.Components.BaseComponent, { | 47 | Clipperz.Base.extend(Clipperz.Tests.GridLayout.TestPageComponent, Clipperz.PM.UI.Common.Components.BaseComponent, { |
51 | 48 | ||
52 | //------------------------------------------------------------------------- | 49 | //------------------------------------------------------------------------- |
53 | 50 | ||
54 | 'toString': function () { | 51 | 'toString': function () { |
55 | return "Clipperz.Tests.GridLayout.TestPageComponent component"; | 52 | return "Clipperz.Tests.GridLayout.TestPageComponent component"; |
56 | }, | 53 | }, |
57 | 54 | ||
58 | //------------------------------------------------------------------------- | 55 | //------------------------------------------------------------------------- |
59 | 56 | ||
60 | 'renderSelf': function(/*aContainer, aPosition*/) { | 57 | 'renderSelf': function(/*aContainer, aPosition*/) { |
61 | this.append(this.element(), [ | 58 | this.append(this.element(), [ |
62 | {tag:'ul', cls:'testTabs', style:'', children:[ | 59 | {tag:'ul', cls:'testTabs', style:'', children:[ |
63 | {tag:'li', id:this.getId('list'), children:[{tag:'span', html:'list'}]}, | 60 | {tag:'li', id:this.getId('list'), children:[{tag:'span', html:'list'}]}, |
64 | {tag:'li', id:this.getId('grid'), children:[{tag:'span', html:'grid'}]} | 61 | {tag:'li', id:this.getId('grid'), children:[{tag:'span', html:'grid'}]} |
65 | ]}, | 62 | ]}, |
66 | {tag:'ul', cls:'testPanels', children:[ | 63 | {tag:'ul', cls:'testPanels', children:[ |
67 | {tag:'li', id:this.getId('listPanel'), children:[ | 64 | {tag:'li', id:this.getId('listPanel'), children:[ |
68 | {tag:'div', /*id:this.getId('mainPanels'),*/ cls:'mainPanels', children:[ | 65 | {tag:'div', /*id:this.getId('mainPanels'),*/ cls:'mainPanels', children:[ |
69 | {tag:'div', id:this.getId('cardList'), cls:'gridComponent cardGrid'} | 66 | {tag:'div', id:this.getId('cardList'), cls:'gridComponent cardGrid'} |
70 | ]} | 67 | ]} |
71 | ]}, | 68 | ]}, |
72 | {tag:'li', id:this.getId('gridPanel'), children:[ | 69 | {tag:'li', id:this.getId('gridPanel'), children:[ |
73 | {tag:'div', /*id:this.getId('mainPanels'),*/ cls:'mainPanels', children:[ | 70 | {tag:'div', /*id:this.getId('mainPanels'),*/ cls:'mainPanels', children:[ |
74 | // {tag:'div', id:this.getId('cardGrid'), cls:'gridComponent cardGrid'} | 71 | // {tag:'div', id:this.getId('cardGrid'), cls:'gridComponent cardGrid'} |
75 | {tag:'h1', html:"Ciao"} | 72 | {tag:'h1', html:"Ciao"} |
76 | ]} | 73 | ]} |
77 | ]} | 74 | ]} |
78 | ]} | 75 | ]} |
79 | ]); | 76 | ]); |
80 | 77 | ||
81 | // this.append(this.element(), {tag:'div', id:this.getId('mainPanels'), cls:'mainPanels'}); | 78 | // this.append(this.element(), {tag:'div', id:this.getId('mainPanels'), cls:'mainPanels'}); |
82 | // this.append(this.getId('mainPanels'), {tag:'div', id:this.getId('cardGrid'), cls:'gridComponent cardGrid'}); | 79 | // this.append(this.getId('mainPanels'), {tag:'div', id:this.getId('cardGrid'), cls:'gridComponent cardGrid'}); |
83 | 80 | ||
84 | new Clipperz.PM.UI.Common.Controllers.TabPanelController({ | 81 | new Clipperz.PM.UI.Common.Controllers.TabPanelController({ |
85 | component:this, | 82 | component:this, |
86 | configuration: { | 83 | configuration: { |
87 | 'LIST': { | 84 | 'LIST': { |
88 | tab:'list', | 85 | tab:'list', |
89 | panel:'listPanel' | 86 | panel:'listPanel' |
90 | }, | 87 | }, |
91 | 'GRID': { | 88 | 'GRID': { |
92 | tab:'grid', | 89 | tab:'grid', |
93 | panel:'gridPanel' | 90 | panel:'gridPanel' |
94 | } | 91 | } |
95 | } | 92 | } |
96 | }); | 93 | }); |
97 | }, | 94 | }, |
98 | 95 | ||
99 | //------------------------------------------------------------------------- | 96 | //------------------------------------------------------------------------- |
100 | 97 | ||
101 | __syntaxFix__: "syntax fix" | 98 | __syntaxFix__: "syntax fix" |
102 | }); | 99 | }); |
diff --git a/frontend/gamma/tests/tests/Components/GridLayout/User.data.js b/frontend/gamma/tests/tests/Components/GridLayout/User.data.js index 6fec8c9..142e511 100644 --- a/frontend/gamma/tests/tests/Components/GridLayout/User.data.js +++ b/frontend/gamma/tests/tests/Components/GridLayout/User.data.js | |||
@@ -1,120 +1,117 @@ | |||
1 | /* | 1 | /* |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | */ | 24 | */ |
28 | 25 | ||
29 | testData = { | 26 | testData = { |
30 | 27 | ||
31 | //------------------------------------------------------------------------- | 28 | //------------------------------------------------------------------------- |
32 | 29 | ||
33 | 'simpleLogin_001': { | 30 | 'simpleLogin_001': { |
34 | 'users': [ | 31 | 'users': [ |
35 | { | 32 | { |
36 | 'username': "joe", | 33 | 'username': "joe", |
37 | 'passphrase': "eoj", | 34 | 'passphrase': "eoj", |
38 | 'version': "0.2", | 35 | 'version': "0.2", |
39 | 'connectionVersion':"0.2", | 36 | 'connectionVersion':"0.2", |
40 | 'records':{ | 37 | 'records':{ |
41 | 'record 1': { | 38 | 'record 1': { |
42 | 'notes':"Some notes here", | 39 | 'notes':"Some notes here", |
43 | 'fields':[ | 40 | 'fields':[ |
44 | { 'name': "username", 'value': "joe", 'type': "text" }, | 41 | { 'name': "username", 'value': "joe", 'type': "text" }, |
45 | { 'name': "password", 'value': "1234", 'type': "password"} | 42 | { 'name': "password", 'value': "1234", 'type': "password"} |
46 | ], | 43 | ], |
47 | 'directLogins':{ | 44 | 'directLogins':{ |
48 | "record 1 direct login": { | 45 | "record 1 direct login": { |
49 | 'configuration':"", | 46 | 'configuration':"", |
50 | 'bindings':[ | 47 | 'bindings':[ |
51 | ], | 48 | ], |
52 | 'favicon':"http://www.example.com/favicon.ico" | 49 | 'favicon':"http://www.example.com/favicon.ico" |
53 | } | 50 | } |
54 | } | 51 | } |
55 | } | 52 | } |
56 | }, | 53 | }, |
57 | 'otp':[ | 54 | 'otp':[ |
58 | "12345678 90abcdef 12345678 90abcdef", | 55 | "12345678 90abcdef 12345678 90abcdef", |
59 | "fedcba09 87654321 fedcba09 87654321" | 56 | "fedcba09 87654321 fedcba09 87654321" |
60 | ] | 57 | ] |
61 | } | 58 | } |
62 | ] | 59 | ] |
63 | }, | 60 | }, |
64 | 61 | ||
65 | //------------------------------------------------------------------------- | 62 | //------------------------------------------------------------------------- |
66 | 63 | ||
67 | 'joe_clipperz_offline_copy_data': { | 64 | 'joe_clipperz_offline_copy_data': { |
68 | users:{ | 65 | users:{ |
69 | 'catchAllUser': { | 66 | 'catchAllUser': { |
70 | __masterkey_test_value__: 'masterkey', | 67 | __masterkey_test_value__: 'masterkey', |
71 | s: '112233445566778899aabbccddeeff00112233445566778899aabbccddeeff00', | 68 | s: '112233445566778899aabbccddeeff00112233445566778899aabbccddeeff00', |
72 | v: '112233445566778899aabbccddeeff00112233445566778899aabbccddeeff00' | 69 | v: '112233445566778899aabbccddeeff00112233445566778899aabbccddeeff00' |
73 | }, | 70 | }, |
74 | 'f527cdd90d0d47f8524b4e165398ad1455eba515d04abd101d1e93b3c6ae0674': { | 71 | 'f527cdd90d0d47f8524b4e165398ad1455eba515d04abd101d1e93b3c6ae0674': { |
75 | s: '186f0c40bf73f2af236eaa6c429df225efa933050c9aae65240e93b7b362e3ee', | 72 | s: '186f0c40bf73f2af236eaa6c429df225efa933050c9aae65240e93b7b362e3ee', |
76 | v: 'ac61a6e325ecf329926a86084f591d8852d0ad3e4a6080f2adc901b82395ecaf', | 73 | v: 'ac61a6e325ecf329926a86084f591d8852d0ad3e4a6080f2adc901b82395ecaf', |
77 | version: '0.2', | 74 | version: '0.2', |
78 | maxNumberOfRecords: '100', | 75 | maxNumberOfRecords: '100', |
79 | userDetails: '{"records":{"index":{"eeda70e0392261967bda71c3764da78989c45bbd2bb7be6b941b90f81d9b81b5":"0","13a5e52976337ab210903cd04872588e1b21fb72bc183e91aa25c494b8138551":"1","062af892bcfba49ffcff05c56d99b7af2d508358e39c058c2e1fc83531436f80":"2","ca01bcb7691f70818feed46c9a2a91883ac543997a395535aedbb49de166690c":"3","507f38b06d587d8889698ae1ebbba7ef8f0539b82550dd25779fd9ee88fc0c7a":"4","d5f700b9c3367c39551ea49e00a9ab20dae09dd79d46047b983fc7c4bfaa050d":"5","de13c0d036234c44214062bc0a89e5f127470c464333493a485729f43cdc26e4":"6","d620764a656bfd4e1d3758500d5db72e460a0cf729d56ed1a7755b5725c50045":"7","f215d89bf4583c12f5ed4f4330f488dad3fffa448f4dc784f15ef135dda2c732":"8","36ec1a41118813ced3553534fa2607d781cba687768db305beed368a8e06e113":"9","fe21497ef7435d31f9746c132e4b5ecf5aac5f13b5961ddb55d2bdc3409f28f6":"10","6d45c2fec275b7482d41c76b20507100cfb6ab49922b876f9dd3040d361f4a18":"11","9dcd2a8a0fcb7e57d234dc4fea347f020a6a01793e40cf56a0d22379e590e291":"12","6c25be8e145efb26a1abd59590522f73fb2e3dbc139af2217074d9e2ba92c16a":"13","6026370f3db3860d2c46a08e389a7e906dc14f98c8444b21be9a7e9f405a2728":"14","8b18e8593b5bc2f7ea39a5fab222047034ef2f380fee05be0fa6e1c0972fea39":"15","084e23120544603f0297368fd3891a3818e0fe13488e2f2c6079913c8d1bed8d":"16","7bb69b6366a8012f181c01e368ba18d4f7a82bcabb4959189736ad124c4bbfbb":"17","5cdac63b317f3942da38f3a3de3b7f0e5d6678200951c6216230295550f63fb4":"18","c0ce9130ca365bb02418d4305ea1d29e49c3f0e96d44b9d3cb6b4b6843d25065":"19"},"data":"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"},"directLogins":{"index":{"61e87fdc4f1d9112e3b30c1f6812d095dcdb24f014c83319091eb6c9899ec348":"0","989593d4c48929f0c8f1581aa96969c622807e99619ed4732026e967530a68ad":"1","9f7979368fa29f66c44bd97ecaf6c545abc800b1c7bb21b7655a68e1514c3906":"2","dba0db679802f0e6aa6d0b7a6aaf42350aabc5f057409edd99a268a92ebb6496":"3","aa18149164302d5dbe7e2d3724565b9550e00887b49978559783b2e38c625584":"4","1f9bfd677b531a03168d3f8bd8afabb5357244a7bc355dff50bd6c0a072114a6":"5","a48e38845713462ecc9f827149eeaae87da882031f98ef8ebbf9ee9537b63468":"6","6f7bbc4e42ea462b5246e6f51c3f86056bec50601ce2de6067c8c1d26f21c07f":"7","2df54059e78f5771f23bd285cce19595b38331b73d67020424d9a1b2257db09c":"8","065cd0c270e5e8ce50e4ea8e3828dccdae18c01ab030813d756a87d03fe68784":"9","ddbc8d01300a4f10631cbde09e1246332eade3a877a2205209f9eb9e5bc9da0b":"10","9b7a30e667afc9f76ba77600658b2c13bff52432d444261d39bf3d069a160afe":"11","9fd2929cde3d32d9cbc5f1d787f2f64729a5e12a14410556b31c0c099762c46a":"12","f695fc36ac56bead80c0d20a88e01e382819c18dc268f1679551b7c83db7cb14":"13","f22dc41ffabef4b3bc8f7af804fec975bd50718098322a673cbe4aaff9464ae1":"14","03251dc1cbc5398789e4c4b45c52cfac3fcd8c1a4f19a81fa68fc6feae31d55c":"15","a7b32e72502804bf2946a2a8856139cbbb759c5777e6b3e673db1fdf7e3bd06e":"16","cb9ae0bba1957075ccdbfd3b3481704d62087687a2ac7c411a4f07d444bde0f7":"17","7e1d069b7fa57c03bd7bf48807520feb953157834503aaff8c9d493f37dea69d":"18","24404059cabc63b2dbff0f42ba57183108b8189ef53ab62fa25141a1caea824b":"19","33cf9758477460a8056deef0295a1ebe65b39b392c361ceb920a83edacfe5d78":"20","e9a16316f330e3d150f6ffd194f6fd8acd1426757b097de4b88ca0db875202e4":"21"},"data":"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"},"preferences":{"data":"EZMrwxNFFd1sMGycoYE7IrlGGrfLixLUnLZmWMkFysfISe2ay3ueO0PGCApuKqh9hA=="},"oneTimePasswords":{"data":"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"},"version":"0.1"}', | 76 | userDetails: '{"records":{"index":{"eeda70e0392261967bda71c3764da78989c45bbd2bb7be6b941b90f81d9b81b5":"0","13a5e52976337ab210903cd04872588e1b21fb72bc183e91aa25c494b8138551":"1","062af892bcfba49ffcff05c56d99b7af2d508358e39c058c2e1fc83531436f80":"2","ca01bcb7691f70818feed46c9a2a91883ac543997a395535aedbb49de166690c":"3","507f38b06d587d8889698ae1ebbba7ef8f0539b82550dd25779fd9ee88fc0c7a":"4","d5f700b9c3367c39551ea49e00a9ab20dae09dd79d46047b983fc7c4bfaa050d":"5","de13c0d036234c44214062bc0a89e5f127470c464333493a485729f43cdc26e4":"6","d620764a656bfd4e1d3758500d5db72e460a0cf729d56ed1a7755b5725c50045":"7","f215d89bf4583c12f5ed4f4330f488dad3fffa448f4dc784f15ef135dda2c732":"8","36ec1a41118813ced3553534fa2607d781cba687768db305beed368a8e06e113":"9","fe21497ef7435d31f9746c132e4b5ecf5aac5f13b5961ddb55d2bdc3409f28f6":"10","6d45c2fec275b7482d41c76b20507100cfb6ab49922b876f9dd3040d361f4a18":"11","9dcd2a8a0fcb7e57d234dc4fea347f020a6a01793e40cf56a0d22379e590e291":"12","6c25be8e145efb26a1abd59590522f73fb2e3dbc139af2217074d9e2ba92c16a":"13","6026370f3db3860d2c46a08e389a7e906dc14f98c8444b21be9a7e9f405a2728":"14","8b18e8593b5bc2f7ea39a5fab222047034ef2f380fee05be0fa6e1c0972fea39":"15","084e23120544603f0297368fd3891a3818e0fe13488e2f2c6079913c8d1bed8d":"16","7bb69b6366a8012f181c01e368ba18d4f7a82bcabb4959189736ad124c4bbfbb":"17","5cdac63b317f3942da38f3a3de3b7f0e5d6678200951c6216230295550f63fb4":"18","c0ce9130ca365bb02418d4305ea1d29e49c3f0e96d44b9d3cb6b4b6843d25065":"19"},"data":"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"},"directLogins":{"index":{"61e87fdc4f1d9112e3b30c1f6812d095dcdb24f014c83319091eb6c9899ec348":"0","989593d4c48929f0c8f1581aa96969c622807e99619ed4732026e967530a68ad":"1","9f7979368fa29f66c44bd97ecaf6c545abc800b1c7bb21b7655a68e1514c3906":"2","dba0db679802f0e6aa6d0b7a6aaf42350aabc5f057409edd99a268a92ebb6496":"3","aa18149164302d5dbe7e2d3724565b9550e00887b49978559783b2e38c625584":"4","1f9bfd677b531a03168d3f8bd8afabb5357244a7bc355dff50bd6c0a072114a6":"5","a48e38845713462ecc9f827149eeaae87da882031f98ef8ebbf9ee9537b63468":"6","6f7bbc4e42ea462b5246e6f51c3f86056bec50601ce2de6067c8c1d26f21c07f":"7","2df54059e78f5771f23bd285cce19595b38331b73d67020424d9a1b2257db09c":"8","065cd0c270e5e8ce50e4ea8e3828dccdae18c01ab030813d756a87d03fe68784":"9","ddbc8d01300a4f10631cbde09e1246332eade3a877a2205209f9eb9e5bc9da0b":"10","9b7a30e667afc9f76ba77600658b2c13bff52432d444261d39bf3d069a160afe":"11","9fd2929cde3d32d9cbc5f1d787f2f64729a5e12a14410556b31c0c099762c46a":"12","f695fc36ac56bead80c0d20a88e01e382819c18dc268f1679551b7c83db7cb14":"13","f22dc41ffabef4b3bc8f7af804fec975bd50718098322a673cbe4aaff9464ae1":"14","03251dc1cbc5398789e4c4b45c52cfac3fcd8c1a4f19a81fa68fc6feae31d55c":"15","a7b32e72502804bf2946a2a8856139cbbb759c5777e6b3e673db1fdf7e3bd06e":"16","cb9ae0bba1957075ccdbfd3b3481704d62087687a2ac7c411a4f07d444bde0f7":"17","7e1d069b7fa57c03bd7bf48807520feb953157834503aaff8c9d493f37dea69d":"18","24404059cabc63b2dbff0f42ba57183108b8189ef53ab62fa25141a1caea824b":"19","33cf9758477460a8056deef0295a1ebe65b39b392c361ceb920a83edacfe5d78":"20","e9a16316f330e3d150f6ffd194f6fd8acd1426757b097de4b88ca0db875202e4":"21"},"data":"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"},"preferences":{"data":"EZMrwxNFFd1sMGycoYE7IrlGGrfLixLUnLZmWMkFysfISe2ay3ueO0PGCApuKqh9hA=="},"oneTimePasswords":{"data":"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"},"version":"0.1"}', |
80 | statistics: 'SfGy/4mpXQdDOv+Bcfie4Yt/', | 77 | statistics: 'SfGy/4mpXQdDOv+Bcfie4Yt/', |
81 | userDetailsVersion: '0.3', | 78 | userDetailsVersion: '0.3', |
82 | records: { | 79 | records: { |
83 | '062af892bcfba49ffcff05c56d99b7af2d508358e39c058c2e1fc83531436f80': { | 80 | '062af892bcfba49ffcff05c56d99b7af2d508358e39c058c2e1fc83531436f80': { |
84 | data: '7sgxSQlqR+wh3g06M2+sWp7raQxjjQ9jLIz2OcEB7SckuQcXNrhMlDCbL6ncSljtzgqhioWrOB409kIG8lc7h6ekghOE/Mhi7rVwAiRfNGB7r3mYxpEXRe96O2RG7E+NcSp8ezl+5gJ9D0o1abXPeFQYGcr95hUioCfyY+xrxY8TJVwdb9nHkYvBdKV7rCl1dTxgsKWK3nlo1T7e5uyiz5YUAE6BrCtTFAqtprLI/xOpRti9C+llohS7D6s8hkCBPZfp3chKFDrgpsCBFLhXN8jrBKSjHi1PJdRQzpJsgrxyeBj0dZx3gTsYOXqrYgdIzFUo7K1Tqb30yNprBiDMr7j0YYXiSvEb7OuOIP+HTXGN+yt09bk9LggyY6Fh0e+tenjQQ3soySN/XznOBpEjXbzXoz6fR1MXVnE9GgaX99LVNqwWfq2rIBdSE/FfspRiWP3BY5jIrEkNeRclS05U1zw3K3wxOL+cB9r2IynSXnK8QcrDNNRZ0W3PhsSFfByUXuviLSEOPuJa1mYP29L9Lj/WyHL1Gyl8xLbt2H41S6+wvIleKMuc7teH6wPXbnYphvbwBowoI6HZTEFkz3dQKhhY6VF/81iCXsuaz6BjyrzFX6SkQ4S3lN1tv4opQMJFvnmHb6EkXqVWfeIXzJIJO+owL4vDOf4okpAD+HPjjlVXhq6fvyM5UBIK9+tzJW78X/zifrQOfWRIhwjVsfUdZWmZ/S35vnHWNuXkM8GBYrDysqxanDtah3U8XLAiIhFtBOzpzr6qGaNDOKKgG3K8QXT4bYHOq1rQVUwzQuKhlCyStrRMQrC5Ry251xmLy6dKfppRarVeGDtzB/30BbtFNdZmzMNG2g+Jj5tFCrEtCMvMiQEWZHMU3tGMFxDef/KKdv1fFTJC16jmaUiCHUZmNjB3EO9R6xPVcMlAVKf57n3efrpRk/GTmm9JhAFkuF/wsveH4JjPpDUdkHYFu5tHbb30sbga3ufBAXbQL4ck10S24akU/cKraFGLvuKGaR2U0i6ih911TBSf3pAfZ3RFbBhVIl+6rSknC5+IXoBR7MRstBPW/xC9pQVjN5Qyn0g3aUjUSI+q4jcTuvMl32NtTJbWRMGhfkrpVzypZTyPnIh6XJkyBghlUARXw23MlbjiZxmY4ScDmcWZRZJWIknHlqjDKFDKNnwrfnEI9qWyMDno+jA/DEQz0mnpdZYEsoz1/qAmAeDt89vx', | 81 | data: '7sgxSQlqR+wh3g06M2+sWp7raQxjjQ9jLIz2OcEB7SckuQcXNrhMlDCbL6ncSljtzgqhioWrOB409kIG8lc7h6ekghOE/Mhi7rVwAiRfNGB7r3mYxpEXRe96O2RG7E+NcSp8ezl+5gJ9D0o1abXPeFQYGcr95hUioCfyY+xrxY8TJVwdb9nHkYvBdKV7rCl1dTxgsKWK3nlo1T7e5uyiz5YUAE6BrCtTFAqtprLI/xOpRti9C+llohS7D6s8hkCBPZfp3chKFDrgpsCBFLhXN8jrBKSjHi1PJdRQzpJsgrxyeBj0dZx3gTsYOXqrYgdIzFUo7K1Tqb30yNprBiDMr7j0YYXiSvEb7OuOIP+HTXGN+yt09bk9LggyY6Fh0e+tenjQQ3soySN/XznOBpEjXbzXoz6fR1MXVnE9GgaX99LVNqwWfq2rIBdSE/FfspRiWP3BY5jIrEkNeRclS05U1zw3K3wxOL+cB9r2IynSXnK8QcrDNNRZ0W3PhsSFfByUXuviLSEOPuJa1mYP29L9Lj/WyHL1Gyl8xLbt2H41S6+wvIleKMuc7teH6wPXbnYphvbwBowoI6HZTEFkz3dQKhhY6VF/81iCXsuaz6BjyrzFX6SkQ4S3lN1tv4opQMJFvnmHb6EkXqVWfeIXzJIJO+owL4vDOf4okpAD+HPjjlVXhq6fvyM5UBIK9+tzJW78X/zifrQOfWRIhwjVsfUdZWmZ/S35vnHWNuXkM8GBYrDysqxanDtah3U8XLAiIhFtBOzpzr6qGaNDOKKgG3K8QXT4bYHOq1rQVUwzQuKhlCyStrRMQrC5Ry251xmLy6dKfppRarVeGDtzB/30BbtFNdZmzMNG2g+Jj5tFCrEtCMvMiQEWZHMU3tGMFxDef/KKdv1fFTJC16jmaUiCHUZmNjB3EO9R6xPVcMlAVKf57n3efrpRk/GTmm9JhAFkuF/wsveH4JjPpDUdkHYFu5tHbb30sbga3ufBAXbQL4ck10S24akU/cKraFGLvuKGaR2U0i6ih911TBSf3pAfZ3RFbBhVIl+6rSknC5+IXoBR7MRstBPW/xC9pQVjN5Qyn0g3aUjUSI+q4jcTuvMl32NtTJbWRMGhfkrpVzypZTyPnIh6XJkyBghlUARXw23MlbjiZxmY4ScDmcWZRZJWIknHlqjDKFDKNnwrfnEI9qWyMDno+jA/DEQz0mnpdZYEsoz1/qAmAeDt89vx', |
85 | version: '0.2', | 82 | version: '0.2', |
86 | creationDate: 'Wed Mar 14 15:46:44 PDT 2007', | 83 | creationDate: 'Wed Mar 14 15:46:44 PDT 2007', |
87 | updateDate: 'Wed Mar 14 15:46:44 PDT 2007', | 84 | updateDate: 'Wed Mar 14 15:46:44 PDT 2007', |
88 | accessDate: 'Mon Jan 19 16:10:04 PDT 2009', | 85 | accessDate: 'Mon Jan 19 16:10:04 PDT 2009', |
89 | currentVersion: '4a70ca20167875a936d4540f19980e972c20f329a65d85e9b0ce709f1fc7c7e3', | 86 | currentVersion: '4a70ca20167875a936d4540f19980e972c20f329a65d85e9b0ce709f1fc7c7e3', |
90 | versions: { | 87 | versions: { |
91 | '4a70ca20167875a936d4540f19980e972c20f329a65d85e9b0ce709f1fc7c7e3': { | 88 | '4a70ca20167875a936d4540f19980e972c20f329a65d85e9b0ce709f1fc7c7e3': { |
92 | header: '####', | 89 | header: '####', |
93 | data: 'GCNNIhDQjMJQZGVSf+95fPtU6eOnFWVhuGm86r8WZGVR2Gf2EjbG1OJ0ZIGpZ/AXgirCMpo5AFxJe0Bay8IYg+xmBqMFhwFxzAgJBYCIts+raSaNRipuY8dTEqDxAqD1cChcG8EhSoiFgQ0fG0I7nNEUDJi0pIt4/ygBcwvAhuAenEp9ZW+oQA0+YysPQRqkz3IieFaOoSEbe5/SqpUilV4q1gTVyzNXvrxzxx+rlvEyGFgFN+vgtUZ1NrwlPk4gVksTpylvv6CFaMGEWKhgMG6efo0rJckKosaJTu1pldJdnmMK4EKNMLOd+jZ6pEhEhYyadrA4+zYU5TlmZA6ASzTaps8piSwZodoi9qY0ch2StK4mAbzeEGe2HdfHuAU9Tyq3Ppk3+VfNdKgpQfYrQOiSlXbKzK636tzXTN/gyrfOTHjBrRl117ywibgSX63ayAYNfcLpKotC', | 90 | data: 'GCNNIhDQjMJQZGVSf+95fPtU6eOnFWVhuGm86r8WZGVR2Gf2EjbG1OJ0ZIGpZ/AXgirCMpo5AFxJe0Bay8IYg+xmBqMFhwFxzAgJBYCIts+raSaNRipuY8dTEqDxAqD1cChcG8EhSoiFgQ0fG0I7nNEUDJi0pIt4/ygBcwvAhuAenEp9ZW+oQA0+YysPQRqkz3IieFaOoSEbe5/SqpUilV4q1gTVyzNXvrxzxx+rlvEyGFgFN+vgtUZ1NrwlPk4gVksTpylvv6CFaMGEWKhgMG6efo0rJckKosaJTu1pldJdnmMK4EKNMLOd+jZ6pEhEhYyadrA4+zYU5TlmZA6ASzTaps8piSwZodoi9qY0ch2StK4mAbzeEGe2HdfHuAU9Tyq3Ppk3+VfNdKgpQfYrQOiSlXbKzK636tzXTN/gyrfOTHjBrRl117ywibgSX63ayAYNfcLpKotC', |
94 | version: '0.2', | 91 | version: '0.2', |
95 | creationDate: 'Wed Mar 14 15:46:44 PDT 2007', | 92 | creationDate: 'Wed Mar 14 15:46:44 PDT 2007', |
96 | updateDate: 'Wed Mar 14 15:46:44 PDT 2007', | 93 | updateDate: 'Wed Mar 14 15:46:44 PDT 2007', |
97 | accessDate: 'Mon Jan 19 16:10:04 PDT 2009' | 94 | accessDate: 'Mon Jan 19 16:10:04 PDT 2009' |
98 | } | 95 | } |
99 | } | 96 | } |
100 | }, | 97 | }, |
101 | '084e23120544603f0297368fd3891a3818e0fe13488e2f2c6079913c8d1bed8d': { | 98 | '084e23120544603f0297368fd3891a3818e0fe13488e2f2c6079913c8d1bed8d': { |
102 | data: 'fGzBu1On7e/6rAoSB1a4fq/CkS8Be/T8UP5cQ93asBTWndSYu2lW4DQ4SXQXSindIi3OnNx/f6SNv/extb7OrMLREF92wXI045ipPwy+DIICb+cQNMJ82Sh4cXaIcAWcyrm+MYri3qq9LBKbpwkILcebZidJ86lmKYHJozUezmfbMcwNCljHs/gYkHVzVcuw9L52Ugc6wC7sjsshh+UH6i4/2Frlrophtx+b1vervNd8eoYiKnedHVXVfW7UJcQoF27eHFgzwYnGvRW0KNXFFhqmPb61TSkIvNdCCvBKDP4SXrWvGgzU89wipvWdUPpQ+fCT6Mp3hPRrbJxwMunmjujZOzBld/HkjnXoiNfBb5akA280WvdyzWYATrjV1ZFx8yQY8G0+lRt/MxjKDc38w4y+Rf5WeRbXboJMvFatwooHUggk6qSRmZVvgOmFmNuDRnRYIFzqK3JclhJeVasnqhR6RiGSowc1Ffr1HhcZCMnXpQABGBkZcHD/zw6YjHRyh9Plw7XAm0xb16HMDtiwt7WLJpxLH/HP99j/A2hvMGWiUiFCaYv7AzyEPTmYbN32D1IsAEE/GC3FG0HypGTBolP8wpAfTRdlvWpJz8oRRdwuLV3Pgpu+kXh5sQyeZI6tnuMPQFmRDcMN1oo3E5V5V585nVMnKTFcXhBzD4UnoV+DQNkG/+iSPybQzz/EZmucEqGEYyjI3kl4MAX8UMEUxE4JO0fF8MzyBI13nxknowAceEammx1dGVaJCoIOdhadaPVPyOzXM1Vp1erVm5k4TsxSx1pll+GOm6hVoNHIuQLDueaMEpRxMhfwc8cDyXURqRGPTgTc0bint5xVjo10fnpX1gcdc/AWL6y3tXM80NW+uFJ4GI7VzyzfcMRzTiRaGi19z8MIx8PbIVGh2sw4FhgGujNsPrpuESvUVT+17M0+v8oEoABNlcizTMFs/sA1uqlPumFASltzmViAzClOsDuCh069hFLjdk/Ex5jy4vPYlwOT8Uq9DJC9ZWuZgiI1DrhWN/8QGAEGxxbvnSZPNCQ9kpD5p+iabinLLWOAirVNgKwIRJRyAu/uR9xKd7J9Wxq8q/ii+y5lGilbo2g24wbDwrkXYVhqp/4J0g+p8Wv1NBjCTSCqV39WEizUCRHo3ee9HnQnBJQDOyTBRuz2odTJtJ5tLYjWXZRdFzFSJrEq+Z1z3oq7LnhZy3YWaFXPeKmBCemMthtNt0nL', | 99 | data: 'fGzBu1On7e/6rAoSB1a4fq/CkS8Be/T8UP5cQ93asBTWndSYu2lW4DQ4SXQXSindIi3OnNx/f6SNv/extb7OrMLREF92wXI045ipPwy+DIICb+cQNMJ82Sh4cXaIcAWcyrm+MYri3qq9LBKbpwkILcebZidJ86lmKYHJozUezmfbMcwNCljHs/gYkHVzVcuw9L52Ugc6wC7sjsshh+UH6i4/2Frlrophtx+b1vervNd8eoYiKnedHVXVfW7UJcQoF27eHFgzwYnGvRW0KNXFFhqmPb61TSkIvNdCCvBKDP4SXrWvGgzU89wipvWdUPpQ+fCT6Mp3hPRrbJxwMunmjujZOzBld/HkjnXoiNfBb5akA280WvdyzWYATrjV1ZFx8yQY8G0+lRt/MxjKDc38w4y+Rf5WeRbXboJMvFatwooHUggk6qSRmZVvgOmFmNuDRnRYIFzqK3JclhJeVasnqhR6RiGSowc1Ffr1HhcZCMnXpQABGBkZcHD/zw6YjHRyh9Plw7XAm0xb16HMDtiwt7WLJpxLH/HP99j/A2hvMGWiUiFCaYv7AzyEPTmYbN32D1IsAEE/GC3FG0HypGTBolP8wpAfTRdlvWpJz8oRRdwuLV3Pgpu+kXh5sQyeZI6tnuMPQFmRDcMN1oo3E5V5V585nVMnKTFcXhBzD4UnoV+DQNkG/+iSPybQzz/EZmucEqGEYyjI3kl4MAX8UMEUxE4JO0fF8MzyBI13nxknowAceEammx1dGVaJCoIOdhadaPVPyOzXM1Vp1erVm5k4TsxSx1pll+GOm6hVoNHIuQLDueaMEpRxMhfwc8cDyXURqRGPTgTc0bint5xVjo10fnpX1gcdc/AWL6y3tXM80NW+uFJ4GI7VzyzfcMRzTiRaGi19z8MIx8PbIVGh2sw4FhgGujNsPrpuESvUVT+17M0+v8oEoABNlcizTMFs/sA1uqlPumFASltzmViAzClOsDuCh069hFLjdk/Ex5jy4vPYlwOT8Uq9DJC9ZWuZgiI1DrhWN/8QGAEGxxbvnSZPNCQ9kpD5p+iabinLLWOAirVNgKwIRJRyAu/uR9xKd7J9Wxq8q/ii+y5lGilbo2g24wbDwrkXYVhqp/4J0g+p8Wv1NBjCTSCqV39WEizUCRHo3ee9HnQnBJQDOyTBRuz2odTJtJ5tLYjWXZRdFzFSJrEq+Z1z3oq7LnhZy3YWaFXPeKmBCemMthtNt0nL', |
103 | version: '0.3', | 100 | version: '0.3', |
104 | creationDate: 'Fri Oct 17 16:49:20 PDT 2008', | 101 | creationDate: 'Fri Oct 17 16:49:20 PDT 2008', |
105 | updateDate: 'Mon Oct 27 08:58:49 PDT 2008', | 102 | updateDate: 'Mon Oct 27 08:58:49 PDT 2008', |
106 | accessDate: 'Mon Jan 19 16:09:39 PDT 2009', | 103 | accessDate: 'Mon Jan 19 16:09:39 PDT 2009', |
107 | currentVersion: '6fd60c5709a4808444f43f7bbd872363d76703957f613076538ba2f9161206ac', | 104 | currentVersion: '6fd60c5709a4808444f43f7bbd872363d76703957f613076538ba2f9161206ac', |
108 | versions: { | 105 | versions: { |
109 | '0ae362285f103722abbd046eee2b7d10aeae6a1d05cbaf2081392ce9df882bcf': { | 106 | '0ae362285f103722abbd046eee2b7d10aeae6a1d05cbaf2081392ce9df882bcf': { |
110 | header: '####', | 107 | header: '####', |
111 | data: 'sG6TUmPSEPFpiJ5YdtghWHmHbvUK63tZCZ+Q5iz2ALas//jN+lZCBhZcjEwPEJskBkK2R0MyAh14wWGh2bBHMjsokgTe+L+x+0c/Zi0epE/IC9gtOBhsTe/hZ2e2xOGF/SbzET3DAAYXvxduZ36f7SvvFnrkkKvpj8wGSdTFcBmzqMb9DL2bRyRCLGLMzE3F1a0q5CufCIRz2TgHm+Uw+kfvvwC7ig/F/5iLW90Ypz3vmEtMEFYFHZ9a8Oh0rsXGfevbMhFqALoywzihQEe/NiB8dwn7GEdYKSQ35rhvZh29ULWOZinqmg0ONe0HYaxx7DbKsVoue57S0CIUlgHLajzHfLfqQg2sFI0OT8TnHsGg0YZ6mM2EdKmEjJiER0cP', | 108 | data: 'sG6TUmPSEPFpiJ5YdtghWHmHbvUK63tZCZ+Q5iz2ALas//jN+lZCBhZcjEwPEJskBkK2R0MyAh14wWGh2bBHMjsokgTe+L+x+0c/Zi0epE/IC9gtOBhsTe/hZ2e2xOGF/SbzET3DAAYXvxduZ36f7SvvFnrkkKvpj8wGSdTFcBmzqMb9DL2bRyRCLGLMzE3F1a0q5CufCIRz2TgHm+Uw+kfvvwC7ig/F/5iLW90Ypz3vmEtMEFYFHZ9a8Oh0rsXGfevbMhFqALoywzihQEe/NiB8dwn7GEdYKSQ35rhvZh29ULWOZinqmg0ONe0HYaxx7DbKsVoue57S0CIUlgHLajzHfLfqQg2sFI0OT8TnHsGg0YZ6mM2EdKmEjJiER0cP', |
112 | version: '0.3', | 109 | version: '0.3', |
113 | creationDate: 'Fri Oct 17 17:00:31 PDT 2008', | 110 | creationDate: 'Fri Oct 17 17:00:31 PDT 2008', |
114 | updateDate: 'Fri Oct 17 17:00:31 PDT 2008', | 111 | updateDate: 'Fri Oct 17 17:00:31 PDT 2008', |
115 | accessDate: 'Fri Oct 17 17:00:31 PDT 2008' | 112 | accessDate: 'Fri Oct 17 17:00:31 PDT 2008' |
116 | }, | 113 | }, |
117 | '10f45664bbd979a92f37886f1ecc6e52e49798b16dc997aecd37259ad9b2090e': { | 114 | '10f45664bbd979a92f37886f1ecc6e52e49798b16dc997aecd37259ad9b2090e': { |
118 | header: '####', | 115 | header: '####', |
119 | data: 'RdKVaV/WWWchrCse3KtcXd47Bfm6IAwjqVUpaxoed3HeunI42AAm7xYYSjeK8edHpbNRJbhobBAX5OZtWIp/HmgkobKM8CIiWxrWz89FqyrbnPD7+fXdtgF2yTax/0sC1l0ibncdOuJKX6U829oPlXCpXIOjlomc4wEEAD/5V6FbORvdZ9IE/ME3LsG2y02cT2tIpx6+R6wC/PKXhZA2UDsTE6R2Op2BtIzpVORZLXsdyAp/4wvWQxq90i9cEpbsVQsMB10JVyNHNsRTFhIlHi9MVCaMxQvcrwRElMj/Y9x3RbsFzSGKqFLqdg7Fn/U+KYkpYtsgHv9hraPIb9lV5FH16+iItU/HBM6FGezIj1ZkoQ+dgjPfSjTZzgzDYwyb', | 116 | data: 'RdKVaV/WWWchrCse3KtcXd47Bfm6IAwjqVUpaxoed3HeunI42AAm7xYYSjeK8edHpbNRJbhobBAX5OZtWIp/HmgkobKM8CIiWxrWz89FqyrbnPD7+fXdtgF2yTax/0sC1l0ibncdOuJKX6U829oPlXCpXIOjlomc4wEEAD/5V6FbORvdZ9IE/ME3LsG2y02cT2tIpx6+R6wC/PKXhZA2UDsTE6R2Op2BtIzpVORZLXsdyAp/4wvWQxq90i9cEpbsVQsMB10JVyNHNsRTFhIlHi9MVCaMxQvcrwRElMj/Y9x3RbsFzSGKqFLqdg7Fn/U+KYkpYtsgHv9hraPIb9lV5FH16+iItU/HBM6FGezIj1ZkoQ+dgjPfSjTZzgzDYwyb', |
120 | version: '0.3', | 117 | version: '0.3', |
diff --git a/frontend/gamma/tests/tests/Components/GridLayout/index.html b/frontend/gamma/tests/tests/Components/GridLayout/index.html index 0208a82..f1ed116 100644 --- a/frontend/gamma/tests/tests/Components/GridLayout/index.html +++ b/frontend/gamma/tests/tests/Components/GridLayout/index.html | |||
@@ -1,120 +1,117 @@ | |||
1 | <!-- | 1 | <!-- |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | --> | 24 | --> |
28 | 25 | ||
29 | <html> | 26 | <html> |
30 | <head> | 27 | <head> |
31 | <title>Card Dialog EDITING - test</title> | 28 | <title>Card Dialog EDITING - test</title> |
32 | <script type="text/javascript" src="../../../../js/MochiKit/MochiKit.js"></script> | 29 | <script type="text/javascript" src="../../../../js/MochiKit/MochiKit.js"></script> |
33 | <script type='text/javascript' src='../../../../js/JSON/json2.js'></script> | 30 | <script type='text/javascript' src='../../../../js/JSON/json2.js'></script> |
34 | 31 | ||
35 | <script type='text/javascript' src='../../../../js/Clipperz/YUI/Utils.js'></script> | 32 | <script type='text/javascript' src='../../../../js/Clipperz/YUI/Utils.js'></script> |
36 | <script type='text/javascript' src='../../../../js/Clipperz/YUI/DomHelper.js'></script> | 33 | <script type='text/javascript' src='../../../../js/Clipperz/YUI/DomHelper.js'></script> |
37 | <script type='text/javascript' src='../../../../js/Clipperz/Base.js'></script> | 34 | <script type='text/javascript' src='../../../../js/Clipperz/Base.js'></script> |
38 | <script type='text/javascript' src='../../../../js/Clipperz/Date.js'></script> | 35 | <script type='text/javascript' src='../../../../js/Clipperz/Date.js'></script> |
39 | <script type='text/javascript' src='../../../../js/Clipperz/DOM.js'></script> | 36 | <script type='text/javascript' src='../../../../js/Clipperz/DOM.js'></script> |
40 | <script type='text/javascript' src='../../../../js/Clipperz/ByteArray.js'></script> | 37 | <script type='text/javascript' src='../../../../js/Clipperz/ByteArray.js'></script> |
41 | <script type='text/javascript' src='../../../../js/Clipperz/Logging.js'></script> | 38 | <script type='text/javascript' src='../../../../js/Clipperz/Logging.js'></script> |
42 | <script type='text/javascript' src='../../../../js/Clipperz/Async.js'></script> | 39 | <script type='text/javascript' src='../../../../js/Clipperz/Async.js'></script> |
43 | 40 | ||
44 | <script type='text/javascript' src='../../../../js/Clipperz/Signal.js'></script> | 41 | <script type='text/javascript' src='../../../../js/Clipperz/Signal.js'></script> |
45 | <script type='text/javascript' src='../../../../js/Clipperz/Style.js'></script> | 42 | <script type='text/javascript' src='../../../../js/Clipperz/Style.js'></script> |
46 | <script type='text/javascript' src='../../../../js/Clipperz/Visual.js'></script> | 43 | <script type='text/javascript' src='../../../../js/Clipperz/Visual.js'></script> |
47 | <script type='text/javascript' src='../../../../js/Clipperz/Set.js'></script> | 44 | <script type='text/javascript' src='../../../../js/Clipperz/Set.js'></script> |
48 | <script type='text/javascript' src='../../../../js/Clipperz/KeyValueObjectStore.js'></script> | 45 | <script type='text/javascript' src='../../../../js/Clipperz/KeyValueObjectStore.js'></script> |
49 | 46 | ||
50 | <script type='text/javascript' src='../../../../js/Clipperz/Crypto/Base.js'></script> | 47 | <script type='text/javascript' src='../../../../js/Clipperz/Crypto/Base.js'></script> |
51 | <script type='text/javascript' src='../../../../js/Clipperz/Crypto/BigInt.js'></script> | 48 | <script type='text/javascript' src='../../../../js/Clipperz/Crypto/BigInt.js'></script> |
52 | <script type='text/javascript' src='../../../../js/Clipperz/Crypto/AES.js'></script> | 49 | <script type='text/javascript' src='../../../../js/Clipperz/Crypto/AES.js'></script> |
53 | <script type='text/javascript' src='../../../../js/Clipperz/Crypto/SHA.js'></script> | 50 | <script type='text/javascript' src='../../../../js/Clipperz/Crypto/SHA.js'></script> |
54 | <script type='text/javascript' src='../../../../js/Clipperz/Crypto/PRNG.js'></script> | 51 | <script type='text/javascript' src='../../../../js/Clipperz/Crypto/PRNG.js'></script> |
55 | <script type='text/javascript' src='../../../../js/Clipperz/Crypto/SRP.js'></script> | 52 | <script type='text/javascript' src='../../../../js/Clipperz/Crypto/SRP.js'></script> |
56 | 53 | ||
57 | <script type='text/javascript' src='../../../../js/Clipperz/PM/Toll.js'></script> | 54 | <script type='text/javascript' src='../../../../js/Clipperz/PM/Toll.js'></script> |
58 | <script type='text/javascript' src='../../../../js/Clipperz/PM/Proxy.js'></script> | 55 | <script type='text/javascript' src='../../../../js/Clipperz/PM/Proxy.js'></script> |
59 | <script type='text/javascript' src='../../../../js/Clipperz/PM/Proxy/Proxy.Offline.js'></script> | 56 | <script type='text/javascript' src='../../../../js/Clipperz/PM/Proxy/Proxy.Offline.js'></script> |
60 | <script type='text/javascript' src='../../../../js/Clipperz/PM/Proxy/Proxy.Test.js'></script> | 57 | <script type='text/javascript' src='../../../../js/Clipperz/PM/Proxy/Proxy.Test.js'></script> |
61 | <script type='text/javascript' src='../../../../js/Clipperz/PM/Proxy/Proxy.Offline.DataStore.js'></script> | 58 | <script type='text/javascript' src='../../../../js/Clipperz/PM/Proxy/Proxy.Offline.DataStore.js'></script> |
62 | 59 | ||
63 | <script type='text/javascript' src='../../../../js/Clipperz/PM/Connection.js'></script> | 60 | <script type='text/javascript' src='../../../../js/Clipperz/PM/Connection.js'></script> |
64 | <script type='text/javascript' src='../../../../js/Clipperz/PM/Crypto.js'></script> | 61 | <script type='text/javascript' src='../../../../js/Clipperz/PM/Crypto.js'></script> |
65 | 62 | ||
66 | <script type='text/javascript' src='../../../../js/Clipperz/PM/Strings.js'></script> | 63 | <script type='text/javascript' src='../../../../js/Clipperz/PM/Strings.js'></script> |
67 | <script type='text/javascript' src='../../../../js/Clipperz/PM/Strings/Strings_defaults.js'></script> | 64 | <script type='text/javascript' src='../../../../js/Clipperz/PM/Strings/Strings_defaults.js'></script> |
68 | <script type='text/javascript' src='../../../../js/Clipperz/PM/Strings/Strings_en-US.js'></script> | 65 | <script type='text/javascript' src='../../../../js/Clipperz/PM/Strings/Strings_en-US.js'></script> |
69 | 66 | ||
70 | <script type='text/javascript' src='../../../../js/Clipperz/PM/Date.js'></script> | 67 | <script type='text/javascript' src='../../../../js/Clipperz/PM/Date.js'></script> |
71 | <script type='text/javascript' src='../../../../js/Clipperz/PM/DataModel/EncryptedRemoteObject.js'></script> | 68 | <script type='text/javascript' src='../../../../js/Clipperz/PM/DataModel/EncryptedRemoteObject.js'></script> |
72 | <script type='text/javascript' src='../../../../js/Clipperz/PM/DataModel/Record.js'></script> | 69 | <script type='text/javascript' src='../../../../js/Clipperz/PM/DataModel/Record.js'></script> |
73 | <script type='text/javascript' src='../../../../js/Clipperz/PM/DataModel/Record.Version.js'></script> | 70 | <script type='text/javascript' src='../../../../js/Clipperz/PM/DataModel/Record.Version.js'></script> |
74 | <script type='text/javascript' src='../../../../js/Clipperz/PM/DataModel/Record.Version.Field.js'></script> | 71 | <script type='text/javascript' src='../../../../js/Clipperz/PM/DataModel/Record.Version.Field.js'></script> |
75 | <script type='text/javascript' src='../../../../js/Clipperz/PM/DataModel/DirectLogin.js'></script> | 72 | <script type='text/javascript' src='../../../../js/Clipperz/PM/DataModel/DirectLogin.js'></script> |
76 | <!-- script type='text/javascript' src='../../../../js/Clipperz/PM/DataModel/Record.Field.js'></script --> | 73 | <!-- script type='text/javascript' src='../../../../js/Clipperz/PM/DataModel/Record.Field.js'></script --> |
77 | <script type='text/javascript' src='../../../../js/Clipperz/PM/DataModel/User.js'></script> | 74 | <script type='text/javascript' src='../../../../js/Clipperz/PM/DataModel/User.js'></script> |
78 | <script type='text/javascript' src='../../../../js/Clipperz/PM/DataModel/User.Header.Legacy.js'></script> | 75 | <script type='text/javascript' src='../../../../js/Clipperz/PM/DataModel/User.Header.Legacy.js'></script> |
79 | <script type='text/javascript' src='../../../../js/Clipperz/PM/DataModel/User.Header.RecordIndex.js'></script> | 76 | <script type='text/javascript' src='../../../../js/Clipperz/PM/DataModel/User.Header.RecordIndex.js'></script> |
80 | <script type='text/javascript' src='../../../../js/Clipperz/PM/DataModel/User.Header.Preferences.js'></script> | 77 | <script type='text/javascript' src='../../../../js/Clipperz/PM/DataModel/User.Header.Preferences.js'></script> |
81 | <script type='text/javascript' src='../../../../js/Clipperz/PM/DataModel/User.Header.OneTimePasswords.js'></script> | 78 | <script type='text/javascript' src='../../../../js/Clipperz/PM/DataModel/User.Header.OneTimePasswords.js'></script> |
82 | 79 | ||
83 | <script type='text/javascript' src='../../../../js/Clipperz/PM/UI/Common/Components/BaseComponent.js'></script> | 80 | <script type='text/javascript' src='../../../../js/Clipperz/PM/UI/Common/Components/BaseComponent.js'></script> |
84 | <script type='text/javascript' src='../../../../js/Clipperz/PM/UI/Common/Components/ComponentSlot.js'></script> | 81 | <script type='text/javascript' src='../../../../js/Clipperz/PM/UI/Common/Components/ComponentSlot.js'></script> |
85 | <script type='text/javascript' src='../../../../js/Clipperz/PM/UI/Common/Components/PasswordEntropyDisplay.js'></script> | 82 | <script type='text/javascript' src='../../../../js/Clipperz/PM/UI/Common/Components/PasswordEntropyDisplay.js'></script> |
86 | <script type='text/javascript' src='../../../../js/Clipperz/PM/UI/Common/Components/ProgressBar.js'></script> | 83 | <script type='text/javascript' src='../../../../js/Clipperz/PM/UI/Common/Components/ProgressBar.js'></script> |
87 | <script type='text/javascript' src='../../../../js/Clipperz/PM/UI/Common/Components/SimpleMessagePanel.js'></script> | 84 | <script type='text/javascript' src='../../../../js/Clipperz/PM/UI/Common/Components/SimpleMessagePanel.js'></script> |
88 | <script type='text/javascript' src='../../../../js/Clipperz/PM/UI/Common/Components/TabPanelComponent.js'></script> | 85 | <script type='text/javascript' src='../../../../js/Clipperz/PM/UI/Common/Components/TabPanelComponent.js'></script> |
89 | <script type='text/javascript' src='../../../../js/Clipperz/PM/UI/Common/Components/Tooltip.js'></script> | 86 | <script type='text/javascript' src='../../../../js/Clipperz/PM/UI/Common/Components/Tooltip.js'></script> |
90 | <script type='text/javascript' src='../../../../js/Clipperz/PM/UI/Common/Components/TranslatorWidget.js'></script> | 87 | <script type='text/javascript' src='../../../../js/Clipperz/PM/UI/Common/Components/TranslatorWidget.js'></script> |
91 | 88 | ||
92 | <script type='text/javascript' src='../../../../js/Clipperz/PM/UI/Web/Components/CardDialogComponent.js'></script> | 89 | <script type='text/javascript' src='../../../../js/Clipperz/PM/UI/Web/Components/CardDialogComponent.js'></script> |
93 | <script type='text/javascript' src='../../../../js/Clipperz/PM/UI/Web/Components/CardDialogRecordFieldComponent.js'></script> | 90 | <script type='text/javascript' src='../../../../js/Clipperz/PM/UI/Web/Components/CardDialogRecordFieldComponent.js'></script> |
94 | <script type='text/javascript' src='../../../../js/Clipperz/PM/UI/Web/Components/CardDialogRecordDirectLoginComponent.js'></script> | 91 | <script type='text/javascript' src='../../../../js/Clipperz/PM/UI/Web/Components/CardDialogRecordDirectLoginComponent.js'></script> |
95 | 92 | ||
96 | <script type='text/javascript' src='../../../../js/Clipperz/PM/UI/Common/Controllers/ProgressBarController.js'></script> | 93 | <script type='text/javascript' src='../../../../js/Clipperz/PM/UI/Common/Controllers/ProgressBarController.js'></script> |
97 | <script type='text/javascript' src='../../../../js/Clipperz/PM/UI/Common/Controllers/TabPanelController.js'></script> | 94 | <script type='text/javascript' src='../../../../js/Clipperz/PM/UI/Common/Controllers/TabPanelController.js'></script> |
98 | 95 | ||
99 | <script type='text/javascript' src='../../../../js/Clipperz/PM/UI/Web/Components/ColumnManager.js'></script> | 96 | <script type='text/javascript' src='../../../../js/Clipperz/PM/UI/Web/Components/ColumnManager.js'></script> |
100 | <script type='text/javascript' src='../../../../js/Clipperz/PM/UI/Web/Components/FaviconColumnManager.js'></script> | 97 | <script type='text/javascript' src='../../../../js/Clipperz/PM/UI/Web/Components/FaviconColumnManager.js'></script> |
101 | <script type='text/javascript' src='../../../../js/Clipperz/PM/UI/Web/Components/LinkColumnManager.js'></script> | 98 | <script type='text/javascript' src='../../../../js/Clipperz/PM/UI/Web/Components/LinkColumnManager.js'></script> |
102 | <script type='text/javascript' src='../../../../js/Clipperz/PM/UI/Web/Components/DirectLoginsColumnManager.js'></script> | 99 | <script type='text/javascript' src='../../../../js/Clipperz/PM/UI/Web/Components/DirectLoginsColumnManager.js'></script> |
103 | <script type='text/javascript' src='../../../../js/Clipperz/PM/UI/Web/Components/DateColumnManager.js'></script> | 100 | <script type='text/javascript' src='../../../../js/Clipperz/PM/UI/Web/Components/DateColumnManager.js'></script> |
104 | <script type='text/javascript' src='../../../../js/Clipperz/PM/UI/Web/Components/DeleteObjectColumnManager.js'></script> | 101 | <script type='text/javascript' src='../../../../js/Clipperz/PM/UI/Web/Components/DeleteObjectColumnManager.js'></script> |
105 | <script type='text/javascript' src='../../../../js/Clipperz/PM/UI/Web/Components/GridComponent.js'></script> | 102 | <script type='text/javascript' src='../../../../js/Clipperz/PM/UI/Web/Components/GridComponent.js'></script> |
106 | <script type='text/javascript' src='../../../../js/Clipperz/PM/UI/Web/Components/BookmarkletComponent.js'></script> | 103 | <script type='text/javascript' src='../../../../js/Clipperz/PM/UI/Web/Components/BookmarkletComponent.js'></script> |
107 | 104 | ||
108 | <script type='text/javascript' src='../../../../js/Clipperz/PM/UI/Web/Controllers/FilterController.js'></script> | 105 | <script type='text/javascript' src='../../../../js/Clipperz/PM/UI/Web/Controllers/FilterController.js'></script> |
109 | <script type='text/javascript' src='../../../../js/Clipperz/PM/UI/Web/Controllers/GridController.js'></script> | 106 | <script type='text/javascript' src='../../../../js/Clipperz/PM/UI/Web/Controllers/GridController.js'></script> |
110 | <script type='text/javascript' src='../../../../js/Clipperz/PM/UI/Web/Controllers/CardsController.js'></script> | 107 | <script type='text/javascript' src='../../../../js/Clipperz/PM/UI/Web/Controllers/CardsController.js'></script> |
111 | 108 | ||
112 | <script type='text/javascript' src='./User.data.js'></script> | 109 | <script type='text/javascript' src='./User.data.js'></script> |
113 | <script type='text/javascript' src='./TestPageComponent.js'></script> | 110 | <script type='text/javascript' src='./TestPageComponent.js'></script> |
114 | <script type='text/javascript' src='./GridLayout_test.js'></script> | 111 | <script type='text/javascript' src='./GridLayout_test.js'></script> |
115 | <script> | 112 | <script> |
116 | Clipperz_IEisBroken = false; | 113 | Clipperz_IEisBroken = false; |
117 | </script> | 114 | </script> |
118 | 115 | ||
119 | <!--[if IE]><script> | 116 | <!--[if IE]><script> |
120 | Clipperz_IEisBroken = true; | 117 | Clipperz_IEisBroken = true; |
diff --git a/frontend/gamma/tests/tests/Components/GridLayout/test.css b/frontend/gamma/tests/tests/Components/GridLayout/test.css index 21abd07..e5983f4 100644 --- a/frontend/gamma/tests/tests/Components/GridLayout/test.css +++ b/frontend/gamma/tests/tests/Components/GridLayout/test.css | |||
@@ -1,43 +1,40 @@ | |||
1 | /* | 1 | /* |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | */ | 24 | */ |
28 | 25 | ||
29 | ul.testTabs { | 26 | ul.testTabs { |
30 | list-style-type: none; | 27 | list-style-type: none; |
31 | padding: 0px; | 28 | padding: 0px; |
32 | padding-bottom: 30px; | 29 | padding-bottom: 30px; |
33 | } | 30 | } |
34 | 31 | ||
35 | ul.testTabs li { | 32 | ul.testTabs li { |
36 | display: inline-table; | 33 | display: inline-table; |
37 | padding: 0px 10px; | 34 | padding: 0px 10px; |
38 | } | 35 | } |
39 | 36 | ||
40 | ul.testPanels { | 37 | ul.testPanels { |
41 | list-style-type: none; | 38 | list-style-type: none; |
42 | padding: 0px; | 39 | padding: 0px; |
43 | } \ No newline at end of file | 40 | } \ No newline at end of file |
diff --git a/frontend/gamma/tests/tests/Components/ProgressBar/index.html b/frontend/gamma/tests/tests/Components/ProgressBar/index.html index d72aae0..295c2c6 100644 --- a/frontend/gamma/tests/tests/Components/ProgressBar/index.html +++ b/frontend/gamma/tests/tests/Components/ProgressBar/index.html | |||
@@ -1,120 +1,117 @@ | |||
1 | <!-- | 1 | <!-- |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | --> | 24 | --> |
28 | 25 | ||
29 | <html> | 26 | <html> |
30 | <head> | 27 | <head> |
31 | <title>ProgressBar - test</title> | 28 | <title>ProgressBar - test</title> |
32 | <script type="text/javascript" src="../../../../js/MochiKit/MochiKit.js"></script> | 29 | <script type="text/javascript" src="../../../../js/MochiKit/MochiKit.js"></script> |
33 | <script type='text/javascript' src='../../../../js/JSON/json2.js'></script> | 30 | <script type='text/javascript' src='../../../../js/JSON/json2.js'></script> |
34 | 31 | ||
35 | <script type='text/javascript' src='../../../../js/Clipperz/YUI/Utils.js'></script> | 32 | <script type='text/javascript' src='../../../../js/Clipperz/YUI/Utils.js'></script> |
36 | <script type='text/javascript' src='../../../../js/Clipperz/YUI/DomHelper.js'></script> | 33 | <script type='text/javascript' src='../../../../js/Clipperz/YUI/DomHelper.js'></script> |
37 | <script type='text/javascript' src='../../../../js/Clipperz/Base.js'></script> | 34 | <script type='text/javascript' src='../../../../js/Clipperz/Base.js'></script> |
38 | <script type='text/javascript' src='../../../../js/Clipperz/Date.js'></script> | 35 | <script type='text/javascript' src='../../../../js/Clipperz/Date.js'></script> |
39 | <script type='text/javascript' src='../../../../js/Clipperz/DOM.js'></script> | 36 | <script type='text/javascript' src='../../../../js/Clipperz/DOM.js'></script> |
40 | <script type='text/javascript' src='../../../../js/Clipperz/ByteArray.js'></script> | 37 | <script type='text/javascript' src='../../../../js/Clipperz/ByteArray.js'></script> |
41 | <script type='text/javascript' src='../../../../js/Clipperz/Logging.js'></script> | 38 | <script type='text/javascript' src='../../../../js/Clipperz/Logging.js'></script> |
42 | <script type='text/javascript' src='../../../../js/Clipperz/Async.js'></script> | 39 | <script type='text/javascript' src='../../../../js/Clipperz/Async.js'></script> |
43 | 40 | ||
44 | <script type='text/javascript' src='../../../../js/Clipperz/Signal.js'></script> | 41 | <script type='text/javascript' src='../../../../js/Clipperz/Signal.js'></script> |
45 | <script type='text/javascript' src='../../../../js/Clipperz/Style.js'></script> | 42 | <script type='text/javascript' src='../../../../js/Clipperz/Style.js'></script> |
46 | <script type='text/javascript' src='../../../../js/Clipperz/Visual.js'></script> | 43 | <script type='text/javascript' src='../../../../js/Clipperz/Visual.js'></script> |
47 | <script type='text/javascript' src='../../../../js/Clipperz/Set.js'></script> | 44 | <script type='text/javascript' src='../../../../js/Clipperz/Set.js'></script> |
48 | <script type='text/javascript' src='../../../../js/Clipperz/KeyValueObjectStore.js'></script> | 45 | <script type='text/javascript' src='../../../../js/Clipperz/KeyValueObjectStore.js'></script> |
49 | 46 | ||
50 | <script type='text/javascript' src='../../../../js/Clipperz/Crypto/Base.js'></script> | 47 | <script type='text/javascript' src='../../../../js/Clipperz/Crypto/Base.js'></script> |
51 | <script type='text/javascript' src='../../../../js/Clipperz/Crypto/BigInt.js'></script> | 48 | <script type='text/javascript' src='../../../../js/Clipperz/Crypto/BigInt.js'></script> |
52 | <script type='text/javascript' src='../../../../js/Clipperz/Crypto/AES.js'></script> | 49 | <script type='text/javascript' src='../../../../js/Clipperz/Crypto/AES.js'></script> |
53 | <script type='text/javascript' src='../../../../js/Clipperz/Crypto/SHA.js'></script> | 50 | <script type='text/javascript' src='../../../../js/Clipperz/Crypto/SHA.js'></script> |
54 | <script type='text/javascript' src='../../../../js/Clipperz/Crypto/PRNG.js'></script> | 51 | <script type='text/javascript' src='../../../../js/Clipperz/Crypto/PRNG.js'></script> |
55 | <script type='text/javascript' src='../../../../js/Clipperz/Crypto/SRP.js'></script> | 52 | <script type='text/javascript' src='../../../../js/Clipperz/Crypto/SRP.js'></script> |
56 | 53 | ||
57 | <script type='text/javascript' src='../../../../js/Clipperz/PM/Toll.js'></script> | 54 | <script type='text/javascript' src='../../../../js/Clipperz/PM/Toll.js'></script> |
58 | <script type='text/javascript' src='../../../../js/Clipperz/PM/Proxy.js'></script> | 55 | <script type='text/javascript' src='../../../../js/Clipperz/PM/Proxy.js'></script> |
59 | <script type='text/javascript' src='../../../../js/Clipperz/PM/Proxy/Proxy.Offline.js'></script> | 56 | <script type='text/javascript' src='../../../../js/Clipperz/PM/Proxy/Proxy.Offline.js'></script> |
60 | <script type='text/javascript' src='../../../../js/Clipperz/PM/Proxy/Proxy.Test.js'></script> | 57 | <script type='text/javascript' src='../../../../js/Clipperz/PM/Proxy/Proxy.Test.js'></script> |
61 | <script type='text/javascript' src='../../../../js/Clipperz/PM/Proxy/Proxy.Offline.DataStore.js'></script> | 58 | <script type='text/javascript' src='../../../../js/Clipperz/PM/Proxy/Proxy.Offline.DataStore.js'></script> |
62 | 59 | ||
63 | <script type='text/javascript' src='../../../../js/Clipperz/PM/Connection.js'></script> | 60 | <script type='text/javascript' src='../../../../js/Clipperz/PM/Connection.js'></script> |
64 | <script type='text/javascript' src='../../../../js/Clipperz/PM/Crypto.js'></script> | 61 | <script type='text/javascript' src='../../../../js/Clipperz/PM/Crypto.js'></script> |
65 | 62 | ||
66 | <script type='text/javascript' src='../../../../js/Clipperz/PM/Strings.js'></script> | 63 | <script type='text/javascript' src='../../../../js/Clipperz/PM/Strings.js'></script> |
67 | <script type='text/javascript' src='../../../../js/Clipperz/PM/Strings/Strings_en-US.js'></script> | 64 | <script type='text/javascript' src='../../../../js/Clipperz/PM/Strings/Strings_en-US.js'></script> |
68 | <script type='text/javascript' src='../../../../js/Clipperz/PM/Date.js'></script> | 65 | <script type='text/javascript' src='../../../../js/Clipperz/PM/Date.js'></script> |
69 | <script type='text/javascript' src='../../../../js/Clipperz/PM/DataModel/EncryptedRemoteObject.js'></script> | 66 | <script type='text/javascript' src='../../../../js/Clipperz/PM/DataModel/EncryptedRemoteObject.js'></script> |
70 | <script type='text/javascript' src='../../../../js/Clipperz/PM/DataModel/Record.js'></script> | 67 | <script type='text/javascript' src='../../../../js/Clipperz/PM/DataModel/Record.js'></script> |
71 | <script type='text/javascript' src='../../../../js/Clipperz/PM/DataModel/Record.Version.js'></script> | 68 | <script type='text/javascript' src='../../../../js/Clipperz/PM/DataModel/Record.Version.js'></script> |
72 | <script type='text/javascript' src='../../../../js/Clipperz/PM/DataModel/Record.Version.Field.js'></script> | 69 | <script type='text/javascript' src='../../../../js/Clipperz/PM/DataModel/Record.Version.Field.js'></script> |
73 | <script type='text/javascript' src='../../../../js/Clipperz/PM/DataModel/DirectLogin.js'></script> | 70 | <script type='text/javascript' src='../../../../js/Clipperz/PM/DataModel/DirectLogin.js'></script> |
74 | <!-- script type='text/javascript' src='../../../../js/Clipperz/PM/DataModel/Record.Field.js'></script --> | 71 | <!-- script type='text/javascript' src='../../../../js/Clipperz/PM/DataModel/Record.Field.js'></script --> |
75 | <script type='text/javascript' src='../../../../js/Clipperz/PM/DataModel/User.js'></script> | 72 | <script type='text/javascript' src='../../../../js/Clipperz/PM/DataModel/User.js'></script> |
76 | <script type='text/javascript' src='../../../../js/Clipperz/PM/DataModel/User.Header.Legacy.js'></script> | 73 | <script type='text/javascript' src='../../../../js/Clipperz/PM/DataModel/User.Header.Legacy.js'></script> |
77 | <script type='text/javascript' src='../../../../js/Clipperz/PM/DataModel/User.Header.RecordIndex.js'></script> | 74 | <script type='text/javascript' src='../../../../js/Clipperz/PM/DataModel/User.Header.RecordIndex.js'></script> |
78 | 75 | ||
79 | <script type='text/javascript' src='../../../../js/Clipperz/PM/UI/Common/Components/BaseComponent.js'></script> | 76 | <script type='text/javascript' src='../../../../js/Clipperz/PM/UI/Common/Components/BaseComponent.js'></script> |
80 | <script type='text/javascript' src='../../../../js/Clipperz/PM/UI/Common/Components/ComponentSlot.js'></script> | 77 | <script type='text/javascript' src='../../../../js/Clipperz/PM/UI/Common/Components/ComponentSlot.js'></script> |
81 | <script type='text/javascript' src='../../../../js/Clipperz/PM/UI/Common/Components/PasswordEntropyDisplay.js'></script> | 78 | <script type='text/javascript' src='../../../../js/Clipperz/PM/UI/Common/Components/PasswordEntropyDisplay.js'></script> |
82 | <script type='text/javascript' src='../../../../js/Clipperz/PM/UI/Common/Components/ProgressBar.js'></script> | 79 | <script type='text/javascript' src='../../../../js/Clipperz/PM/UI/Common/Components/ProgressBar.js'></script> |
83 | <script type='text/javascript' src='../../../../js/Clipperz/PM/UI/Common/Components/SimpleMessagePanel.js'></script> | 80 | <script type='text/javascript' src='../../../../js/Clipperz/PM/UI/Common/Components/SimpleMessagePanel.js'></script> |
84 | <script type='text/javascript' src='../../../../js/Clipperz/PM/UI/Common/Components/TabPanelComponent.js'></script> | 81 | <script type='text/javascript' src='../../../../js/Clipperz/PM/UI/Common/Components/TabPanelComponent.js'></script> |
85 | <script type='text/javascript' src='../../../../js/Clipperz/PM/UI/Common/Components/Tooltip.js'></script> | 82 | <script type='text/javascript' src='../../../../js/Clipperz/PM/UI/Common/Components/Tooltip.js'></script> |
86 | <script type='text/javascript' src='../../../../js/Clipperz/PM/UI/Common/Components/TranslatorWidget.js'></script> | 83 | <script type='text/javascript' src='../../../../js/Clipperz/PM/UI/Common/Components/TranslatorWidget.js'></script> |
87 | 84 | ||
88 | <script type='text/javascript' src='../../../../js/Clipperz/PM/UI/Common/Controllers/ProgressBarController.js'></script> | 85 | <script type='text/javascript' src='../../../../js/Clipperz/PM/UI/Common/Controllers/ProgressBarController.js'></script> |
89 | 86 | ||
90 | <script type='text/javascript' src='./progressBar_test.js'></script> | 87 | <script type='text/javascript' src='./progressBar_test.js'></script> |
91 | <script> | 88 | <script> |
92 | Clipperz_IEisBroken = false; | 89 | Clipperz_IEisBroken = false; |
93 | </script> | 90 | </script> |
94 | 91 | ||
95 | <!--[if IE]><script> | 92 | <!--[if IE]><script> |
96 | Clipperz_IEisBroken = true; | 93 | Clipperz_IEisBroken = true; |
97 | </script><![endif]--> | 94 | </script><![endif]--> |
98 | 95 | ||
99 | <link rel="stylesheet" type="text/css" href="../../../../css/clipperz/clipperz.css" /> | 96 | <link rel="stylesheet" type="text/css" href="../../../../css/clipperz/clipperz.css" /> |
100 | <link rel="stylesheet" type="text/css" href="../../../../css/clipperz/compact.css" /> | 97 | <link rel="stylesheet" type="text/css" href="../../../../css/clipperz/compact.css" /> |
101 | <link rel="stylesheet" type="text/css" href="../../../../css/clipperz/ytheme-clipperz.css" /> | 98 | <link rel="stylesheet" type="text/css" href="../../../../css/clipperz/ytheme-clipperz.css" /> |
102 | 99 | ||
103 | </head> | 100 | </head> |
104 | <body> | 101 | <body> |
105 | 102 | ||
106 | <table border="0" cellpadding="50"><tr><td> | 103 | <table border="0" cellpadding="50"><tr><td> |
107 | <div id="progressBar_5"></div><hr> | 104 | <div id="progressBar_5"></div><hr> |
108 | <div id="progressBar_10"></div><hr> | 105 | <div id="progressBar_10"></div><hr> |
109 | <div id="progressBar_15"></div><hr> | 106 | <div id="progressBar_15"></div><hr> |
110 | <div id="progressBar_20"></div><hr> | 107 | <div id="progressBar_20"></div><hr> |
111 | <div id="progressBar_50"></div><hr> | 108 | <div id="progressBar_50"></div><hr> |
112 | </td><td> | 109 | </td><td> |
113 | <div id="progressBar_80"></div><hr> | 110 | <div id="progressBar_80"></div><hr> |
114 | <div id="progressBar_85"></div><hr> | 111 | <div id="progressBar_85"></div><hr> |
115 | <div id="progressBar_90"></div><hr> | 112 | <div id="progressBar_90"></div><hr> |
116 | <div id="progressBar_95"></div><hr> | 113 | <div id="progressBar_95"></div><hr> |
117 | <div id="progressBar_100"></div><hr> | 114 | <div id="progressBar_100"></div><hr> |
118 | </td></tr>></table> | 115 | </td></tr>></table> |
119 | </body> | 116 | </body> |
120 | </html> | 117 | </html> |
diff --git a/frontend/gamma/tests/tests/Components/ProgressBar/progressBar_test.js b/frontend/gamma/tests/tests/Components/ProgressBar/progressBar_test.js index 822081a..8e2ce51 100644 --- a/frontend/gamma/tests/tests/Components/ProgressBar/progressBar_test.js +++ b/frontend/gamma/tests/tests/Components/ProgressBar/progressBar_test.js | |||
@@ -1,120 +1,117 @@ | |||
1 | /* | 1 | /* |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | */ | 24 | */ |
28 | 25 | ||
29 | Clipperz.Base.module('Clipperz.Tests.ProgressBar'); | 26 | Clipperz.Base.module('Clipperz.Tests.ProgressBar'); |
30 | 27 | ||
31 | Clipperz.PM.Strings.Languages.initSetup(); | 28 | Clipperz.PM.Strings.Languages.initSetup(); |
32 | 29 | ||
33 | Clipperz.Tests.ProgressBar.Tester = function(args) { | 30 | Clipperz.Tests.ProgressBar.Tester = function(args) { |
34 | args = args || {}; | 31 | args = args || {}; |
35 | 32 | ||
36 | Clipperz.Tests.ProgressBar.Tester.superclass.constructor.call(this, args); | 33 | Clipperz.Tests.ProgressBar.Tester.superclass.constructor.call(this, args); |
37 | 34 | ||
38 | return this; | 35 | return this; |
39 | }; | 36 | }; |
40 | 37 | ||
41 | Clipperz.Base.extend(Clipperz.Tests.ProgressBar.Tester, Object, { | 38 | Clipperz.Base.extend(Clipperz.Tests.ProgressBar.Tester, Object, { |
42 | 39 | ||
43 | 'toString': function() { | 40 | 'toString': function() { |
44 | return "Clipperz.Tests.ProgressBar.Tester"; | 41 | return "Clipperz.Tests.ProgressBar.Tester"; |
45 | }, | 42 | }, |
46 | 43 | ||
47 | //------------------------------------------------------------------------- | 44 | //------------------------------------------------------------------------- |
48 | 45 | ||
49 | 'run': function () { | 46 | 'run': function () { |
50 | var progressBar; | 47 | var progressBar; |
51 | /* | 48 | /* |
52 | <div id="progressBar_5"></div><hr> | 49 | <div id="progressBar_5"></div><hr> |
53 | <div id="progressBar_10"></div><hr> | 50 | <div id="progressBar_10"></div><hr> |
54 | <div id="progressBar_15"></div><hr> | 51 | <div id="progressBar_15"></div><hr> |
55 | <div id="progressBar_20"></div><hr> | 52 | <div id="progressBar_20"></div><hr> |
56 | <div id="progressBar_50"></div><hr> | 53 | <div id="progressBar_50"></div><hr> |
57 | <div id="progressBar_80"></div><hr> | 54 | <div id="progressBar_80"></div><hr> |
58 | <div id="progressBar_85"></div><hr> | 55 | <div id="progressBar_85"></div><hr> |
59 | <div id="progressBar_90"></div><hr> | 56 | <div id="progressBar_90"></div><hr> |
60 | <div id="progressBar_95"></div><hr> | 57 | <div id="progressBar_95"></div><hr> |
61 | <div id="progressBar_100"></div><hr> | 58 | <div id="progressBar_100"></div><hr> |
62 | */ | 59 | */ |
63 | 60 | ||
64 | progressBar = new Clipperz.PM.UI.Common.Components.ProgressBar({'element':MochiKit.DOM.getElement('progressBar_5')}); | 61 | progressBar = new Clipperz.PM.UI.Common.Components.ProgressBar({'element':MochiKit.DOM.getElement('progressBar_5')}); |
65 | progressBar.updateProgressHandler('5'); | 62 | progressBar.updateProgressHandler('5'); |
66 | 63 | ||
67 | progressBar = new Clipperz.PM.UI.Common.Components.ProgressBar({'element':MochiKit.DOM.getElement('progressBar_10')}); | 64 | progressBar = new Clipperz.PM.UI.Common.Components.ProgressBar({'element':MochiKit.DOM.getElement('progressBar_10')}); |
68 | progressBar.updateProgressHandler('10'); | 65 | progressBar.updateProgressHandler('10'); |
69 | 66 | ||
70 | progressBar = new Clipperz.PM.UI.Common.Components.ProgressBar({'element':MochiKit.DOM.getElement('progressBar_15')}); | 67 | progressBar = new Clipperz.PM.UI.Common.Components.ProgressBar({'element':MochiKit.DOM.getElement('progressBar_15')}); |
71 | progressBar.updateProgressHandler('15'); | 68 | progressBar.updateProgressHandler('15'); |
72 | 69 | ||
73 | progressBar = new Clipperz.PM.UI.Common.Components.ProgressBar({'element':MochiKit.DOM.getElement('progressBar_20')}); | 70 | progressBar = new Clipperz.PM.UI.Common.Components.ProgressBar({'element':MochiKit.DOM.getElement('progressBar_20')}); |
74 | progressBar.updateProgressHandler('20'); | 71 | progressBar.updateProgressHandler('20'); |
75 | 72 | ||
76 | progressBar = new Clipperz.PM.UI.Common.Components.ProgressBar({'element':MochiKit.DOM.getElement('progressBar_50')}); | 73 | progressBar = new Clipperz.PM.UI.Common.Components.ProgressBar({'element':MochiKit.DOM.getElement('progressBar_50')}); |
77 | progressBar.updateProgressHandler('50'); | 74 | progressBar.updateProgressHandler('50'); |
78 | 75 | ||
79 | progressBar = new Clipperz.PM.UI.Common.Components.ProgressBar({'element':MochiKit.DOM.getElement('progressBar_80')}); | 76 | progressBar = new Clipperz.PM.UI.Common.Components.ProgressBar({'element':MochiKit.DOM.getElement('progressBar_80')}); |
80 | progressBar.updateProgressHandler('80'); | 77 | progressBar.updateProgressHandler('80'); |
81 | 78 | ||
82 | progressBar = new Clipperz.PM.UI.Common.Components.ProgressBar({'element':MochiKit.DOM.getElement('progressBar_85')}); | 79 | progressBar = new Clipperz.PM.UI.Common.Components.ProgressBar({'element':MochiKit.DOM.getElement('progressBar_85')}); |
83 | progressBar.updateProgressHandler('85'); | 80 | progressBar.updateProgressHandler('85'); |
84 | 81 | ||
85 | progressBar = new Clipperz.PM.UI.Common.Components.ProgressBar({'element':MochiKit.DOM.getElement('progressBar_90')}); | 82 | progressBar = new Clipperz.PM.UI.Common.Components.ProgressBar({'element':MochiKit.DOM.getElement('progressBar_90')}); |
86 | progressBar.updateProgressHandler('90'); | 83 | progressBar.updateProgressHandler('90'); |
87 | 84 | ||
88 | progressBar = new Clipperz.PM.UI.Common.Components.ProgressBar({'element':MochiKit.DOM.getElement('progressBar_95')}); | 85 | progressBar = new Clipperz.PM.UI.Common.Components.ProgressBar({'element':MochiKit.DOM.getElement('progressBar_95')}); |
89 | progressBar.updateProgressHandler('95'); | 86 | progressBar.updateProgressHandler('95'); |
90 | 87 | ||
91 | progressBar = new Clipperz.PM.UI.Common.Components.ProgressBar({'element':MochiKit.DOM.getElement('progressBar_100')}); | 88 | progressBar = new Clipperz.PM.UI.Common.Components.ProgressBar({'element':MochiKit.DOM.getElement('progressBar_100')}); |
92 | progressBar.updateProgressHandler('100'); | 89 | progressBar.updateProgressHandler('100'); |
93 | }, | 90 | }, |
94 | 91 | ||
95 | //========================================================================= | 92 | //========================================================================= |
96 | __syntaxFix__: "syntax fix" | 93 | __syntaxFix__: "syntax fix" |
97 | }); | 94 | }); |
98 | 95 | ||
99 | 96 | ||
100 | 97 | ||
101 | 98 | ||
102 | 99 | ||
103 | 100 | ||
104 | 101 | ||
105 | 102 | ||
106 | 103 | ||
107 | 104 | ||
108 | 105 | ||
109 | 106 | ||
110 | 107 | ||
111 | 108 | ||
112 | 109 | ||
113 | 110 | ||
114 | 111 | ||
115 | 112 | ||
116 | 113 | ||
117 | 114 | ||
118 | init = function () { | 115 | init = function () { |
119 | vartester; | 116 | vartester; |
120 | 117 | ||
diff --git a/frontend/gamma/tests/tests/Components/SimpleMessagePanel/index.html b/frontend/gamma/tests/tests/Components/SimpleMessagePanel/index.html index ac1585f..f09d9f6 100644 --- a/frontend/gamma/tests/tests/Components/SimpleMessagePanel/index.html +++ b/frontend/gamma/tests/tests/Components/SimpleMessagePanel/index.html | |||
@@ -1,115 +1,112 @@ | |||
1 | <!-- | 1 | <!-- |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | --> | 24 | --> |
28 | 25 | ||
29 | <html> | 26 | <html> |
30 | <head> | 27 | <head> |
31 | <title>Simple Message Panel - test</title> | 28 | <title>Simple Message Panel - test</title> |
32 | <script type="text/javascript" src="../../../../js/MochiKit/MochiKit.js"></script> | 29 | <script type="text/javascript" src="../../../../js/MochiKit/MochiKit.js"></script> |
33 | <script type='text/javascript' src='../../../../js/JSON/json2.js'></script> | 30 | <script type='text/javascript' src='../../../../js/JSON/json2.js'></script> |
34 | 31 | ||
35 | <script type='text/javascript' src='../../../../js/Clipperz/YUI/Utils.js'></script> | 32 | <script type='text/javascript' src='../../../../js/Clipperz/YUI/Utils.js'></script> |
36 | <script type='text/javascript' src='../../../../js/Clipperz/YUI/DomHelper.js'></script> | 33 | <script type='text/javascript' src='../../../../js/Clipperz/YUI/DomHelper.js'></script> |
37 | <script type='text/javascript' src='../../../../js/Clipperz/Base.js'></script> | 34 | <script type='text/javascript' src='../../../../js/Clipperz/Base.js'></script> |
38 | <script type='text/javascript' src='../../../../js/Clipperz/Date.js'></script> | 35 | <script type='text/javascript' src='../../../../js/Clipperz/Date.js'></script> |
39 | <script type='text/javascript' src='../../../../js/Clipperz/DOM.js'></script> | 36 | <script type='text/javascript' src='../../../../js/Clipperz/DOM.js'></script> |
40 | <script type='text/javascript' src='../../../../js/Clipperz/ByteArray.js'></script> | 37 | <script type='text/javascript' src='../../../../js/Clipperz/ByteArray.js'></script> |
41 | <script type='text/javascript' src='../../../../js/Clipperz/Logging.js'></script> | 38 | <script type='text/javascript' src='../../../../js/Clipperz/Logging.js'></script> |
42 | <script type='text/javascript' src='../../../../js/Clipperz/Async.js'></script> | 39 | <script type='text/javascript' src='../../../../js/Clipperz/Async.js'></script> |
43 | 40 | ||
44 | <script type='text/javascript' src='../../../../js/Clipperz/Signal.js'></script> | 41 | <script type='text/javascript' src='../../../../js/Clipperz/Signal.js'></script> |
45 | <script type='text/javascript' src='../../../../js/Clipperz/Style.js'></script> | 42 | <script type='text/javascript' src='../../../../js/Clipperz/Style.js'></script> |
46 | <script type='text/javascript' src='../../../../js/Clipperz/Visual.js'></script> | 43 | <script type='text/javascript' src='../../../../js/Clipperz/Visual.js'></script> |
47 | <script type='text/javascript' src='../../../../js/Clipperz/Set.js'></script> | 44 | <script type='text/javascript' src='../../../../js/Clipperz/Set.js'></script> |
48 | <script type='text/javascript' src='../../../../js/Clipperz/KeyValueObjectStore.js'></script> | 45 | <script type='text/javascript' src='../../../../js/Clipperz/KeyValueObjectStore.js'></script> |
49 | 46 | ||
50 | <script type='text/javascript' src='../../../../js/Clipperz/Crypto/Base.js'></script> | 47 | <script type='text/javascript' src='../../../../js/Clipperz/Crypto/Base.js'></script> |
51 | <script type='text/javascript' src='../../../../js/Clipperz/Crypto/BigInt.js'></script> | 48 | <script type='text/javascript' src='../../../../js/Clipperz/Crypto/BigInt.js'></script> |
52 | <script type='text/javascript' src='../../../../js/Clipperz/Crypto/AES.js'></script> | 49 | <script type='text/javascript' src='../../../../js/Clipperz/Crypto/AES.js'></script> |
53 | <script type='text/javascript' src='../../../../js/Clipperz/Crypto/SHA.js'></script> | 50 | <script type='text/javascript' src='../../../../js/Clipperz/Crypto/SHA.js'></script> |
54 | <script type='text/javascript' src='../../../../js/Clipperz/Crypto/PRNG.js'></script> | 51 | <script type='text/javascript' src='../../../../js/Clipperz/Crypto/PRNG.js'></script> |
55 | <script type='text/javascript' src='../../../../js/Clipperz/Crypto/SRP.js'></script> | 52 | <script type='text/javascript' src='../../../../js/Clipperz/Crypto/SRP.js'></script> |
56 | 53 | ||
57 | <script type='text/javascript' src='../../../../js/Clipperz/PM/Toll.js'></script> | 54 | <script type='text/javascript' src='../../../../js/Clipperz/PM/Toll.js'></script> |
58 | <script type='text/javascript' src='../../../../js/Clipperz/PM/Proxy.js'></script> | 55 | <script type='text/javascript' src='../../../../js/Clipperz/PM/Proxy.js'></script> |
59 | <script type='text/javascript' src='../../../../js/Clipperz/PM/Proxy/Proxy.Offline.js'></script> | 56 | <script type='text/javascript' src='../../../../js/Clipperz/PM/Proxy/Proxy.Offline.js'></script> |
60 | <script type='text/javascript' src='../../../../js/Clipperz/PM/Proxy/Proxy.Test.js'></script> | 57 | <script type='text/javascript' src='../../../../js/Clipperz/PM/Proxy/Proxy.Test.js'></script> |
61 | <script type='text/javascript' src='../../../../js/Clipperz/PM/Proxy/Proxy.Offline.DataStore.js'></script> | 58 | <script type='text/javascript' src='../../../../js/Clipperz/PM/Proxy/Proxy.Offline.DataStore.js'></script> |
62 | 59 | ||
63 | <script type='text/javascript' src='../../../../js/Clipperz/PM/Connection.js'></script> | 60 | <script type='text/javascript' src='../../../../js/Clipperz/PM/Connection.js'></script> |
64 | <script type='text/javascript' src='../../../../js/Clipperz/PM/Crypto.js'></script> | 61 | <script type='text/javascript' src='../../../../js/Clipperz/PM/Crypto.js'></script> |
65 | 62 | ||
66 | <script type='text/javascript' src='../../../../js/Clipperz/PM/Strings.js'></script> | 63 | <script type='text/javascript' src='../../../../js/Clipperz/PM/Strings.js'></script> |
67 | <script type='text/javascript' src='../../../../js/Clipperz/PM/Strings/Strings_en-US.js'></script> | 64 | <script type='text/javascript' src='../../../../js/Clipperz/PM/Strings/Strings_en-US.js'></script> |
68 | <script type='text/javascript' src='../../../../js/Clipperz/PM/Date.js'></script> | 65 | <script type='text/javascript' src='../../../../js/Clipperz/PM/Date.js'></script> |
69 | <script type='text/javascript' src='../../../../js/Clipperz/PM/DataModel/EncryptedRemoteObject.js'></script> | 66 | <script type='text/javascript' src='../../../../js/Clipperz/PM/DataModel/EncryptedRemoteObject.js'></script> |
70 | <script type='text/javascript' src='../../../../js/Clipperz/PM/DataModel/Record.js'></script> | 67 | <script type='text/javascript' src='../../../../js/Clipperz/PM/DataModel/Record.js'></script> |
71 | <script type='text/javascript' src='../../../../js/Clipperz/PM/DataModel/Record.Version.js'></script> | 68 | <script type='text/javascript' src='../../../../js/Clipperz/PM/DataModel/Record.Version.js'></script> |
72 | <script type='text/javascript' src='../../../../js/Clipperz/PM/DataModel/Record.Version.Field.js'></script> | 69 | <script type='text/javascript' src='../../../../js/Clipperz/PM/DataModel/Record.Version.Field.js'></script> |
73 | <script type='text/javascript' src='../../../../js/Clipperz/PM/DataModel/DirectLogin.js'></script> | 70 | <script type='text/javascript' src='../../../../js/Clipperz/PM/DataModel/DirectLogin.js'></script> |
74 | <!-- script type='text/javascript' src='../../../../js/Clipperz/PM/DataModel/Record.Field.js'></script --> | 71 | <!-- script type='text/javascript' src='../../../../js/Clipperz/PM/DataModel/Record.Field.js'></script --> |
75 | <script type='text/javascript' src='../../../../js/Clipperz/PM/DataModel/User.js'></script> | 72 | <script type='text/javascript' src='../../../../js/Clipperz/PM/DataModel/User.js'></script> |
76 | <script type='text/javascript' src='../../../../js/Clipperz/PM/DataModel/User.Header.Legacy.js'></script> | 73 | <script type='text/javascript' src='../../../../js/Clipperz/PM/DataModel/User.Header.Legacy.js'></script> |
77 | <script type='text/javascript' src='../../../../js/Clipperz/PM/DataModel/User.Header.RecordIndex.js'></script> | 74 | <script type='text/javascript' src='../../../../js/Clipperz/PM/DataModel/User.Header.RecordIndex.js'></script> |
78 | 75 | ||
79 | <script type='text/javascript' src='../../../../js/Clipperz/PM/UI/Common/Components/BaseComponent.js'></script> | 76 | <script type='text/javascript' src='../../../../js/Clipperz/PM/UI/Common/Components/BaseComponent.js'></script> |
80 | <script type='text/javascript' src='../../../../js/Clipperz/PM/UI/Common/Components/Button.js'></script> | 77 | <script type='text/javascript' src='../../../../js/Clipperz/PM/UI/Common/Components/Button.js'></script> |
81 | <script type='text/javascript' src='../../../../js/Clipperz/PM/UI/Common/Components/ComponentSlot.js'></script> | 78 | <script type='text/javascript' src='../../../../js/Clipperz/PM/UI/Common/Components/ComponentSlot.js'></script> |
82 | <script type='text/javascript' src='../../../../js/Clipperz/PM/UI/Common/Components/PasswordEntropyDisplay.js'></script> | 79 | <script type='text/javascript' src='../../../../js/Clipperz/PM/UI/Common/Components/PasswordEntropyDisplay.js'></script> |
83 | <script type='text/javascript' src='../../../../js/Clipperz/PM/UI/Common/Components/ProgressBar.js'></script> | 80 | <script type='text/javascript' src='../../../../js/Clipperz/PM/UI/Common/Components/ProgressBar.js'></script> |
84 | <script type='text/javascript' src='../../../../js/Clipperz/PM/UI/Common/Components/SimpleMessagePanel.js'></script> | 81 | <script type='text/javascript' src='../../../../js/Clipperz/PM/UI/Common/Components/SimpleMessagePanel.js'></script> |
85 | <script type='text/javascript' src='../../../../js/Clipperz/PM/UI/Common/Components/TabPanelComponent.js'></script> | 82 | <script type='text/javascript' src='../../../../js/Clipperz/PM/UI/Common/Components/TabPanelComponent.js'></script> |
86 | <script type='text/javascript' src='../../../../js/Clipperz/PM/UI/Common/Components/Tooltip.js'></script> | 83 | <script type='text/javascript' src='../../../../js/Clipperz/PM/UI/Common/Components/Tooltip.js'></script> |
87 | <script type='text/javascript' src='../../../../js/Clipperz/PM/UI/Common/Components/TranslatorWidget.js'></script> | 84 | <script type='text/javascript' src='../../../../js/Clipperz/PM/UI/Common/Components/TranslatorWidget.js'></script> |
88 | 85 | ||
89 | <script type='text/javascript' src='../../../../js/Clipperz/PM/UI/Web/Components/CardDialogComponent.js'></script> | 86 | <script type='text/javascript' src='../../../../js/Clipperz/PM/UI/Web/Components/CardDialogComponent.js'></script> |
90 | <script type='text/javascript' src='../../../../js/Clipperz/PM/UI/Web/Components/CardDialogRecordFieldComponent.js'></script> | 87 | <script type='text/javascript' src='../../../../js/Clipperz/PM/UI/Web/Components/CardDialogRecordFieldComponent.js'></script> |
91 | 88 | ||
92 | <script type='text/javascript' src='../../../../js/Clipperz/PM/UI/Common/Controllers/TabPanelController.js'></script> | 89 | <script type='text/javascript' src='../../../../js/Clipperz/PM/UI/Common/Controllers/TabPanelController.js'></script> |
93 | 90 | ||
94 | <script type='text/javascript' src='../../../../js/Clipperz/PM/UI/Web/Controllers/CardDialogController.js'></script> | 91 | <script type='text/javascript' src='../../../../js/Clipperz/PM/UI/Web/Controllers/CardDialogController.js'></script> |
95 | 92 | ||
96 | <script type='text/javascript' src='./simpleMessagePanel_test.js'></script> | 93 | <script type='text/javascript' src='./simpleMessagePanel_test.js'></script> |
97 | <script> | 94 | <script> |
98 | Clipperz_IEisBroken = false; | 95 | Clipperz_IEisBroken = false; |
99 | </script> | 96 | </script> |
100 | 97 | ||
101 | <!--[if IE]><script> | 98 | <!--[if IE]><script> |
102 | Clipperz_IEisBroken = true; | 99 | Clipperz_IEisBroken = true; |
103 | </script><![endif]--> | 100 | </script><![endif]--> |
104 | 101 | ||
105 | <link rel="stylesheet" type="text/css" href="../../../../css/clipperz/clipperz.css" /> | 102 | <link rel="stylesheet" type="text/css" href="../../../../css/clipperz/clipperz.css" /> |
106 | <link rel="stylesheet" type="text/css" href="../../../../css/clipperz/compact.css" /> | 103 | <link rel="stylesheet" type="text/css" href="../../../../css/clipperz/compact.css" /> |
107 | <link rel="stylesheet" type="text/css" href="../../../../css/clipperz/ytheme-clipperz.css" /> | 104 | <link rel="stylesheet" type="text/css" href="../../../../css/clipperz/ytheme-clipperz.css" /> |
108 | 105 | ||
109 | </head> | 106 | </head> |
110 | <body> | 107 | <body> |
111 | 108 | ||
112 | <div id="tableWrapper"></div> | 109 | <div id="tableWrapper"></div> |
113 | 110 | ||
114 | </body> | 111 | </body> |
115 | </html> | 112 | </html> |
diff --git a/frontend/gamma/tests/tests/Components/SimpleMessagePanel/simpleMessagePanel_test.js b/frontend/gamma/tests/tests/Components/SimpleMessagePanel/simpleMessagePanel_test.js index 85128d6..8513909 100644 --- a/frontend/gamma/tests/tests/Components/SimpleMessagePanel/simpleMessagePanel_test.js +++ b/frontend/gamma/tests/tests/Components/SimpleMessagePanel/simpleMessagePanel_test.js | |||
@@ -1,95 +1,92 @@ | |||
1 | /* | 1 | /* |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | */ | 24 | */ |
28 | 25 | ||
29 | Clipperz.Base.module('Clipperz.Tests.SimpleMessagePanel'); | 26 | Clipperz.Base.module('Clipperz.Tests.SimpleMessagePanel'); |
30 | 27 | ||
31 | Clipperz.Crypto.PRNG.defaultRandomGenerator().fastEntropyAccumulationForTestingPurpose(); | 28 | Clipperz.Crypto.PRNG.defaultRandomGenerator().fastEntropyAccumulationForTestingPurpose(); |
32 | Clipperz.PM.Strings.Languages.initSetup(); | 29 | Clipperz.PM.Strings.Languages.initSetup(); |
33 | 30 | ||
34 | Clipperz.Tests.SimpleMessagePanel.Tester = function(args) { | 31 | Clipperz.Tests.SimpleMessagePanel.Tester = function(args) { |
35 | args = args || {}; | 32 | args = args || {}; |
36 | 33 | ||
37 | Clipperz.Tests.SimpleMessagePanel.Tester.superclass.constructor.call(this, args); | 34 | Clipperz.Tests.SimpleMessagePanel.Tester.superclass.constructor.call(this, args); |
38 | //this._user = new Clipperz.PM.DataModel.User({username:'test', getPassphraseFunction:function () { return 'test';}}); | 35 | //this._user = new Clipperz.PM.DataModel.User({username:'test', getPassphraseFunction:function () { return 'test';}}); |
39 | 36 | ||
40 | return this; | 37 | return this; |
41 | }; | 38 | }; |
42 | 39 | ||
43 | Clipperz.Base.extend(Clipperz.Tests.SimpleMessagePanel.Tester, Object, { | 40 | Clipperz.Base.extend(Clipperz.Tests.SimpleMessagePanel.Tester, Object, { |
44 | 41 | ||
45 | 'toString': function() { | 42 | 'toString': function() { |
46 | return "Clipperz.Tests.SimpleMessagePanel.Tester"; | 43 | return "Clipperz.Tests.SimpleMessagePanel.Tester"; |
47 | }, | 44 | }, |
48 | 45 | ||
49 | //------------------------------------------------------------------------- | 46 | //------------------------------------------------------------------------- |
50 | /* | 47 | /* |
51 | 'user': function () { | 48 | 'user': function () { |
52 | return this._user; | 49 | return this._user; |
53 | }, | 50 | }, |
54 | */ | 51 | */ |
55 | //------------------------------------------------------------------------- | 52 | //------------------------------------------------------------------------- |
56 | 53 | ||
57 | 'run': function () { | 54 | 'run': function () { |
58 | var deferredResult; | 55 | var deferredResult; |
59 | var confirmationDialog; | 56 | var confirmationDialog; |
60 | 57 | ||
61 | confirmationDialog = new Clipperz.PM.UI.Common.Components.SimpleMessagePanel({ | 58 | confirmationDialog = new Clipperz.PM.UI.Common.Components.SimpleMessagePanel({ |
62 | title:"Alert", | 59 | title:"Alert", |
63 | text:"Should lost pending changes? But I must explain to you how all this mistaken idea of denouncing pleasure and praising pain was born and I will give you a complete account of the system, and expound the actual teachings of the great explorer of the truth, the master-builder of human happiness", | 60 | text:"Should lost pending changes? But I must explain to you how all this mistaken idea of denouncing pleasure and praising pain was born and I will give you a complete account of the system, and expound the actual teachings of the great explorer of the truth, the master-builder of human happiness", |
64 | type:'ALERT', | 61 | type:'ALERT', |
65 | buttons: [ | 62 | buttons: [ |
66 | {text:"Cancel",result:'CANCEL', isDefault:true}, | 63 | {text:"Cancel",result:'CANCEL', isDefault:true}, |
67 | {text:"Ok", result:'OK'} | 64 | {text:"Ok", result:'OK'} |
68 | ] | 65 | ] |
69 | }); | 66 | }); |
70 | 67 | ||
71 | deferredResult = new Clipperz.Async.Deferred("CardDialogComponent.askConfirmationForLoosingPendingChanges", {trace:false}); | 68 | deferredResult = new Clipperz.Async.Deferred("CardDialogComponent.askConfirmationForLoosingPendingChanges", {trace:false}); |
72 | deferredResult.addMethod(confirmationDialog, 'deferredShow', { | 69 | deferredResult.addMethod(confirmationDialog, 'deferredShow', { |
73 | 'openFromElement': null, | 70 | 'openFromElement': null, |
74 | 'onOkCloseToElement': null, //this.getElement('cancelButton'), | 71 | 'onOkCloseToElement': null, //this.getElement('cancelButton'), |
75 | 'onCancelCloseToElement':null | 72 | 'onCancelCloseToElement':null |
76 | }); | 73 | }); |
77 | deferredResult.callback(); | 74 | deferredResult.callback(); |
78 | 75 | ||
79 | return deferredResult; | 76 | return deferredResult; |
80 | }, | 77 | }, |
81 | 78 | ||
82 | //========================================================================= | 79 | //========================================================================= |
83 | __syntaxFix__: "syntax fix" | 80 | __syntaxFix__: "syntax fix" |
84 | }); | 81 | }); |
85 | 82 | ||
86 | 83 | ||
87 | 84 | ||
88 | init = function () { | 85 | init = function () { |
89 | vartester; | 86 | vartester; |
90 | 87 | ||
91 | tester = new Clipperz.Tests.SimpleMessagePanel.Tester(); | 88 | tester = new Clipperz.Tests.SimpleMessagePanel.Tester(); |
92 | tester.run(); | 89 | tester.run(); |
93 | }; | 90 | }; |
94 | 91 | ||
95 | MochiKit.DOM.addLoadEvent(init); | 92 | MochiKit.DOM.addLoadEvent(init); |
diff --git a/frontend/gamma/tests/tests/Components/Tooltips/index.html b/frontend/gamma/tests/tests/Components/Tooltips/index.html index 471eca9..02c6c34 100644 --- a/frontend/gamma/tests/tests/Components/Tooltips/index.html +++ b/frontend/gamma/tests/tests/Components/Tooltips/index.html | |||
@@ -1,120 +1,117 @@ | |||
1 | <!-- | 1 | <!-- |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | --> | 24 | --> |
28 | 25 | ||
29 | <html> | 26 | <html> |
30 | <head> | 27 | <head> |
31 | <title>TOOLTIPS - test</title> | 28 | <title>TOOLTIPS - test</title> |
32 | <script type="text/javascript" src="../../../../js/MochiKit/MochiKit.js"></script> | 29 | <script type="text/javascript" src="../../../../js/MochiKit/MochiKit.js"></script> |
33 | <script type='text/javascript' src='../../../../js/JSON/json2.js'></script> | 30 | <script type='text/javascript' src='../../../../js/JSON/json2.js'></script> |
34 | 31 | ||
35 | <script type='text/javascript' src='../../../../js/Clipperz/YUI/Utils.js'></script> | 32 | <script type='text/javascript' src='../../../../js/Clipperz/YUI/Utils.js'></script> |
36 | <script type='text/javascript' src='../../../../js/Clipperz/YUI/DomHelper.js'></script> | 33 | <script type='text/javascript' src='../../../../js/Clipperz/YUI/DomHelper.js'></script> |
37 | <script type='text/javascript' src='../../../../js/Clipperz/Base.js'></script> | 34 | <script type='text/javascript' src='../../../../js/Clipperz/Base.js'></script> |
38 | <script type='text/javascript' src='../../../../js/Clipperz/Date.js'></script> | 35 | <script type='text/javascript' src='../../../../js/Clipperz/Date.js'></script> |
39 | <script type='text/javascript' src='../../../../js/Clipperz/DOM.js'></script> | 36 | <script type='text/javascript' src='../../../../js/Clipperz/DOM.js'></script> |
40 | <script type='text/javascript' src='../../../../js/Clipperz/ByteArray.js'></script> | 37 | <script type='text/javascript' src='../../../../js/Clipperz/ByteArray.js'></script> |
41 | <script type='text/javascript' src='../../../../js/Clipperz/Logging.js'></script> | 38 | <script type='text/javascript' src='../../../../js/Clipperz/Logging.js'></script> |
42 | <script type='text/javascript' src='../../../../js/Clipperz/Async.js'></script> | 39 | <script type='text/javascript' src='../../../../js/Clipperz/Async.js'></script> |
43 | 40 | ||
44 | <script type='text/javascript' src='../../../../js/Clipperz/Signal.js'></script> | 41 | <script type='text/javascript' src='../../../../js/Clipperz/Signal.js'></script> |
45 | <script type='text/javascript' src='../../../../js/Clipperz/Style.js'></script> | 42 | <script type='text/javascript' src='../../../../js/Clipperz/Style.js'></script> |
46 | <script type='text/javascript' src='../../../../js/Clipperz/Visual.js'></script> | 43 | <script type='text/javascript' src='../../../../js/Clipperz/Visual.js'></script> |
47 | <script type='text/javascript' src='../../../../js/Clipperz/Set.js'></script> | 44 | <script type='text/javascript' src='../../../../js/Clipperz/Set.js'></script> |
48 | <script type='text/javascript' src='../../../../js/Clipperz/KeyValueObjectStore.js'></script> | 45 | <script type='text/javascript' src='../../../../js/Clipperz/KeyValueObjectStore.js'></script> |
49 | 46 | ||
50 | <script type='text/javascript' src='../../../../js/Clipperz/Crypto/Base.js'></script> | 47 | <script type='text/javascript' src='../../../../js/Clipperz/Crypto/Base.js'></script> |
51 | <script type='text/javascript' src='../../../../js/Clipperz/Crypto/BigInt.js'></script> | 48 | <script type='text/javascript' src='../../../../js/Clipperz/Crypto/BigInt.js'></script> |
52 | <script type='text/javascript' src='../../../../js/Clipperz/Crypto/AES.js'></script> | 49 | <script type='text/javascript' src='../../../../js/Clipperz/Crypto/AES.js'></script> |
53 | <script type='text/javascript' src='../../../../js/Clipperz/Crypto/SHA.js'></script> | 50 | <script type='text/javascript' src='../../../../js/Clipperz/Crypto/SHA.js'></script> |
54 | <script type='text/javascript' src='../../../../js/Clipperz/Crypto/PRNG.js'></script> | 51 | <script type='text/javascript' src='../../../../js/Clipperz/Crypto/PRNG.js'></script> |
55 | <script type='text/javascript' src='../../../../js/Clipperz/Crypto/SRP.js'></script> | 52 | <script type='text/javascript' src='../../../../js/Clipperz/Crypto/SRP.js'></script> |
56 | 53 | ||
57 | <script type='text/javascript' src='../../../../js/Clipperz/PM/Toll.js'></script> | 54 | <script type='text/javascript' src='../../../../js/Clipperz/PM/Toll.js'></script> |
58 | <script type='text/javascript' src='../../../../js/Clipperz/PM/Proxy.js'></script> | 55 | <script type='text/javascript' src='../../../../js/Clipperz/PM/Proxy.js'></script> |
59 | <script type='text/javascript' src='../../../../js/Clipperz/PM/Proxy/Proxy.Offline.js'></script> | 56 | <script type='text/javascript' src='../../../../js/Clipperz/PM/Proxy/Proxy.Offline.js'></script> |
60 | <script type='text/javascript' src='../../../../js/Clipperz/PM/Proxy/Proxy.Test.js'></script> | 57 | <script type='text/javascript' src='../../../../js/Clipperz/PM/Proxy/Proxy.Test.js'></script> |
61 | <script type='text/javascript' src='../../../../js/Clipperz/PM/Proxy/Proxy.Offline.DataStore.js'></script> | 58 | <script type='text/javascript' src='../../../../js/Clipperz/PM/Proxy/Proxy.Offline.DataStore.js'></script> |
62 | 59 | ||
63 | <script type='text/javascript' src='../../../../js/Clipperz/PM/Connection.js'></script> | 60 | <script type='text/javascript' src='../../../../js/Clipperz/PM/Connection.js'></script> |
64 | <script type='text/javascript' src='../../../../js/Clipperz/PM/Crypto.js'></script> | 61 | <script type='text/javascript' src='../../../../js/Clipperz/PM/Crypto.js'></script> |
65 | 62 | ||
66 | <script type='text/javascript' src='../../../../js/Clipperz/PM/Strings.js'></script> | 63 | <script type='text/javascript' src='../../../../js/Clipperz/PM/Strings.js'></script> |
67 | <script type='text/javascript' src='../../../../js/Clipperz/PM/Strings/Strings_en-US.js'></script> | 64 | <script type='text/javascript' src='../../../../js/Clipperz/PM/Strings/Strings_en-US.js'></script> |
68 | <script type='text/javascript' src='../../../../js/Clipperz/PM/Date.js'></script> | 65 | <script type='text/javascript' src='../../../../js/Clipperz/PM/Date.js'></script> |
69 | <script type='text/javascript' src='../../../../js/Clipperz/PM/DataModel/EncryptedRemoteObject.js'></script> | 66 | <script type='text/javascript' src='../../../../js/Clipperz/PM/DataModel/EncryptedRemoteObject.js'></script> |
70 | <script type='text/javascript' src='../../../../js/Clipperz/PM/DataModel/Record.js'></script> | 67 | <script type='text/javascript' src='../../../../js/Clipperz/PM/DataModel/Record.js'></script> |
71 | <script type='text/javascript' src='../../../../js/Clipperz/PM/DataModel/Record.Version.js'></script> | 68 | <script type='text/javascript' src='../../../../js/Clipperz/PM/DataModel/Record.Version.js'></script> |
72 | <script type='text/javascript' src='../../../../js/Clipperz/PM/DataModel/Record.Version.Field.js'></script> | 69 | <script type='text/javascript' src='../../../../js/Clipperz/PM/DataModel/Record.Version.Field.js'></script> |
73 | <script type='text/javascript' src='../../../../js/Clipperz/PM/DataModel/DirectLogin.js'></script> | 70 | <script type='text/javascript' src='../../../../js/Clipperz/PM/DataModel/DirectLogin.js'></script> |
74 | <!-- script type='text/javascript' src='../../../../js/Clipperz/PM/DataModel/Record.Field.js'></script --> | 71 | <!-- script type='text/javascript' src='../../../../js/Clipperz/PM/DataModel/Record.Field.js'></script --> |
75 | <script type='text/javascript' src='../../../../js/Clipperz/PM/DataModel/User.js'></script> | 72 | <script type='text/javascript' src='../../../../js/Clipperz/PM/DataModel/User.js'></script> |
76 | <script type='text/javascript' src='../../../../js/Clipperz/PM/DataModel/User.Header.Legacy.js'></script> | 73 | <script type='text/javascript' src='../../../../js/Clipperz/PM/DataModel/User.Header.Legacy.js'></script> |
77 | <script type='text/javascript' src='../../../../js/Clipperz/PM/DataModel/User.Header.RecordIndex.js'></script> | 74 | <script type='text/javascript' src='../../../../js/Clipperz/PM/DataModel/User.Header.RecordIndex.js'></script> |
78 | 75 | ||
79 | <script type='text/javascript' src='../../../../js/Clipperz/PM/UI/Common/Components/BaseComponent.js'></script> | 76 | <script type='text/javascript' src='../../../../js/Clipperz/PM/UI/Common/Components/BaseComponent.js'></script> |
80 | <script type='text/javascript' src='../../../../js/Clipperz/PM/UI/Common/Components/ComponentSlot.js'></script> | 77 | <script type='text/javascript' src='../../../../js/Clipperz/PM/UI/Common/Components/ComponentSlot.js'></script> |
81 | <script type='text/javascript' src='../../../../js/Clipperz/PM/UI/Common/Components/PasswordEntropyDisplay.js'></script> | 78 | <script type='text/javascript' src='../../../../js/Clipperz/PM/UI/Common/Components/PasswordEntropyDisplay.js'></script> |
82 | <script type='text/javascript' src='../../../../js/Clipperz/PM/UI/Common/Components/ProgressBar.js'></script> | 79 | <script type='text/javascript' src='../../../../js/Clipperz/PM/UI/Common/Components/ProgressBar.js'></script> |
83 | <script type='text/javascript' src='../../../../js/Clipperz/PM/UI/Common/Components/SimpleMessagePanel.js'></script> | 80 | <script type='text/javascript' src='../../../../js/Clipperz/PM/UI/Common/Components/SimpleMessagePanel.js'></script> |
84 | <script type='text/javascript' src='../../../../js/Clipperz/PM/UI/Common/Components/TabPanelComponent.js'></script> | 81 | <script type='text/javascript' src='../../../../js/Clipperz/PM/UI/Common/Components/TabPanelComponent.js'></script> |
85 | <script type='text/javascript' src='../../../../js/Clipperz/PM/UI/Common/Components/Tooltip.js'></script> | 82 | <script type='text/javascript' src='../../../../js/Clipperz/PM/UI/Common/Components/Tooltip.js'></script> |
86 | <script type='text/javascript' src='../../../../js/Clipperz/PM/UI/Common/Components/TranslatorWidget.js'></script> | 83 | <script type='text/javascript' src='../../../../js/Clipperz/PM/UI/Common/Components/TranslatorWidget.js'></script> |
87 | 84 | ||
88 | <script type='text/javascript' src='../../../../js/Clipperz/PM/UI/Web/Components/CardDialogComponent.js'></script> | 85 | <script type='text/javascript' src='../../../../js/Clipperz/PM/UI/Web/Components/CardDialogComponent.js'></script> |
89 | <script type='text/javascript' src='../../../../js/Clipperz/PM/UI/Web/Components/CardDialogRecordFieldComponent.js'></script> | 86 | <script type='text/javascript' src='../../../../js/Clipperz/PM/UI/Web/Components/CardDialogRecordFieldComponent.js'></script> |
90 | 87 | ||
91 | <script type='text/javascript' src='../../../../js/Clipperz/PM/UI/Common/Controllers/ProgressBarController.js'></script> | 88 | <script type='text/javascript' src='../../../../js/Clipperz/PM/UI/Common/Controllers/ProgressBarController.js'></script> |
92 | <script type='text/javascript' src='../../../../js/Clipperz/PM/UI/Common/Controllers/TabPanelController.js'></script> | 89 | <script type='text/javascript' src='../../../../js/Clipperz/PM/UI/Common/Controllers/TabPanelController.js'></script> |
93 | 90 | ||
94 | <script type='text/javascript' src='../../../../js/Clipperz/PM/UI/Web/Controllers/CardDialogController.js'></script> | 91 | <script type='text/javascript' src='../../../../js/Clipperz/PM/UI/Web/Controllers/CardDialogController.js'></script> |
95 | 92 | ||
96 | <script type='text/javascript' src='./tooltips_test.js'></script> | 93 | <script type='text/javascript' src='./tooltips_test.js'></script> |
97 | <script> | 94 | <script> |
98 | Clipperz_IEisBroken = false; | 95 | Clipperz_IEisBroken = false; |
99 | </script> | 96 | </script> |
100 | 97 | ||
101 | <!--[if IE]><script> | 98 | <!--[if IE]><script> |
102 | Clipperz_IEisBroken = true; | 99 | Clipperz_IEisBroken = true; |
103 | </script><![endif]--> | 100 | </script><![endif]--> |
104 | 101 | ||
105 | <link rel="stylesheet" type="text/css" href="../../../../css/clipperz/clipperz.css" /> | 102 | <link rel="stylesheet" type="text/css" href="../../../../css/clipperz/clipperz.css" /> |
106 | <link rel="stylesheet" type="text/css" href="../../../../css/clipperz/compact.css" /> | 103 | <link rel="stylesheet" type="text/css" href="../../../../css/clipperz/compact.css" /> |
107 | <link rel="stylesheet" type="text/css" href="../../../../css/clipperz/ytheme-clipperz.css" /> | 104 | <link rel="stylesheet" type="text/css" href="../../../../css/clipperz/ytheme-clipperz.css" /> |
108 | 105 | ||
109 | <style> | 106 | <style> |
110 | 107 | ||
111 | div.leftColumn { | 108 | div.leftColumn { |
112 | float:left; | 109 | float:left; |
113 | } | 110 | } |
114 | 111 | ||
115 | div.rightColumn { | 112 | div.rightColumn { |
116 | float:left; | 113 | float:left; |
117 | } | 114 | } |
118 | 115 | ||
119 | div.boxWrapper { | 116 | div.boxWrapper { |
120 | padding: 70px 200px; | 117 | padding: 70px 200px; |
diff --git a/frontend/gamma/tests/tests/Components/Tooltips/tooltips_test.js b/frontend/gamma/tests/tests/Components/Tooltips/tooltips_test.js index 37c0e71..9ed1c05 100644 --- a/frontend/gamma/tests/tests/Components/Tooltips/tooltips_test.js +++ b/frontend/gamma/tests/tests/Components/Tooltips/tooltips_test.js | |||
@@ -1,117 +1,114 @@ | |||
1 | /* | 1 | /* |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | */ | 24 | */ |
28 | 25 | ||
29 | Clipperz.Base.module('Clipperz.Tests.Tooltips'); | 26 | Clipperz.Base.module('Clipperz.Tests.Tooltips'); |
30 | 27 | ||
31 | Clipperz.Crypto.PRNG.defaultRandomGenerator().fastEntropyAccumulationForTestingPurpose(); | 28 | Clipperz.Crypto.PRNG.defaultRandomGenerator().fastEntropyAccumulationForTestingPurpose(); |
32 | Clipperz.PM.Strings.Languages.initSetup(); | 29 | Clipperz.PM.Strings.Languages.initSetup(); |
33 | 30 | ||
34 | Clipperz.Tests.Tooltips.Tester = function(args) { | 31 | Clipperz.Tests.Tooltips.Tester = function(args) { |
35 | args = args || {}; | 32 | args = args || {}; |
36 | 33 | ||
37 | Clipperz.Tests.Tooltips.Tester.superclass.constructor.call(this, args); | 34 | Clipperz.Tests.Tooltips.Tester.superclass.constructor.call(this, args); |
38 | 35 | ||
39 | return this; | 36 | return this; |
40 | }; | 37 | }; |
41 | 38 | ||
42 | Clipperz.Base.extend(Clipperz.Tests.Tooltips.Tester, Object, { | 39 | Clipperz.Base.extend(Clipperz.Tests.Tooltips.Tester, Object, { |
43 | 40 | ||
44 | 'toString': function() { | 41 | 'toString': function() { |
45 | return "Clipperz.Tests.Tooltips.Tester"; | 42 | return "Clipperz.Tests.Tooltips.Tester"; |
46 | }, | 43 | }, |
47 | 44 | ||
48 | //------------------------------------------------------------------------- | 45 | //------------------------------------------------------------------------- |
49 | 46 | ||
50 | 'run': function () { | 47 | 'run': function () { |
51 | vartooltip; | 48 | vartooltip; |
52 | 49 | ||
53 | //Clipperz.log("================== ABOVE =================="); | 50 | //Clipperz.log("================== ABOVE =================="); |
54 | tooltip = new Clipperz.PM.UI.Common.Components.Tooltip({ | 51 | tooltip = new Clipperz.PM.UI.Common.Components.Tooltip({ |
55 | 'element':MochiKit.DOM.getElement('ABOVE'), | 52 | 'element':MochiKit.DOM.getElement('ABOVE'), |
56 | 'text': "Tooltip displayed above the element", | 53 | 'text': "Tooltip displayed above the element", |
57 | 'position':'ABOVE' | 54 | 'position':'ABOVE' |
58 | }); | 55 | }); |
59 | tooltip.show(); | 56 | tooltip.show(); |
60 | 57 | ||
61 | //Clipperz.log("================== BELOW =================="); | 58 | //Clipperz.log("================== BELOW =================="); |
62 | tooltip = new Clipperz.PM.UI.Common.Components.Tooltip({ | 59 | tooltip = new Clipperz.PM.UI.Common.Components.Tooltip({ |
63 | 'element':MochiKit.DOM.getElement('BELOW'), | 60 | 'element':MochiKit.DOM.getElement('BELOW'), |
64 | 'text': "Tooltip displayed below the element", | 61 | 'text': "Tooltip displayed below the element", |
65 | 'position':'BELOW' | 62 | 'position':'BELOW' |
66 | }); | 63 | }); |
67 | tooltip.show(); | 64 | tooltip.show(); |
68 | 65 | ||
69 | //Clipperz.log("================== LEFT =================="); | 66 | //Clipperz.log("================== LEFT =================="); |
70 | tooltip = new Clipperz.PM.UI.Common.Components.Tooltip({ | 67 | tooltip = new Clipperz.PM.UI.Common.Components.Tooltip({ |
71 | 'element':MochiKit.DOM.getElement('LEFT'), | 68 | 'element':MochiKit.DOM.getElement('LEFT'), |
72 | 'text': "Tooltip displayed to the left of the element", | 69 | 'text': "Tooltip displayed to the left of the element", |
73 | 'position':'LEFT' | 70 | 'position':'LEFT' |
74 | }); | 71 | }); |
75 | tooltip.show(); | 72 | tooltip.show(); |
76 | 73 | ||
77 | //Clipperz.log("================== RIGHT =================="); | 74 | //Clipperz.log("================== RIGHT =================="); |
78 | tooltip = new Clipperz.PM.UI.Common.Components.Tooltip({ | 75 | tooltip = new Clipperz.PM.UI.Common.Components.Tooltip({ |
79 | 'element':MochiKit.DOM.getElement('RIGHT'), | 76 | 'element':MochiKit.DOM.getElement('RIGHT'), |
80 | 'text': "Tooltip displayed to the right the element", | 77 | 'text': "Tooltip displayed to the right the element", |
81 | 'position':'RIGHT' | 78 | 'position':'RIGHT' |
82 | }); | 79 | }); |
83 | tooltip.show(); | 80 | tooltip.show(); |
84 | 81 | ||
85 | }, | 82 | }, |
86 | 83 | ||
87 | //========================================================================= | 84 | //========================================================================= |
88 | __syntaxFix__: "syntax fix" | 85 | __syntaxFix__: "syntax fix" |
89 | }); | 86 | }); |
90 | 87 | ||
91 | 88 | ||
92 | 89 | ||
93 | 90 | ||
94 | 91 | ||
95 | 92 | ||
96 | 93 | ||
97 | 94 | ||
98 | 95 | ||
99 | 96 | ||
100 | 97 | ||
101 | 98 | ||
102 | 99 | ||
103 | 100 | ||
104 | 101 | ||
105 | 102 | ||
106 | 103 | ||
107 | 104 | ||
108 | 105 | ||
109 | 106 | ||
110 | init = function () { | 107 | init = function () { |
111 | vartester; | 108 | vartester; |
112 | 109 | ||
113 | tester = new Clipperz.Tests.Tooltips.Tester(); | 110 | tester = new Clipperz.Tests.Tooltips.Tester(); |
114 | tester.run(); | 111 | tester.run(); |
115 | }; | 112 | }; |
116 | 113 | ||
117 | MochiKit.DOM.addLoadEvent(init); | 114 | MochiKit.DOM.addLoadEvent(init); |
diff --git a/frontend/gamma/tests/tests/Components/UnlockPassword/User.data.js b/frontend/gamma/tests/tests/Components/UnlockPassword/User.data.js index dac8b45..49abe46 100644 --- a/frontend/gamma/tests/tests/Components/UnlockPassword/User.data.js +++ b/frontend/gamma/tests/tests/Components/UnlockPassword/User.data.js | |||
@@ -1,120 +1,117 @@ | |||
1 | /* | 1 | /* |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | */ | 24 | */ |
28 | 25 | ||
29 | testData = { | 26 | testData = { |
30 | 27 | ||
31 | //------------------------------------------------------------------------- | 28 | //------------------------------------------------------------------------- |
32 | 29 | ||
33 | 'simpleLogin_001': { | 30 | 'simpleLogin_001': { |
34 | 'users': [ | 31 | 'users': [ |
35 | { | 32 | { |
36 | 'username': "joe", | 33 | 'username': "joe", |
37 | 'passphrase': "eoj", | 34 | 'passphrase': "eoj", |
38 | 'version': "0.2", | 35 | 'version': "0.2", |
39 | 'connectionVersion':"0.2", | 36 | 'connectionVersion':"0.2", |
40 | 'records':{ | 37 | 'records':{ |
41 | 'record 1': { | 38 | 'record 1': { |
42 | 'notes':"Some notes here", | 39 | 'notes':"Some notes here", |
43 | 'fields':[ | 40 | 'fields':[ |
44 | { 'name': "username", 'value': "joe", 'type': "text" }, | 41 | { 'name': "username", 'value': "joe", 'type': "text" }, |
45 | { 'name': "password", 'value': "1234", 'type': "password"} | 42 | { 'name': "password", 'value': "1234", 'type': "password"} |
46 | ], | 43 | ], |
47 | 'directLogins':{ | 44 | 'directLogins':{ |
48 | "record 1 direct login": { | 45 | "record 1 direct login": { |
49 | 'configuration':"", | 46 | 'configuration':"", |
50 | 'bindings':[ | 47 | 'bindings':[ |
51 | ], | 48 | ], |
52 | 'favicon':"http://www.example.com/favicon.ico" | 49 | 'favicon':"http://www.example.com/favicon.ico" |
53 | } | 50 | } |
54 | } | 51 | } |
55 | } | 52 | } |
56 | }, | 53 | }, |
57 | 'otp':[ | 54 | 'otp':[ |
58 | "12345678 90abcdef 12345678 90abcdef", | 55 | "12345678 90abcdef 12345678 90abcdef", |
59 | "fedcba09 87654321 fedcba09 87654321" | 56 | "fedcba09 87654321 fedcba09 87654321" |
60 | ] | 57 | ] |
61 | } | 58 | } |
62 | ] | 59 | ] |
63 | }, | 60 | }, |
64 | 61 | ||
65 | //------------------------------------------------------------------------- | 62 | //------------------------------------------------------------------------- |
66 | 63 | ||
67 | 'joe_clipperz_offline_copy_data': { | 64 | 'joe_clipperz_offline_copy_data': { |
68 | users:{ | 65 | users:{ |
69 | 'catchAllUser': { | 66 | 'catchAllUser': { |
70 | __masterkey_test_value__: 'masterkey', | 67 | __masterkey_test_value__: 'masterkey', |
71 | s: '112233445566778899aabbccddeeff00112233445566778899aabbccddeeff00', | 68 | s: '112233445566778899aabbccddeeff00112233445566778899aabbccddeeff00', |
72 | v: '112233445566778899aabbccddeeff00112233445566778899aabbccddeeff00' | 69 | v: '112233445566778899aabbccddeeff00112233445566778899aabbccddeeff00' |
73 | }, | 70 | }, |
74 | 'f527cdd90d0d47f8524b4e165398ad1455eba515d04abd101d1e93b3c6ae0674': { | 71 | 'f527cdd90d0d47f8524b4e165398ad1455eba515d04abd101d1e93b3c6ae0674': { |
75 | s: '186f0c40bf73f2af236eaa6c429df225efa933050c9aae65240e93b7b362e3ee', | 72 | s: '186f0c40bf73f2af236eaa6c429df225efa933050c9aae65240e93b7b362e3ee', |
76 | v: 'ac61a6e325ecf329926a86084f591d8852d0ad3e4a6080f2adc901b82395ecaf', | 73 | v: 'ac61a6e325ecf329926a86084f591d8852d0ad3e4a6080f2adc901b82395ecaf', |
77 | version: '0.2', | 74 | version: '0.2', |
78 | maxNumberOfRecords: '100', | 75 | maxNumberOfRecords: '100', |
79 | userDetails: '{"records":{"index":{"eeda70e0392261967bda71c3764da78989c45bbd2bb7be6b941b90f81d9b81b5":"0","13a5e52976337ab210903cd04872588e1b21fb72bc183e91aa25c494b8138551":"1","062af892bcfba49ffcff05c56d99b7af2d508358e39c058c2e1fc83531436f80":"2","ca01bcb7691f70818feed46c9a2a91883ac543997a395535aedbb49de166690c":"3","507f38b06d587d8889698ae1ebbba7ef8f0539b82550dd25779fd9ee88fc0c7a":"4","d5f700b9c3367c39551ea49e00a9ab20dae09dd79d46047b983fc7c4bfaa050d":"5","de13c0d036234c44214062bc0a89e5f127470c464333493a485729f43cdc26e4":"6","d620764a656bfd4e1d3758500d5db72e460a0cf729d56ed1a7755b5725c50045":"7","f215d89bf4583c12f5ed4f4330f488dad3fffa448f4dc784f15ef135dda2c732":"8","36ec1a41118813ced3553534fa2607d781cba687768db305beed368a8e06e113":"9","fe21497ef7435d31f9746c132e4b5ecf5aac5f13b5961ddb55d2bdc3409f28f6":"10","6d45c2fec275b7482d41c76b20507100cfb6ab49922b876f9dd3040d361f4a18":"11","9dcd2a8a0fcb7e57d234dc4fea347f020a6a01793e40cf56a0d22379e590e291":"12","6c25be8e145efb26a1abd59590522f73fb2e3dbc139af2217074d9e2ba92c16a":"13","6026370f3db3860d2c46a08e389a7e906dc14f98c8444b21be9a7e9f405a2728":"14","8b18e8593b5bc2f7ea39a5fab222047034ef2f380fee05be0fa6e1c0972fea39":"15","084e23120544603f0297368fd3891a3818e0fe13488e2f2c6079913c8d1bed8d":"16","7bb69b6366a8012f181c01e368ba18d4f7a82bcabb4959189736ad124c4bbfbb":"17","5cdac63b317f3942da38f3a3de3b7f0e5d6678200951c6216230295550f63fb4":"18","c0ce9130ca365bb02418d4305ea1d29e49c3f0e96d44b9d3cb6b4b6843d25065":"19"},"data":"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"},"directLogins":{"index":{"61e87fdc4f1d9112e3b30c1f6812d095dcdb24f014c83319091eb6c9899ec348":"0","989593d4c48929f0c8f1581aa96969c622807e99619ed4732026e967530a68ad":"1","9f7979368fa29f66c44bd97ecaf6c545abc800b1c7bb21b7655a68e1514c3906":"2","dba0db679802f0e6aa6d0b7a6aaf42350aabc5f057409edd99a268a92ebb6496":"3","aa18149164302d5dbe7e2d3724565b9550e00887b49978559783b2e38c625584":"4","1f9bfd677b531a03168d3f8bd8afabb5357244a7bc355dff50bd6c0a072114a6":"5","a48e38845713462ecc9f827149eeaae87da882031f98ef8ebbf9ee9537b63468":"6","6f7bbc4e42ea462b5246e6f51c3f86056bec50601ce2de6067c8c1d26f21c07f":"7","2df54059e78f5771f23bd285cce19595b38331b73d67020424d9a1b2257db09c":"8","065cd0c270e5e8ce50e4ea8e3828dccdae18c01ab030813d756a87d03fe68784":"9","ddbc8d01300a4f10631cbde09e1246332eade3a877a2205209f9eb9e5bc9da0b":"10","9b7a30e667afc9f76ba77600658b2c13bff52432d444261d39bf3d069a160afe":"11","9fd2929cde3d32d9cbc5f1d787f2f64729a5e12a14410556b31c0c099762c46a":"12","f695fc36ac56bead80c0d20a88e01e382819c18dc268f1679551b7c83db7cb14":"13","f22dc41ffabef4b3bc8f7af804fec975bd50718098322a673cbe4aaff9464ae1":"14","03251dc1cbc5398789e4c4b45c52cfac3fcd8c1a4f19a81fa68fc6feae31d55c":"15","a7b32e72502804bf2946a2a8856139cbbb759c5777e6b3e673db1fdf7e3bd06e":"16","cb9ae0bba1957075ccdbfd3b3481704d62087687a2ac7c411a4f07d444bde0f7":"17","7e1d069b7fa57c03bd7bf48807520feb953157834503aaff8c9d493f37dea69d":"18","24404059cabc63b2dbff0f42ba57183108b8189ef53ab62fa25141a1caea824b":"19","33cf9758477460a8056deef0295a1ebe65b39b392c361ceb920a83edacfe5d78":"20","e9a16316f330e3d150f6ffd194f6fd8acd1426757b097de4b88ca0db875202e4":"21"},"data":"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"},"preferences":{"data":"EZMrwxNFFd1sMGycoYE7IrlGGrfLixLUnLZmWMkFysfISe2ay3ueO0PGCApuKqh9hA=="},"oneTimePasswords":{"data":"jufmL1KVY0YBl8MSaL413hGtw12I/+sFnumcfeVku9RRMBmXaXCfE/vYnraxZyPxJxVS3qFRWDKsSGR3pScdACSwlBD+mzjifRn2SCfXWutD1/oJiqiMvq3YFzwyZJiXx+oS5u8DOTieQT9HZYt0pUmAod9QHiq2NAkueVjvRkZI1saRlWGtNXCaJIHwpuFJpHBDSD//6D9DYeTdVUeFEbej+4oNYpBCkyE1G2OL6q50YRBYp9yARRiy9juKHRWFvZiSeMGEJQS0f2gaP+xZkb9Z4qrfDgAZ1F7oDbPksr2SOYlSsm0bqa6c+7Wtopdo63Urf7Ze3Wg9n8TGBk6H88boseR8e3sHudlmtO1oLxcB9p3z/NTceF6SvWyJWTxHeMe6O72dZVmSnZlXhD/IJamRt13HLk3g05d8oXfrXM3iMhIGQ+EsXMxZfKdXlZpyYtjWD5tcQTKz7M5Qo3SFmdkwDu4jH5ke+bD8CeluDcMaHF6KHfdV8nEsmsjGwrH6lqSCT/9kBO5ETqUJKloOhJpFpNS/EN7nxjXF/QbqnUmWV4wngdyYmk9goNZNfZv7C2ouiyys55/QEfGsIsvEPPSfO670oJuncTyfFngFj2tdh2JpJ5vytuoRNLOm7XPM3hDCvZCOpUnjbm+jt4AvdOGU7ID8a2mtZFjb2noP5emAxTg6MO6f3+44eTkUcbCDskO5fe6jd0pTdODk21Ilp7WUjFwxEdJG8tRrGYpLooProJExamL7WShm/S/nhJL4+euW+1UIDjcZJA+a7aGdMSC63qBvrEsNyf57SDBk/o2eNJHs2sndCzgvK42IKGKcipq9D1Gyos9JQsA3My9ARMt68V/5FfzOkgPO6mblOsQMoTyQj/OCLzITEBfqA5IufhljSEkD3CLkfkeVwVf1NB2SsTPXJFChnynfsK7cMFy0O2XBNByCRTQDqBDBYo673tI1KTGnT4gLSAwCt96lq8UkEdt51jjkAJcvBXkbswuw3hvhtzLJ302hkN9CIHJrEN0oss5mWlxIxYrCyqE3ABME3FCR9r+V7exuIaQn6mdJTkMcRbYmVQQkexsROh2cdx8I/tuMN4ECWEAL948k9vEPZfgaQirWnrTtHoxLzNAUBDSQfzYXd8yr0T4vAHLnXaUalWPgLamJJ3eR+LDFcDQVvFkaomsF3RpOIS5fswTBFuRKGKEBSIINc9AyC4DtkSmDMTF2S0TgpnGdK94ZS8C/PM8WEsX738echa5qZG5qG0f+koOUUrbaORcDqaktCuDmsgFTYiUv1JxFskTvS/t/EM2Y0MEKVLZBsoG+4WXz4XEE0VJFoI9glaYll96WH/iMbaVXRnDwjyE62CAk/8DXIf//MJQVyO6ElFsvCrDfH03yLpCJhqwHv+mD5sRctVaq6Cp5Ts3bzdFeiLCX9rhSaqdG5AuMk4dCInlywxrsOvBfNaDBjX7NGCULri6px2T53FNiH6ineVjr9TfgY2uoMyevLiQsGd3GHS4wnxiUfIyz7/Yav5an4o82cHhMVOLvfKwF8C2dJQDg9woJ3ju1ha66UA2XGScJVd93w3OWco78+giXBE96R3CebxgaWQ5Zif6nI+FJnw6OipaRgd7EyrLrQTWadvTiYLfDknlsxFZd4XVs33/3xxF3RyoVsIFO7cpEX/BLVB69v+1TJvLdiyGwSl5FUKbrcrXycZ67uTKtHyAI/vrzwwoQxYV8e32xW86blEjH4pq/Zrijm1wGw7IrD9fYVgEO7nnWpE/ac85LrDaJpGOdZ+slcVWM6THHR9boKJGLtuc8V81gDVNtZ/f4Hx5YXZWKIIfpe57BybWejdQ8ZACWK+mXOGczyXJ88B4nIvaKnRlhSszQryAZzSqJry2k3t1v73BzL48TZWJ6yu1rFmqAUk2V5DCA4XnyHfPuiG8hZfTuu1YXQ+iBgbyDipTwozQqyTv3SxLBPTFxKZLuabMn7ZTo/kLXGfVO/2va58bv6kzW6WjwZ0D481N1Nyd1kZUw1lyxXklcAzZqaHUiIsy+/5DgV/qULYFqEBMNMA7QvBfRN4VZRlnNiemgzkBQXj+JGJOWZMz5cvss291rj1fAe91s10nkZoaddDrvfgfjTq6n9XLSyGSmnrIDMLVc9+YuDtuaQ4gwuiLG2X57Jzrc/Xy7jdZ82G1j+cfT/8Pvb40i1K9aid0Z3xl/tm7jBAqQ91Ehkbo6c8jUVPaQsRcfTumtsNf+Xa5PJmQtEGEPCUlGN6F7eFB5eOLXQFdsLRL1x+SzhS7k3aDri9sTMwYQij26AexwwzAPqcOOkkfbYf0lov5Gxx0LhsZAetDZCRFlxjDRDS8jE8dKBBXkWFazF8K2rdQXKNlclwezCEDBwUWhoJs/H5ndJ38MpSPfKo1YsVvlxi4QFyOTDPJIstCCvYnCjj1r7SrkRrbcuevITRTxD4FKgPCdsYFlGfhS1zWb23DWYWo6fPQ1/zlnN01gZStxsZKepB3NnxbTSjBgTSmzG6RzZajv6BtqivtvOa1hI2KZQtVGCDU2+NGmfbJ5TTJehYiTEPeBF9TfLRP9rktQTUngj2ohv+1TDL0jL3YWiSA9TJzYonsincEVy1aRUeGVazWF2Rrq2o4hCBp12BfuMGHOdVkg9rMXdusyl2y75YyEkcBNMz4zi8i1lVhjUg16rCR48uKJ9QO2KBbjoGTx13uxIXTR8ufXx6mW7iW3qVx+6k7BQGKlMo1G64O8HQ2UrboS/tCqlP0W+7XB2C3EaZMqfKeYcuzM4MLkM6CT2GKYmJPyevXLKE749BM8zRQUcrWieAxmyD+g0QQ4T1fl0RTNEFB1/0BIg3fQQHCLGUTahXwt0EluG9iNPVgmFwwBHybH6gmIEZ4xnD8I7QPwgYY3JF407NdLkHjOuXrP+GODGEvX49MMaUigUUO2fkdw9EJbaidhx6j1EsFpQrz4Lt/5sAu5c9B/365TXtnNnmaPkaFj1q+3ezVXUroimRqxZ9BMaTm7J1hjubO+Dxjb2QlR/UApvQ0ty8aZpmIrMi0xjfoodIMiH6IYdw3VRZSqup7irWWpnJhef2qqtcpoxdiYZaFyf5u2XpZqEnAJpTupqOg+qJN/7aQt6ZmP7POFPwUwzwAsfTYk2EwMlTVAXrawZZEYu2JZ4kIjazo1LgyuuWTieEuONnye8Hr9p70RjwWUdlErlPSCKKn6JRdsM2no13F3151cfgx8I02J9vDuiNa3vfJfmRnBOly5jq6Wlnm2rJN6YYQHwbikoq3lJvkX5ZANDRKFlMWKK42+fXLBuofAZShFt6xvlY384aYsv3EcR42GOLrgYPQy0a7lr/FS4mM2ErNwNYnCz/xTuPBjgXXplbAnyA3jpKdPN1EfUM1oA4kZjECmkXZOuyEQxrndS9eOGbPM6S131zpdWEw9dWSZdkSI34+OkLfAKf6W6z4G4Z+cMRrkYLHs+BavJOum4XTjyyXHIKhQiqz9mgEf+ulodXi+LNsbq1eCcGPWrGg+GNwN1SjJHZm78gidyrlEF6xuPCaZRvGQtk59nuJULOZWkC3Ns/EcFiAql8cu37Lp842fsHHeCVOq0e8ZII4TPg9HKPwDD4HLSg4frBzyeZwK0nN30C5ATCxWdL4Q60cKtZyIEM7Kn1a/vifsAbe019Ui3ovTOCYiTCAdOLaAL/NdpgWA/fDNOsTlPvnEYkq+4+bV3Wyye9ddxICD4TnC2yvXvjw4C/WnYYceJy5R4KamIJueEGIHGp22/0DSF3H4ji3QoUDiFB/H+CA8A2q9LO9q0NYcf2P5q2MfdJGu4bd49g68mltj35pRnGQaafflXY9VmMfrlAbBYfUnsKOb3DOUpq8asveE41/6WkGcXFIuSABcbBf0cHIfBn41wRWQhoCm/JL8pfqEZC/paBdFBRW4FjKkxhbg4BPvBL0aQyGGkU8eH8tr8nm4YN1HMFF/s3s8+9FPoBxPuXLoGSg7Rvdz+g=="},"version":"0.1"}', | 76 | userDetails: '{"records":{"index":{"eeda70e0392261967bda71c3764da78989c45bbd2bb7be6b941b90f81d9b81b5":"0","13a5e52976337ab210903cd04872588e1b21fb72bc183e91aa25c494b8138551":"1","062af892bcfba49ffcff05c56d99b7af2d508358e39c058c2e1fc83531436f80":"2","ca01bcb7691f70818feed46c9a2a91883ac543997a395535aedbb49de166690c":"3","507f38b06d587d8889698ae1ebbba7ef8f0539b82550dd25779fd9ee88fc0c7a":"4","d5f700b9c3367c39551ea49e00a9ab20dae09dd79d46047b983fc7c4bfaa050d":"5","de13c0d036234c44214062bc0a89e5f127470c464333493a485729f43cdc26e4":"6","d620764a656bfd4e1d3758500d5db72e460a0cf729d56ed1a7755b5725c50045":"7","f215d89bf4583c12f5ed4f4330f488dad3fffa448f4dc784f15ef135dda2c732":"8","36ec1a41118813ced3553534fa2607d781cba687768db305beed368a8e06e113":"9","fe21497ef7435d31f9746c132e4b5ecf5aac5f13b5961ddb55d2bdc3409f28f6":"10","6d45c2fec275b7482d41c76b20507100cfb6ab49922b876f9dd3040d361f4a18":"11","9dcd2a8a0fcb7e57d234dc4fea347f020a6a01793e40cf56a0d22379e590e291":"12","6c25be8e145efb26a1abd59590522f73fb2e3dbc139af2217074d9e2ba92c16a":"13","6026370f3db3860d2c46a08e389a7e906dc14f98c8444b21be9a7e9f405a2728":"14","8b18e8593b5bc2f7ea39a5fab222047034ef2f380fee05be0fa6e1c0972fea39":"15","084e23120544603f0297368fd3891a3818e0fe13488e2f2c6079913c8d1bed8d":"16","7bb69b6366a8012f181c01e368ba18d4f7a82bcabb4959189736ad124c4bbfbb":"17","5cdac63b317f3942da38f3a3de3b7f0e5d6678200951c6216230295550f63fb4":"18","c0ce9130ca365bb02418d4305ea1d29e49c3f0e96d44b9d3cb6b4b6843d25065":"19"},"data":"6tqzHY7/lB/JVfDi3iJ7BIJTiX1Fih//aTUF7IDoLdlnafC9hoIQ/5lGk+/Ezilw59n11ocPN31aOA9ddFGc9oa2vQ1BdymV8F91sWGLGyWft+PRCWOqxy7U1XxvbgyRbCs0mbtSLp/qlC6gewnAXJpH6KT9oURIjKkyaR8jJ7ng6IlfGUIL2KUFnAv6KNoWO5cdXDU0nrrdSYehcApmXYlTyreHDbrFlLJ2YuR9JLvw9bDxXi/xBY1wZgwiUsGVlG3j0e4f63mJVrpmPI1jhaXD3BQD8cbl96l1ImhYe1Boz53gLq94KSk+3bkjG4GRhvlDPtvk8vdSZPsYPsbC0Cu0M4TMS70nPX7qNj5LDvzrd+S+zDj1/CW0yctRThXstrxDyG/L75k/xdZcVbMzXQHQR4OwWWFiqGOnLpyiZIHGfV5+xZ1a1uxT9TPDoDdwPuE5P1Uwh3PeGc9jatk3waQN6fo3g8PQrCOtPn7C7b6y4MEjpAG4e53HFb0B/hEfK6ApycT6QAglsA3qF/tZyZbwNCwert4pG52rIG/PODZ1XxVZHFX8VFWeSxuk/jnPpJg/pvfpRzBMyCGVDJb/i+dlwFcnOAVvqju5xXJk4mu05XrngF10NzHnVRMfxwXmdtTDYE/lDuODy1SiE5yBZlt/Ff6a0eMS/P8HLsUS8+dtz9yOIQ8rh+52nVS7F5tFWXFOvT7nfq1L4HaHCigY187Jk0Y3LCsZW6ziB5qhKZlbQxdCAx5UDNWNs/F59qxVWP5k2UagBgAJoh+iMTZAMWkaURqQxY84SVYIkm9vNZv6Jf+ppFJNn6s3ZZSUe8gmmgMPJP0Lmoh/VCPNypzR+sZULfVFpmPmNXfaAOQ875iDgvUuBWsDSBdyx2+8Q+fUO0w+W4WkDM09VGmFxrHHjfpRsOT1B3dVFti2ypyiCdkvm878pvTS2j4Obweh6+bmzE7lqOXJgtQUydKNZIb3hNbjB7LwPro6e70ctm3eM9OLFT73u+khVM2UtAhfMseEb+Ny+PldW+VgXnHFm8n5CDBHoDJPXBfJq60l6+1OnDPfB+7tIgnCVH56CZ0jFX2EbxWS63xAHNLttfMtxdbkf4AbpanqLJvNiU4P0ThW4+VNRKBid0v78WC40rWX4UTEv9HPvUA5JUsj1v6+I5UI+quCUfx0vQgeO/gAlI0YuVgDBB1ouWUSES9+U9QIGoUsVTHDo4ZOEInsnhjPbz+IFyRMoMfbiYx3gviHluxHNGYsIMFxo+yB8aW/CedyWYt54ijgViPIXhH+R8bMgFBX4JX6hu8l3NMSYvMV82ua9Pnyl7NxbwuL1S/0JAp2uh0OzGMX9iOOcFWqbWVAX7NCePAG4VTJ0wZ2iL/MUGAVG72qBWvCb1ckavQc1LTw8l2vPG6YwFf0frFHsVvZsGHRptswFTp+77U1bpn/TL2MUXJQ9gQWgCQHxE+STunbJDDWOe9FZeKkJgjqQQ2E70UFoyUp4U/H1fA5Sy9+gS8QMtOcPJ6tCbcIXnq1nif+6bDBjtQCofs59Mm7ibwnofXPGkWv8Id3SyhW9YZCYhJZss2dkMyWfqw4jDysWxQAHjxZg4qgVXA9xpwuhu7O82vMOutk7vPyEuJ4gqlDroN4aPecD405YOEXWeWrWsL2V3y5PwXBrYWq22XzJeL3PvS9usj1Vg2TtG2O3HLuB6Rm6+i7kraiRbENemst4MjLrZwYjI07ZD7DUifsrUvjA50JXXb8pjudYqwUrTKOzcE/uZ1WbSbm+2x8PYVimLtDE4/lOp34J07WV7ZxJL8yk4J4CYRxLnnS7xps8skfy6glRA8fTKRVLv+9VqVxJgE3X/G8Kfosd9K03DJbD+L+h3kvLAAZ6Xr6FpbnA5HeGXzfQ/k5lBqIS39iqT2kZKMxIOXhfwmmuTSS25nk7hD+0R1TdnnTOYQrEn8bdyPuFXzd08FxN9KSYm2H1Gdg+2h+N9UWTED7zXmv/H+gfzk5gfoNOKyWWoaEFT/NL3ky6ApzuiokUj3x+xvCwOXoozLHXhdeZYtYkIu1HlYWQx1YAk2ilg47nnRhQQaYjMvIHfsdYjdb1CpGO5K1dYlRBOCMttp+j5QVz/jCSeCrMh8dtu9ZGLEZ3QL06tqmXp03fCsvKOG0it/KuNG5EJpfb6bV+5DsZvI6k4VLXjcKvZhhh+VZSf2mr+mzFEGKBSeleZvii2g8dVyaEBms37SBFCdIwkMxFRmzo/n+1m8axx9o57NPwISU4q8eAjUK2bWrBECZaI4FwLqmlGK9hMPGB/lbrcuHtlqmv5qzo2TJb5/xoX0LyJB/FZVk5Wsm8vC+O8b7o6JDxaPkOgy07+p8Sg9wuKVy6hHrFRnZ+MEZO3Bbk74omg4+6y4HVuRCgxztzRyUiYTssFphqKBsC/e6fQN0QtSwhLSld/B5qoPMn/9CMs8UxmRbA2Ekwi+7Ss51YsWNmd8dKUqxMKWFZOQYe2dbvcYbRwKwjrARxR7d5aaQr8b96hKsWs0YkLQDn71C3AQfEUvClvDXJdJ97B9WkDHz/DQ9EaIp9+4ZSl3SIrew09vUkvUSVGU7egHzv1Oe2gf4jI/3zToRq307AzCT1tF4k0VbInDFKb8YSG35UaJAtfTENvkAQ+8KmR3gQyHRupLi6D8TNvy/03n8naG8BV8+EArzmUAgxmfv3PTipnn3bdsaIFK1+uldQXVUoHm7PgZidzOHpNXvNzgrL3c3gv7Et/s="},"directLogins":{"index":{"61e87fdc4f1d9112e3b30c1f6812d095dcdb24f014c83319091eb6c9899ec348":"0","989593d4c48929f0c8f1581aa96969c622807e99619ed4732026e967530a68ad":"1","9f7979368fa29f66c44bd97ecaf6c545abc800b1c7bb21b7655a68e1514c3906":"2","dba0db679802f0e6aa6d0b7a6aaf42350aabc5f057409edd99a268a92ebb6496":"3","aa18149164302d5dbe7e2d3724565b9550e00887b49978559783b2e38c625584":"4","1f9bfd677b531a03168d3f8bd8afabb5357244a7bc355dff50bd6c0a072114a6":"5","a48e38845713462ecc9f827149eeaae87da882031f98ef8ebbf9ee9537b63468":"6","6f7bbc4e42ea462b5246e6f51c3f86056bec50601ce2de6067c8c1d26f21c07f":"7","2df54059e78f5771f23bd285cce19595b38331b73d67020424d9a1b2257db09c":"8","065cd0c270e5e8ce50e4ea8e3828dccdae18c01ab030813d756a87d03fe68784":"9","ddbc8d01300a4f10631cbde09e1246332eade3a877a2205209f9eb9e5bc9da0b":"10","9b7a30e667afc9f76ba77600658b2c13bff52432d444261d39bf3d069a160afe":"11","9fd2929cde3d32d9cbc5f1d787f2f64729a5e12a14410556b31c0c099762c46a":"12","f695fc36ac56bead80c0d20a88e01e382819c18dc268f1679551b7c83db7cb14":"13","f22dc41ffabef4b3bc8f7af804fec975bd50718098322a673cbe4aaff9464ae1":"14","03251dc1cbc5398789e4c4b45c52cfac3fcd8c1a4f19a81fa68fc6feae31d55c":"15","a7b32e72502804bf2946a2a8856139cbbb759c5777e6b3e673db1fdf7e3bd06e":"16","cb9ae0bba1957075ccdbfd3b3481704d62087687a2ac7c411a4f07d444bde0f7":"17","7e1d069b7fa57c03bd7bf48807520feb953157834503aaff8c9d493f37dea69d":"18","24404059cabc63b2dbff0f42ba57183108b8189ef53ab62fa25141a1caea824b":"19","33cf9758477460a8056deef0295a1ebe65b39b392c361ceb920a83edacfe5d78":"20","e9a16316f330e3d150f6ffd194f6fd8acd1426757b097de4b88ca0db875202e4":"21"},"data":"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"},"preferences":{"data":"EZMrwxNFFd1sMGycoYE7IrlGGrfLixLUnLZmWMkFysfISe2ay3ueO0PGCApuKqh9hA=="},"oneTimePasswords":{"data":"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"},"version":"0.1"}', |
80 | statistics: 'SfGy/4mpXQdDOv+Bcfie4Yt/', | 77 | statistics: 'SfGy/4mpXQdDOv+Bcfie4Yt/', |
81 | userDetailsVersion: '0.3', | 78 | userDetailsVersion: '0.3', |
82 | records: { | 79 | records: { |
83 | '062af892bcfba49ffcff05c56d99b7af2d508358e39c058c2e1fc83531436f80': { | 80 | '062af892bcfba49ffcff05c56d99b7af2d508358e39c058c2e1fc83531436f80': { |
84 | data: '7sgxSQlqR+wh3g06M2+sWp7raQxjjQ9jLIz2OcEB7SckuQcXNrhMlDCbL6ncSljtzgqhioWrOB409kIG8lc7h6ekghOE/Mhi7rVwAiRfNGB7r3mYxpEXRe96O2RG7E+NcSp8ezl+5gJ9D0o1abXPeFQYGcr95hUioCfyY+xrxY8TJVwdb9nHkYvBdKV7rCl1dTxgsKWK3nlo1T7e5uyiz5YUAE6BrCtTFAqtprLI/xOpRti9C+llohS7D6s8hkCBPZfp3chKFDrgpsCBFLhXN8jrBKSjHi1PJdRQzpJsgrxyeBj0dZx3gTsYOXqrYgdIzFUo7K1Tqb30yNprBiDMr7j0YYXiSvEb7OuOIP+HTXGN+yt09bk9LggyY6Fh0e+tenjQQ3soySN/XznOBpEjXbzXoz6fR1MXVnE9GgaX99LVNqwWfq2rIBdSE/FfspRiWP3BY5jIrEkNeRclS05U1zw3K3wxOL+cB9r2IynSXnK8QcrDNNRZ0W3PhsSFfByUXuviLSEOPuJa1mYP29L9Lj/WyHL1Gyl8xLbt2H41S6+wvIleKMuc7teH6wPXbnYphvbwBowoI6HZTEFkz3dQKhhY6VF/81iCXsuaz6BjyrzFX6SkQ4S3lN1tv4opQMJFvnmHb6EkXqVWfeIXzJIJO+owL4vDOf4okpAD+HPjjlVXhq6fvyM5UBIK9+tzJW78X/zifrQOfWRIhwjVsfUdZWmZ/S35vnHWNuXkM8GBYrDysqxanDtah3U8XLAiIhFtBOzpzr6qGaNDOKKgG3K8QXT4bYHOq1rQVUwzQuKhlCyStrRMQrC5Ry251xmLy6dKfppRarVeGDtzB/30BbtFNdZmzMNG2g+Jj5tFCrEtCMvMiQEWZHMU3tGMFxDef/KKdv1fFTJC16jmaUiCHUZmNjB3EO9R6xPVcMlAVKf57n3efrpRk/GTmm9JhAFkuF/wsveH4JjPpDUdkHYFu5tHbb30sbga3ufBAXbQL4ck10S24akU/cKraFGLvuKGaR2U0i6ih911TBSf3pAfZ3RFbBhVIl+6rSknC5+IXoBR7MRstBPW/xC9pQVjN5Qyn0g3aUjUSI+q4jcTuvMl32NtTJbWRMGhfkrpVzypZTyPnIh6XJkyBghlUARXw23MlbjiZxmY4ScDmcWZRZJWIknHlqjDKFDKNnwrfnEI9qWyMDno+jA/DEQz0mnpdZYEsoz1/qAmAeDt89vx', | 81 | data: '7sgxSQlqR+wh3g06M2+sWp7raQxjjQ9jLIz2OcEB7SckuQcXNrhMlDCbL6ncSljtzgqhioWrOB409kIG8lc7h6ekghOE/Mhi7rVwAiRfNGB7r3mYxpEXRe96O2RG7E+NcSp8ezl+5gJ9D0o1abXPeFQYGcr95hUioCfyY+xrxY8TJVwdb9nHkYvBdKV7rCl1dTxgsKWK3nlo1T7e5uyiz5YUAE6BrCtTFAqtprLI/xOpRti9C+llohS7D6s8hkCBPZfp3chKFDrgpsCBFLhXN8jrBKSjHi1PJdRQzpJsgrxyeBj0dZx3gTsYOXqrYgdIzFUo7K1Tqb30yNprBiDMr7j0YYXiSvEb7OuOIP+HTXGN+yt09bk9LggyY6Fh0e+tenjQQ3soySN/XznOBpEjXbzXoz6fR1MXVnE9GgaX99LVNqwWfq2rIBdSE/FfspRiWP3BY5jIrEkNeRclS05U1zw3K3wxOL+cB9r2IynSXnK8QcrDNNRZ0W3PhsSFfByUXuviLSEOPuJa1mYP29L9Lj/WyHL1Gyl8xLbt2H41S6+wvIleKMuc7teH6wPXbnYphvbwBowoI6HZTEFkz3dQKhhY6VF/81iCXsuaz6BjyrzFX6SkQ4S3lN1tv4opQMJFvnmHb6EkXqVWfeIXzJIJO+owL4vDOf4okpAD+HPjjlVXhq6fvyM5UBIK9+tzJW78X/zifrQOfWRIhwjVsfUdZWmZ/S35vnHWNuXkM8GBYrDysqxanDtah3U8XLAiIhFtBOzpzr6qGaNDOKKgG3K8QXT4bYHOq1rQVUwzQuKhlCyStrRMQrC5Ry251xmLy6dKfppRarVeGDtzB/30BbtFNdZmzMNG2g+Jj5tFCrEtCMvMiQEWZHMU3tGMFxDef/KKdv1fFTJC16jmaUiCHUZmNjB3EO9R6xPVcMlAVKf57n3efrpRk/GTmm9JhAFkuF/wsveH4JjPpDUdkHYFu5tHbb30sbga3ufBAXbQL4ck10S24akU/cKraFGLvuKGaR2U0i6ih911TBSf3pAfZ3RFbBhVIl+6rSknC5+IXoBR7MRstBPW/xC9pQVjN5Qyn0g3aUjUSI+q4jcTuvMl32NtTJbWRMGhfkrpVzypZTyPnIh6XJkyBghlUARXw23MlbjiZxmY4ScDmcWZRZJWIknHlqjDKFDKNnwrfnEI9qWyMDno+jA/DEQz0mnpdZYEsoz1/qAmAeDt89vx', |
85 | version: '0.2', | 82 | version: '0.2', |
86 | creationDate: 'Wed Mar 14 15:46:44 CET 2007', | 83 | creationDate: 'Wed Mar 14 15:46:44 CET 2007', |
87 | updateDate: 'Wed Mar 14 15:46:44 CET 2007', | 84 | updateDate: 'Wed Mar 14 15:46:44 CET 2007', |
88 | accessDate: 'Mon Jan 19 16:10:04 CET 2009', | 85 | accessDate: 'Mon Jan 19 16:10:04 CET 2009', |
89 | currentVersion: '4a70ca20167875a936d4540f19980e972c20f329a65d85e9b0ce709f1fc7c7e3', | 86 | currentVersion: '4a70ca20167875a936d4540f19980e972c20f329a65d85e9b0ce709f1fc7c7e3', |
90 | versions: { | 87 | versions: { |
91 | '4a70ca20167875a936d4540f19980e972c20f329a65d85e9b0ce709f1fc7c7e3': { | 88 | '4a70ca20167875a936d4540f19980e972c20f329a65d85e9b0ce709f1fc7c7e3': { |
92 | header: '####', | 89 | header: '####', |
93 | data: 'GCNNIhDQjMJQZGVSf+95fPtU6eOnFWVhuGm86r8WZGVR2Gf2EjbG1OJ0ZIGpZ/AXgirCMpo5AFxJe0Bay8IYg+xmBqMFhwFxzAgJBYCIts+raSaNRipuY8dTEqDxAqD1cChcG8EhSoiFgQ0fG0I7nNEUDJi0pIt4/ygBcwvAhuAenEp9ZW+oQA0+YysPQRqkz3IieFaOoSEbe5/SqpUilV4q1gTVyzNXvrxzxx+rlvEyGFgFN+vgtUZ1NrwlPk4gVksTpylvv6CFaMGEWKhgMG6efo0rJckKosaJTu1pldJdnmMK4EKNMLOd+jZ6pEhEhYyadrA4+zYU5TlmZA6ASzTaps8piSwZodoi9qY0ch2StK4mAbzeEGe2HdfHuAU9Tyq3Ppk3+VfNdKgpQfYrQOiSlXbKzK636tzXTN/gyrfOTHjBrRl117ywibgSX63ayAYNfcLpKotC', | 90 | data: 'GCNNIhDQjMJQZGVSf+95fPtU6eOnFWVhuGm86r8WZGVR2Gf2EjbG1OJ0ZIGpZ/AXgirCMpo5AFxJe0Bay8IYg+xmBqMFhwFxzAgJBYCIts+raSaNRipuY8dTEqDxAqD1cChcG8EhSoiFgQ0fG0I7nNEUDJi0pIt4/ygBcwvAhuAenEp9ZW+oQA0+YysPQRqkz3IieFaOoSEbe5/SqpUilV4q1gTVyzNXvrxzxx+rlvEyGFgFN+vgtUZ1NrwlPk4gVksTpylvv6CFaMGEWKhgMG6efo0rJckKosaJTu1pldJdnmMK4EKNMLOd+jZ6pEhEhYyadrA4+zYU5TlmZA6ASzTaps8piSwZodoi9qY0ch2StK4mAbzeEGe2HdfHuAU9Tyq3Ppk3+VfNdKgpQfYrQOiSlXbKzK636tzXTN/gyrfOTHjBrRl117ywibgSX63ayAYNfcLpKotC', |
94 | version: '0.2', | 91 | version: '0.2', |
95 | creationDate: 'Wed Mar 14 15:46:44 CET 2007', | 92 | creationDate: 'Wed Mar 14 15:46:44 CET 2007', |
96 | updateDate: 'Wed Mar 14 15:46:44 CET 2007', | 93 | updateDate: 'Wed Mar 14 15:46:44 CET 2007', |
97 | accessDate: 'Mon Jan 19 16:10:04 CET 2009' | 94 | accessDate: 'Mon Jan 19 16:10:04 CET 2009' |
98 | } | 95 | } |
99 | } | 96 | } |
100 | }, | 97 | }, |
101 | '084e23120544603f0297368fd3891a3818e0fe13488e2f2c6079913c8d1bed8d': { | 98 | '084e23120544603f0297368fd3891a3818e0fe13488e2f2c6079913c8d1bed8d': { |
102 | data: 'fGzBu1On7e/6rAoSB1a4fq/CkS8Be/T8UP5cQ93asBTWndSYu2lW4DQ4SXQXSindIi3OnNx/f6SNv/extb7OrMLREF92wXI045ipPwy+DIICb+cQNMJ82Sh4cXaIcAWcyrm+MYri3qq9LBKbpwkILcebZidJ86lmKYHJozUezmfbMcwNCljHs/gYkHVzVcuw9L52Ugc6wC7sjsshh+UH6i4/2Frlrophtx+b1vervNd8eoYiKnedHVXVfW7UJcQoF27eHFgzwYnGvRW0KNXFFhqmPb61TSkIvNdCCvBKDP4SXrWvGgzU89wipvWdUPpQ+fCT6Mp3hPRrbJxwMunmjujZOzBld/HkjnXoiNfBb5akA280WvdyzWYATrjV1ZFx8yQY8G0+lRt/MxjKDc38w4y+Rf5WeRbXboJMvFatwooHUggk6qSRmZVvgOmFmNuDRnRYIFzqK3JclhJeVasnqhR6RiGSowc1Ffr1HhcZCMnXpQABGBkZcHD/zw6YjHRyh9Plw7XAm0xb16HMDtiwt7WLJpxLH/HP99j/A2hvMGWiUiFCaYv7AzyEPTmYbN32D1IsAEE/GC3FG0HypGTBolP8wpAfTRdlvWpJz8oRRdwuLV3Pgpu+kXh5sQyeZI6tnuMPQFmRDcMN1oo3E5V5V585nVMnKTFcXhBzD4UnoV+DQNkG/+iSPybQzz/EZmucEqGEYyjI3kl4MAX8UMEUxE4JO0fF8MzyBI13nxknowAceEammx1dGVaJCoIOdhadaPVPyOzXM1Vp1erVm5k4TsxSx1pll+GOm6hVoNHIuQLDueaMEpRxMhfwc8cDyXURqRGPTgTc0bint5xVjo10fnpX1gcdc/AWL6y3tXM80NW+uFJ4GI7VzyzfcMRzTiRaGi19z8MIx8PbIVGh2sw4FhgGujNsPrpuESvUVT+17M0+v8oEoABNlcizTMFs/sA1uqlPumFASltzmViAzClOsDuCh069hFLjdk/Ex5jy4vPYlwOT8Uq9DJC9ZWuZgiI1DrhWN/8QGAEGxxbvnSZPNCQ9kpD5p+iabinLLWOAirVNgKwIRJRyAu/uR9xKd7J9Wxq8q/ii+y5lGilbo2g24wbDwrkXYVhqp/4J0g+p8Wv1NBjCTSCqV39WEizUCRHo3ee9HnQnBJQDOyTBRuz2odTJtJ5tLYjWXZRdFzFSJrEq+Z1z3oq7LnhZy3YWaFXPeKmBCemMthtNt0nL', | 99 | data: 'fGzBu1On7e/6rAoSB1a4fq/CkS8Be/T8UP5cQ93asBTWndSYu2lW4DQ4SXQXSindIi3OnNx/f6SNv/extb7OrMLREF92wXI045ipPwy+DIICb+cQNMJ82Sh4cXaIcAWcyrm+MYri3qq9LBKbpwkILcebZidJ86lmKYHJozUezmfbMcwNCljHs/gYkHVzVcuw9L52Ugc6wC7sjsshh+UH6i4/2Frlrophtx+b1vervNd8eoYiKnedHVXVfW7UJcQoF27eHFgzwYnGvRW0KNXFFhqmPb61TSkIvNdCCvBKDP4SXrWvGgzU89wipvWdUPpQ+fCT6Mp3hPRrbJxwMunmjujZOzBld/HkjnXoiNfBb5akA280WvdyzWYATrjV1ZFx8yQY8G0+lRt/MxjKDc38w4y+Rf5WeRbXboJMvFatwooHUggk6qSRmZVvgOmFmNuDRnRYIFzqK3JclhJeVasnqhR6RiGSowc1Ffr1HhcZCMnXpQABGBkZcHD/zw6YjHRyh9Plw7XAm0xb16HMDtiwt7WLJpxLH/HP99j/A2hvMGWiUiFCaYv7AzyEPTmYbN32D1IsAEE/GC3FG0HypGTBolP8wpAfTRdlvWpJz8oRRdwuLV3Pgpu+kXh5sQyeZI6tnuMPQFmRDcMN1oo3E5V5V585nVMnKTFcXhBzD4UnoV+DQNkG/+iSPybQzz/EZmucEqGEYyjI3kl4MAX8UMEUxE4JO0fF8MzyBI13nxknowAceEammx1dGVaJCoIOdhadaPVPyOzXM1Vp1erVm5k4TsxSx1pll+GOm6hVoNHIuQLDueaMEpRxMhfwc8cDyXURqRGPTgTc0bint5xVjo10fnpX1gcdc/AWL6y3tXM80NW+uFJ4GI7VzyzfcMRzTiRaGi19z8MIx8PbIVGh2sw4FhgGujNsPrpuESvUVT+17M0+v8oEoABNlcizTMFs/sA1uqlPumFASltzmViAzClOsDuCh069hFLjdk/Ex5jy4vPYlwOT8Uq9DJC9ZWuZgiI1DrhWN/8QGAEGxxbvnSZPNCQ9kpD5p+iabinLLWOAirVNgKwIRJRyAu/uR9xKd7J9Wxq8q/ii+y5lGilbo2g24wbDwrkXYVhqp/4J0g+p8Wv1NBjCTSCqV39WEizUCRHo3ee9HnQnBJQDOyTBRuz2odTJtJ5tLYjWXZRdFzFSJrEq+Z1z3oq7LnhZy3YWaFXPeKmBCemMthtNt0nL', |
103 | version: '0.3', | 100 | version: '0.3', |
104 | creationDate: 'Fri Oct 17 16:49:20 CEST 2008', | 101 | creationDate: 'Fri Oct 17 16:49:20 CEST 2008', |
105 | updateDate: 'Mon Oct 27 08:58:49 CET 2008', | 102 | updateDate: 'Mon Oct 27 08:58:49 CET 2008', |
106 | accessDate: 'Mon Jan 19 16:09:39 CET 2009', | 103 | accessDate: 'Mon Jan 19 16:09:39 CET 2009', |
107 | currentVersion: '6fd60c5709a4808444f43f7bbd872363d76703957f613076538ba2f9161206ac', | 104 | currentVersion: '6fd60c5709a4808444f43f7bbd872363d76703957f613076538ba2f9161206ac', |
108 | versions: { | 105 | versions: { |
109 | '0ae362285f103722abbd046eee2b7d10aeae6a1d05cbaf2081392ce9df882bcf': { | 106 | '0ae362285f103722abbd046eee2b7d10aeae6a1d05cbaf2081392ce9df882bcf': { |
110 | header: '####', | 107 | header: '####', |
111 | data: 'sG6TUmPSEPFpiJ5YdtghWHmHbvUK63tZCZ+Q5iz2ALas//jN+lZCBhZcjEwPEJskBkK2R0MyAh14wWGh2bBHMjsokgTe+L+x+0c/Zi0epE/IC9gtOBhsTe/hZ2e2xOGF/SbzET3DAAYXvxduZ36f7SvvFnrkkKvpj8wGSdTFcBmzqMb9DL2bRyRCLGLMzE3F1a0q5CufCIRz2TgHm+Uw+kfvvwC7ig/F/5iLW90Ypz3vmEtMEFYFHZ9a8Oh0rsXGfevbMhFqALoywzihQEe/NiB8dwn7GEdYKSQ35rhvZh29ULWOZinqmg0ONe0HYaxx7DbKsVoue57S0CIUlgHLajzHfLfqQg2sFI0OT8TnHsGg0YZ6mM2EdKmEjJiER0cP', | 108 | data: 'sG6TUmPSEPFpiJ5YdtghWHmHbvUK63tZCZ+Q5iz2ALas//jN+lZCBhZcjEwPEJskBkK2R0MyAh14wWGh2bBHMjsokgTe+L+x+0c/Zi0epE/IC9gtOBhsTe/hZ2e2xOGF/SbzET3DAAYXvxduZ36f7SvvFnrkkKvpj8wGSdTFcBmzqMb9DL2bRyRCLGLMzE3F1a0q5CufCIRz2TgHm+Uw+kfvvwC7ig/F/5iLW90Ypz3vmEtMEFYFHZ9a8Oh0rsXGfevbMhFqALoywzihQEe/NiB8dwn7GEdYKSQ35rhvZh29ULWOZinqmg0ONe0HYaxx7DbKsVoue57S0CIUlgHLajzHfLfqQg2sFI0OT8TnHsGg0YZ6mM2EdKmEjJiER0cP', |
112 | version: '0.3', | 109 | version: '0.3', |
113 | creationDate: 'Fri Oct 17 17:00:31 CEST 2008', | 110 | creationDate: 'Fri Oct 17 17:00:31 CEST 2008', |
114 | updateDate: 'Fri Oct 17 17:00:31 CEST 2008', | 111 | updateDate: 'Fri Oct 17 17:00:31 CEST 2008', |
115 | accessDate: 'Fri Oct 17 17:00:31 CEST 2008' | 112 | accessDate: 'Fri Oct 17 17:00:31 CEST 2008' |
116 | }, | 113 | }, |
117 | '10f45664bbd979a92f37886f1ecc6e52e49798b16dc997aecd37259ad9b2090e': { | 114 | '10f45664bbd979a92f37886f1ecc6e52e49798b16dc997aecd37259ad9b2090e': { |
118 | header: '####', | 115 | header: '####', |
119 | data: 'RdKVaV/WWWchrCse3KtcXd47Bfm6IAwjqVUpaxoed3HeunI42AAm7xYYSjeK8edHpbNRJbhobBAX5OZtWIp/HmgkobKM8CIiWxrWz89FqyrbnPD7+fXdtgF2yTax/0sC1l0ibncdOuJKX6U829oPlXCpXIOjlomc4wEEAD/5V6FbORvdZ9IE/ME3LsG2y02cT2tIpx6+R6wC/PKXhZA2UDsTE6R2Op2BtIzpVORZLXsdyAp/4wvWQxq90i9cEpbsVQsMB10JVyNHNsRTFhIlHi9MVCaMxQvcrwRElMj/Y9x3RbsFzSGKqFLqdg7Fn/U+KYkpYtsgHv9hraPIb9lV5FH16+iItU/HBM6FGezIj1ZkoQ+dgjPfSjTZzgzDYwyb', | 116 | data: 'RdKVaV/WWWchrCse3KtcXd47Bfm6IAwjqVUpaxoed3HeunI42AAm7xYYSjeK8edHpbNRJbhobBAX5OZtWIp/HmgkobKM8CIiWxrWz89FqyrbnPD7+fXdtgF2yTax/0sC1l0ibncdOuJKX6U829oPlXCpXIOjlomc4wEEAD/5V6FbORvdZ9IE/ME3LsG2y02cT2tIpx6+R6wC/PKXhZA2UDsTE6R2Op2BtIzpVORZLXsdyAp/4wvWQxq90i9cEpbsVQsMB10JVyNHNsRTFhIlHi9MVCaMxQvcrwRElMj/Y9x3RbsFzSGKqFLqdg7Fn/U+KYkpYtsgHv9hraPIb9lV5FH16+iItU/HBM6FGezIj1ZkoQ+dgjPfSjTZzgzDYwyb', |
120 | version: '0.3', | 117 | version: '0.3', |
diff --git a/frontend/gamma/tests/tests/Components/UnlockPassword/index.html b/frontend/gamma/tests/tests/Components/UnlockPassword/index.html index 5534068..7a5e95b 100644 --- a/frontend/gamma/tests/tests/Components/UnlockPassword/index.html +++ b/frontend/gamma/tests/tests/Components/UnlockPassword/index.html | |||
@@ -1,117 +1,114 @@ | |||
1 | <!-- | 1 | <!-- |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | --> | 24 | --> |
28 | 25 | ||
29 | <html> | 26 | <html> |
30 | <head> | 27 | <head> |
31 | <title>UnlockPassword - test</title> | 28 | <title>UnlockPassword - test</title> |
32 | <script type="text/javascript" src="../../../../js/MochiKit/MochiKit.js"></script> | 29 | <script type="text/javascript" src="../../../../js/MochiKit/MochiKit.js"></script> |
33 | <script type='text/javascript' src='../../../../js/JSON/json2.js'></script> | 30 | <script type='text/javascript' src='../../../../js/JSON/json2.js'></script> |
34 | 31 | ||
35 | <script type='text/javascript' src='../../../../js/Clipperz/YUI/Utils.js'></script> | 32 | <script type='text/javascript' src='../../../../js/Clipperz/YUI/Utils.js'></script> |
36 | <script type='text/javascript' src='../../../../js/Clipperz/YUI/DomHelper.js'></script> | 33 | <script type='text/javascript' src='../../../../js/Clipperz/YUI/DomHelper.js'></script> |
37 | <script type='text/javascript' src='../../../../js/Clipperz/Base.js'></script> | 34 | <script type='text/javascript' src='../../../../js/Clipperz/Base.js'></script> |
38 | <script type='text/javascript' src='../../../../js/Clipperz/Date.js'></script> | 35 | <script type='text/javascript' src='../../../../js/Clipperz/Date.js'></script> |
39 | <script type='text/javascript' src='../../../../js/Clipperz/DOM.js'></script> | 36 | <script type='text/javascript' src='../../../../js/Clipperz/DOM.js'></script> |
40 | <script type='text/javascript' src='../../../../js/Clipperz/ByteArray.js'></script> | 37 | <script type='text/javascript' src='../../../../js/Clipperz/ByteArray.js'></script> |
41 | <script type='text/javascript' src='../../../../js/Clipperz/Logging.js'></script> | 38 | <script type='text/javascript' src='../../../../js/Clipperz/Logging.js'></script> |
42 | <script type='text/javascript' src='../../../../js/Clipperz/Async.js'></script> | 39 | <script type='text/javascript' src='../../../../js/Clipperz/Async.js'></script> |
43 | 40 | ||
44 | <script type='text/javascript' src='../../../../js/Clipperz/Signal.js'></script> | 41 | <script type='text/javascript' src='../../../../js/Clipperz/Signal.js'></script> |
45 | <script type='text/javascript' src='../../../../js/Clipperz/Style.js'></script> | 42 | <script type='text/javascript' src='../../../../js/Clipperz/Style.js'></script> |
46 | <script type='text/javascript' src='../../../../js/Clipperz/Visual.js'></script> | 43 | <script type='text/javascript' src='../../../../js/Clipperz/Visual.js'></script> |
47 | <script type='text/javascript' src='../../../../js/Clipperz/Set.js'></script> | 44 | <script type='text/javascript' src='../../../../js/Clipperz/Set.js'></script> |
48 | <script type='text/javascript' src='../../../../js/Clipperz/KeyValueObjectStore.js'></script> | 45 | <script type='text/javascript' src='../../../../js/Clipperz/KeyValueObjectStore.js'></script> |
49 | 46 | ||
50 | <script type='text/javascript' src='../../../../js/Clipperz/Crypto/Base.js'></script> | 47 | <script type='text/javascript' src='../../../../js/Clipperz/Crypto/Base.js'></script> |
51 | <script type='text/javascript' src='../../../../js/Clipperz/Crypto/BigInt.js'></script> | 48 | <script type='text/javascript' src='../../../../js/Clipperz/Crypto/BigInt.js'></script> |
52 | <script type='text/javascript' src='../../../../js/Clipperz/Crypto/AES.js'></script> | 49 | <script type='text/javascript' src='../../../../js/Clipperz/Crypto/AES.js'></script> |
53 | <script type='text/javascript' src='../../../../js/Clipperz/Crypto/SHA.js'></script> | 50 | <script type='text/javascript' src='../../../../js/Clipperz/Crypto/SHA.js'></script> |
54 | <script type='text/javascript' src='../../../../js/Clipperz/Crypto/PRNG.js'></script> | 51 | <script type='text/javascript' src='../../../../js/Clipperz/Crypto/PRNG.js'></script> |
55 | <script type='text/javascript' src='../../../../js/Clipperz/Crypto/SRP.js'></script> | 52 | <script type='text/javascript' src='../../../../js/Clipperz/Crypto/SRP.js'></script> |
56 | 53 | ||
57 | <script type='text/javascript' src='../../../../js/Clipperz/PM/Toll.js'></script> | 54 | <script type='text/javascript' src='../../../../js/Clipperz/PM/Toll.js'></script> |
58 | <script type='text/javascript' src='../../../../js/Clipperz/PM/Proxy.js'></script> | 55 | <script type='text/javascript' src='../../../../js/Clipperz/PM/Proxy.js'></script> |
59 | <script type='text/javascript' src='../../../../js/Clipperz/PM/Proxy/Proxy.Offline.js'></script> | 56 | <script type='text/javascript' src='../../../../js/Clipperz/PM/Proxy/Proxy.Offline.js'></script> |
60 | <script type='text/javascript' src='../../../../js/Clipperz/PM/Proxy/Proxy.Test.js'></script> | 57 | <script type='text/javascript' src='../../../../js/Clipperz/PM/Proxy/Proxy.Test.js'></script> |
61 | <script type='text/javascript' src='../../../../js/Clipperz/PM/Proxy/Proxy.Offline.DataStore.js'></script> | 58 | <script type='text/javascript' src='../../../../js/Clipperz/PM/Proxy/Proxy.Offline.DataStore.js'></script> |
62 | 59 | ||
63 | <script type='text/javascript' src='../../../../js/Clipperz/PM/Connection.js'></script> | 60 | <script type='text/javascript' src='../../../../js/Clipperz/PM/Connection.js'></script> |
64 | <script type='text/javascript' src='../../../../js/Clipperz/PM/Crypto.js'></script> | 61 | <script type='text/javascript' src='../../../../js/Clipperz/PM/Crypto.js'></script> |
65 | 62 | ||
66 | <script type='text/javascript' src='../../../../js/Clipperz/PM/Strings.js'></script> | 63 | <script type='text/javascript' src='../../../../js/Clipperz/PM/Strings.js'></script> |
67 | <script type='text/javascript' src='../../../../js/Clipperz/PM/Strings/Strings_en-US.js'></script> | 64 | <script type='text/javascript' src='../../../../js/Clipperz/PM/Strings/Strings_en-US.js'></script> |
68 | <script type='text/javascript' src='../../../../js/Clipperz/PM/Date.js'></script> | 65 | <script type='text/javascript' src='../../../../js/Clipperz/PM/Date.js'></script> |
69 | <script type='text/javascript' src='../../../../js/Clipperz/PM/DataModel/EncryptedRemoteObject.js'></script> | 66 | <script type='text/javascript' src='../../../../js/Clipperz/PM/DataModel/EncryptedRemoteObject.js'></script> |
70 | <script type='text/javascript' src='../../../../js/Clipperz/PM/DataModel/Record.js'></script> | 67 | <script type='text/javascript' src='../../../../js/Clipperz/PM/DataModel/Record.js'></script> |
71 | <script type='text/javascript' src='../../../../js/Clipperz/PM/DataModel/Record.Version.js'></script> | 68 | <script type='text/javascript' src='../../../../js/Clipperz/PM/DataModel/Record.Version.js'></script> |
72 | <script type='text/javascript' src='../../../../js/Clipperz/PM/DataModel/Record.Version.Field.js'></script> | 69 | <script type='text/javascript' src='../../../../js/Clipperz/PM/DataModel/Record.Version.Field.js'></script> |
73 | <script type='text/javascript' src='../../../../js/Clipperz/PM/DataModel/DirectLogin.js'></script> | 70 | <script type='text/javascript' src='../../../../js/Clipperz/PM/DataModel/DirectLogin.js'></script> |
74 | <!-- script type='text/javascript' src='../../../../js/Clipperz/PM/DataModel/Record.Field.js'></script --> | 71 | <!-- script type='text/javascript' src='../../../../js/Clipperz/PM/DataModel/Record.Field.js'></script --> |
75 | <script type='text/javascript' src='../../../../js/Clipperz/PM/DataModel/User.js'></script> | 72 | <script type='text/javascript' src='../../../../js/Clipperz/PM/DataModel/User.js'></script> |
76 | <script type='text/javascript' src='../../../../js/Clipperz/PM/DataModel/User.Header.Legacy.js'></script> | 73 | <script type='text/javascript' src='../../../../js/Clipperz/PM/DataModel/User.Header.Legacy.js'></script> |
77 | <script type='text/javascript' src='../../../../js/Clipperz/PM/DataModel/User.Header.RecordIndex.js'></script> | 74 | <script type='text/javascript' src='../../../../js/Clipperz/PM/DataModel/User.Header.RecordIndex.js'></script> |
78 | 75 | ||
79 | <script type='text/javascript' src='../../../../js/Clipperz/PM/UI/Common/Components/BaseComponent.js'></script> | 76 | <script type='text/javascript' src='../../../../js/Clipperz/PM/UI/Common/Components/BaseComponent.js'></script> |
80 | <script type='text/javascript' src='../../../../js/Clipperz/PM/UI/Common/Components/Button.js'></script> | 77 | <script type='text/javascript' src='../../../../js/Clipperz/PM/UI/Common/Components/Button.js'></script> |
81 | <script type='text/javascript' src='../../../../js/Clipperz/PM/UI/Common/Components/ComponentSlot.js'></script> | 78 | <script type='text/javascript' src='../../../../js/Clipperz/PM/UI/Common/Components/ComponentSlot.js'></script> |
82 | <script type='text/javascript' src='../../../../js/Clipperz/PM/UI/Common/Components/PasswordEntropyDisplay.js'></script> | 79 | <script type='text/javascript' src='../../../../js/Clipperz/PM/UI/Common/Components/PasswordEntropyDisplay.js'></script> |
83 | <script type='text/javascript' src='../../../../js/Clipperz/PM/UI/Common/Components/ProgressBar.js'></script> | 80 | <script type='text/javascript' src='../../../../js/Clipperz/PM/UI/Common/Components/ProgressBar.js'></script> |
84 | <script type='text/javascript' src='../../../../js/Clipperz/PM/UI/Common/Components/SimpleMessagePanel.js'></script> | 81 | <script type='text/javascript' src='../../../../js/Clipperz/PM/UI/Common/Components/SimpleMessagePanel.js'></script> |
85 | <script type='text/javascript' src='../../../../js/Clipperz/PM/UI/Common/Components/TabPanelComponent.js'></script> | 82 | <script type='text/javascript' src='../../../../js/Clipperz/PM/UI/Common/Components/TabPanelComponent.js'></script> |
86 | <script type='text/javascript' src='../../../../js/Clipperz/PM/UI/Common/Components/Tooltip.js'></script> | 83 | <script type='text/javascript' src='../../../../js/Clipperz/PM/UI/Common/Components/Tooltip.js'></script> |
87 | <script type='text/javascript' src='../../../../js/Clipperz/PM/UI/Common/Components/TranslatorWidget.js'></script> | 84 | <script type='text/javascript' src='../../../../js/Clipperz/PM/UI/Common/Components/TranslatorWidget.js'></script> |
88 | 85 | ||
89 | <script type='text/javascript' src='../../../../js/Clipperz/PM/UI/Web/Components/CardDialogComponent.js'></script> | 86 | <script type='text/javascript' src='../../../../js/Clipperz/PM/UI/Web/Components/CardDialogComponent.js'></script> |
90 | <script type='text/javascript' src='../../../../js/Clipperz/PM/UI/Web/Components/CardDialogRecordFieldComponent.js'></script> | 87 | <script type='text/javascript' src='../../../../js/Clipperz/PM/UI/Web/Components/CardDialogRecordFieldComponent.js'></script> |
91 | <script type='text/javascript' src='../../../../js/Clipperz/PM/UI/Web/Components/UnlockPasswordComponent.js'></script> | 88 | <script type='text/javascript' src='../../../../js/Clipperz/PM/UI/Web/Components/UnlockPasswordComponent.js'></script> |
92 | 89 | ||
93 | <script type='text/javascript' src='../../../../js/Clipperz/PM/UI/Common/Controllers/TabPanelController.js'></script> | 90 | <script type='text/javascript' src='../../../../js/Clipperz/PM/UI/Common/Controllers/TabPanelController.js'></script> |
94 | 91 | ||
95 | <script type='text/javascript' src='../../../../js/Clipperz/PM/UI/Web/Controllers/CardDialogController.js'></script> | 92 | <script type='text/javascript' src='../../../../js/Clipperz/PM/UI/Web/Controllers/CardDialogController.js'></script> |
96 | 93 | ||
97 | <script type='text/javascript' src='./User.data.js'></script> | 94 | <script type='text/javascript' src='./User.data.js'></script> |
98 | <script type='text/javascript' src='./unlockPassword_test.js'></script> | 95 | <script type='text/javascript' src='./unlockPassword_test.js'></script> |
99 | <script> | 96 | <script> |
100 | Clipperz_IEisBroken = false; | 97 | Clipperz_IEisBroken = false; |
101 | </script> | 98 | </script> |
102 | 99 | ||
103 | <!--[if IE]><script> | 100 | <!--[if IE]><script> |
104 | Clipperz_IEisBroken = true; | 101 | Clipperz_IEisBroken = true; |
105 | </script><![endif]--> | 102 | </script><![endif]--> |
106 | 103 | ||
107 | <link rel="stylesheet" type="text/css" href="../../../../css/clipperz/clipperz.css" /> | 104 | <link rel="stylesheet" type="text/css" href="../../../../css/clipperz/clipperz.css" /> |
108 | <link rel="stylesheet" type="text/css" href="../../../../css/clipperz/compact.css" /> | 105 | <link rel="stylesheet" type="text/css" href="../../../../css/clipperz/compact.css" /> |
109 | <link rel="stylesheet" type="text/css" href="../../../../css/clipperz/ytheme-clipperz.css" /> | 106 | <link rel="stylesheet" type="text/css" href="../../../../css/clipperz/ytheme-clipperz.css" /> |
110 | 107 | ||
111 | </head> | 108 | </head> |
112 | <body> | 109 | <body> |
113 | 110 | ||
114 | <div id="tableWrapper"></div> | 111 | <div id="tableWrapper"></div> |
115 | 112 | ||
116 | </body> | 113 | </body> |
117 | </html> | 114 | </html> |
diff --git a/frontend/gamma/tests/tests/Components/UnlockPassword/unlockPassword_test.js b/frontend/gamma/tests/tests/Components/UnlockPassword/unlockPassword_test.js index 87f3275..80a8c30 100644 --- a/frontend/gamma/tests/tests/Components/UnlockPassword/unlockPassword_test.js +++ b/frontend/gamma/tests/tests/Components/UnlockPassword/unlockPassword_test.js | |||
@@ -1,120 +1,117 @@ | |||
1 | /* | 1 | /* |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | */ | 24 | */ |
28 | 25 | ||
29 | Clipperz.Base.module('Clipperz.Tests.SimpleMessagePanel'); | 26 | Clipperz.Base.module('Clipperz.Tests.SimpleMessagePanel'); |
30 | 27 | ||
31 | Clipperz.Crypto.PRNG.defaultRandomGenerator().fastEntropyAccumulationForTestingPurpose(); | 28 | Clipperz.Crypto.PRNG.defaultRandomGenerator().fastEntropyAccumulationForTestingPurpose(); |
32 | Clipperz.PM.Strings.Languages.initSetup(); | 29 | Clipperz.PM.Strings.Languages.initSetup(); |
33 | 30 | ||
34 | Clipperz.Tests.SimpleMessagePanel.Tester = function(args) { | 31 | Clipperz.Tests.SimpleMessagePanel.Tester = function(args) { |
35 | args = args || {}; | 32 | args = args || {}; |
36 | 33 | ||
37 | Clipperz.Tests.SimpleMessagePanel.Tester.superclass.constructor.call(this, args); | 34 | Clipperz.Tests.SimpleMessagePanel.Tester.superclass.constructor.call(this, args); |
38 | 35 | ||
39 | this._user = new Clipperz.PM.DataModel.User({username:'test', getPassphraseFunction:MochiKit.Base.method(this, 'getUserPassphrase')}); | 36 | this._user = new Clipperz.PM.DataModel.User({username:'test', getPassphraseFunction:MochiKit.Base.method(this, 'getUserPassphrase')}); |
40 | this._unlockPasswordComponent = new Clipperz.PM.UI.Web.Components.UnlockPasswordComponent({ | 37 | this._unlockPasswordComponent = new Clipperz.PM.UI.Web.Components.UnlockPasswordComponent({ |
41 | 'title':"Unlock account", | 38 | 'title':"Unlock account", |
42 | 'text': "Insert the passprase to unlock the account", | 39 | 'text': "Insert the passprase to unlock the account", |
43 | 'type': 'INFO', | 40 | 'type': 'INFO', |
44 | 'buttons': [ | 41 | 'buttons': [ |
45 | {text:"Cancel",result:'CANCEL'}, | 42 | {text:"Cancel",result:'CANCEL'}, |
46 | {text:"Unlock", result:'OK',isDefault:true} | 43 | {text:"Unlock", result:'OK',isDefault:true} |
47 | ], | 44 | ], |
48 | 'openFromElement': null, | 45 | 'openFromElement': null, |
49 | 'onOkCloseToElement': null, //this.getElement('cancelButton'), | 46 | 'onOkCloseToElement': null, //this.getElement('cancelButton'), |
50 | 'onCancelCloseToElement':null | 47 | 'onCancelCloseToElement':null |
51 | }); | 48 | }); |
52 | 49 | ||
53 | return this; | 50 | return this; |
54 | }; | 51 | }; |
55 | 52 | ||
56 | Clipperz.Base.extend(Clipperz.Tests.SimpleMessagePanel.Tester, Object, { | 53 | Clipperz.Base.extend(Clipperz.Tests.SimpleMessagePanel.Tester, Object, { |
57 | 54 | ||
58 | 'toString': function() { | 55 | 'toString': function() { |
59 | return "Clipperz.Tests.SimpleMessagePanel.Tester"; | 56 | return "Clipperz.Tests.SimpleMessagePanel.Tester"; |
60 | }, | 57 | }, |
61 | 58 | ||
62 | //------------------------------------------------------------------------- | 59 | //------------------------------------------------------------------------- |
63 | 60 | ||
64 | 'user': function () { | 61 | 'user': function () { |
65 | return this._user; | 62 | return this._user; |
66 | }, | 63 | }, |
67 | 64 | ||
68 | 'unlockPasswordComponent': function () { | 65 | 'unlockPasswordComponent': function () { |
69 | return this._unlockPasswordComponent; | 66 | return this._unlockPasswordComponent; |
70 | }, | 67 | }, |
71 | 68 | ||
72 | //------------------------------------------------------------------------- | 69 | //------------------------------------------------------------------------- |
73 | 70 | ||
74 | 'run': function () { | 71 | 'run': function () { |
75 | var deferredResult; | 72 | var deferredResult; |
76 | var proxy; | 73 | var proxy; |
77 | 74 | ||
78 | proxy = new Clipperz.PM.Proxy.Test({shouldPayTolls:true, isDefault:true, readOnly:false}); | 75 | proxy = new Clipperz.PM.Proxy.Test({shouldPayTolls:true, isDefault:true, readOnly:false}); |
79 | 76 | ||
80 | deferredResult = new Clipperz.Async.Deferred("unlockPassword_test.run", {trace:false}); | 77 | deferredResult = new Clipperz.Async.Deferred("unlockPassword_test.run", {trace:false}); |
81 | deferredResult.addMethod(proxy.dataStore(), 'setupWithEncryptedData', testData['test_test_offline_copy_data']); | 78 | deferredResult.addMethod(proxy.dataStore(), 'setupWithEncryptedData', testData['test_test_offline_copy_data']); |
82 | deferredResult.addMethod(this.user(), 'login'); | 79 | deferredResult.addMethod(this.user(), 'login'); |
83 | deferredResult.addMethod(this.user(), 'getRecord', '8280842f41162b673335b63860637e8472e8bbff0efa2bc78b0dbc5e09712e13'); | 80 | deferredResult.addMethod(this.user(), 'getRecord', '8280842f41162b673335b63860637e8472e8bbff0efa2bc78b0dbc5e09712e13'); |
84 | // deferredResult.addCallback(MochiKit.Base.bind(function (aRecord) { | 81 | // deferredResult.addCallback(MochiKit.Base.bind(function (aRecord) { |
85 | // cardDialogController = new Clipperz.PM.UI.Web.Controllers.CardDialogController({record:aRecord, delegate:this}); | 82 | // cardDialogController = new Clipperz.PM.UI.Web.Controllers.CardDialogController({record:aRecord, delegate:this}); |
86 | // cardDialogController.run(); | 83 | // cardDialogController.run(); |
87 | // }, this)); | 84 | // }, this)); |
88 | deferredResult.callback(); | 85 | deferredResult.callback(); |
89 | 86 | ||
90 | return deferredResult; | 87 | return deferredResult; |
91 | }, | 88 | }, |
92 | 89 | ||
93 | //========================================================================= | 90 | //========================================================================= |
94 | 91 | ||
95 | 'getUserPassphrase': function () { | 92 | 'getUserPassphrase': function () { |
96 | return this.unlockPasswordComponent().getPassphrase(); | 93 | return this.unlockPasswordComponent().getPassphrase(); |
97 | /* | 94 | /* |
98 | var deferredResult; | 95 | var deferredResult; |
99 | var confirmationDialog; | 96 | var confirmationDialog; |
100 | 97 | ||
101 | confirmationDialog = new Clipperz.PM.UI.Web.Components.UnlockPasswordComponent({ | 98 | confirmationDialog = new Clipperz.PM.UI.Web.Components.UnlockPasswordComponent({ |
102 | title:"Unlock account", | 99 | title:"Unlock account", |
103 | text:"Insert the passprase to unlock the account", | 100 | text:"Insert the passprase to unlock the account", |
104 | type:'INFO', | 101 | type:'INFO', |
105 | buttons: [ | 102 | buttons: [ |
106 | {text:"Cancel",result:'CANCEL'}, | 103 | {text:"Cancel",result:'CANCEL'}, |
107 | {text:"Unlock", result:'OK',isDefault:true} | 104 | {text:"Unlock", result:'OK',isDefault:true} |
108 | ] | 105 | ] |
109 | }); | 106 | }); |
110 | 107 | ||
111 | deferredResult = new Clipperz.Async.Deferred("CardDialogComponent.askConfirmationForLoosingPendingChanges", {trace:false}); | 108 | deferredResult = new Clipperz.Async.Deferred("CardDialogComponent.askConfirmationForLoosingPendingChanges", {trace:false}); |
112 | deferredResult.addMethod(confirmationDialog, 'deferredShow', { | 109 | deferredResult.addMethod(confirmationDialog, 'deferredShow', { |
113 | 'openFromElement': null, | 110 | 'openFromElement': null, |
114 | 'onOkCloseToElement': null, //this.getElement('cancelButton'), | 111 | 'onOkCloseToElement': null, //this.getElement('cancelButton'), |
115 | 'onCancelCloseToElement':null | 112 | 'onCancelCloseToElement':null |
116 | }); | 113 | }); |
117 | deferredResult.callback(); | 114 | deferredResult.callback(); |
118 | 115 | ||
119 | return deferredResult; | 116 | return deferredResult; |
120 | */ | 117 | */ |
diff --git a/frontend/gamma/tests/tests/Components/crossWindowsBookmarklet/CrossWindowsBookmarklet_test.js b/frontend/gamma/tests/tests/Components/crossWindowsBookmarklet/CrossWindowsBookmarklet_test.js index cb80473..9908c6a 100644 --- a/frontend/gamma/tests/tests/Components/crossWindowsBookmarklet/CrossWindowsBookmarklet_test.js +++ b/frontend/gamma/tests/tests/Components/crossWindowsBookmarklet/CrossWindowsBookmarklet_test.js | |||
@@ -1,66 +1,63 @@ | |||
1 | /* | 1 | /* |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | */ | 24 | */ |
28 | 25 | ||
29 | newWindow = function (anEvent) { | 26 | newWindow = function (anEvent) { |
30 | var windowURL; | 27 | var windowURL; |
31 | var htmlString; | 28 | var htmlString; |
32 | var newWindow; | 29 | var newWindow; |
33 | 30 | ||
34 | anEvent.preventDefault(); | 31 | anEvent.preventDefault(); |
35 | 32 | ||
36 | //htmlString = '<html><head><title>TARGET WINDOW</title></head><body><h3>this is the target window</h3></body></html>'; | 33 | //htmlString = '<html><head><title>TARGET WINDOW</title></head><body><h3>this is the target window</h3></body></html>'; |
37 | // windowURL = 'data:text/html;charset=utf-8;base64,' + (new Clipperz.ByteArray(htmlString)).toBase64String(); | 34 | // windowURL = 'data:text/html;charset=utf-8;base64,' + (new Clipperz.ByteArray(htmlString)).toBase64String(); |
38 | 35 | ||
39 | //newWindow = window.open(windowURL, 'CrossWindowsBookmarklet_TEST'); | 36 | //newWindow = window.open(windowURL, 'CrossWindowsBookmarklet_TEST'); |
40 | newWindow = window.open('http://mail.google.com', 'CrossWindowsBookmarklet_TEST'); | 37 | newWindow = window.open('http://mail.google.com', 'CrossWindowsBookmarklet_TEST'); |
41 | MochiKit.Signal.connect(newWindow, 'onload', targetWindowDidLoad) | 38 | MochiKit.Signal.connect(newWindow, 'onload', targetWindowDidLoad) |
42 | console.log("new window", newWindow); | 39 | console.log("new window", newWindow); |
43 | 40 | ||
44 | MochiKit.Async.callLater(2, runBookmarkletScript); | 41 | MochiKit.Async.callLater(2, runBookmarkletScript); |
45 | }; | 42 | }; |
46 | 43 | ||
47 | targetWindowDidLoad = function () { | 44 | targetWindowDidLoad = function () { |
48 | //console.log(">>> targetWindowDidLoad") | 45 | //console.log(">>> targetWindowDidLoad") |
49 | runBookmarkletScript(null); | 46 | runBookmarkletScript(null); |
50 | }; | 47 | }; |
51 | 48 | ||
52 | runBookmarkletScript = function (anEvent) { | 49 | runBookmarkletScript = function (anEvent) { |
53 | if (anEvent != null) { | 50 | if (anEvent != null) { |
54 | anEvent.preventDefault(); | 51 | anEvent.preventDefault(); |
55 | } | 52 | } |
56 | 53 | ||
57 | window.open('javascript:_cble=null;ilf=function(_1){var%20_2;var%20_3;var%20i,c;_3=0;_2=_1.elements;c=_2.length;for(i=0;i%3Cc;i++){if(_2[i].type==%22password%22){_3++;}}return(_3==1);};flf=function(_6,_7){var%20_8;var%20_9;var%20i,c;_8=null;try{_9=_6.getElementsByTagName(%22form%22);c=_9.length;for(i=0;(i%3Cc)&&(_8==null);i++){if(ilf(_9[i])){_8=_9[i];}}if((_8==null)&&(_7==0)){var%20_c;_c=_6.getElementsByTagName(%22iframe%22);c=_c.length;for(i=0;(i%3Cc)&&(_8==null);i++){_8=flf(_c[i].contentDocument,(_7+1));}}}catch(e){_cble=e;}return%20_8;};iev=function(_d){var%20_e;if((_d.tagName.toLowerCase()==%22input%22)&&(_d.getAttribute(%22name%22)!=null)){_e={};_e.type=_d.getAttribute(%22type%22)||%22text%22;_e.name=_d.getAttribute(%22name%22);_e.value=_d.value;if(_d.type.toLowerCase()==%22radio%22){_e.checked=_d.checked;}}else{if((_d.tagName.toLowerCase()==%22select%22)&&(_d.getAttribute(%22name%22)!=null)){var%20_f;var%20c,i;_e={};_e.type=%22select%22;_e.name=_d.getAttribute(%22name%22);_e.options=[];_f=_d.options;c=_f.length;for(i=0;i%3Cc;i++){var%20_12;_12={};_12.selected=_f[i].selected;_12.label=_f[i].label||_f[i].innerHTML;_12.value=_f[i].value;_e.options.push(_12);}}else{_e=null;}}return%20_e;};fp=function(_13){var%20_14;var%20i,c;var%20_17;if(_13==null){_14=null;}else{var%20_18;var%20_19;_14={};_18={};_17=_13.action;if(_17.constructor!=String){_17=_13.getAttribute(%22action%22);}if(%2f^https?%5c:%5c%2f%5c%2f.*%2f.test(_17)){_17=_17;}else{if(%2f^%5c%2f.*%2f.test(_17)){_17=window.location.protocol+%22%2f%22+%22%2f%22+window.location.hostname+_17;}else{_17=window.location.href.replace(%2f%5c%2f[^%5c%2f]*$%2f,%22%2f%22+_17);}}_14.attributes={};_14.attributes.action=_17;_14.attributes.method=_13.getAttribute(%22method%22);_14.inputs=[];c=_13.elements.length;for(i=0;i%3Cc;i++){var%20_1a;var%20_1b;_1a=_13.elements[i];_1b=iev(_1a);if(_1b!=null){if(_1b.type!=%22radio%22){_14.inputs.push(_1b);}else{var%20_1c;var%20_1d;_1c=_18[_1b.name];if(_1c==null){_1c={};_1c.name=_1b.name;_1c.type=%22radio%22;_1c.options=[];_18[_1b.name]=_1c;}_1d={};_1d.value=_1b.value;_1d.checked=_1b.checked;_1c.options.push(_1d);}}}for(_19%20in%20_18){if(typeof(_18[_19])!=%22function%22){_14.inputs.push(_18[_19]);}}}return%20_14;};pp=function(){var%20_1e;_1e={};_1e[%22title%22]=document.title;return%20_1e;};rs=function(o){return(%22%5c%22%22+o.replace(%2f([%22%5c%5c])%2fg,%22%5c%5c$1%22)+%22%5c%22%22).replace(%2f[%5cf]%2fg,%22%5c%5cf%22).replace(%2f[%5cb]%2fg,%22%5c%5cb%22).replace(%2f[%5cn]%2fg,%22%5c%5cn%22).replace(%2f[%5ct]%2fg,%22%5c%5ct%22).replace(%2f[%5cr]%2fg,%22%5c%5cr%22);};sj=function(o){var%20_21=typeof(o);if(_21==%22number%22||_21==%22boolean%22){return%20o+%22%22;}else{if(o===null){return%20%22null%22;}}if(_21==%22string%22){return%20rs(o);}var%20me=arguments.callee;if(_21!=%22function%22&&typeof(o.length)==%22number%22){var%20res=[];for(var%20i=0;i%3Co.length;i++){var%20val=me(o[i]);if(typeof(val)!=%22string%22){val=%22undefined%22;}res.push(val);}return%20%22[%22+res.join(%22,%5cn%22)+%22]%22;}if(_21==%22undefined%22){throw%20new%20TypeError(%22error%22);}res=[];for(var%20k%20in%20o){if(typeof(o[k])!=%22function%22){var%20_27;if(typeof(k)==%22number%22){_27=%22%5c%22%22+k+%22%5c%22%22;}else{if(typeof(k)==%22string%22){_27=rs(k);}else{continue;}}val=me(o[k]);if(typeof(val)!=%22string%22){continue;}res.push(_27+%22:%22+%22%20%22+val);}}return%20%22{%22+res.join(%22,%5cn%22)+%22}%22;};closeBookmarklet=function(){var%20_28;_28=document.getElementById(%22clipperz_bookmarklet%22);_28.parentNode.removeChild(_28);};lfp=function(_29,_2a){var%20_2b;var%20_2c;var%20_2d;var%20_2e;var%20_2f;var%20_30;var%20_31;var%20_32;_2c=%22http%3a%2f%2fwww.clipperz.com%2f%22;_2d=_2c+%22help%2fbookmarklet%22;_2e=%22data:image%2fpng;charset=utf-8;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAAAXCAYAAABOMABkAAAACXBIWXMAAAsTAAALEwEAmpwYAAANJ2lDQ1BQaG90b3Nob3AgSUNDIHByb2ZpbGUAAHjardd5NJRv2AfwaxbGMmbGGHsY2Xcle%2fYtkWzZUpKdYSYmScqSlDVLKNoo2oQWEonqR5YkyZKtyJKlFLJkmfcPqd7feZfznvNefzzneu7nj%2ft+7nM+3%2fvcAHgNdxqNggSAwCB6sK2ZIdnJ2YWM6QQM4IAXsCDi7hFCM7C2toT%2fuhAA852AAABoV3Cn0SjwfytcsJOzCwBCHgBIPuu9PgCQDq739gBAOkKn0QEQvgBA8vB19wRARACAfLC9rREA4iYA4HzW+woAwB1c7xsAABfq4UMHQHQDMBODPP2CADBTAMy6nl4hHgA4eQDw9AzxCATApQKAVWAg1RMA9xEApD1owXQAPAsAKDg5u5DXl7w3AWAbPwCLxZ+xI5kAZXkA0rv+jIk9AuBxB8hP%2fjM2awsIAEDwtIZ4q2xd30GsIQDTAIMxKwmASQdYTWMwlvMZjNVrAKg+gFqKx+Hg0I39RrQA%2fG%2fv6%2f%2f8q1AIACQAQhxRiAxHRaAjmE4wR2FiWE6yGrPWsZ1mP4ON50jClRN8OdOIaVzppHPcmTyZvNl8dQJUwdxNuUKXhBvIh0XzN18Ta5U4Jlko1SZzQvaOXKdCjOJdpZ4tp7feV%2fmgmqRWrj6omaJVqT2qk6H7VG%2fCIMvwudFXkxzTerMZ8ys7myzmd+Vbvd79xvqNTZvtiv3tPR0OnY5dTt0u6L33XPv29e8fcPtw4ONBrMdjz2GvEe9RnzHfz37jAdyUZ4Ffgr5Sp2nfDn0PngmZo88d%2fhE6f2QhbPHoUvjPYysRK8dXI2WiOmIQJ5GxqFPoOKbTzGcw8SwJrIlsSezJ2BSOs7hUfBohnTODeI4rk5TFnc1znvcCXw5%2frsBFwUubLgtdEb4qkkfOF722+bpYgXihxA2pm1K3pG%2fL3JG9M1lEuStfrFCiVKp8b8v9LQ+2PtxWplquVj7%2fKLRC%2fbFGpVaV9pPt1duf6jxdq4ms1Xum%2f9zgheE%2fRnXouth6k5emDWaN5k3mzWzNia8sWixfW7XiWs++sW6zeWvbTmxPf2fXYd+5p4unK7vb8b1Tj0uvQG9un2u%2f68C+D8Ifrnx0GzwwJDqU%2f+ngsMeI56jEaOGY92efcd8JmYnbk%2f5TAV8oXxW+Fk8HfaN+p81smbk%2fGzwX8oM+rzpfvhC6GLZ09OfRZa3lqpVjqxFrOmtPGQwAhBgSh%2fyGakbfYcpgjsD4sNizGrFtY5fCSnHw4XjxfAQ+Tm6iJJc0SYPbkmc%2fbwhfCn+JQLPguBCXsJqID%2fm86EsxhLiOxCHJe1LTMtKyFLkqBZSigVKa8uBWGZW4bV1qsuo0jTotXu2w7a90efSo+s8NxY2OGbeZCpuF7ag2X7LYYum1K9OqzRpnY2YbZldg%2f86BzVHf6ZDzJZf6vdP7RPbvdgs%2fkO9ed3Dck9tLz9vJ54TvVb9a%2f%2f6ApUCuIDmqMc33UERwakg+vexwQ2jvkYmw+XDUMc4I8nH5E6qR+lEW0btj9p48EOt1ihJHPx18Jio+KuFkYnxSenJiSs7ZC6nZaWnpFzPSz2Vlns+6mX3jfPGFmzl3cksuPrn05HLdlVdX2%2fLa89uvtV%2fvLRguHLsxdHPk1vTt73emi77enSmeLpksnbo3dn%2fwwdDDnrK28sZHtRWPHpdUXqxKfxJVHfh0b41F7fZnss+Jz5defPynqe5hfcbL4Aa7RrUmwSZGc8+rhy0Jr11axVpH3zxoO%2f7WpB3X3v%2fuaod%2fp0rnaldLd8b7fT0yPbO9lX0x%2fRYDpIGBD7c+hgxqD6GHmj6dG94%2fIjUyNVo5Fv155zj3eP%2fE9UnKlOrU2pfGr+nTe7+Jf5v6%2fmAmYtZsjjjX%2faNgnrqguYhafLmU9nPvstjyl5Xy1ag1cwYPgwEAJxFhyHCUNqoSfZxJj6mGORpzisWUpY41ju00ewJ2J7aZIxmXjE8h7Ca0cqYS07kySBnc9tzveLJ4s%2fjO8+cI5Armbroo5CrUL3xF5Co5TzRvc57YNfHrEgWShVI3pG%2fK3JL1k52Quy1fpHBXsVipRLl0y72t91UebHuoWq5Wrl6uEaaxqFmpValdtf2JTrXuCd01vRr9WoNnhs+NXhjHmqBN6kzrzV7uaDBv3NlkkWiJtXy1q8Xq9e5W61Qbgk2b7Vu7dvt3ezodshx5HLucup3fu%2fTszXUVdO3b17%2f%2fg9vHAx%2fd8w6KHhzy+OQ57DXiXegjuZ4g%2fhMBdyjylKn%2flCKzv1Ok4qjG0aXwn8eWI1aOr55Yi2REQwzyd5JgzmDiWeIbE3Ymsidhk7EpHGfxqYQ0zt9ZwpPNe57vV5Zs+jtL8oeueVwXKxAvlLwhuZEmRfJ3FYoV%2f8oSlbJt5aqP1CvUH2tUalZpP9Gu3v5Ut0b3rxwxqTd9adpg1rijybzZ4lXo682tVm+s26zf2rQf75DtdOhy7I7pUep16YsbUPkQP6g6lDTsOao9ljbuN+n%2fhTJN%2fZ4w5zJ%2fdilx1ZbBAFg%2f+wAAmNUAsuQAHHIA7PIB4uQApNwAeG4CWHMA2GsCkkkYkDo0QOzU2Tg%2fAAEEEAJFMARnCIFUKIVFBBlhgQhD3ES8Rowh8UgzZDSyGrmC0kFFo+pRK2hRtDO6EP2DyZTpFFMJ0zSzGXMe8yiGG+OKqWbBsGiyxLJMsmqxUllr2RTYotgq2HHs0ezvsSRsEPYzhwnHSY5BnDvuOR6F98ZPEWwIWYRVznjOGaIWsYBLnauAa5rkRlrg9uMu55HjecnrzYfhu80vwX+Ef07gkqCZ4Oymq0LiQhHCCOEyEX+yKLlH9NzmzZujxPBireJpEnskBSSHpO5IG0nfkjGU5ZQdlHsgf1rBVVFFCas0pvzPlvytMSqe28xU5dW41FbURzWyNXGatVql2nnbz+mc0Y3UO6J%2fyIBi6Gfka+xrEmAaZEbfccw8dudZi1zLW7sqrBp391l%2ft8XYCdtr7LFzoDmmOBU7v3GZdeXbp7vf2y31QJX7Zw9eTzOvo95Ffnz+1gEJlLogJNWAFn3oRQgz3eJwepj4UWr4kwi24y4niiIZ0faxyFOucY%2fOcMUfSmhLzkxZSnVLq89QOpeTHXL+U45dbt3l4qsSeZeu8RYSbqTcwt0+eze7RKj0+n2FMuPytgr3x9+reZ8W1Rq+oNfh64sadjYntCi8bnsT2l7fQesS7G7ok+zv%2fpAwqDdcNOr5WWS854vDNM+3rpmcObeFqaWy5UgGH4MBAEhgA16QAT1wgsOQCRUwgMAglBFuiBREDWIWKYt0Q+Yg36HwqF2oJFQLmgO9G52J7mUiM%2fkxlTItMhsxn2V+j5HAHMa8YCGyeLJUsLKzurIWs6HZ9rM9ZGdj92CvwXJjadgWDlmOZI4pnCWuBM+Bp+I7CfqE65w4zlDOXqIp8R4XmSuda40UQvrC7c89wUPhmeGl887zhfMj+JMEBARuC2oK1m9y2DQuFCXML1wuYiMyQY4TlRRt2Bwkxiv2VNxDAivxTDJISkTqrXS8jKHMqmyVXIS8jvyCQo3iGSV7ZVHl6S01W9NU%2fLcZqwqrLqt1qD%2fWuKQZreWj7bhdR0dJV1SPqI82QBnMGH43mjaeNBk1nTWb3PFjJ9KCZMm7a4uV7u7d1rY2AbZH7XLt7+955dDruOJMclHaa+V6aN+F%2fXVuY+6sB5U9fD1zvGq8v%2fnK+Hn5Zwd0BAoG7aHm0j4HS4eE0htDhY6EhDWFix1LiZg44RzZEK0WUxBLPJVymngmK4EvMTdZNeV1qlfaz4zkTPWskfOXc%2fwv7rksc5Upb+ra84KyGxduxd3xuOtaYnpP48G2MsVHCo+lqySqpWuUn+m92FFn85LSeKg5reVq65O2gXZGp0i3To9nX+JA5cepT%2fwjhmNR4zcnh78KfPOeuTw3uiC9FLRcvoZgMACAGQggBIbgDKlQCm837G+4X1ePxqOd0T+YTJlyfnlfw7iyiLDEskyy2rPWsimwXWTHsUezL2CDsJ85PHHuuE94b%2fwUIYSwyhlP5CEWcKlzNZHcSAvcqb9NW%2fHP%2ffJsLYwQLvtl2WZd8i%2fHoTKGfxv+I%2fiX37eatVqlf+z+kfvfu%2f2f1PoM+vH5W%2f9bbWjPv93G3P5bbtLWP3KzmDfsXtLc0Hs9Y8NvEXFD8IOKDcNVJ9cVP+vZcNw43pzw6p+WrNdtb0LfCrXXd9A6S7viuht6Qvsk+wMGjD8kDOoNnf50cLhoZH60%2fbPIeMCE+aT0FOaLw9fC6bhvPt93zMjOss9+nXvz48F81oL9wtRi7JLhT6mfo8uRK3wrl1c5V2NXF9auMxIZDID1+xIAALAZUSnUYLKlkTH8%2f1Yg5fDGHEgAwHoF7bEDACIASPvRze0BgAQAWmAEVKAAFYKBDJZgBMa%2fnmTw+P3FD2D9LgcAwEwAuOgIAFCzeCzq3%2fPSvcLoAABGVNrRYD8fXzrZgEajeJGNqIG0w3SvYHmyeZCHojx5q7KyKgDAfwBYjP%2fgNJJdnQAAAARnQU1BAADY6%2fUcFKoAAAAgY0hSTQAAbZgAAHOOAADeVAAAgmQAAHjTAADDvAAAMucAABx04zkiNwAACnFJREFUeNrsnHts1FUWxz+%2f32%2fenemL0sLQ0kIfUh5ioQiCQGtFRNmCWElFWFwDEohgQNmwJVAx+pcEWERJLFZFDQ93eSgiAtsl8iyV1LYLpaWtpVBK2Q6lj5npvH6zf7QMjFOUxXUTy++bTGZy55x7z9w53zn3nHMzgtfr9aJAgYJuofo1yuXldaxZ8zEej0zv3qGsXbsQg0HL9u0F7NjxTwDS01NYsmSGstMK7j+CtLfbKSmpRpZloqN74%2fHIANTXN3Hy5FkkSSQmJkrZZQX3J0FEUUCrVSPLXtTqW1PFxvYhLe0hRFEiObm%2fsssK7k+C3AlZWRPIypqg7K6CnkmQ8vI6jhz5gZqaBjwemX79evHww4MYM2YIarX0i5NWV1+hqqoeALM5gmHDBgBQUlJNWVkNXi+MHp1MbGwUu3cfpbi4GpfLTXx8X6ZMGc3AgX395jt1qpyqqssApKWlEBxsYM+eo5SV1QKQmNiPp54aQ3R0RLf2uFweTp06y4kTZ6mvtxAcbGDo0DgefzyViIhgP9mqqnqf7QMHmklKiubs2Vr27j1Oc3M7K%2f+STWhHIdhugCB2vwFeGdRGiJkEolrxsp5CEJfLw7p1O9m27R+0t9vxeGQ8HhmNRkV+%2fn5GjnyAN998ibi47vMKQeh8%2fvLL46xduwNJkpg+fTwbN74CwOHDZ1i%2f%2fgtEUWT+%2fKnU1l7l0KHvAdBoVEiSyNat37J8eTZZWRN98+7efYzPPz+IWq1iyZIZFBaWc+LE2QC93Ny5TJqU6mdTXd01cnM%2f5tSpszidLlwuD5IkIkkieXn7eOONFxk%2f%2fkGf%2fJ49x9iw4W8AvPbaTMrLzeTmfkR7ux2tXseSRZMJPf4qNJyH238rhK4HgAcINcPsMtCGK17WUwjyzjvbyc%2ffT1CQjtBQI6mpgzAYdBQXV2CxtFFYeI6lSzexdWsOJpP+jpNqNGqCgw2AgF6vvW1chcmkJyhIz969x7Ba7aSlPURUVDjl5bVcvHiVjg4na9Z8TEREKGlpwwHQ6dSYTAaMRh2ffnoQh8PFpEmphIQYKSur5upVC62tNlas+ICIiFBSUhIAaGpqZdGi9Vy4cBmNRsWgQfEkJfWnoaGJ0tJqrl69ztKl7%2fHhh39m+PB4n+0mkx6tVsOZMxfYvr2gkxxaNSqpixHGEDAZQKXrSsYk8AKO64AIHhdIkuJdPYkgJSXV7NhRgNGoRxQF3n57HpMnjwKgtraR+fPfoa6ukaKi8+za9R1z507+VQvb7U4WL36WRYumAWCzOVi27H2OHy9Flr1s2fK1jyA3Icte3G6ZlSvnMGtWBgDXr7fxyisbKSurwmZz8dFHB0hJ6YxYmzfv9ZFjxoyJrF79RySp81i0adNuNm%2fei9XawaZNe8jLe81vLbVaorS0Go1GxUsvPcUjjwxGlr2E946EJ%2feBx9EZMgSh8xh1+EX48evOqOIGBk5TokcPgO8QfeDAaTo6nLhcbjIyUn3kAIiLi2LhwmlkZIwkM3OcX8XqXuB0uhk8OJZ58572jRkMWl599VkMBh1qtYqKiotUV1%2f5iZ6LUaMG+cgBEB5uYvHiZxBFEa1Www8%2fVHL9ehs2m4MjR4rRaFSEhZlYsOAPPnIAzJ07mZiYSFQqkeLiSl%2fecTsZvV6ZnJzZ5OS8QHp6ChkZIwgyGkAXAUH9IMgMhr5QtrmLHBI4PDDoGZiwQfGunhRBzp+%2fhEolIcteRo16IEBwxozxzJgx%2fn+yqMvlZtiwAWg0%2fkRLSOiH2RxBVdVlXC43dXWNxMebfe+73R5GjEgMmG%2fw4FgiI8O4dq2ZlhYrjY3NSJKAxdKKWq3C7fbw1lufBujZbB1IkoTV2kFFxSUSEvr55WOxsX2YMuXhn%2f8wJX+FE6tBJYLTA3ETYdJW%2fBMUBb9rgng8MnZ7B6IoIIoCvXoF%2f8bLejGZDAGjarVEUJDeR4bWVluATHBwUMBYUJAOrVbti052uwNBEHA4XBiNOhwOFwcPFvHTWzU6nRZRhI4OJ42NzX7veTweoqMj%2fXKoAFTthGPLOsnhliFqKEzeBiqj4lk9iSCSJKLRqJFlkGUZi6U1QLClxUp9fVNnjmrU079%2f5K9YVuDGDWu35Vir1d5pmErCYAh0zhs32gLGrNYOHA5XF8lUaLVq37PT6SYiIoS1axd2fUbZp6fValCpJJxON9HRvbstNtwRlwvg8J%2fg5nwhMTDli84jl4Ked8RKSDBTWHgOlUqiqKiCmTPT%2fATz8%2ffzwQf7AC+zZk1i1ao597yoWq2itLQam83hR4Iff2zgypUmJElCq5WIje3jb2yXbV6vF+FmTRmoqLiExdKCIAiYTHqiosLR6dT06hXMtWvN2O0OBgwwB5Sna2oasFhakSQxoB%2fys7CUwLfZ4LJ1lnZ14fD0bggdpHhUT03Sp04di0ajQq1WUVBwhq++OukTKiqqYPfuo77k%2fPa+wb1Ao1FRWXmJd9%2fdhdvt8VWj1q37AputA5fLTVJSf5KSov30tFoNxcWV5OV97Ru7csXChg1%2fx+Vy43A4efDBeCIigjEa9UycOByn001bm42NG3fR1mb36R05UsLs2W8xc+Yb5OTkIct3eanZWg%2f7n4P2f3cm5YIIo9+EsEFgvXLbox7cVsXDekoEGTEikdmznyAvbx8Gg47c3Hy2bStApRKpqKjDbndis3WQmfloQPn1XmA06snP38%2fRo6VERYVTW9vAtWvNiKIIyLz88tRu9QwGHevX7+SbbwoJDw%2fmwoVLNDe3IQgiBoOa+fNv6S1YkElhYTlVVfUcOnSasrJq+vePwmq1U1l5CbvdiU6nYdmy57o9znV%2ftPoOLBdAowZkECT4%2fm0oXP2TUl0bpL0Pg+cpXtYTCAKwfHk2JpOBzz47iMXSysmT%2f+JmjmI06snOzmDFiudvS2RlX8fdZgvyJcFOp4vWVhuSJGG3OwIWdTicTJ06DoNByyefHKC0tMbXEe%2fVK5jXX8%2fuloQOh5Pnn3+clhYbO3cW4PHI6PUaAMzmXqxcOcfXJASIigrjvfeWsmbNJ5w+fY6amltXYDQaFVFRYSxZ8ixTpoy+5ddOF21tdkRR9OVD%2fumTt7NT7nTd3AXoaAiUcwIuJYL0KIKIosCiRdPIzBzHsWOlXLzYCECfPuGkpj7AkCFxfsqJidFs3ry0qyKk8VV8MjPHkZwciyAImM2B96Pcbhm9Xs2qVXPIyBhBYeE57HYnMTGRpKen3PFOldvtISQkiJycF3jyyVTOnKnE6XQzcGBfHntsBJGRoQE6cXFRbNnyOkVFFZSWVtPU1IJGoyIxMZqxY4fSu3eIn%2fz06Y8ydOgABEEgMjIs0AjzeJi24873sHy%2fHk7oM1rxsJ5EkJuIjo4gO%2fuxX1QOCzMG3H0CiI83+%2fUvuvUfT2e0GTt2CGPHDrlrg29WodLTU0hPT7krHUkSGTMmmTFjkn9RNiGhn18%2fJPBsGAMJMYrn3G9JugIFCu4ygvxWcDrdWK0O3+v%2fTq%2fjv9ZToOB3RZAnnhhFTEwkoigwYMDdN9SysiYwcmQisuwlOTlW+dYU%2fN8gKP9qokDBnfGfAQA9nOAwz2UemwAAAABJRU5ErkJgggo=%22;_2f=%22data:image%2fpng;charset=utf-8;base64,iVBORw0KGgoAAAANSUhEUgAAASwAAAGlCAYAAABAwstlAAANMWlDQ1BJQ0MgUHJvZmlsZQAAeJyV13k0lG0fB%2fDfLIxlzDDGHkb2XWQPWSJL9mwpMXbDTAyplCUpRJZQtKBoU5RIJKqHLAnJklBUZCmFSJZ5%2f5Dqfc553ue81x%2f3+d2%2f+9znuu77nM%2f3OhcAXsuTRqMgASA4hB5qb2ZEcnF1I2F6AAM44AMsiHqSw2iGtrZW8I9jvgcQAABdip40GiUc3ZFJftCtapBvLz7n36D0z+8BAAAu1MXVDQChAABEv7V6KwAQvdZqRwAg7qfT6AAIfwAgkv09vQEQUQCgEOpobwyAuAoAOL+1ugoAcF5rdRMA4CLIfnQARB8AMyHEOyAEADMFwKzv7RNGBsApAIC3dxg5GACXBgDWwcFUbwDcWwCQIdNC6QB4FgBQdHF1I60teVcSwGYBABbL3739WQAVBQAyO373xO8B8HoCFKb87s3aAwIAELztYb5qqgAAgMAaATANMRizUgCYDICVdAZjqZDBWLkEgBoAqKeQw0Mjfv4vBKIN4N%2fu177550AhAJAACAlEMfIgKgodxXSEOQYTx3KU1YS1ge04+wlsIsdJXCWnP1c6IZ07g3iaJ4s3iy+Hv0GQKpS3IU%2f4vEgTKVyscOMl8XbJQ1LF0p2yR+RuyPcoxindVO7fdFz1jtob9ZMalZrD2qk61bqjepn6Dw0mDLONHht%2f3pZr2mg2Y37RosVyfkeh9XObDtsOu077ZcfrO7udepx7Xfrc0Ltuuw%2fsHtwz5PFm71svLPm+93ufD76jfmP+HwPGg3goj4I%2fhXymTtO+7PsaOhM2R58L%2fxYxv38h8vuBxYM%2fDi1HLR9eiZaN6Y5DHEXGo46hE5iOM5%2fAJLIksSaznWRPwaZynMKl4dM5M7gyCae5s4jZPDm8Z%2fjO8ucK5AmeEzq%2f4YLwRZF80QJSodiljZfFiySKJa9IX5W+JnNd9obcjckSyk2FW4qlymUqtzfd2VSuendzhXqlRuX8vYgqzfta1To1ug+21G55qPdwtS663uDR1seGT4z+Mm5AN8Q3bntq2mTWbN5i3srWmvzMss3quXU7rv1Uh22n3Qv7LkJXxkuHbseenb28vTl9zq9c+t1eC77OG3AfdB%2fa%2fUbkzcW3HsN7R8RGCt95vSd%2f8B6VHC0e8%2f3oN+4%2fITtxfTJwKugT5bPi51vTIV+oX2kzm2buzIbOhX2jz6vPVy5EfI9cPPDjwJLOUs3yoZWoVb3VhwwGAEIciUN+QbWibzBlMkdh%2fFgcWY3ZNrNLY6U5+HF8eH5Ofi4eghS3DFGLx4p3D18Yf6pAqWCr0Lgwt4iGqB%2fpjNhTcYSEnuQ+qdvS07IychT5GkWUkqFyusqwqqxawuZeDTlNmlaDDp9u5JZn+rwG1K2PjSSMD5l0moqYRW6vNV+03GTlsyPLutMWZ2dmH+lQ5PjSic15q8s+1%2fNujbumd4vusfE4uLfQs8Fr3JvHx8DXxe+If35AfeBg0GIwd4g81YTmvy8qNC2skF4R3hTxev9E5PxB1CGuKNJhhSPq0VtjLGNt4nYd3Rvvc4ySQD8eeiImMSbpaHLiyYyU5NTcU2fTctLTM85lZpzOzjqTfTXnyplbZ6%2fm3sgrPffg%2fIMLDRef5XcWdBV2Xeq6%2fLroffHYlZGrH65NX%2f96Y7rk882ZW9Olk2VTt8fuDJeP3O2v6Kxsvldfde9+afW5mowHMbXBD3fVWdZveST3mPB48cnbv1oa7jZmPg1tcmjWaBFqYbT2P7vblvTcrV28fbSjvPPwi21duK7Bl%2fndgT1qPSu9bX2Zr3b3y%2fbPvq4eiBu0HCIODb259jZsWHcEPdLy7vT7PR+kP0yNVo%2fFfrQY5xkfnLg8SZlSn1r91Pw5Y3rXF4kvU1%2fLZ6JmzeYIc33fiuapC9rfUd+fLqb%2f2LUkvvRpuXIlZtWcwctgAMBRRCTyIEoXVY0+zGTAVMcciznGYsrSwJrAdpw9CWuBbeVIwaXgUzltONu50ggZ3JnETB5Hnpe82XzZ%2fGcEcgXzhPI2nBN2Fx4UuSiaTyoQK9hYIH5J4rJkkVSx9BWZq7LX5ALkJuSvK5Qo3lS6pVyqUrbptuodtfLNd9UrNSo1K7Uitb5rV+tU69ZseaBXq39Ef9Wgbmu94SOjx8ZPTOK3obc1mDaaPd3eZN5s0WKZbIW1erajzfq5Tbttmh2nXaf9C4cux5c7e5yynXmde136XF+59e%2fKcxdyH9g9uOeNx9u9bz0LvMS8RsjvvN%2f7fPAt9pNaS5DAiaAbFAXK1H+lyOyvFKk6oHVg8eCPQ0tRy4dXjqxGM2IhDvkrSTAnMIksic1JFsnsJ7Ep2FSOU%2fg0znSuX1nCm8N3hv9nlmz4M0sKRy6RL4sXSRRLXZFaT5MShZuKt5T+yBK1is2V6vc0qzTva1Vr1+g+0K3d8lC%2fTv+PHNnWaPrUtMmseXuLeavls4jnG9utO2w7bV%2fYdR3ulutx6nXui+tXfu02kDCk9iZxWH3k5HvvUd2x9PGAycBPlGnq16Q5t%2flTi8kr9gwGwNreBwDArAGQLQ%2fglAvgUAiQIA8g7QHAexXAlgPAURuQTCKA1KMBwkJvff8ABHCCMCiBEbhCGKRBGXxHkBCWiEjEVcRzxBgSjzRDxiJrkcsoPVQsqhG1jBZDu6KL0d+YTJmOMZUyTTObMRcwj2J4MO6YWhYMizZLPMskqw4rlbWeTZEthq2KHccey%2f4KS8SGYD9ybOM4yjGM88Q9xqPwvvgpTjvObM4VrkSuGYIOoYhbk7uIe5roQVzgCeCp5JXnfcrny4%2fhvy4gKbBfYE7wvJCZ0OyGfGEJ4SgRhEiFaCBJjNQvdnrjxo0x4njxdol0yZ1SglIj0jdkjGWuyRrJcckNy5crHFd0V1JTxiqPqfy1qVA1Ts17s5m6gga3xrLmqFaONk67XqdMt2DLab0T+tEG+7fuM6QYBRj7m%2fhvCzINMaNvP2Qeb3HKMs%2fq2o4q62abAduv9hgHEUetnQ5ONOdUl1uuHW6z7vy79ff4eqTtrfH8SObzNvM54FsSwB9oG5REaQhBUg1psfuehDHTLcMzIiUOUA8+iGI77HakJJoR6xiPPOaecO8Ed+K+pM6UrNTFNI%2f0xkzl07k5YWfe5TrkNVy4lS9ZcP4SXzHnldRruOunbuaUCpddvqNYYVLZWeV5%2f2st38OSeqMn9AZ8Y0mTRWtSm+Lzzo6IrsZuWq9QX9OA1GDfm6Rhg%2fclo94fRcf7PzlN837pncmd81iYWqxYimbwMxgAgAQ24ANZMAAXCIcsqIIhBAahgvBApCLqELNIOaQHMhf5EoVH7UCdRLWhOdA26Cz0ayYSUwBTGdN3ZmPmU8yvMJKYcMwTFgKLN0sVKzurO+stNjTbHra77GzsZPY6LA+Whm3jkONI4ZjCWeFK8Rx4Kr6HcyvnZS4cVwTXa4Ip4TY3iTuDe5UYRvzEE8gzwUvhneGj883zHxRACJwUFBS8LqQt1LjBacO4cIyIgEilqJ3oBClBTEqsaWOIOJ%2f4QwmyJFbykVSItKj0C5lEWSPZFbka+SgFPYUFxTqlE8qOKmIq05vqVNPVAjebqIuoL2l0a97XOq8dq+On67xFT09ZX8yAsBVtiDKcMfpqPG0yuW3UdNZscvs3C6Ql0YpvxyZrfRsbW3u7IPsDDnmOd3Y+c3rtvOxKdFPeZe2+b%2ffZPQ0eY56sXipkf+9cnzrfL%2f6yAT6BOUHdwUIhO6l5tI+hMmER9OYI4f1hkS0HxQ+lRk0ccY1uitWIK4onHEs9TjiRncSfnJeinvo8zSf9R2ZKlmb2hzMXcgPP7bwgm89UMHXpcVHFlbPXEm6Qb7qXmt7WKt9coXRP8b5MjWStTJ3KI4Mn2xvsnlKa97Wmt+W3P+gc6mL0iPbp9XsPJA9Vv516J%2fDBaCxm%2fOrk+8+CX3xnLsyNLsgshixVriIYDABgBk4QBiNwhTQogxfr9tfdr6lH49Gu6G9Mpky5P72vYtxZRFniWSZZHVnr2RTZzrHj2GPZF7Ah2I8c3jhP3Du8L36KM4xzhSuRwEso4tbkbiF6EBd40n6ZthaY++nZVgQhUvHTst2a5J+OI2SN%2fjT8W%2fBPvy+063XKftv9Lfef3f4vtX7DAfyBtn9XG9H%2fd7dx1%2f+Ue1L1t9xs5nW757XX9V7OXPdbQlgXXF61brjm6JriR%2f3rjpvHW5Oe%2fdWW%2fbyzI+KFcFdjN62nrDehr6k%2fYkBqMGjI5E3SsMHI8Xde70s+zI92fRQdD5own5SZwnxy+lw8nfDF7+v2GblZ9tnPcx3fyuezFxwXpr7HLxr9kP4xuhS9zL98YYVrJX5lYfUyI5nBAFg7LwEAAJsxlUINJVkZm%2fzL4e7%2fHcGU8PU5kACA9QnZ6QAABACQCaCbOwIAEQB0wBioQAEqhAIJrMAYTH5eSUD+9SQAYO0sBwDAzAlwzhkAoO77oZi%2fz0v3iaQDABhTaQdCA%2fz86SRDGo3iQzKmBtPC6T6hCiTzELKSAklVRUUdAOA%2f67wHk5DqTvYAAA7ISURBVHic7d1NjNz3Xcfx78w+2Y7tJo5rjEOVh6YoNaWAcqgSIiFURYVWEEJIT9wRF4SK4AZCQoJLIwWJCxcuHCo1TaJIqE3CgyrIg+K2qKVpm0DzUMWpHSdO4ti7ftjdGQ6zf+9%2f%2f95N7Zm1vZ%2fk9ZL+mp3Z2ZnxYd%2f6%2fn7z33EVAAAAAAAAAAAAAABsJb0P2fMCm2d4pZ%2fwSoSj+xy9DW7f6P7A1deN00bXL2vELlccuo%2fbX7mtHavu9cv5eoDJDda5Pqy1sepe31SbHYj247Uj1V%2fnst%2f6md4GjwFsDetFqTkGrWO9729auKY364HqwumpX1VTtRqnqc71dtDWm7aAq2%2fY+bq53o7Ucufr5noTs+7jjG2zgtVEph2n5uuZqpo6cOCOj+39yK2fn5nZ8dler39Tr9ff1+v1rtmk5weukOFwOD8cDo4NB4OfnFta+Pe33n3x8SNHDh2uUagWazVayzVqQzdeY9uMaaY9ITWxml45Zm644c4b9u05+Bcz03NfrOpNbcLzAVvKcHlx8czXjh7%2f%2fpePHDn0eo2itdQ6lmvt0nFskwarvYxrh2q6quYO3vrFz+%2fc+dG%2fr15v54TPA2xxw+Fw%2fuTJo1964aWHH6+qszUKV3O0l41jLw8nmXg2itVMVW3%2f9ME%2f%2fKPt26%2f%2fcq%2fXm5vgOYAQvV5vdnZ21xf2XPfx08feev75zrc3ZQ9rkgmrvQxsQjVTVdtu+%2fh9X9i1a%2f8%2f9nq9NY9%2f8y37655776zP3HFb7d+%2fp3bs0DJIs7Bwto4efbuee%2faFeuzRZ+qVl4+u+f5wWIMTJ177k%2f995bFvVNWZGk1bZ2t1edhMW5ds3GB196xmaxSruX37fu2mGw%2fc+a%2ftDfXp6an60z%2f7%2fbrv%2fruq3++v%2f4hAnMFgUA8%2f9FQ9+MAjtbS0fP724XA4%2f%2fJr3%2fzd48d%2f8GqNonWmqs7V6r7WWPtZ4y4Jm2A1pyrM1Cha2z9x02%2f%2f1fT07K82d5yenqoH%2f+GP6+7P3V6dgQsI1+v16pc+dWN9+lduricf%2f04NBsPm9tkd266%2f9o03v%2feftbpv1d58rxpjmThJsJpTF2aqaq6q5vbu%2feWb9u659e+qeufHqC%2f9+R%2fU3Z+7fcynARLccMPe2r17Rz3z9A%2fP3zY9PfuJhbMnvnHmzPH3au27hGOf4jDO+qx7GkOz2T67b89tv9U+deHmW%2fbXffffNc7rAsLcd%2f9ddfMt+1u39Kb2XX%2fw7qraXqvbRu1zNC95yTXJhlL77PWZqpqdm939G+073HPvnfas4EOi3+%2fXPffeuea27XPX%2fXqNVmCztTrcTNWFf5J3cc8x5mtb7x3CuX5%2f+hfad%2frMHbeN+fBAou7vfH9q5kBVbatRsGZr7YR1ycYNVvtPcM4vCfv9qb3tO+3fv2fMhwcSdX%2fnp3pT19dowmpOe2omrO4nuFyUcfewmssmXNNVNdPr9be37+g8K%2fhw6f7O9%2fpTzXTV7F+NHauqyZaE7T2sZsoC6Gomq+a4Ypvu3Y+D6XcOgK7uR0t1+3HRJt10735CA0BX+93Bsaerqsmmom4lncYOrGe9yeqKB6vqwkkLoGviUDUmnbAAfpaN3hG8ome6t1+ICQvYyHr%2fW9ZVWRIC%2fCybthoTLCDGJKc1AIzrii4Ju2tRAQPez0a9uGJ%2fSwhwsd6vGxfdFHtYQAzBAmIIFhBDsIAYggXEECwghmABMQQLiCFYQAzBAmIIFhBDsIAYggXEECwghmABMQQLiCFYQAzBAmIIFhBDsIAYggXEECwghmABMQQLiCFYQAzBAmIIFhBDsIAYggXEECwghmABMQQLiCFYQAzBAmIIFhBDsIAYggXEECwghmABMQQLiCFYQAzBAmIIFhBDsIAYggXEECwghmABMQQLiCFYQAzBAmIIFhBDsIAYggXEECwghmABMQQLiCFYQAzBAmIIFhBDsIAYggXEECwghmABMQQLiCFYQAzBAmIIFhBDsIAYggXEECwghmABMQQLiCFYQAzBAmIIFhBDsIAYggXEECwghmABMQQLiCFYQAzBAmIIFhBDsIAYggXEECwghmABMQQLiCFYQAzBAmIIFhBDsIAYggXEECwghmABMQQLiCFYQAzBAmIIFhBDsIAYggXEECwghmABMQQLiCFYQAzBAmIIFhBDsIAYggXEECwghmABMQQLiCFYQAzBAmIIFhBDsIAYggXEECwghmABMQQLiCFYQAzBAmIIFhBDsIAYggXEECwghmABMQQLiCFYQAzBAmIIFhBDsIAYggXEECwghmABMQQLiCFYQAzBAmIIFhBDsIAYggXEECwghmABMQQLiCFYQAzBAmIIFhBDsIAYggXEECwghmABMQQLiCFYQAzBAmIIFhBDsIAYggXEECwghmABMQQLiCFYQAzBAmIIFhBDsIAYggXEECwghmABMQQLiCFYQAzBAmIIFhBDsIAYggXEECwghmABMQQLiCFYQAzBAmIIFhBDsIAYggXEECwghmABMQQLiCFYQAzBAmIIFhBDsIAYggXEECwghmABMQQLiCFYQAzBAmIIFhBDsIAYggXEECwghmABMQQLiCFYQAzBAmIIFhBDsIAYggXEECwghmABMQQLiCFYQAzBAmIIFhBDsIAYggXEECwghmABMQQLiCFYQAzBAmIIFhBDsIAYggXEECwghmABMQQLiCFYQAzBAmIIFhBDsIAYggXEECwghmABMQQLiCFYQAzBAmIIFhBDsIAYggXEECwghmABMQQLiCFYQAzBAmIIFhBDsIAYggXEECwghmABMQQLiCFYQAzBAmIIFhBDsIAYggXEECwghmABMQQLiCFYQAzBAmIIFhBDsIAYggXEECwghmABMQQLiCFYQAzBAmIIFhBDsIAYggXEECwghmABMQQLiCFYQAzBAmIIFhBDsIAYggXEECwghmABMQQLiCFYQAzBAmIIFhBDsIAYggXEECwghmABMQQLiCFYQAzBAmIIFhBDsIAYggXEECwghmABMQQLiCFYQAzBAmIIFhBDsIAYggXEECwghmABMQQLiCFYQAzBAmIIFhBDsIAYggXEECwghmABMQQLiCFYQAzBAmIIFhBDsIAYggXEECwghmABMQQLiCFYQAzBAmIIFhBDsIAYggXEECwghmABMQQLiCFYQAzBAmIIFhBDsIAYggXEECwghmABMQQLiCFYQAzBAmIIFhBDsIAYggXEmCRYw84BsJFN6cU4wRIo4FJ1mzF8n+9taNwJS7CAzXBJLbGHBcTYzGCZuoD1bFobNnXCGg6Wz7SvLyyc3cyHB7a47u%2f8YLB8trZQsAY1ejGDqhouD5beaX%2fz6NG3J3x4IEn3d355sHhi5cvmzbpBTfDG3STBGrReSFXVcHn53BvtOzz37AsTPDyQpvs7v7R05q26MFLdy4u2GUvCwcqxPL9w7L%2fb33js0WdqMBis%2f1PAB8pgMKjHHn1mzW2n5o8+X1XLreOKnofVPflr0D6OvvU%2fh4bD4flCvfLy0Xr4oafGfW1AkIcfeqpeefno+evD4XBw7Pj3v1udTrSOS47XJOdhtZ94qaqWTp16%2fY35hWNPt+%2f44AOP1LcOvTjm0wAJvnXoxXrwgUfW3HZq%2fsi35+ffOFYrfajVKasdrEsyNebr61fV9MrPz6wcs1U1d%2frsu0f2XveLv9nr9aerqgaDYT35+Hdq9+4d9cmDH6terzfmUwJbzWAwqK999b%2fqr%2f%2fyn2tpabl1+%2fLZH7%2f6xD8tLs6%2fXVWnqmqhqs5U1dmqOldVi7Uar4s2TrB6K0d%2f5ZiqUbxmq2rm3LmTg15v+p1dOw%2fc3utVb%2fTih%2fXM0z+s%2f%2fi379bi4nJds3Nbzc3N1szM9BhPD1xNCwtn67XX3qzHv%2f7t+tu%2f+Up9%2fV8O1WCwOiwNh8Ph60cOfeWdd%2f%2fvxaqabx1nVo52sC5pyhpn3OnV6mQ1W1XbqmpnVe2qqo9U1bVVteeWGz%2f7O9dfd9vv9YxU8KExHA6Hbx7%2fwROvvvbNJ6vqnap6d+XyRFW9V6NJ63SNJq1mmXjR0Rp3wqoaTVdNvJpjujneOfHK4RrU8Z07f%2f6TzfIQ+OAaDJbOHf7pcw8fPvLsszVaBp6q1emqvSRcrFGsmr2sizbuHlbV6rKwuZyq1YD1q6p%2fcv6nx989+ZPnt81du3N2dtfPmbbgg2c4HA7eO3n4+R+%2f+sRX3z3x0ks1CtXJ1uXCytGOVROsSzJuQJowNRPVtqrasXLsWjl2ty6v2b597%2f6P7jn4qd07D9w6PbP9uumpuWv6%2femZMZ8fuEoGg6XFpeWz84uLp0+cPHX45Tff%2ftGPTp8+%2fmaNlnpNqN5rHfMrtzVLwXO19rysizZJsLob7ttWjmtqtKe1s1ZitfL19pVjbuX+zbuMzZRW5dMjYCtqn5nenNK0XKNpabFGETpTq0u%2f9nTVLAtP1yhUzZQ11qkN4+4tNS+613rh7eVhr%2fWPa8a%2fsyvHbK0Ga7rzc1XjRxS4fAaty2Y6WqrR736zN7VQq9NU83V7qmqfyjDWeViTboZ3a9trHe1gnavRP+p0rR+s9pQlWLD1dKerQY1+55upqZmymv2qM63Lc7X6juBYoWpMEqzmxW%2f0vabCzT%2fqdI2WjLM1OiWiWU62gyVWsDW1%2fySv2TBvJqxmgmomrTO19iTRJljt0xjGitZmTVhVo9gsdm5vV3i2RtGaqbXTVfPuYjtW9rLg6lvv0xWaCamJTxOi9v5Uc9nEqrnfRB8tUzV5sKounLQWa+3oOFOre1hNrJrztjaarkxacPWtF5b23xA3IWoum32q9qkL7VhNtBys2pxgNdqbcu1gNWNjO1TN0d5sb09VggVbR3sqan7P25vn3T9ubp9n1XSgasJYVW1+GLonk645kbTWn6zaobIUhK2ne1pD1doYtb9u9qgm+hiZjVyOSaZ7TlW%2fLlz6rffOoKkKtrbup4a2V1ODdW6rWrtdNLHLGYn1YtTdrxIqyNKelNofk77esemuVCy6z7NRqMQLtq71%2fvfmsf4H53FttUBstdcD+D9HAQAAAAAAAAAAAAAAIN3%2fA%2fPNWgCA%2fF3MAAAAAElFTkSuQmCCCg==%22;_30=%22data:image%2fpng;charset=utf-8;base64,iVBORw0KGgoAAAANSUhEUgAAABEAAAARCAIAAAC0D9CtAAAABGdBTUEAANbY1E9YMgAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAGiSURBVHjaYvz%2f%2fz8DiYAFU+jhg5cXLtx9%2f+4LLy+nlpa8hpYsIyMjTj03rj%2fu71l74fxdZEEFRfG8wkBrG224CCPcbfv2XKivWfjr1x+s7snM8U1IcoOwmeA24NEABNOnbN698yyKHqCTIBrcPU2WrKiIjHYEsh2c9BctK0tMcYeomdC37sePXyAW0G0P7r8wM8yBoFs3n%2fwHgwP7L%2f79+xfI+Pnzl6VpHkR27+7zQBGQPcie3rr5JIRh76DHxASS3bHtzN8%2f%2fyCCF87fgbrt%2ffsvcD3Ll+4%2feOASnPvg%2fsuO1hVwLjACoHqA8QAXBfrB1k4HOaDjEl3hXF4+LqgeYMTBRZNS3CFOAtoAEUlIdGNmgQaVlrYcVA8wpoHmQUT377v469fvTRuOR4W1zZi25cf3X6DAAPuHi4vd1l4XEadHj1wtypsB0QY0Fe5pZHZOvn9svAsifoBJAxjTEDZcETLbw8s0Js4ZPe0AATCmgRH35vUn5BQAdFJSqgdQAzylMqLlBWBMHztyDRgPoHTNxwX0NNAP%2fPzcyGoYycg%2fAAEGABYVzxqE3YcJAAAAAElFTkSuQmCCCg==%22;_2b=document.createElement(%22div%22);_2b.setAttribute(%22id%22,%22clipperz_bookmarklet%22);_32=%22%22;_32+=%22%3Cstyle%3Ediv#ClipperzBackgroundDIV{width:290px;height:420px;padding:20px%200px%200px%2020px;margin:0px;border:0px;background-color:transparent;background-repeat:no-repeat;position:absolute;z-index:20000;top:40px;left:40px;background-image:url(%22+_2f+%22)}%3C%2fstyle%3E%22;_32+=%22%3Cdiv%20style=%5c%22border:0px;margin:0px;padding:0px;padding-left:10px;%5c%22%3E%22+%22%3Cimg%20style=%5c%22padding-top:5px;%5c%22%20src=%5c%22%22+_2e+%22%5c%22%3E%22+%22%3Ca%20href=%5c%22javascript:closeBookmarklet();%5c%22%3E%22+%22%3Cimg%20style=%5c%22padding-left:28px;padding-bottom:10px;%5c%22%20border=0%20src=%5c%22%22+_30+%22%5c%22%3E%22+%22%3C%2fa%3E%22+%22%3C%2fdiv%3E%22;if((_29!=null)&&(_2a==null)){_32+=%22%3Cdiv%20style=%5c%22width:255px;border-top:1px%20dotted%20%23336;%5c%22%3E%22+%22%3Cdiv%20style=%5c%22line-height:10pt;margin-right:10px;margin-top:5px;padding:5px%2010px;color:%23666;text-align:left;font-family:sans-serif;%5c%22%3E%22+%22%3Cp%20style=%5c%22margin:0px;font-weight:bold;font-size:10pt;font-family:sans-serif;%5c%22%3EHow%20to%20add%20a%20new%20card%20or%20a%20direct%20login%20to%20an%20existing%20card%20for%20this%20website:%3C%2fp%3E%22+%22%3Col%20style=%5c%22padding:0px%200px%200px%2020px;font-size:9pt;font-family:sans-serif;%5c%22%3E%22+%22%3Cli%3ECopy%20the%20content%20of%20the%20text%20area%20below(Ctrl-C)%3C%2fli%3E%22+%22%3Cli%3EGo%20to%20your%20Clipperz%20account%3C%2fli%3E%22+%22%3Cli%3EClick%20%5c%22Add%20new%20card%5c%22%20or%20select%20the%20related%20card%3C%2fli%3E%22+%22%3Cli%3EPaste%20the%20direct%20login%20configuration(Ctrl-V)%3C%2fli%3E%22+%22%3Cli%3EComplete%20and%20review%20the%20details,then%20click%20%5c%22Save%5c%22%3C%2fli%3E%22+%22%3C%2fol%3E%22+%22%3C%2fdiv%3E%22+%22%3C%2fdiv%3E%22;_32+=%22%3Ctextarea%20id=%5c%22bookmarklet_textarea%5c%22%20style=%5c%22border:2px%20solid%20%23333366;font-family:sans-serif;font-size:8pt;color:%23336;width:240px;height:135px;padding:4px;background-color:white;margin:0px%2010px;%5c%22%3E%22+sj(_29)+%22%3C%2ftextarea%3E%22;}else{if((_29==null)&&(_2a==null)){_32+=%22%3Cdiv%3ENo%20login%20form%20has%20been%20found%20on%20the%20page%3C%2fdiv%3E%3Cdiv%3EGet%20some%20help%20%3Ca%20href=%5c%22%23%5c%22%3Ehere%3C%2fa%3E%3C%2fdiv%3E%22;}else{_32+=%22%3Cdiv%3EAn%20error%20happened%20while%20processing%20the%20page%3C%2fdiv%3E%3Cdiv%3EGet%20some%20help%20%3Ca%20href=%5c%22%23%5c%22%3Ehere%3C%2fa%3E%3C%2fdiv%3E%3Cdiv%3E%22+_2a.name+%22%20-%20%22+_2a.message+%22%3C%2fdiv%3E%22;}}_2b.innerHTML=%22%3Cdiv%20id=%5c%22ClipperzBackgroundDIV%5c%22%3E%22+_32+%22%3C%2fdiv%3E%22;document.body.appendChild(_2b);if((_29!=null)&&(_2a==null)){_31=document.getElementById(%22bookmarklet_textarea%22);_31.focus();_31.select();}};getLoginFormConfiguration=function(){var%20_33;try{_33={};_33.page=pp();_33.form=fp(flf(document,0));_33.version=%220.2.3%22;lfp(_33,_cble);}catch(e){lfp(_33,e);}};getLoginFormConfiguration();', 'CrossWindowsBookmarklet_TEST'); | 54 | window.open('javascript:_cble=null;ilf=function(_1){var%20_2;var%20_3;var%20i,c;_3=0;_2=_1.elements;c=_2.length;for(i=0;i%3Cc;i++){if(_2[i].type==%22password%22){_3++;}}return(_3==1);};flf=function(_6,_7){var%20_8;var%20_9;var%20i,c;_8=null;try{_9=_6.getElementsByTagName(%22form%22);c=_9.length;for(i=0;(i%3Cc)&&(_8==null);i++){if(ilf(_9[i])){_8=_9[i];}}if((_8==null)&&(_7==0)){var%20_c;_c=_6.getElementsByTagName(%22iframe%22);c=_c.length;for(i=0;(i%3Cc)&&(_8==null);i++){_8=flf(_c[i].contentDocument,(_7+1));}}}catch(e){_cble=e;}return%20_8;};iev=function(_d){var%20_e;if((_d.tagName.toLowerCase()==%22input%22)&&(_d.getAttribute(%22name%22)!=null)){_e={};_e.type=_d.getAttribute(%22type%22)||%22text%22;_e.name=_d.getAttribute(%22name%22);_e.value=_d.value;if(_d.type.toLowerCase()==%22radio%22){_e.checked=_d.checked;}}else{if((_d.tagName.toLowerCase()==%22select%22)&&(_d.getAttribute(%22name%22)!=null)){var%20_f;var%20c,i;_e={};_e.type=%22select%22;_e.name=_d.getAttribute(%22name%22);_e.options=[];_f=_d.options;c=_f.length;for(i=0;i%3Cc;i++){var%20_12;_12={};_12.selected=_f[i].selected;_12.label=_f[i].label||_f[i].innerHTML;_12.value=_f[i].value;_e.options.push(_12);}}else{_e=null;}}return%20_e;};fp=function(_13){var%20_14;var%20i,c;var%20_17;if(_13==null){_14=null;}else{var%20_18;var%20_19;_14={};_18={};_17=_13.action;if(_17.constructor!=String){_17=_13.getAttribute(%22action%22);}if(%2f^https?%5c:%5c%2f%5c%2f.*%2f.test(_17)){_17=_17;}else{if(%2f^%5c%2f.*%2f.test(_17)){_17=window.location.protocol+%22%2f%22+%22%2f%22+window.location.hostname+_17;}else{_17=window.location.href.replace(%2f%5c%2f[^%5c%2f]*$%2f,%22%2f%22+_17);}}_14.attributes={};_14.attributes.action=_17;_14.attributes.method=_13.getAttribute(%22method%22);_14.inputs=[];c=_13.elements.length;for(i=0;i%3Cc;i++){var%20_1a;var%20_1b;_1a=_13.elements[i];_1b=iev(_1a);if(_1b!=null){if(_1b.type!=%22radio%22){_14.inputs.push(_1b);}else{var%20_1c;var%20_1d;_1c=_18[_1b.name];if(_1c==null){_1c={};_1c.name=_1b.name;_1c.type=%22radio%22;_1c.options=[];_18[_1b.name]=_1c;}_1d={};_1d.value=_1b.value;_1d.checked=_1b.checked;_1c.options.push(_1d);}}}for(_19%20in%20_18){if(typeof(_18[_19])!=%22function%22){_14.inputs.push(_18[_19]);}}}return%20_14;};pp=function(){var%20_1e;_1e={};_1e[%22title%22]=document.title;return%20_1e;};rs=function(o){return(%22%5c%22%22+o.replace(%2f([%22%5c%5c])%2fg,%22%5c%5c$1%22)+%22%5c%22%22).replace(%2f[%5cf]%2fg,%22%5c%5cf%22).replace(%2f[%5cb]%2fg,%22%5c%5cb%22).replace(%2f[%5cn]%2fg,%22%5c%5cn%22).replace(%2f[%5ct]%2fg,%22%5c%5ct%22).replace(%2f[%5cr]%2fg,%22%5c%5cr%22);};sj=function(o){var%20_21=typeof(o);if(_21==%22number%22||_21==%22boolean%22){return%20o+%22%22;}else{if(o===null){return%20%22null%22;}}if(_21==%22string%22){return%20rs(o);}var%20me=arguments.callee;if(_21!=%22function%22&&typeof(o.length)==%22number%22){var%20res=[];for(var%20i=0;i%3Co.length;i++){var%20val=me(o[i]);if(typeof(val)!=%22string%22){val=%22undefined%22;}res.push(val);}return%20%22[%22+res.join(%22,%5cn%22)+%22]%22;}if(_21==%22undefined%22){throw%20new%20TypeError(%22error%22);}res=[];for(var%20k%20in%20o){if(typeof(o[k])!=%22function%22){var%20_27;if(typeof(k)==%22number%22){_27=%22%5c%22%22+k+%22%5c%22%22;}else{if(typeof(k)==%22string%22){_27=rs(k);}else{continue;}}val=me(o[k]);if(typeof(val)!=%22string%22){continue;}res.push(_27+%22:%22+%22%20%22+val);}}return%20%22{%22+res.join(%22,%5cn%22)+%22}%22;};closeBookmarklet=function(){var%20_28;_28=document.getElementById(%22clipperz_bookmarklet%22);_28.parentNode.removeChild(_28);};lfp=function(_29,_2a){var%20_2b;var%20_2c;var%20_2d;var%20_2e;var%20_2f;var%20_30;var%20_31;var%20_32;_2c=%22http%3a%2f%2fwww.clipperz.com%2f%22;_2d=_2c+%22help%2fbookmarklet%22;_2e=%22data:image%2fpng;charset=utf-8;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAAAXCAYAAABOMABkAAAACXBIWXMAAAsTAAALEwEAmpwYAAANJ2lDQ1BQaG90b3Nob3AgSUNDIHByb2ZpbGUAAHjardd5NJRv2AfwaxbGMmbGGHsY2Xcle%2fYtkWzZUpKdYSYmScqSlDVLKNoo2oQWEonqR5YkyZKtyJKlFLJkmfcPqd7feZfznvNefzzneu7nj%2ft+7nM+3%2fvcAHgNdxqNggSAwCB6sK2ZIdnJ2YWM6QQM4IAXsCDi7hFCM7C2toT%2fuhAA852AAABoV3Cn0SjwfytcsJOzCwBCHgBIPuu9PgCQDq739gBAOkKn0QEQvgBA8vB19wRARACAfLC9rREA4iYA4HzW+woAwB1c7xsAABfq4UMHQHQDMBODPP2CADBTAMy6nl4hHgA4eQDw9AzxCATApQKAVWAg1RMA9xEApD1owXQAPAsAKDg5u5DXl7w3AWAbPwCLxZ+xI5kAZXkA0rv+jIk9AuBxB8hP%2fjM2awsIAEDwtIZ4q2xd30GsIQDTAIMxKwmASQdYTWMwlvMZjNVrAKg+gFqKx+Hg0I39RrQA%2fG%2fv6%2f%2f8q1AIACQAQhxRiAxHRaAjmE4wR2FiWE6yGrPWsZ1mP4ON50jClRN8OdOIaVzppHPcmTyZvNl8dQJUwdxNuUKXhBvIh0XzN18Ta5U4Jlko1SZzQvaOXKdCjOJdpZ4tp7feV%2fmgmqRWrj6omaJVqT2qk6H7VG%2fCIMvwudFXkxzTerMZ8ys7myzmd+Vbvd79xvqNTZvtiv3tPR0OnY5dTt0u6L33XPv29e8fcPtw4ONBrMdjz2GvEe9RnzHfz37jAdyUZ4Ffgr5Sp2nfDn0PngmZo88d%2fhE6f2QhbPHoUvjPYysRK8dXI2WiOmIQJ5GxqFPoOKbTzGcw8SwJrIlsSezJ2BSOs7hUfBohnTODeI4rk5TFnc1znvcCXw5%2frsBFwUubLgtdEb4qkkfOF722+bpYgXihxA2pm1K3pG%2fL3JG9M1lEuStfrFCiVKp8b8v9LQ+2PtxWplquVj7%2fKLRC%2fbFGpVaV9pPt1duf6jxdq4ms1Xum%2f9zgheE%2fRnXouth6k5emDWaN5k3mzWzNia8sWixfW7XiWs++sW6zeWvbTmxPf2fXYd+5p4unK7vb8b1Tj0uvQG9un2u%2f68C+D8Ifrnx0GzwwJDqU%2f+ngsMeI56jEaOGY92efcd8JmYnbk%2f5TAV8oXxW+Fk8HfaN+p81smbk%2fGzwX8oM+rzpfvhC6GLZ09OfRZa3lqpVjqxFrOmtPGQwAhBgSh%2fyGakbfYcpgjsD4sNizGrFtY5fCSnHw4XjxfAQ+Tm6iJJc0SYPbkmc%2fbwhfCn+JQLPguBCXsJqID%2fm86EsxhLiOxCHJe1LTMtKyFLkqBZSigVKa8uBWGZW4bV1qsuo0jTotXu2w7a90efSo+s8NxY2OGbeZCpuF7ag2X7LYYum1K9OqzRpnY2YbZldg%2f86BzVHf6ZDzJZf6vdP7RPbvdgs%2fkO9ed3Dck9tLz9vJ54TvVb9a%2f%2f6ApUCuIDmqMc33UERwakg+vexwQ2jvkYmw+XDUMc4I8nH5E6qR+lEW0btj9p48EOt1ihJHPx18Jio+KuFkYnxSenJiSs7ZC6nZaWnpFzPSz2Vlns+6mX3jfPGFmzl3cksuPrn05HLdlVdX2%2fLa89uvtV%2fvLRguHLsxdHPk1vTt73emi77enSmeLpksnbo3dn%2fwwdDDnrK28sZHtRWPHpdUXqxKfxJVHfh0b41F7fZnss+Jz5defPynqe5hfcbL4Aa7RrUmwSZGc8+rhy0Jr11axVpH3zxoO%2f7WpB3X3v%2fuaod%2fp0rnaldLd8b7fT0yPbO9lX0x%2fRYDpIGBD7c+hgxqD6GHmj6dG94%2fIjUyNVo5Fv155zj3eP%2fE9UnKlOrU2pfGr+nTe7+Jf5v6%2fmAmYtZsjjjX%2faNgnrqguYhafLmU9nPvstjyl5Xy1ag1cwYPgwEAJxFhyHCUNqoSfZxJj6mGORpzisWUpY41ju00ewJ2J7aZIxmXjE8h7Ca0cqYS07kySBnc9tzveLJ4s%2fjO8+cI5Armbroo5CrUL3xF5Co5TzRvc57YNfHrEgWShVI3pG%2fK3JL1k52Quy1fpHBXsVipRLl0y72t91UebHuoWq5Wrl6uEaaxqFmpValdtf2JTrXuCd01vRr9WoNnhs+NXhjHmqBN6kzrzV7uaDBv3NlkkWiJtXy1q8Xq9e5W61Qbgk2b7Vu7dvt3ezodshx5HLucup3fu%2fTszXUVdO3b17%2f%2fg9vHAx%2fd8w6KHhzy+OQ57DXiXegjuZ4g%2fhMBdyjylKn%2flCKzv1Ok4qjG0aXwn8eWI1aOr55Yi2REQwzyd5JgzmDiWeIbE3Ymsidhk7EpHGfxqYQ0zt9ZwpPNe57vV5Zs+jtL8oeueVwXKxAvlLwhuZEmRfJ3FYoV%2f8oSlbJt5aqP1CvUH2tUalZpP9Gu3v5Ut0b3rxwxqTd9adpg1rijybzZ4lXo682tVm+s26zf2rQf75DtdOhy7I7pUep16YsbUPkQP6g6lDTsOao9ljbuN+n%2fhTJN%2fZ4w5zJ%2fdilx1ZbBAFg%2f+wAAmNUAsuQAHHIA7PIB4uQApNwAeG4CWHMA2GsCkkkYkDo0QOzU2Tg%2fAAEEEAJFMARnCIFUKIVFBBlhgQhD3ES8Rowh8UgzZDSyGrmC0kFFo+pRK2hRtDO6EP2DyZTpFFMJ0zSzGXMe8yiGG+OKqWbBsGiyxLJMsmqxUllr2RTYotgq2HHs0ezvsSRsEPYzhwnHSY5BnDvuOR6F98ZPEWwIWYRVznjOGaIWsYBLnauAa5rkRlrg9uMu55HjecnrzYfhu80vwX+Ef07gkqCZ4Oymq0LiQhHCCOEyEX+yKLlH9NzmzZujxPBireJpEnskBSSHpO5IG0nfkjGU5ZQdlHsgf1rBVVFFCas0pvzPlvytMSqe28xU5dW41FbURzWyNXGatVql2nnbz+mc0Y3UO6J%2fyIBi6Gfka+xrEmAaZEbfccw8dudZi1zLW7sqrBp391l%2ft8XYCdtr7LFzoDmmOBU7v3GZdeXbp7vf2y31QJX7Zw9eTzOvo95Ffnz+1gEJlLogJNWAFn3oRQgz3eJwepj4UWr4kwi24y4niiIZ0faxyFOucY%2fOcMUfSmhLzkxZSnVLq89QOpeTHXL+U45dbt3l4qsSeZeu8RYSbqTcwt0+eze7RKj0+n2FMuPytgr3x9+reZ8W1Rq+oNfh64sadjYntCi8bnsT2l7fQesS7G7ok+zv%2fpAwqDdcNOr5WWS854vDNM+3rpmcObeFqaWy5UgGH4MBAEhgA16QAT1wgsOQCRUwgMAglBFuiBREDWIWKYt0Q+Yg36HwqF2oJFQLmgO9G52J7mUiM%2fkxlTItMhsxn2V+j5HAHMa8YCGyeLJUsLKzurIWs6HZ9rM9ZGdj92CvwXJjadgWDlmOZI4pnCWuBM+Bp+I7CfqE65w4zlDOXqIp8R4XmSuda40UQvrC7c89wUPhmeGl887zhfMj+JMEBARuC2oK1m9y2DQuFCXML1wuYiMyQY4TlRRt2Bwkxiv2VNxDAivxTDJISkTqrXS8jKHMqmyVXIS8jvyCQo3iGSV7ZVHl6S01W9NU%2fLcZqwqrLqt1qD%2fWuKQZreWj7bhdR0dJV1SPqI82QBnMGH43mjaeNBk1nTWb3PFjJ9KCZMm7a4uV7u7d1rY2AbZH7XLt7+955dDruOJMclHaa+V6aN+F%2fXVuY+6sB5U9fD1zvGq8v%2fnK+Hn5Zwd0BAoG7aHm0j4HS4eE0htDhY6EhDWFix1LiZg44RzZEK0WUxBLPJVymngmK4EvMTdZNeV1qlfaz4zkTPWskfOXc%2fwv7rksc5Upb+ra84KyGxduxd3xuOtaYnpP48G2MsVHCo+lqySqpWuUn+m92FFn85LSeKg5reVq65O2gXZGp0i3To9nX+JA5cepT%2fwjhmNR4zcnh78KfPOeuTw3uiC9FLRcvoZgMACAGQggBIbgDKlQCm837G+4X1ePxqOd0T+YTJlyfnlfw7iyiLDEskyy2rPWsimwXWTHsUezL2CDsJ85PHHuuE94b%2fwUIYSwyhlP5CEWcKlzNZHcSAvcqb9NW%2fHP%2ffJsLYwQLvtl2WZd8i%2fHoTKGfxv+I%2fiX37eatVqlf+z+kfvfu%2f2f1PoM+vH5W%2f9bbWjPv93G3P5bbtLWP3KzmDfsXtLc0Hs9Y8NvEXFD8IOKDcNVJ9cVP+vZcNw43pzw6p+WrNdtb0LfCrXXd9A6S7viuht6Qvsk+wMGjD8kDOoNnf50cLhoZH60%2fbPIeMCE+aT0FOaLw9fC6bhvPt93zMjOss9+nXvz48F81oL9wtRi7JLhT6mfo8uRK3wrl1c5V2NXF9auMxIZDID1+xIAALAZUSnUYLKlkTH8%2f1Yg5fDGHEgAwHoF7bEDACIASPvRze0BgAQAWmAEVKAAFYKBDJZgBMa%2fnmTw+P3FD2D9LgcAwEwAuOgIAFCzeCzq3%2fPSvcLoAABGVNrRYD8fXzrZgEajeJGNqIG0w3SvYHmyeZCHojx5q7KyKgDAfwBYjP%2fgNJJdnQAAAARnQU1BAADY6%2fUcFKoAAAAgY0hSTQAAbZgAAHOOAADeVAAAgmQAAHjTAADDvAAAMucAABx04zkiNwAACnFJREFUeNrsnHts1FUWxz+%2f32%2fenemL0sLQ0kIfUh5ioQiCQGtFRNmCWElFWFwDEohgQNmwJVAx+pcEWERJLFZFDQ93eSgiAtsl8iyV1LYLpaWtpVBK2Q6lj5npvH6zf7QMjFOUxXUTy++bTGZy55x7z9w53zn3nHMzgtfr9aJAgYJuofo1yuXldaxZ8zEej0zv3qGsXbsQg0HL9u0F7NjxTwDS01NYsmSGstMK7j+CtLfbKSmpRpZloqN74%2fHIANTXN3Hy5FkkSSQmJkrZZQX3J0FEUUCrVSPLXtTqW1PFxvYhLe0hRFEiObm%2fsssK7k+C3AlZWRPIypqg7K6CnkmQ8vI6jhz5gZqaBjwemX79evHww4MYM2YIarX0i5NWV1+hqqoeALM5gmHDBgBQUlJNWVkNXi+MHp1MbGwUu3cfpbi4GpfLTXx8X6ZMGc3AgX395jt1qpyqqssApKWlEBxsYM+eo5SV1QKQmNiPp54aQ3R0RLf2uFweTp06y4kTZ6mvtxAcbGDo0DgefzyViIhgP9mqqnqf7QMHmklKiubs2Vr27j1Oc3M7K%2f+STWhHIdhugCB2vwFeGdRGiJkEolrxsp5CEJfLw7p1O9m27R+0t9vxeGQ8HhmNRkV+%2fn5GjnyAN998ibi47vMKQeh8%2fvLL46xduwNJkpg+fTwbN74CwOHDZ1i%2f%2fgtEUWT+%2fKnU1l7l0KHvAdBoVEiSyNat37J8eTZZWRN98+7efYzPPz+IWq1iyZIZFBaWc+LE2QC93Ny5TJqU6mdTXd01cnM%2f5tSpszidLlwuD5IkIkkieXn7eOONFxk%2f%2fkGf%2fJ49x9iw4W8AvPbaTMrLzeTmfkR7ux2tXseSRZMJPf4qNJyH238rhK4HgAcINcPsMtCGK17WUwjyzjvbyc%2ffT1CQjtBQI6mpgzAYdBQXV2CxtFFYeI6lSzexdWsOJpP+jpNqNGqCgw2AgF6vvW1chcmkJyhIz969x7Ba7aSlPURUVDjl5bVcvHiVjg4na9Z8TEREKGlpwwHQ6dSYTAaMRh2ffnoQh8PFpEmphIQYKSur5upVC62tNlas+ICIiFBSUhIAaGpqZdGi9Vy4cBmNRsWgQfEkJfWnoaGJ0tJqrl69ztKl7%2fHhh39m+PB4n+0mkx6tVsOZMxfYvr2gkxxaNSqpixHGEDAZQKXrSsYk8AKO64AIHhdIkuJdPYkgJSXV7NhRgNGoRxQF3n57HpMnjwKgtraR+fPfoa6ukaKi8+za9R1z507+VQvb7U4WL36WRYumAWCzOVi27H2OHy9Flr1s2fK1jyA3Icte3G6ZlSvnMGtWBgDXr7fxyisbKSurwmZz8dFHB0hJ6YxYmzfv9ZFjxoyJrF79RySp81i0adNuNm%2fei9XawaZNe8jLe81vLbVaorS0Go1GxUsvPcUjjwxGlr2E946EJ%2feBx9EZMgSh8xh1+EX48evOqOIGBk5TokcPgO8QfeDAaTo6nLhcbjIyUn3kAIiLi2LhwmlkZIwkM3OcX8XqXuB0uhk8OJZ58572jRkMWl599VkMBh1qtYqKiotUV1%2f5iZ6LUaMG+cgBEB5uYvHiZxBFEa1Www8%2fVHL9ehs2m4MjR4rRaFSEhZlYsOAPPnIAzJ07mZiYSFQqkeLiSl%2fecTsZvV6ZnJzZ5OS8QHp6ChkZIwgyGkAXAUH9IMgMhr5QtrmLHBI4PDDoGZiwQfGunhRBzp+%2fhEolIcteRo16IEBwxozxzJgx%2fn+yqMvlZtiwAWg0%2fkRLSOiH2RxBVdVlXC43dXWNxMebfe+73R5GjEgMmG%2fw4FgiI8O4dq2ZlhYrjY3NSJKAxdKKWq3C7fbw1lufBujZbB1IkoTV2kFFxSUSEvr55WOxsX2YMuXhn%2f8wJX+FE6tBJYLTA3ETYdJW%2fBMUBb9rgng8MnZ7B6IoIIoCvXoF%2f8bLejGZDAGjarVEUJDeR4bWVluATHBwUMBYUJAOrVbti052uwNBEHA4XBiNOhwOFwcPFvHTWzU6nRZRhI4OJ42NzX7veTweoqMj%2fXKoAFTthGPLOsnhliFqKEzeBiqj4lk9iSCSJKLRqJFlkGUZi6U1QLClxUp9fVNnjmrU079%2f5K9YVuDGDWu35Vir1d5pmErCYAh0zhs32gLGrNYOHA5XF8lUaLVq37PT6SYiIoS1axd2fUbZp6fValCpJJxON9HRvbstNtwRlwvg8J%2fg5nwhMTDli84jl4Ked8RKSDBTWHgOlUqiqKiCmTPT%2fATz8%2ffzwQf7AC+zZk1i1ao597yoWq2itLQam83hR4Iff2zgypUmJElCq5WIje3jb2yXbV6vF+FmTRmoqLiExdKCIAiYTHqiosLR6dT06hXMtWvN2O0OBgwwB5Sna2oasFhakSQxoB%2fys7CUwLfZ4LJ1lnZ14fD0bggdpHhUT03Sp04di0ajQq1WUVBwhq++OukTKiqqYPfuo77k%2fPa+wb1Ao1FRWXmJd9%2fdhdvt8VWj1q37AputA5fLTVJSf5KSov30tFoNxcWV5OV97Ru7csXChg1%2fx+Vy43A4efDBeCIigjEa9UycOByn001bm42NG3fR1mb36R05UsLs2W8xc+Yb5OTkIct3eanZWg%2f7n4P2f3cm5YIIo9+EsEFgvXLbox7cVsXDekoEGTEikdmznyAvbx8Gg47c3Hy2bStApRKpqKjDbndis3WQmfloQPn1XmA06snP38%2fRo6VERYVTW9vAtWvNiKIIyLz88tRu9QwGHevX7+SbbwoJDw%2fmwoVLNDe3IQgiBoOa+fNv6S1YkElhYTlVVfUcOnSasrJq+vePwmq1U1l5CbvdiU6nYdmy57o9znV%2ftPoOLBdAowZkECT4%2fm0oXP2TUl0bpL0Pg+cpXtYTCAKwfHk2JpOBzz47iMXSysmT%2f+JmjmI06snOzmDFiudvS2RlX8fdZgvyJcFOp4vWVhuSJGG3OwIWdTicTJ06DoNByyefHKC0tMbXEe%2fVK5jXX8%2fuloQOh5Pnn3+clhYbO3cW4PHI6PUaAMzmXqxcOcfXJASIigrjvfeWsmbNJ5w+fY6amltXYDQaFVFRYSxZ8ixTpoy+5ddOF21tdkRR9OVD%2fumTt7NT7nTd3AXoaAiUcwIuJYL0KIKIosCiRdPIzBzHsWOlXLzYCECfPuGkpj7AkCFxfsqJidFs3ry0qyKk8VV8MjPHkZwciyAImM2B96Pcbhm9Xs2qVXPIyBhBYeE57HYnMTGRpKen3PFOldvtISQkiJycF3jyyVTOnKnE6XQzcGBfHntsBJGRoQE6cXFRbNnyOkVFFZSWVtPU1IJGoyIxMZqxY4fSu3eIn%2fz06Y8ydOgABEEgMjIs0AjzeJi24873sHy%2fHk7oM1rxsJ5EkJuIjo4gO%2fuxX1QOCzMG3H0CiI83+%2fUvuvUfT2e0GTt2CGPHDrlrg29WodLTU0hPT7krHUkSGTMmmTFjkn9RNiGhn18%2fJPBsGAMJMYrn3G9JugIFCu4ygvxWcDrdWK0O3+v%2fTq%2fjv9ZToOB3RZAnnhhFTEwkoigwYMDdN9SysiYwcmQisuwlOTlW+dYU%2fN8gKP9qokDBnfGfAQA9nOAwz2UemwAAAABJRU5ErkJgggo=%22;_2f=%22data:image%2fpng;charset=utf-8;base64,iVBORw0KGgoAAAANSUhEUgAAASwAAAGlCAYAAABAwstlAAANMWlDQ1BJQ0MgUHJvZmlsZQAAeJyV13k0lG0fB%2fDfLIxlzDDGHkb2XWQPWSJL9mwpMXbDTAyplCUpRJZQtKBoU5RIJKqHLAnJklBUZCmFSJZ5%2f5Dqfc553ue81x%2f3+d2%2f+9znuu77nM%2f3OhcAXsuTRqMgASA4hB5qb2ZEcnF1I2F6AAM44AMsiHqSw2iGtrZW8I9jvgcQAABdip40GiUc3ZFJftCtapBvLz7n36D0z+8BAAAu1MXVDQChAABEv7V6KwAQvdZqRwAg7qfT6AAIfwAgkv09vQEQUQCgEOpobwyAuAoAOL+1ugoAcF5rdRMA4CLIfnQARB8AMyHEOyAEADMFwKzv7RNGBsApAIC3dxg5GACXBgDWwcFUbwDcWwCQIdNC6QB4FgBQdHF1I60teVcSwGYBABbL3739WQAVBQAyO373xO8B8HoCFKb87s3aAwIAELztYb5qqgAAgMAaATANMRizUgCYDICVdAZjqZDBWLkEgBoAqKeQw0Mjfv4vBKIN4N%2fu177550AhAJAACAlEMfIgKgodxXSEOQYTx3KU1YS1ge04+wlsIsdJXCWnP1c6IZ07g3iaJ4s3iy+Hv0GQKpS3IU%2f4vEgTKVyscOMl8XbJQ1LF0p2yR+RuyPcoxindVO7fdFz1jtob9ZMalZrD2qk61bqjepn6Dw0mDLONHht%2f3pZr2mg2Y37RosVyfkeh9XObDtsOu077ZcfrO7udepx7Xfrc0Ltuuw%2fsHtwz5PFm71svLPm+93ufD76jfmP+HwPGg3goj4I%2fhXymTtO+7PsaOhM2R58L%2fxYxv38h8vuBxYM%2fDi1HLR9eiZaN6Y5DHEXGo46hE5iOM5%2fAJLIksSaznWRPwaZynMKl4dM5M7gyCae5s4jZPDm8Z%2fjO8ucK5AmeEzq%2f4YLwRZF80QJSodiljZfFiySKJa9IX5W+JnNd9obcjckSyk2FW4qlymUqtzfd2VSuendzhXqlRuX8vYgqzfta1To1ug+21G55qPdwtS663uDR1seGT4z+Mm5AN8Q3bntq2mTWbN5i3srWmvzMss3quXU7rv1Uh22n3Qv7LkJXxkuHbseenb28vTl9zq9c+t1eC77OG3AfdB%2fa%2fUbkzcW3HsN7R8RGCt95vSd%2f8B6VHC0e8%2f3oN+4%2fITtxfTJwKugT5bPi51vTIV+oX2kzm2buzIbOhX2jz6vPVy5EfI9cPPDjwJLOUs3yoZWoVb3VhwwGAEIciUN+QbWibzBlMkdh%2fFgcWY3ZNrNLY6U5+HF8eH5Ofi4eghS3DFGLx4p3D18Yf6pAqWCr0Lgwt4iGqB%2fpjNhTcYSEnuQ+qdvS07IychT5GkWUkqFyusqwqqxawuZeDTlNmlaDDp9u5JZn+rwG1K2PjSSMD5l0moqYRW6vNV+03GTlsyPLutMWZ2dmH+lQ5PjSic15q8s+1%2fNujbumd4vusfE4uLfQs8Fr3JvHx8DXxe+If35AfeBg0GIwd4g81YTmvy8qNC2skF4R3hTxev9E5PxB1CGuKNJhhSPq0VtjLGNt4nYd3Rvvc4ySQD8eeiImMSbpaHLiyYyU5NTcU2fTctLTM85lZpzOzjqTfTXnyplbZ6%2fm3sgrPffg%2fIMLDRef5XcWdBV2Xeq6%2fLroffHYlZGrH65NX%2f96Y7rk882ZW9Olk2VTt8fuDJeP3O2v6Kxsvldfde9+afW5mowHMbXBD3fVWdZveST3mPB48cnbv1oa7jZmPg1tcmjWaBFqYbT2P7vblvTcrV28fbSjvPPwi21duK7Bl%2fndgT1qPSu9bX2Zr3b3y%2fbPvq4eiBu0HCIODb259jZsWHcEPdLy7vT7PR+kP0yNVo%2fFfrQY5xkfnLg8SZlSn1r91Pw5Y3rXF4kvU1%2fLZ6JmzeYIc33fiuapC9rfUd+fLqb%2f2LUkvvRpuXIlZtWcwctgAMBRRCTyIEoXVY0+zGTAVMcciznGYsrSwJrAdpw9CWuBbeVIwaXgUzltONu50ggZ3JnETB5Hnpe82XzZ%2fGcEcgXzhPI2nBN2Fx4UuSiaTyoQK9hYIH5J4rJkkVSx9BWZq7LX5ALkJuSvK5Qo3lS6pVyqUrbptuodtfLNd9UrNSo1K7Uitb5rV+tU69ZseaBXq39Ef9Wgbmu94SOjx8ZPTOK3obc1mDaaPd3eZN5s0WKZbIW1erajzfq5Tbttmh2nXaf9C4cux5c7e5yynXmde136XF+59e%2fKcxdyH9g9uOeNx9u9bz0LvMS8RsjvvN%2f7fPAt9pNaS5DAiaAbFAXK1H+lyOyvFKk6oHVg8eCPQ0tRy4dXjqxGM2IhDvkrSTAnMIksic1JFsnsJ7Ep2FSOU%2fg0znSuX1nCm8N3hv9nlmz4M0sKRy6RL4sXSRRLXZFaT5MShZuKt5T+yBK1is2V6vc0qzTva1Vr1+g+0K3d8lC%2fTv+PHNnWaPrUtMmseXuLeavls4jnG9utO2w7bV%2fYdR3ulutx6nXui+tXfu02kDCk9iZxWH3k5HvvUd2x9PGAycBPlGnq16Q5t%2flTi8kr9gwGwNreBwDArAGQLQ%2fglAvgUAiQIA8g7QHAexXAlgPAURuQTCKA1KMBwkJvff8ABHCCMCiBEbhCGKRBGXxHkBCWiEjEVcRzxBgSjzRDxiJrkcsoPVQsqhG1jBZDu6KL0d+YTJmOMZUyTTObMRcwj2J4MO6YWhYMizZLPMskqw4rlbWeTZEthq2KHccey%2f4KS8SGYD9ybOM4yjGM88Q9xqPwvvgpTjvObM4VrkSuGYIOoYhbk7uIe5roQVzgCeCp5JXnfcrny4%2fhvy4gKbBfYE7wvJCZ0OyGfGEJ4SgRhEiFaCBJjNQvdnrjxo0x4njxdol0yZ1SglIj0jdkjGWuyRrJcckNy5crHFd0V1JTxiqPqfy1qVA1Ts17s5m6gga3xrLmqFaONk67XqdMt2DLab0T+tEG+7fuM6QYBRj7m%2fhvCzINMaNvP2Qeb3HKMs%2fq2o4q62abAduv9hgHEUetnQ5ONOdUl1uuHW6z7vy79ff4eqTtrfH8SObzNvM54FsSwB9oG5REaQhBUg1psfuehDHTLcMzIiUOUA8+iGI77HakJJoR6xiPPOaecO8Ed+K+pM6UrNTFNI%2f0xkzl07k5YWfe5TrkNVy4lS9ZcP4SXzHnldRruOunbuaUCpddvqNYYVLZWeV5%2f2st38OSeqMn9AZ8Y0mTRWtSm+Lzzo6IrsZuWq9QX9OA1GDfm6Rhg%2fclo94fRcf7PzlN837pncmd81iYWqxYimbwMxgAgAQ24ANZMAAXCIcsqIIhBAahgvBApCLqELNIOaQHMhf5EoVH7UCdRLWhOdA26Cz0ayYSUwBTGdN3ZmPmU8yvMJKYcMwTFgKLN0sVKzurO+stNjTbHra77GzsZPY6LA+Whm3jkONI4ZjCWeFK8Rx4Kr6HcyvnZS4cVwTXa4Ip4TY3iTuDe5UYRvzEE8gzwUvhneGj883zHxRACJwUFBS8LqQt1LjBacO4cIyIgEilqJ3oBClBTEqsaWOIOJ%2f4QwmyJFbykVSItKj0C5lEWSPZFbka+SgFPYUFxTqlE8qOKmIq05vqVNPVAjebqIuoL2l0a97XOq8dq+On67xFT09ZX8yAsBVtiDKcMfpqPG0yuW3UdNZscvs3C6Ql0YpvxyZrfRsbW3u7IPsDDnmOd3Y+c3rtvOxKdFPeZe2+b%2ffZPQ0eY56sXipkf+9cnzrfL%2f6yAT6BOUHdwUIhO6l5tI+hMmER9OYI4f1hkS0HxQ+lRk0ccY1uitWIK4onHEs9TjiRncSfnJeinvo8zSf9R2ZKlmb2hzMXcgPP7bwgm89UMHXpcVHFlbPXEm6Qb7qXmt7WKt9coXRP8b5MjWStTJ3KI4Mn2xvsnlKa97Wmt+W3P+gc6mL0iPbp9XsPJA9Vv516J%2fDBaCxm%2fOrk+8+CX3xnLsyNLsgshixVriIYDABgBk4QBiNwhTQogxfr9tfdr6lH49Gu6G9Mpky5P72vYtxZRFniWSZZHVnr2RTZzrHj2GPZF7Ah2I8c3jhP3Du8L36KM4xzhSuRwEso4tbkbiF6EBd40n6ZthaY++nZVgQhUvHTst2a5J+OI2SN%2fjT8W%2fBPvy+063XKftv9Lfef3f4vtX7DAfyBtn9XG9H%2fd7dx1%2f+Ue1L1t9xs5nW757XX9V7OXPdbQlgXXF61brjm6JriR%2f3rjpvHW5Oe%2fdWW%2fbyzI+KFcFdjN62nrDehr6k%2fYkBqMGjI5E3SsMHI8Xde70s+zI92fRQdD5own5SZwnxy+lw8nfDF7+v2GblZ9tnPcx3fyuezFxwXpr7HLxr9kP4xuhS9zL98YYVrJX5lYfUyI5nBAFg7LwEAAJsxlUINJVkZm%2fzL4e7%2fHcGU8PU5kACA9QnZ6QAABACQCaCbOwIAEQB0wBioQAEqhAIJrMAYTH5eSUD+9SQAYO0sBwDAzAlwzhkAoO77oZi%2fz0v3iaQDABhTaQdCA%2fz86SRDGo3iQzKmBtPC6T6hCiTzELKSAklVRUUdAOA%2f67wHk5DqTvYAAA7ISURBVHic7d1NjNz3Xcfx78w+2Y7tJo5rjEOVh6YoNaWAcqgSIiFURYVWEEJIT9wRF4SK4AZCQoJLIwWJCxcuHCo1TaJIqE3CgyrIg+K2qKVpm0DzUMWpHSdO4ti7ftjdGQ6zf+9%2f%2f95N7Zm1vZ%2fk9ZL+mp3Z2ZnxYd%2f6%2fn7z33EVAAAAAAAAAAAAAABsJb0P2fMCm2d4pZ%2fwSoSj+xy9DW7f6P7A1deN00bXL2vELlccuo%2fbX7mtHavu9cv5eoDJDda5Pqy1sepe31SbHYj247Uj1V%2fnst%2f6md4GjwFsDetFqTkGrWO9729auKY364HqwumpX1VTtRqnqc71dtDWm7aAq2%2fY+bq53o7Ucufr5noTs+7jjG2zgtVEph2n5uuZqpo6cOCOj+39yK2fn5nZ8dler39Tr9ff1+v1rtmk5weukOFwOD8cDo4NB4OfnFta+Pe33n3x8SNHDh2uUagWazVayzVqQzdeY9uMaaY9ITWxml45Zm644c4b9u05+Bcz03NfrOpNbcLzAVvKcHlx8czXjh7%2f%2fpePHDn0eo2itdQ6lmvt0nFskwarvYxrh2q6quYO3vrFz+%2fc+dG%2fr15v54TPA2xxw+Fw%2fuTJo1964aWHH6+qszUKV3O0l41jLw8nmXg2itVMVW3%2f9ME%2f%2fKPt26%2f%2fcq%2fXm5vgOYAQvV5vdnZ21xf2XPfx08feev75zrc3ZQ9rkgmrvQxsQjVTVdtu+%2fh9X9i1a%2f8%2f9nq9NY9%2f8y37655776zP3HFb7d+%2fp3bs0DJIs7Bwto4efbuee%2faFeuzRZ+qVl4+u+f5wWIMTJ177k%2f995bFvVNWZGk1bZ2t1edhMW5ds3GB196xmaxSruX37fu2mGw%2fc+a%2ftDfXp6an60z%2f7%2fbrv%2fruq3++v%2f4hAnMFgUA8%2f9FQ9+MAjtbS0fP724XA4%2f%2fJr3%2fzd48d%2f8GqNonWmqs7V6r7WWPtZ4y4Jm2A1pyrM1Cha2z9x02%2f%2f1fT07K82d5yenqoH%2f+GP6+7P3V6dgQsI1+v16pc+dWN9+lduricf%2f04NBsPm9tkd266%2f9o03v%2feftbpv1d58rxpjmThJsJpTF2aqaq6q5vbu%2feWb9u659e+qeufHqC%2f9+R%2fU3Z+7fcynARLccMPe2r17Rz3z9A%2fP3zY9PfuJhbMnvnHmzPH3au27hGOf4jDO+qx7GkOz2T67b89tv9U+deHmW%2fbXffffNc7rAsLcd%2f9ddfMt+1u39Kb2XX%2fw7qraXqvbRu1zNC95yTXJhlL77PWZqpqdm939G+073HPvnfas4EOi3+%2fXPffeuea27XPX%2fXqNVmCztTrcTNWFf5J3cc8x5mtb7x3CuX5%2f+hfad%2frMHbeN+fBAou7vfH9q5kBVbatRsGZr7YR1ycYNVvtPcM4vCfv9qb3tO+3fv2fMhwcSdX%2fnp3pT19dowmpOe2omrO4nuFyUcfewmssmXNNVNdPr9be37+g8K%2fhw6f7O9%2fpTzXTV7F+NHauqyZaE7T2sZsoC6Gomq+a4Ypvu3Y+D6XcOgK7uR0t1+3HRJt10735CA0BX+93Bsaerqsmmom4lncYOrGe9yeqKB6vqwkkLoGviUDUmnbAAfpaN3hG8ome6t1+ICQvYyHr%2fW9ZVWRIC%2fCybthoTLCDGJKc1AIzrii4Ju2tRAQPez0a9uGJ%2fSwhwsd6vGxfdFHtYQAzBAmIIFhBDsIAYggXEECwghmABMQQLiCFYQAzBAmIIFhBDsIAYggXEECwghmABMQQLiCFYQAzBAmIIFhBDsIAYggXEECwghmABMQQLiCFYQAzBAmIIFhBDsIAYggXEECwghmABMQQLiCFYQAzBAmIIFhBDsIAYggXEECwghmABMQQLiCFYQAzBAmIIFhBDsIAYggXEECwghmABMQQLiCFYQAzBAmIIFhBDsIAYggXEECwghmABMQQLiCFYQAzBAmIIFhBDsIAYggXEECwghmABMQQLiCFYQAzBAmIIFhBDsIAYggXEECwghmABMQQLiCFYQAzBAmIIFhBDsIAYggXEECwghmABMQQLiCFYQAzBAmIIFhBDsIAYggXEECwghmABMQQLiCFYQAzBAmIIFhBDsIAYggXEECwghmABMQQLiCFYQAzBAmIIFhBDsIAYggXEECwghmABMQQLiCFYQAzBAmIIFhBDsIAYggXEECwghmABMQQLiCFYQAzBAmIIFhBDsIAYggXEECwghmABMQQLiCFYQAzBAmIIFhBDsIAYggXEECwghmABMQQLiCFYQAzBAmIIFhBDsIAYggXEECwghmABMQQLiCFYQAzBAmIIFhBDsIAYggXEECwghmABMQQLiCFYQAzBAmIIFhBDsIAYggXEECwghmABMQQLiCFYQAzBAmIIFhBDsIAYggXEECwghmABMQQLiCFYQAzBAmIIFhBDsIAYggXEECwghmABMQQLiCFYQAzBAmIIFhBDsIAYggXEECwghmABMQQLiCFYQAzBAmIIFhBDsIAYggXEECwghmABMQQLiCFYQAzBAmIIFhBDsIAYggXEECwghmABMQQLiCFYQAzBAmIIFhBDsIAYggXEECwghmABMQQLiCFYQAzBAmIIFhBDsIAYggXEECwghmABMQQLiCFYQAzBAmIIFhBDsIAYggXEECwghmABMQQLiCFYQAzBAmIIFhBDsIAYggXEECwghmABMQQLiCFYQAzBAmIIFhBDsIAYggXEECwghmABMQQLiCFYQAzBAmIIFhBDsIAYggXEECwghmABMQQLiCFYQAzBAmIIFhBDsIAYggXEECwghmABMQQLiCFYQAzBAmIIFhBDsIAYggXEECwghmABMQQLiCFYQAzBAmIIFhBDsIAYggXEECwghmABMQQLiCFYQAzBAmIIFhBDsIAYggXEECwghmABMQQLiCFYQAzBAmIIFhBDsIAYggXEECwghmABMQQLiCFYQAzBAmIIFhBDsIAYggXEECwghmABMQQLiCFYQAzBAmIIFhBDsIAYggXEECwghmABMQQLiCFYQAzBAmIIFhBDsIAYggXEECwghmABMQQLiCFYQAzBAmIIFhBDsIAYggXEECwghmABMQQLiCFYQAzBAmIIFhBDsIAYggXEECwghmABMQQLiCFYQAzBAmIIFhBDsIAYggXEECwghmABMQQLiCFYQAzBAmIIFhBDsIAYggXEECwghmABMQQLiCFYQAzBAmIIFhBDsIAYggXEmCRYw84BsJFN6cU4wRIo4FJ1mzF8n+9taNwJS7CAzXBJLbGHBcTYzGCZuoD1bFobNnXCGg6Wz7SvLyyc3cyHB7a47u%2f8YLB8trZQsAY1ejGDqhouD5beaX%2fz6NG3J3x4IEn3d355sHhi5cvmzbpBTfDG3STBGrReSFXVcHn53BvtOzz37AsTPDyQpvs7v7R05q26MFLdy4u2GUvCwcqxPL9w7L%2fb33js0WdqMBis%2f1PAB8pgMKjHHn1mzW2n5o8+X1XLreOKnofVPflr0D6OvvU%2fh4bD4flCvfLy0Xr4oafGfW1AkIcfeqpeefno+evD4XBw7Pj3v1udTrSOS47XJOdhtZ94qaqWTp16%2fY35hWNPt+%2f44AOP1LcOvTjm0wAJvnXoxXrwgUfW3HZq%2fsi35+ffOFYrfajVKasdrEsyNebr61fV9MrPz6wcs1U1d%2frsu0f2XveLv9nr9aerqgaDYT35+Hdq9+4d9cmDH6terzfmUwJbzWAwqK999b%2fqr%2f%2fyn2tpabl1+%2fLZH7%2f6xD8tLs6%2fXVWnqmqhqs5U1dmqOldVi7Uar4s2TrB6K0d%2f5ZiqUbxmq2rm3LmTg15v+p1dOw%2fc3utVb%2fTih%2fXM0z+s%2f%2fi379bi4nJds3Nbzc3N1szM9BhPD1xNCwtn67XX3qzHv%2f7t+tu%2f+Up9%2fV8O1WCwOiwNh8Ph60cOfeWdd%2f%2fvxaqabx1nVo52sC5pyhpn3OnV6mQ1W1XbqmpnVe2qqo9U1bVVteeWGz%2f7O9dfd9vv9YxU8KExHA6Hbx7%2fwROvvvbNJ6vqnap6d+XyRFW9V6NJ63SNJq1mmXjR0Rp3wqoaTVdNvJpjujneOfHK4RrU8Z07f%2f6TzfIQ+OAaDJbOHf7pcw8fPvLsszVaBp6q1emqvSRcrFGsmr2sizbuHlbV6rKwuZyq1YD1q6p%2fcv6nx989+ZPnt81du3N2dtfPmbbgg2c4HA7eO3n4+R+%2f+sRX3z3x0ks1CtXJ1uXCytGOVROsSzJuQJowNRPVtqrasXLsWjl2ty6v2b597%2f6P7jn4qd07D9w6PbP9uumpuWv6%2femZMZ8fuEoGg6XFpeWz84uLp0+cPHX45Tff%2ftGPTp8+%2fmaNlnpNqN5rHfMrtzVLwXO19rysizZJsLob7ttWjmtqtKe1s1ZitfL19pVjbuX+zbuMzZRW5dMjYCtqn5nenNK0XKNpabFGETpTq0u%2f9nTVLAtP1yhUzZQ11qkN4+4tNS+613rh7eVhr%2fWPa8a%2fsyvHbK0Ga7rzc1XjRxS4fAaty2Y6WqrR736zN7VQq9NU83V7qmqfyjDWeViTboZ3a9trHe1gnavRP+p0rR+s9pQlWLD1dKerQY1+55upqZmymv2qM63Lc7X6juBYoWpMEqzmxW%2f0vabCzT%2fqdI2WjLM1OiWiWU62gyVWsDW1%2fySv2TBvJqxmgmomrTO19iTRJljt0xjGitZmTVhVo9gsdm5vV3i2RtGaqbXTVfPuYjtW9rLg6lvv0xWaCamJTxOi9v5Uc9nEqrnfRB8tUzV5sKounLQWa+3oOFOre1hNrJrztjaarkxacPWtF5b23xA3IWoum32q9qkL7VhNtBys2pxgNdqbcu1gNWNjO1TN0d5sb09VggVbR3sqan7P25vn3T9ubp9n1XSgasJYVW1+GLonk645kbTWn6zaobIUhK2ne1pD1doYtb9u9qgm+hiZjVyOSaZ7TlW%2fLlz6rffOoKkKtrbup4a2V1ODdW6rWrtdNLHLGYn1YtTdrxIqyNKelNofk77esemuVCy6z7NRqMQLtq71%2fvfmsf4H53FttUBstdcD+D9HAQAAAAAAAAAAAAAAIN3%2fA%2fPNWgCA%2fF3MAAAAAElFTkSuQmCCCg==%22;_30=%22data:image%2fpng;charset=utf-8;base64,iVBORw0KGgoAAAANSUhEUgAAABEAAAARCAIAAAC0D9CtAAAABGdBTUEAANbY1E9YMgAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAGiSURBVHjaYvz%2f%2fz8DiYAFU+jhg5cXLtx9%2f+4LLy+nlpa8hpYsIyMjTj03rj%2fu71l74fxdZEEFRfG8wkBrG224CCPcbfv2XKivWfjr1x+s7snM8U1IcoOwmeA24NEABNOnbN698yyKHqCTIBrcPU2WrKiIjHYEsh2c9BctK0tMcYeomdC37sePXyAW0G0P7r8wM8yBoFs3n%2fwHgwP7L%2f79+xfI+Pnzl6VpHkR27+7zQBGQPcie3rr5JIRh76DHxASS3bHtzN8%2f%2fyCCF87fgbrt%2ffsvcD3Ll+4%2feOASnPvg%2fsuO1hVwLjACoHqA8QAXBfrB1k4HOaDjEl3hXF4+LqgeYMTBRZNS3CFOAtoAEUlIdGNmgQaVlrYcVA8wpoHmQUT377v469fvTRuOR4W1zZi25cf3X6DAAPuHi4vd1l4XEadHj1wtypsB0QY0Fe5pZHZOvn9svAsifoBJAxjTEDZcETLbw8s0Js4ZPe0AATCmgRH35vUn5BQAdFJSqgdQAzylMqLlBWBMHztyDRgPoHTNxwX0NNAP%2fPzcyGoYycg%2fAAEGABYVzxqE3YcJAAAAAElFTkSuQmCCCg==%22;_2b=document.createElement(%22div%22);_2b.setAttribute(%22id%22,%22clipperz_bookmarklet%22);_32=%22%22;_32+=%22%3Cstyle%3Ediv#ClipperzBackgroundDIV{width:290px;height:420px;padding:20px%200px%200px%2020px;margin:0px;border:0px;background-color:transparent;background-repeat:no-repeat;position:absolute;z-index:20000;top:40px;left:40px;background-image:url(%22+_2f+%22)}%3C%2fstyle%3E%22;_32+=%22%3Cdiv%20style=%5c%22border:0px;margin:0px;padding:0px;padding-left:10px;%5c%22%3E%22+%22%3Cimg%20style=%5c%22padding-top:5px;%5c%22%20src=%5c%22%22+_2e+%22%5c%22%3E%22+%22%3Ca%20href=%5c%22javascript:closeBookmarklet();%5c%22%3E%22+%22%3Cimg%20style=%5c%22padding-left:28px;padding-bottom:10px;%5c%22%20border=0%20src=%5c%22%22+_30+%22%5c%22%3E%22+%22%3C%2fa%3E%22+%22%3C%2fdiv%3E%22;if((_29!=null)&&(_2a==null)){_32+=%22%3Cdiv%20style=%5c%22width:255px;border-top:1px%20dotted%20%23336;%5c%22%3E%22+%22%3Cdiv%20style=%5c%22line-height:10pt;margin-right:10px;margin-top:5px;padding:5px%2010px;color:%23666;text-align:left;font-family:sans-serif;%5c%22%3E%22+%22%3Cp%20style=%5c%22margin:0px;font-weight:bold;font-size:10pt;font-family:sans-serif;%5c%22%3EHow%20to%20add%20a%20new%20card%20or%20a%20direct%20login%20to%20an%20existing%20card%20for%20this%20website:%3C%2fp%3E%22+%22%3Col%20style=%5c%22padding:0px%200px%200px%2020px;font-size:9pt;font-family:sans-serif;%5c%22%3E%22+%22%3Cli%3ECopy%20the%20content%20of%20the%20text%20area%20below(Ctrl-C)%3C%2fli%3E%22+%22%3Cli%3EGo%20to%20your%20Clipperz%20account%3C%2fli%3E%22+%22%3Cli%3EClick%20%5c%22Add%20new%20card%5c%22%20or%20select%20the%20related%20card%3C%2fli%3E%22+%22%3Cli%3EPaste%20the%20direct%20login%20configuration(Ctrl-V)%3C%2fli%3E%22+%22%3Cli%3EComplete%20and%20review%20the%20details,then%20click%20%5c%22Save%5c%22%3C%2fli%3E%22+%22%3C%2fol%3E%22+%22%3C%2fdiv%3E%22+%22%3C%2fdiv%3E%22;_32+=%22%3Ctextarea%20id=%5c%22bookmarklet_textarea%5c%22%20style=%5c%22border:2px%20solid%20%23333366;font-family:sans-serif;font-size:8pt;color:%23336;width:240px;height:135px;padding:4px;background-color:white;margin:0px%2010px;%5c%22%3E%22+sj(_29)+%22%3C%2ftextarea%3E%22;}else{if((_29==null)&&(_2a==null)){_32+=%22%3Cdiv%3ENo%20login%20form%20has%20been%20found%20on%20the%20page%3C%2fdiv%3E%3Cdiv%3EGet%20some%20help%20%3Ca%20href=%5c%22%23%5c%22%3Ehere%3C%2fa%3E%3C%2fdiv%3E%22;}else{_32+=%22%3Cdiv%3EAn%20error%20happened%20while%20processing%20the%20page%3C%2fdiv%3E%3Cdiv%3EGet%20some%20help%20%3Ca%20href=%5c%22%23%5c%22%3Ehere%3C%2fa%3E%3C%2fdiv%3E%3Cdiv%3E%22+_2a.name+%22%20-%20%22+_2a.message+%22%3C%2fdiv%3E%22;}}_2b.innerHTML=%22%3Cdiv%20id=%5c%22ClipperzBackgroundDIV%5c%22%3E%22+_32+%22%3C%2fdiv%3E%22;document.body.appendChild(_2b);if((_29!=null)&&(_2a==null)){_31=document.getElementById(%22bookmarklet_textarea%22);_31.focus();_31.select();}};getLoginFormConfiguration=function(){var%20_33;try{_33={};_33.page=pp();_33.form=fp(flf(document,0));_33.version=%220.2.3%22;lfp(_33,_cble);}catch(e){lfp(_33,e);}};getLoginFormConfiguration();', 'CrossWindowsBookmarklet_TEST'); |
58 | console.log("runBookmarkletScript"); | 55 | console.log("runBookmarkletScript"); |
59 | }; | 56 | }; |
60 | 57 | ||
61 | init = function () { | 58 | init = function () { |
62 | MochiKit.Signal.connect('newWindow', 'onclick', newWindow); | 59 | MochiKit.Signal.connect('newWindow', 'onclick', newWindow); |
63 | MochiKit.Signal.connect('runBookmarkletScript', 'onclick', runBookmarkletScript); | 60 | MochiKit.Signal.connect('runBookmarkletScript', 'onclick', runBookmarkletScript); |
64 | }; | 61 | }; |
65 | 62 | ||
66 | MochiKit.DOM.addLoadEvent(init); | 63 | MochiKit.DOM.addLoadEvent(init); |
diff --git a/frontend/gamma/tests/tests/Components/crossWindowsBookmarklet/index.html b/frontend/gamma/tests/tests/Components/crossWindowsBookmarklet/index.html index 10e2f2e..50928d2 100644 --- a/frontend/gamma/tests/tests/Components/crossWindowsBookmarklet/index.html +++ b/frontend/gamma/tests/tests/Components/crossWindowsBookmarklet/index.html | |||
@@ -1,73 +1,70 @@ | |||
1 | <!-- | 1 | <!-- |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | --> | 24 | --> |
28 | 25 | ||
29 | <html> | 26 | <html> |
30 | <head> | 27 | <head> |
31 | <title>Cross Window Bookmarklet execution - test</title> | 28 | <title>Cross Window Bookmarklet execution - test</title> |
32 | <script type="text/javascript" src="../../../../js/MochiKit/MochiKit.js"></script> | 29 | <script type="text/javascript" src="../../../../js/MochiKit/MochiKit.js"></script> |
33 | <script type='text/javascript' src='../../../../js/JSON/json2.js'></script> | 30 | <script type='text/javascript' src='../../../../js/JSON/json2.js'></script> |
34 | 31 | ||
35 | <script type='text/javascript' src='../../../../js/Clipperz/YUI/Utils.js'></script> | 32 | <script type='text/javascript' src='../../../../js/Clipperz/YUI/Utils.js'></script> |
36 | <script type='text/javascript' src='../../../../js/Clipperz/YUI/DomHelper.js'></script> | 33 | <script type='text/javascript' src='../../../../js/Clipperz/YUI/DomHelper.js'></script> |
37 | <script type='text/javascript' src='../../../../js/Clipperz/Base.js'></script> | 34 | <script type='text/javascript' src='../../../../js/Clipperz/Base.js'></script> |
38 | <script type='text/javascript' src='../../../../js/Clipperz/Date.js'></script> | 35 | <script type='text/javascript' src='../../../../js/Clipperz/Date.js'></script> |
39 | <script type='text/javascript' src='../../../../js/Clipperz/DOM.js'></script> | 36 | <script type='text/javascript' src='../../../../js/Clipperz/DOM.js'></script> |
40 | <script type='text/javascript' src='../../../../js/Clipperz/ByteArray.js'></script> | 37 | <script type='text/javascript' src='../../../../js/Clipperz/ByteArray.js'></script> |
41 | <script type='text/javascript' src='../../../../js/Clipperz/Logging.js'></script> | 38 | <script type='text/javascript' src='../../../../js/Clipperz/Logging.js'></script> |
42 | <script type='text/javascript' src='../../../../js/Clipperz/Async.js'></script> | 39 | <script type='text/javascript' src='../../../../js/Clipperz/Async.js'></script> |
43 | 40 | ||
44 | <script type='text/javascript' src='../../../../js/Clipperz/Signal.js'></script> | 41 | <script type='text/javascript' src='../../../../js/Clipperz/Signal.js'></script> |
45 | <script type='text/javascript' src='../../../../js/Clipperz/Style.js'></script> | 42 | <script type='text/javascript' src='../../../../js/Clipperz/Style.js'></script> |
46 | <script type='text/javascript' src='../../../../js/Clipperz/Visual.js'></script> | 43 | <script type='text/javascript' src='../../../../js/Clipperz/Visual.js'></script> |
47 | <script type='text/javascript' src='../../../../js/Clipperz/Set.js'></script> | 44 | <script type='text/javascript' src='../../../../js/Clipperz/Set.js'></script> |
48 | <script type='text/javascript' src='../../../../js/Clipperz/KeyValueObjectStore.js'></script> | 45 | <script type='text/javascript' src='../../../../js/Clipperz/KeyValueObjectStore.js'></script> |
49 | 46 | ||
50 | <script type='text/javascript' src='./CrossWindowsBookmarklet_test.js'></script> | 47 | <script type='text/javascript' src='./CrossWindowsBookmarklet_test.js'></script> |
51 | <script> | 48 | <script> |
52 | Clipperz_IEisBroken = false; | 49 | Clipperz_IEisBroken = false; |
53 | </script> | 50 | </script> |
54 | 51 | ||
55 | <!--[if IE]><script> | 52 | <!--[if IE]><script> |
56 | Clipperz_IEisBroken = true; | 53 | Clipperz_IEisBroken = true; |
57 | </script><![endif]--> | 54 | </script><![endif]--> |
58 | 55 | ||
59 | <link rel="stylesheet" type="text/css" href="../../../../css/clipperz/clipperz.css" /> | 56 | <link rel="stylesheet" type="text/css" href="../../../../css/clipperz/clipperz.css" /> |
60 | <link rel="stylesheet" type="text/css" href="../../../../css/clipperz/compact.css" /> | 57 | <link rel="stylesheet" type="text/css" href="../../../../css/clipperz/compact.css" /> |
61 | <link rel="stylesheet" type="text/css" href="../../../../css/clipperz/ytheme-clipperz.css" /> | 58 | <link rel="stylesheet" type="text/css" href="../../../../css/clipperz/ytheme-clipperz.css" /> |
62 | 59 | ||
63 | </head> | 60 | </head> |
64 | <body> | 61 | <body> |
65 | 62 | ||
66 | <div id="tableWrapper"></div> | 63 | <div id="tableWrapper"></div> |
67 | 64 | ||
68 | <ul> | 65 | <ul> |
69 | <li><a href="#" id="newWindow">open window</a></li> | 66 | <li><a href="#" id="newWindow">open window</a></li> |
70 | <li><a href="#" id="runBookmarkletScript">run bookmarklet script</a></li> | 67 | <li><a href="#" id="runBookmarkletScript">run bookmarklet script</a></li> |
71 | </ul> | 68 | </ul> |
72 | </body> | 69 | </body> |
73 | </html> | 70 | </html> |
diff --git a/frontend/gamma/tests/tests/index.html b/frontend/gamma/tests/tests/index.html index 75b8e95..9775f93 100644 --- a/frontend/gamma/tests/tests/index.html +++ b/frontend/gamma/tests/tests/index.html | |||
@@ -1,48 +1,45 @@ | |||
1 | <!-- | 1 | <!-- |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | --> | 24 | --> |
28 | 25 | ||
29 | <html> | 26 | <html> |
30 | <head> | 27 | <head> |
31 | <title>Complete TEST suite</title> | 28 | <title>Complete TEST suite</title> |
32 | <script type="text/javascript" src="../../js/MochiKit/MochiKit.js"></script> | 29 | <script type="text/javascript" src="../../js/MochiKit/MochiKit.js"></script> |
33 | <script type="text/javascript" src="../SimpleTest/TestRunner.js"></script> | 30 | <script type="text/javascript" src="../SimpleTest/TestRunner.js"></script> |
34 | </head> | 31 | </head> |
35 | <body> | 32 | <body> |
36 | <script> | 33 | <script> |
37 | TestRunner.runTests( | 34 | TestRunner.runTests( |
38 | 'Clipperz/index.html', | 35 | 'Clipperz/index.html', |
39 | 'Clipperz/Crypto/index.html', | 36 | 'Clipperz/Crypto/index.html', |
40 | 'Clipperz/PM/index.html', | 37 | 'Clipperz/PM/index.html', |
41 | 'Clipperz/PM/DataModel/index.html', | 38 | 'Clipperz/PM/DataModel/index.html', |
42 | 'Clipperz/PM/UI/index.html', | 39 | 'Clipperz/PM/UI/index.html', |
43 | 'Clipperz/PM/UI/Web/index.html', | 40 | 'Clipperz/PM/UI/Web/index.html', |
44 | 'Clipperz/PM/UI/Web/Controllers/index.html' | 41 | 'Clipperz/PM/UI/Web/Controllers/index.html' |
45 | ); | 42 | ); |
46 | </script> | 43 | </script> |
47 | </body> | 44 | </body> |
48 | </html> \ No newline at end of file | 45 | </html> \ No newline at end of file |