Merge lp:~noskcaj/ubuntu/vivid/gnome-keyring/3.15.90 into lp:ubuntu/vivid/gnome-keyring
- Vivid (15.04)
- 3.15.90
- Merge into vivid
Proposed by
Jackson Doak
Status: | Rejected |
---|---|
Rejected by: | Iain Lane |
Proposed branch: | lp:~noskcaj/ubuntu/vivid/gnome-keyring/3.15.90 |
Merge into: | lp:ubuntu/vivid/gnome-keyring |
Diff against target: |
5857 lines (+2330/-1579) 53 files modified
.pc/bgz_exit_on_bus_close.patch/daemon/dbus/gkd-dbus.c (+5/-2) ChangeLog (+914/-0) Makefile.in (+4/-48) NEWS (+6/-0) configure (+10/-10) configure.ac (+1/-1) daemon/dbus/gkd-dbus.c (+5/-2) daemon/dbus/gkd-secret-service.c (+3/-0) daemon/dbus/test-dbus-items.c (+3/-1) daemon/gpg-agent/Makefile.am (+0/-15) daemon/gpg-agent/gkd-gpg-agent-ops.c (+21/-248) daemon/gpg-agent/gkd-gpg-agent-standalone.c (+0/-123) daemon/gpg-agent/gkd-gpg-agent.c (+1/-0) daemon/login/Makefile.am (+1/-0) daemon/login/gkd-login.c (+300/-0) daemon/login/gkd-login.h (+20/-0) daemon/ssh-agent/gkd-ssh-agent-ops.c (+13/-8) daemon/test-startup.c (+2/-2) debian/changelog (+6/-0) egg/egg-asn1x.c (+8/-7) egg/egg-cleanup.c (+1/-0) egg/egg-hkdf.c (+1/-0) egg/test-asn1.c (+1/-0) egg/test-dn.c (+1/-0) egg/test-padding.c (+1/-0) egg/test-spawn.c (+6/-0) pam/test-pam.c (+1/-0) pkcs11/gkm/gkm-attributes.c (+1/-0) pkcs11/gkm/gkm-credential.c (+4/-0) pkcs11/gkm/gkm-data-asn1.c (+1/-0) pkcs11/gkm/gkm-mock.c (+29/-3) pkcs11/gkm/test-data-asn1.c (+3/-0) pkcs11/gkm/test-data-der.c (+13/-0) pkcs11/gkm/test-secret.c (+3/-0) pkcs11/gkm/test-sexp.c (+2/-0) pkcs11/gnome2-store/gkm-gnome2-file.c (+7/-13) pkcs11/gnome2-store/gkm-gnome2-storage.c (+4/-0) pkcs11/gnome2-store/test-import.c (+1/-0) pkcs11/secret-store/gkm-secret-item.c (+3/-0) pkcs11/secret-store/gkm-secret-search.c (+1/-0) pkcs11/secret-store/gkm-secret-textual.c (+1/-0) pkcs11/secret-store/test-secret-binary.c (+1/-0) pkcs11/secret-store/test-secret-textual.c (+1/-0) pkcs11/wrap-layer/gkm-wrap-prompt.c (+51/-21) pkcs11/wrap-layer/mock-secret-store.c (+1/-1) pkcs11/xdg-store/gkm-xdg-assertion.c (+2/-0) pkcs11/xdg-store/gkm-xdg-trust.c (+6/-2) pkcs11/xdg-store/test-xdg-module.c (+1/-0) pkcs11/xdg-store/test-xdg-trust.c (+1/-0) po/LINGUAS (+1/-0) po/kk.po (+572/-0) po/tr.po (+127/-128) po/vi.po (+158/-944) |
To merge this branch: | bzr merge lp:~noskcaj/ubuntu/vivid/gnome-keyring/3.15.90 |
Related bugs: |
Reviewer | Review Type | Date Requested | Status |
---|---|---|---|
Ubuntu branches | Pending | ||
Review via email: mp+251325@code.launchpad.net |
Commit message
Description of the change
New upstream bugfix release
* Fix leaks [#738508]
* Refactoring
* Build fixes [#740190]
* Updated translations
To post a comment you must log in.
Revision history for this message
Iain Lane (laney) wrote : | # |
Revision history for this message
Iain Lane (laney) wrote : | # |
Actually it looks in this case like the branch got out of date.
I'm going to bring it in sync with reality.
Unmerged revisions
- 173. By Jackson Doak
-
New upstream bugfix release.
- 172. By Dimitri John Ledkov
-
Fix the gpg/ssh agent check syntax. Thanks to Sergey Romanov (LP:
#1400662)
Preview Diff
[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1 | === modified file '.pc/bgz_exit_on_bus_close.patch/daemon/dbus/gkd-dbus.c' | |||
2 | --- .pc/bgz_exit_on_bus_close.patch/daemon/dbus/gkd-dbus.c 2014-12-06 18:47:09 +0000 | |||
3 | +++ .pc/bgz_exit_on_bus_close.patch/daemon/dbus/gkd-dbus.c 2015-02-27 19:55:06 +0000 | |||
4 | @@ -103,7 +103,6 @@ | |||
5 | 103 | 103 | ||
6 | 104 | const gchar **env; | 104 | const gchar **env; |
7 | 105 | DBusMessageIter items, entry; | 105 | DBusMessageIter items, entry; |
8 | 106 | gchar **parts; | ||
9 | 107 | 106 | ||
10 | 108 | env = gkd_util_get_environment (); | 107 | env = gkd_util_get_environment (); |
11 | 109 | g_return_val_if_fail (env, DBUS_HANDLER_RESULT_NOT_YET_HANDLED); | 108 | g_return_val_if_fail (env, DBUS_HANDLER_RESULT_NOT_YET_HANDLED); |
12 | @@ -114,13 +113,17 @@ | |||
13 | 114 | if (!dbus_message_iter_open_container (&args, DBUS_TYPE_ARRAY, "{ss}", &items)) | 113 | if (!dbus_message_iter_open_container (&args, DBUS_TYPE_ARRAY, "{ss}", &items)) |
14 | 115 | g_return_val_if_reached (DBUS_HANDLER_RESULT_NEED_MEMORY); | 114 | g_return_val_if_reached (DBUS_HANDLER_RESULT_NEED_MEMORY); |
15 | 116 | while (*env) { | 115 | while (*env) { |
16 | 116 | gchar **parts; | ||
17 | 117 | parts = g_strsplit (*env, "=", 2); | 117 | parts = g_strsplit (*env, "=", 2); |
18 | 118 | g_return_val_if_fail (parts && parts[0] && parts[1], DBUS_HANDLER_RESULT_NOT_YET_HANDLED); | 118 | g_return_val_if_fail (parts && parts[0] && parts[1], DBUS_HANDLER_RESULT_NOT_YET_HANDLED); |
19 | 119 | if (!dbus_message_iter_open_container (&items, DBUS_TYPE_DICT_ENTRY, NULL, &entry) || | 119 | if (!dbus_message_iter_open_container (&items, DBUS_TYPE_DICT_ENTRY, NULL, &entry) || |
20 | 120 | !dbus_message_iter_append_basic (&entry, DBUS_TYPE_STRING, &parts[0]) || | 120 | !dbus_message_iter_append_basic (&entry, DBUS_TYPE_STRING, &parts[0]) || |
21 | 121 | !dbus_message_iter_append_basic (&entry, DBUS_TYPE_STRING, &parts[1]) || | 121 | !dbus_message_iter_append_basic (&entry, DBUS_TYPE_STRING, &parts[1]) || |
23 | 122 | !dbus_message_iter_close_container (&items, &entry)) | 122 | !dbus_message_iter_close_container (&items, &entry)) { |
24 | 123 | g_strfreev (parts); | ||
25 | 123 | g_return_val_if_reached (DBUS_HANDLER_RESULT_NEED_MEMORY); | 124 | g_return_val_if_reached (DBUS_HANDLER_RESULT_NEED_MEMORY); |
26 | 125 | } | ||
27 | 126 | g_strfreev (parts); | ||
28 | 124 | ++env; | 127 | ++env; |
29 | 125 | } | 128 | } |
30 | 126 | if (!dbus_message_iter_close_container (&args, &items)) | 129 | if (!dbus_message_iter_close_container (&args, &items)) |
31 | 127 | 130 | ||
32 | === modified file 'ChangeLog' | |||
33 | --- ChangeLog 2014-12-06 18:47:09 +0000 | |||
34 | +++ ChangeLog 2015-02-27 19:55:06 +0000 | |||
35 | @@ -1,5 +1,919 @@ | |||
36 | 1 | # Generate automatically. Do not edit. | 1 | # Generate automatically. Do not edit. |
37 | 2 | 2 | ||
38 | 3 | commit bf38a2eca54dc8360bce074887a2abd4f63eaeb9 | ||
39 | 4 | Author: Stef Walter <stefw@gnome.org> | ||
40 | 5 | Date: 2015-02-25 | ||
41 | 6 | |||
42 | 7 | Release version 3.15.90 | ||
43 | 8 | |||
44 | 9 | NEWS | 6 ++++++ | ||
45 | 10 | configure.ac | 2 +- | ||
46 | 11 | 2 files changed, 7 insertions(+), 1 deletion(-) | ||
47 | 12 | |||
48 | 13 | commit a3a45e283275887947182177deb4185304593fbc | ||
49 | 14 | Author: Muhammet Kara <muhammetk@gmail.com> | ||
50 | 15 | Date: 2014-12-06 | ||
51 | 16 | |||
52 | 17 | Updated Turkish translation | ||
53 | 18 | |||
54 | 19 | po/tr.po | 255 +++++++++++++++++++++++++++++++-------------------------------- | ||
55 | 20 | 1 file changed, 127 insertions(+), 128 deletions(-) | ||
56 | 21 | |||
57 | 22 | commit 3eb2019cfd558f3f6a4b1d3fe6c0f9dc60c6457f | ||
58 | 23 | Author: Trần Ngọc Quân <vnwildman@gmail.com> | ||
59 | 24 | Date: 2014-11-21 | ||
60 | 25 | |||
61 | 26 | Updated Vietnamese translation | ||
62 | 27 | |||
63 | 28 | Signed-off-by: Trần Ngọc Quân <vnwildman@gmail.com> | ||
64 | 29 | |||
65 | 30 | po/vi.po | 1102 +++++++++----------------------------------------------------- | ||
66 | 31 | 1 file changed, 158 insertions(+), 944 deletions(-) | ||
67 | 32 | |||
68 | 33 | commit f59fb0646dedd4e730c9e8e3c090d7cd52ac5278 | ||
69 | 34 | Author: Ting-Wei Lan <lantw@src.gnome.org> | ||
70 | 35 | Date: 2014-11-16 | ||
71 | 36 | |||
72 | 37 | Fix "void function should not return a value" error for clang | ||
73 | 38 | |||
74 | 39 | https://bugzilla.gnome.org/show_bug.cgi?id=740190 | ||
75 | 40 | |||
76 | 41 | daemon/login/gkd-login.c | 2 +- | ||
77 | 42 | 1 file changed, 1 insertion(+), 1 deletion(-) | ||
78 | 43 | |||
79 | 44 | commit 28f04eb2bcff369ab13f3c98c00b7bcbf91594d3 | ||
80 | 45 | Author: Christophe Fergeau <cfergeau@redhat.com> | ||
81 | 46 | Date: 2014-09-15 | ||
82 | 47 | |||
83 | 48 | asn1x: Sanitize use of asn1_set_value/asn1_take_value | ||
84 | 49 | |||
85 | 50 | Most callers of asn1_set_value() seems to assume this function will take | ||
86 | 51 | ownership of the passed in GBytes, while it actually takes an additional | ||
87 | 52 | reference. | ||
88 | 53 | |||
89 | 54 | https://bugzilla.gnome.org/show_bug.cgi?id=738508 | ||
90 | 55 | |||
91 | 56 | egg/egg-asn1x.c | 14 +++++++------- | ||
92 | 57 | 1 file changed, 7 insertions(+), 7 deletions(-) | ||
93 | 58 | |||
94 | 59 | commit 6da13bb815c3893ab305316ca3f08faaf0093953 | ||
95 | 60 | Author: Christophe Fergeau <cfergeau@redhat.com> | ||
96 | 61 | Date: 2014-10-15 | ||
97 | 62 | |||
98 | 63 | daemon: Fix GStrv leak in DBus message handler | ||
99 | 64 | |||
100 | 65 | https://bugzilla.gnome.org/show_bug.cgi?id=738508 | ||
101 | 66 | |||
102 | 67 | daemon/dbus/gkd-dbus.c | 7 +++++-- | ||
103 | 68 | 1 file changed, 5 insertions(+), 2 deletions(-) | ||
104 | 69 | |||
105 | 70 | commit b087539a6cdd624fc4e0d6ae7de2811ab96864e6 | ||
106 | 71 | Author: Christophe Fergeau <cfergeau@redhat.com> | ||
107 | 72 | Date: 2014-09-21 | ||
108 | 73 | |||
109 | 74 | Don't leak password data in gkm_wrap_prompt_do_credential | ||
110 | 75 | |||
111 | 76 | Memory returned by auto_unlock_lookup_object() must be freed | ||
112 | 77 | while memory returned by gkm_wrap_prompt_request_password() must | ||
113 | 78 | not be freed. Depending on the situation, CredentialPrompt::password | ||
114 | 79 | will contain one or the other, and currently this field is never | ||
115 | 80 | freed, causing leaks when the password comes from | ||
116 | 81 | auto_unlock_lookup_object(). | ||
117 | 82 | |||
118 | 83 | This commit will always free CredentialPrompt::password when it's | ||
119 | 84 | no longer needed, and will create a copy of the returned string | ||
120 | 85 | when gkm_wrap_prompt_request_password() is called. | ||
121 | 86 | |||
122 | 87 | This fixes (line numbers from 3.13.91-2-g45bb5be): | ||
123 | 88 | |||
124 | 89 | ==2190== 8 bytes in 1 blocks are definitely lost in loss record 58 of 1,294 | ||
125 | 90 | ==2190== at 0x4A0645D: malloc (in /usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so) | ||
126 | 91 | ==2190== by 0x5DE6DE6: g_malloc (gmem.c:97) | ||
127 | 92 | ==2190== by 0x5E024B5: g_memdup (gstrfuncs.c:384) | ||
128 | 93 | ==2190== by 0x41296C: gkm_template_set (gkm-attributes.c:600) | ||
129 | 94 | ==2190== by 0x4129F0: gkm_template_set_value (gkm-attributes.c:614) | ||
130 | 95 | ==2190== by 0x419BCD: mock_secret_C_CreateObject (mock-secret-store.c:174) | ||
131 | 96 | ==2190== by 0x40646E: wrap_C_CreateObject (gkm-wrap-layer.c:741) | ||
132 | 97 | ==2190== by 0x418985: find_login_keyring_item (gkm-wrap-login.c:254) | ||
133 | 98 | ==2190== by 0x4190AF: gkm_wrap_login_lookup_secret (gkm-wrap-login.c:396) | ||
134 | 99 | ==2190== by 0x407E8D: auto_unlock_lookup_object (gkm-wrap-prompt.c:198) | ||
135 | 100 | ==2190== by 0x40B9B0: login_prompt_do_specific (gkm-wrap-prompt.c:1453) | ||
136 | 101 | ==2190== by 0x40C13A: gkm_wrap_prompt_do_login (gkm-wrap-prompt.c:1591) | ||
137 | 102 | ==2190== by 0x406384: auth_C_Login (gkm-wrap-layer.c:706) | ||
138 | 103 | ==2190== by 0x40472A: test_specific (test-login-auto.c:156) | ||
139 | 104 | ==2190== by 0x5E0A27A: test_case_run (gtestutils.c:2059) | ||
140 | 105 | ==2190== by 0x5E0A602: g_test_run_suite_internal (gtestutils.c:2120) | ||
141 | 106 | ==2190== by 0x5E0A6C4: g_test_run_suite_internal (gtestutils.c:2131) | ||
142 | 107 | ==2190== by 0x5E0A6C4: g_test_run_suite_internal (gtestutils.c:2131) | ||
143 | 108 | ==2190== by 0x5E0A847: g_test_run_suite (gtestutils.c:2184) | ||
144 | 109 | ==2190== by 0x5E09551: g_test_run (gtestutils.c:1488) | ||
145 | 110 | ==2190== by 0x410851: testing_thread (egg-testing.c:142) | ||
146 | 111 | ==2190== by 0x5E0D2F4: g_thread_proxy (gthread.c:764) | ||
147 | 112 | ==2190== by 0x3B7AE07F34: start_thread (pthread_create.c:309) | ||
148 | 113 | ==2190== by 0x3B7AAF4C3C: clone (clone.S:111) | ||
149 | 114 | |||
150 | 115 | https://bugzilla.gnome.org/show_bug.cgi?id=738508 | ||
151 | 116 | |||
152 | 117 | pkcs11/wrap-layer/gkm-wrap-prompt.c | 10 +++++++--- | ||
153 | 118 | 1 file changed, 7 insertions(+), 3 deletions(-) | ||
154 | 119 | |||
155 | 120 | commit dc5a7dc4e5690e258a90d8ddfc39e17c1f8d4938 | ||
156 | 121 | Author: Christophe Fergeau <cfergeau@redhat.com> | ||
157 | 122 | Date: 2014-09-21 | ||
158 | 123 | |||
159 | 124 | Don't leak password in login_prompt_do_{specific, user) | ||
160 | 125 | |||
161 | 126 | login_prompt_do_specific() and login_prompt_do_user() both | ||
162 | 127 | set GkmWrapPrompt::prompt_data to either memory which must be freed | ||
163 | 128 | with egg_secure_memory_strfree (through a call to | ||
164 | 129 | auto_unlock_lookup_*) or to const memory which must not be freed | ||
165 | 130 | (through a call to gkm_wrap_prompt_request_password). | ||
166 | 131 | |||
167 | 132 | These methods currently assume the password memory does not need | ||
168 | 133 | to be freed, which leads to this leak in test-login-auto (line numbers | ||
169 | 134 | from 3.13.91-2-g45bb5be): | ||
170 | 135 | |||
171 | 136 | ==2190== 5 bytes in 1 blocks are definitely lost in loss record 17 of 1,294 | ||
172 | 137 | ==2190== at 0x40F8E4: egg_secure_alloc_full (egg-secure-memory.c:1056) | ||
173 | 138 | ==2190== by 0x417F5E: egg_secure_alloc (gkm-wrap-login.c:42) | ||
174 | 139 | ==2190== by 0x419157: gkm_wrap_login_lookup_secret (gkm-wrap-login.c:409) | ||
175 | 140 | ==2190== by 0x407E8D: auto_unlock_lookup_object (gkm-wrap-prompt.c:198) | ||
176 | 141 | ==2190== by 0x40B9B0: login_prompt_do_specific (gkm-wrap-prompt.c:1453) | ||
177 | 142 | ==2190== by 0x40C13A: gkm_wrap_prompt_do_login (gkm-wrap-prompt.c:1591) | ||
178 | 143 | ==2190== by 0x406384: auth_C_Login (gkm-wrap-layer.c:706) | ||
179 | 144 | ==2190== by 0x40472A: test_specific (test-login-auto.c:156) | ||
180 | 145 | ==2190== by 0x5E0A27A: test_case_run (gtestutils.c:2059) | ||
181 | 146 | ==2190== by 0x5E0A602: g_test_run_suite_internal (gtestutils.c:2120) | ||
182 | 147 | ==2190== by 0x5E0A6C4: g_test_run_suite_internal (gtestutils.c:2131) | ||
183 | 148 | ==2190== by 0x5E0A6C4: g_test_run_suite_internal (gtestutils.c:2131) | ||
184 | 149 | ==2190== by 0x5E0A847: g_test_run_suite (gtestutils.c:2184) | ||
185 | 150 | ==2190== by 0x5E09551: g_test_run (gtestutils.c:1488) | ||
186 | 151 | ==2190== by 0x410851: testing_thread (egg-testing.c:142) | ||
187 | 152 | ==2190== by 0x5E0D2F4: g_thread_proxy (gthread.c:764) | ||
188 | 153 | ==2190== by 0x3B7AE07F34: start_thread (pthread_create.c:309) | ||
189 | 154 | ==2190== by 0x3B7AAF4C3C: clone (clone.S:111) | ||
190 | 155 | |||
191 | 156 | https://bugzilla.gnome.org/show_bug.cgi?id=738508 | ||
192 | 157 | |||
193 | 158 | pkcs11/wrap-layer/gkm-wrap-prompt.c | 62 ++++++++++++++++++++++++++----------- | ||
194 | 159 | 1 file changed, 44 insertions(+), 18 deletions(-) | ||
195 | 160 | |||
196 | 161 | commit abf3473a9a14784a76911ef35c0916d462d55402 | ||
197 | 162 | Author: Stef Walter <stefw@redhat.com> | ||
198 | 163 | Date: 2014-10-26 | ||
199 | 164 | |||
200 | 165 | gpg-agent: Use common code for storing/retrieving passwords | ||
201 | 166 | |||
202 | 167 | daemon/gpg-agent/gkd-gpg-agent-ops.c | 269 +++-------------------------------- | ||
203 | 168 | 1 file changed, 21 insertions(+), 248 deletions(-) | ||
204 | 169 | |||
205 | 170 | commit 354f9887eef1c2c6144b904739ca0230bc2f2a4e | ||
206 | 171 | Author: Stef Walter <stefw@redhat.com> | ||
207 | 172 | Date: 2014-10-26 | ||
208 | 173 | |||
209 | 174 | login: Factor out the code for storing/retrieving login keyring passwords | ||
210 | 175 | |||
211 | 176 | This was in the gpg-agent, and want to use it in our ssh-agent wrapper | ||
212 | 177 | |||
213 | 178 | daemon/login/Makefile.am | 1 + | ||
214 | 179 | daemon/login/gkd-login.c | 300 +++++++++++++++++++++++++++++++++++++++++++++++ | ||
215 | 180 | daemon/login/gkd-login.h | 20 ++++ | ||
216 | 181 | 3 files changed, 321 insertions(+) | ||
217 | 182 | |||
218 | 183 | commit d9df0a179fbfae82f8cec20cf46e8b9f03c044ba | ||
219 | 184 | Author: Stef Walter <stefw@redhat.com> | ||
220 | 185 | Date: 2014-10-26 | ||
221 | 186 | |||
222 | 187 | gpg-agent: No longer build the testing standalone agent | ||
223 | 188 | |||
224 | 189 | This just caused more unneccessary code that we'd never use. | ||
225 | 190 | |||
226 | 191 | daemon/gpg-agent/Makefile.am | 15 --------------- | ||
227 | 192 | 1 file changed, 15 deletions(-) | ||
228 | 193 | |||
229 | 194 | commit ea36fd9182c143348851be2053bce9b6da052bc8 | ||
230 | 195 | Author: Baurzhan Muftakhidinov <baurthefirst@gmail.com> | ||
231 | 196 | Date: 2014-10-28 | ||
232 | 197 | |||
233 | 198 | Added Kazakh translation | ||
234 | 199 | |||
235 | 200 | po/LINGUAS | 1 + | ||
236 | 201 | po/kk.po | 572 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ | ||
237 | 202 | 2 files changed, 573 insertions(+) | ||
238 | 203 | |||
239 | 204 | commit 082a2fe3278c37b9899c23ebac003791a8999ea5 | ||
240 | 205 | Author: Stef Walter <stefw@redhat.com> | ||
241 | 206 | Date: 2014-10-25 | ||
242 | 207 | |||
243 | 208 | Ignore vim swp temporary files | ||
244 | 209 | |||
245 | 210 | .gitignore | 1 + | ||
246 | 211 | 1 file changed, 1 insertion(+) | ||
247 | 212 | |||
248 | 213 | commit 39aeef6f368e4d8517f19b83c33d55b9cc87f44f | ||
249 | 214 | Author: Christophe Fergeau <cfergeau@redhat.com> | ||
250 | 215 | Date: 2014-10-14 | ||
251 | 216 | |||
252 | 217 | GkdGpgAgent: Unref GIOChannel when no longer needed | ||
253 | 218 | |||
254 | 219 | This fixes a memory leak reported by valgrind on daemon shutdown | ||
255 | 220 | (tested by starting a new daemon instance with --replace). | ||
256 | 221 | |||
257 | 222 | https://bugzilla.gnome.org/show_bug.cgi?id=738508 | ||
258 | 223 | |||
259 | 224 | daemon/gpg-agent/gkd-gpg-agent.c | 1 + | ||
260 | 225 | 1 file changed, 1 insertion(+) | ||
261 | 226 | |||
262 | 227 | commit 3db6f3bbbd13d6eec29cf96f103975f793b24e4e | ||
263 | 228 | Author: Christophe Fergeau <cfergeau@redhat.com> | ||
264 | 229 | Date: 2014-10-14 | ||
265 | 230 | |||
266 | 231 | Free GkdSecretService::alias_directory in finalize() | ||
267 | 232 | |||
268 | 233 | This fixes a memory leak reported by valgrind on daemon shutdown | ||
269 | 234 | (tested by starting a new daemon instance with --replace). | ||
270 | 235 | |||
271 | 236 | https://bugzilla.gnome.org/show_bug.cgi?id=738508 | ||
272 | 237 | |||
273 | 238 | daemon/dbus/gkd-secret-service.c | 3 +++ | ||
274 | 239 | 1 file changed, 3 insertions(+) | ||
275 | 240 | |||
276 | 241 | commit ddcdccbf98ba71547c6494db07b3ece505ec769b | ||
277 | 242 | Author: Christophe Fergeau <cfergeau@redhat.com> | ||
278 | 243 | Date: 2014-10-13 | ||
279 | 244 | |||
280 | 245 | GkmMock: Fix handling of CKA_G_CREDENTIAL_TEMPLATE attributes | ||
281 | 246 | |||
282 | 247 | These are special as their value is an array of CK_ATTRIBUTE pointing to | ||
283 | 248 | allocated memory. Moreover, when gkm_mock_C_SetAttributeValue() is | ||
284 | 249 | called, this memory is owned by the caller, so it needs to be duplicated | ||
285 | 250 | as the caller may free it before GkmMock no longer needs it. | ||
286 | 251 | |||
287 | 252 | We also need to make sure this memory we just duplicated is correctly | ||
288 | 253 | freed when no longer needed. | ||
289 | 254 | |||
290 | 255 | This is achieved by introducing an additional global variable, | ||
291 | 256 | the_credential_template. This is similar to how this type of attributes | ||
292 | 257 | is handled in GkmSecretCollection. | ||
293 | 258 | |||
294 | 259 | Without this, running test-login-auto in valgrind causes invalid reads: | ||
295 | 260 | |||
296 | 261 | ==5954== Invalid read of size 1 | ||
297 | 262 | ==5954== at 0x4123D4: gkm_attributes_find_boolean (gkm-attributes.c:503) | ||
298 | 263 | ==5954== by 0x408C00: set_unlock_options_on_prompt (gkm-wrap-prompt.c:520) | ||
299 | 264 | ==5954== by 0x40A3E8: gkm_wrap_prompt_do_credential (gkm-wrap-prompt.c:1055) | ||
300 | 265 | ==5954== by 0x40641C: auth_C_CreateObject (gkm-wrap-layer.c:764) | ||
301 | 266 | ==5954== by 0x404D7B: test_unlock_keyring (test-login-auto.c:243) | ||
302 | 267 | ==5954== by 0x5E04A8B: test_case_run (gtestutils.c:2059) | ||
303 | 268 | ==5954== by 0x5E04E2D: g_test_run_suite_internal (gtestutils.c:2120) | ||
304 | 269 | ==5954== by 0x5E04EEF: g_test_run_suite_internal (gtestutils.c:2131) | ||
305 | 270 | ==5954== by 0x5E04EEF: g_test_run_suite_internal (gtestutils.c:2131) | ||
306 | 271 | ==5954== by 0x5E0506F: g_test_run_suite (gtestutils.c:2184) | ||
307 | 272 | ==5954== by 0x5E03D5C: g_test_run (gtestutils.c:1488) | ||
308 | 273 | ==5954== by 0x410725: testing_thread (egg-testing.c:142) | ||
309 | 274 | ==5954== by 0x5E07B29: g_thread_proxy (gthread.c:764) | ||
310 | 275 | ==5954== by 0x3899207529: start_thread (pthread_create.c:310) | ||
311 | 276 | ==5954== by 0x3898F0077C: clone (clone.S:109) | ||
312 | 277 | ==5954== Address 0x85bad90 is 0 bytes inside a block of size 1 free'd | ||
313 | 278 | ==5954== at 0x4A07CE9: free (in /usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so) | ||
314 | 279 | ==5954== by 0x5DE1A0D: g_free (gmem.c:190) | ||
315 | 280 | ==5954== by 0x409E54: gkm_wrap_prompt_finalize (gkm-wrap-prompt.c:933) | ||
316 | 281 | ==5954== by 0x590293A: g_object_unref (gobject.c:3170) | ||
317 | 282 | ==5954== by 0x40644A: auth_C_CreateObject (gkm-wrap-layer.c:771) | ||
318 | 283 | ==5954== by 0x404CD5: test_unlock_keyring (test-login-auto.c:234) | ||
319 | 284 | ==5954== by 0x5E04A8B: test_case_run (gtestutils.c:2059) | ||
320 | 285 | ==5954== by 0x5E04E2D: g_test_run_suite_internal (gtestutils.c:2120) | ||
321 | 286 | ==5954== by 0x5E04EEF: g_test_run_suite_internal (gtestutils.c:2131) | ||
322 | 287 | ==5954== by 0x5E04EEF: g_test_run_suite_internal (gtestutils.c:2131) | ||
323 | 288 | ==5954== by 0x5E0506F: g_test_run_suite (gtestutils.c:2184) | ||
324 | 289 | ==5954== by 0x5E03D5C: g_test_run (gtestutils.c:1488) | ||
325 | 290 | ==5954== by 0x410725: testing_thread (egg-testing.c:142) | ||
326 | 291 | ==5954== by 0x5E07B29: g_thread_proxy (gthread.c:764) | ||
327 | 292 | ==5954== by 0x3899207529: start_thread (pthread_create.c:310) | ||
328 | 293 | ==5954== by 0x3898F0077C: clone (clone.S:109) | ||
329 | 294 | |||
330 | 295 | https://bugzilla.gnome.org/show_bug.cgi?id=738508 | ||
331 | 296 | |||
332 | 297 | pkcs11/gkm/gkm-mock.c | 27 +++++++++++++++++++++++++-- | ||
333 | 298 | 1 file changed, 25 insertions(+), 2 deletions(-) | ||
334 | 299 | |||
335 | 300 | commit 87f82c227694279d7e6ad26ca90112835a69c7c5 | ||
336 | 301 | Author: Christophe Fergeau <cfergeau@redhat.com> | ||
337 | 302 | Date: 2014-10-01 | ||
338 | 303 | |||
339 | 304 | test-spawn: Fix leaks of EchoData content | ||
340 | 305 | |||
341 | 306 | EchoData::error and EchoData::output must be freed after | ||
342 | 307 | use. | ||
343 | 308 | |||
344 | 309 | https://bugzilla.gnome.org/show_bug.cgi?id=738508 | ||
345 | 310 | |||
346 | 311 | egg/test-spawn.c | 6 ++++++ | ||
347 | 312 | 1 file changed, 6 insertions(+) | ||
348 | 313 | |||
349 | 314 | commit 0db2253d64b5607bf20e4e17060de81450e91797 | ||
350 | 315 | Author: Christophe Fergeau <cfergeau@redhat.com> | ||
351 | 316 | Date: 2014-09-22 | ||
352 | 317 | |||
353 | 318 | xdg: Fix ref leak in remove_assertion_from_trust() | ||
354 | 319 | |||
355 | 320 | When a transaction is used, remove_assertion_from_trust() will | ||
356 | 321 | steal the assertion and its key from the 'assertions' hash table. | ||
357 | 322 | The stolen assertion will then be added to the transaction and be | ||
358 | 323 | unreferenced later, but the key must be unref'ed as the hash table | ||
359 | 324 | owned a reference on it. | ||
360 | 325 | |||
361 | 326 | This fixes: | ||
362 | 327 | |||
363 | 328 | ==9337== 104 (40 direct, 64 indirect) bytes in 1 blocks are definitely lost in loss record 614 of 678 | ||
364 | 329 | ==9337== at 0x4A0645D: malloc (in /usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so) | ||
365 | 330 | ==9337== by 0x4EEADE6: g_malloc (gmem.c:97) | ||
366 | 331 | ==9337== by 0x4F03A22: g_slice_alloc (gslice.c:1007) | ||
367 | 332 | ==9337== by 0x4EB6954: g_bytes_new_with_free_func (gbytes.c:183) | ||
368 | 333 | ==9337== by 0x4EB68D5: g_bytes_new_take (gbytes.c:126) | ||
369 | 334 | ==9337== by 0x4116D4: create_assertion_key (gkm-xdg-trust.c:355) | ||
370 | 335 | ==9337== by 0x411755: lookup_or_create_assertion_key (gkm-xdg-trust.c:371) | ||
371 | 336 | ==9337== by 0x41312C: gkm_xdg_trust_replace_assertion (gkm-xdg-trust.c:874) | ||
372 | 337 | ==9337== by 0x413B62: factory_create_assertion (gkm-xdg-assertion.c:181) | ||
373 | 338 | ==9337== by 0x4338A3: gkm_session_create_object_for_factory (gkm-session.c:778) | ||
374 | 339 | ==9337== by 0x433A5B: gkm_session_create_object_for_attributes (gkm-session.c:820) | ||
375 | 340 | ==9337== by 0x434222: gkm_session_C_CreateObject (gkm-session.c:954) | ||
376 | 341 | ==9337== by 0x40A1D0: test_create_assertion_twice (test-xdg-trust.c:497) | ||
377 | 342 | ==9337== by 0x4F0E27A: test_case_run (gtestutils.c:2059) | ||
378 | 343 | ==9337== by 0x4F0E602: g_test_run_suite_internal (gtestutils.c:2120) | ||
379 | 344 | ==9337== by 0x4F0E6C4: g_test_run_suite_internal (gtestutils.c:2131) | ||
380 | 345 | ==9337== by 0x4F0E6C4: g_test_run_suite_internal (gtestutils.c:2131) | ||
381 | 346 | ==9337== by 0x4F0E847: g_test_run_suite (gtestutils.c:2184) | ||
382 | 347 | ==9337== by 0x4F0D551: g_test_run (gtestutils.c:1488) | ||
383 | 348 | ==9337== by 0x4516AD: testing_thread (egg-testing.c:142) | ||
384 | 349 | ==9337== by 0x4F112F4: g_thread_proxy (gthread.c:764) | ||
385 | 350 | ==9337== by 0x3B7AE07F34: start_thread (pthread_create.c:309) | ||
386 | 351 | ==9337== by 0x3B7AAF4C3C: clone (clone.S:111) | ||
387 | 352 | |||
388 | 353 | https://bugzilla.gnome.org/show_bug.cgi?id=738508 | ||
389 | 354 | |||
390 | 355 | pkcs11/xdg-store/gkm-xdg-trust.c | 1 + | ||
391 | 356 | 1 file changed, 1 insertion(+) | ||
392 | 357 | |||
393 | 358 | commit 37c493c086f1721d6dea77bac462e60dc23096df | ||
394 | 359 | Author: Christophe Fergeau <cfergeau@redhat.com> | ||
395 | 360 | Date: 2014-09-22 | ||
396 | 361 | |||
397 | 362 | xdg: Remove wrong unref in gkm_xdg_trust_replace_assertion | ||
398 | 363 | |||
399 | 364 | Callers of lookup_or_create_assertion_key() don't own a reference | ||
400 | 365 | on the returned GBytes so it should not be unref'fed before exiting | ||
401 | 366 | gkm_xdg_trust_replace_assertion. | ||
402 | 367 | This solves the following errors from valgrind when running test-xdg-trust | ||
403 | 368 | |||
404 | 369 | ==15477== | ||
405 | 370 | ==15477== Thread 2 testing: | ||
406 | 371 | ==15477== Invalid read of size 4 | ||
407 | 372 | ==15477== at 0x4EB6B75: g_bytes_unref (gbytes.c:306) | ||
408 | 373 | ==15477== by 0x4EC2692: g_datalist_clear (gdataset.c:273) | ||
409 | 374 | ==15477== by 0x4C284A3: g_object_finalize (gobject.c:1033) | ||
410 | 375 | ==15477== by 0x42B35E: gkm_object_finalize (gkm-object.c:448) | ||
411 | 376 | ==15477== by 0x414134: gkm_assertion_finalize (gkm-assertion.c:134) | ||
412 | 377 | ==15477== by 0x4C2D256: g_object_unref (gobject.c:3170) | ||
413 | 378 | ==15477== by 0x43B9C7: gkm_util_dispose_unref (gkm-util.c:137) | ||
414 | 379 | ==15477== by 0x4ECEBD1: g_hash_table_remove_all_nodes (ghash.c:503) | ||
415 | 380 | ==15477== by 0x4ECFC02: g_hash_table_remove_all (ghash.c:1371) | ||
416 | 381 | ==15477== by 0x431DBB: gkm_session_dispose (gkm-session.c:409) | ||
417 | 382 | ==15477== by 0x4C2D131: g_object_unref (gobject.c:3133) | ||
418 | 383 | ==15477== by 0x425391: apartment_free (gkm-module.c:241) | ||
419 | 384 | ==15477== by 0x4ECEBD1: g_hash_table_remove_all_nodes (ghash.c:503) | ||
420 | 385 | ==15477== by 0x4ECFC02: g_hash_table_remove_all (ghash.c:1371) | ||
421 | 386 | ==15477== by 0x4267F9: gkm_module_dispose (gkm-module.c:633) | ||
422 | 387 | ==15477== by 0x4107D3: gkm_xdg_module_dispose (gkm-xdg-module.c:553) | ||
423 | 388 | ==15477== by 0x4C28648: g_object_run_dispose (gobject.c:1076) | ||
424 | 389 | ==15477== by 0x40CCDD: gkm_C_Finalize (gkm-module-ep.h:102) | ||
425 | 390 | ==15477== by 0x40C7F0: mock_xdg_module_leave_and_finalize (mock-xdg-module.c:151) | ||
426 | 391 | ==15477== by 0x408585: teardown (test-xdg-trust.c:138) | ||
427 | 392 | ==15477== by 0x4F0E2FE: test_case_run (gtestutils.c:2069) | ||
428 | 393 | ==15477== by 0x4F0E602: g_test_run_suite_internal (gtestutils.c:2120) | ||
429 | 394 | ==15477== by 0x4F0E6C4: g_test_run_suite_internal (gtestutils.c:2131) | ||
430 | 395 | ==15477== by 0x4F0E6C4: g_test_run_suite_internal (gtestutils.c:2131) | ||
431 | 396 | ==15477== by 0x4F0E847: g_test_run_suite (gtestutils.c:2184) | ||
432 | 397 | ==15477== by 0x4F0D551: g_test_run (gtestutils.c:1488) | ||
433 | 398 | ==15477== by 0x4516B9: testing_thread (egg-testing.c:142) | ||
434 | 399 | ==15477== by 0x4F112F4: g_thread_proxy (gthread.c:764) | ||
435 | 400 | ==15477== by 0x3B7AE07F34: start_thread (pthread_create.c:309) | ||
436 | 401 | ==15477== by 0x3B7AAF4C3C: clone (clone.S:111) | ||
437 | 402 | ==15477== Address 0x52b6100 is 16 bytes inside a block of size 40 free'd | ||
438 | 403 | ==15477== at 0x4A07577: free (in /usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so) | ||
439 | 404 | ==15477== by 0x4EEAF5F: g_free (gmem.c:190) | ||
440 | 405 | ==15477== by 0x4F03C59: g_slice_free1 (gslice.c:1112) | ||
441 | 406 | ==15477== by 0x4EB6BB8: g_bytes_unref (gbytes.c:310) | ||
442 | 407 | ==15477== by 0x4ECEBB3: g_hash_table_remove_all_nodes (ghash.c:500) | ||
443 | 408 | ==15477== by 0x4ECFC02: g_hash_table_remove_all (ghash.c:1371) | ||
444 | 409 | ==15477== by 0x4ECF7C4: g_hash_table_destroy (ghash.c:1067) | ||
445 | 410 | ==15477== by 0x4127E9: gkm_xdg_trust_finalize (gkm-xdg-trust.c:706) | ||
446 | 411 | ==15477== by 0x4C2D256: g_object_unref (gobject.c:3170) | ||
447 | 412 | ==15477== by 0x43B9C7: gkm_util_dispose_unref (gkm-util.c:137) | ||
448 | 413 | ==15477== by 0x4ECEBD1: g_hash_table_remove_all_nodes (ghash.c:503) | ||
449 | 414 | ==15477== by 0x4ECFC02: g_hash_table_remove_all (ghash.c:1371) | ||
450 | 415 | ==15477== by 0x431DBB: gkm_session_dispose (gkm-session.c:409) | ||
451 | 416 | ==15477== by 0x4C2D131: g_object_unref (gobject.c:3133) | ||
452 | 417 | ==15477== by 0x425391: apartment_free (gkm-module.c:241) | ||
453 | 418 | ==15477== by 0x4ECEBD1: g_hash_table_remove_all_nodes (ghash.c:503) | ||
454 | 419 | ==15477== by 0x4ECFC02: g_hash_table_remove_all (ghash.c:1371) | ||
455 | 420 | ==15477== by 0x4267F9: gkm_module_dispose (gkm-module.c:633) | ||
456 | 421 | ==15477== by 0x4107D3: gkm_xdg_module_dispose (gkm-xdg-module.c:553) | ||
457 | 422 | ==15477== by 0x4C28648: g_object_run_dispose (gobject.c:1076) | ||
458 | 423 | ==15477== by 0x40CCDD: gkm_C_Finalize (gkm-module-ep.h:102) | ||
459 | 424 | ==15477== by 0x40C7F0: mock_xdg_module_leave_and_finalize (mock-xdg-module.c:151) | ||
460 | 425 | ==15477== by 0x408585: teardown (test-xdg-trust.c:138) | ||
461 | 426 | ==15477== by 0x4F0E2FE: test_case_run (gtestutils.c:2069) | ||
462 | 427 | ==15477== by 0x4F0E602: g_test_run_suite_internal (gtestutils.c:2120) | ||
463 | 428 | ==15477== by 0x4F0E6C4: g_test_run_suite_internal (gtestutils.c:2131) | ||
464 | 429 | ==15477== by 0x4F0E6C4: g_test_run_suite_internal (gtestutils.c:2131) | ||
465 | 430 | ==15477== by 0x4F0E847: g_test_run_suite (gtestutils.c:2184) | ||
466 | 431 | ==15477== by 0x4F0D551: g_test_run (gtestutils.c:1488) | ||
467 | 432 | ==15477== by 0x4516B9: testing_thread (egg-testing.c:142) | ||
468 | 433 | ==15477== by 0x4F112F4: g_thread_proxy (gthread.c:764) | ||
469 | 434 | ==15477== by 0x3B7AE07F34: start_thread (pthread_create.c:309) | ||
470 | 435 | ==15477== by 0x3B7AAF4C3C: clone (clone.S:111) | ||
471 | 436 | |||
472 | 437 | https://bugzilla.gnome.org/show_bug.cgi?id=738508 | ||
473 | 438 | |||
474 | 439 | pkcs11/xdg-store/gkm-xdg-trust.c | 1 - | ||
475 | 440 | 1 file changed, 1 deletion(-) | ||
476 | 441 | |||
477 | 442 | commit f2e759970c1a3a42378528a15166221715493288 | ||
478 | 443 | Author: Christophe Fergeau <cfergeau@redhat.com> | ||
479 | 444 | Date: 2014-09-21 | ||
480 | 445 | |||
481 | 446 | test-xdg-trust: Fix GChecksum leaks | ||
482 | 447 | |||
483 | 448 | 'md' is created using g_checksum_new() so it must be destroyed | ||
484 | 449 | with g_checksum_free() after use. | ||
485 | 450 | |||
486 | 451 | https://bugzilla.gnome.org/show_bug.cgi?id=738508 | ||
487 | 452 | |||
488 | 453 | pkcs11/gkm/gkm-attributes.c | 1 + | ||
489 | 454 | pkcs11/xdg-store/test-xdg-trust.c | 1 + | ||
490 | 455 | 2 files changed, 2 insertions(+) | ||
491 | 456 | |||
492 | 457 | commit a88f4fcf255495ee575b4b7b94574c3ca0b66ca1 | ||
493 | 458 | Author: Christophe Fergeau <cfergeau@redhat.com> | ||
494 | 459 | Date: 2014-09-21 | ||
495 | 460 | |||
496 | 461 | Unref GkmXdgTrust::bytes in finalize() | ||
497 | 462 | |||
498 | 463 | This will cause leaks otherwise, for example in test-xdg-module. | ||
499 | 464 | |||
500 | 465 | https://bugzilla.gnome.org/show_bug.cgi?id=738508 | ||
501 | 466 | |||
502 | 467 | pkcs11/xdg-store/gkm-xdg-trust.c | 4 ++++ | ||
503 | 468 | 1 file changed, 4 insertions(+) | ||
504 | 469 | |||
505 | 470 | commit 621a86e8b1b14a387cf1dd895005007570c3d2c3 | ||
506 | 471 | Author: Christophe Fergeau <cfergeau@redhat.com> | ||
507 | 472 | Date: 2014-09-21 | ||
508 | 473 | |||
509 | 474 | test-xdg-module: Fix memory leak | ||
510 | 475 | |||
511 | 476 | Memory from g_file_get_contents() was never freed. | ||
512 | 477 | |||
513 | 478 | https://bugzilla.gnome.org/show_bug.cgi?id=738508 | ||
514 | 479 | |||
515 | 480 | pkcs11/xdg-store/test-xdg-module.c | 1 + | ||
516 | 481 | 1 file changed, 1 insertion(+) | ||
517 | 482 | |||
518 | 483 | commit bbb96835cc4120d6c9f0d7bf272f6eb386a07468 | ||
519 | 484 | Author: Christophe Fergeau <cfergeau@redhat.com> | ||
520 | 485 | Date: 2014-09-21 | ||
521 | 486 | |||
522 | 487 | xdg: Don't leak ref in lookup_or_create_assertion_key() | ||
523 | 488 | |||
524 | 489 | When lookup_or_create_assertion_key() creates a new assertion key, | ||
525 | 490 | it own a reference on the GBytes created by create_assertion_key() | ||
526 | 491 | and it will then take an extra ref on it when associating it with a | ||
527 | 492 | GkmAssertion instance. | ||
528 | 493 | |||
529 | 494 | This will cause a leak of the memory returned by create_assertion_key() | ||
530 | 495 | as one of these references will never be dropped. | ||
531 | 496 | |||
532 | 497 | https://bugzilla.gnome.org/show_bug.cgi?id=738508 | ||
533 | 498 | |||
534 | 499 | pkcs11/xdg-store/gkm-xdg-trust.c | 2 +- | ||
535 | 500 | 1 file changed, 1 insertion(+), 1 deletion(-) | ||
536 | 501 | |||
537 | 502 | commit bc17247fdd1fa843560ecebb4f20a10460df0d63 | ||
538 | 503 | Author: Christophe Fergeau <cfergeau@redhat.com> | ||
539 | 504 | Date: 2014-09-21 | ||
540 | 505 | |||
541 | 506 | Fix leak in gkm_mock_C_SetPIN() | ||
542 | 507 | |||
543 | 508 | https://bugzilla.gnome.org/show_bug.cgi?id=738508 | ||
544 | 509 | |||
545 | 510 | pkcs11/gkm/gkm-mock.c | 5 ++++- | ||
546 | 511 | 1 file changed, 4 insertions(+), 1 deletion(-) | ||
547 | 512 | |||
548 | 513 | commit 670fe30c2dfe7accc738c8def6c1ccf047c944b6 | ||
549 | 514 | Author: Christophe Fergeau <cfergeau@redhat.com> | ||
550 | 515 | Date: 2014-10-01 | ||
551 | 516 | |||
552 | 517 | gkm-xdg-assertion: Fix leak in factory_create_assertion() | ||
553 | 518 | |||
554 | 519 | 'purpose' and 'peer' were allocated through gkm_attributes_find_string() | ||
555 | 520 | and must thus be freed after use. | ||
556 | 521 | |||
557 | 522 | https://bugzilla.gnome.org/show_bug.cgi?id=738508 | ||
558 | 523 | |||
559 | 524 | pkcs11/xdg-store/gkm-xdg-assertion.c | 2 ++ | ||
560 | 525 | 1 file changed, 2 insertions(+) | ||
561 | 526 | |||
562 | 527 | commit ca2b73954d497ea36b94b547649a08dd85ec38e1 | ||
563 | 528 | Author: Christophe Fergeau <cfergeau@redhat.com> | ||
564 | 529 | Date: 2014-10-01 | ||
565 | 530 | |||
566 | 531 | Fix leak in mock_secret_C_CreateObject | ||
567 | 532 | |||
568 | 533 | 'template' is created with gkm_template_new() so it must be freed | ||
569 | 534 | using gkm_template_free(). | ||
570 | 535 | |||
571 | 536 | https://bugzilla.gnome.org/show_bug.cgi?id=738508 | ||
572 | 537 | |||
573 | 538 | pkcs11/wrap-layer/mock-secret-store.c | 2 +- | ||
574 | 539 | 1 file changed, 1 insertion(+), 1 deletion(-) | ||
575 | 540 | |||
576 | 541 | commit 165f0e3210e32538c847be91896736c17a1f6ad6 | ||
577 | 542 | Author: Christophe Fergeau <cfergeau@redhat.com> | ||
578 | 543 | Date: 2014-10-01 | ||
579 | 544 | |||
580 | 545 | gkm-secret-textual: Fix leak in generate_attribute() | ||
581 | 546 | |||
582 | 547 | The GList returned by gkm_secret_fields_get_names() must be | ||
583 | 548 | freed with g_list_free after use as this is created using | ||
584 | 549 | g_hash_table_get_keys(). | ||
585 | 550 | |||
586 | 551 | https://bugzilla.gnome.org/show_bug.cgi?id=738508 | ||
587 | 552 | |||
588 | 553 | pkcs11/secret-store/gkm-secret-textual.c | 1 + | ||
589 | 554 | 1 file changed, 1 insertion(+) | ||
590 | 555 | |||
591 | 556 | commit 750047bc77edc730e76fc536ce17151b52ae22da | ||
592 | 557 | Author: Christophe Fergeau <cfergeau@redhat.com> | ||
593 | 558 | Date: 2014-10-01 | ||
594 | 559 | |||
595 | 560 | gkm-secret-search: Fix leak in factory_create_search() | ||
596 | 561 | |||
597 | 562 | gkm_attribute_get_string() returns a newly allocated string which must | ||
598 | 563 | be freed when no longer useful. | ||
599 | 564 | |||
600 | 565 | https://bugzilla.gnome.org/show_bug.cgi?id=738508 | ||
601 | 566 | |||
602 | 567 | pkcs11/secret-store/gkm-secret-search.c | 1 + | ||
603 | 568 | 1 file changed, 1 insertion(+) | ||
604 | 569 | |||
605 | 570 | commit a1984261cb2aabf20d2014a987e2adfbfbae7fc1 | ||
606 | 571 | Author: Christophe Fergeau <cfergeau@redhat.com> | ||
607 | 572 | Date: 2014-10-01 | ||
608 | 573 | |||
609 | 574 | gkm-gnome2-storage: Unref GkmGnome2Storage::login in dispose() | ||
610 | 575 | |||
611 | 576 | https://bugzilla.gnome.org/show_bug.cgi?id=738508 | ||
612 | 577 | |||
613 | 578 | pkcs11/gnome2-store/gkm-gnome2-storage.c | 4 ++++ | ||
614 | 579 | 1 file changed, 4 insertions(+) | ||
615 | 580 | |||
616 | 581 | commit bf96feaff541668ead5438ee074c4318165a3962 | ||
617 | 582 | Author: Christophe Fergeau <cfergeau@redhat.com> | ||
618 | 583 | Date: 2014-10-01 | ||
619 | 584 | |||
620 | 585 | secret-store/test*: Don't leak secret data memory | ||
621 | 586 | |||
622 | 587 | Both test-secret-binary and test-secret-textual call | ||
623 | 588 | g_file_get_contents() but never free the returned data, causing a memory | ||
624 | 589 | leak. | ||
625 | 590 | |||
626 | 591 | https://bugzilla.gnome.org/show_bug.cgi?id=738508 | ||
627 | 592 | |||
628 | 593 | pkcs11/secret-store/test-secret-binary.c | 1 + | ||
629 | 594 | pkcs11/secret-store/test-secret-textual.c | 1 + | ||
630 | 595 | 2 files changed, 2 insertions(+) | ||
631 | 596 | |||
632 | 597 | commit 9421bf589095380286bed90bca67f6ae2746ce0b | ||
633 | 598 | Author: Christophe Fergeau <cfergeau@redhat.com> | ||
634 | 599 | Date: 2014-10-01 | ||
635 | 600 | |||
636 | 601 | test-import: Don't leak args.pReserved | ||
637 | 602 | |||
638 | 603 | It's allocated with g_strdup_printf and must thus be freed after use. | ||
639 | 604 | |||
640 | 605 | https://bugzilla.gnome.org/show_bug.cgi?id=738508 | ||
641 | 606 | |||
642 | 607 | pkcs11/gnome2-store/test-import.c | 1 + | ||
643 | 608 | 1 file changed, 1 insertion(+) | ||
644 | 609 | |||
645 | 610 | commit c2870de15ba639b6a02916a89be07274c2b5895b | ||
646 | 611 | Author: Christophe Fergeau <cfergeau@redhat.com> | ||
647 | 612 | Date: 2014-10-01 | ||
648 | 613 | |||
649 | 614 | egg-hkdf: Fix gcry_md_ht_t leak in egg_hkdf_perform | ||
650 | 615 | |||
651 | 616 | The 'md2' gcry_md_ht_t variable is opened with gcry_md_open() in that | ||
652 | 617 | method but is never closed, which causes a leak. | ||
653 | 618 | |||
654 | 619 | https://bugzilla.gnome.org/show_bug.cgi?id=738508 | ||
655 | 620 | |||
656 | 621 | egg/egg-hkdf.c | 1 + | ||
657 | 622 | 1 file changed, 1 insertion(+) | ||
658 | 623 | |||
659 | 624 | commit 1581f4a33e350de62cf98bec0530934dcf2a0272 | ||
660 | 625 | Author: Christophe Fergeau <cfergeau@redhat.com> | ||
661 | 626 | Date: 2014-10-01 | ||
662 | 627 | |||
663 | 628 | egg-asn1x: Fix memory leak in egg_asn1x_set_any_raw() | ||
664 | 629 | |||
665 | 630 | In error cases, the Atlv variable 'tlv' which was created in this | ||
666 | 631 | function is not going to be used, so we must free it before returning. | ||
667 | 632 | |||
668 | 633 | https://bugzilla.gnome.org/show_bug.cgi?id=738508 | ||
669 | 634 | |||
670 | 635 | egg/egg-asn1x.c | 1 + | ||
671 | 636 | 1 file changed, 1 insertion(+) | ||
672 | 637 | |||
673 | 638 | commit 17b429de6d2d911fcfac3fbc042aa5579a3a4535 | ||
674 | 639 | Author: Christophe Fergeau <cfergeau@redhat.com> | ||
675 | 640 | Date: 2014-10-01 | ||
676 | 641 | |||
677 | 642 | test-sexp: Fix 2 leaks | ||
678 | 643 | |||
679 | 644 | gcry_sexp_t objects created with gkm_sexp_parse_key() must be freed with | ||
680 | 645 | gcry_sexp_release(), and gcry_mpi_t objects created with | ||
681 | 646 | gkm_sexp_extract_mpi() must be freed with gcry_mpi_release() when no | ||
682 | 647 | longer used. | ||
683 | 648 | |||
684 | 649 | https://bugzilla.gnome.org/show_bug.cgi?id=738508 | ||
685 | 650 | |||
686 | 651 | pkcs11/gkm/test-sexp.c | 2 ++ | ||
687 | 652 | 1 file changed, 2 insertions(+) | ||
688 | 653 | |||
689 | 654 | commit 33793e57c557830cda36af68376f5dfd2130c073 | ||
690 | 655 | Author: Christophe Fergeau <cfergeau@redhat.com> | ||
691 | 656 | Date: 2014-10-01 | ||
692 | 657 | |||
693 | 658 | test-secret: Don't leak new secrets in test_equal() | ||
694 | 659 | |||
695 | 660 | Secrets created with gkm_secret_new* must be unref'fed when no longer | ||
696 | 661 | used. | ||
697 | 662 | |||
698 | 663 | https://bugzilla.gnome.org/show_bug.cgi?id=738508 | ||
699 | 664 | |||
700 | 665 | pkcs11/gkm/test-secret.c | 3 +++ | ||
701 | 666 | 1 file changed, 3 insertions(+) | ||
702 | 667 | |||
703 | 668 | commit 75c1fb8b8e3eb0df794bd80ed883fdc16a865664 | ||
704 | 669 | Author: Christophe Fergeau <cfergeau@redhat.com> | ||
705 | 670 | Date: 2014-10-01 | ||
706 | 671 | |||
707 | 672 | test-pam: Fix GError leak in error case | ||
708 | 673 | |||
709 | 674 | When g_file_get_contents() fails and sets an error, it must be freed. | ||
710 | 675 | |||
711 | 676 | https://bugzilla.gnome.org/show_bug.cgi?id=738508 | ||
712 | 677 | |||
713 | 678 | pam/test-pam.c | 1 + | ||
714 | 679 | 1 file changed, 1 insertion(+) | ||
715 | 680 | |||
716 | 681 | commit dbc6af0ea986a4840e6a8a06d632435332c6d2a4 | ||
717 | 682 | Author: Christophe Fergeau <cfergeau@redhat.com> | ||
718 | 683 | Date: 2014-10-01 | ||
719 | 684 | |||
720 | 685 | test-padding: Don't leak egg_padding_pkcs1_pad_02 return value | ||
721 | 686 | |||
722 | 687 | egg_padding_pkcs1_pad_02 returns newly allocated data which must be | ||
723 | 688 | g_free'ed after use. | ||
724 | 689 | |||
725 | 690 | https://bugzilla.gnome.org/show_bug.cgi?id=738508 | ||
726 | 691 | |||
727 | 692 | egg/test-padding.c | 1 + | ||
728 | 693 | 1 file changed, 1 insertion(+) | ||
729 | 694 | |||
730 | 695 | commit 610a177931675a08a13681d6741a1d18baaa92ee | ||
731 | 696 | Author: Christophe Fergeau <cfergeau@redhat.com> | ||
732 | 697 | Date: 2014-10-01 | ||
733 | 698 | |||
734 | 699 | test-asn1: Don't leak 'asn' in test_create_quark() | ||
735 | 700 | |||
736 | 701 | https://bugzilla.gnome.org/show_bug.cgi?id=738508 | ||
737 | 702 | |||
738 | 703 | egg/test-asn1.c | 1 + | ||
739 | 704 | 1 file changed, 1 insertion(+) | ||
740 | 705 | |||
741 | 706 | commit 1e18f347a1a3444b3fc7126af087d0c90a791e57 | ||
742 | 707 | Author: Christophe Fergeau <cfergeau@redhat.com> | ||
743 | 708 | Date: 2014-10-01 | ||
744 | 709 | |||
745 | 710 | test-startup: Use g_strfreev to free GStrv variable | ||
746 | 711 | |||
747 | 712 | gkd_test_launch_daemon returns a "transfer full" GStrv, so it must be | ||
748 | 713 | freed with g_strfreev after use. | ||
749 | 714 | |||
750 | 715 | https://bugzilla.gnome.org/show_bug.cgi?id=738508 | ||
751 | 716 | |||
752 | 717 | daemon/test-startup.c | 4 ++-- | ||
753 | 718 | 1 file changed, 2 insertions(+), 2 deletions(-) | ||
754 | 719 | |||
755 | 720 | commit 6c2d07a4faea639ed2b2bcf1815fdb5cbfa4945e | ||
756 | 721 | Author: Christophe Fergeau <cfergeau@redhat.com> | ||
757 | 722 | Date: 2014-09-17 | ||
758 | 723 | |||
759 | 724 | gkm-gnome2-file: Free keys to 'entries' hash tables | ||
760 | 725 | |||
761 | 726 | The keys to the 'publics' and 'privates' hash tables are strdup'ed | ||
762 | 727 | strings, but these strings are never freed. This commit adds a free | ||
763 | 728 | function for hash table keys to the g_hash_table_new_full call. | ||
764 | 729 | |||
765 | 730 | https://bugzilla.gnome.org/show_bug.cgi?id=738508 | ||
766 | 731 | |||
767 | 732 | pkcs11/gnome2-store/gkm-gnome2-file.c | 2 +- | ||
768 | 733 | 1 file changed, 1 insertion(+), 1 deletion(-) | ||
769 | 734 | |||
770 | 735 | commit 0fc832aa65e2d125459c9fb43c4d3ba4697270d6 | ||
771 | 736 | Author: Christophe Fergeau <cfergeau@redhat.com> | ||
772 | 737 | Date: 2014-09-17 | ||
773 | 738 | |||
774 | 739 | test-data-der: Fix various memory leaks | ||
775 | 740 | |||
776 | 741 | https://bugzilla.gnome.org/show_bug.cgi?id=738508 | ||
777 | 742 | |||
778 | 743 | pkcs11/gkm/test-data-der.c | 13 +++++++++++++ | ||
779 | 744 | 1 file changed, 13 insertions(+) | ||
780 | 745 | |||
781 | 746 | commit 298d910cfe2e468ad0005646e8a00b5fc8116e10 | ||
782 | 747 | Author: Christophe Fergeau <cfergeau@redhat.com> | ||
783 | 748 | Date: 2014-09-17 | ||
784 | 749 | |||
785 | 750 | test-data-asn1: Fix memory leaks in test_asn1_integers | ||
786 | 751 | |||
787 | 752 | https://bugzilla.gnome.org/show_bug.cgi?id=738508 | ||
788 | 753 | |||
789 | 754 | pkcs11/gkm/test-data-asn1.c | 3 +++ | ||
790 | 755 | 1 file changed, 3 insertions(+) | ||
791 | 756 | |||
792 | 757 | commit c5083ba0216b15e8f9ed842b7097e7fa6c60c25b | ||
793 | 758 | Author: Christophe Fergeau <cfergeau@redhat.com> | ||
794 | 759 | Date: 2014-09-17 | ||
795 | 760 | |||
796 | 761 | gkm-data-asn1: Unref buffer we got from egg_asn1x_get_integer_as_raw() | ||
797 | 762 | |||
798 | 763 | Otherwise we will be leaking a reference to that buffer, and it will | ||
799 | 764 | never get destroyed. This showed up as a memory leaked in test-data-der. | ||
800 | 765 | |||
801 | 766 | https://bugzilla.gnome.org/show_bug.cgi?id=738508 | ||
802 | 767 | |||
803 | 768 | pkcs11/gkm/gkm-data-asn1.c | 1 + | ||
804 | 769 | 1 file changed, 1 insertion(+) | ||
805 | 770 | |||
806 | 771 | commit 326a94543c5cc6c44d3fd9e1b7fd6eb11a2ea998 | ||
807 | 772 | Author: Christophe Fergeau <cfergeau@redhat.com> | ||
808 | 773 | Date: 2014-09-17 | ||
809 | 774 | |||
810 | 775 | egg/test-dn: Don't leak GBytes created in test_dn_value() | ||
811 | 776 | |||
812 | 777 | https://bugzilla.gnome.org/show_bug.cgi?id=738508 | ||
813 | 778 | |||
814 | 779 | egg/test-dn.c | 1 + | ||
815 | 780 | 1 file changed, 1 insertion(+) | ||
816 | 781 | |||
817 | 782 | commit 8ea8329cc09e263d9628e791e0f5a464bde63413 | ||
818 | 783 | Author: Christophe Fergeau <cfergeau@redhat.com> | ||
819 | 784 | Date: 2014-09-17 | ||
820 | 785 | |||
821 | 786 | egg-cleanup: Don't leak 'cleanup' on unregister | ||
822 | 787 | |||
823 | 788 | When unregistering a cleanup instance, the memory allocated for the cleanup | ||
824 | 789 | was not freed causing a memory leak. | ||
825 | 790 | |||
826 | 791 | https://bugzilla.gnome.org/show_bug.cgi?id=738508 | ||
827 | 792 | |||
828 | 793 | egg/egg-cleanup.c | 1 + | ||
829 | 794 | 1 file changed, 1 insertion(+) | ||
830 | 795 | |||
831 | 796 | commit 9af2db3f41e713c02e36dc71f0d6295db7d9e408 | ||
832 | 797 | Author: Christophe Fergeau <cfergeau@redhat.com> | ||
833 | 798 | Date: 2014-09-17 | ||
834 | 799 | |||
835 | 800 | test-dbus-items: Fix memory leak | ||
836 | 801 | |||
837 | 802 | https://bugzilla.gnome.org/show_bug.cgi?id=738508 | ||
838 | 803 | |||
839 | 804 | daemon/dbus/test-dbus-items.c | 4 +++- | ||
840 | 805 | 1 file changed, 3 insertions(+), 1 deletion(-) | ||
841 | 806 | |||
842 | 807 | commit 0c9c4a549e770e89e51d5f39995fdfc8c1af71ec | ||
843 | 808 | Author: Christophe Fergeau <cfergeau@redhat.com> | ||
844 | 809 | Date: 2014-09-15 | ||
845 | 810 | |||
846 | 811 | Free GkmSecretItem::schema in ::finalize() | ||
847 | 812 | |||
848 | 813 | https://bugzilla.gnome.org/show_bug.cgi?id=738508 | ||
849 | 814 | |||
850 | 815 | pkcs11/secret-store/gkm-secret-item.c | 3 +++ | ||
851 | 816 | 1 file changed, 3 insertions(+) | ||
852 | 817 | |||
853 | 818 | commit 04129e8d2c1cb8a0f5d6944d4bb7fa45f7171a2a | ||
854 | 819 | Author: Christophe Fergeau <cfergeau@redhat.com> | ||
855 | 820 | Date: 2014-09-15 | ||
856 | 821 | |||
857 | 822 | gkm-gnome2-file: Fix leaks in create_cipher() | ||
858 | 823 | |||
859 | 824 | 'key' and 'iv' were allocated before calling | ||
860 | 825 | egg_symkey_generate_simple() but this function allocates the memory | ||
861 | 826 | needed for the 'key' and 'iv' return value, so the memory which was | ||
862 | 827 | allocated in create_cipher() is lost and leaked. | ||
863 | 828 | This also uses egg_secure_memory_free() to free 'key' memory as | ||
864 | 829 | egg_symkey_generate_simple() allocates it with egg_secure_alloc(). | ||
865 | 830 | |||
866 | 831 | https://bugzilla.gnome.org/show_bug.cgi?id=738508 | ||
867 | 832 | |||
868 | 833 | pkcs11/gnome2-store/gkm-gnome2-file.c | 11 ++--------- | ||
869 | 834 | 1 file changed, 2 insertions(+), 9 deletions(-) | ||
870 | 835 | |||
871 | 836 | commit 5a98866f4b7c89451c95e8d559e8f2021c5e1456 | ||
872 | 837 | Author: Christophe Fergeau <cfergeau@redhat.com> | ||
873 | 838 | Date: 2014-09-15 | ||
874 | 839 | |||
875 | 840 | gkm-gnome2-file: Fix leak in validate_buffer() | ||
876 | 841 | |||
877 | 842 | 'check' is allocated in this function but never freed. | ||
878 | 843 | |||
879 | 844 | https://bugzilla.gnome.org/show_bug.cgi?id=738508 | ||
880 | 845 | |||
881 | 846 | pkcs11/gnome2-store/gkm-gnome2-file.c | 7 ++++--- | ||
882 | 847 | 1 file changed, 4 insertions(+), 3 deletions(-) | ||
883 | 848 | |||
884 | 849 | commit 24ff22e04c86885aa4f7f877d612c94e2e2d8f6d | ||
885 | 850 | Author: Christophe Fergeau <cfergeau@redhat.com> | ||
886 | 851 | Date: 2014-09-15 | ||
887 | 852 | |||
888 | 853 | Unref GkmCredential::secret in ::dispose | ||
889 | 854 | |||
890 | 855 | This fixes a memory leak. | ||
891 | 856 | |||
892 | 857 | https://bugzilla.gnome.org/show_bug.cgi?id=738508 | ||
893 | 858 | |||
894 | 859 | pkcs11/gkm/gkm-credential.c | 4 ++++ | ||
895 | 860 | 1 file changed, 4 insertions(+) | ||
896 | 861 | |||
897 | 862 | commit 9bfe73731316389a9975fd440992afa914070467 | ||
898 | 863 | Author: Christophe Fergeau <cfergeau@redhat.com> | ||
899 | 864 | Date: 2014-10-14 | ||
900 | 865 | |||
901 | 866 | ssh-agent: Fix leak in op_request_identities | ||
902 | 867 | |||
903 | 868 | The object returned by gck_enumerator_next() must be unref'ed. | ||
904 | 869 | |||
905 | 870 | https://bugzilla.gnome.org/show_bug.cgi?id=738508 | ||
906 | 871 | |||
907 | 872 | daemon/ssh-agent/gkd-ssh-agent-ops.c | 7 ++++--- | ||
908 | 873 | 1 file changed, 4 insertions(+), 3 deletions(-) | ||
909 | 874 | |||
910 | 875 | commit f81fa15dcbbc3a7ce3e8be9a229e13a0678a606b | ||
911 | 876 | Author: Christophe Fergeau <cfergeau@redhat.com> | ||
912 | 877 | Date: 2014-10-01 | ||
913 | 878 | |||
914 | 879 | ssh-agent: Fix leak in op_v1_request_identities | ||
915 | 880 | |||
916 | 881 | The object returned by gck_enumerator_next() must be unref'ed | ||
917 | 882 | as this method is "transfer full". | ||
918 | 883 | |||
919 | 884 | https://bugzilla.gnome.org/show_bug.cgi?id=738508 | ||
920 | 885 | |||
921 | 886 | daemon/ssh-agent/gkd-ssh-agent-ops.c | 8 ++++---- | ||
922 | 887 | 1 file changed, 4 insertions(+), 4 deletions(-) | ||
923 | 888 | |||
924 | 889 | commit d177a8b5353f3156ab504f39c20753d6786e5e4d | ||
925 | 890 | Author: Christophe Fergeau <cfergeau@redhat.com> | ||
926 | 891 | Date: 2014-09-15 | ||
927 | 892 | |||
928 | 893 | ssh-agent: Fix leak in search_keys_like_attributes() | ||
929 | 894 | |||
930 | 895 | gck_enumerator_next() return value must be unref'fed as it's transfer | ||
931 | 896 | full. | ||
932 | 897 | |||
933 | 898 | https://bugzilla.gnome.org/show_bug.cgi?id=738508 | ||
934 | 899 | |||
935 | 900 | daemon/ssh-agent/gkd-ssh-agent-ops.c | 5 ++++- | ||
936 | 901 | 1 file changed, 4 insertions(+), 1 deletion(-) | ||
937 | 902 | |||
938 | 903 | commit 04b9de9fd806598bb49e6b9d49d2697156f6f39d | ||
939 | 904 | Author: Christophe Fergeau <cfergeau@redhat.com> | ||
940 | 905 | Date: 2014-10-01 | ||
941 | 906 | |||
942 | 907 | ssh-agent: Fix leak in remove_by_public_key() | ||
943 | 908 | |||
944 | 909 | gck_attributes_find_string() returns a newly allocated string, so it | ||
945 | 910 | must be g_free'ed after use. | ||
946 | 911 | |||
947 | 912 | https://bugzilla.gnome.org/show_bug.cgi?id=738508 | ||
948 | 913 | |||
949 | 914 | daemon/ssh-agent/gkd-ssh-agent-ops.c | 1 + | ||
950 | 915 | 1 file changed, 1 insertion(+) | ||
951 | 916 | |||
952 | 3 | commit 32900996ac1d913bbae6e378a0a974d207d81c8e | 917 | commit 32900996ac1d913bbae6e378a0a974d207d81c8e |
953 | 4 | Author: Stef Walter <stefw@gnome.org> | 918 | Author: Stef Walter <stefw@gnome.org> |
954 | 5 | Date: 2014-09-23 | 919 | Date: 2014-09-23 |
955 | 6 | 920 | ||
956 | === modified file 'Makefile.in' | |||
957 | --- Makefile.in 2014-12-06 18:47:09 +0000 | |||
958 | +++ Makefile.in 2015-02-27 19:55:06 +0000 | |||
959 | @@ -116,9 +116,8 @@ | |||
960 | 116 | $(am__EXEEXT_10) $(am__EXEEXT_12) | 116 | $(am__EXEEXT_10) $(am__EXEEXT_12) |
961 | 117 | noinst_PROGRAMS = $(check_PROGRAMS) frob-control-change$(EXEEXT) \ | 117 | noinst_PROGRAMS = $(check_PROGRAMS) frob-control-change$(EXEEXT) \ |
962 | 118 | frob-control-init$(EXEEXT) frob-control-unlock$(EXEEXT) \ | 118 | frob-control-init$(EXEEXT) frob-control-unlock$(EXEEXT) \ |
966 | 119 | frob-control-quit$(EXEEXT) gkd-gpg-agent-standalone$(EXEEXT) \ | 119 | frob-control-quit$(EXEEXT) gkd-ssh-agent-standalone$(EXEEXT) \ |
967 | 120 | gkd-ssh-agent-standalone$(EXEEXT) frob-gnome2-file$(EXEEXT) \ | 120 | frob-gnome2-file$(EXEEXT) gkm-rpc-daemon-standalone$(EXEEXT) \ |
965 | 121 | gkm-rpc-daemon-standalone$(EXEEXT) \ | ||
968 | 122 | dump-keyring0-format$(EXEEXT) frob-trust-file$(EXEEXT) \ | 121 | dump-keyring0-format$(EXEEXT) frob-trust-file$(EXEEXT) \ |
969 | 123 | dump-trust-file$(EXEEXT) | 122 | dump-trust-file$(EXEEXT) |
970 | 124 | TESTS = $(am__EXEEXT_1) $(am__EXEEXT_2) $(am__EXEEXT_3) \ | 123 | TESTS = $(am__EXEEXT_1) $(am__EXEEXT_2) $(am__EXEEXT_3) \ |
971 | @@ -659,15 +658,6 @@ | |||
972 | 659 | pkcs11/xdg-store/frob-trust-file.$(OBJEXT) | 658 | pkcs11/xdg-store/frob-trust-file.$(OBJEXT) |
973 | 660 | frob_trust_file_OBJECTS = $(am_frob_trust_file_OBJECTS) | 659 | frob_trust_file_OBJECTS = $(am_frob_trust_file_OBJECTS) |
974 | 661 | frob_trust_file_DEPENDENCIES = $(am__DEPENDENCIES_3) | 660 | frob_trust_file_DEPENDENCIES = $(am__DEPENDENCIES_3) |
975 | 662 | am_gkd_gpg_agent_standalone_OBJECTS = daemon/gpg-agent/gkd_gpg_agent_standalone-gkd-gpg-agent-standalone.$(OBJEXT) | ||
976 | 663 | gkd_gpg_agent_standalone_OBJECTS = \ | ||
977 | 664 | $(am_gkd_gpg_agent_standalone_OBJECTS) | ||
978 | 665 | gkd_gpg_agent_standalone_DEPENDENCIES = libgkd-gpg-agent.la libegg.la \ | ||
979 | 666 | $(am__DEPENDENCIES_1) | ||
980 | 667 | gkd_gpg_agent_standalone_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ | ||
981 | 668 | $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \ | ||
982 | 669 | $(gkd_gpg_agent_standalone_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ | ||
983 | 670 | $(LDFLAGS) -o $@ | ||
984 | 671 | am_gkd_ssh_agent_standalone_OBJECTS = daemon/ssh-agent/gkd_ssh_agent_standalone-gkd-ssh-agent-standalone.$(OBJEXT) | 661 | am_gkd_ssh_agent_standalone_OBJECTS = daemon/ssh-agent/gkd_ssh_agent_standalone-gkd-ssh-agent-standalone.$(OBJEXT) |
985 | 672 | gkd_ssh_agent_standalone_OBJECTS = \ | 662 | gkd_ssh_agent_standalone_OBJECTS = \ |
986 | 673 | $(am_gkd_ssh_agent_standalone_OBJECTS) | 663 | $(am_gkd_ssh_agent_standalone_OBJECTS) |
987 | @@ -1052,8 +1042,7 @@ | |||
988 | 1052 | $(dump_trust_file_SOURCES) $(frob_control_change_SOURCES) \ | 1042 | $(dump_trust_file_SOURCES) $(frob_control_change_SOURCES) \ |
989 | 1053 | $(frob_control_init_SOURCES) $(frob_control_quit_SOURCES) \ | 1043 | $(frob_control_init_SOURCES) $(frob_control_quit_SOURCES) \ |
990 | 1054 | $(frob_control_unlock_SOURCES) $(frob_gnome2_file_SOURCES) \ | 1044 | $(frob_control_unlock_SOURCES) $(frob_gnome2_file_SOURCES) \ |
993 | 1055 | $(frob_trust_file_SOURCES) $(gkd_gpg_agent_standalone_SOURCES) \ | 1045 | $(frob_trust_file_SOURCES) $(gkd_ssh_agent_standalone_SOURCES) \ |
992 | 1056 | $(gkd_ssh_agent_standalone_SOURCES) \ | ||
994 | 1057 | $(gkm_rpc_daemon_standalone_SOURCES) \ | 1046 | $(gkm_rpc_daemon_standalone_SOURCES) \ |
995 | 1058 | $(gnome_keyring_@GKR_MAJOR@_SOURCES) \ | 1047 | $(gnome_keyring_@GKR_MAJOR@_SOURCES) \ |
996 | 1059 | $(gnome_keyring_daemon_SOURCES) $(test_armor_SOURCES) \ | 1048 | $(gnome_keyring_daemon_SOURCES) $(test_armor_SOURCES) \ |
997 | @@ -1118,7 +1107,6 @@ | |||
998 | 1118 | $(frob_control_change_SOURCES) $(frob_control_init_SOURCES) \ | 1107 | $(frob_control_change_SOURCES) $(frob_control_init_SOURCES) \ |
999 | 1119 | $(frob_control_quit_SOURCES) $(frob_control_unlock_SOURCES) \ | 1108 | $(frob_control_quit_SOURCES) $(frob_control_unlock_SOURCES) \ |
1000 | 1120 | $(frob_gnome2_file_SOURCES) $(frob_trust_file_SOURCES) \ | 1109 | $(frob_gnome2_file_SOURCES) $(frob_trust_file_SOURCES) \ |
1001 | 1121 | $(gkd_gpg_agent_standalone_SOURCES) \ | ||
1002 | 1122 | $(gkd_ssh_agent_standalone_SOURCES) \ | 1110 | $(gkd_ssh_agent_standalone_SOURCES) \ |
1003 | 1123 | $(gkm_rpc_daemon_standalone_SOURCES) \ | 1111 | $(gkm_rpc_daemon_standalone_SOURCES) \ |
1004 | 1124 | $(gnome_keyring_@GKR_MAJOR@_SOURCES) \ | 1112 | $(gnome_keyring_@GKR_MAJOR@_SOURCES) \ |
1005 | @@ -2095,17 +2083,6 @@ | |||
1006 | 2095 | $(GCK_CFLAGS) \ | 2083 | $(GCK_CFLAGS) \ |
1007 | 2096 | $(GCR_CFLAGS) | 2084 | $(GCR_CFLAGS) |
1008 | 2097 | 2085 | ||
1009 | 2098 | gkd_gpg_agent_standalone_SOURCES = \ | ||
1010 | 2099 | daemon/gpg-agent/gkd-gpg-agent-standalone.c | ||
1011 | 2100 | |||
1012 | 2101 | gkd_gpg_agent_standalone_CFLAGS = \ | ||
1013 | 2102 | $(GCK_CFLAGS) | ||
1014 | 2103 | |||
1015 | 2104 | gkd_gpg_agent_standalone_LDADD = \ | ||
1016 | 2105 | libgkd-gpg-agent.la \ | ||
1017 | 2106 | libegg.la \ | ||
1018 | 2107 | $(DAEMON_LIBS) | ||
1019 | 2108 | |||
1020 | 2109 | libgkd_login_la_SOURCES = \ | 2086 | libgkd_login_la_SOURCES = \ |
1021 | 2110 | daemon/login/gkd-login.c \ | 2087 | daemon/login/gkd-login.c \ |
1022 | 2111 | daemon/login/gkd-login.h \ | 2088 | daemon/login/gkd-login.h \ |
1023 | @@ -2113,6 +2090,7 @@ | |||
1024 | 2113 | 2090 | ||
1025 | 2114 | libgkd_login_la_CFLAGS = \ | 2091 | libgkd_login_la_CFLAGS = \ |
1026 | 2115 | $(GCK_CFLAGS) \ | 2092 | $(GCK_CFLAGS) \ |
1027 | 2093 | $(GCR_CFLAGS) \ | ||
1028 | 2116 | $(GOBJECT_CFLAGS) | 2094 | $(GOBJECT_CFLAGS) |
1029 | 2117 | 2095 | ||
1030 | 2118 | libgkd_login_la_LIBADD = \ | 2096 | libgkd_login_la_LIBADD = \ |
1031 | @@ -3735,13 +3713,6 @@ | |||
1032 | 3735 | frob-trust-file$(EXEEXT): $(frob_trust_file_OBJECTS) $(frob_trust_file_DEPENDENCIES) $(EXTRA_frob_trust_file_DEPENDENCIES) | 3713 | frob-trust-file$(EXEEXT): $(frob_trust_file_OBJECTS) $(frob_trust_file_DEPENDENCIES) $(EXTRA_frob_trust_file_DEPENDENCIES) |
1033 | 3736 | @rm -f frob-trust-file$(EXEEXT) | 3714 | @rm -f frob-trust-file$(EXEEXT) |
1034 | 3737 | $(AM_V_CCLD)$(LINK) $(frob_trust_file_OBJECTS) $(frob_trust_file_LDADD) $(LIBS) | 3715 | $(AM_V_CCLD)$(LINK) $(frob_trust_file_OBJECTS) $(frob_trust_file_LDADD) $(LIBS) |
1035 | 3738 | daemon/gpg-agent/gkd_gpg_agent_standalone-gkd-gpg-agent-standalone.$(OBJEXT): \ | ||
1036 | 3739 | daemon/gpg-agent/$(am__dirstamp) \ | ||
1037 | 3740 | daemon/gpg-agent/$(DEPDIR)/$(am__dirstamp) | ||
1038 | 3741 | |||
1039 | 3742 | gkd-gpg-agent-standalone$(EXEEXT): $(gkd_gpg_agent_standalone_OBJECTS) $(gkd_gpg_agent_standalone_DEPENDENCIES) $(EXTRA_gkd_gpg_agent_standalone_DEPENDENCIES) | ||
1040 | 3743 | @rm -f gkd-gpg-agent-standalone$(EXEEXT) | ||
1041 | 3744 | $(AM_V_CCLD)$(gkd_gpg_agent_standalone_LINK) $(gkd_gpg_agent_standalone_OBJECTS) $(gkd_gpg_agent_standalone_LDADD) $(LIBS) | ||
1042 | 3745 | daemon/ssh-agent/gkd_ssh_agent_standalone-gkd-ssh-agent-standalone.$(OBJEXT): \ | 3716 | daemon/ssh-agent/gkd_ssh_agent_standalone-gkd-ssh-agent-standalone.$(OBJEXT): \ |
1043 | 3746 | daemon/ssh-agent/$(am__dirstamp) \ | 3717 | daemon/ssh-agent/$(am__dirstamp) \ |
1044 | 3747 | daemon/ssh-agent/$(DEPDIR)/$(am__dirstamp) | 3718 | daemon/ssh-agent/$(DEPDIR)/$(am__dirstamp) |
1045 | @@ -4271,7 +4242,6 @@ | |||
1046 | 4271 | @AMDEP_TRUE@@am__include@ @am__quote@daemon/dbus/$(DEPDIR)/test-service.Plo@am__quote@ | 4242 | @AMDEP_TRUE@@am__include@ @am__quote@daemon/dbus/$(DEPDIR)/test-service.Plo@am__quote@ |
1047 | 4272 | @AMDEP_TRUE@@am__include@ @am__quote@daemon/dbus/$(DEPDIR)/test_dbus_signals-test-dbus-signals.Po@am__quote@ | 4243 | @AMDEP_TRUE@@am__include@ @am__quote@daemon/dbus/$(DEPDIR)/test_dbus_signals-test-dbus-signals.Po@am__quote@ |
1048 | 4273 | @AMDEP_TRUE@@am__include@ @am__quote@daemon/dbus/$(DEPDIR)/test_dbus_util-test-dbus-util.Po@am__quote@ | 4244 | @AMDEP_TRUE@@am__include@ @am__quote@daemon/dbus/$(DEPDIR)/test_dbus_util-test-dbus-util.Po@am__quote@ |
1049 | 4274 | @AMDEP_TRUE@@am__include@ @am__quote@daemon/gpg-agent/$(DEPDIR)/gkd_gpg_agent_standalone-gkd-gpg-agent-standalone.Po@am__quote@ | ||
1050 | 4275 | @AMDEP_TRUE@@am__include@ @am__quote@daemon/gpg-agent/$(DEPDIR)/libgkd_gpg_agent_la-gkd-gpg-agent-ops.Plo@am__quote@ | 4245 | @AMDEP_TRUE@@am__include@ @am__quote@daemon/gpg-agent/$(DEPDIR)/libgkd_gpg_agent_la-gkd-gpg-agent-ops.Plo@am__quote@ |
1051 | 4276 | @AMDEP_TRUE@@am__include@ @am__quote@daemon/gpg-agent/$(DEPDIR)/libgkd_gpg_agent_la-gkd-gpg-agent.Plo@am__quote@ | 4246 | @AMDEP_TRUE@@am__include@ @am__quote@daemon/gpg-agent/$(DEPDIR)/libgkd_gpg_agent_la-gkd-gpg-agent.Plo@am__quote@ |
1052 | 4277 | @AMDEP_TRUE@@am__include@ @am__quote@daemon/login/$(DEPDIR)/libgkd_login_la-gkd-login.Plo@am__quote@ | 4247 | @AMDEP_TRUE@@am__include@ @am__quote@daemon/login/$(DEPDIR)/libgkd_login_la-gkd-login.Plo@am__quote@ |
1053 | @@ -5340,20 +5310,6 @@ | |||
1054 | 5340 | @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ | 5310 | @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ |
1055 | 5341 | @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pam_gnome_keyring_la_CFLAGS) $(CFLAGS) -c -o pam/pam_gnome_keyring_la-gkr-pam-stubs.lo `test -f 'pam/gkr-pam-stubs.c' || echo '$(srcdir)/'`pam/gkr-pam-stubs.c | 5311 | @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pam_gnome_keyring_la_CFLAGS) $(CFLAGS) -c -o pam/pam_gnome_keyring_la-gkr-pam-stubs.lo `test -f 'pam/gkr-pam-stubs.c' || echo '$(srcdir)/'`pam/gkr-pam-stubs.c |
1056 | 5342 | 5312 | ||
1057 | 5343 | daemon/gpg-agent/gkd_gpg_agent_standalone-gkd-gpg-agent-standalone.o: daemon/gpg-agent/gkd-gpg-agent-standalone.c | ||
1058 | 5344 | @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gkd_gpg_agent_standalone_CFLAGS) $(CFLAGS) -MT daemon/gpg-agent/gkd_gpg_agent_standalone-gkd-gpg-agent-standalone.o -MD -MP -MF daemon/gpg-agent/$(DEPDIR)/gkd_gpg_agent_standalone-gkd-gpg-agent-standalone.Tpo -c -o daemon/gpg-agent/gkd_gpg_agent_standalone-gkd-gpg-agent-standalone.o `test -f 'daemon/gpg-agent/gkd-gpg-agent-standalone.c' || echo '$(srcdir)/'`daemon/gpg-agent/gkd-gpg-agent-standalone.c | ||
1059 | 5345 | @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) daemon/gpg-agent/$(DEPDIR)/gkd_gpg_agent_standalone-gkd-gpg-agent-standalone.Tpo daemon/gpg-agent/$(DEPDIR)/gkd_gpg_agent_standalone-gkd-gpg-agent-standalone.Po | ||
1060 | 5346 | @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='daemon/gpg-agent/gkd-gpg-agent-standalone.c' object='daemon/gpg-agent/gkd_gpg_agent_standalone-gkd-gpg-agent-standalone.o' libtool=no @AMDEPBACKSLASH@ | ||
1061 | 5347 | @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ | ||
1062 | 5348 | @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gkd_gpg_agent_standalone_CFLAGS) $(CFLAGS) -c -o daemon/gpg-agent/gkd_gpg_agent_standalone-gkd-gpg-agent-standalone.o `test -f 'daemon/gpg-agent/gkd-gpg-agent-standalone.c' || echo '$(srcdir)/'`daemon/gpg-agent/gkd-gpg-agent-standalone.c | ||
1063 | 5349 | |||
1064 | 5350 | daemon/gpg-agent/gkd_gpg_agent_standalone-gkd-gpg-agent-standalone.obj: daemon/gpg-agent/gkd-gpg-agent-standalone.c | ||
1065 | 5351 | @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gkd_gpg_agent_standalone_CFLAGS) $(CFLAGS) -MT daemon/gpg-agent/gkd_gpg_agent_standalone-gkd-gpg-agent-standalone.obj -MD -MP -MF daemon/gpg-agent/$(DEPDIR)/gkd_gpg_agent_standalone-gkd-gpg-agent-standalone.Tpo -c -o daemon/gpg-agent/gkd_gpg_agent_standalone-gkd-gpg-agent-standalone.obj `if test -f 'daemon/gpg-agent/gkd-gpg-agent-standalone.c'; then $(CYGPATH_W) 'daemon/gpg-agent/gkd-gpg-agent-standalone.c'; else $(CYGPATH_W) '$(srcdir)/daemon/gpg-agent/gkd-gpg-agent-standalone.c'; fi` | ||
1066 | 5352 | @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) daemon/gpg-agent/$(DEPDIR)/gkd_gpg_agent_standalone-gkd-gpg-agent-standalone.Tpo daemon/gpg-agent/$(DEPDIR)/gkd_gpg_agent_standalone-gkd-gpg-agent-standalone.Po | ||
1067 | 5353 | @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='daemon/gpg-agent/gkd-gpg-agent-standalone.c' object='daemon/gpg-agent/gkd_gpg_agent_standalone-gkd-gpg-agent-standalone.obj' libtool=no @AMDEPBACKSLASH@ | ||
1068 | 5354 | @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ | ||
1069 | 5355 | @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gkd_gpg_agent_standalone_CFLAGS) $(CFLAGS) -c -o daemon/gpg-agent/gkd_gpg_agent_standalone-gkd-gpg-agent-standalone.obj `if test -f 'daemon/gpg-agent/gkd-gpg-agent-standalone.c'; then $(CYGPATH_W) 'daemon/gpg-agent/gkd-gpg-agent-standalone.c'; else $(CYGPATH_W) '$(srcdir)/daemon/gpg-agent/gkd-gpg-agent-standalone.c'; fi` | ||
1070 | 5356 | |||
1071 | 5357 | daemon/ssh-agent/gkd_ssh_agent_standalone-gkd-ssh-agent-standalone.o: daemon/ssh-agent/gkd-ssh-agent-standalone.c | 5313 | daemon/ssh-agent/gkd_ssh_agent_standalone-gkd-ssh-agent-standalone.o: daemon/ssh-agent/gkd-ssh-agent-standalone.c |
1072 | 5358 | @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gkd_ssh_agent_standalone_CFLAGS) $(CFLAGS) -MT daemon/ssh-agent/gkd_ssh_agent_standalone-gkd-ssh-agent-standalone.o -MD -MP -MF daemon/ssh-agent/$(DEPDIR)/gkd_ssh_agent_standalone-gkd-ssh-agent-standalone.Tpo -c -o daemon/ssh-agent/gkd_ssh_agent_standalone-gkd-ssh-agent-standalone.o `test -f 'daemon/ssh-agent/gkd-ssh-agent-standalone.c' || echo '$(srcdir)/'`daemon/ssh-agent/gkd-ssh-agent-standalone.c | 5314 | @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gkd_ssh_agent_standalone_CFLAGS) $(CFLAGS) -MT daemon/ssh-agent/gkd_ssh_agent_standalone-gkd-ssh-agent-standalone.o -MD -MP -MF daemon/ssh-agent/$(DEPDIR)/gkd_ssh_agent_standalone-gkd-ssh-agent-standalone.Tpo -c -o daemon/ssh-agent/gkd_ssh_agent_standalone-gkd-ssh-agent-standalone.o `test -f 'daemon/ssh-agent/gkd-ssh-agent-standalone.c' || echo '$(srcdir)/'`daemon/ssh-agent/gkd-ssh-agent-standalone.c |
1073 | 5359 | @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) daemon/ssh-agent/$(DEPDIR)/gkd_ssh_agent_standalone-gkd-ssh-agent-standalone.Tpo daemon/ssh-agent/$(DEPDIR)/gkd_ssh_agent_standalone-gkd-ssh-agent-standalone.Po | 5315 | @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) daemon/ssh-agent/$(DEPDIR)/gkd_ssh_agent_standalone-gkd-ssh-agent-standalone.Tpo daemon/ssh-agent/$(DEPDIR)/gkd_ssh_agent_standalone-gkd-ssh-agent-standalone.Po |
1074 | 5360 | 5316 | ||
1075 | === modified file 'NEWS' | |||
1076 | --- NEWS 2014-12-06 18:47:09 +0000 | |||
1077 | +++ NEWS 2015-02-27 19:55:06 +0000 | |||
1078 | @@ -1,3 +1,9 @@ | |||
1079 | 1 | Changes in version 3.15.90 are: | ||
1080 | 2 | * Fix leaks [#738508] | ||
1081 | 3 | * Refactoring | ||
1082 | 4 | * Build fixes [#740190] | ||
1083 | 5 | * Updated translations | ||
1084 | 6 | |||
1085 | 1 | Changes in version 3.14.0 are: | 7 | Changes in version 3.14.0 are: |
1086 | 2 | * Remove residual GTK+ usage | 8 | * Remove residual GTK+ usage |
1087 | 3 | * Updated translations | 9 | * Updated translations |
1088 | 4 | 10 | ||
1089 | === modified file 'configure' | |||
1090 | --- configure 2014-12-06 18:47:09 +0000 | |||
1091 | +++ configure 2015-02-27 19:55:06 +0000 | |||
1092 | @@ -1,6 +1,6 @@ | |||
1093 | 1 | #! /bin/sh | 1 | #! /bin/sh |
1094 | 2 | # Guess values for system-dependent variables and create Makefiles. | 2 | # Guess values for system-dependent variables and create Makefiles. |
1096 | 3 | # Generated by GNU Autoconf 2.69 for gnome-keyring 3.14.0. | 3 | # Generated by GNU Autoconf 2.69 for gnome-keyring 3.15.90. |
1097 | 4 | # | 4 | # |
1098 | 5 | # Report bugs to <gnome-keyring-list@gnome.org>. | 5 | # Report bugs to <gnome-keyring-list@gnome.org>. |
1099 | 6 | # | 6 | # |
1100 | @@ -590,8 +590,8 @@ | |||
1101 | 590 | # Identity of this package. | 590 | # Identity of this package. |
1102 | 591 | PACKAGE_NAME='gnome-keyring' | 591 | PACKAGE_NAME='gnome-keyring' |
1103 | 592 | PACKAGE_TARNAME='gnome-keyring' | 592 | PACKAGE_TARNAME='gnome-keyring' |
1106 | 593 | PACKAGE_VERSION='3.14.0' | 593 | PACKAGE_VERSION='3.15.90' |
1107 | 594 | PACKAGE_STRING='gnome-keyring 3.14.0' | 594 | PACKAGE_STRING='gnome-keyring 3.15.90' |
1108 | 595 | PACKAGE_BUGREPORT='gnome-keyring-list@gnome.org' | 595 | PACKAGE_BUGREPORT='gnome-keyring-list@gnome.org' |
1109 | 596 | PACKAGE_URL='https://wiki.gnome.org/Projects/GnomeKeyring' | 596 | PACKAGE_URL='https://wiki.gnome.org/Projects/GnomeKeyring' |
1110 | 597 | 597 | ||
1111 | @@ -1465,7 +1465,7 @@ | |||
1112 | 1465 | # Omit some internal or obsolete options to make the list less imposing. | 1465 | # Omit some internal or obsolete options to make the list less imposing. |
1113 | 1466 | # This message is too long to be a string in the A/UX 3.1 sh. | 1466 | # This message is too long to be a string in the A/UX 3.1 sh. |
1114 | 1467 | cat <<_ACEOF | 1467 | cat <<_ACEOF |
1116 | 1468 | \`configure' configures gnome-keyring 3.14.0 to adapt to many kinds of systems. | 1468 | \`configure' configures gnome-keyring 3.15.90 to adapt to many kinds of systems. |
1117 | 1469 | 1469 | ||
1118 | 1470 | Usage: $0 [OPTION]... [VAR=VALUE]... | 1470 | Usage: $0 [OPTION]... [VAR=VALUE]... |
1119 | 1471 | 1471 | ||
1120 | @@ -1535,7 +1535,7 @@ | |||
1121 | 1535 | 1535 | ||
1122 | 1536 | if test -n "$ac_init_help"; then | 1536 | if test -n "$ac_init_help"; then |
1123 | 1537 | case $ac_init_help in | 1537 | case $ac_init_help in |
1125 | 1538 | short | recursive ) echo "Configuration of gnome-keyring 3.14.0:";; | 1538 | short | recursive ) echo "Configuration of gnome-keyring 3.15.90:";; |
1126 | 1539 | esac | 1539 | esac |
1127 | 1540 | cat <<\_ACEOF | 1540 | cat <<\_ACEOF |
1128 | 1541 | 1541 | ||
1129 | @@ -1707,7 +1707,7 @@ | |||
1130 | 1707 | test -n "$ac_init_help" && exit $ac_status | 1707 | test -n "$ac_init_help" && exit $ac_status |
1131 | 1708 | if $ac_init_version; then | 1708 | if $ac_init_version; then |
1132 | 1709 | cat <<\_ACEOF | 1709 | cat <<\_ACEOF |
1134 | 1710 | gnome-keyring configure 3.14.0 | 1710 | gnome-keyring configure 3.15.90 |
1135 | 1711 | generated by GNU Autoconf 2.69 | 1711 | generated by GNU Autoconf 2.69 |
1136 | 1712 | 1712 | ||
1137 | 1713 | Copyright (C) 2012 Free Software Foundation, Inc. | 1713 | Copyright (C) 2012 Free Software Foundation, Inc. |
1138 | @@ -2130,7 +2130,7 @@ | |||
1139 | 2130 | This file contains any messages produced by compilers while | 2130 | This file contains any messages produced by compilers while |
1140 | 2131 | running configure, to aid debugging if configure makes a mistake. | 2131 | running configure, to aid debugging if configure makes a mistake. |
1141 | 2132 | 2132 | ||
1143 | 2133 | It was created by gnome-keyring $as_me 3.14.0, which was | 2133 | It was created by gnome-keyring $as_me 3.15.90, which was |
1144 | 2134 | generated by GNU Autoconf 2.69. Invocation command line was | 2134 | generated by GNU Autoconf 2.69. Invocation command line was |
1145 | 2135 | 2135 | ||
1146 | 2136 | $ $0 $@ | 2136 | $ $0 $@ |
1147 | @@ -3022,7 +3022,7 @@ | |||
1148 | 3022 | 3022 | ||
1149 | 3023 | # Define the identity of the package. | 3023 | # Define the identity of the package. |
1150 | 3024 | PACKAGE='gnome-keyring' | 3024 | PACKAGE='gnome-keyring' |
1152 | 3025 | VERSION='3.14.0' | 3025 | VERSION='3.15.90' |
1153 | 3026 | 3026 | ||
1154 | 3027 | 3027 | ||
1155 | 3028 | cat >>confdefs.h <<_ACEOF | 3028 | cat >>confdefs.h <<_ACEOF |
1156 | @@ -17777,7 +17777,7 @@ | |||
1157 | 17777 | # report actual input values of CONFIG_FILES etc. instead of their | 17777 | # report actual input values of CONFIG_FILES etc. instead of their |
1158 | 17778 | # values after options handling. | 17778 | # values after options handling. |
1159 | 17779 | ac_log=" | 17779 | ac_log=" |
1161 | 17780 | This file was extended by gnome-keyring $as_me 3.14.0, which was | 17780 | This file was extended by gnome-keyring $as_me 3.15.90, which was |
1162 | 17781 | generated by GNU Autoconf 2.69. Invocation command line was | 17781 | generated by GNU Autoconf 2.69. Invocation command line was |
1163 | 17782 | 17782 | ||
1164 | 17783 | CONFIG_FILES = $CONFIG_FILES | 17783 | CONFIG_FILES = $CONFIG_FILES |
1165 | @@ -17844,7 +17844,7 @@ | |||
1166 | 17844 | cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 | 17844 | cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 |
1167 | 17845 | ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" | 17845 | ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" |
1168 | 17846 | ac_cs_version="\\ | 17846 | ac_cs_version="\\ |
1170 | 17847 | gnome-keyring config.status 3.14.0 | 17847 | gnome-keyring config.status 3.15.90 |
1171 | 17848 | configured by $0, generated by GNU Autoconf 2.69, | 17848 | configured by $0, generated by GNU Autoconf 2.69, |
1172 | 17849 | with options \\"\$ac_cs_config\\" | 17849 | with options \\"\$ac_cs_config\\" |
1173 | 17850 | 17850 | ||
1174 | 17851 | 17851 | ||
1175 | === modified file 'configure.ac' | |||
1176 | --- configure.ac 2014-12-06 18:47:09 +0000 | |||
1177 | +++ configure.ac 2015-02-27 19:55:06 +0000 | |||
1178 | @@ -1,5 +1,5 @@ | |||
1179 | 1 | AC_INIT(gnome-keyring, | 1 | AC_INIT(gnome-keyring, |
1181 | 2 | 3.14.0, | 2 | 3.15.90, |
1182 | 3 | [gnome-keyring-list@gnome.org], | 3 | [gnome-keyring-list@gnome.org], |
1183 | 4 | [gnome-keyring], | 4 | [gnome-keyring], |
1184 | 5 | [https://wiki.gnome.org/Projects/GnomeKeyring]) | 5 | [https://wiki.gnome.org/Projects/GnomeKeyring]) |
1185 | 6 | 6 | ||
1186 | === modified file 'daemon/dbus/gkd-dbus.c' | |||
1187 | --- daemon/dbus/gkd-dbus.c 2014-12-06 18:47:09 +0000 | |||
1188 | +++ daemon/dbus/gkd-dbus.c 2015-02-27 19:55:06 +0000 | |||
1189 | @@ -102,7 +102,6 @@ | |||
1190 | 102 | 102 | ||
1191 | 103 | const gchar **env; | 103 | const gchar **env; |
1192 | 104 | DBusMessageIter items, entry; | 104 | DBusMessageIter items, entry; |
1193 | 105 | gchar **parts; | ||
1194 | 106 | 105 | ||
1195 | 107 | env = gkd_util_get_environment (); | 106 | env = gkd_util_get_environment (); |
1196 | 108 | g_return_val_if_fail (env, DBUS_HANDLER_RESULT_NOT_YET_HANDLED); | 107 | g_return_val_if_fail (env, DBUS_HANDLER_RESULT_NOT_YET_HANDLED); |
1197 | @@ -113,13 +112,17 @@ | |||
1198 | 113 | if (!dbus_message_iter_open_container (&args, DBUS_TYPE_ARRAY, "{ss}", &items)) | 112 | if (!dbus_message_iter_open_container (&args, DBUS_TYPE_ARRAY, "{ss}", &items)) |
1199 | 114 | g_return_val_if_reached (DBUS_HANDLER_RESULT_NEED_MEMORY); | 113 | g_return_val_if_reached (DBUS_HANDLER_RESULT_NEED_MEMORY); |
1200 | 115 | while (*env) { | 114 | while (*env) { |
1201 | 115 | gchar **parts; | ||
1202 | 116 | parts = g_strsplit (*env, "=", 2); | 116 | parts = g_strsplit (*env, "=", 2); |
1203 | 117 | g_return_val_if_fail (parts && parts[0] && parts[1], DBUS_HANDLER_RESULT_NOT_YET_HANDLED); | 117 | g_return_val_if_fail (parts && parts[0] && parts[1], DBUS_HANDLER_RESULT_NOT_YET_HANDLED); |
1204 | 118 | if (!dbus_message_iter_open_container (&items, DBUS_TYPE_DICT_ENTRY, NULL, &entry) || | 118 | if (!dbus_message_iter_open_container (&items, DBUS_TYPE_DICT_ENTRY, NULL, &entry) || |
1205 | 119 | !dbus_message_iter_append_basic (&entry, DBUS_TYPE_STRING, &parts[0]) || | 119 | !dbus_message_iter_append_basic (&entry, DBUS_TYPE_STRING, &parts[0]) || |
1206 | 120 | !dbus_message_iter_append_basic (&entry, DBUS_TYPE_STRING, &parts[1]) || | 120 | !dbus_message_iter_append_basic (&entry, DBUS_TYPE_STRING, &parts[1]) || |
1208 | 121 | !dbus_message_iter_close_container (&items, &entry)) | 121 | !dbus_message_iter_close_container (&items, &entry)) { |
1209 | 122 | g_strfreev (parts); | ||
1210 | 122 | g_return_val_if_reached (DBUS_HANDLER_RESULT_NEED_MEMORY); | 123 | g_return_val_if_reached (DBUS_HANDLER_RESULT_NEED_MEMORY); |
1211 | 124 | } | ||
1212 | 125 | g_strfreev (parts); | ||
1213 | 123 | ++env; | 126 | ++env; |
1214 | 124 | } | 127 | } |
1215 | 125 | if (!dbus_message_iter_close_container (&args, &items)) | 128 | if (!dbus_message_iter_close_container (&args, &items)) |
1216 | 126 | 129 | ||
1217 | === modified file 'daemon/dbus/gkd-secret-service.c' | |||
1218 | --- daemon/dbus/gkd-secret-service.c 2014-12-06 18:47:09 +0000 | |||
1219 | +++ daemon/dbus/gkd-secret-service.c 2015-02-27 19:55:06 +0000 | |||
1220 | @@ -1245,6 +1245,9 @@ | |||
1221 | 1245 | g_hash_table_destroy (self->aliases); | 1245 | g_hash_table_destroy (self->aliases); |
1222 | 1246 | self->aliases = NULL; | 1246 | self->aliases = NULL; |
1223 | 1247 | 1247 | ||
1224 | 1248 | g_free (self->alias_directory); | ||
1225 | 1249 | self->alias_directory = NULL; | ||
1226 | 1250 | |||
1227 | 1248 | G_OBJECT_CLASS (gkd_secret_service_parent_class)->finalize (obj); | 1251 | G_OBJECT_CLASS (gkd_secret_service_parent_class)->finalize (obj); |
1228 | 1249 | } | 1252 | } |
1229 | 1250 | 1253 | ||
1230 | 1251 | 1254 | ||
1231 | === modified file 'daemon/dbus/test-dbus-items.c' | |||
1232 | --- daemon/dbus/test-dbus-items.c 2014-04-06 23:26:34 +0000 | |||
1233 | +++ daemon/dbus/test-dbus-items.c 2015-02-27 19:55:06 +0000 | |||
1234 | @@ -159,8 +159,10 @@ | |||
1235 | 159 | g_assert_cmpuint (modified, >, (g_get_real_time () / G_TIME_SPAN_SECOND) - 10); | 159 | g_assert_cmpuint (modified, >, (g_get_real_time () / G_TIME_SPAN_SECOND) - 10); |
1236 | 160 | g_assert_cmpuint (created, ==, modified); | 160 | g_assert_cmpuint (created, ==, modified); |
1237 | 161 | 161 | ||
1239 | 162 | if (!g_test_thorough ()) | 162 | if (!g_test_thorough ()) { |
1240 | 163 | g_free (item); | ||
1241 | 163 | return; | 164 | return; |
1242 | 165 | } | ||
1243 | 164 | 166 | ||
1244 | 165 | /* Unfortunately have to wait 1.25 seconds here */ | 167 | /* Unfortunately have to wait 1.25 seconds here */ |
1245 | 166 | g_usleep (G_TIME_SPAN_SECOND + (G_TIME_SPAN_SECOND / 4)); | 168 | g_usleep (G_TIME_SPAN_SECOND + (G_TIME_SPAN_SECOND / 4)); |
1246 | 167 | 169 | ||
1247 | === modified file 'daemon/gpg-agent/Makefile.am' | |||
1248 | --- daemon/gpg-agent/Makefile.am 2014-12-06 18:47:09 +0000 | |||
1249 | +++ daemon/gpg-agent/Makefile.am 2015-02-27 19:55:06 +0000 | |||
1250 | @@ -13,18 +13,3 @@ | |||
1251 | 13 | libgkd_gpg_agent_la_CFLAGS = \ | 13 | libgkd_gpg_agent_la_CFLAGS = \ |
1252 | 14 | $(GCK_CFLAGS) \ | 14 | $(GCK_CFLAGS) \ |
1253 | 15 | $(GCR_CFLAGS) | 15 | $(GCR_CFLAGS) |
1254 | 16 | |||
1255 | 17 | # ------------------------------------------------------------------------------ | ||
1256 | 18 | # Standalone binary | ||
1257 | 19 | |||
1258 | 20 | noinst_PROGRAMS += \ | ||
1259 | 21 | gkd-gpg-agent-standalone | ||
1260 | 22 | |||
1261 | 23 | gkd_gpg_agent_standalone_SOURCES = \ | ||
1262 | 24 | daemon/gpg-agent/gkd-gpg-agent-standalone.c | ||
1263 | 25 | gkd_gpg_agent_standalone_CFLAGS = \ | ||
1264 | 26 | $(GCK_CFLAGS) | ||
1265 | 27 | gkd_gpg_agent_standalone_LDADD = \ | ||
1266 | 28 | libgkd-gpg-agent.la \ | ||
1267 | 29 | libegg.la \ | ||
1268 | 30 | $(DAEMON_LIBS) | ||
1269 | 31 | 16 | ||
1270 | === modified file 'daemon/gpg-agent/gkd-gpg-agent-ops.c' | |||
1271 | --- daemon/gpg-agent/gkd-gpg-agent-ops.c 2014-12-06 18:47:09 +0000 | |||
1272 | +++ daemon/gpg-agent/gkd-gpg-agent-ops.c 2015-02-27 19:55:06 +0000 | |||
1273 | @@ -23,6 +23,8 @@ | |||
1274 | 23 | #include "gkd-gpg-agent.h" | 23 | #include "gkd-gpg-agent.h" |
1275 | 24 | #include "gkd-gpg-agent-private.h" | 24 | #include "gkd-gpg-agent-private.h" |
1276 | 25 | 25 | ||
1277 | 26 | #include "daemon/login/gkd-login.h" | ||
1278 | 27 | |||
1279 | 26 | #include "egg/egg-error.h" | 28 | #include "egg/egg-error.h" |
1280 | 27 | #include "egg/egg-secure-memory.h" | 29 | #include "egg/egg-secure-memory.h" |
1281 | 28 | 30 | ||
1282 | @@ -48,31 +50,6 @@ | |||
1283 | 48 | * PASSWORD STUFF | 50 | * PASSWORD STUFF |
1284 | 49 | */ | 51 | */ |
1285 | 50 | 52 | ||
1286 | 51 | static void | ||
1287 | 52 | keyid_to_field_attribute (const gchar *keyid, | ||
1288 | 53 | GckBuilder *attrs) | ||
1289 | 54 | { | ||
1290 | 55 | GString *fields = g_string_sized_new (128); | ||
1291 | 56 | |||
1292 | 57 | g_assert (keyid); | ||
1293 | 58 | g_assert (attrs); | ||
1294 | 59 | |||
1295 | 60 | /* Remember that attribute names are sorted */ | ||
1296 | 61 | |||
1297 | 62 | g_string_append (fields, "keyid"); | ||
1298 | 63 | g_string_append_c (fields, '\0'); | ||
1299 | 64 | g_string_append (fields, keyid); | ||
1300 | 65 | g_string_append_c (fields, '\0'); | ||
1301 | 66 | |||
1302 | 67 | g_string_append (fields, "source"); | ||
1303 | 68 | g_string_append_c (fields, '\0'); | ||
1304 | 69 | g_string_append (fields, "gnome-keyring:gpg-agent"); | ||
1305 | 70 | g_string_append_c (fields, '\0'); | ||
1306 | 71 | |||
1307 | 72 | gck_builder_add_data (attrs, CKA_G_FIELDS, (const guchar *)fields->str, fields->len); | ||
1308 | 73 | g_string_free (fields, TRUE); | ||
1309 | 74 | } | ||
1310 | 75 | |||
1311 | 76 | static gchar* | 53 | static gchar* |
1312 | 77 | calculate_label_for_key (const gchar *keyid, const gchar *description) | 54 | calculate_label_for_key (const gchar *keyid, const gchar *description) |
1313 | 78 | { | 55 | { |
1314 | @@ -107,191 +84,11 @@ | |||
1315 | 107 | return label; | 84 | return label; |
1316 | 108 | } | 85 | } |
1317 | 109 | 86 | ||
1318 | 110 | static GList* | ||
1319 | 111 | find_saved_items (GckSession *session, GckAttributes *attrs) | ||
1320 | 112 | { | ||
1321 | 113 | GckBuilder builder = GCK_BUILDER_INIT; | ||
1322 | 114 | GError *error = NULL; | ||
1323 | 115 | const GckAttribute *attr; | ||
1324 | 116 | GckObject *search; | ||
1325 | 117 | GList *results; | ||
1326 | 118 | gpointer data; | ||
1327 | 119 | gsize n_data; | ||
1328 | 120 | |||
1329 | 121 | gck_builder_add_ulong (&builder, CKA_CLASS, CKO_G_SEARCH); | ||
1330 | 122 | gck_builder_add_boolean (&builder, CKA_TOKEN, FALSE); | ||
1331 | 123 | |||
1332 | 124 | attr = gck_attributes_find (attrs, CKA_G_COLLECTION); | ||
1333 | 125 | if (attr != NULL) | ||
1334 | 126 | gck_builder_add_attribute (&builder, attr); | ||
1335 | 127 | |||
1336 | 128 | attr = gck_attributes_find (attrs, CKA_G_FIELDS); | ||
1337 | 129 | g_return_val_if_fail (attr != NULL, NULL); | ||
1338 | 130 | gck_builder_add_attribute (&builder, attr); | ||
1339 | 131 | |||
1340 | 132 | search = gck_session_create_object (session, gck_builder_end (&builder), NULL, &error); | ||
1341 | 133 | if (search == NULL) { | ||
1342 | 134 | g_warning ("couldn't perform search for gpg agent stored passphrases: %s", | ||
1343 | 135 | egg_error_message (error)); | ||
1344 | 136 | g_clear_error (&error); | ||
1345 | 137 | return NULL; | ||
1346 | 138 | } | ||
1347 | 139 | |||
1348 | 140 | data = gck_object_get_data (search, CKA_G_MATCHED, NULL, &n_data, &error); | ||
1349 | 141 | gck_object_destroy (search, NULL, NULL); | ||
1350 | 142 | g_object_unref (search); | ||
1351 | 143 | |||
1352 | 144 | if (data == NULL) { | ||
1353 | 145 | g_warning ("couldn't retrieve list of gpg agent stored passphrases: %s", | ||
1354 | 146 | egg_error_message (error)); | ||
1355 | 147 | g_clear_error (&error); | ||
1356 | 148 | return NULL; | ||
1357 | 149 | } | ||
1358 | 150 | |||
1359 | 151 | results = gck_objects_from_handle_array (session, data, n_data / sizeof (CK_ULONG)); | ||
1360 | 152 | |||
1361 | 153 | g_free (data); | ||
1362 | 154 | return results; | ||
1363 | 155 | } | ||
1364 | 156 | |||
1365 | 157 | static void | 87 | static void |
1366 | 158 | do_save_password (GckSession *session, const gchar *keyid, const gchar *description, | ||
1367 | 159 | const gchar *password, GckAttributes *options) | ||
1368 | 160 | { | ||
1369 | 161 | GckBuilder builder; | ||
1370 | 162 | GckAttributes *attrs; | ||
1371 | 163 | gpointer identifier; | ||
1372 | 164 | gsize n_identifier; | ||
1373 | 165 | GList *previous; | ||
1374 | 166 | GError *error = NULL; | ||
1375 | 167 | GckObject *item; | ||
1376 | 168 | gchar *text; | ||
1377 | 169 | gchar *label; | ||
1378 | 170 | gint i; | ||
1379 | 171 | |||
1380 | 172 | g_assert (password); | ||
1381 | 173 | |||
1382 | 174 | /* Can't save anything if there was no keyid */ | ||
1383 | 175 | if (keyid == NULL) | ||
1384 | 176 | return; | ||
1385 | 177 | |||
1386 | 178 | /* Sending a password, needs to be secure */ | ||
1387 | 179 | gck_builder_init_full (&builder, GCK_BUILDER_SECURE_MEMORY); | ||
1388 | 180 | |||
1389 | 181 | /* Build up basic set of attributes */ | ||
1390 | 182 | gck_builder_add_boolean (&builder, CKA_TOKEN, TRUE); | ||
1391 | 183 | gck_builder_add_ulong (&builder, CKA_CLASS, CKO_SECRET_KEY); | ||
1392 | 184 | keyid_to_field_attribute (keyid, &builder); | ||
1393 | 185 | |||
1394 | 186 | /* Bring in all the unlock options */ | ||
1395 | 187 | for (i = 0; options && i < gck_attributes_count (options); ++i) | ||
1396 | 188 | gck_builder_add_attribute (&builder, gck_attributes_at (options, i)); | ||
1397 | 189 | |||
1398 | 190 | /* Find a previously stored object like this, and replace if so */ | ||
1399 | 191 | attrs = gck_attributes_ref_sink (gck_builder_end (&builder)); | ||
1400 | 192 | previous = find_saved_items (session, attrs); | ||
1401 | 193 | if (previous) { | ||
1402 | 194 | identifier = gck_object_get_data (previous->data, CKA_ID, NULL, &n_identifier, NULL); | ||
1403 | 195 | if (identifier != NULL) | ||
1404 | 196 | gck_builder_add_data (&builder, CKA_ID, identifier, n_identifier); | ||
1405 | 197 | g_free (identifier); | ||
1406 | 198 | gck_list_unref_free (previous); | ||
1407 | 199 | } | ||
1408 | 200 | |||
1409 | 201 | text = calculate_label_for_key (keyid, description); | ||
1410 | 202 | label = g_strdup_printf (_("PGP Key: %s"), text); | ||
1411 | 203 | g_free (text); | ||
1412 | 204 | |||
1413 | 205 | /* Put in the remainder of the attributes */ | ||
1414 | 206 | gck_builder_add_all (&builder, attrs); | ||
1415 | 207 | gck_builder_add_string (&builder, CKA_VALUE, password); | ||
1416 | 208 | gck_builder_add_string (&builder, CKA_LABEL, label); | ||
1417 | 209 | gck_attributes_unref (attrs); | ||
1418 | 210 | g_free (label); | ||
1419 | 211 | |||
1420 | 212 | item = gck_session_create_object (session, gck_builder_end (&builder), NULL, &error); | ||
1421 | 213 | if (item == NULL) { | ||
1422 | 214 | g_warning ("couldn't store gpg agent password: %s", egg_error_message (error)); | ||
1423 | 215 | g_clear_error (&error); | ||
1424 | 216 | } | ||
1425 | 217 | |||
1426 | 218 | if (item != NULL) | ||
1427 | 219 | g_object_unref (item); | ||
1428 | 220 | } | ||
1429 | 221 | |||
1430 | 222 | static gboolean | ||
1431 | 223 | do_clear_password (GckSession *session, const gchar *keyid) | 88 | do_clear_password (GckSession *session, const gchar *keyid) |
1432 | 224 | { | 89 | { |
1503 | 225 | GckBuilder builder = GCK_BUILDER_INIT; | 90 | gkd_login_clear_password (session, "keyid", keyid, |
1504 | 226 | GckAttributes *attrs; | 91 | "source", "gnome-keyring:gpg-agent", NULL); |
1435 | 227 | GList *objects, *l; | ||
1436 | 228 | GError *error = NULL; | ||
1437 | 229 | |||
1438 | 230 | gck_builder_add_ulong (&builder, CKA_CLASS, CKO_SECRET_KEY); | ||
1439 | 231 | keyid_to_field_attribute (keyid, &builder); | ||
1440 | 232 | |||
1441 | 233 | attrs = gck_attributes_ref_sink (gck_builder_end (&builder)); | ||
1442 | 234 | objects = find_saved_items (session, attrs); | ||
1443 | 235 | gck_attributes_unref (attrs); | ||
1444 | 236 | |||
1445 | 237 | if (!objects) | ||
1446 | 238 | return TRUE; | ||
1447 | 239 | |||
1448 | 240 | /* Delete first item */ | ||
1449 | 241 | for (l = objects; l; l = g_list_next (l)) { | ||
1450 | 242 | if (gck_object_destroy (l->data, NULL, &error)) { | ||
1451 | 243 | break; /* Only delete the first item */ | ||
1452 | 244 | } else { | ||
1453 | 245 | g_warning ("couldn't clear gpg agent password: %s", | ||
1454 | 246 | egg_error_message (error)); | ||
1455 | 247 | g_clear_error (&error); | ||
1456 | 248 | } | ||
1457 | 249 | } | ||
1458 | 250 | |||
1459 | 251 | gck_list_unref_free (objects); | ||
1460 | 252 | return TRUE; | ||
1461 | 253 | } | ||
1462 | 254 | |||
1463 | 255 | static gchar* | ||
1464 | 256 | do_lookup_password (GckSession *session, const gchar *keyid) | ||
1465 | 257 | { | ||
1466 | 258 | GckBuilder builder = GCK_BUILDER_INIT; | ||
1467 | 259 | GckAttributes *attrs; | ||
1468 | 260 | GList *objects, *l; | ||
1469 | 261 | GError *error = NULL; | ||
1470 | 262 | gpointer data = NULL; | ||
1471 | 263 | gsize n_data; | ||
1472 | 264 | |||
1473 | 265 | if (keyid == NULL) | ||
1474 | 266 | return NULL; | ||
1475 | 267 | |||
1476 | 268 | gck_builder_add_ulong (&builder, CKA_CLASS, CKO_SECRET_KEY); | ||
1477 | 269 | keyid_to_field_attribute (keyid, &builder); | ||
1478 | 270 | |||
1479 | 271 | attrs = gck_attributes_ref_sink (gck_builder_end (&builder)); | ||
1480 | 272 | objects = find_saved_items (session, attrs); | ||
1481 | 273 | gck_attributes_unref (attrs); | ||
1482 | 274 | |||
1483 | 275 | if (!objects) | ||
1484 | 276 | return NULL; | ||
1485 | 277 | |||
1486 | 278 | /* Return first password */ | ||
1487 | 279 | for (l = objects; l; l = g_list_next (l)) { | ||
1488 | 280 | data = gck_object_get_data_full (l->data, CKA_VALUE, egg_secure_realloc, NULL, &n_data, &error); | ||
1489 | 281 | if (error) { | ||
1490 | 282 | if (!g_error_matches (error, GCK_ERROR, CKR_USER_NOT_LOGGED_IN)) | ||
1491 | 283 | g_warning ("couldn't lookup gpg agent password: %s", egg_error_message (error)); | ||
1492 | 284 | g_clear_error (&error); | ||
1493 | 285 | data = NULL; | ||
1494 | 286 | } else { | ||
1495 | 287 | break; | ||
1496 | 288 | } | ||
1497 | 289 | } | ||
1498 | 290 | |||
1499 | 291 | gck_list_unref_free (objects); | ||
1500 | 292 | |||
1501 | 293 | /* Data is null terminated */ | ||
1502 | 294 | return data; | ||
1505 | 295 | } | 92 | } |
1506 | 296 | 93 | ||
1507 | 297 | static void | 94 | static void |
1508 | @@ -330,11 +127,9 @@ | |||
1509 | 330 | const gchar *description, | 127 | const gchar *description, |
1510 | 331 | gboolean confirm) | 128 | gboolean confirm) |
1511 | 332 | { | 129 | { |
1512 | 333 | GckBuilder builder = GCK_BUILDER_INIT; | ||
1513 | 334 | GcrPrompt *prompt; | 130 | GcrPrompt *prompt; |
1514 | 335 | GError *error = NULL; | 131 | GError *error = NULL; |
1515 | 336 | gboolean auto_unlock; | 132 | gboolean auto_unlock; |
1516 | 337 | GList *objects; | ||
1517 | 338 | const gchar *choice; | 133 | const gchar *choice; |
1518 | 339 | 134 | ||
1519 | 340 | g_assert (GCK_IS_SESSION (session)); | 135 | g_assert (GCK_IS_SESSION (session)); |
1520 | @@ -360,23 +155,7 @@ | |||
1521 | 360 | gcr_prompt_set_choice_label (prompt, NULL); | 155 | gcr_prompt_set_choice_label (prompt, NULL); |
1522 | 361 | 156 | ||
1523 | 362 | } else { | 157 | } else { |
1541 | 363 | auto_unlock = FALSE; | 158 | auto_unlock = gkd_login_available (session); |
1525 | 364 | |||
1526 | 365 | gck_builder_add_ulong (&builder, CKA_CLASS, CKO_G_COLLECTION); | ||
1527 | 366 | gck_builder_add_string (&builder, CKA_ID, "login"); | ||
1528 | 367 | gck_builder_add_boolean (&builder, CKA_G_LOCKED, FALSE); | ||
1529 | 368 | |||
1530 | 369 | /* Check if the login keyring is usable */ | ||
1531 | 370 | objects = gck_session_find_objects (session, gck_builder_end (&builder), NULL, &error); | ||
1532 | 371 | |||
1533 | 372 | if (error) { | ||
1534 | 373 | g_warning ("gpg agent couldn't lookup for login keyring: %s", egg_error_message (error)); | ||
1535 | 374 | g_clear_error (&error); | ||
1536 | 375 | } else if (objects) { | ||
1537 | 376 | auto_unlock = TRUE; | ||
1538 | 377 | } | ||
1539 | 378 | |||
1540 | 379 | gck_list_unref_free (objects); | ||
1542 | 380 | 159 | ||
1543 | 381 | choice = NULL; | 160 | choice = NULL; |
1544 | 382 | if (auto_unlock) | 161 | if (auto_unlock) |
1545 | @@ -393,20 +172,21 @@ | |||
1546 | 393 | do_get_password (GckSession *session, const gchar *keyid, const gchar *errmsg, | 172 | do_get_password (GckSession *session, const gchar *keyid, const gchar *errmsg, |
1547 | 394 | const gchar *prompt_text, const gchar *description, gboolean confirm) | 173 | const gchar *prompt_text, const gchar *description, gboolean confirm) |
1548 | 395 | { | 174 | { |
1549 | 396 | GckBuilder builder = GCK_BUILDER_INIT; | ||
1550 | 397 | GSettings *settings; | 175 | GSettings *settings; |
1551 | 398 | GckAttributes *attrs; | ||
1552 | 399 | gchar *password = NULL; | 176 | gchar *password = NULL; |
1553 | 400 | GcrPrompt *prompt; | 177 | GcrPrompt *prompt; |
1554 | 401 | gboolean chosen; | 178 | gboolean chosen; |
1555 | 402 | GError *error = NULL; | 179 | GError *error = NULL; |
1556 | 403 | gint lifetime; | 180 | gint lifetime; |
1557 | 404 | gchar *method; | 181 | gchar *method; |
1558 | 182 | gchar *label; | ||
1559 | 183 | gchar *text; | ||
1560 | 405 | 184 | ||
1561 | 406 | g_assert (GCK_IS_SESSION (session)); | 185 | g_assert (GCK_IS_SESSION (session)); |
1562 | 407 | 186 | ||
1563 | 408 | /* Do we have the keyid? */ | 187 | /* Do we have the keyid? */ |
1565 | 409 | password = do_lookup_password (session, keyid); | 188 | password = gkd_login_lookup_password (session, "keyid", keyid, |
1566 | 189 | "source", "gnome-keyring:gpg-agent", NULL); | ||
1567 | 410 | if (password != NULL) | 190 | if (password != NULL) |
1568 | 411 | return password; | 191 | return password; |
1569 | 412 | 192 | ||
1570 | @@ -428,33 +208,26 @@ | |||
1571 | 428 | chosen = gcr_prompt_get_choice_chosen (prompt); | 208 | chosen = gcr_prompt_get_choice_chosen (prompt); |
1572 | 429 | 209 | ||
1573 | 430 | if (chosen) { | 210 | if (chosen) { |
1576 | 431 | g_settings_set_string (settings, "gpg-cache-method", GCR_UNLOCK_OPTION_ALWAYS); | 211 | method = g_strdup (GCR_UNLOCK_OPTION_ALWAYS); |
1577 | 432 | gck_builder_add_string (&builder, CKA_G_COLLECTION, "login"); | 212 | lifetime = -1; |
1578 | 433 | 213 | ||
1579 | 434 | } else { | 214 | } else { |
1580 | 435 | method = g_settings_get_string (settings, "gpg-cache-method"); | 215 | method = g_settings_get_string (settings, "gpg-cache-method"); |
1581 | 436 | lifetime = g_settings_get_int (settings, "gpg-cache-ttl"); | 216 | lifetime = g_settings_get_int (settings, "gpg-cache-ttl"); |
1593 | 437 | 217 | if (g_str_equal (method, GCR_UNLOCK_OPTION_ALWAYS)) { | |
1594 | 438 | if (g_strcmp0 (method, GCR_UNLOCK_OPTION_IDLE) == 0) { | 218 | g_free (method); |
1595 | 439 | gck_builder_add_boolean (&builder, CKA_GNOME_TRANSIENT, TRUE); | 219 | method = NULL; |
1585 | 440 | gck_builder_add_ulong (&builder, CKA_G_DESTRUCT_IDLE, lifetime); | ||
1586 | 441 | |||
1587 | 442 | } else if (g_strcmp0 (method, GCR_UNLOCK_OPTION_TIMEOUT) == 0) { | ||
1588 | 443 | gck_builder_add_boolean (&builder, CKA_GNOME_TRANSIENT, TRUE); | ||
1589 | 444 | gck_builder_add_ulong (&builder, CKA_G_DESTRUCT_AFTER, lifetime); | ||
1590 | 445 | |||
1591 | 446 | } else if (g_strcmp0 (method, GCR_UNLOCK_OPTION_SESSION)){ | ||
1592 | 447 | g_message ("Unsupported gpg-cache-method setting: %s", method); | ||
1596 | 448 | } | 220 | } |
1597 | 449 | |||
1598 | 450 | gck_builder_add_string (&builder, CKA_G_COLLECTION, "session"); | ||
1599 | 451 | g_free (method); | ||
1600 | 452 | } | 221 | } |
1601 | 453 | 222 | ||
1602 | 454 | /* Now actually save the password */ | 223 | /* Now actually save the password */ |
1606 | 455 | attrs = gck_attributes_ref_sink (gck_builder_end (&builder)); | 224 | text = calculate_label_for_key (keyid, description); |
1607 | 456 | do_save_password (session, keyid, description, password, attrs); | 225 | label = g_strdup_printf (_("PGP Key: %s"), text); |
1608 | 457 | gck_attributes_unref (attrs); | 226 | gkd_login_store_password (session, password, label, method, lifetime, |
1609 | 227 | "keyid", keyid, "source", "gnome-keyring:gpg-agent", NULL); | ||
1610 | 228 | g_free (label); | ||
1611 | 229 | g_free (method); | ||
1612 | 230 | g_free (text); | ||
1613 | 458 | } | 231 | } |
1614 | 459 | 232 | ||
1615 | 460 | g_clear_object (&prompt); | 233 | g_clear_object (&prompt); |
1616 | 461 | 234 | ||
1617 | === removed file 'daemon/gpg-agent/gkd-gpg-agent-standalone.c' | |||
1618 | --- daemon/gpg-agent/gkd-gpg-agent-standalone.c 2014-12-06 18:47:09 +0000 | |||
1619 | +++ daemon/gpg-agent/gkd-gpg-agent-standalone.c 1970-01-01 00:00:00 +0000 | |||
1620 | @@ -1,123 +0,0 @@ | |||
1621 | 1 | /* | ||
1622 | 2 | * gnome-keyring | ||
1623 | 3 | * | ||
1624 | 4 | * Copyright (C) 2010 Stefan Walter | ||
1625 | 5 | * | ||
1626 | 6 | * This program is free software; you can redistribute it and/or modify | ||
1627 | 7 | * it under the terms of the GNU Lesser General Public License as | ||
1628 | 8 | * published by the Free Software Foundation; either version 2.1 of | ||
1629 | 9 | * the License, or (at your option) any later version. | ||
1630 | 10 | * | ||
1631 | 11 | * This program is distributed in the hope that it will be useful, but | ||
1632 | 12 | * WITHOUT ANY WARRANTY; without even the implied warranty of | ||
1633 | 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | ||
1634 | 14 | * Lesser General Public License for more details. | ||
1635 | 15 | * | ||
1636 | 16 | * You should have received a copy of the GNU Lesser General Public | ||
1637 | 17 | * License along with this program; if not, see | ||
1638 | 18 | * <http://www.gnu.org/licenses/>. | ||
1639 | 19 | */ | ||
1640 | 20 | |||
1641 | 21 | #include "config.h" | ||
1642 | 22 | |||
1643 | 23 | #include "gkd-gpg-agent.h" | ||
1644 | 24 | #include "gkd-gpg-agent-private.h" | ||
1645 | 25 | |||
1646 | 26 | #include "egg/egg-error.h" | ||
1647 | 27 | #include "egg/egg-secure-memory.h" | ||
1648 | 28 | |||
1649 | 29 | #include <gck/gck.h> | ||
1650 | 30 | |||
1651 | 31 | #include <glib.h> | ||
1652 | 32 | #include <glib-object.h> | ||
1653 | 33 | |||
1654 | 34 | #include <pwd.h> | ||
1655 | 35 | #include <string.h> | ||
1656 | 36 | #include <unistd.h> | ||
1657 | 37 | |||
1658 | 38 | EGG_SECURE_DEFINE_GLIB_GLOBALS (); | ||
1659 | 39 | |||
1660 | 40 | static gboolean | ||
1661 | 41 | accept_client (GIOChannel *channel, GIOCondition cond, gpointer unused) | ||
1662 | 42 | { | ||
1663 | 43 | gkd_gpg_agent_accept (); | ||
1664 | 44 | return TRUE; | ||
1665 | 45 | } | ||
1666 | 46 | |||
1667 | 47 | static gboolean | ||
1668 | 48 | authenticate_slot (GckModule *module, GckSlot *slot, gchar *label, gchar **password, gpointer unused) | ||
1669 | 49 | { | ||
1670 | 50 | gchar *prompt = g_strdup_printf ("Enter token password (%s): ", label); | ||
1671 | 51 | char *result = getpass (prompt); | ||
1672 | 52 | g_free (prompt); | ||
1673 | 53 | *password = g_strdup (result); | ||
1674 | 54 | memset (result, 0, strlen (result)); | ||
1675 | 55 | return TRUE; | ||
1676 | 56 | } | ||
1677 | 57 | |||
1678 | 58 | static gboolean | ||
1679 | 59 | authenticate_object (GckModule *module, GckObject *object, gchar *label, gchar **password) | ||
1680 | 60 | { | ||
1681 | 61 | gchar *prompt = g_strdup_printf ("Enter object password (%s): ", label); | ||
1682 | 62 | char *result = getpass (prompt); | ||
1683 | 63 | g_free (prompt); | ||
1684 | 64 | *password = g_strdup (result); | ||
1685 | 65 | memset (result, 0, strlen (result)); | ||
1686 | 66 | return TRUE; | ||
1687 | 67 | } | ||
1688 | 68 | |||
1689 | 69 | int | ||
1690 | 70 | main(int argc, char *argv[]) | ||
1691 | 71 | { | ||
1692 | 72 | GckModule *module; | ||
1693 | 73 | GError *error = NULL; | ||
1694 | 74 | GIOChannel *channel; | ||
1695 | 75 | GMainLoop *loop; | ||
1696 | 76 | gboolean ret; | ||
1697 | 77 | int sock; | ||
1698 | 78 | |||
1699 | 79 | #if !GLIB_CHECK_VERSION(2,35,0) | ||
1700 | 80 | g_type_init (); | ||
1701 | 81 | #endif | ||
1702 | 82 | |||
1703 | 83 | if (argc <= 1) { | ||
1704 | 84 | g_message ("specify pkcs11 module on the command line"); | ||
1705 | 85 | return 1; | ||
1706 | 86 | } | ||
1707 | 87 | |||
1708 | 88 | module = gck_module_initialize (argv[1], NULL, &error); | ||
1709 | 89 | if (!module) { | ||
1710 | 90 | g_message ("couldn't load pkcs11 module: %s", egg_error_message (error)); | ||
1711 | 91 | g_clear_error (&error); | ||
1712 | 92 | return 1; | ||
1713 | 93 | } | ||
1714 | 94 | |||
1715 | 95 | g_signal_connect (module, "authenticate-slot", G_CALLBACK (authenticate_slot), NULL); | ||
1716 | 96 | g_signal_connect (module, "authenticate-object", G_CALLBACK (authenticate_object), NULL); | ||
1717 | 97 | |||
1718 | 98 | ret = gkd_gpg_agent_initialize_with_module (module); | ||
1719 | 99 | g_object_unref (module); | ||
1720 | 100 | |||
1721 | 101 | if (ret == FALSE) | ||
1722 | 102 | return 1; | ||
1723 | 103 | |||
1724 | 104 | sock = gkd_gpg_agent_startup ("/tmp"); | ||
1725 | 105 | if (sock == -1) | ||
1726 | 106 | return 1; | ||
1727 | 107 | |||
1728 | 108 | channel = g_io_channel_unix_new (sock); | ||
1729 | 109 | g_io_add_watch (channel, G_IO_IN | G_IO_HUP, accept_client, NULL); | ||
1730 | 110 | g_io_channel_unref (channel); | ||
1731 | 111 | |||
1732 | 112 | g_print ("GPG_AGENT_INFO=%s\n", g_getenv ("GPG_AGENT_INFO")); | ||
1733 | 113 | |||
1734 | 114 | /* Run a main loop */ | ||
1735 | 115 | loop = g_main_loop_new (NULL, FALSE); | ||
1736 | 116 | g_main_loop_run (loop); | ||
1737 | 117 | g_main_loop_unref (loop); | ||
1738 | 118 | |||
1739 | 119 | gkd_gpg_agent_shutdown (); | ||
1740 | 120 | gkd_gpg_agent_uninitialize (); | ||
1741 | 121 | |||
1742 | 122 | return 0; | ||
1743 | 123 | } | ||
1744 | 124 | 0 | ||
1745 | === modified file 'daemon/gpg-agent/gkd-gpg-agent.c' | |||
1746 | --- daemon/gpg-agent/gkd-gpg-agent.c 2014-12-06 18:47:09 +0000 | |||
1747 | +++ daemon/gpg-agent/gkd-gpg-agent.c 2015-02-27 19:55:06 +0000 | |||
1748 | @@ -207,6 +207,7 @@ | |||
1749 | 207 | } | 207 | } |
1750 | 208 | 208 | ||
1751 | 209 | g_io_channel_shutdown (call.channel, FALSE, NULL); | 209 | g_io_channel_shutdown (call.channel, FALSE, NULL); |
1752 | 210 | g_io_channel_unref (call.channel); | ||
1753 | 210 | g_object_unref (call.module); | 211 | g_object_unref (call.module); |
1754 | 211 | 212 | ||
1755 | 212 | close (call.sock); | 213 | close (call.sock); |
1756 | 213 | 214 | ||
1757 | === modified file 'daemon/login/Makefile.am' | |||
1758 | --- daemon/login/Makefile.am 2014-12-06 18:47:09 +0000 | |||
1759 | +++ daemon/login/Makefile.am 2015-02-27 19:55:06 +0000 | |||
1760 | @@ -10,6 +10,7 @@ | |||
1761 | 10 | $(NULL) | 10 | $(NULL) |
1762 | 11 | libgkd_login_la_CFLAGS = \ | 11 | libgkd_login_la_CFLAGS = \ |
1763 | 12 | $(GCK_CFLAGS) \ | 12 | $(GCK_CFLAGS) \ |
1764 | 13 | $(GCR_CFLAGS) \ | ||
1765 | 13 | $(GOBJECT_CFLAGS) | 14 | $(GOBJECT_CFLAGS) |
1766 | 14 | libgkd_login_la_LIBADD = \ | 15 | libgkd_login_la_LIBADD = \ |
1767 | 15 | $(GCK_LIBS) \ | 16 | $(GCK_LIBS) \ |
1768 | 16 | 17 | ||
1769 | === modified file 'daemon/login/gkd-login.c' | |||
1770 | --- daemon/login/gkd-login.c 2014-12-06 18:47:09 +0000 | |||
1771 | +++ daemon/login/gkd-login.c 2015-02-27 19:55:06 +0000 | |||
1772 | @@ -31,11 +31,14 @@ | |||
1773 | 31 | #include "pkcs11/wrap-layer/gkm-wrap-layer.h" | 31 | #include "pkcs11/wrap-layer/gkm-wrap-layer.h" |
1774 | 32 | 32 | ||
1775 | 33 | #include <gck/gck.h> | 33 | #include <gck/gck.h> |
1776 | 34 | #include <gcr/gcr-unlock-options.h> | ||
1777 | 34 | 35 | ||
1778 | 35 | #include <glib/gi18n.h> | 36 | #include <glib/gi18n.h> |
1779 | 36 | 37 | ||
1780 | 37 | #include <string.h> | 38 | #include <string.h> |
1781 | 38 | 39 | ||
1782 | 40 | EGG_SECURE_DECLARE (gkd_login); | ||
1783 | 41 | |||
1784 | 39 | static GList* | 42 | static GList* |
1785 | 40 | module_instances (void) | 43 | module_instances (void) |
1786 | 41 | { | 44 | { |
1787 | @@ -82,6 +85,10 @@ | |||
1788 | 82 | GckSlot *slot = NULL; | 85 | GckSlot *slot = NULL; |
1789 | 83 | GError *error = NULL; | 86 | GError *error = NULL; |
1790 | 84 | GckSession *session; | 87 | GckSession *session; |
1791 | 88 | GList *owned = NULL; | ||
1792 | 89 | |||
1793 | 90 | if (modules == NULL) | ||
1794 | 91 | modules = owned = module_instances (); | ||
1795 | 85 | 92 | ||
1796 | 86 | slot = gck_modules_token_for_uri (modules, "pkcs11:token=Secret%20Store", &error); | 93 | slot = gck_modules_token_for_uri (modules, "pkcs11:token=Secret%20Store", &error); |
1797 | 87 | if (!slot) { | 94 | if (!slot) { |
1798 | @@ -96,6 +103,7 @@ | |||
1799 | 96 | } | 103 | } |
1800 | 97 | 104 | ||
1801 | 98 | g_object_unref (slot); | 105 | g_object_unref (slot); |
1802 | 106 | g_list_free_full (owned, g_object_unref); | ||
1803 | 99 | 107 | ||
1804 | 100 | return session; | 108 | return session; |
1805 | 101 | } | 109 | } |
1806 | @@ -415,3 +423,295 @@ | |||
1807 | 415 | gck_list_unref_free (modules); | 423 | gck_list_unref_free (modules); |
1808 | 416 | return result; | 424 | return result; |
1809 | 417 | } | 425 | } |
1810 | 426 | |||
1811 | 427 | gboolean | ||
1812 | 428 | gkd_login_available (GckSession *session) | ||
1813 | 429 | { | ||
1814 | 430 | GckBuilder builder = GCK_BUILDER_INIT; | ||
1815 | 431 | gboolean available = FALSE; | ||
1816 | 432 | GError *error = NULL; | ||
1817 | 433 | GList *objects; | ||
1818 | 434 | |||
1819 | 435 | if (!session) | ||
1820 | 436 | session = lookup_login_session (NULL); | ||
1821 | 437 | else | ||
1822 | 438 | g_object_ref (session); | ||
1823 | 439 | |||
1824 | 440 | if (session) { | ||
1825 | 441 | gck_builder_add_ulong (&builder, CKA_CLASS, CKO_G_COLLECTION); | ||
1826 | 442 | gck_builder_add_string (&builder, CKA_ID, "login"); | ||
1827 | 443 | gck_builder_add_boolean (&builder, CKA_G_LOCKED, FALSE); | ||
1828 | 444 | |||
1829 | 445 | /* Check if the login keyring is usable */ | ||
1830 | 446 | objects = gck_session_find_objects (session, gck_builder_end (&builder), NULL, &error); | ||
1831 | 447 | if (error) { | ||
1832 | 448 | g_warning ("couldn't lookup login keyring: %s", error->message); | ||
1833 | 449 | g_clear_error (&error); | ||
1834 | 450 | } else if (objects) { | ||
1835 | 451 | available = TRUE; | ||
1836 | 452 | } | ||
1837 | 453 | g_list_free_full (objects, g_object_unref); | ||
1838 | 454 | } | ||
1839 | 455 | |||
1840 | 456 | g_object_unref (session); | ||
1841 | 457 | return available; | ||
1842 | 458 | } | ||
1843 | 459 | |||
1844 | 460 | static GList * | ||
1845 | 461 | find_saved_items (GckSession *session, | ||
1846 | 462 | GckAttributes *attrs) | ||
1847 | 463 | { | ||
1848 | 464 | GckBuilder builder = GCK_BUILDER_INIT; | ||
1849 | 465 | GError *error = NULL; | ||
1850 | 466 | const GckAttribute *attr; | ||
1851 | 467 | GckObject *search; | ||
1852 | 468 | GList *results; | ||
1853 | 469 | gpointer data; | ||
1854 | 470 | gsize n_data; | ||
1855 | 471 | |||
1856 | 472 | gck_builder_add_ulong (&builder, CKA_CLASS, CKO_G_SEARCH); | ||
1857 | 473 | gck_builder_add_boolean (&builder, CKA_TOKEN, FALSE); | ||
1858 | 474 | |||
1859 | 475 | attr = gck_attributes_find (attrs, CKA_G_COLLECTION); | ||
1860 | 476 | if (attr != NULL) | ||
1861 | 477 | gck_builder_add_attribute (&builder, attr); | ||
1862 | 478 | |||
1863 | 479 | attr = gck_attributes_find (attrs, CKA_G_FIELDS); | ||
1864 | 480 | g_return_val_if_fail (attr != NULL, NULL); | ||
1865 | 481 | gck_builder_add_attribute (&builder, attr); | ||
1866 | 482 | |||
1867 | 483 | search = gck_session_create_object (session, gck_builder_end (&builder), NULL, &error); | ||
1868 | 484 | if (search == NULL) { | ||
1869 | 485 | g_warning ("couldn't perform search for gpg agent stored passphrases: %s", | ||
1870 | 486 | egg_error_message (error)); | ||
1871 | 487 | g_clear_error (&error); | ||
1872 | 488 | return NULL; | ||
1873 | 489 | } | ||
1874 | 490 | |||
1875 | 491 | data = gck_object_get_data (search, CKA_G_MATCHED, NULL, &n_data, &error); | ||
1876 | 492 | gck_object_destroy (search, NULL, NULL); | ||
1877 | 493 | g_object_unref (search); | ||
1878 | 494 | |||
1879 | 495 | if (data == NULL) { | ||
1880 | 496 | g_warning ("couldn't retrieve list of gpg agent stored passphrases: %s", | ||
1881 | 497 | egg_error_message (error)); | ||
1882 | 498 | g_clear_error (&error); | ||
1883 | 499 | return NULL; | ||
1884 | 500 | } | ||
1885 | 501 | |||
1886 | 502 | results = gck_objects_from_handle_array (session, data, n_data / sizeof (CK_ULONG)); | ||
1887 | 503 | |||
1888 | 504 | g_free (data); | ||
1889 | 505 | return results; | ||
1890 | 506 | } | ||
1891 | 507 | |||
1892 | 508 | static gboolean | ||
1893 | 509 | fields_to_attribute (GckBuilder *builder, | ||
1894 | 510 | const gchar *field, | ||
1895 | 511 | va_list va) | ||
1896 | 512 | { | ||
1897 | 513 | GString *fields = g_string_sized_new (128); | ||
1898 | 514 | const gchar *last = NULL; | ||
1899 | 515 | const gchar *value; | ||
1900 | 516 | |||
1901 | 517 | while (field) { | ||
1902 | 518 | if (g_strcmp0 (last, field) >= 0) { | ||
1903 | 519 | g_critical ("lookup fields must be sorted '%s' >= '%s'", last, field); | ||
1904 | 520 | return FALSE; | ||
1905 | 521 | } | ||
1906 | 522 | |||
1907 | 523 | last = field; | ||
1908 | 524 | value = va_arg (va, const gchar *); | ||
1909 | 525 | g_return_val_if_fail (value != NULL, FALSE); | ||
1910 | 526 | |||
1911 | 527 | g_string_append (fields, field); | ||
1912 | 528 | g_string_append_c (fields, '\0'); | ||
1913 | 529 | g_string_append (fields, value); | ||
1914 | 530 | g_string_append_c (fields, '\0'); | ||
1915 | 531 | |||
1916 | 532 | field = va_arg (va, const gchar *); | ||
1917 | 533 | } | ||
1918 | 534 | |||
1919 | 535 | gck_builder_add_data (builder, CKA_G_FIELDS, (const guchar *)fields->str, fields->len); | ||
1920 | 536 | g_string_free (fields, TRUE); | ||
1921 | 537 | return TRUE; | ||
1922 | 538 | } | ||
1923 | 539 | |||
1924 | 540 | gchar * | ||
1925 | 541 | gkd_login_lookup_password (GckSession *session, | ||
1926 | 542 | const gchar *field, | ||
1927 | 543 | ...) | ||
1928 | 544 | { | ||
1929 | 545 | GckBuilder builder = GCK_BUILDER_INIT; | ||
1930 | 546 | GckAttributes *attrs; | ||
1931 | 547 | GList *objects, *l; | ||
1932 | 548 | GError *error = NULL; | ||
1933 | 549 | gpointer data = NULL; | ||
1934 | 550 | gsize length; | ||
1935 | 551 | va_list va; | ||
1936 | 552 | |||
1937 | 553 | if (!session) | ||
1938 | 554 | session = lookup_login_session (NULL); | ||
1939 | 555 | else | ||
1940 | 556 | session = g_object_ref (session); | ||
1941 | 557 | if (!session) | ||
1942 | 558 | return NULL; | ||
1943 | 559 | |||
1944 | 560 | gck_builder_add_ulong (&builder, CKA_CLASS, CKO_SECRET_KEY); | ||
1945 | 561 | |||
1946 | 562 | va_start (va, field); | ||
1947 | 563 | if (!fields_to_attribute (&builder, field, va)) | ||
1948 | 564 | g_return_val_if_reached (FALSE); | ||
1949 | 565 | va_end (va); | ||
1950 | 566 | |||
1951 | 567 | attrs = gck_attributes_ref_sink (gck_builder_end (&builder)); | ||
1952 | 568 | objects = find_saved_items (session, attrs); | ||
1953 | 569 | gck_attributes_unref (attrs); | ||
1954 | 570 | |||
1955 | 571 | /* Return first password */ | ||
1956 | 572 | data = NULL; | ||
1957 | 573 | for (l = objects; l; l = g_list_next (l)) { | ||
1958 | 574 | data = gck_object_get_data_full (l->data, CKA_VALUE, egg_secure_realloc, NULL, &length, &error); | ||
1959 | 575 | if (error) { | ||
1960 | 576 | if (!g_error_matches (error, GCK_ERROR, CKR_USER_NOT_LOGGED_IN)) | ||
1961 | 577 | g_warning ("couldn't lookup gpg agent password: %s", egg_error_message (error)); | ||
1962 | 578 | g_clear_error (&error); | ||
1963 | 579 | data = NULL; | ||
1964 | 580 | } else { | ||
1965 | 581 | break; | ||
1966 | 582 | } | ||
1967 | 583 | } | ||
1968 | 584 | |||
1969 | 585 | g_list_free_full (objects, g_object_unref); | ||
1970 | 586 | g_object_unref (session); | ||
1971 | 587 | |||
1972 | 588 | /* Data is null terminated */ | ||
1973 | 589 | return data; | ||
1974 | 590 | } | ||
1975 | 591 | |||
1976 | 592 | void | ||
1977 | 593 | gkd_login_clear_password (GckSession *session, | ||
1978 | 594 | const gchar *field, | ||
1979 | 595 | ...) | ||
1980 | 596 | { | ||
1981 | 597 | GckBuilder builder = GCK_BUILDER_INIT; | ||
1982 | 598 | GckAttributes *attrs; | ||
1983 | 599 | GList *objects, *l; | ||
1984 | 600 | GError *error = NULL; | ||
1985 | 601 | va_list va; | ||
1986 | 602 | |||
1987 | 603 | if (!session) | ||
1988 | 604 | session = lookup_login_session (NULL); | ||
1989 | 605 | else | ||
1990 | 606 | session = g_object_ref (session); | ||
1991 | 607 | if (!session) | ||
1992 | 608 | return; | ||
1993 | 609 | |||
1994 | 610 | gck_builder_add_ulong (&builder, CKA_CLASS, CKO_SECRET_KEY); | ||
1995 | 611 | |||
1996 | 612 | va_start (va, field); | ||
1997 | 613 | if (!fields_to_attribute (&builder, field, va)) | ||
1998 | 614 | g_return_if_reached (); | ||
1999 | 615 | va_end (va); | ||
2000 | 616 | |||
2001 | 617 | attrs = gck_attributes_ref_sink (gck_builder_end (&builder)); | ||
2002 | 618 | objects = find_saved_items (session, attrs); | ||
2003 | 619 | gck_attributes_unref (attrs); | ||
2004 | 620 | |||
2005 | 621 | /* Delete first item */ | ||
2006 | 622 | for (l = objects; l; l = g_list_next (l)) { | ||
2007 | 623 | if (gck_object_destroy (l->data, NULL, &error)) | ||
2008 | 624 | break; /* Only delete the first item */ | ||
2009 | 625 | g_warning ("couldn't clear assword: %s", error->message); | ||
2010 | 626 | g_clear_error (&error); | ||
2011 | 627 | } | ||
2012 | 628 | |||
2013 | 629 | g_list_free_full (objects, g_object_unref); | ||
2014 | 630 | g_object_unref (session); | ||
2015 | 631 | } | ||
2016 | 632 | |||
2017 | 633 | gboolean | ||
2018 | 634 | gkd_login_store_password (GckSession *session, | ||
2019 | 635 | const gchar *password, | ||
2020 | 636 | const gchar *label, | ||
2021 | 637 | const gchar *method, | ||
2022 | 638 | gint lifetime, | ||
2023 | 639 | const gchar *field, | ||
2024 | 640 | ...) | ||
2025 | 641 | { | ||
2026 | 642 | GckBuilder builder = GCK_BUILDER_INIT; | ||
2027 | 643 | GckAttributes *attrs; | ||
2028 | 644 | guchar *identifier; | ||
2029 | 645 | GList *previous; | ||
2030 | 646 | gboolean ret = FALSE; | ||
2031 | 647 | GckObject *item; | ||
2032 | 648 | GError *error = NULL; | ||
2033 | 649 | gsize length; | ||
2034 | 650 | va_list va; | ||
2035 | 651 | |||
2036 | 652 | if (!method) | ||
2037 | 653 | method = GCR_UNLOCK_OPTION_SESSION; | ||
2038 | 654 | |||
2039 | 655 | if (!session) | ||
2040 | 656 | session = lookup_login_session (NULL); | ||
2041 | 657 | else | ||
2042 | 658 | session = g_object_ref (session); | ||
2043 | 659 | if (!session) | ||
2044 | 660 | return FALSE; | ||
2045 | 661 | |||
2046 | 662 | va_start (va, field); | ||
2047 | 663 | if (!fields_to_attribute (&builder, field, va)) | ||
2048 | 664 | g_return_val_if_reached (FALSE); | ||
2049 | 665 | va_end (va); | ||
2050 | 666 | |||
2051 | 667 | if (g_str_equal (method, GCR_UNLOCK_OPTION_ALWAYS)) { | ||
2052 | 668 | gck_builder_add_string (&builder, CKA_G_COLLECTION, "login"); | ||
2053 | 669 | |||
2054 | 670 | } else { | ||
2055 | 671 | if (g_str_equal (method, GCR_UNLOCK_OPTION_IDLE)) { | ||
2056 | 672 | gck_builder_add_boolean (&builder, CKA_GNOME_TRANSIENT, TRUE); | ||
2057 | 673 | gck_builder_add_ulong (&builder, CKA_G_DESTRUCT_IDLE, lifetime); | ||
2058 | 674 | |||
2059 | 675 | } else if (g_str_equal (method, GCR_UNLOCK_OPTION_TIMEOUT)) { | ||
2060 | 676 | gck_builder_add_boolean (&builder, CKA_GNOME_TRANSIENT, TRUE); | ||
2061 | 677 | gck_builder_add_ulong (&builder, CKA_G_DESTRUCT_AFTER, lifetime); | ||
2062 | 678 | |||
2063 | 679 | } else if (!g_str_equal (method, GCR_UNLOCK_OPTION_SESSION)) { | ||
2064 | 680 | g_message ("Unsupported gpg-cache-method setting: %s", method); | ||
2065 | 681 | } | ||
2066 | 682 | gck_builder_add_string (&builder, CKA_G_COLLECTION, "session"); | ||
2067 | 683 | } | ||
2068 | 684 | |||
2069 | 685 | gck_builder_add_boolean (&builder, CKA_TOKEN, TRUE); | ||
2070 | 686 | gck_builder_add_ulong (&builder, CKA_CLASS, CKO_SECRET_KEY); | ||
2071 | 687 | |||
2072 | 688 | /* Find a previously stored object like this, and replace if so */ | ||
2073 | 689 | attrs = gck_attributes_ref_sink (gck_builder_end (&builder)); | ||
2074 | 690 | previous = find_saved_items (session, attrs); | ||
2075 | 691 | if (previous) { | ||
2076 | 692 | identifier = gck_object_get_data (previous->data, CKA_ID, NULL, &length, NULL); | ||
2077 | 693 | if (identifier != NULL) | ||
2078 | 694 | gck_builder_add_data (&builder, CKA_ID, identifier, length); | ||
2079 | 695 | g_free (identifier); | ||
2080 | 696 | g_list_free_full (previous, g_object_unref); | ||
2081 | 697 | } | ||
2082 | 698 | |||
2083 | 699 | /* Put in the remainder of the attributes */ | ||
2084 | 700 | gck_builder_add_all (&builder, attrs); | ||
2085 | 701 | gck_builder_add_string (&builder, CKA_VALUE, password); | ||
2086 | 702 | gck_builder_add_string (&builder, CKA_LABEL, label); | ||
2087 | 703 | gck_attributes_unref (attrs); | ||
2088 | 704 | |||
2089 | 705 | item = gck_session_create_object (session, gck_builder_end (&builder), NULL, &error); | ||
2090 | 706 | if (item == NULL) { | ||
2091 | 707 | g_warning ("couldn't store gpg agent password: %s", egg_error_message (error)); | ||
2092 | 708 | g_clear_error (&error); | ||
2093 | 709 | ret = FALSE; | ||
2094 | 710 | } else { | ||
2095 | 711 | g_object_unref (item); | ||
2096 | 712 | ret = TRUE; | ||
2097 | 713 | } | ||
2098 | 714 | |||
2099 | 715 | g_object_unref (session); | ||
2100 | 716 | return ret; | ||
2101 | 717 | } | ||
2102 | 418 | 718 | ||
2103 | === modified file 'daemon/login/gkd-login.h' | |||
2104 | --- daemon/login/gkd-login.h 2014-04-06 23:26:34 +0000 | |||
2105 | +++ daemon/login/gkd-login.h 2015-02-27 19:55:06 +0000 | |||
2106 | @@ -23,9 +23,29 @@ | |||
2107 | 23 | 23 | ||
2108 | 24 | #include <glib.h> | 24 | #include <glib.h> |
2109 | 25 | 25 | ||
2110 | 26 | typedef struct _GckSession GckSession; | ||
2111 | 27 | |||
2112 | 26 | gboolean gkd_login_unlock (const gchar *master); | 28 | gboolean gkd_login_unlock (const gchar *master); |
2113 | 27 | 29 | ||
2114 | 28 | gboolean gkd_login_change_lock (const gchar *original, | 30 | gboolean gkd_login_change_lock (const gchar *original, |
2115 | 29 | const gchar *master); | 31 | const gchar *master); |
2116 | 30 | 32 | ||
2117 | 33 | gboolean gkd_login_available (GckSession *session); | ||
2118 | 34 | |||
2119 | 35 | gchar * gkd_login_lookup_password (GckSession *session, | ||
2120 | 36 | const gchar *field, | ||
2121 | 37 | ...) G_GNUC_NULL_TERMINATED; | ||
2122 | 38 | |||
2123 | 39 | void gkd_login_clear_password (GckSession *session, | ||
2124 | 40 | const gchar *field, | ||
2125 | 41 | ...) G_GNUC_NULL_TERMINATED; | ||
2126 | 42 | |||
2127 | 43 | gboolean gkd_login_store_password (GckSession *session, | ||
2128 | 44 | const gchar *password, | ||
2129 | 45 | const gchar *label, | ||
2130 | 46 | const gchar *method, | ||
2131 | 47 | gint lifetime, | ||
2132 | 48 | const gchar *field, | ||
2133 | 49 | ...) G_GNUC_NULL_TERMINATED; | ||
2134 | 50 | |||
2135 | 31 | #endif /* __GKD_LOGIN_H__ */ | 51 | #endif /* __GKD_LOGIN_H__ */ |
2136 | 32 | 52 | ||
2137 | === modified file 'daemon/ssh-agent/gkd-ssh-agent-ops.c' | |||
2138 | --- daemon/ssh-agent/gkd-ssh-agent-ops.c 2012-05-16 17:39:27 +0000 | |||
2139 | +++ daemon/ssh-agent/gkd-ssh-agent-ops.c 2015-02-27 19:55:06 +0000 | |||
2140 | @@ -139,6 +139,7 @@ | |||
2141 | 139 | en = gck_modules_enumerate_objects (modules, search, GCK_SESSION_AUTHENTICATE | GCK_SESSION_READ_WRITE); | 139 | en = gck_modules_enumerate_objects (modules, search, GCK_SESSION_AUTHENTICATE | GCK_SESSION_READ_WRITE); |
2142 | 140 | 140 | ||
2143 | 141 | for (;;) { | 141 | for (;;) { |
2144 | 142 | gboolean done; | ||
2145 | 142 | object = gck_enumerator_next (en, NULL, &error); | 143 | object = gck_enumerator_next (en, NULL, &error); |
2146 | 143 | if (!object) { | 144 | if (!object) { |
2147 | 144 | if (error) { | 145 | if (error) { |
2148 | @@ -148,7 +149,9 @@ | |||
2149 | 148 | break; | 149 | break; |
2150 | 149 | } | 150 | } |
2151 | 150 | 151 | ||
2153 | 151 | if (!(func) (object, user_data)) | 152 | done = !(func) (object, user_data); |
2154 | 153 | g_object_unref (object); | ||
2155 | 154 | if (done) | ||
2156 | 152 | break; | 155 | break; |
2157 | 153 | } | 156 | } |
2158 | 154 | 157 | ||
2159 | @@ -435,6 +438,7 @@ | |||
2160 | 435 | g_free (label); | 438 | g_free (label); |
2161 | 436 | return; | 439 | return; |
2162 | 437 | } | 440 | } |
2163 | 441 | g_free (label); | ||
2164 | 438 | } | 442 | } |
2165 | 439 | 443 | ||
2166 | 440 | /* Lock token objects, remove session objects */ | 444 | /* Lock token objects, remove session objects */ |
2167 | @@ -773,9 +777,10 @@ | |||
2168 | 773 | g_return_val_if_fail (en, FALSE); | 777 | g_return_val_if_fail (en, FALSE); |
2169 | 774 | 778 | ||
2170 | 775 | all_attrs = NULL; | 779 | all_attrs = NULL; |
2174 | 776 | do { | 780 | while ((obj = gck_enumerator_next (en, NULL, &error))) { |
2175 | 777 | obj = gck_enumerator_next (en, NULL, &error); | 781 | load_identity_v2_attributes (obj, &all_attrs); |
2176 | 778 | } while (obj && load_identity_v2_attributes (obj, &all_attrs)); | 782 | g_object_unref (obj); |
2177 | 783 | } | ||
2178 | 779 | 784 | ||
2179 | 780 | g_object_unref (en); | 785 | g_object_unref (en); |
2180 | 781 | 786 | ||
2181 | @@ -839,10 +844,10 @@ | |||
2182 | 839 | GCK_SESSION_AUTHENTICATE | GCK_SESSION_READ_WRITE); | 844 | GCK_SESSION_AUTHENTICATE | GCK_SESSION_READ_WRITE); |
2183 | 840 | 845 | ||
2184 | 841 | all_attrs = NULL; | 846 | all_attrs = NULL; |
2189 | 842 | do { | 847 | while ((obj = gck_enumerator_next (en, NULL, &error))) { |
2190 | 843 | obj = gck_enumerator_next (en, NULL, &error); | 848 | load_identity_v1_attributes (obj, &all_attrs); |
2191 | 844 | } while (obj && load_identity_v1_attributes (obj, &all_attrs)); | 849 | g_object_unref (obj); |
2192 | 845 | 850 | } | |
2193 | 846 | g_object_unref (en); | 851 | g_object_unref (en); |
2194 | 847 | 852 | ||
2195 | 848 | if (error) { | 853 | if (error) { |
2196 | 849 | 854 | ||
2197 | === modified file 'daemon/test-startup.c' | |||
2198 | --- daemon/test-startup.c 2014-04-06 23:26:34 +0000 | |||
2199 | +++ daemon/test-startup.c 2015-02-27 19:55:06 +0000 | |||
2200 | @@ -232,13 +232,13 @@ | |||
2201 | 232 | output = gkd_test_launch_daemon (test->directory, argv, &pid, | 232 | output = gkd_test_launch_daemon (test->directory, argv, &pid, |
2202 | 233 | "XDG_RUNTIME_DIR", "/tmp/keyring-test-two", | 233 | "XDG_RUNTIME_DIR", "/tmp/keyring-test-two", |
2203 | 234 | NULL); | 234 | NULL); |
2205 | 235 | g_free (output); | 235 | g_strfreev (output); |
2206 | 236 | 236 | ||
2207 | 237 | /* Replace with the second daemon */ | 237 | /* Replace with the second daemon */ |
2208 | 238 | output = gkd_test_launch_daemon (test->directory, replace, &test->pid, | 238 | output = gkd_test_launch_daemon (test->directory, replace, &test->pid, |
2209 | 239 | "XDG_RUNTIME_DIR", "/tmp/keyring-test-two", | 239 | "XDG_RUNTIME_DIR", "/tmp/keyring-test-two", |
2210 | 240 | NULL); | 240 | NULL); |
2212 | 241 | g_free (output); | 241 | g_strfreev (output); |
2213 | 242 | 242 | ||
2214 | 243 | /* The first daemon should have exited cleanly here */ | 243 | /* The first daemon should have exited cleanly here */ |
2215 | 244 | g_assert_cmpint (waitpid (pid, &status, 0), ==, pid); | 244 | g_assert_cmpint (waitpid (pid, &status, 0), ==, pid); |
2216 | 245 | 245 | ||
2217 | === modified file 'debian/changelog' | |||
2218 | --- debian/changelog 2014-12-29 10:12:42 +0000 | |||
2219 | +++ debian/changelog 2015-02-27 19:55:06 +0000 | |||
2220 | @@ -1,3 +1,9 @@ | |||
2221 | 1 | gnome-keyring (3.15.90-0ubuntu1) vivid; urgency=medium | ||
2222 | 2 | |||
2223 | 3 | * New upstream bugfix release. | ||
2224 | 4 | |||
2225 | 5 | -- Jackson Doak <noskcaj@ubuntu.com> Sat, 28 Feb 2015 06:42:02 +1100 | ||
2226 | 6 | |||
2227 | 1 | gnome-keyring (3.14.0-1ubuntu2) vivid; urgency=medium | 7 | gnome-keyring (3.14.0-1ubuntu2) vivid; urgency=medium |
2228 | 2 | 8 | ||
2229 | 3 | * Fix the gpg/ssh agent check syntax. Thanks to Sergey Romanov (LP: | 9 | * Fix the gpg/ssh agent check syntax. Thanks to Sergey Romanov (LP: |
2230 | 4 | 10 | ||
2231 | === modified file 'egg/egg-asn1x.c' | |||
2232 | --- egg/egg-asn1x.c 2014-12-06 18:47:09 +0000 | |||
2233 | +++ egg/egg-asn1x.c 2015-02-27 19:55:06 +0000 | |||
2234 | @@ -2765,7 +2765,7 @@ | |||
2235 | 2765 | 2765 | ||
2236 | 2766 | /* Encode zero characters */ | 2766 | /* Encode zero characters */ |
2237 | 2767 | anode_clr_value (node); | 2767 | anode_clr_value (node); |
2239 | 2768 | anode_set_value (node, g_bytes_new_static ("", 0)); | 2768 | anode_take_value (node, g_bytes_new_static ("", 0)); |
2240 | 2769 | } | 2769 | } |
2241 | 2770 | 2770 | ||
2242 | 2771 | GQuark | 2771 | GQuark |
2243 | @@ -2828,7 +2828,7 @@ | |||
2244 | 2828 | anode_write_integer_ulong (val, data, &n_data); | 2828 | anode_write_integer_ulong (val, data, &n_data); |
2245 | 2829 | 2829 | ||
2246 | 2830 | anode_clr_value (node); | 2830 | anode_clr_value (node); |
2248 | 2831 | anode_set_value (node, g_bytes_new_take (data, n_data)); | 2831 | anode_take_value (node, g_bytes_new_take (data, n_data)); |
2249 | 2832 | } | 2832 | } |
2250 | 2833 | 2833 | ||
2251 | 2834 | gboolean | 2834 | gboolean |
2252 | @@ -2979,7 +2979,7 @@ | |||
2253 | 2979 | } | 2979 | } |
2254 | 2980 | 2980 | ||
2255 | 2981 | anode_clr_value (node); | 2981 | anode_clr_value (node); |
2257 | 2982 | anode_set_value (node, value); | 2982 | anode_take_value (node, value); |
2258 | 2983 | 2983 | ||
2259 | 2984 | an = node->data; | 2984 | an = node->data; |
2260 | 2985 | an->guarantee_unsigned = 0; | 2985 | an->guarantee_unsigned = 0; |
2261 | @@ -3003,7 +3003,7 @@ | |||
2262 | 3003 | g_return_if_fail (value != NULL); | 3003 | g_return_if_fail (value != NULL); |
2263 | 3004 | g_return_if_fail (anode_def_type (node) == EGG_ASN1X_INTEGER); | 3004 | g_return_if_fail (anode_def_type (node) == EGG_ASN1X_INTEGER); |
2264 | 3005 | 3005 | ||
2266 | 3006 | anode_set_value (node, value); | 3006 | anode_take_value (node, value); |
2267 | 3007 | an = node->data; | 3007 | an = node->data; |
2268 | 3008 | an->guarantee_unsigned = 1; | 3008 | an->guarantee_unsigned = 1; |
2269 | 3009 | } | 3009 | } |
2270 | @@ -3151,6 +3151,7 @@ | |||
2271 | 3151 | 3151 | ||
2272 | 3152 | /* A failure, set the message manually so it doesn't get a prefix */ | 3152 | /* A failure, set the message manually so it doesn't get a prefix */ |
2273 | 3153 | } else { | 3153 | } else { |
2274 | 3154 | atlv_free (tlv); | ||
2275 | 3154 | an = node->data; | 3155 | an = node->data; |
2276 | 3155 | g_free (an->failure); | 3156 | g_free (an->failure); |
2277 | 3156 | an->failure = g_strdup (msg); | 3157 | an->failure = g_strdup (msg); |
2278 | @@ -3282,8 +3283,8 @@ | |||
2279 | 3282 | type == EGG_ASN1X_UTF8_STRING || | 3283 | type == EGG_ASN1X_UTF8_STRING || |
2280 | 3283 | type == EGG_ASN1X_VISIBLE_STRING); | 3284 | type == EGG_ASN1X_VISIBLE_STRING); |
2281 | 3284 | 3285 | ||
2284 | 3285 | anode_set_value (node, g_bytes_new_with_free_func (data, n_data, | 3286 | anode_take_value (node, g_bytes_new_with_free_func (data, n_data, |
2285 | 3286 | destroy, data)); | 3287 | destroy, data)); |
2286 | 3287 | } | 3288 | } |
2287 | 3288 | 3289 | ||
2288 | 3289 | void | 3290 | void |
2289 | @@ -3307,7 +3308,7 @@ | |||
2290 | 3307 | type == EGG_ASN1X_UTF8_STRING || | 3308 | type == EGG_ASN1X_UTF8_STRING || |
2291 | 3308 | type == EGG_ASN1X_VISIBLE_STRING); | 3309 | type == EGG_ASN1X_VISIBLE_STRING); |
2292 | 3309 | 3310 | ||
2294 | 3310 | anode_set_value (node, g_bytes_ref (bytes)); | 3311 | anode_set_value (node, bytes); |
2295 | 3311 | } | 3312 | } |
2296 | 3312 | 3313 | ||
2297 | 3313 | GBytes * | 3314 | GBytes * |
2298 | 3314 | 3315 | ||
2299 | === modified file 'egg/egg-cleanup.c' | |||
2300 | --- egg/egg-cleanup.c 2014-04-06 23:26:34 +0000 | |||
2301 | +++ egg/egg-cleanup.c 2015-02-27 19:55:06 +0000 | |||
2302 | @@ -52,6 +52,7 @@ | |||
2303 | 52 | cleanup = (EggCleanup*)l->data; | 52 | cleanup = (EggCleanup*)l->data; |
2304 | 53 | if (cleanup->notify == notify && cleanup->user_data == user_data) { | 53 | if (cleanup->notify == notify && cleanup->user_data == user_data) { |
2305 | 54 | registered_cleanups = g_slist_remove (registered_cleanups, cleanup); | 54 | registered_cleanups = g_slist_remove (registered_cleanups, cleanup); |
2306 | 55 | g_free (cleanup); | ||
2307 | 55 | break; | 56 | break; |
2308 | 56 | } | 57 | } |
2309 | 57 | } | 58 | } |
2310 | 58 | 59 | ||
2311 | === modified file 'egg/egg-hkdf.c' | |||
2312 | --- egg/egg-hkdf.c 2014-04-06 23:26:34 +0000 | |||
2313 | +++ egg/egg-hkdf.c 2015-02-27 19:55:06 +0000 | |||
2314 | @@ -102,6 +102,7 @@ | |||
2315 | 102 | break; | 102 | break; |
2316 | 103 | } | 103 | } |
2317 | 104 | 104 | ||
2318 | 105 | gcry_md_close (md2); | ||
2319 | 105 | g_free (alloc); | 106 | g_free (alloc); |
2320 | 106 | gcry_free (buffer); | 107 | gcry_free (buffer); |
2321 | 107 | return TRUE; | 108 | return TRUE; |
2322 | 108 | 109 | ||
2323 | === modified file 'egg/test-asn1.c' | |||
2324 | --- egg/test-asn1.c 2014-04-06 23:26:34 +0000 | |||
2325 | +++ egg/test-asn1.c 2015-02-27 19:55:06 +0000 | |||
2326 | @@ -2385,6 +2385,7 @@ | |||
2327 | 2385 | asn = egg_asn1x_create_quark (test_asn1_tab, g_quark_from_static_string ("1.5.13")); | 2385 | asn = egg_asn1x_create_quark (test_asn1_tab, g_quark_from_static_string ("1.5.13")); |
2328 | 2386 | g_assert (asn != NULL); | 2386 | g_assert (asn != NULL); |
2329 | 2387 | g_assert_cmpstr (egg_asn1x_name (asn), ==, "TestIntegers"); | 2387 | g_assert_cmpstr (egg_asn1x_name (asn), ==, "TestIntegers"); |
2330 | 2388 | egg_asn1x_destroy (asn); | ||
2331 | 2388 | } | 2389 | } |
2332 | 2389 | 2390 | ||
2333 | 2390 | static void | 2391 | static void |
2334 | 2391 | 2392 | ||
2335 | === modified file 'egg/test-dn.c' | |||
2336 | --- egg/test-dn.c 2014-04-06 23:26:34 +0000 | |||
2337 | +++ egg/test-dn.c 2015-02-27 19:55:06 +0000 | |||
2338 | @@ -98,6 +98,7 @@ | |||
2339 | 98 | text = egg_dn_print_value (oid, asn); | 98 | text = egg_dn_print_value (oid, asn); |
2340 | 99 | g_assert_cmpstr (text, ==, "Thawte Personal Premium CA"); | 99 | g_assert_cmpstr (text, ==, "Thawte Personal Premium CA"); |
2341 | 100 | g_free (text); | 100 | g_free (text); |
2342 | 101 | g_bytes_unref (bytes); | ||
2343 | 101 | 102 | ||
2344 | 102 | /* Unknown oid */ | 103 | /* Unknown oid */ |
2345 | 103 | oid = g_quark_from_static_string ("1.1.1.1.1.1"); | 104 | oid = g_quark_from_static_string ("1.1.1.1.1.1"); |
2346 | 104 | 105 | ||
2347 | === modified file 'egg/test-padding.c' | |||
2348 | --- egg/test-padding.c 2014-04-06 23:26:34 +0000 | |||
2349 | +++ egg/test-padding.c 2015-02-27 19:55:06 +0000 | |||
2350 | @@ -114,6 +114,7 @@ | |||
2351 | 114 | g_assert (result[5] == 0x00); | 114 | g_assert (result[5] == 0x00); |
2352 | 115 | g_assert (result[6] == 'T'); | 115 | g_assert (result[6] == 'T'); |
2353 | 116 | g_assert (result[7] == 'E'); | 116 | g_assert (result[7] == 'E'); |
2354 | 117 | g_free (vesult); | ||
2355 | 117 | } | 118 | } |
2356 | 118 | 119 | ||
2357 | 119 | static void | 120 | static void |
2358 | 120 | 121 | ||
2359 | === modified file 'egg/test-spawn.c' | |||
2360 | --- egg/test-spawn.c 2014-04-06 23:26:34 +0000 | |||
2361 | +++ egg/test-spawn.c 2015-02-27 19:55:06 +0000 | |||
2362 | @@ -188,6 +188,8 @@ | |||
2363 | 188 | g_assert (data.completed); | 188 | g_assert (data.completed); |
2364 | 189 | g_assert_cmpstr (data.output, ==, "80 81 82 83 84\n"); | 189 | g_assert_cmpstr (data.output, ==, "80 81 82 83 84\n"); |
2365 | 190 | g_assert_cmpstr (data.error, ==, "1\n2\n3\n4\n5\n"); | 190 | g_assert_cmpstr (data.error, ==, "1\n2\n3\n4\n5\n"); |
2366 | 191 | g_free (data.error); | ||
2367 | 192 | g_free (data.output); | ||
2368 | 191 | } | 193 | } |
2369 | 192 | 194 | ||
2370 | 193 | static void | 195 | static void |
2371 | @@ -233,6 +235,8 @@ | |||
2372 | 233 | g_assert (data.completed); | 235 | g_assert (data.completed); |
2373 | 234 | g_assert_cmpstr (data.output, ==, "80 81 82 83 84\n"); | 236 | g_assert_cmpstr (data.output, ==, "80 81 82 83 84\n"); |
2374 | 235 | g_assert_cmpstr (data.error, ==, "1\n2\n3\n4\n5\n"); | 237 | g_assert_cmpstr (data.error, ==, "1\n2\n3\n4\n5\n"); |
2375 | 238 | g_free (data.error); | ||
2376 | 239 | g_free (data.output); | ||
2377 | 236 | } | 240 | } |
2378 | 237 | 241 | ||
2379 | 238 | static void | 242 | static void |
2380 | @@ -259,6 +263,8 @@ | |||
2381 | 259 | g_assert (data.finalized); | 263 | g_assert (data.finalized); |
2382 | 260 | g_assert (data.completed); | 264 | g_assert (data.completed); |
2383 | 261 | g_assert (!data.output); | 265 | g_assert (!data.output); |
2384 | 266 | g_free (data.error); | ||
2385 | 267 | g_free (data.output); | ||
2386 | 262 | } | 268 | } |
2387 | 263 | 269 | ||
2388 | 264 | static void | 270 | static void |
2389 | 265 | 271 | ||
2390 | === modified file 'pam/test-pam.c' | |||
2391 | --- pam/test-pam.c 2014-04-06 23:26:34 +0000 | |||
2392 | +++ pam/test-pam.c 2015-02-27 19:55:06 +0000 | |||
2393 | @@ -149,6 +149,7 @@ | |||
2394 | 149 | return; | 149 | return; |
2395 | 150 | } | 150 | } |
2396 | 151 | } else if (g_error_matches (error, G_FILE_ERROR, G_FILE_ERROR_NOENT)) { | 151 | } else if (g_error_matches (error, G_FILE_ERROR, G_FILE_ERROR_NOENT)) { |
2397 | 152 | g_error_free (error); | ||
2398 | 152 | skip_test (test, "missing test pam config"); | 153 | skip_test (test, "missing test pam config"); |
2399 | 153 | return; | 154 | return; |
2400 | 154 | } | 155 | } |
2401 | 155 | 156 | ||
2402 | === modified file 'pkcs11/gkm/gkm-attributes.c' | |||
2403 | --- pkcs11/gkm/gkm-attributes.c 2014-04-06 23:26:34 +0000 | |||
2404 | +++ pkcs11/gkm/gkm-attributes.c 2015-02-27 19:55:06 +0000 | |||
2405 | @@ -359,6 +359,7 @@ | |||
2406 | 359 | g_checksum_update (checksum, data, n_data); | 359 | g_checksum_update (checksum, data, n_data); |
2407 | 360 | result = attr->ulValueLen; | 360 | result = attr->ulValueLen; |
2408 | 361 | g_checksum_get_digest (checksum, attr->pValue, &result); | 361 | g_checksum_get_digest (checksum, attr->pValue, &result); |
2409 | 362 | g_checksum_free (checksum); | ||
2410 | 362 | attr->ulValueLen = result; | 363 | attr->ulValueLen = result; |
2411 | 363 | return CKR_OK; | 364 | return CKR_OK; |
2412 | 364 | } | 365 | } |
2413 | 365 | 366 | ||
2414 | === modified file 'pkcs11/gkm/gkm-credential.c' | |||
2415 | --- pkcs11/gkm/gkm-credential.c 2014-12-06 18:47:09 +0000 | |||
2416 | +++ pkcs11/gkm/gkm-credential.c 2015-02-27 19:55:06 +0000 | |||
2417 | @@ -209,6 +209,10 @@ | |||
2418 | 209 | g_object_weak_unref (G_OBJECT (self->pv->object), object_went_away, self); | 209 | g_object_weak_unref (G_OBJECT (self->pv->object), object_went_away, self); |
2419 | 210 | self->pv->object = NULL; | 210 | self->pv->object = NULL; |
2420 | 211 | 211 | ||
2421 | 212 | if (self->pv->secret) | ||
2422 | 213 | g_object_unref (G_OBJECT (self->pv->secret)); | ||
2423 | 214 | self->pv->secret = NULL; | ||
2424 | 215 | |||
2425 | 212 | clear_data (self); | 216 | clear_data (self); |
2426 | 213 | 217 | ||
2427 | 214 | G_OBJECT_CLASS (gkm_credential_parent_class)->dispose (obj); | 218 | G_OBJECT_CLASS (gkm_credential_parent_class)->dispose (obj); |
2428 | 215 | 219 | ||
2429 | === modified file 'pkcs11/gkm/gkm-data-asn1.c' | |||
2430 | --- pkcs11/gkm/gkm-data-asn1.c 2014-04-06 23:26:34 +0000 | |||
2431 | +++ pkcs11/gkm/gkm-data-asn1.c 2015-02-27 19:55:06 +0000 | |||
2432 | @@ -43,6 +43,7 @@ | |||
2433 | 43 | /* Automatically stores in secure memory if DER data is secure */ | 43 | /* Automatically stores in secure memory if DER data is secure */ |
2434 | 44 | sz = g_bytes_get_size (buf); | 44 | sz = g_bytes_get_size (buf); |
2435 | 45 | gcry = gcry_mpi_scan (mpi, GCRYMPI_FMT_STD, g_bytes_get_data (buf, NULL), sz, &sz); | 45 | gcry = gcry_mpi_scan (mpi, GCRYMPI_FMT_STD, g_bytes_get_data (buf, NULL), sz, &sz); |
2436 | 46 | g_bytes_unref (buf); | ||
2437 | 46 | if (gcry != 0) | 47 | if (gcry != 0) |
2438 | 47 | return FALSE; | 48 | return FALSE; |
2439 | 48 | 49 | ||
2440 | 49 | 50 | ||
2441 | === modified file 'pkcs11/gkm/gkm-mock.c' | |||
2442 | --- pkcs11/gkm/gkm-mock.c 2014-04-06 23:26:34 +0000 | |||
2443 | +++ pkcs11/gkm/gkm-mock.c 2015-02-27 19:55:06 +0000 | |||
2444 | @@ -72,6 +72,7 @@ | |||
2445 | 72 | static guint unique_identifier = 100; | 72 | static guint unique_identifier = 100; |
2446 | 73 | static GHashTable *the_sessions = NULL; | 73 | static GHashTable *the_sessions = NULL; |
2447 | 74 | static GHashTable *the_objects = NULL; | 74 | static GHashTable *the_objects = NULL; |
2448 | 75 | static GArray *the_credential_template = NULL; | ||
2449 | 75 | 76 | ||
2450 | 76 | enum { | 77 | enum { |
2451 | 77 | PRIVATE_KEY_CAPITALIZE = 3, | 78 | PRIVATE_KEY_CAPITALIZE = 3, |
2452 | @@ -260,6 +261,7 @@ | |||
2453 | 260 | n_the_pin = strlen (the_pin); | 261 | n_the_pin = strlen (the_pin); |
2454 | 261 | the_sessions = g_hash_table_new_full (g_direct_hash, g_direct_equal, NULL, free_session); | 262 | the_sessions = g_hash_table_new_full (g_direct_hash, g_direct_equal, NULL, free_session); |
2455 | 262 | the_objects = g_hash_table_new_full (g_direct_hash, g_direct_equal, NULL, (GDestroyNotify)gkm_template_free); | 263 | the_objects = g_hash_table_new_full (g_direct_hash, g_direct_equal, NULL, (GDestroyNotify)gkm_template_free); |
2456 | 264 | the_credential_template = gkm_template_new (NULL, 0); | ||
2457 | 263 | 265 | ||
2458 | 264 | /* Our token object */ | 266 | /* Our token object */ |
2459 | 265 | attrs = gkm_template_new (NULL, 0); | 267 | attrs = gkm_template_new (NULL, 0); |
2460 | @@ -337,6 +339,9 @@ | |||
2461 | 337 | g_hash_table_destroy (the_sessions); | 339 | g_hash_table_destroy (the_sessions); |
2462 | 338 | the_sessions = NULL; | 340 | the_sessions = NULL; |
2463 | 339 | 341 | ||
2464 | 342 | gkm_template_free (the_credential_template); | ||
2465 | 343 | the_credential_template = NULL; | ||
2466 | 344 | |||
2467 | 340 | g_free (the_pin); | 345 | g_free (the_pin); |
2468 | 341 | return CKR_OK; | 346 | return CKR_OK; |
2469 | 342 | } | 347 | } |
2470 | @@ -679,9 +684,12 @@ | |||
2471 | 679 | g_return_val_if_fail (session, CKR_SESSION_HANDLE_INVALID); | 684 | g_return_val_if_fail (session, CKR_SESSION_HANDLE_INVALID); |
2472 | 680 | 685 | ||
2473 | 681 | old = g_strndup ((gchar*)pOldPin, ulOldLen); | 686 | old = g_strndup ((gchar*)pOldPin, ulOldLen); |
2475 | 682 | if (!old || !g_str_equal (old, the_pin)) | 687 | if (!old || !g_str_equal (old, the_pin)) { |
2476 | 688 | g_free (old); | ||
2477 | 683 | return CKR_PIN_INCORRECT; | 689 | return CKR_PIN_INCORRECT; |
2478 | 690 | } | ||
2479 | 684 | 691 | ||
2480 | 692 | g_free (old); | ||
2481 | 685 | g_free (the_pin); | 693 | g_free (the_pin); |
2482 | 686 | the_pin = g_strndup ((gchar*)pNewPin, ulNewLen); | 694 | the_pin = g_strndup ((gchar*)pNewPin, ulNewLen); |
2483 | 687 | n_the_pin = ulNewLen; | 695 | n_the_pin = ulNewLen; |
2484 | @@ -864,6 +872,10 @@ | |||
2485 | 864 | 872 | ||
2486 | 865 | for (i = 0; i < ulCount; ++i) { | 873 | for (i = 0; i < ulCount; ++i) { |
2487 | 866 | result = pTemplate + i; | 874 | result = pTemplate + i; |
2488 | 875 | if (result->type == CKA_G_CREDENTIAL_TEMPLATE) { | ||
2489 | 876 | gkm_attribute_set_template (result, the_credential_template); | ||
2490 | 877 | continue; | ||
2491 | 878 | } | ||
2492 | 867 | attr = gkm_template_find (attrs, result->type); | 879 | attr = gkm_template_find (attrs, result->type); |
2493 | 868 | if (!attr) { | 880 | if (!attr) { |
2494 | 869 | result->ulValueLen = (CK_ULONG)-1; | 881 | result->ulValueLen = (CK_ULONG)-1; |
2495 | @@ -907,8 +919,22 @@ | |||
2496 | 907 | return CKR_OBJECT_HANDLE_INVALID; | 919 | return CKR_OBJECT_HANDLE_INVALID; |
2497 | 908 | } | 920 | } |
2498 | 909 | 921 | ||
2501 | 910 | for (i = 0; i < ulCount; ++i) | 922 | for (i = 0; i < ulCount; ++i) { |
2502 | 911 | gkm_template_set (attrs, pTemplate + i); | 923 | CK_ATTRIBUTE_PTR attr = pTemplate + i; |
2503 | 924 | |||
2504 | 925 | if (attr->type == CKA_G_CREDENTIAL_TEMPLATE) { | ||
2505 | 926 | CK_RV rv; | ||
2506 | 927 | GArray *template; | ||
2507 | 928 | |||
2508 | 929 | rv = gkm_attribute_get_template (attr, &template); | ||
2509 | 930 | if (rv != CKR_OK) | ||
2510 | 931 | return CKR_OBJECT_HANDLE_INVALID; | ||
2511 | 932 | gkm_template_free(the_credential_template); | ||
2512 | 933 | the_credential_template = template; | ||
2513 | 934 | } else { | ||
2514 | 935 | gkm_template_set (attrs, attr); | ||
2515 | 936 | } | ||
2516 | 937 | } | ||
2517 | 912 | 938 | ||
2518 | 913 | return CKR_OK; | 939 | return CKR_OK; |
2519 | 914 | } | 940 | } |
2520 | 915 | 941 | ||
2521 | === modified file 'pkcs11/gkm/test-data-asn1.c' | |||
2522 | --- pkcs11/gkm/test-data-asn1.c 2014-09-23 20:20:23 +0000 | |||
2523 | +++ pkcs11/gkm/test-data-asn1.c 2015-02-27 19:55:06 +0000 | |||
2524 | @@ -99,11 +99,14 @@ | |||
2525 | 99 | g_assert (asn != NULL); | 99 | g_assert (asn != NULL); |
2526 | 100 | 100 | ||
2527 | 101 | ret = gkm_data_asn1_read_mpi (egg_asn1x_node (asn, "mpi", NULL), &mpt); | 101 | ret = gkm_data_asn1_read_mpi (egg_asn1x_node (asn, "mpi", NULL), &mpt); |
2528 | 102 | egg_asn1x_destroy (asn); | ||
2529 | 102 | g_assert ("couldn't read mpi from asn1" && ret); | 103 | g_assert ("couldn't read mpi from asn1" && ret); |
2530 | 103 | g_assert ("mpi returned is null" && mpt != NULL); | 104 | g_assert ("mpi returned is null" && mpt != NULL); |
2531 | 104 | g_assert ("mpi is wrong number" && gcry_mpi_cmp (mpi, mpt) == 0); | 105 | g_assert ("mpi is wrong number" && gcry_mpi_cmp (mpi, mpt) == 0); |
2532 | 105 | 106 | ||
2533 | 106 | g_bytes_unref (data); | 107 | g_bytes_unref (data); |
2534 | 108 | gcry_mpi_release (mpi); | ||
2535 | 109 | gcry_mpi_release (mpt); | ||
2536 | 107 | } | 110 | } |
2537 | 108 | 111 | ||
2538 | 109 | int | 112 | int |
2539 | 110 | 113 | ||
2540 | === modified file 'pkcs11/gkm/test-data-der.c' | |||
2541 | --- pkcs11/gkm/test-data-der.c 2014-04-06 23:26:34 +0000 | |||
2542 | +++ pkcs11/gkm/test-data-der.c 2015-02-27 19:55:06 +0000 | |||
2543 | @@ -111,6 +111,7 @@ | |||
2544 | 111 | /* Now compare them */ | 111 | /* Now compare them */ |
2545 | 112 | g_assert ("key parsed differently" && compare_keys (key, sexp)); | 112 | g_assert ("key parsed differently" && compare_keys (key, sexp)); |
2546 | 113 | 113 | ||
2547 | 114 | gcry_sexp_release (sexp); | ||
2548 | 114 | g_bytes_unref (data); | 115 | g_bytes_unref (data); |
2549 | 115 | } | 116 | } |
2550 | 116 | 117 | ||
2551 | @@ -154,6 +155,8 @@ | |||
2552 | 154 | g_return_if_fail (gcry == 0); | 155 | g_return_if_fail (gcry == 0); |
2553 | 155 | 156 | ||
2554 | 156 | test_der_public (key); | 157 | test_der_public (key); |
2555 | 158 | |||
2556 | 159 | gcry_sexp_release (key); | ||
2557 | 157 | } | 160 | } |
2558 | 158 | 161 | ||
2559 | 159 | static void | 162 | static void |
2560 | @@ -166,6 +169,8 @@ | |||
2561 | 166 | g_return_if_fail (gcry == 0); | 169 | g_return_if_fail (gcry == 0); |
2562 | 167 | 170 | ||
2563 | 168 | test_der_public (key); | 171 | test_der_public (key); |
2564 | 172 | |||
2565 | 173 | gcry_sexp_release (key); | ||
2566 | 169 | } | 174 | } |
2567 | 170 | 175 | ||
2568 | 171 | static void | 176 | static void |
2569 | @@ -188,6 +193,7 @@ | |||
2570 | 188 | /* Now compare them */ | 193 | /* Now compare them */ |
2571 | 189 | g_assert ("key parsed differently" && compare_keys (key, sexp)); | 194 | g_assert ("key parsed differently" && compare_keys (key, sexp)); |
2572 | 190 | 195 | ||
2573 | 196 | gcry_sexp_release (sexp); | ||
2574 | 191 | g_bytes_unref (data); | 197 | g_bytes_unref (data); |
2575 | 192 | } | 198 | } |
2576 | 193 | 199 | ||
2577 | @@ -201,6 +207,8 @@ | |||
2578 | 201 | g_return_if_fail (gcry == 0); | 207 | g_return_if_fail (gcry == 0); |
2579 | 202 | 208 | ||
2580 | 203 | test_der_private (key); | 209 | test_der_private (key); |
2581 | 210 | |||
2582 | 211 | gcry_sexp_release (key); | ||
2583 | 204 | } | 212 | } |
2584 | 205 | 213 | ||
2585 | 206 | static void | 214 | static void |
2586 | @@ -213,6 +221,8 @@ | |||
2587 | 213 | g_return_if_fail (gcry == 0); | 221 | g_return_if_fail (gcry == 0); |
2588 | 214 | 222 | ||
2589 | 215 | test_der_private (key); | 223 | test_der_private (key); |
2590 | 224 | |||
2591 | 225 | gcry_sexp_release (key); | ||
2592 | 216 | } | 226 | } |
2593 | 217 | 227 | ||
2594 | 218 | static void | 228 | static void |
2595 | @@ -240,6 +250,7 @@ | |||
2596 | 240 | /* Now compare them */ | 250 | /* Now compare them */ |
2597 | 241 | g_assert ("key parsed differently" && compare_keys (skey, pkey)); | 251 | g_assert ("key parsed differently" && compare_keys (skey, pkey)); |
2598 | 242 | 252 | ||
2599 | 253 | gcry_sexp_release (skey); | ||
2600 | 243 | g_bytes_unref (params); | 254 | g_bytes_unref (params); |
2601 | 244 | g_bytes_unref (key); | 255 | g_bytes_unref (key); |
2602 | 245 | } | 256 | } |
2603 | @@ -332,6 +343,8 @@ | |||
2604 | 332 | 343 | ||
2605 | 333 | if (res == GKM_DATA_SUCCESS) | 344 | if (res == GKM_DATA_SUCCESS) |
2606 | 334 | gcry_sexp_release (sexp); | 345 | gcry_sexp_release (sexp); |
2607 | 346 | |||
2608 | 347 | egg_asn1x_destroy (asn1); | ||
2609 | 335 | g_bytes_unref (keydata); | 348 | g_bytes_unref (keydata); |
2610 | 336 | } | 349 | } |
2611 | 337 | 350 | ||
2612 | 338 | 351 | ||
2613 | === modified file 'pkcs11/gkm/test-secret.c' | |||
2614 | --- pkcs11/gkm/test-secret.c 2014-04-06 23:26:34 +0000 | |||
2615 | +++ pkcs11/gkm/test-secret.c 2015-02-27 19:55:06 +0000 | |||
2616 | @@ -185,6 +185,9 @@ | |||
2617 | 185 | g_object_unref (one); | 185 | g_object_unref (one); |
2618 | 186 | one = gkm_secret_new_from_password ("other"); | 186 | one = gkm_secret_new_from_password ("other"); |
2619 | 187 | g_assert (!gkm_secret_equal (one, two)); | 187 | g_assert (!gkm_secret_equal (one, two)); |
2620 | 188 | |||
2621 | 189 | g_object_unref (one); | ||
2622 | 190 | g_object_unref (two); | ||
2623 | 188 | } | 191 | } |
2624 | 189 | 192 | ||
2625 | 190 | int | 193 | int |
2626 | 191 | 194 | ||
2627 | === modified file 'pkcs11/gkm/test-sexp.c' | |||
2628 | --- pkcs11/gkm/test-sexp.c 2014-04-06 23:26:34 +0000 | |||
2629 | +++ pkcs11/gkm/test-sexp.c 2015-02-27 19:55:06 +0000 | |||
2630 | @@ -95,10 +95,12 @@ | |||
2631 | 95 | g_assert (algorithm == GCRY_PK_RSA); | 95 | g_assert (algorithm == GCRY_PK_RSA); |
2632 | 96 | g_assert (is_priv == TRUE); | 96 | g_assert (is_priv == TRUE); |
2633 | 97 | g_assert (sexp != NULL); | 97 | g_assert (sexp != NULL); |
2634 | 98 | gcry_sexp_release (sexp); | ||
2635 | 98 | 99 | ||
2636 | 99 | ret = gkm_sexp_extract_mpi (test->rsakey, &mpi, "p", NULL); | 100 | ret = gkm_sexp_extract_mpi (test->rsakey, &mpi, "p", NULL); |
2637 | 100 | g_assert (ret); | 101 | g_assert (ret); |
2638 | 101 | g_assert (mpi != NULL); | 102 | g_assert (mpi != NULL); |
2639 | 103 | gcry_mpi_release (mpi); | ||
2640 | 102 | } | 104 | } |
2641 | 103 | 105 | ||
2642 | 104 | static void | 106 | static void |
2643 | 105 | 107 | ||
2644 | === modified file 'pkcs11/gnome2-store/gkm-gnome2-file.c' | |||
2645 | --- pkcs11/gnome2-store/gkm-gnome2-file.c 2014-12-06 18:47:09 +0000 | |||
2646 | +++ pkcs11/gnome2-store/gkm-gnome2-file.c 2015-02-27 19:55:06 +0000 | |||
2647 | @@ -127,7 +127,7 @@ | |||
2648 | 127 | static GHashTable* | 127 | static GHashTable* |
2649 | 128 | entries_new (void) | 128 | entries_new (void) |
2650 | 129 | { | 129 | { |
2652 | 130 | return g_hash_table_new_full (g_str_hash, g_str_equal, NULL, (GDestroyNotify)g_hash_table_unref); | 130 | return g_hash_table_new_full (g_str_hash, g_str_equal, (GDestroyNotify)g_free, (GDestroyNotify)g_hash_table_unref); |
2653 | 131 | } | 131 | } |
2654 | 132 | 132 | ||
2655 | 133 | static gboolean | 133 | static gboolean |
2656 | @@ -309,6 +309,7 @@ | |||
2657 | 309 | gsize n_hash, hash_offset; | 309 | gsize n_hash, hash_offset; |
2658 | 310 | guint32 length; | 310 | guint32 length; |
2659 | 311 | int algo; | 311 | int algo; |
2660 | 312 | gboolean valid; | ||
2661 | 312 | 313 | ||
2662 | 313 | g_assert (buffer); | 314 | g_assert (buffer); |
2663 | 314 | g_assert (offset); | 315 | g_assert (offset); |
2664 | @@ -337,10 +338,10 @@ | |||
2665 | 337 | 338 | ||
2666 | 338 | check = g_malloc0 (n_hash); | 339 | check = g_malloc0 (n_hash); |
2667 | 339 | gcry_md_hash_buffer (algo, check, buffer->buf, length); | 340 | gcry_md_hash_buffer (algo, check, buffer->buf, length); |
2670 | 340 | if (memcmp (check, hash, n_hash) != 0) | 341 | valid = (memcmp (check, hash, n_hash) == 0); |
2671 | 341 | return FALSE; | 342 | g_free (check); |
2672 | 342 | 343 | ||
2674 | 343 | return TRUE; | 344 | return valid; |
2675 | 344 | } | 345 | } |
2676 | 345 | 346 | ||
2677 | 346 | static gboolean | 347 | static gboolean |
2678 | @@ -362,31 +363,24 @@ | |||
2679 | 362 | n_block = gcry_cipher_get_algo_blklen (calgo); | 363 | n_block = gcry_cipher_get_algo_blklen (calgo); |
2680 | 363 | g_return_val_if_fail (n_block, FALSE); | 364 | g_return_val_if_fail (n_block, FALSE); |
2681 | 364 | 365 | ||
2682 | 365 | /* Allocate memory for the keys */ | ||
2683 | 366 | key = gcry_malloc_secure (n_key); | ||
2684 | 367 | g_return_val_if_fail (key, FALSE); | ||
2685 | 368 | iv = g_malloc0 (n_block); | ||
2686 | 369 | |||
2687 | 370 | password = gkm_secret_get_password (login, &n_password); | 366 | password = gkm_secret_get_password (login, &n_password); |
2688 | 371 | 367 | ||
2689 | 372 | if (!egg_symkey_generate_simple (calgo, halgo, password, n_password, | 368 | if (!egg_symkey_generate_simple (calgo, halgo, password, n_password, |
2690 | 373 | salt, n_salt, iterations, &key, &iv)) { | 369 | salt, n_salt, iterations, &key, &iv)) { |
2691 | 374 | gcry_free (key); | ||
2692 | 375 | g_free (iv); | ||
2693 | 376 | return FALSE; | 370 | return FALSE; |
2694 | 377 | } | 371 | } |
2695 | 378 | 372 | ||
2696 | 379 | gcry = gcry_cipher_open (cipher, calgo, GCRY_CIPHER_MODE_CBC, 0); | 373 | gcry = gcry_cipher_open (cipher, calgo, GCRY_CIPHER_MODE_CBC, 0); |
2697 | 380 | if (gcry) { | 374 | if (gcry) { |
2698 | 381 | g_warning ("couldn't create cipher context: %s", gcry_strerror (gcry)); | 375 | g_warning ("couldn't create cipher context: %s", gcry_strerror (gcry)); |
2700 | 382 | gcry_free (key); | 376 | egg_secure_free (key); |
2701 | 383 | g_free (iv); | 377 | g_free (iv); |
2702 | 384 | return FALSE; | 378 | return FALSE; |
2703 | 385 | } | 379 | } |
2704 | 386 | 380 | ||
2705 | 387 | gcry = gcry_cipher_setkey (*cipher, key, n_key); | 381 | gcry = gcry_cipher_setkey (*cipher, key, n_key); |
2706 | 388 | g_return_val_if_fail (!gcry, FALSE); | 382 | g_return_val_if_fail (!gcry, FALSE); |
2708 | 389 | gcry_free (key); | 383 | egg_secure_free (key); |
2709 | 390 | 384 | ||
2710 | 391 | gcry = gcry_cipher_setiv (*cipher, iv, n_block); | 385 | gcry = gcry_cipher_setiv (*cipher, iv, n_block); |
2711 | 392 | g_return_val_if_fail (!gcry, FALSE); | 386 | g_return_val_if_fail (!gcry, FALSE); |
2712 | 393 | 387 | ||
2713 | === modified file 'pkcs11/gnome2-store/gkm-gnome2-storage.c' | |||
2714 | --- pkcs11/gnome2-store/gkm-gnome2-storage.c 2014-12-06 18:47:09 +0000 | |||
2715 | +++ pkcs11/gnome2-store/gkm-gnome2-storage.c 2015-02-27 19:55:06 +0000 | |||
2716 | @@ -916,6 +916,10 @@ | |||
2717 | 916 | g_object_unref (self->manager); | 916 | g_object_unref (self->manager); |
2718 | 917 | self->manager = NULL; | 917 | self->manager = NULL; |
2719 | 918 | 918 | ||
2720 | 919 | if (self->login) | ||
2721 | 920 | g_object_unref (self->login); | ||
2722 | 921 | self->login = NULL; | ||
2723 | 922 | |||
2724 | 919 | g_signal_handlers_disconnect_by_func (self->file, data_file_entry_added, self); | 923 | g_signal_handlers_disconnect_by_func (self->file, data_file_entry_added, self); |
2725 | 920 | g_signal_handlers_disconnect_by_func (self->file, data_file_entry_changed, self); | 924 | g_signal_handlers_disconnect_by_func (self->file, data_file_entry_changed, self); |
2726 | 921 | g_signal_handlers_disconnect_by_func (self->file, data_file_entry_removed, self); | 925 | g_signal_handlers_disconnect_by_func (self->file, data_file_entry_removed, self); |
2727 | 922 | 926 | ||
2728 | === modified file 'pkcs11/gnome2-store/test-import.c' | |||
2729 | --- pkcs11/gnome2-store/test-import.c 2014-04-06 23:26:34 +0000 | |||
2730 | +++ pkcs11/gnome2-store/test-import.c 2015-02-27 19:55:06 +0000 | |||
2731 | @@ -62,6 +62,7 @@ | |||
2732 | 62 | 62 | ||
2733 | 63 | test->funcs = gkm_gnome2_store_get_functions (); | 63 | test->funcs = gkm_gnome2_store_get_functions (); |
2734 | 64 | rv = (test->funcs->C_Initialize) (&args); | 64 | rv = (test->funcs->C_Initialize) (&args); |
2735 | 65 | g_free (args.pReserved); | ||
2736 | 65 | gkm_assert_cmprv (rv, ==, CKR_OK); | 66 | gkm_assert_cmprv (rv, ==, CKR_OK); |
2737 | 66 | 67 | ||
2738 | 67 | /* And now need to log in */ | 68 | /* And now need to log in */ |
2739 | 68 | 69 | ||
2740 | === modified file 'pkcs11/secret-store/gkm-secret-item.c' | |||
2741 | --- pkcs11/secret-store/gkm-secret-item.c 2014-04-06 23:26:34 +0000 | |||
2742 | +++ pkcs11/secret-store/gkm-secret-item.c 2015-02-27 19:55:06 +0000 | |||
2743 | @@ -391,6 +391,9 @@ | |||
2744 | 391 | g_hash_table_unref (self->fields); | 391 | g_hash_table_unref (self->fields); |
2745 | 392 | self->fields = NULL; | 392 | self->fields = NULL; |
2746 | 393 | 393 | ||
2747 | 394 | g_free (self->schema); | ||
2748 | 395 | self->schema = NULL; | ||
2749 | 396 | |||
2750 | 394 | G_OBJECT_CLASS (gkm_secret_item_parent_class)->finalize (obj); | 397 | G_OBJECT_CLASS (gkm_secret_item_parent_class)->finalize (obj); |
2751 | 395 | } | 398 | } |
2752 | 396 | 399 | ||
2753 | 397 | 400 | ||
2754 | === modified file 'pkcs11/secret-store/gkm-secret-search.c' | |||
2755 | --- pkcs11/secret-store/gkm-secret-search.c 2014-12-06 18:47:09 +0000 | |||
2756 | +++ pkcs11/secret-store/gkm-secret-search.c 2015-02-27 19:55:06 +0000 | |||
2757 | @@ -247,6 +247,7 @@ | |||
2758 | 247 | "schema-name", schema_name, | 247 | "schema-name", schema_name, |
2759 | 248 | "collection-id", identifier, | 248 | "collection-id", identifier, |
2760 | 249 | NULL); | 249 | NULL); |
2761 | 250 | g_free (identifier); | ||
2762 | 250 | 251 | ||
2763 | 251 | /* Load any new items or collections */ | 252 | /* Load any new items or collections */ |
2764 | 252 | gkm_module_refresh_token (module); | 253 | gkm_module_refresh_token (module); |
2765 | 253 | 254 | ||
2766 | === modified file 'pkcs11/secret-store/gkm-secret-textual.c' | |||
2767 | --- pkcs11/secret-store/gkm-secret-textual.c 2014-12-06 18:47:09 +0000 | |||
2768 | +++ pkcs11/secret-store/gkm-secret-textual.c 2015-02-27 19:55:06 +0000 | |||
2769 | @@ -118,6 +118,7 @@ | |||
2770 | 118 | g_free (groupname); | 118 | g_free (groupname); |
2771 | 119 | ++index; | 119 | ++index; |
2772 | 120 | } | 120 | } |
2773 | 121 | g_list_free (names); | ||
2774 | 121 | } | 122 | } |
2775 | 122 | 123 | ||
2776 | 123 | static void | 124 | static void |
2777 | 124 | 125 | ||
2778 | === modified file 'pkcs11/secret-store/test-secret-binary.c' | |||
2779 | --- pkcs11/secret-store/test-secret-binary.c 2014-04-06 23:26:34 +0000 | |||
2780 | +++ pkcs11/secret-store/test-secret-binary.c 2015-02-27 19:55:06 +0000 | |||
2781 | @@ -156,6 +156,7 @@ | |||
2782 | 156 | /* Try parsing it again */ | 156 | /* Try parsing it again */ |
2783 | 157 | res = gkm_secret_binary_read (test->collection, test->sdata, data, n_data); | 157 | res = gkm_secret_binary_read (test->collection, test->sdata, data, n_data); |
2784 | 158 | g_assert (res == GKM_DATA_SUCCESS); | 158 | g_assert (res == GKM_DATA_SUCCESS); |
2785 | 159 | g_free (data); | ||
2786 | 159 | } | 160 | } |
2787 | 160 | 161 | ||
2788 | 161 | static void | 162 | static void |
2789 | 162 | 163 | ||
2790 | === modified file 'pkcs11/secret-store/test-secret-textual.c' | |||
2791 | --- pkcs11/secret-store/test-secret-textual.c 2014-04-06 23:26:34 +0000 | |||
2792 | +++ pkcs11/secret-store/test-secret-textual.c 2015-02-27 19:55:06 +0000 | |||
2793 | @@ -148,6 +148,7 @@ | |||
2794 | 148 | /* Try parsing it again */ | 148 | /* Try parsing it again */ |
2795 | 149 | res = gkm_secret_textual_read (test->collection, test->sdata, data, n_data); | 149 | res = gkm_secret_textual_read (test->collection, test->sdata, data, n_data); |
2796 | 150 | g_assert (res == GKM_DATA_SUCCESS); | 150 | g_assert (res == GKM_DATA_SUCCESS); |
2797 | 151 | g_free (data); | ||
2798 | 151 | } | 152 | } |
2799 | 152 | 153 | ||
2800 | 153 | static void | 154 | static void |
2801 | 154 | 155 | ||
2802 | === modified file 'pkcs11/wrap-layer/gkm-wrap-prompt.c' | |||
2803 | --- pkcs11/wrap-layer/gkm-wrap-prompt.c 2014-04-06 23:26:34 +0000 | |||
2804 | +++ pkcs11/wrap-layer/gkm-wrap-prompt.c 2015-02-27 19:55:06 +0000 | |||
2805 | @@ -904,14 +904,30 @@ | |||
2806 | 904 | } | 904 | } |
2807 | 905 | 905 | ||
2808 | 906 | static void | 906 | static void |
2810 | 907 | gkm_wrap_prompt_finalize (GObject *obj) | 907 | gkm_wrap_prompt_clear_prompt_data (GkmWrapPrompt *self) |
2811 | 908 | { | 908 | { |
2812 | 909 | GkmWrapPrompt *self = GKM_WRAP_PROMPT (obj); | ||
2813 | 910 | |||
2814 | 911 | if (self->destroy_data && self->prompt_data) | 909 | if (self->destroy_data && self->prompt_data) |
2815 | 912 | (self->destroy_data) (self->prompt_data); | 910 | (self->destroy_data) (self->prompt_data); |
2816 | 913 | self->destroy_data = NULL; | 911 | self->destroy_data = NULL; |
2817 | 914 | self->prompt_data = NULL; | 912 | self->prompt_data = NULL; |
2818 | 913 | } | ||
2819 | 914 | |||
2820 | 915 | static void | ||
2821 | 916 | gkm_wrap_prompt_set_prompt_data (GkmWrapPrompt *self, | ||
2822 | 917 | gpointer prompt_data, | ||
2823 | 918 | GDestroyNotify destroy_data) | ||
2824 | 919 | { | ||
2825 | 920 | gkm_wrap_prompt_clear_prompt_data (self); | ||
2826 | 921 | self->destroy_data = destroy_data; | ||
2827 | 922 | self->prompt_data = prompt_data; | ||
2828 | 923 | } | ||
2829 | 924 | |||
2830 | 925 | static void | ||
2831 | 926 | gkm_wrap_prompt_finalize (GObject *obj) | ||
2832 | 927 | { | ||
2833 | 928 | GkmWrapPrompt *self = GKM_WRAP_PROMPT (obj); | ||
2834 | 929 | |||
2835 | 930 | gkm_wrap_prompt_clear_prompt_data (self); | ||
2836 | 915 | 931 | ||
2837 | 916 | while (!g_queue_is_empty(&self->pool)) | 932 | while (!g_queue_is_empty(&self->pool)) |
2838 | 917 | g_free (g_queue_pop_head (&self->pool)); | 933 | g_free (g_queue_pop_head (&self->pool)); |
2839 | @@ -934,7 +950,7 @@ | |||
2840 | 934 | typedef struct _CredentialPrompt { | 950 | typedef struct _CredentialPrompt { |
2841 | 935 | GArray *template; | 951 | GArray *template; |
2842 | 936 | CK_ULONG n_template; | 952 | CK_ULONG n_template; |
2844 | 937 | const gchar *password; | 953 | gchar *password; |
2845 | 938 | } CredentialPrompt; | 954 | } CredentialPrompt; |
2846 | 939 | 955 | ||
2847 | 940 | static void | 956 | static void |
2848 | @@ -942,6 +958,7 @@ | |||
2849 | 942 | { | 958 | { |
2850 | 943 | CredentialPrompt *data = user_data; | 959 | CredentialPrompt *data = user_data; |
2851 | 944 | g_array_free (data->template, TRUE); | 960 | g_array_free (data->template, TRUE); |
2852 | 961 | egg_secure_strfree (data->password); | ||
2853 | 945 | g_slice_free (CredentialPrompt, data); | 962 | g_slice_free (CredentialPrompt, data); |
2854 | 946 | } | 963 | } |
2855 | 947 | 964 | ||
2856 | @@ -977,8 +994,8 @@ | |||
2857 | 977 | NULL); | 994 | NULL); |
2858 | 978 | 995 | ||
2859 | 979 | /* Build up the prompt */ | 996 | /* Build up the prompt */ |
2862 | 980 | self->prompt_data = data = g_slice_new0 (CredentialPrompt); | 997 | data = g_slice_new0 (CredentialPrompt); |
2863 | 981 | self->destroy_data = credential_prompt_free; | 998 | gkm_wrap_prompt_set_prompt_data (self, data, credential_prompt_free); |
2864 | 982 | self->module = module; | 999 | self->module = module; |
2865 | 983 | self->session = session; | 1000 | self->session = session; |
2866 | 984 | self->object = object; | 1001 | self->object = object; |
2867 | @@ -1017,6 +1034,7 @@ | |||
2868 | 1017 | attrs = get_attributes_from_object (self, &n_attrs); | 1034 | attrs = get_attributes_from_object (self, &n_attrs); |
2869 | 1018 | g_return_val_if_fail (attrs, FALSE); | 1035 | g_return_val_if_fail (attrs, FALSE); |
2870 | 1019 | 1036 | ||
2871 | 1037 | egg_secure_strfree (data->password); | ||
2872 | 1020 | data->password = NULL; | 1038 | data->password = NULL; |
2873 | 1021 | 1039 | ||
2874 | 1022 | if (self->iteration == 0) { | 1040 | if (self->iteration == 0) { |
2875 | @@ -1028,6 +1046,7 @@ | |||
2876 | 1028 | } | 1046 | } |
2877 | 1029 | 1047 | ||
2878 | 1030 | if (!data->password) { | 1048 | if (!data->password) { |
2879 | 1049 | const char *password; | ||
2880 | 1031 | setup_unlock_prompt (self, attrs, n_attrs, self->iteration == 1); | 1050 | setup_unlock_prompt (self, attrs, n_attrs, self->iteration == 1); |
2881 | 1032 | 1051 | ||
2882 | 1033 | /* Now load up the unlock options into the prompt*/ | 1052 | /* Now load up the unlock options into the prompt*/ |
2883 | @@ -1039,14 +1058,15 @@ | |||
2884 | 1039 | 1058 | ||
2885 | 1040 | ++(self->iteration); | 1059 | ++(self->iteration); |
2886 | 1041 | 1060 | ||
2889 | 1042 | data->password = gkm_wrap_prompt_request_password (self); | 1061 | password = gkm_wrap_prompt_request_password (self); |
2890 | 1043 | if (data->password == NULL) { | 1062 | if (password == NULL) { |
2891 | 1044 | if (error != NULL) { | 1063 | if (error != NULL) { |
2892 | 1045 | g_warning ("couldn't prompt for password: %s", egg_error_message (error)); | 1064 | g_warning ("couldn't prompt for password: %s", egg_error_message (error)); |
2893 | 1046 | g_error_free (error); | 1065 | g_error_free (error); |
2894 | 1047 | } | 1066 | } |
2895 | 1048 | return FALSE; | 1067 | return FALSE; |
2896 | 1049 | } | 1068 | } |
2897 | 1069 | data->password = egg_secure_strdup (password); | ||
2898 | 1050 | } | 1070 | } |
2899 | 1051 | 1071 | ||
2900 | 1052 | /* Truncate any extra options off the end of template */ | 1072 | /* Truncate any extra options off the end of template */ |
2901 | @@ -1173,7 +1193,7 @@ | |||
2902 | 1173 | CK_UTF8CHAR_PTR *pin, CK_ULONG *n_pin) | 1193 | CK_UTF8CHAR_PTR *pin, CK_ULONG *n_pin) |
2903 | 1174 | { | 1194 | { |
2904 | 1175 | CK_TOKEN_INFO tinfo; | 1195 | CK_TOKEN_INFO tinfo; |
2906 | 1176 | const gchar *password; | 1196 | gchar *password; |
2907 | 1177 | 1197 | ||
2908 | 1178 | g_assert (GKM_IS_WRAP_PROMPT (self)); | 1198 | g_assert (GKM_IS_WRAP_PROMPT (self)); |
2909 | 1179 | g_assert (self->module); | 1199 | g_assert (self->module); |
2910 | @@ -1185,11 +1205,12 @@ | |||
2911 | 1185 | 1205 | ||
2912 | 1186 | setup_init_token (self, &tinfo); | 1206 | setup_init_token (self, &tinfo); |
2913 | 1187 | 1207 | ||
2915 | 1188 | password = gkm_wrap_prompt_request_password (self); | 1208 | password = (char *)gkm_wrap_prompt_request_password (self); |
2916 | 1189 | if (password == NULL) | 1209 | if (password == NULL) |
2917 | 1190 | return FALSE; | 1210 | return FALSE; |
2918 | 1191 | 1211 | ||
2920 | 1192 | self->prompt_data = (gpointer)password; | 1212 | g_assert (self->destroy_data == NULL); |
2921 | 1213 | gkm_wrap_prompt_set_prompt_data (self, password, NULL); | ||
2922 | 1193 | *pin = (gpointer)password; | 1214 | *pin = (gpointer)password; |
2923 | 1194 | *n_pin = strlen (password); | 1215 | *n_pin = strlen (password); |
2924 | 1195 | return TRUE; | 1216 | return TRUE; |
2925 | @@ -1314,8 +1335,9 @@ | |||
2926 | 1314 | /* Build up the prompt */ | 1335 | /* Build up the prompt */ |
2927 | 1315 | self->module = module; | 1336 | self->module = module; |
2928 | 1316 | self->session = session; | 1337 | self->session = session; |
2931 | 1317 | self->destroy_data = set_pin_prompt_free; | 1338 | gkm_wrap_prompt_set_prompt_data (self, |
2932 | 1318 | self->prompt_data = g_slice_new0 (SetPinPrompt); | 1339 | g_slice_new0 (SetPinPrompt), |
2933 | 1340 | set_pin_prompt_free); | ||
2934 | 1319 | 1341 | ||
2935 | 1320 | return self; | 1342 | return self; |
2936 | 1321 | } | 1343 | } |
2937 | @@ -1438,7 +1460,7 @@ | |||
2938 | 1438 | login_prompt_do_specific (GkmWrapPrompt *self, CK_RV last_result, | 1460 | login_prompt_do_specific (GkmWrapPrompt *self, CK_RV last_result, |
2939 | 1439 | CK_UTF8CHAR_PTR *pin, CK_ULONG *n_pin) | 1461 | CK_UTF8CHAR_PTR *pin, CK_ULONG *n_pin) |
2940 | 1440 | { | 1462 | { |
2942 | 1441 | const gchar *password = NULL; | 1463 | gchar *password = NULL; |
2943 | 1442 | CK_ATTRIBUTE_PTR attrs; | 1464 | CK_ATTRIBUTE_PTR attrs; |
2944 | 1443 | CK_ULONG n_attrs; | 1465 | CK_ULONG n_attrs; |
2945 | 1444 | 1466 | ||
2946 | @@ -1451,6 +1473,9 @@ | |||
2947 | 1451 | if (self->iteration == 0) { | 1473 | if (self->iteration == 0) { |
2948 | 1452 | ++(self->iteration); | 1474 | ++(self->iteration); |
2949 | 1453 | password = auto_unlock_lookup_object (attrs, n_attrs); | 1475 | password = auto_unlock_lookup_object (attrs, n_attrs); |
2950 | 1476 | if (password) | ||
2951 | 1477 | gkm_wrap_prompt_set_prompt_data (self, password, | ||
2952 | 1478 | (GDestroyNotify)egg_secure_strfree); | ||
2953 | 1454 | 1479 | ||
2954 | 1455 | } else if (self->iteration == 1 && last_result == CKR_PIN_INCORRECT) { | 1480 | } else if (self->iteration == 1 && last_result == CKR_PIN_INCORRECT) { |
2955 | 1456 | auto_unlock_remove_object (attrs, n_attrs); | 1481 | auto_unlock_remove_object (attrs, n_attrs); |
2956 | @@ -1459,12 +1484,12 @@ | |||
2957 | 1459 | if (!password) { | 1484 | if (!password) { |
2958 | 1460 | setup_unlock_prompt (self, attrs, n_attrs, self->iteration == 1); | 1485 | setup_unlock_prompt (self, attrs, n_attrs, self->iteration == 1); |
2959 | 1461 | 1486 | ||
2961 | 1462 | password = gkm_wrap_prompt_request_password (self); | 1487 | password = (char *)gkm_wrap_prompt_request_password (self); |
2962 | 1463 | if (password == NULL) | 1488 | if (password == NULL) |
2963 | 1464 | return FALSE; | 1489 | return FALSE; |
2964 | 1490 | gkm_wrap_prompt_set_prompt_data (self, password, NULL); | ||
2965 | 1465 | } | 1491 | } |
2966 | 1466 | 1492 | ||
2967 | 1467 | self->prompt_data = (gpointer)password; | ||
2968 | 1468 | *pin = (guchar *)password; | 1493 | *pin = (guchar *)password; |
2969 | 1469 | *n_pin = strlen (password); | 1494 | *n_pin = strlen (password); |
2970 | 1470 | return TRUE; | 1495 | return TRUE; |
2971 | @@ -1477,7 +1502,8 @@ | |||
2972 | 1477 | CK_ULONG n_attrs; | 1502 | CK_ULONG n_attrs; |
2973 | 1478 | 1503 | ||
2974 | 1479 | g_assert (GKM_IS_WRAP_PROMPT (self)); | 1504 | g_assert (GKM_IS_WRAP_PROMPT (self)); |
2976 | 1480 | g_assert (self->destroy_data == NULL); | 1505 | g_assert (self->destroy_data == NULL || |
2977 | 1506 | self->destroy_data == (GDestroyNotify)egg_secure_strfree); | ||
2978 | 1481 | 1507 | ||
2979 | 1482 | /* Possibly save away auto unlock */ | 1508 | /* Possibly save away auto unlock */ |
2980 | 1483 | if (call_result == CKR_OK && auto_unlock_should_attach (self)) { | 1509 | if (call_result == CKR_OK && auto_unlock_should_attach (self)) { |
2981 | @@ -1510,7 +1536,7 @@ | |||
2982 | 1510 | CK_UTF8CHAR_PTR *pin, CK_ULONG *n_pin) | 1536 | CK_UTF8CHAR_PTR *pin, CK_ULONG *n_pin) |
2983 | 1511 | { | 1537 | { |
2984 | 1512 | CK_TOKEN_INFO tinfo; | 1538 | CK_TOKEN_INFO tinfo; |
2986 | 1513 | const gchar *password = NULL; | 1539 | gchar *password = NULL; |
2987 | 1514 | 1540 | ||
2988 | 1515 | g_assert (GKM_IS_WRAP_PROMPT (self)); | 1541 | g_assert (GKM_IS_WRAP_PROMPT (self)); |
2989 | 1516 | g_assert (self->module); | 1542 | g_assert (self->module); |
2990 | @@ -1523,6 +1549,9 @@ | |||
2991 | 1523 | if (self->iteration == 0) { | 1549 | if (self->iteration == 0) { |
2992 | 1524 | ++(self->iteration); | 1550 | ++(self->iteration); |
2993 | 1525 | password = auto_unlock_lookup_token (&tinfo); | 1551 | password = auto_unlock_lookup_token (&tinfo); |
2994 | 1552 | if (password) | ||
2995 | 1553 | gkm_wrap_prompt_set_prompt_data (self, password, | ||
2996 | 1554 | (GDestroyNotify)egg_secure_strfree); | ||
2997 | 1526 | 1555 | ||
2998 | 1527 | } else if (self->iteration == 1 && last_result == CKR_PIN_INCORRECT) { | 1556 | } else if (self->iteration == 1 && last_result == CKR_PIN_INCORRECT) { |
2999 | 1528 | auto_unlock_remove_token (&tinfo); | 1557 | auto_unlock_remove_token (&tinfo); |
3000 | @@ -1531,12 +1560,12 @@ | |||
3001 | 1531 | if (!password) { | 1560 | if (!password) { |
3002 | 1532 | setup_unlock_token (self, &tinfo); | 1561 | setup_unlock_token (self, &tinfo); |
3003 | 1533 | 1562 | ||
3005 | 1534 | password = gkm_wrap_prompt_request_password (self); | 1563 | password = (char *)gkm_wrap_prompt_request_password (self); |
3006 | 1535 | if (password == NULL) | 1564 | if (password == NULL) |
3007 | 1536 | return FALSE; | 1565 | return FALSE; |
3008 | 1566 | gkm_wrap_prompt_set_prompt_data (self, password, NULL); | ||
3009 | 1537 | } | 1567 | } |
3010 | 1538 | 1568 | ||
3011 | 1539 | self->prompt_data = (gpointer)password; | ||
3012 | 1540 | *pin = (guchar *)password; | 1569 | *pin = (guchar *)password; |
3013 | 1541 | *n_pin = strlen (password); | 1570 | *n_pin = strlen (password); |
3014 | 1542 | return TRUE; | 1571 | return TRUE; |
3015 | @@ -1548,7 +1577,8 @@ | |||
3016 | 1548 | CK_TOKEN_INFO tinfo; | 1577 | CK_TOKEN_INFO tinfo; |
3017 | 1549 | 1578 | ||
3018 | 1550 | g_assert (GKM_IS_WRAP_PROMPT (self)); | 1579 | g_assert (GKM_IS_WRAP_PROMPT (self)); |
3020 | 1551 | g_assert (self->destroy_data == NULL); | 1580 | g_assert (self->destroy_data == NULL || |
3021 | 1581 | self->destroy_data == (GDestroyNotify)egg_secure_strfree); | ||
3022 | 1552 | 1582 | ||
3023 | 1553 | /* Save the options, and possibly auto unlock */ | 1583 | /* Save the options, and possibly auto unlock */ |
3024 | 1554 | if (call_result == CKR_OK && auto_unlock_should_attach (self)) { | 1584 | if (call_result == CKR_OK && auto_unlock_should_attach (self)) { |
3025 | 1555 | 1585 | ||
3026 | === modified file 'pkcs11/wrap-layer/mock-secret-store.c' | |||
3027 | --- pkcs11/wrap-layer/mock-secret-store.c 2014-04-06 23:26:34 +0000 | |||
3028 | +++ pkcs11/wrap-layer/mock-secret-store.c 2015-02-27 19:55:06 +0000 | |||
3029 | @@ -207,7 +207,7 @@ | |||
3030 | 207 | rv = gkm_mock_C_CreateObject (hSession, pTemplate, ulCount, phObject); | 207 | rv = gkm_mock_C_CreateObject (hSession, pTemplate, ulCount, phObject); |
3031 | 208 | 208 | ||
3032 | 209 | if (template) | 209 | if (template) |
3034 | 210 | g_array_free (template, TRUE); | 210 | gkm_template_free (template); |
3035 | 211 | 211 | ||
3036 | 212 | return rv; | 212 | return rv; |
3037 | 213 | } | 213 | } |
3038 | 214 | 214 | ||
3039 | === modified file 'pkcs11/xdg-store/gkm-xdg-assertion.c' | |||
3040 | --- pkcs11/xdg-store/gkm-xdg-assertion.c 2014-12-06 18:47:09 +0000 | |||
3041 | +++ pkcs11/xdg-store/gkm-xdg-assertion.c 2015-02-27 19:55:06 +0000 | |||
3042 | @@ -173,6 +173,8 @@ | |||
3043 | 173 | "purpose", purpose, | 173 | "purpose", purpose, |
3044 | 174 | "peer", peer, | 174 | "peer", peer, |
3045 | 175 | NULL); | 175 | NULL); |
3046 | 176 | g_free (purpose); | ||
3047 | 177 | g_free (peer); | ||
3048 | 176 | 178 | ||
3049 | 177 | /* Add the assertion to the trust object */ | 179 | /* Add the assertion to the trust object */ |
3050 | 178 | if (!gkm_transaction_get_failed (transaction)) { | 180 | if (!gkm_transaction_get_failed (transaction)) { |
3051 | 179 | 181 | ||
3052 | === modified file 'pkcs11/xdg-store/gkm-xdg-trust.c' | |||
3053 | --- pkcs11/xdg-store/gkm-xdg-trust.c 2014-04-06 23:26:34 +0000 | |||
3054 | +++ pkcs11/xdg-store/gkm-xdg-trust.c 2015-02-27 19:55:06 +0000 | |||
3055 | @@ -371,7 +371,7 @@ | |||
3056 | 371 | key = create_assertion_key (gkm_assertion_get_purpose (assertion), | 371 | key = create_assertion_key (gkm_assertion_get_purpose (assertion), |
3057 | 372 | gkm_assertion_get_peer (assertion)); | 372 | gkm_assertion_get_peer (assertion)); |
3058 | 373 | g_object_set_qdata_full (G_OBJECT (assertion), QDATA_ASSERTION_KEY, | 373 | g_object_set_qdata_full (G_OBJECT (assertion), QDATA_ASSERTION_KEY, |
3060 | 374 | g_bytes_ref (key), (GDestroyNotify)g_bytes_unref); | 374 | key, (GDestroyNotify)g_bytes_unref); |
3061 | 375 | } | 375 | } |
3062 | 376 | 376 | ||
3063 | 377 | return key; | 377 | return key; |
3064 | @@ -439,6 +439,7 @@ | |||
3065 | 439 | if (!g_hash_table_steal (self->pv->assertions, key)) | 439 | if (!g_hash_table_steal (self->pv->assertions, key)) |
3066 | 440 | g_return_if_reached (); | 440 | g_return_if_reached (); |
3067 | 441 | gkm_transaction_add (transaction, self, complete_remove_assertion, assertion); | 441 | gkm_transaction_add (transaction, self, complete_remove_assertion, assertion); |
3068 | 442 | g_bytes_unref (key); | ||
3069 | 442 | } | 443 | } |
3070 | 443 | } | 444 | } |
3071 | 444 | 445 | ||
3072 | @@ -706,6 +707,10 @@ | |||
3073 | 706 | g_hash_table_destroy (self->pv->assertions); | 707 | g_hash_table_destroy (self->pv->assertions); |
3074 | 707 | self->pv->assertions = NULL; | 708 | self->pv->assertions = NULL; |
3075 | 708 | 709 | ||
3076 | 710 | if (self->pv->bytes) | ||
3077 | 711 | g_bytes_unref (self->pv->bytes); | ||
3078 | 712 | self->pv->bytes = NULL; | ||
3079 | 713 | |||
3080 | 709 | G_OBJECT_CLASS (gkm_xdg_trust_parent_class)->finalize (obj); | 714 | G_OBJECT_CLASS (gkm_xdg_trust_parent_class)->finalize (obj); |
3081 | 710 | } | 715 | } |
3082 | 711 | 716 | ||
3083 | @@ -875,7 +880,6 @@ | |||
3084 | 875 | remove_assertion_from_trust (self, previous, transaction); | 880 | remove_assertion_from_trust (self, previous, transaction); |
3085 | 876 | add_assertion_to_trust (self, assertion, transaction); | 881 | add_assertion_to_trust (self, assertion, transaction); |
3086 | 877 | 882 | ||
3087 | 878 | g_bytes_unref (key); | ||
3088 | 879 | } | 883 | } |
3089 | 880 | 884 | ||
3090 | 881 | void | 885 | void |
3091 | 882 | 886 | ||
3092 | === modified file 'pkcs11/xdg-store/test-xdg-module.c' | |||
3093 | --- pkcs11/xdg-store/test-xdg-module.c 2014-04-06 23:26:34 +0000 | |||
3094 | +++ pkcs11/xdg-store/test-xdg-module.c 2015-02-27 19:55:06 +0000 | |||
3095 | @@ -190,6 +190,7 @@ | |||
3096 | 190 | rv = gkm_session_C_CreateObject (test->session, attrs, G_N_ELEMENTS (attrs), &object); | 190 | rv = gkm_session_C_CreateObject (test->session, attrs, G_N_ELEMENTS (attrs), &object); |
3097 | 191 | gkm_assert_cmprv (rv, ==, CKR_OK); | 191 | gkm_assert_cmprv (rv, ==, CKR_OK); |
3098 | 192 | gkm_assert_cmpulong (object, !=, 0); | 192 | gkm_assert_cmpulong (object, !=, 0); |
3099 | 193 | g_free (data); | ||
3100 | 193 | } | 194 | } |
3101 | 194 | 195 | ||
3102 | 195 | static void | 196 | static void |
3103 | 196 | 197 | ||
3104 | === modified file 'pkcs11/xdg-store/test-xdg-trust.c' | |||
3105 | --- pkcs11/xdg-store/test-xdg-trust.c 2014-04-06 23:26:34 +0000 | |||
3106 | +++ pkcs11/xdg-store/test-xdg-trust.c 2015-02-27 19:55:06 +0000 | |||
3107 | @@ -656,6 +656,7 @@ | |||
3108 | 656 | n_checksum = sizeof (checksum); | 656 | n_checksum = sizeof (checksum); |
3109 | 657 | g_checksum_get_digest (md, checksum, &n_checksum); | 657 | g_checksum_get_digest (md, checksum, &n_checksum); |
3110 | 658 | g_assert (n_checksum == sizeof (checksum)); | 658 | g_assert (n_checksum == sizeof (checksum)); |
3111 | 659 | g_checksum_free (md); | ||
3112 | 659 | 660 | ||
3113 | 660 | rv = gkm_session_C_FindObjectsInit (test->session, lookup, G_N_ELEMENTS (lookup)); | 661 | rv = gkm_session_C_FindObjectsInit (test->session, lookup, G_N_ELEMENTS (lookup)); |
3114 | 661 | gkm_assert_cmprv (rv, ==, CKR_OK); | 662 | gkm_assert_cmprv (rv, ==, CKR_OK); |
3115 | 662 | 663 | ||
3116 | === modified file 'po/LINGUAS' | |||
3117 | --- po/LINGUAS 2014-04-06 23:26:34 +0000 | |||
3118 | +++ po/LINGUAS 2015-02-27 19:55:06 +0000 | |||
3119 | @@ -42,6 +42,7 @@ | |||
3120 | 42 | it | 42 | it |
3121 | 43 | ja | 43 | ja |
3122 | 44 | ka | 44 | ka |
3123 | 45 | kk | ||
3124 | 45 | km | 46 | km |
3125 | 46 | kn | 47 | kn |
3126 | 47 | ko | 48 | ko |
3127 | 48 | 49 | ||
3128 | === added file 'po/kk.po' | |||
3129 | --- po/kk.po 1970-01-01 00:00:00 +0000 | |||
3130 | +++ po/kk.po 2015-02-27 19:55:06 +0000 | |||
3131 | @@ -0,0 +1,572 @@ | |||
3132 | 1 | # Kazakh translation for gnome-keyring. | ||
3133 | 2 | # Copyright (C) 2014 gnome-keyring's COPYRIGHT HOLDER | ||
3134 | 3 | # This file is distributed under the same license as the gnome-keyring package. | ||
3135 | 4 | # Baurzhan Muftakhidinov <baurthefirst@gmail.com>, 2014. | ||
3136 | 5 | # | ||
3137 | 6 | msgid "" | ||
3138 | 7 | msgstr "" | ||
3139 | 8 | "Project-Id-Version: gnome-keyring master\n" | ||
3140 | 9 | "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gnome-" | ||
3141 | 10 | "keyring&keywords=I18N+L10N&component=general\n" | ||
3142 | 11 | "POT-Creation-Date: 2014-10-28 07:44+0000\n" | ||
3143 | 12 | "PO-Revision-Date: 2014-10-28 17:27+0600\n" | ||
3144 | 13 | "Last-Translator: Baurzhan Muftakhidinov <baurthefirst@gmail.com>\n" | ||
3145 | 14 | "Language-Team: Kazakh <kk@li.org>\n" | ||
3146 | 15 | "Language: kk\n" | ||
3147 | 16 | "MIME-Version: 1.0\n" | ||
3148 | 17 | "Content-Type: text/plain; charset=UTF-8\n" | ||
3149 | 18 | "Content-Transfer-Encoding: 8bit\n" | ||
3150 | 19 | "X-Generator: Poedit 1.6.9\n" | ||
3151 | 20 | |||
3152 | 21 | #. TRANSLATORS: This is the label for an keyring created without a label | ||
3153 | 22 | #: ../daemon/dbus/gkd-secret-change.c:85 | ||
3154 | 23 | #: ../daemon/dbus/gkd-secret-change.c:121 | ||
3155 | 24 | #: ../daemon/dbus/gkd-secret-create.c:78 | ||
3156 | 25 | #: ../pkcs11/secret-store/gkm-secret-collection.c:324 | ||
3157 | 26 | #: ../pkcs11/wrap-layer/gkm-wrap-login.c:345 | ||
3158 | 27 | #: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:753 | ||
3159 | 28 | msgid "Unnamed" | ||
3160 | 29 | msgstr "Атаусыз" | ||
3161 | 30 | |||
3162 | 31 | #: ../daemon/dbus/gkd-secret-change.c:90 | ||
3163 | 32 | #, c-format | ||
3164 | 33 | msgid "Enter the old password for the '%s' keyring" | ||
3165 | 34 | msgstr "'%s' кілттер бауы үшін ескі парольді енгізіңіз" | ||
3166 | 35 | |||
3167 | 36 | #: ../daemon/dbus/gkd-secret-change.c:94 | ||
3168 | 37 | #, c-format | ||
3169 | 38 | msgid "" | ||
3170 | 39 | "An application wants to change the password for the '%s' keyring. Enter the " | ||
3171 | 40 | "old password for it." | ||
3172 | 41 | msgstr "" | ||
3173 | 42 | "Қолданба '%s' кілттер бауы үшін парольді өзгерткісі келеді. Ол үшін ескі " | ||
3174 | 43 | "парольді енгізіңіз." | ||
3175 | 44 | |||
3176 | 45 | #: ../daemon/dbus/gkd-secret-change.c:100 | ||
3177 | 46 | #: ../daemon/dbus/gkd-secret-change.c:136 | ||
3178 | 47 | #: ../daemon/dbus/gkd-secret-change.c:147 | ||
3179 | 48 | #: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:1143 | ||
3180 | 49 | #: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:1255 | ||
3181 | 50 | #: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:1290 | ||
3182 | 51 | msgid "Continue" | ||
3183 | 52 | msgstr "Жалғастыру" | ||
3184 | 53 | |||
3185 | 54 | #: ../daemon/dbus/gkd-secret-change.c:126 | ||
3186 | 55 | #, c-format | ||
3187 | 56 | msgid "Choose a new password for the '%s' keyring" | ||
3188 | 57 | msgstr "'%s' кілттер бауы үшін жаңа парольді таңдаңыз" | ||
3189 | 58 | |||
3190 | 59 | #: ../daemon/dbus/gkd-secret-change.c:130 | ||
3191 | 60 | #, c-format | ||
3192 | 61 | msgid "" | ||
3193 | 62 | "An application wants to change the password for the '%s' keyring. Choose the " | ||
3194 | 63 | "new password you want to use for it." | ||
3195 | 64 | msgstr "" | ||
3196 | 65 | "Қолданба '%s' кілттер бауы үшін парольді өзгерткісі келеді. Қолданғыңыз " | ||
3197 | 66 | "келетін жаңа парольді енгізіңіз." | ||
3198 | 67 | |||
3199 | 68 | #: ../daemon/dbus/gkd-secret-change.c:143 | ||
3200 | 69 | #: ../daemon/dbus/gkd-secret-create.c:94 | ||
3201 | 70 | msgid "Store passwords unencrypted?" | ||
3202 | 71 | msgstr "Парольдерді шифрленбеген түрде сақтау керек пе?" | ||
3203 | 72 | |||
3204 | 73 | #: ../daemon/dbus/gkd-secret-change.c:145 | ||
3205 | 74 | #: ../daemon/dbus/gkd-secret-create.c:96 | ||
3206 | 75 | msgid "" | ||
3207 | 76 | "By choosing to use a blank password, your stored passwords will not be " | ||
3208 | 77 | "safely encrypted. They will be accessible by anyone with access to your " | ||
3209 | 78 | "files." | ||
3210 | 79 | msgstr "" | ||
3211 | 80 | "Бос парольді таңдасаңыз, сақталған парольдер шифрленбейтін болады. Яғни, " | ||
3212 | 81 | "сіздің файлдарыңызды оқи алатын адам парольдеріңізді де оқи алатын болады." | ||
3213 | 82 | |||
3214 | 83 | #: ../daemon/dbus/gkd-secret-change.c:153 | ||
3215 | 84 | msgid "The original password was incorrect" | ||
3216 | 85 | msgstr "Бастапқы паролі қате болды" | ||
3217 | 86 | |||
3218 | 87 | #: ../daemon/dbus/gkd-secret-change.c:354 | ||
3219 | 88 | msgid "Change Keyring Password" | ||
3220 | 89 | msgstr "Кілттер бауының паролін өзгерту" | ||
3221 | 90 | |||
3222 | 91 | #: ../daemon/dbus/gkd-secret-create.c:80 | ||
3223 | 92 | #, c-format | ||
3224 | 93 | msgid "" | ||
3225 | 94 | "An application wants to create a new keyring called '%s'. Choose the " | ||
3226 | 95 | "password you want to use for it." | ||
3227 | 96 | msgstr "" | ||
3228 | 97 | "Қолданба жаңа '%s' кілттер бауын жасағысы келеді. Қолданғыңыз келетін жаңа " | ||
3229 | 98 | "парольді енгізіңіз." | ||
3230 | 99 | |||
3231 | 100 | #: ../daemon/dbus/gkd-secret-create.c:84 | ||
3232 | 101 | msgid "Choose password for new keyring" | ||
3233 | 102 | msgstr "Кілттер бауы үшін жаңа парольді таңдаңыз" | ||
3234 | 103 | |||
3235 | 104 | #: ../daemon/dbus/gkd-secret-create.c:311 | ||
3236 | 105 | msgid "New Keyring Password" | ||
3237 | 106 | msgstr "Кілттер бауының жаңа паролі" | ||
3238 | 107 | |||
3239 | 108 | #: ../daemon/gnome-keyring-gpg.desktop.in.in.h:1 | ||
3240 | 109 | msgid "GPG Password Agent" | ||
3241 | 110 | msgstr "GPG парольдер агенті" | ||
3242 | 111 | |||
3243 | 112 | #: ../daemon/gnome-keyring-gpg.desktop.in.in.h:2 | ||
3244 | 113 | msgid "GNOME Keyring: GPG Agent" | ||
3245 | 114 | msgstr "GNOME Keyring: GPG агенті" | ||
3246 | 115 | |||
3247 | 116 | #: ../daemon/gnome-keyring-pkcs11.desktop.in.in.h:1 | ||
3248 | 117 | msgid "Certificate and Key Storage" | ||
3249 | 118 | msgstr "Сертификаттар және кілттер қоймасы" | ||
3250 | 119 | |||
3251 | 120 | #: ../daemon/gnome-keyring-pkcs11.desktop.in.in.h:2 | ||
3252 | 121 | msgid "GNOME Keyring: PKCS#11 Component" | ||
3253 | 122 | msgstr "GNOME Keyring: PKCS#11 құрамасы" | ||
3254 | 123 | |||
3255 | 124 | #: ../daemon/gnome-keyring-secrets.desktop.in.in.h:1 | ||
3256 | 125 | msgid "Secret Storage Service" | ||
3257 | 126 | msgstr "Құпия кілттер қоймасы қызметі" | ||
3258 | 127 | |||
3259 | 128 | #: ../daemon/gnome-keyring-secrets.desktop.in.in.h:2 | ||
3260 | 129 | msgid "GNOME Keyring: Secret Service" | ||
3261 | 130 | msgstr "GNOME Keyring: Құпия кілттер қызметі" | ||
3262 | 131 | |||
3263 | 132 | #: ../daemon/gnome-keyring-ssh.desktop.in.in.h:1 | ||
3264 | 133 | msgid "SSH Key Agent" | ||
3265 | 134 | msgstr "SSH кілттер агенті" | ||
3266 | 135 | |||
3267 | 136 | #: ../daemon/gnome-keyring-ssh.desktop.in.in.h:2 | ||
3268 | 137 | msgid "GNOME Keyring: SSH Agent" | ||
3269 | 138 | msgstr "GNOME Keyring: SSH агенті" | ||
3270 | 139 | |||
3271 | 140 | #: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:105 | ||
3272 | 141 | msgid "Unknown" | ||
3273 | 142 | msgstr "Белгісіз" | ||
3274 | 143 | |||
3275 | 144 | #: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:202 | ||
3276 | 145 | #, c-format | ||
3277 | 146 | msgid "PGP Key: %s" | ||
3278 | 147 | msgstr "PGP кілті: %s" | ||
3279 | 148 | |||
3280 | 149 | #: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:349 | ||
3281 | 150 | #: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:350 | ||
3282 | 151 | msgid "Enter Passphrase" | ||
3283 | 152 | msgstr "Кілттік фразаны енгізіңіз" | ||
3284 | 153 | |||
3285 | 154 | #: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:354 | ||
3286 | 155 | #: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:602 | ||
3287 | 156 | #: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:630 | ||
3288 | 157 | #: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:645 | ||
3289 | 158 | #: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:721 | ||
3290 | 159 | #: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:767 | ||
3291 | 160 | #: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:799 | ||
3292 | 161 | msgid "Unlock" | ||
3293 | 162 | msgstr "Босату" | ||
3294 | 163 | |||
3295 | 164 | #: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:383 | ||
3296 | 165 | msgid "Automatically unlock this key, whenever I'm logged in" | ||
3297 | 166 | msgstr "Мен жүйеге кірген кезде, бұл кілтті автобосату" | ||
3298 | 167 | |||
3299 | 168 | #. TRANSLATORS: This is the display label for the login keyring | ||
3300 | 169 | #: ../daemon/login/gkd-login.c:150 | ||
3301 | 170 | msgid "Login" | ||
3302 | 171 | msgstr "Кіру" | ||
3303 | 172 | |||
3304 | 173 | #: ../egg/dotlock.c:668 | ||
3305 | 174 | #, c-format | ||
3306 | 175 | msgid "failed to create temporary file `%s': %s\n" | ||
3307 | 176 | msgstr "`%s' уақытша файлын жасау сәтсіз: %s\n" | ||
3308 | 177 | |||
3309 | 178 | #: ../egg/dotlock.c:718 | ||
3310 | 179 | #, c-format | ||
3311 | 180 | msgid "error writing to `%s': %s\n" | ||
3312 | 181 | msgstr "`%s' ішіне жазу қатесі: %s\n" | ||
3313 | 182 | |||
3314 | 183 | #: ../egg/dotlock.c:782 | ||
3315 | 184 | #, c-format | ||
3316 | 185 | msgid "can't create `%s': %s\n" | ||
3317 | 186 | msgstr "`%s' жасау мүмкін емес: %s\n" | ||
3318 | 187 | |||
3319 | 188 | #. Note: It is unlikley that we get a race here unless a pid is | ||
3320 | 189 | #. reused too fast or a new process with the same pid as the one | ||
3321 | 190 | #. of the stale file tries to lock right at the same time as we. | ||
3322 | 191 | #: ../egg/dotlock.c:1048 | ||
3323 | 192 | #, c-format | ||
3324 | 193 | msgid "removing stale lockfile (created by %d)\n" | ||
3325 | 194 | msgstr "ескірген блоктау файлын өшіру (жасаған %d)\n" | ||
3326 | 195 | |||
3327 | 196 | #: ../egg/dotlock.c:1084 | ||
3328 | 197 | #, c-format | ||
3329 | 198 | msgid "waiting for lock (held by %d%s) %s...\n" | ||
3330 | 199 | msgstr "блоктауды күту (ұстап отырған %d%s) %s...\n" | ||
3331 | 200 | |||
3332 | 201 | #: ../egg/dotlock.c:1085 | ||
3333 | 202 | msgid "(deadlock?) " | ||
3334 | 203 | msgstr "(өзара блоктау?) " | ||
3335 | 204 | |||
3336 | 205 | #: ../egg/dotlock.c:1124 | ||
3337 | 206 | #, c-format | ||
3338 | 207 | msgid "lock `%s' not made: %s\n" | ||
3339 | 208 | msgstr "`%s' блоктауы жасалмады: %s\n" | ||
3340 | 209 | |||
3341 | 210 | #: ../egg/dotlock.c:1150 | ||
3342 | 211 | #, c-format | ||
3343 | 212 | msgid "waiting for lock %s...\n" | ||
3344 | 213 | msgstr "%s блоктауын күту...\n" | ||
3345 | 214 | |||
3346 | 215 | #: ../egg/egg-oid.c:40 | ||
3347 | 216 | msgid "Domain Component" | ||
3348 | 217 | msgstr "Домен құрамасы" | ||
3349 | 218 | |||
3350 | 219 | #: ../egg/egg-oid.c:42 | ||
3351 | 220 | msgid "User ID" | ||
3352 | 221 | msgstr "Пайдаланушы ID" | ||
3353 | 222 | |||
3354 | 223 | #: ../egg/egg-oid.c:45 | ||
3355 | 224 | msgid "Email Address" | ||
3356 | 225 | msgstr "Эл. пошта адресі" | ||
3357 | 226 | |||
3358 | 227 | #: ../egg/egg-oid.c:53 | ||
3359 | 228 | msgid "Date of Birth" | ||
3360 | 229 | msgstr "Туған күні" | ||
3361 | 230 | |||
3362 | 231 | #: ../egg/egg-oid.c:55 | ||
3363 | 232 | msgid "Place of Birth" | ||
3364 | 233 | msgstr "Туған жері" | ||
3365 | 234 | |||
3366 | 235 | #: ../egg/egg-oid.c:57 | ||
3367 | 236 | msgid "Gender" | ||
3368 | 237 | msgstr "Жынысы" | ||
3369 | 238 | |||
3370 | 239 | #: ../egg/egg-oid.c:59 | ||
3371 | 240 | msgid "Country of Citizenship" | ||
3372 | 241 | msgstr "Қай елдің азаматы" | ||
3373 | 242 | |||
3374 | 243 | #: ../egg/egg-oid.c:61 | ||
3375 | 244 | msgid "Country of Residence" | ||
3376 | 245 | msgstr "Тұрып жатқан ел" | ||
3377 | 246 | |||
3378 | 247 | #: ../egg/egg-oid.c:64 | ||
3379 | 248 | msgid "Common Name" | ||
3380 | 249 | msgstr "Жалпы аты" | ||
3381 | 250 | |||
3382 | 251 | #: ../egg/egg-oid.c:66 | ||
3383 | 252 | msgid "Surname" | ||
3384 | 253 | msgstr "Фамилия" | ||
3385 | 254 | |||
3386 | 255 | #: ../egg/egg-oid.c:68 | ||
3387 | 256 | msgid "Serial Number" | ||
3388 | 257 | msgstr "Сериялық нөмірі" | ||
3389 | 258 | |||
3390 | 259 | #: ../egg/egg-oid.c:70 | ||
3391 | 260 | msgid "Country" | ||
3392 | 261 | msgstr "Ел" | ||
3393 | 262 | |||
3394 | 263 | #: ../egg/egg-oid.c:72 | ||
3395 | 264 | msgid "Locality" | ||
3396 | 265 | msgstr "Аймақ" | ||
3397 | 266 | |||
3398 | 267 | #: ../egg/egg-oid.c:74 | ||
3399 | 268 | msgid "State" | ||
3400 | 269 | msgstr "Штат" | ||
3401 | 270 | |||
3402 | 271 | #: ../egg/egg-oid.c:76 | ||
3403 | 272 | msgid "Street" | ||
3404 | 273 | msgstr "Көше" | ||
3405 | 274 | |||
3406 | 275 | #: ../egg/egg-oid.c:78 | ||
3407 | 276 | msgid "Organization" | ||
3408 | 277 | msgstr "Ұйым" | ||
3409 | 278 | |||
3410 | 279 | #: ../egg/egg-oid.c:80 | ||
3411 | 280 | msgid "Organizational Unit" | ||
3412 | 281 | msgstr "Ұйым бөлімі" | ||
3413 | 282 | |||
3414 | 283 | #: ../egg/egg-oid.c:82 | ||
3415 | 284 | msgid "Title" | ||
3416 | 285 | msgstr "Атауы" | ||
3417 | 286 | |||
3418 | 287 | #: ../egg/egg-oid.c:84 | ||
3419 | 288 | msgid "Telephone Number" | ||
3420 | 289 | msgstr "Телефон нөмірі" | ||
3421 | 290 | |||
3422 | 291 | #: ../egg/egg-oid.c:86 | ||
3423 | 292 | msgid "Given Name" | ||
3424 | 293 | msgstr "Аты" | ||
3425 | 294 | |||
3426 | 295 | #: ../egg/egg-oid.c:88 | ||
3427 | 296 | msgid "Initials" | ||
3428 | 297 | msgstr "Инициалдар" | ||
3429 | 298 | |||
3430 | 299 | #: ../egg/egg-oid.c:90 | ||
3431 | 300 | msgid "Generation Qualifier" | ||
3432 | 301 | msgstr "Ұрпақ белгісі" | ||
3433 | 302 | |||
3434 | 303 | #: ../egg/egg-oid.c:92 | ||
3435 | 304 | msgid "DN Qualifier" | ||
3436 | 305 | msgstr "Айыру атының белгісі" | ||
3437 | 306 | |||
3438 | 307 | #: ../egg/egg-oid.c:94 | ||
3439 | 308 | msgid "Pseudonym" | ||
3440 | 309 | msgstr "Псевдоним" | ||
3441 | 310 | |||
3442 | 311 | #: ../egg/egg-oid.c:97 | ||
3443 | 312 | msgid "RSA" | ||
3444 | 313 | msgstr "RSA" | ||
3445 | 314 | |||
3446 | 315 | #: ../egg/egg-oid.c:98 | ||
3447 | 316 | msgid "MD2 with RSA" | ||
3448 | 317 | msgstr "RSA қолданатын MD2" | ||
3449 | 318 | |||
3450 | 319 | #: ../egg/egg-oid.c:99 | ||
3451 | 320 | msgid "MD5 with RSA" | ||
3452 | 321 | msgstr "RSA қолданатын MD5" | ||
3453 | 322 | |||
3454 | 323 | #: ../egg/egg-oid.c:100 | ||
3455 | 324 | msgid "SHA1 with RSA" | ||
3456 | 325 | msgstr "RSA қолданатын SHA1 " | ||
3457 | 326 | |||
3458 | 327 | #: ../egg/egg-oid.c:102 | ||
3459 | 328 | msgid "DSA" | ||
3460 | 329 | msgstr "DSA" | ||
3461 | 330 | |||
3462 | 331 | #: ../egg/egg-oid.c:103 | ||
3463 | 332 | msgid "SHA1 with DSA" | ||
3464 | 333 | msgstr "DSA қолданатын SHA1 " | ||
3465 | 334 | |||
3466 | 335 | #. Extended Key Usages | ||
3467 | 336 | #: ../egg/egg-oid.c:106 | ||
3468 | 337 | msgid "Server Authentication" | ||
3469 | 338 | msgstr "Сервер аутентификациясы" | ||
3470 | 339 | |||
3471 | 340 | #: ../egg/egg-oid.c:107 | ||
3472 | 341 | msgid "Client Authentication" | ||
3473 | 342 | msgstr "Клиент аутентификациясы" | ||
3474 | 343 | |||
3475 | 344 | #: ../egg/egg-oid.c:108 | ||
3476 | 345 | msgid "Code Signing" | ||
3477 | 346 | msgstr "Кодқа қолтаңба қою" | ||
3478 | 347 | |||
3479 | 348 | #: ../egg/egg-oid.c:109 | ||
3480 | 349 | msgid "Email Protection" | ||
3481 | 350 | msgstr "Эл. поштаны қорғау" | ||
3482 | 351 | |||
3483 | 352 | #: ../egg/egg-oid.c:110 | ||
3484 | 353 | msgid "Time Stamping" | ||
3485 | 354 | msgstr "Уақыт белгісі қою" | ||
3486 | 355 | |||
3487 | 356 | #: ../egg/egg-spawn.c:272 | ||
3488 | 357 | #, c-format | ||
3489 | 358 | msgid "Unexpected error in select() reading data from a child process (%s)" | ||
3490 | 359 | msgstr "" | ||
3491 | 360 | "Ұрпақ процестен мәліметті оқу кезінде select() ішіндегі күтпеген қате (%s)" | ||
3492 | 361 | |||
3493 | 362 | #: ../egg/egg-spawn.c:319 | ||
3494 | 363 | #, c-format | ||
3495 | 364 | msgid "Unexpected error in waitpid() (%s)" | ||
3496 | 365 | msgstr "Күтпеген waitpid() қатесі (%s)" | ||
3497 | 366 | |||
3498 | 367 | #: ../pkcs11/gkm/gkm-certificate.c:580 | ||
3499 | 368 | msgid "Unnamed Certificate" | ||
3500 | 369 | msgstr "Атаусыз сертификат" | ||
3501 | 370 | |||
3502 | 371 | #: ../pkcs11/ssh-store/gkm-ssh-private-key.c:341 | ||
3503 | 372 | msgid "Couldn't parse public SSH key" | ||
3504 | 373 | msgstr "Публикалық SSH кілтін талдау мүмкін емес" | ||
3505 | 374 | |||
3506 | 375 | #. Get the label ready | ||
3507 | 376 | #: ../pkcs11/wrap-layer/gkm-wrap-login.c:345 | ||
3508 | 377 | #, c-format | ||
3509 | 378 | msgid "Unlock password for: %s" | ||
3510 | 379 | msgstr "Босату паролі үшін: %s" | ||
3511 | 380 | |||
3512 | 381 | #: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:590 | ||
3513 | 382 | msgid "Unlock Login Keyring" | ||
3514 | 383 | msgstr "Жүйеге кіру кілттер бауын босату" | ||
3515 | 384 | |||
3516 | 385 | #: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:592 | ||
3517 | 386 | msgid "Enter password to unlock your login keyring" | ||
3518 | 387 | msgstr "Жүйеге кіру кілттер бауын босату үшін парольді енгізіңіз" | ||
3519 | 388 | |||
3520 | 389 | #: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:596 | ||
3521 | 390 | msgid "" | ||
3522 | 391 | "The password you use to log in to your computer no longer matches that of " | ||
3523 | 392 | "your login keyring." | ||
3524 | 393 | msgstr "" | ||
3525 | 394 | "Компьютеріңізге кіру үшін қолданылатын пароль енді жүйеге кіру кілттер бауы " | ||
3526 | 395 | "паролімен сәйкес келмейді." | ||
3527 | 396 | |||
3528 | 397 | #: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:598 | ||
3529 | 398 | msgid "" | ||
3530 | 399 | "The login keyring did not get unlocked when you logged into your computer." | ||
3531 | 400 | msgstr "" | ||
3532 | 401 | "Жүйеге кіру кілттер бауы сіз жүйеге кірген кезде блоктаудан босатылмады." | ||
3533 | 402 | |||
3534 | 403 | #: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:616 | ||
3535 | 404 | msgid "Unlock Keyring" | ||
3536 | 405 | msgstr "Кілттер бауын босату" | ||
3537 | 406 | |||
3538 | 407 | #: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:618 | ||
3539 | 408 | #, c-format | ||
3540 | 409 | msgid "Enter password for keyring '%s' to unlock" | ||
3541 | 410 | msgstr "'%s' кілттер бауын блоктаудан босату үшін парольді енгізіңіз" | ||
3542 | 411 | |||
3543 | 412 | #: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:622 | ||
3544 | 413 | #, c-format | ||
3545 | 414 | msgid "An application wants access to the keyring '%s', but it is locked" | ||
3546 | 415 | msgstr "" | ||
3547 | 416 | "Қолданба '%s' кілттер бауына қатынау талабын жасағысы келеді, бірақ, ол " | ||
3548 | 417 | "блокталған" | ||
3549 | 418 | |||
3550 | 419 | #: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:628 | ||
3551 | 420 | msgid "Automatically unlock this keyring whenever I'm logged in" | ||
3552 | 421 | msgstr "Мен жүйеге кірген кезде, бұл кілттер бауын автобосату" | ||
3553 | 422 | |||
3554 | 423 | #: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:639 | ||
3555 | 424 | msgid "Unlock private key" | ||
3556 | 425 | msgstr "Жеке кілтті блоктаудан босату" | ||
3557 | 426 | |||
3558 | 427 | #: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:641 | ||
3559 | 428 | msgid "Unlock certificate" | ||
3560 | 429 | msgstr "Сертификатты блоктаудан босату" | ||
3561 | 430 | |||
3562 | 431 | #: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:643 | ||
3563 | 432 | msgid "Unlock public key" | ||
3564 | 433 | msgstr "Публикалық кілтті блоктаудан босату" | ||
3565 | 434 | |||
3566 | 435 | #: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:654 | ||
3567 | 436 | msgid "Enter password to unlock the private key" | ||
3568 | 437 | msgstr "Жеке кілтті блоктаудан босату үшін парольді енгізіңіз" | ||
3569 | 438 | |||
3570 | 439 | #: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:656 | ||
3571 | 440 | msgid "Enter password to unlock the certificate" | ||
3572 | 441 | msgstr "Сертификатты блоктаудан босату үшін парольді енгізіңіз" | ||
3573 | 442 | |||
3574 | 443 | #: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:658 | ||
3575 | 444 | msgid "Enter password to unlock the public key" | ||
3576 | 445 | msgstr "Публикалық кілтті босату үшін парольді енгізіңіз" | ||
3577 | 446 | |||
3578 | 447 | #: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:660 | ||
3579 | 448 | msgid "Enter password to unlock" | ||
3580 | 449 | msgstr "Блоктаудан босату үшін парольді енгізіңіз" | ||
3581 | 450 | |||
3582 | 451 | #: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:670 | ||
3583 | 452 | msgid "Automatically unlock this key whenever I'm logged in" | ||
3584 | 453 | msgstr "Мен жүйеге кірген кезде, бұл кілтті автобосату" | ||
3585 | 454 | |||
3586 | 455 | #: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:672 | ||
3587 | 456 | msgid "Automatically unlock this certificate whenever I'm logged in" | ||
3588 | 457 | msgstr "Мен жүйеге кірген кезде, бұл сертификатты автобосату" | ||
3589 | 458 | |||
3590 | 459 | #: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:674 | ||
3591 | 460 | #: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:796 | ||
3592 | 461 | #: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:1140 | ||
3593 | 462 | #: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:1288 | ||
3594 | 463 | msgid "Automatically unlock whenever I'm logged in" | ||
3595 | 464 | msgstr "Мен жүйеге кірген кезде, автобосату" | ||
3596 | 465 | |||
3597 | 466 | #. TRANSLATORS: The private key is locked | ||
3598 | 467 | #: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:685 | ||
3599 | 468 | #, c-format | ||
3600 | 469 | msgid "An application wants access to the private key '%s', but it is locked" | ||
3601 | 470 | msgstr "" | ||
3602 | 471 | "Қолданба '%s' жеке кілтіне қатынау талабын жасағысы келеді, бірақ, ол " | ||
3603 | 472 | "блокталған" | ||
3604 | 473 | |||
3605 | 474 | #. TRANSLATORS: The certificate is locked | ||
3606 | 475 | #: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:688 | ||
3607 | 476 | #, c-format | ||
3608 | 477 | msgid "An application wants access to the certificate '%s', but it is locked" | ||
3609 | 478 | msgstr "" | ||
3610 | 479 | "Қолданба '%s' сертификатына қатынау талабын жасағысы келеді, бірақ, ол " | ||
3611 | 480 | "блокталған" | ||
3612 | 481 | |||
3613 | 482 | #. TRANSLATORS: The public key is locked | ||
3614 | 483 | #: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:691 | ||
3615 | 484 | #, c-format | ||
3616 | 485 | msgid "An application wants access to the public key '%s', but it is locked" | ||
3617 | 486 | msgstr "" | ||
3618 | 487 | "Қолданба '%s' публикалық кілтіне қатынау талабын жасағысы келеді, бірақ, ол " | ||
3619 | 488 | "блокталған" | ||
3620 | 489 | |||
3621 | 490 | #. TRANSLATORS: The object '%s' is locked | ||
3622 | 491 | #: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:694 | ||
3623 | 492 | #, c-format | ||
3624 | 493 | msgid "An application wants access to '%s', but it is locked" | ||
3625 | 494 | msgstr "" | ||
3626 | 495 | "Қолданба '%s' үшін қатынау талабын жасағысы келеді, бірақ, ол блокталған" | ||
3627 | 496 | |||
3628 | 497 | #: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:765 | ||
3629 | 498 | msgid "The unlock password was incorrect" | ||
3630 | 499 | msgstr "Босату паролі қате болды" | ||
3631 | 500 | |||
3632 | 501 | #. Build up the prompt | ||
3633 | 502 | #: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:786 | ||
3634 | 503 | msgid "Unlock certificate/key storage" | ||
3635 | 504 | msgstr "Сертификаттар/кілттер қоймасын блоктаудан босату" | ||
3636 | 505 | |||
3637 | 506 | #: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:787 | ||
3638 | 507 | msgid "Enter password to unlock the certificate/key storage" | ||
3639 | 508 | msgstr "" | ||
3640 | 509 | "Сертификаттар/кілттер қоймасын блоктаудан босату үшін парольді енгізіңіз" | ||
3641 | 510 | |||
3642 | 511 | #. TRANSLATORS: The storage is locked, and needs unlocking before the application can use it. | ||
3643 | 512 | #: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:790 | ||
3644 | 513 | #, c-format | ||
3645 | 514 | msgid "" | ||
3646 | 515 | "An application wants access to the certificate/key storage '%s', but it is " | ||
3647 | 516 | "locked" | ||
3648 | 517 | msgstr "" | ||
3649 | 518 | "Қолданба '%s' сертификаттар/кілттер қоймасына қатынау талабын жасағысы " | ||
3650 | 519 | "келеді, бірақ, ол блокталған" | ||
3651 | 520 | |||
3652 | 521 | #: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:1131 | ||
3653 | 522 | msgid "New Password Required" | ||
3654 | 523 | msgstr "Жаңа пароль керек" | ||
3655 | 524 | |||
3656 | 525 | #: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:1132 | ||
3657 | 526 | msgid "New password required for secure storage" | ||
3658 | 527 | msgstr "Қауіпсіз қойма үшін жаңа пароль керек" | ||
3659 | 528 | |||
3660 | 529 | #: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:1134 | ||
3661 | 530 | #, c-format | ||
3662 | 531 | msgid "" | ||
3663 | 532 | "In order to prepare '%s' for storage of certificates or keys, a password is " | ||
3664 | 533 | "required" | ||
3665 | 534 | msgstr "" | ||
3666 | 535 | "'%s' ішіне сертификаттар не кілттерді сақтауға дайындау үшін пароль керек" | ||
3667 | 536 | |||
3668 | 537 | #: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:1248 | ||
3669 | 538 | #: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:1279 | ||
3670 | 539 | msgid "Change Password" | ||
3671 | 540 | msgstr "Парольді өзгерту" | ||
3672 | 541 | |||
3673 | 542 | #: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:1249 | ||
3674 | 543 | msgid "Original password for secure storage" | ||
3675 | 544 | msgstr "Қауіпсіз қойма үшін ескі паролі" | ||
3676 | 545 | |||
3677 | 546 | #: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:1251 | ||
3678 | 547 | #, c-format | ||
3679 | 548 | msgid "To change the password for '%s', the original password is required" | ||
3680 | 549 | msgstr "'%s' паролін өзгерту үшін ескі паролі қажет" | ||
3681 | 550 | |||
3682 | 551 | #: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:1280 | ||
3683 | 552 | msgid "Change password for secure storage" | ||
3684 | 553 | msgstr "Қауіпсіз қойма үшін парольді өзгерту" | ||
3685 | 554 | |||
3686 | 555 | #: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:1282 | ||
3687 | 556 | #, c-format | ||
3688 | 557 | msgid "Type a new password for '%s'" | ||
3689 | 558 | msgstr "'%s' үшін жаңа парольді енгізіңіз" | ||
3690 | 559 | |||
3691 | 560 | #: ../tool/gkr-tool.c:100 | ||
3692 | 561 | #, c-format | ||
3693 | 562 | msgid "usage: gnome-keyring command [options]\n" | ||
3694 | 563 | msgstr "қолданылуы: gnome-keyring команда [опциялар]\n" | ||
3695 | 564 | |||
3696 | 565 | #: ../tool/gkr-tool.c:102 | ||
3697 | 566 | msgid "commands: " | ||
3698 | 567 | msgstr "командалар: " | ||
3699 | 568 | |||
3700 | 569 | #. Translators: keep same length as translated message "commands: " | ||
3701 | 570 | #: ../tool/gkr-tool.c:106 | ||
3702 | 571 | msgid " " | ||
3703 | 572 | msgstr " " | ||
3704 | 0 | 573 | ||
3705 | === modified file 'po/tr.po' | |||
3706 | --- po/tr.po 2013-11-15 15:32:11 +0000 | |||
3707 | +++ po/tr.po 2015-02-27 19:55:06 +0000 | |||
3708 | @@ -8,15 +8,15 @@ | |||
3709 | 8 | # Serdar CICEK <serdar@nerd.com.tr>, 2008. | 8 | # Serdar CICEK <serdar@nerd.com.tr>, 2008. |
3710 | 9 | # Baris Cicek <baris@teamforce.name.tr>, 2008, 2009. | 9 | # Baris Cicek <baris@teamforce.name.tr>, 2008, 2009. |
3711 | 10 | # Osman Karagöz <osmank3@gmail.com>, 2013. | 10 | # Osman Karagöz <osmank3@gmail.com>, 2013. |
3713 | 11 | # Muhammet Kara <muhammetk@gmail.com>, 2011, 2013. | 11 | # Muhammet Kara <muhammetk@gmail.com>, 2011, 2013, 2014. |
3714 | 12 | # | 12 | # |
3715 | 13 | msgid "" | 13 | msgid "" |
3716 | 14 | msgstr "" | 14 | msgstr "" |
3717 | 15 | "Project-Id-Version: gnome-keyring\n" | 15 | "Project-Id-Version: gnome-keyring\n" |
3718 | 16 | "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gnome-" | 16 | "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gnome-" |
3719 | 17 | "keyring&keywords=I18N+L10N&component=general\n" | 17 | "keyring&keywords=I18N+L10N&component=general\n" |
3722 | 18 | "POT-Creation-Date: 2013-08-26 16:32+0000\n" | 18 | "POT-Creation-Date: 2014-12-06 19:51+0000\n" |
3723 | 19 | "PO-Revision-Date: 2013-09-01 13:11+0300\n" | 19 | "PO-Revision-Date: 2014-12-07 00:18+0200\n" |
3724 | 20 | "Last-Translator: Muhammet Kara <muhammetk@gmail.com>\n" | 20 | "Last-Translator: Muhammet Kara <muhammetk@gmail.com>\n" |
3725 | 21 | "Language-Team: Türkçe <gnome-turk@gnome.org>\n" | 21 | "Language-Team: Türkçe <gnome-turk@gnome.org>\n" |
3726 | 22 | "Language: tr\n" | 22 | "Language: tr\n" |
3727 | @@ -27,21 +27,21 @@ | |||
3728 | 27 | "X-Generator: Gtranslator 2.91.6\n" | 27 | "X-Generator: Gtranslator 2.91.6\n" |
3729 | 28 | 28 | ||
3730 | 29 | #. TRANSLATORS: This is the label for an keyring created without a label | 29 | #. TRANSLATORS: This is the label for an keyring created without a label |
3737 | 30 | #: ../daemon/dbus/gkd-secret-change.c:86 | 30 | #: ../daemon/dbus/gkd-secret-change.c:85 |
3738 | 31 | #: ../daemon/dbus/gkd-secret-change.c:122 | 31 | #: ../daemon/dbus/gkd-secret-change.c:121 |
3739 | 32 | #: ../daemon/dbus/gkd-secret-create.c:79 | 32 | #: ../daemon/dbus/gkd-secret-create.c:78 |
3740 | 33 | #: ../pkcs11/secret-store/gkm-secret-collection.c:325 | 33 | #: ../pkcs11/secret-store/gkm-secret-collection.c:324 |
3741 | 34 | #: ../pkcs11/wrap-layer/gkm-wrap-login.c:346 | 34 | #: ../pkcs11/wrap-layer/gkm-wrap-login.c:345 |
3742 | 35 | #: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:754 | 35 | #: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:753 |
3743 | 36 | msgid "Unnamed" | 36 | msgid "Unnamed" |
3744 | 37 | msgstr "Adsız" | 37 | msgstr "Adsız" |
3745 | 38 | 38 | ||
3747 | 39 | #: ../daemon/dbus/gkd-secret-change.c:91 | 39 | #: ../daemon/dbus/gkd-secret-change.c:90 |
3748 | 40 | #, c-format | 40 | #, c-format |
3749 | 41 | msgid "Enter the old password for the '%s' keyring" | 41 | msgid "Enter the old password for the '%s' keyring" |
3750 | 42 | msgstr "'%s' anahtarlığı için eski parolayı girin" | 42 | msgstr "'%s' anahtarlığı için eski parolayı girin" |
3751 | 43 | 43 | ||
3753 | 44 | #: ../daemon/dbus/gkd-secret-change.c:95 | 44 | #: ../daemon/dbus/gkd-secret-change.c:94 |
3754 | 45 | #, c-format | 45 | #, c-format |
3755 | 46 | msgid "" | 46 | msgid "" |
3756 | 47 | "An application wants to change the password for the '%s' keyring. Enter the " | 47 | "An application wants to change the password for the '%s' keyring. Enter the " |
3757 | @@ -50,21 +50,21 @@ | |||
3758 | 50 | "Bir uygulama '%s' anahtarlığının parolasını değiştirmek istiyor. Bu " | 50 | "Bir uygulama '%s' anahtarlığının parolasını değiştirmek istiyor. Bu " |
3759 | 51 | "anahtarlık için eski parolayı girin." | 51 | "anahtarlık için eski parolayı girin." |
3760 | 52 | 52 | ||
3767 | 53 | #: ../daemon/dbus/gkd-secret-change.c:101 | 53 | #: ../daemon/dbus/gkd-secret-change.c:100 |
3768 | 54 | #: ../daemon/dbus/gkd-secret-change.c:137 | 54 | #: ../daemon/dbus/gkd-secret-change.c:136 |
3769 | 55 | #: ../daemon/dbus/gkd-secret-change.c:148 | 55 | #: ../daemon/dbus/gkd-secret-change.c:147 |
3770 | 56 | #: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:1144 | 56 | #: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:1163 |
3771 | 57 | #: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:1256 | 57 | #: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:1276 |
3772 | 58 | #: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:1291 | 58 | #: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:1311 |
3773 | 59 | msgid "Continue" | 59 | msgid "Continue" |
3774 | 60 | msgstr "Devam" | 60 | msgstr "Devam" |
3775 | 61 | 61 | ||
3777 | 62 | #: ../daemon/dbus/gkd-secret-change.c:127 | 62 | #: ../daemon/dbus/gkd-secret-change.c:126 |
3778 | 63 | #, c-format | 63 | #, c-format |
3779 | 64 | msgid "Choose a new password for the '%s' keyring" | 64 | msgid "Choose a new password for the '%s' keyring" |
3780 | 65 | msgstr "'%s' anahtarlığı için yeni bir parola belirleyin" | 65 | msgstr "'%s' anahtarlığı için yeni bir parola belirleyin" |
3781 | 66 | 66 | ||
3783 | 67 | #: ../daemon/dbus/gkd-secret-change.c:131 | 67 | #: ../daemon/dbus/gkd-secret-change.c:130 |
3784 | 68 | #, c-format | 68 | #, c-format |
3785 | 69 | msgid "" | 69 | msgid "" |
3786 | 70 | "An application wants to change the password for the '%s' keyring. Choose the " | 70 | "An application wants to change the password for the '%s' keyring. Choose the " |
3787 | @@ -73,13 +73,13 @@ | |||
3788 | 73 | "Bir uygulama '%s' anahtarlığının parolasını değiştirmek istiyor. Bu " | 73 | "Bir uygulama '%s' anahtarlığının parolasını değiştirmek istiyor. Bu " |
3789 | 74 | "anahtarlık için kullanmak istediğiniz yeni parolayı seçin." | 74 | "anahtarlık için kullanmak istediğiniz yeni parolayı seçin." |
3790 | 75 | 75 | ||
3793 | 76 | #: ../daemon/dbus/gkd-secret-change.c:144 | 76 | #: ../daemon/dbus/gkd-secret-change.c:143 |
3794 | 77 | #: ../daemon/dbus/gkd-secret-create.c:95 | 77 | #: ../daemon/dbus/gkd-secret-create.c:94 |
3795 | 78 | msgid "Store passwords unencrypted?" | 78 | msgid "Store passwords unencrypted?" |
3796 | 79 | msgstr "Parolalar şifrelenmeden depolansın mı?" | 79 | msgstr "Parolalar şifrelenmeden depolansın mı?" |
3797 | 80 | 80 | ||
3800 | 81 | #: ../daemon/dbus/gkd-secret-change.c:146 | 81 | #: ../daemon/dbus/gkd-secret-change.c:145 |
3801 | 82 | #: ../daemon/dbus/gkd-secret-create.c:97 | 82 | #: ../daemon/dbus/gkd-secret-create.c:96 |
3802 | 83 | msgid "" | 83 | msgid "" |
3803 | 84 | "By choosing to use a blank password, your stored passwords will not be " | 84 | "By choosing to use a blank password, your stored passwords will not be " |
3804 | 85 | "safely encrypted. They will be accessible by anyone with access to your " | 85 | "safely encrypted. They will be accessible by anyone with access to your " |
3805 | @@ -88,15 +88,15 @@ | |||
3806 | 88 | "Parolayı boş kullanmak seçildiğinde, depolanan parolalarınız güvenli olarak " | 88 | "Parolayı boş kullanmak seçildiğinde, depolanan parolalarınız güvenli olarak " |
3807 | 89 | "şifrelenmeyecek. Parolalarınıza dosyalarınıza erişebilen kişiler erişecek." | 89 | "şifrelenmeyecek. Parolalarınıza dosyalarınıza erişebilen kişiler erişecek." |
3808 | 90 | 90 | ||
3810 | 91 | #: ../daemon/dbus/gkd-secret-change.c:154 | 91 | #: ../daemon/dbus/gkd-secret-change.c:153 |
3811 | 92 | msgid "The original password was incorrect" | 92 | msgid "The original password was incorrect" |
3812 | 93 | msgstr "Asıl parola yanlış" | 93 | msgstr "Asıl parola yanlış" |
3813 | 94 | 94 | ||
3815 | 95 | #: ../daemon/dbus/gkd-secret-change.c:355 | 95 | #: ../daemon/dbus/gkd-secret-change.c:354 |
3816 | 96 | msgid "Change Keyring Password" | 96 | msgid "Change Keyring Password" |
3817 | 97 | msgstr "Anahtarlık Parolası Değiştir" | 97 | msgstr "Anahtarlık Parolası Değiştir" |
3818 | 98 | 98 | ||
3820 | 99 | #: ../daemon/dbus/gkd-secret-create.c:81 | 99 | #: ../daemon/dbus/gkd-secret-create.c:80 |
3821 | 100 | #, c-format | 100 | #, c-format |
3822 | 101 | msgid "" | 101 | msgid "" |
3823 | 102 | "An application wants to create a new keyring called '%s'. Choose the " | 102 | "An application wants to create a new keyring called '%s'. Choose the " |
3824 | @@ -105,11 +105,11 @@ | |||
3825 | 105 | "Bir uygulama '%s' adlı yeni bir anahtarlık oluşturmak istiyor. Bunun için " | 105 | "Bir uygulama '%s' adlı yeni bir anahtarlık oluşturmak istiyor. Bunun için " |
3826 | 106 | "kullanmak istediğiniz parolayı seçin." | 106 | "kullanmak istediğiniz parolayı seçin." |
3827 | 107 | 107 | ||
3829 | 108 | #: ../daemon/dbus/gkd-secret-create.c:85 | 108 | #: ../daemon/dbus/gkd-secret-create.c:84 |
3830 | 109 | msgid "Choose password for new keyring" | 109 | msgid "Choose password for new keyring" |
3831 | 110 | msgstr "Yeni anahtarlık için parola seçin" | 110 | msgstr "Yeni anahtarlık için parola seçin" |
3832 | 111 | 111 | ||
3834 | 112 | #: ../daemon/dbus/gkd-secret-create.c:312 | 112 | #: ../daemon/dbus/gkd-secret-create.c:311 |
3835 | 113 | msgid "New Keyring Password" | 113 | msgid "New Keyring Password" |
3836 | 114 | msgstr "Yeni Anahtarlık Parolası" | 114 | msgstr "Yeni Anahtarlık Parolası" |
3837 | 115 | 115 | ||
3838 | @@ -145,36 +145,36 @@ | |||
3839 | 145 | msgid "GNOME Keyring: SSH Agent" | 145 | msgid "GNOME Keyring: SSH Agent" |
3840 | 146 | msgstr "GNOME Anahtarlığı: SSH Aracı" | 146 | msgstr "GNOME Anahtarlığı: SSH Aracı" |
3841 | 147 | 147 | ||
3843 | 148 | #: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:106 | 148 | #: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:82 |
3844 | 149 | msgid "Unknown" | 149 | msgid "Unknown" |
3845 | 150 | msgstr "Bilinmeyen" | 150 | msgstr "Bilinmeyen" |
3846 | 151 | 151 | ||
3854 | 152 | #: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:203 | 152 | #: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:144 |
3855 | 153 | #, c-format | 153 | #: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:145 |
3849 | 154 | msgid "PGP Key: %s" | ||
3850 | 155 | msgstr "PGP Anahtarı: %s" | ||
3851 | 156 | |||
3852 | 157 | #: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:350 | ||
3853 | 158 | #: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:351 | ||
3856 | 159 | msgid "Enter Passphrase" | 154 | msgid "Enter Passphrase" |
3857 | 160 | msgstr "Parola Metnini Girin" | 155 | msgstr "Parola Metnini Girin" |
3858 | 161 | 156 | ||
3866 | 162 | #: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:355 | 157 | #: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:149 |
3867 | 163 | #: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:603 | 158 | #: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:602 |
3868 | 164 | #: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:631 | 159 | #: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:630 |
3869 | 165 | #: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:646 | 160 | #: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:645 |
3870 | 166 | #: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:722 | 161 | #: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:721 |
3871 | 167 | #: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:768 | 162 | #: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:767 |
3872 | 168 | #: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:800 | 163 | #: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:799 |
3873 | 169 | msgid "Unlock" | 164 | msgid "Unlock" |
3874 | 170 | msgstr "Kilidini kaldır" | 165 | msgstr "Kilidini kaldır" |
3875 | 171 | 166 | ||
3877 | 172 | #: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:384 | 167 | #: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:162 |
3878 | 173 | msgid "Automatically unlock this key, whenever I'm logged in" | 168 | msgid "Automatically unlock this key, whenever I'm logged in" |
3879 | 174 | msgstr "Her oturum açtığımda, bu anahtarın kilidini otomatik olarak aç" | 169 | msgstr "Her oturum açtığımda, bu anahtarın kilidini otomatik olarak aç" |
3880 | 175 | 170 | ||
3881 | 171 | #: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:225 | ||
3882 | 172 | #, c-format | ||
3883 | 173 | msgid "PGP Key: %s" | ||
3884 | 174 | msgstr "PGP Anahtarı: %s" | ||
3885 | 175 | |||
3886 | 176 | #. TRANSLATORS: This is the display label for the login keyring | 176 | #. TRANSLATORS: This is the display label for the login keyring |
3888 | 177 | #: ../daemon/login/gkd-login.c:145 | 177 | #: ../daemon/login/gkd-login.c:158 |
3889 | 178 | msgid "Login" | 178 | msgid "Login" |
3890 | 179 | msgstr "Giriş" | 179 | msgstr "Giriş" |
3891 | 180 | 180 | ||
3892 | @@ -221,257 +221,256 @@ | |||
3893 | 221 | msgid "waiting for lock %s...\n" | 221 | msgid "waiting for lock %s...\n" |
3894 | 222 | msgstr "%s kilidi bekleniyor...\n" | 222 | msgstr "%s kilidi bekleniyor...\n" |
3895 | 223 | 223 | ||
3897 | 224 | #: ../egg/egg-oid.c:41 | 224 | #: ../egg/egg-oid.c:40 |
3898 | 225 | msgid "Domain Component" | 225 | msgid "Domain Component" |
3899 | 226 | msgstr "Alan Bileşeni" | 226 | msgstr "Alan Bileşeni" |
3900 | 227 | 227 | ||
3902 | 228 | #: ../egg/egg-oid.c:43 | 228 | #: ../egg/egg-oid.c:42 |
3903 | 229 | msgid "User ID" | 229 | msgid "User ID" |
3904 | 230 | msgstr "Kullanıcı ID" | 230 | msgstr "Kullanıcı ID" |
3905 | 231 | 231 | ||
3907 | 232 | #: ../egg/egg-oid.c:46 | 232 | #: ../egg/egg-oid.c:45 |
3908 | 233 | msgid "Email Address" | 233 | msgid "Email Address" |
3909 | 234 | msgstr "E-posta Adresi" | 234 | msgstr "E-posta Adresi" |
3910 | 235 | 235 | ||
3912 | 236 | #: ../egg/egg-oid.c:54 | 236 | #: ../egg/egg-oid.c:53 |
3913 | 237 | msgid "Date of Birth" | 237 | msgid "Date of Birth" |
3914 | 238 | msgstr "Doğum Tarihi" | 238 | msgstr "Doğum Tarihi" |
3915 | 239 | 239 | ||
3917 | 240 | #: ../egg/egg-oid.c:56 | 240 | #: ../egg/egg-oid.c:55 |
3918 | 241 | msgid "Place of Birth" | 241 | msgid "Place of Birth" |
3919 | 242 | msgstr "Doğum Yeri" | 242 | msgstr "Doğum Yeri" |
3920 | 243 | 243 | ||
3922 | 244 | #: ../egg/egg-oid.c:58 | 244 | #: ../egg/egg-oid.c:57 |
3923 | 245 | msgid "Gender" | 245 | msgid "Gender" |
3924 | 246 | msgstr "Cinsiyet" | 246 | msgstr "Cinsiyet" |
3925 | 247 | 247 | ||
3927 | 248 | #: ../egg/egg-oid.c:60 | 248 | #: ../egg/egg-oid.c:59 |
3928 | 249 | msgid "Country of Citizenship" | 249 | msgid "Country of Citizenship" |
3929 | 250 | msgstr "Vatandaşlık Ülkesi" | 250 | msgstr "Vatandaşlık Ülkesi" |
3930 | 251 | 251 | ||
3932 | 252 | #: ../egg/egg-oid.c:62 | 252 | #: ../egg/egg-oid.c:61 |
3933 | 253 | msgid "Country of Residence" | 253 | msgid "Country of Residence" |
3934 | 254 | msgstr "Yerleşim Ülkesi" | 254 | msgstr "Yerleşim Ülkesi" |
3935 | 255 | 255 | ||
3937 | 256 | #: ../egg/egg-oid.c:65 | 256 | #: ../egg/egg-oid.c:64 |
3938 | 257 | msgid "Common Name" | 257 | msgid "Common Name" |
3939 | 258 | msgstr "Ortak Ad" | 258 | msgstr "Ortak Ad" |
3940 | 259 | 259 | ||
3942 | 260 | #: ../egg/egg-oid.c:67 | 260 | #: ../egg/egg-oid.c:66 |
3943 | 261 | msgid "Surname" | 261 | msgid "Surname" |
3944 | 262 | msgstr "Soyadı" | 262 | msgstr "Soyadı" |
3945 | 263 | 263 | ||
3947 | 264 | #: ../egg/egg-oid.c:69 | 264 | #: ../egg/egg-oid.c:68 |
3948 | 265 | msgid "Serial Number" | 265 | msgid "Serial Number" |
3949 | 266 | msgstr "Seri Numarası" | 266 | msgstr "Seri Numarası" |
3950 | 267 | 267 | ||
3952 | 268 | #: ../egg/egg-oid.c:71 | 268 | #: ../egg/egg-oid.c:70 |
3953 | 269 | msgid "Country" | 269 | msgid "Country" |
3954 | 270 | msgstr "Ülke" | 270 | msgstr "Ülke" |
3955 | 271 | 271 | ||
3957 | 272 | #: ../egg/egg-oid.c:73 | 272 | #: ../egg/egg-oid.c:72 |
3958 | 273 | msgid "Locality" | 273 | msgid "Locality" |
3959 | 274 | msgstr "Yöre" | 274 | msgstr "Yöre" |
3960 | 275 | 275 | ||
3962 | 276 | #: ../egg/egg-oid.c:75 | 276 | #: ../egg/egg-oid.c:74 |
3963 | 277 | msgid "State" | 277 | msgid "State" |
3964 | 278 | msgstr "Eyalet" | 278 | msgstr "Eyalet" |
3965 | 279 | 279 | ||
3967 | 280 | #: ../egg/egg-oid.c:77 | 280 | #: ../egg/egg-oid.c:76 |
3968 | 281 | msgid "Street" | 281 | msgid "Street" |
3969 | 282 | msgstr "Sokak" | 282 | msgstr "Sokak" |
3970 | 283 | 283 | ||
3972 | 284 | #: ../egg/egg-oid.c:79 | 284 | #: ../egg/egg-oid.c:78 |
3973 | 285 | msgid "Organization" | 285 | msgid "Organization" |
3974 | 286 | msgstr "Organizasyon" | 286 | msgstr "Organizasyon" |
3975 | 287 | 287 | ||
3977 | 288 | #: ../egg/egg-oid.c:81 | 288 | #: ../egg/egg-oid.c:80 |
3978 | 289 | msgid "Organizational Unit" | 289 | msgid "Organizational Unit" |
3979 | 290 | msgstr "Organizasyon Birimi" | 290 | msgstr "Organizasyon Birimi" |
3980 | 291 | 291 | ||
3982 | 292 | #: ../egg/egg-oid.c:83 | 292 | #: ../egg/egg-oid.c:82 |
3983 | 293 | msgid "Title" | 293 | msgid "Title" |
3984 | 294 | msgstr "Başlık" | 294 | msgstr "Başlık" |
3985 | 295 | 295 | ||
3987 | 296 | #: ../egg/egg-oid.c:85 | 296 | #: ../egg/egg-oid.c:84 |
3988 | 297 | msgid "Telephone Number" | 297 | msgid "Telephone Number" |
3989 | 298 | msgstr "Telefon Numarası" | 298 | msgstr "Telefon Numarası" |
3990 | 299 | 299 | ||
3992 | 300 | #: ../egg/egg-oid.c:87 | 300 | #: ../egg/egg-oid.c:86 |
3993 | 301 | msgid "Given Name" | 301 | msgid "Given Name" |
3994 | 302 | msgstr "Verilen Ad" | 302 | msgstr "Verilen Ad" |
3995 | 303 | 303 | ||
3997 | 304 | #: ../egg/egg-oid.c:89 | 304 | #: ../egg/egg-oid.c:88 |
3998 | 305 | msgid "Initials" | 305 | msgid "Initials" |
3999 | 306 | msgstr "Başharfleri" | 306 | msgstr "Başharfleri" |
4000 | 307 | 307 | ||
4002 | 308 | #: ../egg/egg-oid.c:91 | 308 | #: ../egg/egg-oid.c:90 |
4003 | 309 | msgid "Generation Qualifier" | 309 | msgid "Generation Qualifier" |
4004 | 310 | msgstr "Üretim Belirteci" | 310 | msgstr "Üretim Belirteci" |
4005 | 311 | 311 | ||
4007 | 312 | #: ../egg/egg-oid.c:93 | 312 | #: ../egg/egg-oid.c:92 |
4008 | 313 | msgid "DN Qualifier" | 313 | msgid "DN Qualifier" |
4009 | 314 | msgstr "DN Belirteci" | 314 | msgstr "DN Belirteci" |
4010 | 315 | 315 | ||
4012 | 316 | #: ../egg/egg-oid.c:95 | 316 | #: ../egg/egg-oid.c:94 |
4013 | 317 | msgid "Pseudonym" | 317 | msgid "Pseudonym" |
4014 | 318 | msgstr "Takma ad" | 318 | msgstr "Takma ad" |
4015 | 319 | 319 | ||
4017 | 320 | #: ../egg/egg-oid.c:98 | 320 | #: ../egg/egg-oid.c:97 |
4018 | 321 | msgid "RSA" | 321 | msgid "RSA" |
4019 | 322 | msgstr "RSA" | 322 | msgstr "RSA" |
4020 | 323 | 323 | ||
4022 | 324 | #: ../egg/egg-oid.c:99 | 324 | #: ../egg/egg-oid.c:98 |
4023 | 325 | msgid "MD2 with RSA" | 325 | msgid "MD2 with RSA" |
4024 | 326 | msgstr "RSA ile MD2" | 326 | msgstr "RSA ile MD2" |
4025 | 327 | 327 | ||
4027 | 328 | #: ../egg/egg-oid.c:100 | 328 | #: ../egg/egg-oid.c:99 |
4028 | 329 | msgid "MD5 with RSA" | 329 | msgid "MD5 with RSA" |
4029 | 330 | msgstr "RSA ile MD5" | 330 | msgstr "RSA ile MD5" |
4030 | 331 | 331 | ||
4032 | 332 | #: ../egg/egg-oid.c:101 | 332 | #: ../egg/egg-oid.c:100 |
4033 | 333 | msgid "SHA1 with RSA" | 333 | msgid "SHA1 with RSA" |
4034 | 334 | msgstr "RSA ile SHA1" | 334 | msgstr "RSA ile SHA1" |
4035 | 335 | 335 | ||
4037 | 336 | #: ../egg/egg-oid.c:103 | 336 | #: ../egg/egg-oid.c:102 |
4038 | 337 | msgid "DSA" | 337 | msgid "DSA" |
4039 | 338 | msgstr "DSA" | 338 | msgstr "DSA" |
4040 | 339 | 339 | ||
4042 | 340 | #: ../egg/egg-oid.c:104 | 340 | #: ../egg/egg-oid.c:103 |
4043 | 341 | msgid "SHA1 with DSA" | 341 | msgid "SHA1 with DSA" |
4044 | 342 | msgstr "DSA ile SHA1" | 342 | msgstr "DSA ile SHA1" |
4045 | 343 | 343 | ||
4046 | 344 | #. Extended Key Usages | 344 | #. Extended Key Usages |
4048 | 345 | #: ../egg/egg-oid.c:107 | 345 | #: ../egg/egg-oid.c:106 |
4049 | 346 | msgid "Server Authentication" | 346 | msgid "Server Authentication" |
4050 | 347 | msgstr "Sunucu Kimlik Denetimi" | 347 | msgstr "Sunucu Kimlik Denetimi" |
4051 | 348 | 348 | ||
4053 | 349 | #: ../egg/egg-oid.c:108 | 349 | #: ../egg/egg-oid.c:107 |
4054 | 350 | msgid "Client Authentication" | 350 | msgid "Client Authentication" |
4055 | 351 | msgstr "İstemci Kimlik Denetimi" | 351 | msgstr "İstemci Kimlik Denetimi" |
4056 | 352 | 352 | ||
4058 | 353 | #: ../egg/egg-oid.c:109 | 353 | #: ../egg/egg-oid.c:108 |
4059 | 354 | msgid "Code Signing" | 354 | msgid "Code Signing" |
4060 | 355 | msgstr "Kod İmzalama" | 355 | msgstr "Kod İmzalama" |
4061 | 356 | 356 | ||
4063 | 357 | #: ../egg/egg-oid.c:110 | 357 | #: ../egg/egg-oid.c:109 |
4064 | 358 | msgid "Email Protection" | 358 | msgid "Email Protection" |
4065 | 359 | msgstr "E-posta Koruma" | 359 | msgstr "E-posta Koruma" |
4066 | 360 | 360 | ||
4068 | 361 | #: ../egg/egg-oid.c:111 | 361 | #: ../egg/egg-oid.c:110 |
4069 | 362 | msgid "Time Stamping" | 362 | msgid "Time Stamping" |
4070 | 363 | msgstr "Zaman Damgalama" | 363 | msgstr "Zaman Damgalama" |
4071 | 364 | 364 | ||
4073 | 365 | #: ../egg/egg-spawn.c:273 | 365 | #: ../egg/egg-spawn.c:272 |
4074 | 366 | #, c-format | 366 | #, c-format |
4075 | 367 | msgid "Unexpected error in select() reading data from a child process (%s)" | 367 | msgid "Unexpected error in select() reading data from a child process (%s)" |
4076 | 368 | msgstr "Alt süreçten bilgi okurken select()'te beklenmeyen hata oluştu (%s)" | 368 | msgstr "Alt süreçten bilgi okurken select()'te beklenmeyen hata oluştu (%s)" |
4077 | 369 | 369 | ||
4079 | 370 | #: ../egg/egg-spawn.c:320 | 370 | #: ../egg/egg-spawn.c:319 |
4080 | 371 | #, c-format | 371 | #, c-format |
4081 | 372 | msgid "Unexpected error in waitpid() (%s)" | 372 | msgid "Unexpected error in waitpid() (%s)" |
4082 | 373 | msgstr "waitpid()'de beklenmedik hata oluştu(%s)" | 373 | msgstr "waitpid()'de beklenmedik hata oluştu(%s)" |
4083 | 374 | 374 | ||
4085 | 375 | #: ../pkcs11/gkm/gkm-certificate.c:581 | 375 | #: ../pkcs11/gkm/gkm-certificate.c:580 |
4086 | 376 | msgid "Unnamed Certificate" | 376 | msgid "Unnamed Certificate" |
4087 | 377 | msgstr "İsimlendirilmemiş Sertifika" | 377 | msgstr "İsimlendirilmemiş Sertifika" |
4088 | 378 | 378 | ||
4090 | 379 | #: ../pkcs11/ssh-store/gkm-ssh-private-key.c:342 | 379 | #: ../pkcs11/ssh-store/gkm-ssh-private-key.c:341 |
4091 | 380 | msgid "Couldn't parse public SSH key" | 380 | msgid "Couldn't parse public SSH key" |
4092 | 381 | msgstr "Genel SSH anahtarı ayrıştırılamadı" | 381 | msgstr "Genel SSH anahtarı ayrıştırılamadı" |
4093 | 382 | 382 | ||
4094 | 383 | #. Get the label ready | 383 | #. Get the label ready |
4096 | 384 | #: ../pkcs11/wrap-layer/gkm-wrap-login.c:346 | 384 | #: ../pkcs11/wrap-layer/gkm-wrap-login.c:345 |
4097 | 385 | #, c-format | 385 | #, c-format |
4098 | 386 | msgid "Unlock password for: %s" | 386 | msgid "Unlock password for: %s" |
4099 | 387 | msgstr "Şunun için kilit açma şifresi: %s" | 387 | msgstr "Şunun için kilit açma şifresi: %s" |
4100 | 388 | 388 | ||
4102 | 389 | #: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:591 | 389 | #: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:590 |
4103 | 390 | msgid "Unlock Login Keyring" | 390 | msgid "Unlock Login Keyring" |
4104 | 391 | msgstr "Giriş Anahtarlık Kilidini Kaldır" | 391 | msgstr "Giriş Anahtarlık Kilidini Kaldır" |
4105 | 392 | 392 | ||
4107 | 393 | #: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:593 | 393 | #: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:592 |
4108 | 394 | msgid "Enter password to unlock your login keyring" | 394 | msgid "Enter password to unlock your login keyring" |
4109 | 395 | msgstr "Giriş anahtarlığınızı açmak için parolayı girin" | 395 | msgstr "Giriş anahtarlığınızı açmak için parolayı girin" |
4110 | 396 | 396 | ||
4113 | 397 | #: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:597 | 397 | #: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:596 |
4112 | 398 | #, fuzzy | ||
4114 | 399 | msgid "" | 398 | msgid "" |
4115 | 400 | "The password you use to log in to your computer no longer matches that of " | 399 | "The password you use to log in to your computer no longer matches that of " |
4116 | 401 | "your login keyring." | 400 | "your login keyring." |
4117 | 402 | msgstr "" | 401 | msgstr "" |
4119 | 403 | "Bilgisayarınıza giriş yamak için kullandığınız şifre artık giriş " | 402 | "Bilgisayarınıza giriş yapmak için kullandığınız parola artık giriş " |
4120 | 404 | "anahtarlığınızla uyuşmuyor." | 403 | "anahtarlığınızla uyuşmuyor." |
4121 | 405 | 404 | ||
4123 | 406 | #: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:599 | 405 | #: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:598 |
4124 | 407 | msgid "" | 406 | msgid "" |
4125 | 408 | "The login keyring did not get unlocked when you logged into your computer." | 407 | "The login keyring did not get unlocked when you logged into your computer." |
4126 | 409 | msgstr "Giriş anahtarlığı, bilgisayarınıza giriş yaptığınızda açılmadı." | 408 | msgstr "Giriş anahtarlığı, bilgisayarınıza giriş yaptığınızda açılmadı." |
4127 | 410 | 409 | ||
4129 | 411 | #: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:617 | 410 | #: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:616 |
4130 | 412 | msgid "Unlock Keyring" | 411 | msgid "Unlock Keyring" |
4131 | 413 | msgstr "Anahtarlık Kilidini Aç" | 412 | msgstr "Anahtarlık Kilidini Aç" |
4132 | 414 | 413 | ||
4134 | 415 | #: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:619 | 414 | #: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:618 |
4135 | 416 | #, c-format | 415 | #, c-format |
4136 | 417 | msgid "Enter password for keyring '%s' to unlock" | 416 | msgid "Enter password for keyring '%s' to unlock" |
4137 | 418 | msgstr "'%s' anahtarlık kilidini açmak için parola girin" | 417 | msgstr "'%s' anahtarlık kilidini açmak için parola girin" |
4138 | 419 | 418 | ||
4140 | 420 | #: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:623 | 419 | #: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:622 |
4141 | 421 | #, c-format | 420 | #, c-format |
4142 | 422 | msgid "An application wants access to the keyring '%s', but it is locked" | 421 | msgid "An application wants access to the keyring '%s', but it is locked" |
4143 | 423 | msgstr "" | 422 | msgstr "" |
4144 | 424 | "Bir uygulama '%s' anahtarlığına erişmek istiyor, ancak anahtarlık kilitli" | 423 | "Bir uygulama '%s' anahtarlığına erişmek istiyor, ancak anahtarlık kilitli" |
4145 | 425 | 424 | ||
4147 | 426 | #: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:629 | 425 | #: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:628 |
4148 | 427 | msgid "Automatically unlock this keyring whenever I'm logged in" | 426 | msgid "Automatically unlock this keyring whenever I'm logged in" |
4149 | 428 | msgstr "Her oturum açtığımda, bu anahtarlığın kilidini otomatik olarak aç" | 427 | msgstr "Her oturum açtığımda, bu anahtarlığın kilidini otomatik olarak aç" |
4150 | 429 | 428 | ||
4152 | 430 | #: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:640 | 429 | #: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:639 |
4153 | 431 | msgid "Unlock private key" | 430 | msgid "Unlock private key" |
4154 | 432 | msgstr "Özel anahtarın kilidini kaldır" | 431 | msgstr "Özel anahtarın kilidini kaldır" |
4155 | 433 | 432 | ||
4157 | 434 | #: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:642 | 433 | #: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:641 |
4158 | 435 | msgid "Unlock certificate" | 434 | msgid "Unlock certificate" |
4159 | 436 | msgstr "Sertifikanın kilidini kaldır" | 435 | msgstr "Sertifikanın kilidini kaldır" |
4160 | 437 | 436 | ||
4162 | 438 | #: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:644 | 437 | #: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:643 |
4163 | 439 | msgid "Unlock public key" | 438 | msgid "Unlock public key" |
4164 | 440 | msgstr "Genel anahtarın kilidini kaldır" | 439 | msgstr "Genel anahtarın kilidini kaldır" |
4165 | 441 | 440 | ||
4167 | 442 | #: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:655 | 441 | #: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:654 |
4168 | 443 | msgid "Enter password to unlock the private key" | 442 | msgid "Enter password to unlock the private key" |
4169 | 444 | msgstr "Özel anahtarlık kilidini açmak için parola girin" | 443 | msgstr "Özel anahtarlık kilidini açmak için parola girin" |
4170 | 445 | 444 | ||
4172 | 446 | #: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:657 | 445 | #: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:656 |
4173 | 447 | msgid "Enter password to unlock the certificate" | 446 | msgid "Enter password to unlock the certificate" |
4174 | 448 | msgstr "Sertifikanın kilidini açmak için parola girin" | 447 | msgstr "Sertifikanın kilidini açmak için parola girin" |
4175 | 449 | 448 | ||
4177 | 450 | #: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:659 | 449 | #: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:658 |
4178 | 451 | msgid "Enter password to unlock the public key" | 450 | msgid "Enter password to unlock the public key" |
4179 | 452 | msgstr "Genel anahtarlık kilidini açmak için parola girin" | 451 | msgstr "Genel anahtarlık kilidini açmak için parola girin" |
4180 | 453 | 452 | ||
4182 | 454 | #: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:661 | 453 | #: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:660 |
4183 | 455 | msgid "Enter password to unlock" | 454 | msgid "Enter password to unlock" |
4184 | 456 | msgstr "Kilidini açmak için parola girin" | 455 | msgstr "Kilidini açmak için parola girin" |
4185 | 457 | 456 | ||
4187 | 458 | #: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:671 | 457 | #: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:670 |
4188 | 459 | msgid "Automatically unlock this key whenever I'm logged in" | 458 | msgid "Automatically unlock this key whenever I'm logged in" |
4189 | 460 | msgstr "Her oturum açtığımda, bu anahtarın kilidini otomatik olarak aç" | 459 | msgstr "Her oturum açtığımda, bu anahtarın kilidini otomatik olarak aç" |
4190 | 461 | 460 | ||
4192 | 462 | #: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:673 | 461 | #: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:672 |
4193 | 463 | msgid "Automatically unlock this certificate whenever I'm logged in" | 462 | msgid "Automatically unlock this certificate whenever I'm logged in" |
4194 | 464 | msgstr "Her oturum açtığımda, bu sertifikanın kilidini otomatik olarak aç" | 463 | msgstr "Her oturum açtığımda, bu sertifikanın kilidini otomatik olarak aç" |
4195 | 465 | 464 | ||
4200 | 466 | #: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:675 | 465 | #: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:674 |
4201 | 467 | #: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:797 | 466 | #: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:796 |
4202 | 468 | #: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:1141 | 467 | #: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:1160 |
4203 | 469 | #: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:1289 | 468 | #: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:1309 |
4204 | 470 | msgid "Automatically unlock whenever I'm logged in" | 469 | msgid "Automatically unlock whenever I'm logged in" |
4205 | 471 | msgstr "Her oturum açtığımda, kilidi otomatik olarak aç" | 470 | msgstr "Her oturum açtığımda, kilidi otomatik olarak aç" |
4206 | 472 | 471 | ||
4207 | 473 | #. TRANSLATORS: The private key is locked | 472 | #. TRANSLATORS: The private key is locked |
4209 | 474 | #: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:686 | 473 | #: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:685 |
4210 | 475 | #, c-format | 474 | #, c-format |
4211 | 476 | msgid "An application wants access to the private key '%s', but it is locked" | 475 | msgid "An application wants access to the private key '%s', but it is locked" |
4212 | 477 | msgstr "" | 476 | msgstr "" |
4213 | @@ -479,7 +478,7 @@ | |||
4214 | 479 | "anahtarlık kilitli" | 478 | "anahtarlık kilitli" |
4215 | 480 | 479 | ||
4216 | 481 | #. TRANSLATORS: The certificate is locked | 480 | #. TRANSLATORS: The certificate is locked |
4218 | 482 | #: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:689 | 481 | #: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:688 |
4219 | 483 | #, c-format | 482 | #, c-format |
4220 | 484 | msgid "An application wants access to the certificate '%s', but it is locked" | 483 | msgid "An application wants access to the certificate '%s', but it is locked" |
4221 | 485 | msgstr "" | 484 | msgstr "" |
4222 | @@ -487,7 +486,7 @@ | |||
4223 | 487 | "kilitli" | 486 | "kilitli" |
4224 | 488 | 487 | ||
4225 | 489 | #. TRANSLATORS: The public key is locked | 488 | #. TRANSLATORS: The public key is locked |
4227 | 490 | #: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:692 | 489 | #: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:691 |
4228 | 491 | #, c-format | 490 | #, c-format |
4229 | 492 | msgid "An application wants access to the public key '%s', but it is locked" | 491 | msgid "An application wants access to the public key '%s', but it is locked" |
4230 | 493 | msgstr "" | 492 | msgstr "" |
4231 | @@ -495,28 +494,28 @@ | |||
4232 | 495 | "anahtarlık kilitli" | 494 | "anahtarlık kilitli" |
4233 | 496 | 495 | ||
4234 | 497 | #. TRANSLATORS: The object '%s' is locked | 496 | #. TRANSLATORS: The object '%s' is locked |
4236 | 498 | #: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:695 | 497 | #: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:694 |
4237 | 499 | #, c-format | 498 | #, c-format |
4238 | 500 | msgid "An application wants access to '%s', but it is locked" | 499 | msgid "An application wants access to '%s', but it is locked" |
4239 | 501 | msgstr "" | 500 | msgstr "" |
4240 | 502 | "Bilinmeyen bir uygulama '%s' anahtarlığa ulaşmak istiyor, fakat anahtarlık " | 501 | "Bilinmeyen bir uygulama '%s' anahtarlığa ulaşmak istiyor, fakat anahtarlık " |
4241 | 503 | "kilitli" | 502 | "kilitli" |
4242 | 504 | 503 | ||
4244 | 505 | #: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:766 | 504 | #: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:765 |
4245 | 506 | msgid "The unlock password was incorrect" | 505 | msgid "The unlock password was incorrect" |
4246 | 507 | msgstr "Kilit açma parolası hatalı" | 506 | msgstr "Kilit açma parolası hatalı" |
4247 | 508 | 507 | ||
4248 | 509 | #. Build up the prompt | 508 | #. Build up the prompt |
4250 | 510 | #: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:787 | 509 | #: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:786 |
4251 | 511 | msgid "Unlock certificate/key storage" | 510 | msgid "Unlock certificate/key storage" |
4252 | 512 | msgstr "Sertifika/anahtar deposu kilidini aç" | 511 | msgstr "Sertifika/anahtar deposu kilidini aç" |
4253 | 513 | 512 | ||
4255 | 514 | #: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:788 | 513 | #: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:787 |
4256 | 515 | msgid "Enter password to unlock the certificate/key storage" | 514 | msgid "Enter password to unlock the certificate/key storage" |
4257 | 516 | msgstr "Sertifika/anahtar deposu kilidini açmak için parolanızı girin" | 515 | msgstr "Sertifika/anahtar deposu kilidini açmak için parolanızı girin" |
4258 | 517 | 516 | ||
4259 | 518 | #. TRANSLATORS: The storage is locked, and needs unlocking before the application can use it. | 517 | #. TRANSLATORS: The storage is locked, and needs unlocking before the application can use it. |
4261 | 519 | #: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:791 | 518 | #: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:790 |
4262 | 520 | #, c-format | 519 | #, c-format |
4263 | 521 | msgid "" | 520 | msgid "" |
4264 | 522 | "An application wants access to the certificate/key storage '%s', but it is " | 521 | "An application wants access to the certificate/key storage '%s', but it is " |
4265 | @@ -524,15 +523,15 @@ | |||
4266 | 524 | msgstr "" | 523 | msgstr "" |
4267 | 525 | "Bir uygulama sertifika/anahtar deposu '%s' için erişim istiyor, ancak kilitli" | 524 | "Bir uygulama sertifika/anahtar deposu '%s' için erişim istiyor, ancak kilitli" |
4268 | 526 | 525 | ||
4270 | 527 | #: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:1132 | 526 | #: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:1151 |
4271 | 528 | msgid "New Password Required" | 527 | msgid "New Password Required" |
4272 | 529 | msgstr "Yeni Parola Gerekli" | 528 | msgstr "Yeni Parola Gerekli" |
4273 | 530 | 529 | ||
4275 | 531 | #: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:1133 | 530 | #: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:1152 |
4276 | 532 | msgid "New password required for secure storage" | 531 | msgid "New password required for secure storage" |
4277 | 533 | msgstr "Güvenli depolama için yeni parola gerekli" | 532 | msgstr "Güvenli depolama için yeni parola gerekli" |
4278 | 534 | 533 | ||
4280 | 535 | #: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:1135 | 534 | #: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:1154 |
4281 | 536 | #, c-format | 535 | #, c-format |
4282 | 537 | msgid "" | 536 | msgid "" |
4283 | 538 | "In order to prepare '%s' for storage of certificates or keys, a password is " | 537 | "In order to prepare '%s' for storage of certificates or keys, a password is " |
4284 | @@ -540,40 +539,40 @@ | |||
4285 | 540 | msgstr "" | 539 | msgstr "" |
4286 | 541 | "'%s' parola ya da anahtar depolamaya hazırlamak için bir parola gereklidir" | 540 | "'%s' parola ya da anahtar depolamaya hazırlamak için bir parola gereklidir" |
4287 | 542 | 541 | ||
4290 | 543 | #: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:1249 | 542 | #: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:1269 |
4291 | 544 | #: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:1280 | 543 | #: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:1300 |
4292 | 545 | msgid "Change Password" | 544 | msgid "Change Password" |
4293 | 546 | msgstr "Parolayı Değiştir" | 545 | msgstr "Parolayı Değiştir" |
4294 | 547 | 546 | ||
4296 | 548 | #: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:1250 | 547 | #: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:1270 |
4297 | 549 | msgid "Original password for secure storage" | 548 | msgid "Original password for secure storage" |
4298 | 550 | msgstr "Güvenli depolama için asıl parola" | 549 | msgstr "Güvenli depolama için asıl parola" |
4299 | 551 | 550 | ||
4301 | 552 | #: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:1252 | 551 | #: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:1272 |
4302 | 553 | #, c-format | 552 | #, c-format |
4303 | 554 | msgid "To change the password for '%s', the original password is required" | 553 | msgid "To change the password for '%s', the original password is required" |
4304 | 555 | msgstr "'%s' parolasını değiştirmek için, asıl parola gereklidir" | 554 | msgstr "'%s' parolasını değiştirmek için, asıl parola gereklidir" |
4305 | 556 | 555 | ||
4307 | 557 | #: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:1281 | 556 | #: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:1301 |
4308 | 558 | msgid "Change password for secure storage" | 557 | msgid "Change password for secure storage" |
4309 | 559 | msgstr "Güvenli depolama için parolayı değiştir" | 558 | msgstr "Güvenli depolama için parolayı değiştir" |
4310 | 560 | 559 | ||
4312 | 561 | #: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:1283 | 560 | #: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:1303 |
4313 | 562 | #, c-format | 561 | #, c-format |
4314 | 563 | msgid "Type a new password for '%s'" | 562 | msgid "Type a new password for '%s'" |
4315 | 564 | msgstr "'%s' için yeni bir parola yazın" | 563 | msgstr "'%s' için yeni bir parola yazın" |
4316 | 565 | 564 | ||
4318 | 566 | #: ../tool/gkr-tool.c:102 | 565 | #: ../tool/gkr-tool.c:100 |
4319 | 567 | #, c-format | 566 | #, c-format |
4320 | 568 | msgid "usage: gnome-keyring command [options]\n" | 567 | msgid "usage: gnome-keyring command [options]\n" |
4321 | 569 | msgstr "kullanımı: gnome-keyring komutu [seçenekler]\n" | 568 | msgstr "kullanımı: gnome-keyring komutu [seçenekler]\n" |
4322 | 570 | 569 | ||
4324 | 571 | #: ../tool/gkr-tool.c:104 | 570 | #: ../tool/gkr-tool.c:102 |
4325 | 572 | msgid "commands: " | 571 | msgid "commands: " |
4326 | 573 | msgstr "komutlar: " | 572 | msgstr "komutlar: " |
4327 | 574 | 573 | ||
4328 | 575 | #. Translators: keep same length as translated message "commands: " | 574 | #. Translators: keep same length as translated message "commands: " |
4330 | 576 | #: ../tool/gkr-tool.c:108 | 575 | #: ../tool/gkr-tool.c:106 |
4331 | 577 | msgid " " | 576 | msgid " " |
4332 | 578 | msgstr " " | 577 | msgstr " " |
4333 | 579 | 578 | ||
4334 | 580 | 579 | ||
4335 | === modified file 'po/vi.po' | |||
4336 | --- po/vi.po 2012-09-04 09:25:05 +0000 | |||
4337 | +++ po/vi.po 2015-02-27 19:55:06 +0000 | |||
4338 | @@ -1,28 +1,32 @@ | |||
4339 | 1 | # Vietnamese translation of GNOME Keyring. | 1 | # Vietnamese translation of GNOME Keyring. |
4341 | 2 | # Copyright © 2010 GNOME i18n Project for Vietnamese. | 2 | # Copyright © 2014 GNOME i18n Project for Vietnamese. |
4342 | 3 | # This file is distributed under the same license as the gnome-keyring package. | ||
4343 | 3 | # Nguyễn Thái Ngọc Duy <pclouds@gmail.com>, 2004,2008,2011-2012. | 4 | # Nguyễn Thái Ngọc Duy <pclouds@gmail.com>, 2004,2008,2011-2012. |
4344 | 4 | # Clytie Siddall <clytie@riverland.net.au>, 2005-2010. | 5 | # Clytie Siddall <clytie@riverland.net.au>, 2005-2010. |
4345 | 5 | # Nguyen Vu Hung <vuhung16plus@gmail.com>, 2011. | 6 | # Nguyen Vu Hung <vuhung16plus@gmail.com>, 2011. |
4346 | 7 | # Trần Ngọc Quân <vnwildman@gmail.com>, 2014. | ||
4347 | 8 | # | ||
4348 | 6 | msgid "" | 9 | msgid "" |
4349 | 7 | msgstr "" | 10 | msgstr "" |
4351 | 8 | "Project-Id-Version: gnome-keyring 2.26.3\n" | 11 | "Project-Id-Version: gnome-keyring master\n" |
4352 | 9 | "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gnome-" | 12 | "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gnome-" |
4353 | 10 | "keyring&keywords=I18N+L10N&component=general\n" | 13 | "keyring&keywords=I18N+L10N&component=general\n" |
4358 | 11 | "POT-Creation-Date: 2012-03-08 19:47+0000\n" | 14 | "POT-Creation-Date: 2014-11-20 20:13+0000\n" |
4359 | 12 | "PO-Revision-Date: 2012-09-01 17:12+0700\n" | 15 | "PO-Revision-Date: 2014-11-21 14:15+0700\n" |
4360 | 13 | "Last-Translator: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>\n" | 16 | "Last-Translator: Trần Ngọc Quân <vnwildman@gmail.com>\n" |
4361 | 14 | "Language-Team: Vietnamese <vi-VN@googlegroups.com>\n" | 17 | "Language-Team: Vietnamese <gnome-vi-list@gnome.org>\n" |
4362 | 18 | "Language: vi\n" | ||
4363 | 15 | "MIME-Version: 1.0\n" | 19 | "MIME-Version: 1.0\n" |
4364 | 16 | "Content-Type: text/plain; charset=UTF-8\n" | 20 | "Content-Type: text/plain; charset=UTF-8\n" |
4365 | 17 | "Content-Transfer-Encoding: 8bit\n" | 21 | "Content-Transfer-Encoding: 8bit\n" |
4366 | 18 | "Plural-Forms: nplurals=1; plural=0;\n" | 22 | "Plural-Forms: nplurals=1; plural=0;\n" |
4368 | 19 | "X-Generator: LocFactoryEditor 1.8\n" | 23 | "X-Generator: Poedit 1.5.5\n" |
4369 | 20 | 24 | ||
4370 | 21 | #. TRANSLATORS: This is the label for an keyring created without a label | 25 | #. TRANSLATORS: This is the label for an keyring created without a label |
4371 | 22 | #: ../daemon/dbus/gkd-secret-change.c:85 | 26 | #: ../daemon/dbus/gkd-secret-change.c:85 |
4372 | 23 | #: ../daemon/dbus/gkd-secret-change.c:121 | 27 | #: ../daemon/dbus/gkd-secret-change.c:121 |
4375 | 24 | #: ../daemon/dbus/gkd-secret-create.c:79 | 28 | #: ../daemon/dbus/gkd-secret-create.c:78 |
4376 | 25 | #: ../pkcs11/secret-store/gkm-secret-collection.c:325 | 29 | #: ../pkcs11/secret-store/gkm-secret-collection.c:324 |
4377 | 26 | #: ../pkcs11/wrap-layer/gkm-wrap-login.c:345 | 30 | #: ../pkcs11/wrap-layer/gkm-wrap-login.c:345 |
4378 | 27 | #: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:753 | 31 | #: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:753 |
4379 | 28 | msgid "Unnamed" | 32 | msgid "Unnamed" |
4380 | @@ -30,35 +34,31 @@ | |||
4381 | 30 | 34 | ||
4382 | 31 | #: ../daemon/dbus/gkd-secret-change.c:90 | 35 | #: ../daemon/dbus/gkd-secret-change.c:90 |
4383 | 32 | #, c-format | 36 | #, c-format |
4384 | 33 | #| msgid "Choose a new password for the '%s' keyring" | ||
4385 | 34 | msgid "Enter the old password for the '%s' keyring" | 37 | msgid "Enter the old password for the '%s' keyring" |
4387 | 35 | msgstr "Nhập mật khẩu cũ cho vòng khóa '%s'" | 38 | msgstr "Nhập mật khẩu cũ cho chùm chìa khóa “%s”" |
4388 | 36 | 39 | ||
4389 | 37 | #: ../daemon/dbus/gkd-secret-change.c:94 | 40 | #: ../daemon/dbus/gkd-secret-change.c:94 |
4390 | 38 | #, c-format | 41 | #, c-format |
4391 | 39 | #| msgid "" | ||
4392 | 40 | #| "An application wants to change the password for the '%s' keyring. Choose " | ||
4393 | 41 | #| "the new password you want to use for it." | ||
4394 | 42 | msgid "" | 42 | msgid "" |
4395 | 43 | "An application wants to change the password for the '%s' keyring. Enter the " | 43 | "An application wants to change the password for the '%s' keyring. Enter the " |
4396 | 44 | "old password for it." | 44 | "old password for it." |
4397 | 45 | msgstr "" | 45 | msgstr "" |
4400 | 46 | "Một ứng dụng muốn thay đổi mật khẫu cho vòng khoá '%s'. Nhập mật khẩu cũ của " | 46 | "Một ứng dụng muốn thay đổi mật khẩu cho chùm chìa khóa “%s”. Nhập mật khẩu " |
4401 | 47 | "nó." | 47 | "cũ của nó." |
4402 | 48 | 48 | ||
4403 | 49 | #: ../daemon/dbus/gkd-secret-change.c:100 | 49 | #: ../daemon/dbus/gkd-secret-change.c:100 |
4404 | 50 | #: ../daemon/dbus/gkd-secret-change.c:136 | 50 | #: ../daemon/dbus/gkd-secret-change.c:136 |
4409 | 51 | #: ../daemon/dbus/gkd-secret-change.c:146 | 51 | #: ../daemon/dbus/gkd-secret-change.c:147 |
4410 | 52 | #: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:1143 | 52 | #: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:1163 |
4411 | 53 | #: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:1255 | 53 | #: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:1276 |
4412 | 54 | #: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:1290 | 54 | #: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:1311 |
4413 | 55 | msgid "Continue" | 55 | msgid "Continue" |
4414 | 56 | msgstr "Tiếp tục" | 56 | msgstr "Tiếp tục" |
4415 | 57 | 57 | ||
4416 | 58 | #: ../daemon/dbus/gkd-secret-change.c:126 | 58 | #: ../daemon/dbus/gkd-secret-change.c:126 |
4417 | 59 | #, c-format | 59 | #, c-format |
4418 | 60 | msgid "Choose a new password for the '%s' keyring" | 60 | msgid "Choose a new password for the '%s' keyring" |
4420 | 61 | msgstr "Hãy chọn một mật khẩu mới cho vòng khóa '%s'" | 61 | msgstr "Hãy chọn một mật khẩu mới cho chùm chìa khóa “%s”" |
4421 | 62 | 62 | ||
4422 | 63 | #: ../daemon/dbus/gkd-secret-change.c:130 | 63 | #: ../daemon/dbus/gkd-secret-change.c:130 |
4423 | 64 | #, c-format | 64 | #, c-format |
4424 | @@ -66,48 +66,48 @@ | |||
4425 | 66 | "An application wants to change the password for the '%s' keyring. Choose the " | 66 | "An application wants to change the password for the '%s' keyring. Choose the " |
4426 | 67 | "new password you want to use for it." | 67 | "new password you want to use for it." |
4427 | 68 | msgstr "" | 68 | msgstr "" |
4430 | 69 | "Một ứng dụng muốn thay đổi mật khẫu cho vòng khoá '%s'. Hãy chọn mật khẩu " | 69 | "Một ứng dụng muốn thay đổi mật khẫu cho chùm chìa khóa “%s”. Hãy chọn mật " |
4431 | 70 | "cần sử dụng với nó." | 70 | "khẩu cần sử dụng với nó." |
4432 | 71 | 71 | ||
4435 | 72 | #: ../daemon/dbus/gkd-secret-change.c:142 | 72 | #: ../daemon/dbus/gkd-secret-change.c:143 |
4436 | 73 | #: ../daemon/dbus/gkd-secret-create.c:95 | 73 | #: ../daemon/dbus/gkd-secret-create.c:94 |
4437 | 74 | msgid "Store passwords unencrypted?" | 74 | msgid "Store passwords unencrypted?" |
4439 | 75 | msgstr "Lưu mật khẩu không mật mã không?" | 75 | msgstr "Lưu mật khẩu không mã hóa không?" |
4440 | 76 | 76 | ||
4443 | 77 | #: ../daemon/dbus/gkd-secret-change.c:144 | 77 | #: ../daemon/dbus/gkd-secret-change.c:145 |
4444 | 78 | #: ../daemon/dbus/gkd-secret-create.c:97 | 78 | #: ../daemon/dbus/gkd-secret-create.c:96 |
4445 | 79 | msgid "" | 79 | msgid "" |
4446 | 80 | "By choosing to use a blank password, your stored passwords will not be " | 80 | "By choosing to use a blank password, your stored passwords will not be " |
4447 | 81 | "safely encrypted. They will be accessible by anyone with access to your " | 81 | "safely encrypted. They will be accessible by anyone with access to your " |
4448 | 82 | "files." | 82 | "files." |
4449 | 83 | msgstr "" | 83 | msgstr "" |
4452 | 84 | "Dùng một mật khẩu trắng thì mật khẩu đã lưu sẽ không thể được mã hoá an " | 84 | "Dùng một mật khẩu trắng thì mật khẩu đã lưu sẽ không được mã hoá an toàn. " |
4453 | 85 | "toàn. Mọi người đều có thể truy cập vào tập tin của bạn." | 85 | "Mọi người đều có thể truy cập vào tập tin của bạn." |
4454 | 86 | 86 | ||
4456 | 87 | #: ../daemon/dbus/gkd-secret-change.c:152 | 87 | #: ../daemon/dbus/gkd-secret-change.c:153 |
4457 | 88 | msgid "The original password was incorrect" | 88 | msgid "The original password was incorrect" |
4458 | 89 | msgstr "Bạn đã gõ sai mật khẩu gốc" | 89 | msgstr "Bạn đã gõ sai mật khẩu gốc" |
4459 | 90 | 90 | ||
4461 | 91 | #: ../daemon/dbus/gkd-secret-change.c:352 | 91 | #: ../daemon/dbus/gkd-secret-change.c:354 |
4462 | 92 | msgid "Change Keyring Password" | 92 | msgid "Change Keyring Password" |
4464 | 93 | msgstr "Đổi mật khẩu vòng khóa" | 93 | msgstr "Đổi mật khẩu chùm chìa khóa" |
4465 | 94 | 94 | ||
4467 | 95 | #: ../daemon/dbus/gkd-secret-create.c:81 | 95 | #: ../daemon/dbus/gkd-secret-create.c:80 |
4468 | 96 | #, c-format | 96 | #, c-format |
4469 | 97 | msgid "" | 97 | msgid "" |
4470 | 98 | "An application wants to create a new keyring called '%s'. Choose the " | 98 | "An application wants to create a new keyring called '%s'. Choose the " |
4471 | 99 | "password you want to use for it." | 99 | "password you want to use for it." |
4472 | 100 | msgstr "" | 100 | msgstr "" |
4475 | 101 | "Một ứng dụng muốn tạo một vòng khóa mới tên '%s'. Hãy chọn mật khẩu cần sử " | 101 | "Một ứng dụng muốn tạo một chùm chìa khóa mới tên “%s”. Hãy chọn mật khẩu mà " |
4476 | 102 | "dụng với nó." | 102 | "bạn muốn áp dụng cho nó." |
4477 | 103 | 103 | ||
4479 | 104 | #: ../daemon/dbus/gkd-secret-create.c:85 | 104 | #: ../daemon/dbus/gkd-secret-create.c:84 |
4480 | 105 | msgid "Choose password for new keyring" | 105 | msgid "Choose password for new keyring" |
4482 | 106 | msgstr "Hãy chọn mật khẩu cho vòng khóa mới" | 106 | msgstr "Hãy chọn mật khẩu cho chùm chìa khóa mới" |
4483 | 107 | 107 | ||
4485 | 108 | #: ../daemon/dbus/gkd-secret-create.c:308 | 108 | #: ../daemon/dbus/gkd-secret-create.c:311 |
4486 | 109 | msgid "New Keyring Password" | 109 | msgid "New Keyring Password" |
4488 | 110 | msgstr "Mật khẩu vòng khóa mới" | 110 | msgstr "Mật khẩu chùm chìa khóa mới" |
4489 | 111 | 111 | ||
4490 | 112 | #: ../daemon/gnome-keyring-gpg.desktop.in.in.h:1 | 112 | #: ../daemon/gnome-keyring-gpg.desktop.in.in.h:1 |
4491 | 113 | msgid "GPG Password Agent" | 113 | msgid "GPG Password Agent" |
4492 | @@ -115,47 +115,42 @@ | |||
4493 | 115 | 115 | ||
4494 | 116 | #: ../daemon/gnome-keyring-gpg.desktop.in.in.h:2 | 116 | #: ../daemon/gnome-keyring-gpg.desktop.in.in.h:2 |
4495 | 117 | msgid "GNOME Keyring: GPG Agent" | 117 | msgid "GNOME Keyring: GPG Agent" |
4497 | 118 | msgstr "Vòng Khoá GNOME: GPG Agent" | 118 | msgstr "Chùm chìa khóa GNOME: Đại diện GPG" |
4498 | 119 | 119 | ||
4499 | 120 | #: ../daemon/gnome-keyring-pkcs11.desktop.in.in.h:1 | 120 | #: ../daemon/gnome-keyring-pkcs11.desktop.in.in.h:1 |
4500 | 121 | msgid "Certificate and Key Storage" | 121 | msgid "Certificate and Key Storage" |
4502 | 122 | msgstr "Lưu trữ Chứng nhận và Khoá" | 122 | msgstr "Lưu trữ Chứng nhận và khóa" |
4503 | 123 | 123 | ||
4504 | 124 | #: ../daemon/gnome-keyring-pkcs11.desktop.in.in.h:2 | 124 | #: ../daemon/gnome-keyring-pkcs11.desktop.in.in.h:2 |
4505 | 125 | msgid "GNOME Keyring: PKCS#11 Component" | 125 | msgid "GNOME Keyring: PKCS#11 Component" |
4507 | 126 | msgstr "Vòng Khoá GNOME: thành phần PKCS#11" | 126 | msgstr "Chùm chìa khóa GNOME: thành phần PKCS#11" |
4508 | 127 | 127 | ||
4509 | 128 | #: ../daemon/gnome-keyring-secrets.desktop.in.in.h:1 | 128 | #: ../daemon/gnome-keyring-secrets.desktop.in.in.h:1 |
4510 | 129 | msgid "Secret Storage Service" | 129 | msgid "Secret Storage Service" |
4512 | 130 | msgstr "Dịch vụ lưu trữ mật" | 130 | msgstr "Dịch vụ lưu trữ bảo mật" |
4513 | 131 | 131 | ||
4514 | 132 | #: ../daemon/gnome-keyring-secrets.desktop.in.in.h:2 | 132 | #: ../daemon/gnome-keyring-secrets.desktop.in.in.h:2 |
4515 | 133 | msgid "GNOME Keyring: Secret Service" | 133 | msgid "GNOME Keyring: Secret Service" |
4517 | 134 | msgstr "Vòng Khoá GNOME: dịch vụ mật" | 134 | msgstr "Chùm chìa khóa GNOME: dịch vụ bảo mật" |
4518 | 135 | 135 | ||
4519 | 136 | #: ../daemon/gnome-keyring-ssh.desktop.in.in.h:1 | 136 | #: ../daemon/gnome-keyring-ssh.desktop.in.in.h:1 |
4520 | 137 | msgid "SSH Key Agent" | 137 | msgid "SSH Key Agent" |
4522 | 138 | msgstr "Tác nhân khoá SSH" | 138 | msgstr "Đại diện khóa SSH" |
4523 | 139 | 139 | ||
4524 | 140 | #: ../daemon/gnome-keyring-ssh.desktop.in.in.h:2 | 140 | #: ../daemon/gnome-keyring-ssh.desktop.in.in.h:2 |
4525 | 141 | msgid "GNOME Keyring: SSH Agent" | 141 | msgid "GNOME Keyring: SSH Agent" |
4527 | 142 | msgstr "Vòng Khoá GNOME: SSH Agent" | 142 | msgstr "Chùm chìa khóa GNOME: Đại diện SSH" |
4528 | 143 | 143 | ||
4530 | 144 | #: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:106 | 144 | #: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:82 |
4531 | 145 | msgid "Unknown" | 145 | msgid "Unknown" |
4532 | 146 | msgstr "Không biết" | 146 | msgstr "Không biết" |
4533 | 147 | 147 | ||
4541 | 148 | #: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:203 | 148 | #: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:144 |
4542 | 149 | #, c-format | 149 | #: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:145 |
4536 | 150 | msgid "PGP Key: %s" | ||
4537 | 151 | msgstr "Khóa PGP: %s" | ||
4538 | 152 | |||
4539 | 153 | #: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:360 | ||
4540 | 154 | #: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:361 | ||
4543 | 155 | msgid "Enter Passphrase" | 150 | msgid "Enter Passphrase" |
4544 | 156 | msgstr "Nhập mật mã" | 151 | msgstr "Nhập mật mã" |
4545 | 157 | 152 | ||
4547 | 158 | #: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:365 | 153 | #: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:149 |
4548 | 159 | #: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:602 | 154 | #: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:602 |
4549 | 160 | #: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:630 | 155 | #: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:630 |
4550 | 161 | #: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:645 | 156 | #: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:645 |
4551 | @@ -163,32 +158,36 @@ | |||
4552 | 163 | #: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:767 | 158 | #: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:767 |
4553 | 164 | #: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:799 | 159 | #: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:799 |
4554 | 165 | msgid "Unlock" | 160 | msgid "Unlock" |
4556 | 166 | msgstr "Mở khoá" | 161 | msgstr "Mở khóa" |
4557 | 167 | 162 | ||
4560 | 168 | #: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:394 | 163 | #: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:162 |
4559 | 169 | #| msgid "Automatically unlock this keyring whenever I'm logged in" | ||
4561 | 170 | msgid "Automatically unlock this key, whenever I'm logged in" | 164 | msgid "Automatically unlock this key, whenever I'm logged in" |
4563 | 171 | msgstr "Tự động gỡ khoá khoá này khi nào tôi đã đăng nhập" | 165 | msgstr "Tự động gỡ khóa khóa này khi nào tôi đã đăng nhập" |
4564 | 166 | |||
4565 | 167 | #: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:225 | ||
4566 | 168 | #, c-format | ||
4567 | 169 | msgid "PGP Key: %s" | ||
4568 | 170 | msgstr "Khóa PGP: %s" | ||
4569 | 172 | 171 | ||
4570 | 173 | #. TRANSLATORS: This is the display label for the login keyring | 172 | #. TRANSLATORS: This is the display label for the login keyring |
4572 | 174 | #: ../daemon/login/gkd-login.c:145 | 173 | #: ../daemon/login/gkd-login.c:158 |
4573 | 175 | msgid "Login" | 174 | msgid "Login" |
4574 | 176 | msgstr "Đăng nhập" | 175 | msgstr "Đăng nhập" |
4575 | 177 | 176 | ||
4576 | 178 | #: ../egg/dotlock.c:668 | 177 | #: ../egg/dotlock.c:668 |
4577 | 179 | #, c-format | 178 | #, c-format |
4578 | 180 | msgid "failed to create temporary file `%s': %s\n" | 179 | msgid "failed to create temporary file `%s': %s\n" |
4580 | 181 | msgstr "lỗi tạo tập tin tạm `%s': %s\n" | 180 | msgstr "gặp lỗi khi tạo tập tin tạm “%s”: %s\n" |
4581 | 182 | 181 | ||
4582 | 183 | #: ../egg/dotlock.c:718 | 182 | #: ../egg/dotlock.c:718 |
4583 | 184 | #, c-format | 183 | #, c-format |
4584 | 185 | msgid "error writing to `%s': %s\n" | 184 | msgid "error writing to `%s': %s\n" |
4586 | 186 | msgstr "lỗi ghi vào `%s': %s\n" | 185 | msgstr "gặp lỗi khi ghi vào “%s”: %s\n" |
4587 | 187 | 186 | ||
4588 | 188 | #: ../egg/dotlock.c:782 | 187 | #: ../egg/dotlock.c:782 |
4589 | 189 | #, c-format | 188 | #, c-format |
4590 | 190 | msgid "can't create `%s': %s\n" | 189 | msgid "can't create `%s': %s\n" |
4592 | 191 | msgstr "lỗi tạo `%s': %s\n" | 190 | msgstr "Không thể tạo “%s”: %s\n" |
4593 | 192 | 191 | ||
4594 | 193 | #. Note: It is unlikley that we get a race here unless a pid is | 192 | #. Note: It is unlikley that we get a race here unless a pid is |
4595 | 194 | #. reused too fast or a new process with the same pid as the one | 193 | #. reused too fast or a new process with the same pid as the one |
4596 | @@ -196,201 +195,203 @@ | |||
4597 | 196 | #: ../egg/dotlock.c:1048 | 195 | #: ../egg/dotlock.c:1048 |
4598 | 197 | #, c-format | 196 | #, c-format |
4599 | 198 | msgid "removing stale lockfile (created by %d)\n" | 197 | msgid "removing stale lockfile (created by %d)\n" |
4601 | 199 | msgstr "bỏ tập tin khoá không còn dùng (tạo bởi %d)\n" | 198 | msgstr "xóa bỏ tập tin khóa đã hỏng (được tạo bởi %d)\n" |
4602 | 200 | 199 | ||
4603 | 201 | #: ../egg/dotlock.c:1084 | 200 | #: ../egg/dotlock.c:1084 |
4604 | 202 | #, c-format | 201 | #, c-format |
4605 | 203 | msgid "waiting for lock (held by %d%s) %s...\n" | 202 | msgid "waiting for lock (held by %d%s) %s...\n" |
4607 | 204 | msgstr "chờ khoá (giữ bởi %d%s) %s...\n" | 203 | msgstr "chờ khóa (được giữ bởi %d%s) %s...\n" |
4608 | 205 | 204 | ||
4609 | 205 | # http://vi.wikipedia.org/wiki/Deadlock | ||
4610 | 206 | # deadlock (Khóa chết) Là trạng thái xảy ra trong môi trường đa nhiệm (Muti-Threading) khi hai hoặc nhiều tiến trình đi vào vòng lặp chờ tài nguyên mãi mãi. | ||
4611 | 206 | #: ../egg/dotlock.c:1085 | 207 | #: ../egg/dotlock.c:1085 |
4612 | 207 | msgid "(deadlock?) " | 208 | msgid "(deadlock?) " |
4614 | 208 | msgstr "" | 209 | msgstr "(khóa chết?)" |
4615 | 209 | 210 | ||
4616 | 210 | #: ../egg/dotlock.c:1124 | 211 | #: ../egg/dotlock.c:1124 |
4617 | 211 | #, c-format | 212 | #, c-format |
4618 | 212 | msgid "lock `%s' not made: %s\n" | 213 | msgid "lock `%s' not made: %s\n" |
4620 | 213 | msgstr "khoá `%s' chưa được tạo: %s\n" | 214 | msgstr "khóa “%s” chưa được tạo: %s\n" |
4621 | 214 | 215 | ||
4622 | 215 | #: ../egg/dotlock.c:1150 | 216 | #: ../egg/dotlock.c:1150 |
4623 | 216 | #, c-format | 217 | #, c-format |
4624 | 217 | msgid "waiting for lock %s...\n" | 218 | msgid "waiting for lock %s...\n" |
4626 | 218 | msgstr "chờ khoá %s...\n" | 219 | msgstr "chờ khóa %s...\n" |
4627 | 219 | 220 | ||
4629 | 220 | #: ../egg/egg-oid.c:41 | 221 | #: ../egg/egg-oid.c:40 |
4630 | 221 | msgid "Domain Component" | 222 | msgid "Domain Component" |
4632 | 222 | msgstr "Thành phần Miền" | 223 | msgstr "Thành phần tên miền" |
4633 | 223 | 224 | ||
4635 | 224 | #: ../egg/egg-oid.c:43 | 225 | #: ../egg/egg-oid.c:42 |
4636 | 225 | msgid "User ID" | 226 | msgid "User ID" |
4637 | 226 | msgstr "Mã số người dùng" | 227 | msgstr "Mã số người dùng" |
4638 | 227 | 228 | ||
4640 | 228 | #: ../egg/egg-oid.c:46 | 229 | #: ../egg/egg-oid.c:45 |
4641 | 229 | msgid "Email Address" | 230 | msgid "Email Address" |
4642 | 230 | msgstr "Thư điện tử" | 231 | msgstr "Thư điện tử" |
4643 | 231 | 232 | ||
4645 | 232 | #: ../egg/egg-oid.c:54 | 233 | #: ../egg/egg-oid.c:53 |
4646 | 233 | msgid "Date of Birth" | 234 | msgid "Date of Birth" |
4647 | 234 | msgstr "Ngày sinh" | 235 | msgstr "Ngày sinh" |
4648 | 235 | 236 | ||
4650 | 236 | #: ../egg/egg-oid.c:56 | 237 | #: ../egg/egg-oid.c:55 |
4651 | 237 | msgid "Place of Birth" | 238 | msgid "Place of Birth" |
4652 | 238 | msgstr "Nơi sinh" | 239 | msgstr "Nơi sinh" |
4653 | 239 | 240 | ||
4655 | 240 | #: ../egg/egg-oid.c:58 | 241 | #: ../egg/egg-oid.c:57 |
4656 | 241 | msgid "Gender" | 242 | msgid "Gender" |
4657 | 242 | msgstr "Giới tính" | 243 | msgstr "Giới tính" |
4658 | 243 | 244 | ||
4660 | 244 | #: ../egg/egg-oid.c:60 | 245 | #: ../egg/egg-oid.c:59 |
4661 | 245 | msgid "Country of Citizenship" | 246 | msgid "Country of Citizenship" |
4662 | 246 | msgstr "Quốc gia cấp công dân" | 247 | msgstr "Quốc gia cấp công dân" |
4663 | 247 | 248 | ||
4665 | 248 | #: ../egg/egg-oid.c:62 | 249 | #: ../egg/egg-oid.c:61 |
4666 | 249 | msgid "Country of Residence" | 250 | msgid "Country of Residence" |
4667 | 250 | msgstr "Quốc gia ở" | 251 | msgstr "Quốc gia ở" |
4668 | 251 | 252 | ||
4670 | 252 | #: ../egg/egg-oid.c:65 | 253 | #: ../egg/egg-oid.c:64 |
4671 | 253 | msgid "Common Name" | 254 | msgid "Common Name" |
4672 | 254 | msgstr "Tên chung" | 255 | msgstr "Tên chung" |
4673 | 255 | 256 | ||
4675 | 256 | #: ../egg/egg-oid.c:67 | 257 | #: ../egg/egg-oid.c:66 |
4676 | 257 | msgid "Surname" | 258 | msgid "Surname" |
4677 | 258 | msgstr "Họ" | 259 | msgstr "Họ" |
4678 | 259 | 260 | ||
4680 | 260 | #: ../egg/egg-oid.c:69 | 261 | #: ../egg/egg-oid.c:68 |
4681 | 261 | msgid "Serial Number" | 262 | msgid "Serial Number" |
4682 | 262 | msgstr "Số thứ tự" | 263 | msgstr "Số thứ tự" |
4683 | 263 | 264 | ||
4685 | 264 | #: ../egg/egg-oid.c:71 | 265 | #: ../egg/egg-oid.c:70 |
4686 | 265 | msgid "Country" | 266 | msgid "Country" |
4687 | 266 | msgstr "Quốc gia" | 267 | msgstr "Quốc gia" |
4688 | 267 | 268 | ||
4690 | 268 | #: ../egg/egg-oid.c:73 | 269 | #: ../egg/egg-oid.c:72 |
4691 | 269 | msgid "Locality" | 270 | msgid "Locality" |
4692 | 270 | msgstr "Vùng" | 271 | msgstr "Vùng" |
4693 | 271 | 272 | ||
4695 | 272 | #: ../egg/egg-oid.c:75 | 273 | #: ../egg/egg-oid.c:74 |
4696 | 273 | msgid "State" | 274 | msgid "State" |
4697 | 274 | msgstr "Tỉnh" | 275 | msgstr "Tỉnh" |
4698 | 275 | 276 | ||
4700 | 276 | #: ../egg/egg-oid.c:77 | 277 | #: ../egg/egg-oid.c:76 |
4701 | 277 | msgid "Street" | 278 | msgid "Street" |
4702 | 278 | msgstr "Đường" | 279 | msgstr "Đường" |
4703 | 279 | 280 | ||
4705 | 280 | #: ../egg/egg-oid.c:79 | 281 | #: ../egg/egg-oid.c:78 |
4706 | 281 | msgid "Organization" | 282 | msgid "Organization" |
4707 | 282 | msgstr "Tổ chức" | 283 | msgstr "Tổ chức" |
4708 | 283 | 284 | ||
4710 | 284 | #: ../egg/egg-oid.c:81 | 285 | #: ../egg/egg-oid.c:80 |
4711 | 285 | msgid "Organizational Unit" | 286 | msgid "Organizational Unit" |
4712 | 286 | msgstr "Đơn vị tổ chức" | 287 | msgstr "Đơn vị tổ chức" |
4713 | 287 | 288 | ||
4715 | 288 | #: ../egg/egg-oid.c:83 | 289 | #: ../egg/egg-oid.c:82 |
4716 | 289 | msgid "Title" | 290 | msgid "Title" |
4717 | 290 | msgstr "Tuổi tác" | 291 | msgstr "Tuổi tác" |
4718 | 291 | 292 | ||
4720 | 292 | #: ../egg/egg-oid.c:85 | 293 | #: ../egg/egg-oid.c:84 |
4721 | 293 | msgid "Telephone Number" | 294 | msgid "Telephone Number" |
4722 | 294 | msgstr "Số điện thoại" | 295 | msgstr "Số điện thoại" |
4723 | 295 | 296 | ||
4725 | 296 | #: ../egg/egg-oid.c:87 | 297 | #: ../egg/egg-oid.c:86 |
4726 | 297 | msgid "Given Name" | 298 | msgid "Given Name" |
4727 | 298 | msgstr "Tên hay gọi" | 299 | msgstr "Tên hay gọi" |
4728 | 299 | 300 | ||
4730 | 300 | #: ../egg/egg-oid.c:89 | 301 | #: ../egg/egg-oid.c:88 |
4731 | 301 | msgid "Initials" | 302 | msgid "Initials" |
4732 | 302 | msgstr "Tên viết tắt" | 303 | msgstr "Tên viết tắt" |
4733 | 303 | 304 | ||
4735 | 304 | #: ../egg/egg-oid.c:91 | 305 | #: ../egg/egg-oid.c:90 |
4736 | 305 | msgid "Generation Qualifier" | 306 | msgid "Generation Qualifier" |
4737 | 306 | msgstr "Thế hệ dè dặt" | 307 | msgstr "Thế hệ dè dặt" |
4738 | 307 | 308 | ||
4740 | 308 | #: ../egg/egg-oid.c:93 | 309 | #: ../egg/egg-oid.c:92 |
4741 | 309 | msgid "DN Qualifier" | 310 | msgid "DN Qualifier" |
4742 | 310 | msgstr "Tên miền dè dặt" | 311 | msgstr "Tên miền dè dặt" |
4743 | 311 | 312 | ||
4745 | 312 | #: ../egg/egg-oid.c:95 | 313 | #: ../egg/egg-oid.c:94 |
4746 | 313 | msgid "Pseudonym" | 314 | msgid "Pseudonym" |
4747 | 314 | msgstr "Biệt hiệu" | 315 | msgstr "Biệt hiệu" |
4748 | 315 | 316 | ||
4750 | 316 | #: ../egg/egg-oid.c:98 | 317 | #: ../egg/egg-oid.c:97 |
4751 | 317 | msgid "RSA" | 318 | msgid "RSA" |
4752 | 318 | msgstr "RSA" | 319 | msgstr "RSA" |
4753 | 319 | 320 | ||
4755 | 320 | #: ../egg/egg-oid.c:99 | 321 | #: ../egg/egg-oid.c:98 |
4756 | 321 | msgid "MD2 with RSA" | 322 | msgid "MD2 with RSA" |
4757 | 322 | msgstr "MD2 với mã hoá RSA" | 323 | msgstr "MD2 với mã hoá RSA" |
4758 | 323 | 324 | ||
4760 | 324 | #: ../egg/egg-oid.c:100 | 325 | #: ../egg/egg-oid.c:99 |
4761 | 325 | msgid "MD5 with RSA" | 326 | msgid "MD5 with RSA" |
4762 | 326 | msgstr "MD5 với mã hoá RSA" | 327 | msgstr "MD5 với mã hoá RSA" |
4763 | 327 | 328 | ||
4765 | 328 | #: ../egg/egg-oid.c:101 | 329 | #: ../egg/egg-oid.c:100 |
4766 | 329 | msgid "SHA1 with RSA" | 330 | msgid "SHA1 with RSA" |
4767 | 330 | msgstr "SHA1 với mã hoá RSA" | 331 | msgstr "SHA1 với mã hoá RSA" |
4768 | 331 | 332 | ||
4770 | 332 | #: ../egg/egg-oid.c:103 | 333 | #: ../egg/egg-oid.c:102 |
4771 | 333 | msgid "DSA" | 334 | msgid "DSA" |
4772 | 334 | msgstr "DSA" | 335 | msgstr "DSA" |
4773 | 335 | 336 | ||
4775 | 336 | #: ../egg/egg-oid.c:104 | 337 | #: ../egg/egg-oid.c:103 |
4776 | 337 | msgid "SHA1 with DSA" | 338 | msgid "SHA1 with DSA" |
4777 | 338 | msgstr "SHA1 với mã hoá DSA" | 339 | msgstr "SHA1 với mã hoá DSA" |
4778 | 339 | 340 | ||
4779 | 340 | #. Extended Key Usages | 341 | #. Extended Key Usages |
4781 | 341 | #: ../egg/egg-oid.c:107 | 342 | #: ../egg/egg-oid.c:106 |
4782 | 342 | msgid "Server Authentication" | 343 | msgid "Server Authentication" |
4783 | 343 | msgstr "Xác thực máy chủ" | 344 | msgstr "Xác thực máy chủ" |
4784 | 344 | 345 | ||
4786 | 345 | #: ../egg/egg-oid.c:108 | 346 | #: ../egg/egg-oid.c:107 |
4787 | 346 | msgid "Client Authentication" | 347 | msgid "Client Authentication" |
4788 | 347 | msgstr "Xác thực máy khách" | 348 | msgstr "Xác thực máy khách" |
4789 | 348 | 349 | ||
4791 | 349 | #: ../egg/egg-oid.c:109 | 350 | #: ../egg/egg-oid.c:108 |
4792 | 350 | msgid "Code Signing" | 351 | msgid "Code Signing" |
4793 | 351 | msgstr "Ký mã" | 352 | msgstr "Ký mã" |
4794 | 352 | 353 | ||
4796 | 353 | #: ../egg/egg-oid.c:110 | 354 | #: ../egg/egg-oid.c:109 |
4797 | 354 | msgid "Email Protection" | 355 | msgid "Email Protection" |
4798 | 355 | msgstr "Bảo vệ thư" | 356 | msgstr "Bảo vệ thư" |
4799 | 356 | 357 | ||
4801 | 357 | #: ../egg/egg-oid.c:111 | 358 | #: ../egg/egg-oid.c:110 |
4802 | 358 | msgid "Time Stamping" | 359 | msgid "Time Stamping" |
4804 | 359 | msgstr "Tem thời gian" | 360 | msgstr "Dấu vết thời gian" |
4805 | 360 | 361 | ||
4807 | 361 | #: ../egg/egg-spawn.c:273 | 362 | #: ../egg/egg-spawn.c:272 |
4808 | 362 | #, c-format | 363 | #, c-format |
4809 | 363 | msgid "Unexpected error in select() reading data from a child process (%s)" | 364 | msgid "Unexpected error in select() reading data from a child process (%s)" |
4810 | 364 | msgstr "" | 365 | msgstr "" |
4812 | 365 | "Gặp lỗi bất thường trong « select() » khi đọc dữ liệu từ một tiến trình con " | 366 | "Gặp lỗi bất thường trong “select()” khi đọc dữ liệu từ một tiến trình con " |
4813 | 366 | "(%s)" | 367 | "(%s)" |
4814 | 367 | 368 | ||
4816 | 368 | #: ../egg/egg-spawn.c:320 | 369 | #: ../egg/egg-spawn.c:319 |
4817 | 369 | #, c-format | 370 | #, c-format |
4818 | 370 | msgid "Unexpected error in waitpid() (%s)" | 371 | msgid "Unexpected error in waitpid() (%s)" |
4820 | 371 | msgstr "Gặp lỗi bất thường trong « waitpid() » (%s)" | 372 | msgstr "Gặp lỗi bất thường trong “waitpid()” (%s)" |
4821 | 372 | 373 | ||
4823 | 373 | #: ../pkcs11/gkm/gkm-certificate.c:572 | 374 | #: ../pkcs11/gkm/gkm-certificate.c:580 |
4824 | 374 | msgid "Unnamed Certificate" | 375 | msgid "Unnamed Certificate" |
4825 | 375 | msgstr "Chứng nhận không tên" | 376 | msgstr "Chứng nhận không tên" |
4826 | 376 | 377 | ||
4828 | 377 | #: ../pkcs11/ssh-store/gkm-ssh-private-key.c:339 | 378 | #: ../pkcs11/ssh-store/gkm-ssh-private-key.c:341 |
4829 | 378 | msgid "Couldn't parse public SSH key" | 379 | msgid "Couldn't parse public SSH key" |
4831 | 379 | msgstr "Không thể phân tích cú pháp của khoá SSH công khai" | 380 | msgstr "Không thể phân tích cú pháp của khóa SSH công" |
4832 | 380 | 381 | ||
4833 | 381 | #. Get the label ready | 382 | #. Get the label ready |
4834 | 382 | #: ../pkcs11/wrap-layer/gkm-wrap-login.c:345 | 383 | #: ../pkcs11/wrap-layer/gkm-wrap-login.c:345 |
4835 | 383 | #, c-format | 384 | #, c-format |
4836 | 384 | msgid "Unlock password for: %s" | 385 | msgid "Unlock password for: %s" |
4838 | 385 | msgstr "Mật khẩu gỡ khoá cho: %s" | 386 | msgstr "Mật khẩu gỡ khóa cho: %s" |
4839 | 386 | 387 | ||
4840 | 387 | #: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:590 | 388 | #: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:590 |
4841 | 388 | msgid "Unlock Login Keyring" | 389 | msgid "Unlock Login Keyring" |
4843 | 389 | msgstr "Gỡ khoá vòng khoá đăng nhập" | 390 | msgstr "Gỡ khóa chùm chìa khóa đăng nhập" |
4844 | 390 | 391 | ||
4845 | 391 | #: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:592 | 392 | #: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:592 |
4846 | 392 | msgid "Enter password to unlock your login keyring" | 393 | msgid "Enter password to unlock your login keyring" |
4848 | 393 | msgstr "Nhập mật khẩu để gỡ khoá vòng khoá đăng nhập" | 394 | msgstr "Nhập mật khẩu để gỡ khóa chùm chìa khóa đăng nhập" |
4849 | 394 | 395 | ||
4850 | 395 | #: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:596 | 396 | #: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:596 |
4851 | 396 | msgid "" | 397 | msgid "" |
4852 | @@ -398,35 +399,36 @@ | |||
4853 | 398 | "your login keyring." | 399 | "your login keyring." |
4854 | 399 | msgstr "" | 400 | msgstr "" |
4855 | 400 | "Bạn đang sử dụng một mật khẩu để đăng nhập vào máy tính mà không còn tương " | 401 | "Bạn đang sử dụng một mật khẩu để đăng nhập vào máy tính mà không còn tương " |
4857 | 401 | "ứng với mật khẩu của vòng khoá đăng nhập." | 402 | "ứng với mật khẩu của chùm chìa khóa đăng nhập." |
4858 | 402 | 403 | ||
4859 | 403 | #: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:598 | 404 | #: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:598 |
4860 | 404 | msgid "" | 405 | msgid "" |
4861 | 405 | "The login keyring did not get unlocked when you logged into your computer." | 406 | "The login keyring did not get unlocked when you logged into your computer." |
4862 | 406 | msgstr "" | 407 | msgstr "" |
4864 | 407 | "Vòng khoá đăng nhập đã không được gỡ khoá khi bạn đăng nhập vào máy tính này." | 408 | "Chùm chìa khóa đăng nhập đã không được gỡ khóa khi bạn đăng nhập vào máy " |
4865 | 409 | "tính này." | ||
4866 | 408 | 410 | ||
4867 | 409 | #: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:616 | 411 | #: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:616 |
4868 | 410 | msgid "Unlock Keyring" | 412 | msgid "Unlock Keyring" |
4870 | 411 | msgstr "Mở vòng" | 413 | msgstr "Mở khóa chùm chìa khóa" |
4871 | 412 | 414 | ||
4872 | 413 | #: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:618 | 415 | #: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:618 |
4873 | 414 | #, c-format | 416 | #, c-format |
4874 | 415 | msgid "Enter password for keyring '%s' to unlock" | 417 | msgid "Enter password for keyring '%s' to unlock" |
4876 | 416 | msgstr "Hãy nhập mật khẩu cho vòng khóa '%s' để mở vòng khóa" | 418 | msgstr "Hãy nhập mật khẩu cho chùm chìa khóa “%s” để mở chùm chìa khóa" |
4877 | 417 | 419 | ||
4878 | 418 | #: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:622 | 420 | #: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:622 |
4879 | 419 | #, c-format | 421 | #, c-format |
4880 | 420 | msgid "An application wants access to the keyring '%s', but it is locked" | 422 | msgid "An application wants access to the keyring '%s', but it is locked" |
4882 | 421 | msgstr "Một ứng dụng muốn truy cập đến vòng khóa '%s', còn nó bị khoá" | 423 | msgstr "Một ứng dụng muốn dùng chùm chìa khóa “%s”, nhưng nó đang bị khóa" |
4883 | 422 | 424 | ||
4884 | 423 | #: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:628 | 425 | #: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:628 |
4885 | 424 | msgid "Automatically unlock this keyring whenever I'm logged in" | 426 | msgid "Automatically unlock this keyring whenever I'm logged in" |
4887 | 425 | msgstr "Tự động gỡ khoá vòng khoá này khi nào tôi đã đăng nhập" | 427 | msgstr "Tự động gỡ khóa chùm chìa khóa này khi nào tôi đã đăng nhập" |
4888 | 426 | 428 | ||
4889 | 427 | #: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:639 | 429 | #: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:639 |
4890 | 428 | msgid "Unlock private key" | 430 | msgid "Unlock private key" |
4892 | 429 | msgstr "Mở khoá cá nhân" | 431 | msgstr "Mở khóa riêng" |
4893 | 430 | 432 | ||
4894 | 431 | #: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:641 | 433 | #: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:641 |
4895 | 432 | msgid "Unlock certificate" | 434 | msgid "Unlock certificate" |
4896 | @@ -434,11 +436,11 @@ | |||
4897 | 434 | 436 | ||
4898 | 435 | #: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:643 | 437 | #: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:643 |
4899 | 436 | msgid "Unlock public key" | 438 | msgid "Unlock public key" |
4901 | 437 | msgstr "Mở khoá công khai" | 439 | msgstr "Mở khóa công khai" |
4902 | 438 | 440 | ||
4903 | 439 | #: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:654 | 441 | #: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:654 |
4904 | 440 | msgid "Enter password to unlock the private key" | 442 | msgid "Enter password to unlock the private key" |
4906 | 441 | msgstr "Gõ mật khẩu để mở khoá cá nhân" | 443 | msgstr "Gõ mật khẩu để mở khóa riêng" |
4907 | 442 | 444 | ||
4908 | 443 | #: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:656 | 445 | #: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:656 |
4909 | 444 | msgid "Enter password to unlock the certificate" | 446 | msgid "Enter password to unlock the certificate" |
4910 | @@ -446,66 +448,63 @@ | |||
4911 | 446 | 448 | ||
4912 | 447 | #: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:658 | 449 | #: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:658 |
4913 | 448 | msgid "Enter password to unlock the public key" | 450 | msgid "Enter password to unlock the public key" |
4915 | 449 | msgstr "Gõ mật khẩu để mở khoá công khai" | 451 | msgstr "Gõ mật khẩu để mở khóa công khai" |
4916 | 450 | 452 | ||
4917 | 451 | #: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:660 | 453 | #: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:660 |
4918 | 452 | msgid "Enter password to unlock" | 454 | msgid "Enter password to unlock" |
4920 | 453 | msgstr "Gõ mật khẩu để gỡ khoá" | 455 | msgstr "Gõ mật khẩu để gỡ khóa" |
4921 | 454 | 456 | ||
4922 | 455 | #: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:670 | 457 | #: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:670 |
4923 | 456 | #| msgid "Automatically unlock this keyring whenever I'm logged in" | ||
4924 | 457 | msgid "Automatically unlock this key whenever I'm logged in" | 458 | msgid "Automatically unlock this key whenever I'm logged in" |
4926 | 458 | msgstr "Tự động gỡ khoá khoá này khi nào tôi đã đăng nhập" | 459 | msgstr "Tự động gỡ khóa khóa này khi nào tôi đã đăng nhập" |
4927 | 459 | 460 | ||
4928 | 460 | #: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:672 | 461 | #: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:672 |
4929 | 461 | #| msgid "Automatically unlock this keyring whenever I'm logged in" | ||
4930 | 462 | msgid "Automatically unlock this certificate whenever I'm logged in" | 462 | msgid "Automatically unlock this certificate whenever I'm logged in" |
4932 | 463 | msgstr "Tự động gỡ khoá chứng nhận này khi nào tôi đã đăng nhập" | 463 | msgstr "Tự động gỡ khóa chứng nhận này khi nào tôi đã đăng nhập" |
4933 | 464 | 464 | ||
4934 | 465 | #: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:674 | 465 | #: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:674 |
4935 | 466 | #: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:796 | 466 | #: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:796 |
4939 | 467 | #: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:1140 | 467 | #: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:1160 |
4940 | 468 | #: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:1288 | 468 | #: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:1309 |
4938 | 469 | #| msgid "Automatically unlock this keyring whenever I'm logged in" | ||
4941 | 470 | msgid "Automatically unlock whenever I'm logged in" | 469 | msgid "Automatically unlock whenever I'm logged in" |
4943 | 471 | msgstr "Tự động mở khoá khi tôi đăng nhập" | 470 | msgstr "Tự động mở khóa khi tôi đăng nhập" |
4944 | 472 | 471 | ||
4945 | 473 | #. TRANSLATORS: The private key is locked | 472 | #. TRANSLATORS: The private key is locked |
4946 | 474 | #: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:685 | 473 | #: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:685 |
4947 | 475 | #, c-format | 474 | #, c-format |
4948 | 476 | msgid "An application wants access to the private key '%s', but it is locked" | 475 | msgid "An application wants access to the private key '%s', but it is locked" |
4950 | 477 | msgstr "Ứng dụng muốn truy cập đến khoá cá nhân %s, nhưng nó đang bị khóa" | 476 | msgstr "Ứng dụng muốn dùng khóa riêng “%s”, nhưng nó đang bị khóa" |
4951 | 478 | 477 | ||
4952 | 479 | #. TRANSLATORS: The certificate is locked | 478 | #. TRANSLATORS: The certificate is locked |
4953 | 480 | #: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:688 | 479 | #: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:688 |
4954 | 481 | #, c-format | 480 | #, c-format |
4955 | 482 | msgid "An application wants access to the certificate '%s', but it is locked" | 481 | msgid "An application wants access to the certificate '%s', but it is locked" |
4957 | 483 | msgstr "Ứng dụng muốn truy cập đến chứng nhận %s, nhưng nó đang bị khóa" | 482 | msgstr "Ứng dụng muốn dùng chứng nhận “%s”, nhưng nó đang bị khóa" |
4958 | 484 | 483 | ||
4959 | 485 | #. TRANSLATORS: The public key is locked | 484 | #. TRANSLATORS: The public key is locked |
4960 | 486 | #: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:691 | 485 | #: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:691 |
4961 | 487 | #, c-format | 486 | #, c-format |
4962 | 488 | msgid "An application wants access to the public key '%s', but it is locked" | 487 | msgid "An application wants access to the public key '%s', but it is locked" |
4964 | 489 | msgstr "Ứng dụng muốn truy cập đến khoá công khai %s, nhưng nó đang bị khóa" | 488 | msgstr "Ứng dụng muốn dùng khóa công khai “%s”, nhưng nó đang bị khóa" |
4965 | 490 | 489 | ||
4966 | 491 | #. TRANSLATORS: The object '%s' is locked | 490 | #. TRANSLATORS: The object '%s' is locked |
4967 | 492 | #: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:694 | 491 | #: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:694 |
4968 | 493 | #, c-format | 492 | #, c-format |
4969 | 494 | msgid "An application wants access to '%s', but it is locked" | 493 | msgid "An application wants access to '%s', but it is locked" |
4971 | 495 | msgstr "Ứng dụng muốn truy cập đến '%s', nhưng nó bị khóa" | 494 | msgstr "Ứng dụng muốn dùng “%s”, nhưng nó đang bị khóa" |
4972 | 496 | 495 | ||
4973 | 497 | #: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:765 | 496 | #: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:765 |
4974 | 498 | msgid "The unlock password was incorrect" | 497 | msgid "The unlock password was incorrect" |
4976 | 499 | msgstr "Bạn đã gõ sai mật khẩu gỡ khoá" | 498 | msgstr "Bạn đã gõ sai mật khẩu gỡ khóa" |
4977 | 500 | 499 | ||
4978 | 501 | #. Build up the prompt | 500 | #. Build up the prompt |
4979 | 502 | #: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:786 | 501 | #: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:786 |
4980 | 503 | msgid "Unlock certificate/key storage" | 502 | msgid "Unlock certificate/key storage" |
4982 | 504 | msgstr "Mở khoá lưu trữ chứng nhận/khoá" | 503 | msgstr "Mở khóa lưu trữ chứng nhận/khóa" |
4983 | 505 | 504 | ||
4984 | 506 | #: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:787 | 505 | #: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:787 |
4985 | 507 | msgid "Enter password to unlock the certificate/key storage" | 506 | msgid "Enter password to unlock the certificate/key storage" |
4987 | 508 | msgstr "Nhập mật khẩu để mở khoá kho lưu chứng nhận/khoá" | 507 | msgstr "Nhập mật khẩu để mở khóa kho lưu chứng nhận/khóa" |
4988 | 509 | 508 | ||
4989 | 510 | #. TRANSLATORS: The storage is locked, and needs unlocking before the application can use it. | 509 | #. TRANSLATORS: The storage is locked, and needs unlocking before the application can use it. |
4990 | 511 | #: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:790 | 510 | #: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:790 |
4991 | @@ -514,65 +513,60 @@ | |||
4992 | 514 | "An application wants access to the certificate/key storage '%s', but it is " | 513 | "An application wants access to the certificate/key storage '%s', but it is " |
4993 | 515 | "locked" | 514 | "locked" |
4994 | 516 | msgstr "" | 515 | msgstr "" |
4996 | 517 | "Một ứng dụng muốn truy cập đến kho lưu chứng nhận/khoá '%s', nhưng nó vẫn bị " | 516 | "Một ứng dụng muốn dùng kho lưu chứng nhận/khóa “%s”, nhưng nó vẫn đang bị " |
4997 | 518 | "khóa" | 517 | "khóa" |
4998 | 519 | 518 | ||
5000 | 520 | #: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:1131 | 519 | #: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:1151 |
The diff has been truncated for viewing.
Thanks.
Could you propose merges against the Vcs-Bzr in future when working on desktop packages?
I'll copy your changes manually this time. (and take the revert for bgo #744280)